pdf code

Visualizing the Loss Landscape of Neural Nets

这篇paper引入了对神经网络损失的可视化方法,并根据其分析方案给出了一些与损失函数图像相关的结论。

可视化基础

本文回顾介绍了一维插值与二维绘图的方法,这些方法最早是Ian GoodFellow提出来的,用于分析不同优化器的优化情况。

一维插值

设定两组网络参数,其加权平均,然后可以画出损失函数关于的函数图像。其主要作用在于研究网络在不同最优点附近的平滑度与尖锐度。但是这样方案得到的图像往往两个最值中间没有其他local minimum,且没有考虑网络的一些特殊的性质.

二维绘图

设定中心点, 两个方向矢量,2D表面图可以表达为:

这种方法在实际使用中可以显示出一般网络损失平面的非凸性。

典型的可视化结果可以在这个交互式网站上查看

image

Filter-Wise Normalization

本文中的都是取自一定scale的随机高斯分布,作者表示这种方案由于没有考虑到网络的scale-invariance。对于一个ReLU网络,增大层10倍,缩小层10倍,输出值是不会变的。如果有normalization层,则更显然。

如果我们对网络的扰动都是一个固定的单元值,则不同scale的网络受扰动的影响会不同.

作者首先通过高斯分布得到随机矢量, 然后将的scale统一到 其中这表达的是第层第个filter

for d, w in zip(direction, weights): # First channel -> output filter num
    d.mul_(w.norm()/(d.norm() + 1e-10))

对于只有一维的矢量则用0(default)或者复制代替。

实验 - 分析现有模型

作者根据以上内容做了一些实验

  • 在基础的1D插值的条件下,函数的non-convexity不明显,另外发现损失表面的flatness与模型的鲁棒性关系不大。
  • 使用filter-wise normalization以及单向高斯扰动,发现损失表面的flatness与模型的test error有直接相关性。
  • 使用filter-wise normalization的二维图,发现resnet的损失表面在convexity上更加显著,在一定程度上表明它更好训练。

实验 - 分析优化轨迹

作者发现使用两个随机高斯矢量(两个高斯随机矢量的cosine相似度的期望为,因而几乎一定是垂直的),但是在对优化轨迹进行可视化的时候,很大概率优化的方向会与随机可视化方向矢量垂直。这里提出的是使用PCA directions

对于从优化步到达的模型,设矩阵使用主成分分析,找出奇异值最大的两个方向,根据此方向来进行可视化。

image