正则化(Regularization)

正则化(Regularization)是机器学习中抑制过拟合问题的常用算法,常用的正则化方法是在损失函数(Cost Function)中添加一个系数的(l1 - norm)或(l2 - norm)项,用来抑制过大的模型参数,从而缓解过拟合现象。

(l1 - norm)的正则项还具有特征选择的能力,而(l2 - norm)的正则项没有。直观上,对于小于1的模型参数,(l1 - norm)的惩罚力度要远远大于(l2 - norm)的惩罚力度,这是(l1 - norm)特征选择能力的直接驱动。

带正则化的逻辑回归模型(Logistc Regression)损失函数如下式:

[J(w) =  - Logleft( {frac{1}{m}sumlimits_{i = 1}^m {{{left( {p({x^{(i)}})} ight)}^{{y^{(i)}}}}{{left( {1 - p({x^{(i)}})} ight)}^{1 - {y^{(i)}}}}} } ight) + frac{lambda }{{2m}}left| w ight|_2^2(1)]

下面以梯度下降法和牛顿法为例,说明带正则项的训练算法:

1. 梯度下降法

[w^{(k + 1)} = {w^{(k)}} - alpha abla J({w^{(k)}})]

系数(w)的更新公式为:

[egin{array}{c}
{w^{(k + 1)}} = {w^{(k)}} - alpha frac{1}{m}sumlimits_{i = 1}^m {left( {p({x^{(i)}}) - {y^{(i)}}} ight){x^{(i)}}} - frac{lambda }{m}{w^{(k)}}\
= {w^{(k)}}(1 - frac{lambda }{m}) - alpha frac{1}{m}sumlimits_{i = 1}^m {left( {p({x^{(i)}}) - {y^{(i)}}} ight){x^{(i)}}}
end{array}]

可见,正则化后的迭代算法和没有正则化的迭代形式非常像,唯一的差别在与每次迭代都要多减去一个(frac{lambda }{m}{w^{(k)}})。相当于如果当前的(w_j)已经比较大了,那么,(w)要先多减去一点,然按梯度方向进行迭代。

另外,上式的正则化项与(m)成反比,也就是说,样本数越大,过拟合的问题越小,正则化的作用越弱。

2. 牛顿法

[{w^{(k + 1)}} = {w^{(k)}} - {H^{ - 1}}left( {{w^{(k)}}} ight) abla J({w^{(k)}})]

引入l2-norm正则项后,一阶导数和Hessian矩阵如下所示:

[ abla J = frac{1}{m}sumlimits_{i = 1}^m {left( {left( {p({x^{(i)}}) - {y^{(i)}}} ight){x^{(i)}}} ight)}  - frac{lambda }{m}{w^{(k)}}]

[H = frac{1}{m}sumlimits_{i = 1}^m {p({x^{(i)}})left( {1 - p({x^{(i)}})} ight){x^{(i)}}{{({x^{(i)}})}^T}} + frac{lambda }{m}left[ {egin{array}{*{20}{c}}
0&0&0&0\
0&1&0&0\
0&0&{...}&0\
0&0&0&1
end{array}} ight]]

与梯度下降法类似,正则化在牛顿法中也是起到惩罚大的(w_j)的作用。另外,由于加了正则化项,原来不可逆的Hessian矩阵也变的可逆了。

原文地址:https://www.cnblogs.com/richqian/p/4514528.html