尊重原創,我沒有改動乙個字。。。
過擬合示意圖
我們知道, 過擬合就是所謂的模型對可見的資料過度自信, 非常完美的擬合上了這些資料, 如果具備過擬合的能力, 那麼這個方程就可能是乙個比較複雜的非線性方程 , 正是因為這裡的 x^3 和 x^2 使得這條虛線能夠被彎來彎去, 所以整個模型就會特別努力地去學習作用在 x^3 和 x^2 上的 c d 引數. 但是我們期望模型要學到的卻是 這條藍色的曲線. 因為它能更有效地概括資料.而且只需要乙個 y=a+bx 就能表達出資料的規律. 或者是說, 藍色的線最開始時, 和紅色線同樣也有 c d 兩個引數, 可是最終學出來時, c 和 d 都學成了0, 雖然藍色方程的誤差要比紅色大, 但是概括起資料來還是藍色好. 那我們如何保證能學出來這樣的引數呢? 這就是 l1 l2 正則化出現的原因啦.
l1 l2正則項示意圖
對於剛剛的線條, 我們一般用這個方程來求得模型 y(x) 和 真實資料 y 的誤差, 而 l1 l2 就只是在這個誤差公式後面多加了乙個東西, 讓誤差不僅僅取決於擬合資料擬合的好壞, 而且取決於像剛剛 c d 那些引數的值的大小. 如果是每個引數的平方, 那麼我們稱它為 l2正則化, 如果是每個引數的絕對值, 我們稱為 l1 正則化. 那麼它們是怎麼樣工作的呢?
l1 l2正則化的核心
我們拿 l2正則化來**一下, 機器學習的過程是乙個 通過修改引數 theta 來減小誤差的過程, 可是在減小誤差的時候非線性越強的引數, 比如在 x^3 旁邊的 theta 4 就會被修改得越多, 因為如果使用非線性強的引數就能使方程更加曲折, 也就能更好的擬合上那些分布的資料點. theta 4 說, 瞧我本事多大, 就讓我來改變模型, 來擬合所有的資料吧, 可是它這種態度招到了誤差方程的強烈反擊, 誤差方程就說: no no no no, 我們是乙個團隊, 雖然你厲害, 但也不能僅僅靠你乙個人, 萬一你錯了, 我們整個團隊的效率就突然降低了, 我得 hold 住那些在 team 裡獨出風頭的人. 這就是整套正規化演算法的核心思想. 那 l1, l2 正則化又有什麼不同呢?
l1 l2 的影象化
想象現在只有兩個引數 theta1 theta2 要學, 藍色的圓心是誤差最小的地方, 而每條藍線上的誤差都是一樣的. 正則化的方程是在黃線上產生的額外誤差(也能理解為懲罰度), 在黃圈上的額外誤差也是一樣. 所以在藍線和黃線 交點上的點能讓兩個誤差的合最小. 這就是 theta1 和 theta2 正則化後的解. 要提到另外一點是, 使用 l1 的方法, 我們很可能得到的結果是只有 theta1 的特徵被保留, 所以很多人也用 l1 正則化來挑選對結果貢獻最大的重要特徵. 但是 l1 的結並不是穩定的. 比如用批資料訓練, 每次批資料都會有稍稍不同的誤差曲線,如下所示:
不同資料的誤差曲線
l2 針對於這種變動, 白點的移動不會太大, 而 l1的白點則可能跳到許多不同的地方 , 因為這些地方的總誤差都是差不多的. 側面說明了 l1 解的不穩定性
最後,為了控制這種正規化的強度, 我們會加上乙個引數 lambda, 並且通過 交叉驗證 cross validation 來選擇比較好的 lambda. 這時, 為了統一化這型別的正則化方法, 我們還會使用 p 來代表對引數的正則化程度. 這就是這一系列正則化方法的最終的表達形式啦.
l1 l2正則化最終表達形式
L1與L2正則化
在機器學習中,我們茶廠聽到l1和l2正則化,用他們來防止過擬合,但是在什麼情況下使用它們和它們的原理是什麼樣的可能一知半解。所以在本部落格中將對l1和l2做簡單的介紹和應用場景。如果引數過多,模型過於複雜,容易造成過擬合 overfit 即模型在訓練樣本資料上表現的很好,但在實際測試樣本上表現的較差...
L1 與 L2 正則化
參考這篇文章 1.l2 正則化直觀解釋 l2 正則化公式非常簡單,直接在原來的損失函式基礎上加上權重引數的平方和 l ein jw2j l ein jwj2 其中,ein 是未包含正則化項的訓練樣本誤差,是正則化引數,可調。但是正則化項是如何推導的?接下來,我將詳細介紹其中的物理意義。我們知道,正則...
L1與L2正則化
目錄機器學習中,如果引數過多 模型過於複雜,容易造成過擬合。在經驗風險最小化 訓練誤差最小化 的基礎上,盡可能採用簡單的模型,以提高模型泛化 精度。為了避免過擬合,最常用的一種方法是使用正則化,例如l1和l2正則化。所謂的正則化,就是在原來損失函式的基礎上,加了一些正則化項,或者叫做模型複雜度懲罰項...