正則化

1.泛化問題


  上一篇文章深刻理解泛化說起了泛化問題,便是解決過擬合問題。本篇文章就來看看在機器學習(深度學習)領域一般是怎麼解決過擬合。html

  神經網絡的複雜度由其自由參數(權值和偏置量)的數量決定,而自由參數數量又由網絡中的神經元數量決定。對於一個給定的數據集,若是網絡結構複雜,則極可能會形成網絡過擬合而使泛化能力不足。web

  所以,要想得到具備良好泛化能力的神經網絡,就是要找到可以解釋數據的最簡神經網絡模型。這就是14世紀邏輯學家奧卡姆的威廉命名的奧卡姆剃刀定律的變形。其核心思想:模型越複雜,出錯的可能性越大算法

圖片1.jpg

  根據奧卡姆剃刀法則:在一樣可以解釋已知觀測現象的假設中,咱們應該挑選「最簡單」的那一個。對於模型的設計而言,咱們應該選擇簡單、合適的模型解決複雜的問題。網絡

2.一些方法


  最優解決方法是獲取更多的訓練數據。模型的訓練數據越多,泛化能力天然也越好,但每每得到帶標籤的數據成本是很高的。app

  所以,在得不到足夠多數據的狀況下,咱們一般選擇能產生最簡神經網絡模型的方法,這裏可按方法的目標分爲兩類:限制權重數量、限制權重大小。機器學習

Snipaste_2019-11-15_20-11-12.png

3.提早終止法


先回顧深度學習的訓練過程:svg

  當訓練有足夠的表示能力甚至會過擬合的大模型時,咱們常常會觀察到,訓練偏差會隨着時間的推移逐漸下降但驗證集的偏差會再次上升,而且這種現象幾乎必定會出現。函數

  所以,咱們考慮使訓練在最優容量(在前一篇文章說起)處終止,這種策略爲提早終止法。其基本思想:隨着訓練的進行,網絡使用愈來愈多的權值,直到訓練結果達到偏差曲面的極小值時全部的權值都被使用。經過增長訓練的迭代次數,使得網絡的複雜度也在增長。若是訓練在達到極小偏差值以前終止,那麼網絡將有效地使用更少的參數,且更不容易過擬合。性能

  爲了有效使用提早終止法,須要知道什麼時候終止訓練,這裏使用一個方法:交叉驗證法 (cross validation)。它先將數據集劃分爲 k個大小類似的互斥子集, 即
D = D 1 D 2 D k , D i D j = ( i j ) D = D_{1} \cup D_{2} \cup \cdots \cup D_{k},D_{i} \cup D_{j} = \varnothing(i \neq j)
  每一個子集 都儘量保持數據分佈的一致性,即從 D i D_{i} 中經過分層採樣獲得. 而後,每次用k-1個子集的並集做爲訓練集,餘下的那個子集做爲測試集;這樣就可得到k組訓練/測試集,從而可進行 k次訓練和測試,最終返回的是這k個測試結果的均值。學習

圖片2.png

  訓練集用來計算梯度或者Jacobian矩陣,並肯定每次迭代中網絡權值的更新。驗證集是一個指示器,用來代表訓練數據點之間所造成的網絡函數發生了什麼,而且驗證集上的偏差值在整個訓練過程當中都將被監測。

  當驗證集上的偏差在幾回迭代中均上升時,訓練終止,在驗證集上產生最小偏差的權值被用做最終訓練好的網絡的權值。

圖片3.png

  上圖展現了訓練過程當中網絡在訓練集和驗證集上的性能指標F(偏差平方和的變化)。藍色曲線爲真實,黑色曲線爲擬合。

  左邊這張圖中雖然訓練過程當中訓練集的偏差持續降低,但驗證集上的偏差極小值出如今「a」點處。中間這張圖是在「a」點的網絡響應,擬合效果很好。右邊這張圖是「b」點的時的網絡響應,此時驗證集偏差變大,網絡過擬合。

小結

  提早終止法在憑藉其有效性和簡單性在深度學習中很是流行。它在實際應用中須要說明的問題:

  • 所選驗證集(訓練集、測試集)必須表明網絡後續使用中涉及的全部情形(儘管每一個數據集的規模可能不一樣,但它們所覆蓋的輸入空間都必須大體相等);
  • 劃分數據集時,一般大約70%的數據用做訓練,15%用做驗證,15%用做測試。關於如何選取驗證集的數據規模,能夠參見:Gauss-Newton approximation to Bayesian learning
  • 須要使用一個相對較慢的訓練方法,在訓練過程當中,網絡將使用愈來愈多的可用網絡參數。若是訓練方式過快,頗有可能會跳過使得驗證集上偏差取得較小值的點。

4.正則化法


4.1定義

  正則化:修改學習算法,使其下降泛化偏差而非訓練偏差。最新定義:旨在更好實現模型泛化的補充技術,即在測試集上獲得更好的表現。(Kukacka et al,2017)

  另外一種理解:調節模型容許存儲的信息量,或對模型容許存儲的信息加以約束。若是一個網絡只能記住幾個模式,那麼優化過程會迫使模型集中學習最重要的模式,這樣更可能獲得良好的泛化。

4.2 對正則化理解

  正則化項即懲罰函數,該項對模型向量進行「懲罰「,從而避免單純最小二乘問題的過擬合問題。或者說正則化參數等價於對參數引入先驗分佈,使得模型複雜度變小(縮小解空間),對於噪聲以及異常值的魯棒性加強(泛化能力)。

  正則化項本質上是一種先驗信息,整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中正則化項對應後驗估計中的先驗信息,損失函數對應後驗估計中的似然函數,二者的乘積即對應貝葉斯最大後驗估計的形式,若是你將這個貝葉斯最大後驗估計的形式取對數,即進行極大似然估計,你就會發現問題立馬變成了損失函數+正則化項的最優化問題形式。

4.3正則化法分類

正則化可按策略分爲三類

  • 經驗正則化:經過工程上的技巧來實現更低的泛化偏差方法,好比:提早終止法、模型集成、Dropout等;
  • 參數正則化:直接提供正則化約束,好比:L1/L2正則化法等;
  • 隱式正則化:不直接提供約束,好比:數據有關的操做,包括歸一化、數據加強、擾亂標籤等。

  發現沒,提早終止法也屬於正則化的一種!至於爲何,請看後邊的分析。

  這裏只介紹幾種常見的正則化法:L1/L2正則化法、Dropout法以及從貝葉斯角度理解正則化。

4.3.1 L1/L2正則化法

  L1正則化是指在損失函數後加上權值向量w中各個元素的絕對值之和,即(lasso迴歸):
min { 1 N i = 1 N ( y i ω T x i ) 2 } + C ω 1 \min\left\{ \frac{1}{N}\sum_{i = 1}^{N}{(y_{i} - \omega^{T}x_{i})^{2}} \right\} + C\left\| \omega \right\|_{1}
  L2正則化是指在損失函數後加上權值向量w中各個元素的平方和而後再求平方根,即(嶺迴歸) :
min { 1 N i = 1 N ( y i ω T x i ) 2 } + C ω 2 2 \min\left\{ \frac{1}{N}\sum_{i = 1}^{N}{(y_{i} - \omega^{T}x_{i})^{2}} \right\} + C\left\| \omega \right\|_{2}^{2}

  通常都會在正則化項以前添加一個係數(如C),這個係數須要用戶設定,係數越大,正則化做用越明顯。

圖片4.jpg

  如上圖,參數空間(w1,w2)是一個二維平面,藍色部分是一個平方損失函數,黃色部分是正則項。藍色的那個圈,中心的點其實表明的就是損失函數最優的點,而同心圓則表明不一樣的參數相同的損失,可見隨着圓的擴大,損失增大。黃色的區域也相似,周邊的紅色線表示的是損失相同點的輪廓。

  正則項的紅色輪廓線示平方損失的藍色輪廓線總要相交,才能使得二者加起來的損失最小,二者的所佔區域的相對大小,是由權重因子決定的。無論怎麼說,它們總有一個交叉點。

  對於L2正則化,它的交點會使得w1或者w2的某一個維度特別小,而L1正則化則會使得w1或者w2的某一個維度等於0,所以得到所謂的稀疏化。

  所以,L1正則化容易獲得稀疏解(0比較多)。L2正則化相比於L1正則來講,獲得的解比較平滑(不是稀疏),可是一樣可以保證解中接近於0(但不是等於0,因此相對平滑)的維度比較多,下降模型的複雜度。

  從貝葉斯先驗的角度看,加入正則化項至關於加入了一種先驗,L1範數至關於加入了一個Laplacean先驗,L2範數至關於加入了一個Gausssian先驗,如圖:

圖片5.jpg

  拉普拉斯先驗在0的位置具備最高的機率密度,這就說明不少參數會變成0,這就是爲何L1正則化會具備能產生稀疏性的優良性質。

4.3.2 Dropout法

待補

4.3.3 從貝葉斯角度理解正則化

待補

5.提早終止法與正則化法以前關係


待補

參考資料


1.尹恩·古德費洛.深度學習[M].北京:人民郵電出版社,2017.8

2.馬丁 T·哈根,章毅(譯).神經網絡設計.第二版.北京:機械出版社,2017.12

3.神經網絡損失函數中的正則化項L1和L2

4.神經網絡的提高方法(2)——正則化

5.其它

😕/blog.csdn.net/dcrmg/article/details/80229189)

4.神經網絡的提高方法(2)——正則化

5.其它

相關文章
相關標籤/搜索