為什么正則化可以減小過擬合?


  • 0范數:向量中非零元素的個數。
  • 1范數:為絕對值之和。1范數和0范數可以實現稀疏,1因具有比L0更好的優化求解特性而被廣泛應用。
  • 2范數:就是通常意義上的模,L2范數是指向量各元素的平方和然后求平方根。我們讓L2范數的正則項||W||2最小,可以使得W的每個元素都很小,都接近於0,但與L1范數不同,它不會讓它等於0,而是接近於0,這里是有很大的區別;所以比起1范數,更鍾愛2范數。

一、為什么正則化可以防止過擬合

莫煩的解釋:

1. 過擬合:

  過擬合就是所謂的模型對可見的數據過度自信, 非常完美的擬合上了這些數據, 如果具備過擬合的能力, 那么這個方程就可能是一個比較復雜的非線性方程 , 正是因為這里的 x^3 和 x^2 使得這條虛線能夠被彎來彎去, 所以整個模型就會特別努力地去學習作用在 x^3 和 x^2 上的 c d 參數. 但是我們期望模型要學到的卻是這條藍色的曲線. 因為它能更有效地概括數據.而且只需要一個 y=a+bx 就能表達出數據的規律. 或者是說, 藍色的線最開始時, 和紅色線同樣也有 c d 兩個參數, 可是最終學出來時, c 和 d 都學成了0, 雖然藍色方程的誤差要比紅色大, 但是概括起數據來還是藍色好. 那我們如何保證能學出來這樣的參數呢? 這就是 l1 l2 正則化出現的原因啦.

2. L1、L2  Regularization

  對於剛剛的線條, 我們一般用這個方程來求得模型 y(x) 和 真實數據 y 的誤差, 而 L1 L2 就只是在這個誤差公式后面多加了一個東西, 讓誤差不僅僅取決於擬合數據擬合的好壞, 而且取決於像剛剛 c d 那些參數的值的大小. 如果是每個參數的平方, 那么我們稱它為 L2正則化, 如果是每個參數的絕對值, 我們稱為 L1 正則化. 那么它們是怎么樣工作的呢?

3. 核心思想

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

圖像化

  想象現在只有兩個參數 theta1 theta2 要學, 藍色的圓心是誤差最小的地方, 而每條藍線上的誤差都是一樣的. 正則化的方程是在黃線上產生的額外誤差(也能理解為懲罰度), 在黃圈上的額外誤差也是一樣. 所以在藍線和黃線 交點上的點能讓兩個誤差的合最小. 這就是 theta1 和 theta2 正則化后的解. 要提到另外一點是, 使用 L1 的方法, 我們很可能得到的結果是只有 theta1 的特征被保留, 所以很多人也用 l1 正則化來挑選對結果貢獻最大的重要特征. 但是 l1 的結果並不是穩定的. 比如用批數據訓練, 每次批數據都會有稍稍不同的誤差曲線,

  L2 針對於這種擺動, 白點的移動不會太大, 而 L1的白點則可能跳到許多不同的地方 , 因為這些地方的總誤差都是差不多的. 側面說明了 L1 解的不穩定性。

統一表達形式:

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


 

知乎大牛的解釋:

一般正則項:

  M是模型的階次(表現形式是數據的維度),比如M=2,就是一個平面(二維)內的點

  若q=2就是二次正則項,高緯度沒有圖像表征非常難以理解,那就使用二維作為特例來理解。這里M=2,即X={x1,x2},w={w1,w2},令q=0.5,;q=1;q=2;q=4有

橫坐標是 w_1
縱坐標是 w_2
綠線是等高線的其中一條,換言之是一個俯視圖,而z軸代表的是

\frac{\lambda}{2} \sum_{j=1}^{M} {\vert w_j \vert}^q

 

q=2是一個圓,考慮z=w12+w22就是拋物面,俯視圖是一個圓。 其他幾項同理(z軸表示的是正則項的值)

  藍色的圓圈表示沒有經過限制的損失函數在尋找最小值過程中,w的不斷迭代(隨最小二乘法,最終目的還是使損失函數最小)變化情況,表示的方法是等高線,z軸的值就是E(),藍線和紅線交點w*是最小值取到的點。

  可以直觀的理解為, 我們的目標函數(誤差函數)就是求藍圈+紅圈的和的最小值,而這個 值通常在很多情況下是兩個曲面相交的地方。

  可以看到二次正則項的優勢,處處可導,方便計算,限制模型的復雜度,即w中M的大小,M是模型的階次,M越大意味着需要決定的權重越多,所以模型越復雜。在多項式模型中,直觀理解是每一個不同冪次的x前的系數,0(或很小的值)越多,模型越簡單。這從數學角度解釋了,為什么正則化可以限制模型的復雜度,進而避免過擬合。

   一次項w*的位置恰好是w1=0的位置,意味着從另一種角度來說,使用一次正則項可以降低維度(降低模型復雜度,防止過擬合)二次正則項也做到了這一點,但是一次正則項做的更加徹底,更稀疏。不幸的是,一次正則項有拐點,不是處處可微,給計算帶來了難度。

 

二、LR中的正則化解釋

【1】為什么在LR中,要h(x)-y越小越好,h(x)越大越好,||w||又要越小越好?

h(x)是要求越大越好,但是也不能一昧的增大,太大容易過擬合;而我們又需要||w||2越小越好,但是也不能太小,太小容易欠擬合;所以要在大與小之間權衡,找到最好的解。

  這里面哪個擬合得最好呢?當然是第三個了,幾乎把所有的都完美區分開了,我們看看它的函數十分復雜,特征比另外兩個都多。但是,第三個真的是最佳的嗎?不是的。

 

  LR加正則化的代價函數如下:

  其中 \lambda 稱為懲罰項系數。小尾巴前面那項是我們原本的代價函數,現在加上了懲罰項后,我們要使得代價函數最小,則后面的小尾巴也必須要小,小尾巴小的話,那么 \theta 就不能太大,如果 \theta 很小的話,那么那個 \theta 所在的項就接近於0了,也就可以近似地看成沒有了那個特征。

  接下來進行梯度下降,不斷地迭代如下過程:

  

參考文獻:

【1】莫煩大大的什么是 L1/L2 正則化 (Regularization)

【2】吳恩達機器學習課程筆記——第二周

【3】邏輯回歸與正則化

【4】機器學習中常常提到的正則化到底是什么意思?(陶輕松、劉遙行)


免責聲明!

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



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