对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方面文章(SSS和network slimming)的阅读:
- Network Slimming:增加- BN层中的正则项,而后根据大小进行剪枝:
- Sparse Structure Selection:直接在- group/block/channel后新增一层,该层就只有一个伸缩系数,然后增加L1正则项;用加速近端梯度下降求解(软阈值 + 动量梯度下降)。
复现的过程中,想到了几个问题(仅基于Network Slimming讨论先,SSS同理):
- 有了BN层的归一化作用,卷积层权重可以整体成比例放大或缩小,而不影响模型效果(这里有偏置的话同理);也就是说卷积层的L2罚项没用了?
- 上一BN层的系数也是整体成比例放大或缩小,而不影响模型效果(这里偏置同理);也就是说剪枝衰减L2项没用?
也就是说损失函数中,卷积层的L2权重衰减正则项的权重系数(一般设定为默认值0.0005)、BN层的L2权重衰减正则项,这两项再怎么调,网络都有能力通过成比例放大/缩小对应项,而达到模型效果、损失函数大小都不变的情况!!!
那么,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
 
        