機器學習入門(淺談L1和L2正則)

1.正則化的作用

在機器學習中,訓練模型的目標是不僅要在訓練集上表現良好,還要在測試集上表現好,我們稱之爲泛化。實際過程中可能都會遇到模型在訓練上表現差,也就是所謂的欠擬合。也會出現在訓練上表現良好,在測試上表現差,即:過擬合。而要在這兩者之間尋找平衡,一個常用的方法就是正則化。
正則化的思想:在目標函數中引入額外的信息來懲罰過大的權重參數
我們假設要訓練的目標函數爲J(θ),那麼在優化時候不是直接優化J(θ),而是優化J(θ)+λR(W),λ成爲正則化係數,λR(W)稱爲正則項,λ越大表示正則化懲罰越大,通常只對權重做正則懲罰,不對偏置做懲罰

2. L1正則和L2正則

定義:

L1正則:權值向量w中各個元素的絕對值之和,通常表示爲 ||𝑤|| 1,對於模型參數w的L1正則化公式爲:
R(w)=j=1mwj1R(w)=\textstyle\sum_{j=1}^m||w_j||_1
L2正則:權值向量w中各個元素的平方和然後再求平方根,通常表示爲 ||𝑤|| 2,對於模型參數w的L2正則化公式爲:
R(w)=j=1mwj2R(w)=\textstyle\sum_{j=1}^m||w_j||_2

L1正則(特徵選擇,稀疏矩陣)

L1正則:相比L2更容易產生係數矩陣,所以在機器學習中更多被用於特徵選擇機制,對於迴歸模型,使用L1正則化的模型建叫做Lasso迴歸

推導:

假設樣本是一維的,目標函數L(w),
加入L1正則後,就變爲
J(θ)=L(w)+λwJ(\theta) =L(w)+\lambda|w|
加入L2正則後,就變爲
J(θ)=L(w)+λw2J(\theta) =L(w)+\lambda \sqrt {w^2}
設L(w)在w=0處的導數爲d0
那麼引入L1正則後導數變爲:
L(w)w=0+=d0+λ\nabla L(w)|_{w=0^+}=d_0+\lambda
L(w)w=0=d0λ\nabla L(w)|_{w=0^-}=d_0-\lambda
那麼引入L2正則後導數變爲:
L(w)w=0=d0+λw=d0\nabla L(w)|_{w=0}=d_0+\lambda *|w|=d_0
從上面結果來看,引入L2正則後,目標函數在0處導數依然是d0,引入L1正則後目標函數在0處有一個突變,若d0+λ和d0−λ異號,則在0處會是一個極小值點,優化時候很可能優化到該極小值點上,即w=0處。那麼通過L1正則就很容易某個維度的特徵係數爲0,那麼從整個模型來看,這個維度的特徵對整體影響不是很大,再選擇特徵時就可以捨棄。而從矩陣來看,生成一些零元素,那麼非零元素就會相對變得更少,以此達到稀疏矩陣的效果。
而在實際調優過程中,我們可以通過縮放λ這個正超參數來控制L1權重衰減的強度從而達到控制特徵規模及矩陣的稀疏特性

L1範數約束

再假設現在是二維的數據,那麼對於L1正則,我們可以設定|w|<1,則|w1|+|w2|<1,那麼對於梯度下降法,求解Jθ的過程可以畫出等值線,同時L1正則化的函數也可以在w1w2的二維平面上畫出來。如下圖:
L1正則化
從圖中可以看到Jθ和L1圖形相交的地方就是最優解,由於L1的圖形在二維情況下有四個突出的角,多維會更多,那麼與Jθ相交的概率,而在這些點上,總有權值爲0的特徵,這裏也能分析出爲什麼L1正則化可以產生稀疏模型,進而可以用於特徵選擇。同時將w限制在這個L1圖形裏面,也就是形成了模型的約束區域。

L2正則與過擬合

L2正則化的模型叫做Ridge迴歸(嶺迴歸)

推導

以線性迴歸爲例:
損失函數爲:J(w)=12mi=1m(hwxiyi)J(w)=\frac{1}{2m}\textstyle\sum_{i=1}^m(h_wx^i-y^i)
迭代公式爲:wj=wα1mi=1m(hwxiyi)xjiw_j=w -α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i
添加L2正則之後,迭代公式變爲$$wj=w(1αλm)α1mi=1m(hwxiyi)xjiw_j=w( 1-α\frac{\lambda}{m})-α \frac{1}{m} \textstyle\sum_{i=1}^m(h_wx^i-y^i)x_j^i
可以看到,與未添加L2正則相比,每一次迭代,若w>0,權重w都要先乘以一個小於1的因子,從而導致w不斷減小,若w<0,w就會不斷增大,整體就是讓|w|不斷減小,使得模型的參數取得儘可能小的值

L2範數約束

和L1範數約束同理,我們假設現在是二維,設定|w|2<1,則
w12+w22<1w_1^2+w_2^2<1
同樣可以畫出他們在二維平面的圖形
L2正則
二維平面下L2正則化的函數圖形是個圓,與方形相比,被磨去了棱角,使得兩個圖形相交時,各個w的值幾乎不會是0,同時也將w的權值約束在L2這個圓形裏面。形成L2約束區域,這個區域可以通過正則化係數來控制其範圍,當增大系數時,這個約束區域會減小,減小系數時,約束區域會擴大

總結

1. L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇,一定程度上,L1也可以防止過擬合
2. L2正則化可以防止模型過擬合(overfitting)
3. 在實際模型調整中,我們都希望權值儘可能小,然後構造出一個所有權值都比較小的模型,因爲一般認爲參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。可以設想一下對於一個線性迴歸方程,若參數很大,那麼只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什麼影響,專業一點的說法是『抗擾動能力強』
4. 通常正則化項前添加一個係數,由用戶指定
5. 有些情況下L1和L2也是可以同時使用的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章