对正则化的理解

在训练模型的时候,可能会遇到网络过拟合的问题,解决这个问题主要的方法有数据增强、Dropout、DropConnect、早停、以及正则化,这里记录一下常见的正则化方法及其特点。

L1正则化

L1正则化就是在原本的损失函数L0的基础上,加上模型参数的1范数的和与参数量n的比值,如下:
L1正则化
对L1正则化后的损失函数进行优化会令模型参数wi趋向于0,产生稀疏解,相当于减小了网络复杂度,具有一定的特征选择能力。

L2正则化

L2正则化就是在原来的损失函数L0后面加上网络权重的2范数与权重数量n的一个比值,这里λ通常取1,这样前面的系数就是1/2,方便求导。
L2正则化
对L2损失函数进行求导后得到:
L2求导
可以看到这里的梯度与参数w成线性关系,将梯度带入梯度下降公式后得到:
梯度下降
由于η、n、λ都大于零,所以w前面的系数小于1,这样一来相同模型参数的情况下,采用L2损失计算得到的新的权重w比不采用L2正则得到的权重更小。说明L2正则会惩罚过大的权重,也就是“权重衰减”。

二者的区别和应用

L1正则化的目的在于减小参数的绝对值总和,L2正则化的目的在于减小参数平方的总和。这两个有什么区别呢?这个得从其梯度来看。

对于L1正则化,对[不同参数 w i w_i wi其惩罚值都是一样的],导致那些参数大小和惩罚值大小一样的参数一减就变为0,(https://www.zhihu.com/question/48474480),而对于L2正则化,其梯度为 ∂ L ∂ w i = ∂ L 0 ∂ w i + λ n w i \frac{\partial L}{\partial w_i} = \frac{\partial L_0}{\partial w_i} + \frac{\lambda}{n}w_i wiL=wiL0+nλwi对于不同的参数 w i w_i wi其后面的惩罚项大小不一样,越小的参数惩罚值越小,越大的参数惩罚值越大,所以L2正则会使得参数减小,但一般不会减小到0。

相同点:

限制模型的学习能力,使模型偏好于权重较小的目标函数,防止过拟合。

不同点:

L1正则化可以产生更稀疏的权值矩阵,可以用于特征选择,一定程度上防止过拟合
L2正则化主要用于防止模型过拟合,适用于特征之间没有关联的情况。

线性回归中,使用L1正则化的为Lasso回归,使用L2正则化的为岭回归,既使用L1又使用L2的为ElasticNet

参考

https://mp.weixin.qq.com/s/GAVmwuFv0wXiuNPZl7pT_Q

猜你喜欢

转载自blog.csdn.net/weixin_40313940/article/details/122319296