【深度学习】L1损失、L2损失、L1正则化、L2正则化
文章目录
L1损失、L2损失、L1正则化、L2正则化是机器学习中常用的损失函数和正则化技术,它们在优化过程中起着至关重要的作用。它们的作用分别在于如何计算模型误差和如何控制模型的复杂度。
1. L1 损失(L1 Loss)
L1损失又称为绝对误差损失,它是预测值和真实值之间的绝对差值的和。它的计算公式为:
L 1 L o s s = ∑ i = 1 n ∣ y i − y ^ i ∣ L1 Loss = \sum_{i=1} ^n |y_i-\hat y_i| L1Loss=i=1∑n∣yi−y^i∣
- y i y_i yi 是真实值
- y ^ i \hat y_i y^i 是预测值
- N N N 是样本数
特点:
- 对于较大的误差,L1损失的惩罚较为平缓(线性增长),因此它对于异常值(outliers)的影响较小
- L1损失函数产生的优化过程可能会导致稀疏解(一些参数变为0),这种特性在特征选择和稀疏模型中非常有用
优缺点:
- 优点:L1损失对异常值不敏感,适用于一些具有较大噪声数据的场景
- 缺点:L1损失的梯度在零点处不可导,这可能会导致某些优化算法(如梯度下降)在训练时出现问题
2. L2 损失(L2 Loss)
L2损失也叫均方误差损失(Mean Squared Error Loss, MSE)。它是预测值和真实值之间的平方差的和。公式为:
L
2
L
o
s
s
=
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
L2 Loss = \sum_{i=1} ^n (y_i-\hat y_i)^2
L2Loss=i=1∑n(yi−y^i)2
L2损失函数通常用于回归问题,它鼓励模型产生小的误差
特点:
- L2损失对误差的惩罚是平方的,意味着较大的误差会受到更大的惩罚,因此模型会倾向于减少较大误差。
- L2损失函数是平滑的,在优化过程中更加稳定,且可以保证优化的梯度是可导的
- L2损失更容易产生较为平滑的预测,不会像L1那样产生稀疏解
优缺点:
- 优点:对于大多数情况,L2损失提供了更平滑和稳定的优化,特别是在无异常值数据上表现较好
- 缺点:L2损失对异常值非常敏感,异常值会极大地影响模型性能
3. L1 正则化(L1 Regularization)
L1正则化通过向损失函数中添加一项L1范数(即参数绝对值的和)来控制模型的复杂度。L1正则化的公式为:
L 1 R e g u l a r i z a t i o n = λ ∑ i = 1 p ∣ w i ∣ L1\ Regularization = \lambda \sum_{i=1}^p|w_i| L1 Regularization=λi=1∑p∣wi∣
- w i w_i wi 是模型参数
- p p p 是参数的总数
- λ \lambda λ 是正则化的超参数,用于控制正则化的权重
特点:
- L1正则化的效果是稀疏化,它可以使一些参数变为零,从而使得模型更加简洁,适合进行特征选择
- 当使用L1正则化时,优化过程中某些特征可能会被完全剔除,特别是当特征不重要时
优缺点:
- 优点:L1正则化能够自动进行特征选择,产生稀疏解,减少过拟合的风险。
- 缺点:如果特征之间有较强的相关性,L1正则化可能会不稳定,导致模型对特征的选择过于敏感
4. L2 正则化(L2 Regularization)
L2正则化通过向损失函数中添加一项L2范数(即参数的平方和)来约束模型的复杂度。L2正则化的公式为:
L 2 R e g u l a r i z a t i o n = λ ∑ i = 1 p w i 2 L2\ Regularization = \lambda \sum_{i=1}^p w_i^2 L2 Regularization=λi=1∑pwi2
- w i w_i wi 是模型参数
- p p p 是参数的总数
- λ \lambda λ 是正则化的超参数,用于控制正则化的权重
特点:
- L2正则化不会将参数置为零,而是减小参数的大小。它鼓励参数尽可能小,从而避免过拟合
- L2正则化的优化过程是平滑的,因为它有一个可导的梯度
优缺点:
- 优点:L2正则化会减少模型对训练数据的过度拟合,同时不会像L1正则化那样丢弃特征,因此适用于特征之间存在强相关性的情况。
- 缺点:L2正则化不会像L1正则化那样产生稀疏解,因此无法进行特征选择
5. 总结
5.1 为什么 L1 正则化会产生稀疏解 L2 正则化会让权重变小
稀疏性:很多参数值为0
L1 的梯度:
L = L ( W ) + λ ∑ i = 1 p ∣ w i ∣ ∂ L ∂ w i = ∂ L ( W ) ∂ w i + λ ⋅ sign ( w i ) w i = w i − l r ∗ ∂ L ∂ w j − l r ∗ λ sign ( w i ) L = L(W) + \lambda \sum_{i=1}^p|w_i| \\ \frac{\partial L}{\partial w_i} = \frac{\partial L(W)}{\partial w_i} + \lambda \cdot \text{sign}(w_i) \\ w_i = w_i - lr*\frac{\partial L}{\partial w_j} - lr* \lambda \text{sign}(w_i) L=L(W)+λi=1∑p∣wi∣∂wi∂L=∂wi∂L(W)+λ⋅sign(wi)wi=wi−lr∗∂wj∂L−lr∗λsign(wi)
其中:
- ∂ L ( W ) ∂ w j \frac{\partial L(W)}{\partial w_j} ∂wj∂L(W) 是损失函数 L ( W ) L(W) L(W) 对于 w j w_j wj 的偏导数,
- λ \lambda λ 是正则化系数,
- sign ( w j ) \text{sign}(w_j) sign(wj) 是符号函数,定义为:
sign ( w i ) = { 1 if w i > 0 0 if w i = 0 − 1 if w i < 0 \text{sign}(w_i) = \begin{cases} 1 & \text{if } w_i > 0 \\ 0 & \text{if } w_i = 0 \\ -1 & \text{if } w_i < 0 \end{cases} sign(wi)=⎩ ⎨ ⎧10−1if wi>0if wi=0if wi<0
L2的梯度:
L = L ( W ) + λ ∑ i = 1 p w i 2 ∂ L ∂ w j = ∂ L ( W ) ∂ w j + 2 λ w i w i = w i − l r ∗ ∂ L ∂ w j − l r ∗ 2 λ w i L = L(W) + \lambda \sum_{i=1}^pw_i^2 \\ \frac{\partial L}{\partial w_j} = \frac{\partial L(W)}{\partial w_j} + 2\lambda w_i \\ w_i = w_i - lr*\frac{\partial L}{\partial w_j} - lr*2 \lambda w_i L=L(W)+λi=1∑pwi2∂wj∂L=∂wj∂L(W)+2λwiwi=wi−lr∗∂wj∂L−lr∗2λwi
因此有 当 w i < 1 w_i<1 wi<1 的时候,L2 的惩罚项会越来越小,但是 L1 的惩罚项还是很大,因此 L1 会让参数变为 0, 但是L2 很难。
- L2 的惩罚项对于较小的权重会越来越小,而 L1 的惩罚项仍然保持相对较大,所以 L1 会更容易将权重变为 0,而 L2 很难做到这一点
- L2惩罚项的变化:当 w i w_i wi 很小(例如小于 1)时,L2 的惩罚项确实变得很小,但它不会像 L1 那样 直接将权重逼近零,而是让权重变得越来越小,但是不至于完全为零。L2 的惩罚项对权重的影响是 平滑的。
- L1惩罚项的影响:L1 的惩罚项 不会随着 w i w_i wi 的变小而显著减小,它对小权重的影响依然存在,特别是在训练过程中,L1 会倾向于 将一些权重压缩为零,甚至当权重已经很小的时候,也会对其施加强迫。
总结:
- L1 正则化更容易产生 稀疏解,因为它对权重值的绝对值施加线性惩罚,尤其当权重接近零时,它会强迫一些权重变为零
- L2 正则化的惩罚项是平滑的平方项,它 不会强迫权重完全为零,而是倾向于使权重变小
- L1 正则化更容易将权重压缩为零(产生稀疏解),而 L2 正则化会让权重变小,但很难让它们变为零
原文地址:https://blog.csdn.net/qq_42761751/article/details/145227419
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!