正则化和优化策略

L1 正则化和 L2 正则化是两种常见的正则化方法,用于防止模型过拟合。它们通过对模型权重的惩罚项来控制模型的复杂度。

1. L1 正则化(Lasso)

L1 正则化通过在损失函数中加入权重向量的 绝对值之和 来实现正则化,其公式为:

L 1 = L ( w ) + λ ∑ i = 1 n ∣ w i ∣ \mathcal{L}_1 = \mathcal{L}(w) + \lambda \sum_{i=1}^{n} |w_i| L1=L(w)+λi=1nwi

  • L ( w ) \mathcal{L}(w) L(w):原始损失函数。
  • w i w_i wi:模型的每个权重。
  • λ > 0 \lambda > 0 λ>0:正则化系数,控制正则化的强度。
  • ∑ i = 1 n ∣ w i ∣ \sum_{i=1}^{n} |w_i| i=1nwi:权重的绝对值之和。

L1 正则化的特点

  • L1 正则化倾向于使某些权重变为零,这有助于产生稀疏模型(即很多权重为零)。

2. L2 正则化(Ridge)

L2 正则化通过在损失函数中加入权重向量的 平方和 来实现正则化,其公式为:

L 2 = L ( w ) + λ 2 ∑ i = 1 n w i 2 \mathcal{L}_2 = \mathcal{L}(w) + \frac{\lambda}{2} \sum_{i=1}^{n} w_i^2 L2=L(w)+2λi=1nwi2

  • L ( w ) \mathcal{L}(w) L(w):原始损失函数。
  • w i w_i wi:模型的每个权重。
  • λ > 0 \lambda > 0 λ>0:正则化系数,控制正则化的强度。
  • ∑ i = 1 n w i 2 \sum_{i=1}^{n} w_i^2 i=1nwi2:权重的平方和。

L2 正则化的特点

  • L2 正则化倾向于使权重变小,但不会使权重变为零,从而使得所有特征都能对模型产生影响,避免了过大的权重值。

总结:

  • L1 正则化:通过惩罚 权重的绝对值 来促进稀疏性,使得某些权重变为零。
  • L2 正则化:通过惩罚 权重的平方和 来抑制过大的权重值,保持权重的平滑。

这些正则化方法可以帮助模型避免过拟合,并提升模型的泛化能力。

损失函数

1. 学习率( η \eta η

  • η \eta η 是学习率(learning rate),它控制着每次参数更新的幅度。
  • 学习率决定了每次更新时要“走多远”。如果学习率过大,可能会导致在最优解附近跳跃;如果学习率过小,模型收敛速度可能非常慢。

2. 梯度( ∇ w L ( w t ) \nabla_w \mathcal{L}(w_t) wL(wt)

  • ∇ w L ( w t ) \nabla_w \mathcal{L}(w_t) wL(wt)损失函数 L \mathcal{L} L 对权重 w t w_t wt 的梯度,它表示的是损失函数关于当前权重 w t w_t wt 的变化率。
  • 梯度 是一个向量,指示了在当前权重 w t w_t wt 下,损失函数值增加最快的方向。换句话说,梯度告诉我们如何调整权重 w t w_t wt 以减少损失函数的值。

3. 损失函数 L \mathcal{L} L

  • L \mathcal{L} L 通常是 损失函数,损失函数是一个数学函数,它衡量模型的预测值与真实值之间的差距

  • 例如,假设你有一个简单的线性回归模型:
    y pred = w ⋅ x + b y_{\text{pred}} = w \cdot x + b ypred=wx+b
    损失函数是均方误差(MSE):
    L ( w ) = 1 n ∑ i = 1 n ( y pred , i − y true , i ) 2 \mathcal{L}(w) = \frac{1}{n} \sum_{i=1}^{n} (y_{\text{pred}, i} - y_{\text{true}, i})^2 L(w)=n1i=1n(ypred,iytrue,i)2
    如果我们想要找到权重 w w w 的梯度,我们需要对 w w w 求偏导数:
    ∇ w L ( w ) = ∂ L ( w ) ∂ w \nabla_w \mathcal{L}(w) = \frac{\partial \mathcal{L}(w)}{\partial w} wL(w)=wL(w)
    这就得到了权重的梯度,它告诉我们如何调整权重 w w w,使得损失函数 L \mathcal{L} L 减小。

  • 梯度更新公式:
    w t + 1 = w t − η ∇ w L ( w t ) w_{t+1} = w_t - \eta \nabla_w \mathcal{L}(w_t) wt+1=wtηwL(wt)

各种梯度下降方法

随机梯度下降每次仅用一个样本计算梯度

批量梯度下降每次使用一个小批量样本(大小为 B)计算梯度

带动量的梯度下降 Momentum 通过引入动量项 加速收敛

Adagrad 根据参数的历史梯度调整每个参数的学习率

RMSProp 对 Adagrad 进行改进,通过指数加权平均控制梯度平方的累积

Adam 结合了动量和 RMSProp 的思想,同时估计梯度的一阶矩(均值)和二阶矩(方差)

随机梯度—批量梯度—动量梯度—adagrad—rmsprop—adam

你可能感兴趣的:(python)