【深度学习】L1正则化和L2正则化
在机器学习中,我们⾮常关⼼模型的预测能⼒,即模型在新数据上的表现,⽽不希望过拟合现象的的发⽣,我们通常使⽤正则化(regularization)技术来防⽌过拟合情况。正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合、确保泛化能⼒的⼀种有效⽅式。如果将模型原始的假设空间⽐作“天空”,那么天空飞翔的“鸟”就是模型可能收敛到的⼀个个最优解。在施加了模型正则化后,就好⽐将原假设空间(“天空”)缩⼩到⼀定的空间范围(“笼⼦”),这样⼀来,可能得到的最优解能搜索的假设空间也变得相对有限。有限空间⾃然对应复杂度不太⾼的模型,也⾃然对应了有限的模型表达能⼒。这就是“正则化有效防⽌模型过拟合的”⼀种直观解析。
L2正则化
在深度学习中,⽤的⽐较多的正则化技术是L2正则化,其形式是在原先的损失函数后边再加多⼀项:1
2λθ2
i,那加上L2正则项的损失函数就
可以表⽰为:L(θ)=L(θ)+λ∑n iθ2i,其中θ就是⽹络层的待学习的参数,λ则控制正则项的⼤⼩,较⼤的取值将较⼤程度约束模型复杂度,反之亦然。
L2约束通常对稀疏的有尖峰的权重向量施加⼤的惩罚,⽽偏好于均匀的参数。这样的效果是⿎励神经单元利⽤上层的所有输⼊,⽽不是部分输⼊。所以L2正则项加⼊之后,权重的绝对值⼤⼩就会整体倾向于减少,尤其不会出现特别⼤的值(⽐如噪声),即⽹络偏向于学习⽐较⼩的权重。所以L2正则化在深度学习中还有个名字叫做“权重衰减”(weight decay),也有⼀种理解这种衰减是对权值的⼀种惩罚,所以有些书⾥把L2正则化的这⼀项叫做惩罚项(penalty)。
我们通过⼀个例⼦形象理解⼀下L2正则化的作⽤,考虑⼀个只有两个参数w1和w2的模型,其损失函数曲⾯如下图所⽰。从a可以看出,最⼩值所在是⼀条线,整个曲⾯看起来就像是⼀个⼭脊。那么这样的⼭脊曲⾯就会对应⽆数个参数组合,单纯使⽤梯度下降法难以得到确定解。但是这样的⽬标函数若加上⼀项0.1×(w21+w22),则曲⾯就会变成b图的曲⾯,最⼩值所在的位置就会从⼀条⼭岭变成⼀个⼭⾕了,
正则化网络此时我们搜索该⽬标函数的最⼩值就⽐先前容易了,所以L2正则化在机器学习中也叫做“岭回归”(ridge regression)。
L1正则化
L1正则化的形式是:λ|θi|,与⽬标函数结合后的形式就是:L(θ)=L(θ)+λ∑n i|θi|。需注意,L1 正则化除了和L2正则化⼀样可以约束数量级外,L1正则化还能起到使参数更加稀疏的作⽤,稀疏化的结果使优化
后的参数⼀部分为0,另⼀部分为⾮零实值。⾮零实值的那部分参数可
起到选择重要参数或特征维度的作⽤,同时可起到去除噪声的效果。此外,L1正则化和L2正则化可以联合使⽤:λ1|θi|+1
2
i。这种形式
也被称为“Elastic⽹络正则化”。正则化对偏导的影响
对于L2正则化:C=C0+λ
2n∑
2
i,相⽐于未加正则化之前,权重的偏导多了⼀项
λ
nω,偏置的偏导没变化,那么在梯度下降时ω的更新变为:
可以看出ω的系数使得权重下降加速,因此L2正则也称weight decay(caffe 中损失层的weight_decay 参数与此有关)。对于随机梯度下降(对⼀个mini-batch 中的所有x 的偏导求平均):
对于L1正则化:C =C 0+λ
n ∑i |ωi |,梯度下降的更新为:
符号函数在ω⼤于0时为1,⼩于0时为-1,在ω=0时|ω|没有导数,因此可令sgn(0)=0,在0处不使⽤L1正则化。
L1相⽐于L2,有所不同:
L1减少的是⼀个常量,L2减少的是权重的固定⽐例
孰快孰慢取决于权重本⾝的⼤⼩,权重刚⼤时可能L2快,较⼩时L1快
L1使权重稀疏,L2使权重平滑,⼀句话总结就是:L1会趋向于产⽣少量的特征,⽽其他的特征都是0,⽽L2会选择更多的特征,这些特征都会接近于0实践中L2正则化通常优于L1正则化。Processing math: 100%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。