正则化

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

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

比如在逻辑回归中,通常可以在目标函数(经验风险)中加上一个正则化项$$\Phi(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范数。其形式分别为$$\Phi (w)=||w||_1$$和$$\Phi (w)=||w||_2^2$$。

以 L2 正则化为例 $$L_2\text{ regularization term} = ||w||_2^2 = {w_1^2 + w_2^2 + … + w_n^2}$$

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

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

参考文档