Visualizing the Loss Landscape of Neural Nets

Hao Li, Zheng Xu, Gavin Taylor, Christoph Studer, Tom Goldstein

作者使用 “filter normalization” 方法对Loss Landscape 进行可视化

假设神经网络的输入为\(\{x_i\}\),其对应的标签为\(\{y_i\}\),损失函数为\(L(\theta)=\frac{1}{m}\sum_{i=1}^ml(x_i,y_i;\theta)\),其中\(\theta\)为神经网络参数,其一般数量都非常庞大,因而其位于高维空间。但是我们只能使用一维或二维的方法对其进行可视化。

1-Dimensional Linear Interpolation

一维线性插值,该方法提前选定两个参数\(\theta\)\(\theta'\),并绘制这两个参数连线上的损失函数值,对于该连线我们可以使用如下方法将其参数化: \[ \theta(\alpha)=(1-\alpha)\theta+\alpha\theta' \] 通过绘制函数\(f(\alpha)=L(\theta(\alpha))\)来实现可视化。其中\(\theta\)一般被选定为初始值,\(\theta'\)被选为经过训练后的参数。

但是一维线性插值方法存在缺点:一维图很难对非凸性进行可视化,该方法不考虑网络中的不变性,对称性和批量归一化

Contour Plots & Random Directions

等高线和随机方向,该方法需要选取一个中心点\(\theta^*\),并选择两个方向\(\delta\)\(\eta\),然后绘制如下函数 \[ f(\alpha,\beta)=L(\theta^*+\alpha\delta+\beta\eta) \] 该方法被用于探索不同最小化方法的轨迹,但是由于2D绘图的计算量,该方法会导致小区域上的分辨率较低

因此作者提出使用 Filter-Wise Normalization

Filter-Wise Normalization

由于网络具有尺度变换不变性,因此常规的2D绘图会导致两个不同图之间无法比较

为了消除该影响,作者对其进行归一化,首先生成一个和\(\theta\)维度一样的高斯采样的向量\(d\),再根据\(\theta\)对其进行归一化 \[ d_{i,j}\gets \frac{d_{i,j}}{||d_{i,j}||}||\theta_{i,j}|| \] 作者通过上述的方法来对 minimizers 的锐度与泛化性之间的关系进行研究,并和未归一化的图进行对比

目前广泛的认知是损失函数的平坦性和泛化性之间的关系是小批量的SGD方法可以产生泛化性良好的平坦曲面,而大批量的SGD方法则对应的是泛化性较差的最小值

image-20221103095128861

作者先通过实现证明1D可视化的局限性,在图(a)和(d)中横坐标0和1处分别指小batch_size模型参数\(\theta^s\)和大batch_size模型参数\(\theta^l\)

在(a)中小批量模型参数附近相当宽广,而大批量部分则相对尖锐,但是该情况可以通过使用weight decay来实现翻转,在(d)中作者使用了weight decay,其中小批量部分的泛化性(测试集错误率)最强,但是其图像却是尖锐的,在图(c)和(f)则是对其参数的直方图进行了绘制,在(b)和(e)中则绘制了模型在训练过程中的L2范数的变化。小批量的模型在weight decay的情况下发生了更大的波动,这是由于小批量模型更新次数更多,受到weight decay的影响也更多

作者使用Filter Normalized对上述实验进行重复得到了下图

image-20221103102856130

经过归一化以后的模型避免了上述的问题,小批量的模型确实拥有更大的平坦度

随后作者又对初始化,残差链接,模型宽度进行了可视化

image-20221103111904201

上图主要是不同网络层深度和有无残差连接的结果,可以看到加入残差连接后的模型哪怕到110层其Loss Landscape依旧平坦,但是不加的部分则充满了非凸性

下图作者展示了宽网络带来的影响,其表明了加宽网络宽度也可以增加平坦度

image-20221103111925917

同时作者还指出了降维可视化损失函数和真实高维之间的联系,在降维图中如果存在非凸性,则全维图中必然也存在非凸性,但是低维的凸性不意味着高维函数的真正凸性,其只意味这正曲率占据主导地位

Supplementary

作者在附录中给出了更多的实验

先是weight decay对训练过程中权重范数变化的影响

image-20221103144523679

接着对比了给定随机法向方向\(d\)的归一化方法,让\(\theta_i\)表示第\(i\)层的权重,\(\theta_{i,j}\)表示第\(i\)层的第\(j\)个filter

作者对比了三种方法,分别为:

无归一化

Filter 归一化 \[ d_{i,j}\gets \frac{d_{i,j}}{||d_{i,j}||}||\theta_{i,j}|| \] Layer归一化 \[ d_{i,j}\gets \frac{d_{i}}{||d_{i}||}||\theta_{i}|| \] 下图展示的是无归一化,其中(a,e)和(c,g)展示了其锐利度和泛化性无关的错误结论,证明该方法不能很好展示模型的平坦度

image-20221103150249947

下图展示了Layer 归一化,其中(c,g)图片对也出现了错误

image-20221103150319529

最后作者给出了如何可视化训练过程路径

在可视化训练轨迹的时候,随机方向方法不可用,其会导致训练路径出现较大错误,如下所示

image-20221103151150784

作者认为这是由于高维空间中任意两个随机向量几乎都是正交的,而当优化路径位于低维空间时,随机选择的向量将会与包含优化路径的低秩空间正交,从而导致其在随机方向上的投影不会有大的变化

为此作者提出了使用PCA的方法来选择方向向量,作者用\(\theta_i\)来表示第\(i\)轮的参数,并构建出矩阵\(M=[\theta_0-\theta_n;\dots;\theta_{n-1}-\theta_n]\),对该矩阵使用PCA算法,并选择前两个作为方向向量,其绘制出的优化路径如下所示

image-20221103152828904