1. 程式人生 > >機器學習防止過擬合---正則化

機器學習防止過擬合---正則化

機器學習中,過擬合是一件比較頭疼的事情,明明模型在訓練樣本上表現的很好,但在測試樣本上卻表現的較差,泛化能力不好。比如強大的神經網路就常常被過擬合問題困擾。
為了避免過擬合,最常用的一種方法是使用正則化,L1正則化和L2正則化可以看做是損失函式的懲罰項,就是對損失函式中的某些引數做一些限制。比如對於線性迴歸模型,使用L1正則化的模型叫做Lasso迴歸,使用L2正則化的模型叫做嶺迴歸。
以下對L1正則(L1範數) 和 L2 正則(L2範數)進行總結:

一. L2正則化

L2 正則化就是在原來損失函式的基礎上加上權重引數的平方和,具體公式如下
L

= L i + λ j ω
j 2
L = L_{i} + \lambda \sum _{j}\omega _{j}^{2}

其中,前一項是不包含正則化項的損失函式,λ 是正則化係數,此值可調。

正則化就是限制引數過多,從而避免模型過於複雜。比如一個5階多項式,模型可能會比較容易發生過擬合,因此為了防止過擬合,最容易想到的方法就是限制 w 的個數,但這個方法不容易實現,我們就考慮加一個限定條件:

j ω j 2 C \sum _{j}\omega _{j}^{2}\leq C
這樣我們的目標就轉換為:在約束條件( ω \omega 的平方和小於 C )下求最小化損失函式 L i L_{i}

二. L1 正則化

L1 正則化就是在原來損失函式的基礎上加上權重引數的絕對值,具體公式如下:
L = L i + λ j ω j L = L_{i} + \lambda \sum _{j}\left | \omega _{j} \right |
限定條件為:
j ω j C \sum _{j}\left | \omega _{j} \right |\leqslant C
這樣我們的目標就轉換為:在約束條件( ω \omega 的絕對值和小於 C )下求最小化損失函式 L i L_{i}

三. L1正則化和L2正則化

L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇,一定程度上,L1也可以防止過擬合。

稀疏矩陣指的是很多元素為0,只有少數元素是非零值的矩陣,通常機器學習中特徵數量比較多,在預測或分類時,那麼多特徵難以選擇,但是如果代入這些特徵得到的模型是一個稀疏模型,表示只有少數特徵對這個模型有貢獻,絕大部分特徵是沒有貢獻的,此時我們就可以只關注係數是非零值的特徵。

L2正則化可以防止模型過擬合。