神经网络权重衰减和学习率的区别

机器算法验证 神经网络 术语
2022-01-28 13:29:25

在神经网络的背景下,学习率和权重衰减有什么区别?

4个回答

学习率是一个参数,它决定了更新步骤对权重当前值的影响程度。而权重衰减是权重更新规则中的一个附加项,如果没有安排其他更新,它会导致权重指数衰减到零。

因此,假设我们想要最小化一个成本或误差函数中沿最陡下降方向修改权重 其中是学习率,如果它很大,您将对权重进行相应较大的修改(通常它不应该太大,否则您将超过成本函数中的局部最小值)。E(w)wE

wiwiηEwi,
ηwi

为了有效限制模型中自由参数的数量以避免过度拟合,可以对成本函数进行正则化。一种简单的方法是在权重上引入零均值高斯先验,这相当于将成本函数更改为在实践中,这会惩罚大权重并有效地限制模型的自由度。正则化参数决定了如何在原始成本与大权重惩罚之间进行权衡。E~(w)=E(w)+λ2w2λE

将梯度下降应用于这个新的成本函数,我们得到: 来自正则化 的新项导致权重与其大小成正比衰减。

wiwiηEwiηλwi.
ηλwi

除了@mrig 的回答(+1),对于神经网络的许多实际应用,最好使用更高级的优化算法,例如 Levenberg-Marquardt(中小型网络)或缩放共轭梯度下降(中大型网络),因为这些会更快,并且不需要设置学习率(两种算法本质上都使用曲率和梯度来调整学习率)。任何体面的神经网络包或库都将具有这些方法之一的实现,任何没有的包都可能已过时。我使用 MATLAB 的 NETLAB 库,这是一个很棒的工具包。

所以@mrig 给出的答案在直觉上其实还可以。但从理论上讲,他解释的是L2正则化。这在当时被称为体重衰减,但现在我认为文献非常清楚这一事实。这两个概念有细微的区别,学习这种区别可以更好地理解权重衰减参数。一旦您将两者确定为哪个是哪个,就更容易理解。

在这里,我将讨论两种称为L2 正则化解耦 wight 衰减的正则化技术。

在 L2 正则化中,您可以直接更改成本函数。这可以使用与@mrig 的答案相同的术语如下所示。

E~(w)=E(w)+λ2w2

因此,一旦您采用梯度(如在 SGD 优化器中),这将简化为以下等式:

wiwiηEwiηλwi

wi(1ηλ)wiηEwi

但是,在解耦权重衰减中,您不会直接对成本函数进行任何调整。

对于相同的 SGD 优化器,权重衰减可以写成:

wi(1λ)wiηEwi

所以你有它。SGD 中两种技术的区别是微妙的。什么时候λ=λη这两个方程变得相同。相反,它对 Adam 等自适应优化器产生了巨大的影响。这在我所附的文献中得到了广泛的解释。

关于学习率,我认为其他答案对此给出了很好的解释,此时不需要进一步解释。

简单来说:

learning_rate:它控制神经网络模型学习问题的速度或速度。

请参阅:https ://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/

weight_decay:是一种用于避免过拟合的正则化技术。

见:https ://metacademy.org/graphs/concepts/weight_decay_neural_networks