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

深度學(xué)習(xí) (DeepLearning) 基礎(chǔ) [4]---欠擬合墓卦、過擬合與正則化


Introduce

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

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

以下均為個人學(xué)習(xí)筆記匈棘,若有錯誤望指出。


欠擬合和過擬合

要理解欠擬合和過擬合析命,我們需要先清楚一對概念主卫,即偏差和方差。
偏差和方差是深度學(xué)習(xí)中非常有用的一對概念鹃愤,尤其是可以幫助我們理解模型的欠擬合和過擬合簇搅。

  • 偏差:模型對于訓(xùn)練集的擬合能力,通俗理解來說软吐,偏差代表模型能夠正確預(yù)測訓(xùn)練集的程度(也就是說瘩将,模型在訓(xùn)練集上表現(xiàn)出的精度)。偏差越高代表模型在訓(xùn)練集上的精度越低。
  • 方差:模型對于除訓(xùn)練集之外其他數(shù)據(jù)的預(yù)測能力姿现,即泛化能力肠仪。通俗理解來說,方差代表模型能夠正確預(yù)測測試集的程度(也就是說备典,模型在測試集上表現(xiàn)出的精度)异旧。方差越高代表模型在各測試集上的精度明顯低于訓(xùn)練集上的精度。

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

  • 欠擬合對應(yīng)于高偏差的情況,即模型不能很好地擬合訓(xùn)練數(shù)據(jù)拌屏,在訓(xùn)練集上的預(yù)測精度很低潮针。如下圖所示(藍色線為預(yù)測的模型,可以發(fā)現(xiàn)并不能很好滴擬合訓(xùn)練數(shù)據(jù)):
欠擬合
  • 過擬合對應(yīng)于高方差的情況槐壳,即模型雖然在訓(xùn)練集上的精度很高然低,但是在測試集上的表現(xiàn)確差強人意。這是由于模型過度擬合了訓(xùn)練集务唐,將訓(xùn)練集特有的性質(zhì)當(dāng)成了所有數(shù)據(jù)集的一般性質(zhì)雳攘,導(dǎo)致其在其他數(shù)據(jù)集上的泛化能力特別差。如下圖所示(藍色線為預(yù)測的模型枫笛,可以發(fā)現(xiàn)似乎過度擬合了訓(xùn)練數(shù)據(jù)):

    過擬合

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

正常擬合曲線

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

  • 解決欠擬合

    (1) 使用更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),如增加隱藏層數(shù)目啊楚,隱藏層結(jié)點數(shù)等吠冤。(因為神經(jīng)網(wǎng)絡(luò)如果層數(shù)和節(jié)點數(shù)足夠的話,是可以模擬任何函數(shù)的

    (2) 訓(xùn)練更長時間恭理,即增加神經(jīng)網(wǎng)絡(luò)模型的參數(shù)更新次數(shù)拯辙。(更新次數(shù)不夠可能使得模型還沒找到合適的參數(shù)使損失最小化,降低了模型精度

    (3) 使用其他更合適的神經(jīng)網(wǎng)絡(luò)架構(gòu)颜价,如前饋神經(jīng)網(wǎng)絡(luò)涯保、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)周伦、深度信念網(wǎng)絡(luò)(DBN)等等(后續(xù)將進一步學(xué)習(xí)各種類型的神經(jīng)網(wǎng)絡(luò))夕春;

  • 解決過擬合

    (1) 使用更多的訓(xùn)練數(shù)據(jù)。(若是我們能把當(dāng)前領(lǐng)域內(nèi)所有的訓(xùn)練數(shù)據(jù)都拿來學(xué)習(xí)個夠专挪,那么我們的模型還會在這個領(lǐng)域的數(shù)據(jù)上表現(xiàn)差嗎及志?不可能的片排,對吧!

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

    (3) 使用其他更合適的神經(jīng)網(wǎng)絡(luò)架構(gòu)。

對于以上策略一般的思考順序锌畸,不論是欠擬合還是過擬合,當(dāng)我們遇到了靖避,都是優(yōu)先考慮能不能使用上述中講到的 (1) 和 (2) 來解決潭枣。如果不行的話再考慮 (3),因為重構(gòu)一個神經(jīng)網(wǎng)絡(luò)的話相對于其他解決方法開銷比較大幻捏。


正則化

直觀理解:正則化是用來防止模型過擬合的一種方法盆犁,其做法是通過在模型損失函數(shù)中加入一項正則項,使得其在訓(xùn)練數(shù)據(jù)擬合損失和模型復(fù)雜度中達到一種權(quán)衡篡九。

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

loss = E_{loss} + {1\over \lambda}\sum_j|w_j|^q
其中第一項為模型原本的損失函數(shù)谐岁,第二項
為正則化項,w為權(quán)值參數(shù)矩陣榛臼。若q=1伊佃,則為我們常用的L1正則化;若q=2沛善,則為我們常用的L2正則化航揉。

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

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

為了回答上述問題尤蛮,我們需要先理解過擬合情況下學(xué)習(xí)出來的擬合函數(shù)是什么樣子的媳友。可以看到上述過擬合部分的擬合曲線圖(emm产捞,就是扭來扭去的那張)醇锚,圖中的數(shù)據(jù)點實際上只需要一個二次函數(shù)就能夠很好擬合了但是從圖中來看轧葛,過擬合情況下學(xué)習(xí)到的函數(shù)搂抒,肯定是大于二次的高次函數(shù)了。 假設(shè)該過擬合得到的函數(shù)為p次函數(shù)尿扯,如下所示:
f = w_0 + w_1x + w_2x^2 + w_3x^3 + ... +w_px^p
實際上正確的擬合函數(shù)為二次函數(shù)求晶,如下所示:
f = w_0 + w_1x + w_2x^2
我們可以發(fā)現(xiàn),要是我們能夠更新權(quán)值參數(shù)w衷笋,使得w中的w0芳杏、w1和w2非0矩屁,而其余的權(quán)值均為0的話,我們是可以得到一個能夠比較好地擬合上述曲線的模型的爵赵。而正則化就是起到上述這個作用(讓一些不必要的權(quán)值參數(shù)為0)吝秕,從而來防止模型過擬合的。

(2) 從神經(jīng)網(wǎng)絡(luò)模型的復(fù)雜度來看

現(xiàn)在回過頭來看上述對于正則化的直觀理解空幻,里面有講到模型復(fù)雜度烁峭,那模型復(fù)雜度是什么呀?我們可以將其通俗理解成權(quán)值參數(shù)的個數(shù)秕铛,因為網(wǎng)絡(luò)的權(quán)值參數(shù)越多代表著神經(jīng)網(wǎng)絡(luò)更龐大(擁有更多的層和更多的節(jié)點以及更多的邊)约郁,自然而然模型就更復(fù)雜了(如果網(wǎng)絡(luò)中某條邊的權(quán)重w為0的話,那這條邊不就沒了嘛但两,那模型不就更簡單一些了嘛鬓梅,這就是正則化要做的事吧,以上為個人理解)谨湘。

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

現(xiàn)在再來看上述加入正則化的損失函數(shù)的一般形式绽快,第一項為原本的損失函數(shù),第二項為正則化項紧阔。以下分為兩點來進行分析

  • 假設(shè)沒有添加正則化項的話坊罢,模型訓(xùn)練的結(jié)果會使得損失函數(shù)盡可能小,也就是說使得模型擬合訓(xùn)練樣本集的能力最大化寓辱,這就可能導(dǎo)致模型將訓(xùn)練樣本集的一些特殊性質(zhì)當(dāng)成數(shù)據(jù)的普遍性質(zhì)艘绍,使得模型泛化能力差,從而導(dǎo)致過擬合現(xiàn)象秫筏。
  • 假設(shè)添加了正則項诱鞠,正則項起到什么作用了?首先我們的目標(biāo)是最小化損失函數(shù)这敬,從某種程度上也需要最小化正則項航夺,而由上述L1、L2正則項的形式來看崔涂,最小化正則項無非是把其中的某些不重要的權(quán)值參數(shù)wi設(shè)置為0阳掐,或者設(shè)置一個比較小的值。因此從這個層面上來理解冷蚂,正則化也是通過將某些不重要權(quán)值參數(shù)設(shè)置為0來防止過擬合的缭保。

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


本文參考-1

本文參考-2

本文參考-3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市忧额,隨后出現(xiàn)的幾起案子厘肮,更是在濱河造成了極大的恐慌,老刑警劉巖睦番,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件类茂,死亡現(xiàn)場離奇詭異,居然都是意外死亡托嚣,警方通過查閱死者的電腦和手機大咱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來注益,“玉大人,你說我怎么就攤上這事溯捆〕笊Γ” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵提揍,是天一觀的道長啤月。 經(jīng)常有香客問我,道長劳跃,這世上最難降的妖魔是什么谎仲? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮刨仑,結(jié)果婚禮上郑诺,老公的妹妹穿的比我還像新娘。我一直安慰自己杉武,他們只是感情好辙诞,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轻抱,像睡著了一般飞涂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祈搜,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天较店,我揣著相機與錄音,去河邊找鬼容燕。 笑死梁呈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缰趋。 我是一名探鬼主播捧杉,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼陕见,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了味抖?” 一聲冷哼從身側(cè)響起评甜,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仔涩,沒想到半個月后忍坷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡熔脂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年佩研,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霞揉。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡旬薯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出适秩,到底是詐尸還是另有隱情绊序,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布秽荞,位于F島的核電站骤公,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扬跋。R本人自食惡果不足惜阶捆,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钦听。 院中可真熱鬧洒试,春花似錦、人聲如沸朴上。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽余指。三九已至捕犬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酵镜,已是汗流浹背碉碉。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留淮韭,地道東北人垢粮。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像靠粪,于是被迫代替她去往敵國和親蜡吧。 傳聞我的和親對象是個殘疾皇子毫蚓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容