为何需要正则化

训练模型的最终目的是为了最小化泛化误差,而我们训练时的目标是最小化训练误差,二者存在不匹配,容易出现过拟合训练集的问题。因此正则化(Regularization)被引入模型训练,即通过人为规定规则函数对训练的模型进行约束,根据不同的正则化规则使得模型具有某些特性,例如稀疏、低秩、平滑等。正则化通常通过在损失函数中添加一项正则化项实现,即

$$ W^* = \arg \min_W \sum_i \mathcal{L}(y_i, f(x_i; W)) + \lambda \Omega(W) $$

,其中 $\Omega(W)$ 即为正则项。

正则化类型

L0 Regularization

$$ \Omega(W) = \operatorname{num}(\{w~\text{if}~w!=0\}) $$

  • (o) 使参数稀疏。
  • 稀疏的好处?
    • 有利于特征选择。
    • 有利于模型压缩。
    • 有利于可解释性。

L1 Regularization

$$ \Omega(W) = \sum\lambda|W| $$

  • (o) 使参数稀疏。
  • (+) 防止过拟合,提升泛化能力。
  • L1 与 L2 的区别
    • 优化角度,L2 相当于用圆去逼近目标,而 L1 正则相当于用菱形去逼近目标,所以更容易引起交点在坐标轴上即得到稀疏解。
    • 梯度角度,L2 无法将目标函数极值点拉拢到稀疏解上(越接近 0 幅度越小),而 L1 正则可以在一定范围内将极值点直接拉拢到稀疏解。
    • 概率角度,范数约束相当于对参数添加先验分布,而 L1 范数相当于参数服从拉普拉斯分布,L2 范数相当于高斯先验分布。
  • 为何通常用 L1 而不是 L0 来实现稀疏?
    • L0 较难优化求解,L1 具有比 L0 更好的优化求解特性而被广泛应用。
  • 参考

L2 Regularization

$$ \Omega(W) = \sum\frac{\lambda}{2} W^2 $$

补充:L2 Regularization 与 Weight Decay 的区别

Weight decay 是在每次更新模型时,将原先的参数进行衰减,即乘上 $(1 - \beta)$:

$$ \theta_{t + 1} = (1 - \beta)\theta_t - \alpha\triangledown f_t(\theta_t) $$

其中 $\theta$ 为模型参数向量,$\triangledown f_t(\theta_t)$ 为 $t$ 时刻损失函数的梯度,$\alpha$ 为学习率。

L2 Regularization 则是在损失函数上给模型参数加上了一个 L2 惩罚项(公式见上面),只有在以下条件满足时才相等:

$$ \theta = \frac{\beta}{\alpha} $$

Elastic Regularization

$$ \Omega(W) = \sum(\lambda_1|W| + \frac{1}{2}\lambda_2W^2) $$

注意事项

  • 一般对 bias 不需要做正则化,因为这些参数一般需要较少的数据就能精确拟合,不正则化也不会引起太大的方差,加了反而可能导致欠拟合。

参考