权值衰减和L2正则化是一回事吗?

我们在神经网络的训练中经常会遇到权重衰减和正则化这两个概念。尤其是L2正则化,它跟权重衰减是不是一回事。我在这篇文章得到了解释Weight Decay == L2 Regularization?

正则化

正则化可以定义为我们为了减少泛化误差而不是减少训练误差而对训练算法所做的任何改变。有许多正规化策略。有的对模型添加额外的约束,如对参数值添加约束,有的对目标函数添加额外的项,可以认为是对参数值添加间接或软约束。如果我们仔细使用这些技术,这可以改善测试集的性能。在深度学习的环境中,大多数正则化技术都基于正则化估计器。当正则化一个估计量时,有一个折衷,我们必须选择一个增加偏差和减少方差的模型。一个有效的正规化是使一个有利可图的交易,显著减少方差,而不过度增加偏差。

在实践中使用的主要正规化技术有:

  1. L2正则化
  2. L1正则化
  3. 数据增强
  4. Dropout
  5. Early Stopping

在这篇文章中,我们主要关注L2正则化,并讨论我们是否可以将L2正则化和权重衰减作为同一枚硬币的两面。

L2正则化属于正则化技术的一类,称为参数范数惩罚。之所以提到这类技术,是因为在这类技术中,特定参数的范数(主要是权重)被添加到被优化的目标函数中。在L2范数中,在网络的损失函数中加入一个额外的项,通常称为正则化项。那L2正则化和权重衰减是一回事吗?其实L2正则化和权值衰减并不是一回事,但是可以根据学习率对权值衰减因子进行重新参数化,从而使SGD等价。

以λ为衰减因子,给出了权值衰减方程。

w=(1- \lambda )w-\alpha \Delta C_{0}

在以下证明中可以证明L2正则化等价于SGD情况下的权值衰减:

1.我们先看一下L2正则化方程

C=C_{0} + \frac{\lambda }{2}\left \| w\right \|_{2}^{2}

我再对正则化方程进行求导操作

\frac{\partial C_{0}}{\partial w}=\frac{\partial C_{0}}{\partial w}+2\frac{\lambda w}{2}

\Delta C==\frac{\partial C}{\partial w}

在得到损失函数的偏导数结果后,将结果代入梯度下降学习规则中,如下式所示。

w=w-\alpha \Delta C

w=w-\alpha \left ( \Delta C_{0} +\lambda w\right )

w=w-\alpha \Delta C_{0}-\alpha \lambda w

w=\left ( 1-\alpha \lambda \right )w-\alpha \Delta C_{0}

最终重新排列的L2正则化方程和权值衰减方程之间的唯一区别是α(学习率)乘以λ(正则化项)。为了得到两个方程,我们用λ来重新参数化L2正则化方程。

\lambda =\frac{\acute{\lambda }}{\alpha }

将λ'替换为λ,对L2正则化方程进行重新参数化,将其等价于权值衰减方程,如下式所示

w=\left ( 1-\acute{\lambda } \right )w-\alpha \Delta C_{0}

where \lambda =\frac{\acute{\lambda }}{\alpha }

从上面的证明中,你必须理解为什么L2正则化在SGD情况下被认为等同于权值衰减,但对于其他基于自适应梯度的优化算法,如Adam, AdaGrad等,却不是这样。特别是,当与自适应梯度相结合时,L2正则化导致具有较大历史参数和/或梯度振幅的权值比使用权值衰减时正则化得更少。这导致与SGD相比,当使用L2正则化时adam表现不佳。另一方面,权值衰减在SGD和Adam身上表现得一样好。

猜你喜欢

转载自blog.csdn.net/nijiayan123/article/details/112346416
今日推荐