正则化

在模型过于复杂的情况下,模型会学习到很多特征,从而导致可能把所有训练样本都拟合到,这样就导致了过拟合。解决过拟合可以从两个方面入手,一是减少模型复杂度,一是增加训练集个数。而正则化就是减少模型复杂度的一个方法。即以最小化损失和复杂度为目标(结构风险最小化):

J(w)=Loss(x,w)+λComplexity(w)J(w)=Loss(x,w)+\lambda Complexity(w)

比如在逻辑回归中,通常可以在目标函数(经验风险)中加上一个正则化项Φ(w)\Phi(w),即

J(w)=1m[i=1myiloghw(xi)+(1yi)log(1hw(xi))]+λΦ(w)J(w) = -\frac{1}{m}[\sum_{i=1}^{m}y_ilog h_w (x_i) + (1-y_i)log(1-h_w(x_i))] + \lambda \Phi(w)

而这个正则化项一般会采用L1范数或者L2范数。其形式分别为Φ(w)=w1\Phi (w)=||w||_1Φ(w)=w22\Phi (w)=||w||_2^2

以 L2 正则化为例 L2 regularization term=w22=w12+w22+...+wn2L_2\text{ regularization term} = ||w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}

  • 复杂度等于权重的平方和
  • 可以减少非常大的权重
  • 对线性模型来说首选比较平缓的斜率
  • 贝叶斯先验概率:权重应该以 0 为中心,并呈正态分布

上述目标函数中的标量 λ\lambda 为正则化率,用来调整正则化项的整体影响,平衡模型简单化和训练数据的拟合。增大 λ\lambda 将增强正则化的效果,但过高的 λ\lambda 也会导致欠拟合风险。λ=0\lambda = 0 时可以取消正则化。

注意:较低的学习速率通常会产生和强 λ\lambda 类似的效果(都会产生较小的权重),因而不建议同时调整这两个参数。

参考文档

© Pengfei Ni all right reserved,powered by GitbookUpdated at 2018-03-04 22:31:31

results matching ""

    No results matching ""