【问题标题】:caffe batchnorm layer affect base_lr?caffe batchnorm 层影响 base_lr?
【发布时间】:2017-02-17 11:23:28
【问题描述】:
在caffe框架下看到如下代码。整个代码都在尝试写caffetrain_val.prototxt和solver.prototxt。
# Use different initial learning rate.
if use_batchnorm:
base_lr = 0.0004
else:
base_lr = 0.00004
为什么基础学习率不同?
【问题讨论】:
标签:
neural-network
normalization
caffe
【解决方案1】:
如果this paper 有帮助,你可以试试。
他们说如果你不使用归一化,你需要“更仔细地”训练,这意味着使用较低的学习率。
浏览第一页,我可以想象它是这样工作的:
对于某些非线性,有一个“良好的输入值范围”,批范数会将值带入该范围。高输入值不好并导致饱和(函数中的小斜率和“消失的梯度”)。
因此,如果您不进行归一化,则需要采取更小的步骤 - 更低的学习率 - 以避免“跳入”导致网络内高值的权重。并且还要更加小心如何初始化权重。我想如果你使用 ReLus,那不是什么大问题。但是,如果其他人对 ReLus 有不同的体验,请纠正我。