Pytorch_第八篇_深度學習 (DeepLearning) 基礎 [4]---欠擬合、過擬合與正則化

深度學習 (DeepLearning) 基礎 [4]---欠擬合、過擬合與正則化


Introduce

在上一篇“深度學習 (DeepLearning) 基礎 [3]---梯度下降法”中我們介紹了梯度下降的主要思想以及優化算法。本文將繼續學習深度學習的基礎知識,主要涉及:

  • 欠擬合和過擬合
  • 正則化

以下均為個人學習筆記,若有錯誤望指出。


欠擬合和過擬合

要理解欠擬合和過擬合,我們需要先清楚一對概念,即偏差和方差。
偏差和方差是深度學習中非常有用的一對概念,尤其是可以幫助我們理解模型的欠擬合和過擬合

  • 偏差:模型對于訓練集的擬合能力,通俗理解來說,偏差代表模型能夠正確預測訓練集的程度(也就是說,模型在訓練集上表現出的精度)。偏差越高代表模型在訓練集上的精度越低。
  • 方差:模型對于除訓練集之外其他數據的預測能力,即泛化能力。通俗理解來說,方差代表模型能夠正確預測測試集的程度(也就是說,模型在測試集上表現出的精度)。方差越高代表模型在各測試集上的精度明顯低于訓練集上的精度。

理解了偏差和方差的概念之后,那模型欠擬合和過擬合又是什么呢?

  • 欠擬合對應于高偏差的情況,即模型不能很好地擬合訓練數據,在訓練集上的預測精度很低。如下圖所示(藍色線為預測的模型,可以發現并不能很好滴擬合訓練數據):
欠擬合
  • 過擬合對應于高方差的情況,即模型雖然在訓練集上的精度很高,但是在測試集上的表現確差強人意。這是由于模型過度擬合了訓練集,將訓練集特有的性質當成了所有數據集的一般性質,導致其在其他數據集上的泛化能力特別差。如下圖所示(藍色線為預測的模型,可以發現似乎過度擬合了訓練數據):

    過擬合

  • 正確模型的擬合曲線如下圖所示(與上面欠擬合和過擬合的曲線圖對比,可以更好地幫助我們理解欠擬合和過擬合):

正常擬合曲線

在理解了模型欠擬合和過擬合的概念之后,如果我們在訓練模型的過程中遇到了這兩類問題,我們怎么解決呢?

  • 解決欠擬合

    (1) 使用更復雜的網絡結構,如增加隱藏層數目,隱藏層結點數等。(因為神經網絡如果層數和節點數足夠的話,是可以模擬任何函數的

    (2) 訓練更長時間,即增加神經網絡模型的參數更新次數。(更新次數不夠可能使得模型還沒找到合適的參數使損失最小化,降低了模型精度

    (3) 使用其他更合適的神經網絡架構,如前饋神經網絡、卷積神經網絡(CNN)、循環神經網絡(RNN)、深度信念網絡(DBN)等等(后續將進一步學習各種類型的神經網絡);

  • 解決過擬合

    (1) 使用更多的訓練數據。(若是我們能把當前領域內所有的訓練數據都拿來學習個夠,那么我們的模型還會在這個領域的數據上表現差嗎?不可能的,對吧!

    (2) 為模型添加正則化模塊 (regularization)。(對于正則化概念以及為什么正則化能解決過擬合問題,在本文后續進行介紹

    (3) 使用其他更合適的神經網絡架構。

對于以上策略一般的思考順序,不論是欠擬合還是過擬合,當我們遇到了,都是優先考慮能不能使用上述中講到的 (1) 和 (2) 來解決。如果不行的話再考慮 (3),因為重構一個神經網絡的話相對于其他解決方法開銷比較大。


正則化

直觀理解:正則化是用來防止模型過擬合的一種方法,其做法是通過在模型損失函數中加入一項正則項,使得其在訓練數據擬合損失和模型復雜度中達到一種權衡。

通常加入正則化的損失函數為如下形式:

loss = E_{loss} + {1\over \lambda}\sum_j|w_j|^q
其中第一項為模型原本的損失函數,第二項
為正則化項,w為權值參數矩陣。若q=1,則為我們常用的L1正則化;若q=2,則為我們常用的L2正則化。

理解了正則化概念以及加入正則化的損失函數的形式之后,回歸到一個更重要的問題,即為什么正則化能夠防止模型過擬合呢?以下分別從三個角度來理解正則化在模型訓練中的作用。

(1) 從模型擬合曲線的函數形式來看

為了回答上述問題,我們需要先理解過擬合情況下學習出來的擬合函數是什么樣子的。可以看到上述過擬合部分的擬合曲線圖(emm,就是扭來扭去的那張),圖中的數據點實際上只需要一個二次函數就能夠很好擬合了但是從圖中來看,過擬合情況下學習到的函數,肯定是大于二次的高次函數了。 假設該過擬合得到的函數為p次函數,如下所示:
f = w_0 + w_1x + w_2x^2 + w_3x^3 + ... +w_px^p
實際上正確的擬合函數為二次函數,如下所示:
f = w_0 + w_1x + w_2x^2
我們可以發現,要是我們能夠更新權值參數w,使得w中的w0、w1和w2非0,而其余的權值均為0的話,我們是可以得到一個能夠比較好地擬合上述曲線的模型的。而正則化就是起到上述這個作用(讓一些不必要的權值參數為0),從而來防止模型過擬合的。

(2) 從神經網絡模型的復雜度來看

現在回過頭來看上述對于正則化的直觀理解,里面有講到模型復雜度,那模型復雜度是什么呀?我們可以將其通俗理解成權值參數的個數,因為網絡的權值參數越多代表著神經網絡更龐大(擁有更多的層和更多的節點以及更多的邊),自然而然模型就更復雜了(如果網絡中某條邊的權重w為0的話,那這條邊不就沒了嘛,那模型不就更簡單一些了嘛,這就是正則化要做的事吧,以上為個人理解)。

(3) 從加了正則化項的損失函數來看

現在再來看上述加入正則化的損失函數的一般形式,第一項為原本的損失函數,第二項為正則化項。以下分為兩點來進行分析

  • 假設沒有添加正則化項的話,模型訓練的結果會使得損失函數盡可能小,也就是說使得模型擬合訓練樣本集的能力最大化,這就可能導致模型將訓練樣本集的一些特殊性質當成數據的普遍性質,使得模型泛化能力差,從而導致過擬合現象。
  • 假設添加了正則項,正則項起到什么作用了?首先我們的目標是最小化損失函數,從某種程度上也需要最小化正則項,而由上述L1、L2正則項的形式來看,最小化正則項無非是把其中的某些不重要的權值參數wi設置為0,或者設置一個比較小的值。因此從這個層面上來理解,正則化也是通過將某些不重要權值參數設置為0來防止過擬合的。

需要說明的是:雖然L1正則化和L2正則化都可以防止模型過擬合,但是L1正則化相比于L2正則化會更容易產生稀疏權值矩陣(也就是說,權值矩陣中更多的權值為0)。至于原因,由于個人能力問題,可能解釋不太清楚,可以參考知乎問題--L1 相比于 L2 為什么容易獲得稀疏解?


本文參考-1

本文參考-2

本文參考-3

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容