上一篇文章深刻理解泛化說起了泛化問題,便是解決過擬合問題。本篇文章就來看看在機器學習(深度學習)領域一般是怎麼解決過擬合。html
神經網絡的複雜度由其自由參數(權值和偏置量)的數量決定,而自由參數數量又由網絡中的神經元數量決定。對於一個給定的數據集,若是網絡結構複雜,則極可能會形成網絡過擬合而使泛化能力不足。web
所以,要想得到具備良好泛化能力的神經網絡,就是要找到可以解釋數據的最簡神經網絡模型。這就是14世紀邏輯學家奧卡姆的威廉命名的奧卡姆剃刀定律的變形。其核心思想:模型越複雜,出錯的可能性越大。算法
根據奧卡姆剃刀法則:在一樣可以解釋已知觀測現象的假設中,咱們應該挑選「最簡單」的那一個。對於模型的設計而言,咱們應該選擇簡單、合適的模型解決複雜的問題。網絡
最優解決方法是獲取更多的訓練數據。模型的訓練數據越多,泛化能力天然也越好,但每每得到帶標籤的數據成本是很高的。app
所以,在得不到足夠多數據的狀況下,咱們一般選擇能產生最簡神經網絡模型的方法,這裏可按方法的目標分爲兩類:限制權重數量、限制權重大小。機器學習
先回顧深度學習的訓練過程:svg
當訓練有足夠的表示能力甚至會過擬合的大模型時,咱們常常會觀察到,訓練偏差會隨着時間的推移逐漸下降但驗證集的偏差會再次上升,而且這種現象幾乎必定會出現。函數
所以,咱們考慮使訓練在最優容量(在前一篇文章說起)處終止,這種策略爲提早終止法。其基本思想:隨着訓練的進行,網絡使用愈來愈多的權值,直到訓練結果達到偏差曲面的極小值時全部的權值都被使用。經過增長訓練的迭代次數,使得網絡的複雜度也在增長。若是訓練在達到極小偏差值以前終止,那麼網絡將有效地使用更少的參數,且更不容易過擬合。性能
爲了有效使用提早終止法,須要知道什麼時候終止訓練,這裏使用一個方法:交叉驗證法 (cross validation)。它先將數據集劃分爲 k個大小類似的互斥子集, 即
每一個子集 都儘量保持數據分佈的一致性,即從
中經過分層採樣獲得. 而後,每次用k-1個子集的並集做爲訓練集,餘下的那個子集做爲測試集;這樣就可得到k組訓練/測試集,從而可進行 k次訓練和測試,最終返回的是這k個測試結果的均值。學習
訓練集用來計算梯度或者Jacobian矩陣,並肯定每次迭代中網絡權值的更新。驗證集是一個指示器,用來代表訓練數據點之間所造成的網絡函數發生了什麼,而且驗證集上的偏差值在整個訓練過程當中都將被監測。
當驗證集上的偏差在幾回迭代中均上升時,訓練終止,在驗證集上產生最小偏差的權值被用做最終訓練好的網絡的權值。
上圖展現了訓練過程當中網絡在訓練集和驗證集上的性能指標F(偏差平方和的變化)。藍色曲線爲真實,黑色曲線爲擬合。
左邊這張圖中雖然訓練過程當中訓練集的偏差持續降低,但驗證集上的偏差極小值出如今「a」點處。中間這張圖是在「a」點的網絡響應,擬合效果很好。右邊這張圖是「b」點的時的網絡響應,此時驗證集偏差變大,網絡過擬合。
小結
提早終止法在憑藉其有效性和簡單性在深度學習中很是流行。它在實際應用中須要說明的問題:
正則化:修改學習算法,使其下降泛化偏差而非訓練偏差。最新定義:旨在更好實現模型泛化的補充技術,即在測試集上獲得更好的表現。(Kukacka et al,2017)
另外一種理解:調節模型容許存儲的信息量,或對模型容許存儲的信息加以約束。若是一個網絡只能記住幾個模式,那麼優化過程會迫使模型集中學習最重要的模式,這樣更可能獲得良好的泛化。
正則化項即懲罰函數,該項對模型向量進行「懲罰「,從而避免單純最小二乘問題的過擬合問題。或者說正則化參數等價於對參數引入先驗分佈,使得模型複雜度變小(縮小解空間),對於噪聲以及異常值的魯棒性加強(泛化能力)。
正則化項本質上是一種先驗信息,整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中正則化項對應後驗估計中的先驗信息,損失函數對應後驗估計中的似然函數,二者的乘積即對應貝葉斯最大後驗估計的形式,若是你將這個貝葉斯最大後驗估計的形式取對數,即進行極大似然估計,你就會發現問題立馬變成了損失函數+正則化項的最優化問題形式。
正則化可按策略分爲三類
發現沒,提早終止法也屬於正則化的一種!至於爲何,請看後邊的分析。
這裏只介紹幾種常見的正則化法:L1/L2正則化法、Dropout法以及從貝葉斯角度理解正則化。
L1正則化是指在損失函數後加上權值向量w中各個元素的絕對值之和,即(lasso迴歸):
L2正則化是指在損失函數後加上權值向量w中各個元素的平方和而後再求平方根,即(嶺迴歸) :
通常都會在正則化項以前添加一個係數(如C),這個係數須要用戶設定,係數越大,正則化做用越明顯。
如上圖,參數空間(w1,w2)是一個二維平面,藍色部分是一個平方損失函數,黃色部分是正則項。藍色的那個圈,中心的點其實表明的就是損失函數最優的點,而同心圓則表明不一樣的參數相同的損失,可見隨着圓的擴大,損失增大。黃色的區域也相似,周邊的紅色線表示的是損失相同點的輪廓。
正則項的紅色輪廓線示平方損失的藍色輪廓線總要相交,才能使得二者加起來的損失最小,二者的所佔區域的相對大小,是由權重因子決定的。無論怎麼說,它們總有一個交叉點。
對於L2正則化,它的交點會使得w1或者w2的某一個維度特別小,而L1正則化則會使得w1或者w2的某一個維度等於0,所以得到所謂的稀疏化。
所以,L1正則化容易獲得稀疏解(0比較多)。L2正則化相比於L1正則來講,獲得的解比較平滑(不是稀疏),可是一樣可以保證解中接近於0(但不是等於0,因此相對平滑)的維度比較多,下降模型的複雜度。
從貝葉斯先驗的角度看,加入正則化項至關於加入了一種先驗,L1範數至關於加入了一個Laplacean先驗,L2範數至關於加入了一個Gausssian先驗,如圖:
拉普拉斯先驗在0的位置具備最高的機率密度,這就說明不少參數會變成0,這就是爲何L1正則化會具備能產生稀疏性的優良性質。
待補
待補
待補
1.尹恩·古德費洛.深度學習[M].北京:人民郵電出版社,2017.8
2.馬丁 T·哈根,章毅(譯).神經網絡設計.第二版.北京:機械出版社,2017.12
5.其它
😕/blog.csdn.net/dcrmg/article/details/80229189)
5.其它