0%

对L2正则化、BN层的思考

BN层对网络卷积层权重L2正则化的影响BN层的gamma项正则化作用卷积层权重L2正则化的作用如何更好的调整L2正则项权重、学习率、gamma项权重等超参 等问题的思考。

涉及的论文:

  • 主要的思想来源

L2 Regularization versus Batch and Weight Normalization

Towards Understanding Regularization in Batch Normalization

Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour

  • 引发

Learning Efficient Convolutional Networks through Network Slimming

Data-Driven Sparse Structure Selection for Deep Neural Networks

引爆点:剪枝

之所以开始这一方面的了解,源于对network pruning方面文章(SSSnetwork slimming)的阅读:

  • Network Slimming:增加 BN层中的正则项,而后根据大小进行剪枝:
  • Sparse Structure Selection:直接在group/block/channel后新增一层,该层就只有一个伸缩系数,然后增加L1正则项;用加速近端梯度下降求解(软阈值 + 动量梯度下降)。

复现的过程中,想到了几个问题(仅基于Network Slimming讨论先,SSS同理):

  1. 有了BN层的归一化作用,卷积层权重可以整体成比例放大或缩小,而不影响模型效果(这里有偏置的话同理);也就是说卷积层的L2罚项没用了?
  2. 上一BN层的系数也是整体成比例放大或缩小,而不影响模型效果(这里偏置同理);也就是说剪枝衰减L2项没用?

也就是说损失函数中,卷积层的L2权重衰减正则项的权重系数(一般设定为默认值0.0005)、BNL2权重衰减正则项,这两项再怎么调,网络都有能力通过成比例放大/缩小对应项,而达到模型效果、损失函数大小都不变的情况!!!

那么,BN、卷积层权重、正则化项 这三者的关系,其内涵和对模型优化的影响究竟是咋样的呢?带着这样的问题,开启这一小分支的探索。

L2正则化与BN层的关系

我们将没有加入BN层的网络表示为:

那么对卷积层权重L2惩罚,可以降低卷积层权重的值,从而达到压缩网络模型容量的作用。

而对于加入BN层的网络:

下面是batch size和learning rate的延伸。

Large batch training引发的问题

Linear Scaling Rule (batch size、learning rate、warm-up的纠葛)

Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour

感谢对原创的支持~