《How Does Batch Normalization He

2020-03-09  本文已影响0人  CapsulE_07

《How Does Batch Normalization Help Optimization》

论文初略

论文地址: https://arxiv.org/...
该论文推翻了BN原论文认为BN是因为减少了Internal Covariate Shift(ICS)的推论,给出了一个新的解释,而是因为每层的标准化使得最后的loss函数变成了一个光滑的曲面而造成的最后性能提优。ICS 即由于之前网络层参数的更新,当前从的输入分布会不断变化的现象。


本文的主要贡献:

  1. BN带来的性能提升与ICS的减少无关。 并且在一定程度上认为BN并不能减少 ICS。
  2. 发现了BN使得优化问题的曲面更加平滑,这使得梯度更容易预测以及允许更大范围的学习率和更快的网络vonvergence。证明了BN提升了模型的LOSS的Lipschitzness和梯度的Lipschitzness(β-smoothness)。
  3. 提出了除了BN外,还有其他方式同样可以达到类似平滑效应,有些甚至效果更好。

BN层与ICS的实验分析


BN层原理分析

  1. Lipschitzness: 即系统具备L-Lipschitz稳定的,具有以下性质。
    系统输入的变化导致系统输出的变化波动会被限制在一个常系数范围内。\left|f\left(x_{1}\right)-f\left(x_{2}\right)\right| \leq L\left\|x_{1}-x_{2}\right\|, for \ all \ x_1 \ and \ x_2
  2. 论文《Visualizing the loss landscape of neural nets》中提到: 在Vanilla深度神经网络(非BN网络)中, 损失函数不仅是非凸的,并且常有许多的"kinks", 平坦区域,和尖锐的极小值。这些都导致基于梯度下降的训练算法不稳定,例如由于梯度爆炸或者梯度消失,由此其网络对于学习率的选择和网络初始化高度敏感。
  3. BN带来的Lipschitzness与其BN带来网络提升之间的关系:BN层使得梯度更加值得依赖和具有预测性的。提升后的梯度Lipschitzness让我们放心地设置一个较大的学习步数且梯度方向维持不错的精确。这允许任何基于梯度的训练算法可以采取更大的学习率而不用担心起遭遇梯度突然变好的危险,例如平缓区域会导致梯度消失,尖锐的局部最小值会导致梯度爆炸等等。由此,BN使得训练过程更快且对超参数选择没那么敏感。
image.png
image.png

探索其他正则方式是否有同样的效果

实验内容:在标注网络中添加不同的正则方式,例如L_n正则,n为1,2与无穷等。此时,网络层输入参数分布不再是高斯分布。然后在这些网络中都进行了以上的实验。最终结果显示: 模型的效果都得到了提升且Loss Lanscape都得到了平滑。因此,对于标准化方案的设计空间进行探索可能是有价值的,因为它可以带来更好的性能。具体实验结果可以去查看论文附录。

image.png

作者提出的公理

接着,基于实验现象,作者总结了一部分基于经验性质的公式,相关信息请翻阅论文查看。

上一篇下一篇

猜你喜欢

热点阅读