L1與L2正則化

寫在最前:

這篇不是原創!想寫一點發現也不比他的好,知乎專欄,@莫煩PYTHON
這位大神還發布了視頻來幫助解釋。html

尊重原創,我沒有改動一個字。。。算法


過擬合

過擬合示意圖
過擬合示意圖

咱們知道, 過擬合就是所謂的模型對可見的數據過分自信, 很是完美的擬合上了這些數據, 若是具有過擬合的能力, 那麼這個方程就多是一個比較複雜的非線性方程 , 正是由於這裏的 x^3 和 x^2 使得這條虛線可以被彎來彎去, 因此整個模型就會特別努力地去學習做用在 x^3 和 x^2 上的 c d 參數. 可是咱們指望模型要學到的倒是 這條藍色的曲線. 由於它能更有效地歸納數據.並且只須要一個 y=a+bx 就能表達出數據的規律. 或者是說, 藍色的線最開始時, 和紅色線一樣也有 c d 兩個參數, 但是最終學出來時, c 和 d 都學成了0, 雖然藍色方程的偏差要比紅色大, 可是歸納起數據來仍是藍色好. 那咱們如何保證能學出來這樣的參數呢? 這就是 l1 l2 正則化出現的緣由啦.機器學習

L1 L2 Regularization

L1 L2正則項示意圖
L1 L2正則項示意圖

對於剛剛的線條, 咱們通常用這個方程來求得模型 y(x) 和 真實數據 y 的偏差, 而 L1 L2 就只是在這個偏差公式後面多加了一個東西, 讓偏差不只僅取決於擬合數據擬合的好壞, 並且取決於像剛剛 c d 那些參數的值的大小. 若是是每一個參數的平方, 那麼咱們稱它爲 L2正則化, 若是是每一個參數的絕對值, 咱們稱爲 L1 正則化. 那麼它們是怎麼樣工做的呢?學習

核心思想

L1 L2正則化的核心
L1 L2正則化的核心

咱們拿 L2正則化來探討一下, 機器學習的過程是一個 經過修改參數 theta 來減少偏差的過程, 但是在減少偏差的時候非線性越強的參數, 好比在 x^3 旁邊的 theta 4 就會被修改得越多, 由於若是使用非線性強的參數就能使方程更加曲折, 也就能更好的擬合上那些分佈的數據點. Theta 4 說, 瞧我本事多大, 就讓我來改變模型, 來擬合全部的數據吧, 但是它這種態度招到了偏差方程的強烈反擊, 偏差方程就說: no no no no, 咱們是一個團隊, 雖然你厲害, 但也不能僅僅靠你一我的, 萬一你錯了, 咱們整個團隊的效率就忽然下降了, 我得 hold 住那些在 team 裏獨出風頭的人. 這就是整套正規化算法的核心思想. 那 L1, L2 正則化又有什麼不一樣呢?cdn

圖像化

L1 L2 的圖像化
L1 L2 的圖像化

想象如今只有兩個參數 theta1 theta2 要學, 藍色的圓心是偏差最小的地方, 而每條藍線上的偏差都是同樣的. 正則化的方程是在黃線上產生的額外偏差(也能理解爲懲罰度), 在黃圈上的額外偏差也是同樣. 因此在藍線和黃線 交點上的點能讓兩個偏差的合最小. 這就是 theta1 和 theta2 正則化後的解. 要提到另一點是, 使用 L1 的方法, 咱們極可能獲得的結果是隻有 theta1 的特徵被保留, 因此不少人也用 l1 正則化來挑選對結果貢獻最大的重要特徵. 可是 l1 的結並非穩定的. 好比用批數據訓練, 每次批數據都會有稍稍不一樣的偏差曲線,以下所示:
視頻

不一樣數據的偏差曲線
不一樣數據的偏差曲線

L2 針對於這種變更, 白點的移動不會太大, 而 L1的白點則可能跳到許多不一樣的地方 , 由於這些地方的總偏差都是差很少的. 側面說明了 L1 解的不穩定性htm

統一表達形式

最後,爲了控制這種正規化的強度, 咱們會加上一個參數 lambda, 而且經過 交叉驗證 cross validation 來選擇比較好的 lambda. 這時, 爲了統一化這類型的正則化方法, 咱們還會使用 p 來表明對參數的正則化程度. 這就是這一系列正則化方法的最終的表達形式啦.
blog

L1 L2正則化最終表達形式
L1 L2正則化最終表達形式
相關文章
相關標籤/搜索