正則化(Regularization)


正則化(Regularization)是機器學習中抑制過擬合問題的常用算法,常用的正則化方法是在損失函數(Cost Function)中添加一個系數的\(l1 - norm\)或\(l2 - norm\)項,用來抑制過大的模型參數,從而緩解過擬合現象。

\(l1 - norm\)的正則項還具有特征選擇的能力,而\(l2 - norm\)的正則項沒有。直觀上,對於小於1的模型參數,\(l1 - norm\)的懲罰力度要遠遠大於\(l2 - norm\)的懲罰力度,這是\(l1 - norm\)特征選擇能力的直接驅動。

帶正則化的邏輯回歸模型(Logistc Regression)損失函數如下式:

\[J(w) =  - Log\left( {\frac{1}{m}\sum\limits_{i = 1}^m {{{\left( {p({x^{(i)}})} \right)}^{{y^{(i)}}}}{{\left( {1 - p({x^{(i)}})} \right)}^{1 - {y^{(i)}}}}} } \right) + \frac{\lambda }{{2m}}\left\| w \right\|_2^2(1)\]

下面以梯度下降法和牛頓法為例,說明帶正則項的訓練算法:

1. 梯度下降法

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

系數\(w\)的更新公式為:

\[\begin{array}{c}
{w^{(k + 1)}} = {w^{(k)}} - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {\left( {p({x^{(i)}}) - {y^{(i)}}} \right){x^{(i)}}} - \frac{\lambda }{m}{w^{(k)}}\\
= {w^{(k)}}(1 - \frac{\lambda }{m}) - \alpha \frac{1}{m}\sum\limits_{i = 1}^m {\left( {p({x^{(i)}}) - {y^{(i)}}} \right){x^{(i)}}}
\end{array}\]

可見,正則化后的迭代算法和沒有正則化的迭代形式非常像,唯一的差別在與每次迭代都要多減去一個\(\frac{\lambda }{m}{w^{(k)}}\)。相當於如果當前的\(w_j\)已經比較大了,那么,\(w\)要先多減去一點,然按梯度方向進行迭代。

另外,上式的正則化項與\(m\)成反比,也就是說,樣本數越大,過擬合的問題越小,正則化的作用越弱。

2. 牛頓法

\[{w^{(k + 1)}} = {w^{(k)}} - {H^{ - 1}}\left( {{w^{(k)}}} \right)\nabla J({w^{(k)}})\]

引入l2-norm正則項后,一階導數和Hessian矩陣如下所示:

\[\nabla J = \frac{1}{m}\sum\limits_{i = 1}^m {\left( {\left( {p({x^{(i)}}) - {y^{(i)}}} \right){x^{(i)}}} \right)}  - \frac{\lambda }{m}{w^{(k)}}\]

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

與梯度下降法類似,正則化在牛頓法中也是起到懲罰大的\(w_j\)的作用。另外,由於加了正則化項,原來不可逆的Hessian矩陣也變的可逆了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM