深度學(xué)習(xí)tips-降低模型的方差

請(qǐng)雙擊666,沒點(diǎn)關(guān)注的老鐵們請(qǐng)點(diǎn)波關(guān)注。沒有簡(jiǎn)書賬號(hào)的老鐵們也可以關(guān)注CSDN同名博客。

bias和variance在深度學(xué)習(xí)中是兩個(gè)不同的概念,一個(gè)是偏差,一個(gè)是方差,這兩個(gè)中文名字反而更讓人混淆一點(diǎn)。

  • 偏差可以理解為訓(xùn)練出來的模型和真實(shí)數(shù)據(jù)分布的差距。
    例如偏差小,說明模型和真實(shí)分布相差不大;偏差很大,說明訓(xùn)練出來的模型和真實(shí)分布相差較大。例如只用了一個(gè)直線,進(jìn)行了一個(gè)復(fù)雜分布的二分類。很明顯這個(gè)模型的偏差是很大的。

  • 方差很好理解,在數(shù)學(xué)上就是統(tǒng)計(jì)模型離散程度的計(jì)量,在深度學(xué)習(xí)中,我個(gè)人把它看做可以代表模型的復(fù)雜度,或者說是對(duì)數(shù)據(jù)分布的擬合程度。方差越大,模型就越復(fù)雜,也就是說對(duì)訓(xùn)練集的擬合程度越好,直至過擬合。

綜上所述,我們需要一個(gè)偏差小一些,方差也不是太大的“適中”的模型。

如果訓(xùn)練好一個(gè)模型之后偏差大,我們可能是選擇的算法不好或者是模型不對(duì),需要修改模型。而方差大呢?(過擬合了)

以下是一些降低方差的方法并附上簡(jiǎn)單解釋:

  1. 增加數(shù)據(jù)集
    最顯而易見的辦法,模型過擬合了,增加數(shù)據(jù)集,然而很多時(shí)候并不會(huì)有我們希望的那么多數(shù)據(jù)集,所以重點(diǎn)是以下的方法。
    再說一些吳恩達(dá)介紹的trick:如果是圖像處理,可以把圖像反轉(zhuǎn),或者是在留下重要內(nèi)容的前提下的變換角度重新剪裁。這樣可以成倍增加數(shù)據(jù)集。

  2. 正則化 regularization
    就是在loss function后邊加一個(gè)罰項(xiàng)λ||w||22,用來代表模型的復(fù)雜度。這個(gè)罰項(xiàng)的具體含義是w的L2范式,也就是所有w的平方和。如果λ很大,也就是這個(gè)罰項(xiàng)占的比重很大,模型傾向于變得簡(jiǎn)單,λ小的話,模型傾向于變得相對(duì)復(fù)雜一點(diǎn)。
    這種方式的復(fù)雜之處在于要多次的訓(xùn)練才能找到一個(gè)較為合適的λ。

  3. dropout
    一種丟棄部分神經(jīng)元來使模型得到簡(jiǎn)化的方法。與L2正則化功能類似。每次在訓(xùn)練過程中,數(shù)據(jù)到達(dá)的每一層都會(huì)根據(jù)設(shè)置好的比例隨機(jī)放棄一些神經(jīng)元,因此模型不會(huì)再過度的“倚重”某些神經(jīng)元,給它們過大的權(quán)重,因?yàn)槊看斡行У纳窠?jīng)元都是不同的,從而所有神經(jīng)元都會(huì)獲得一定的權(quán)重。達(dá)到防止過擬合的效果。

  4. early stopping



    圖中黃線是訓(xùn)練集算是函數(shù),紅線是驗(yàn)證集損失函數(shù),可以看出,雖然訓(xùn)練集一直在降低,但是到了驗(yàn)證集的效果就不是那么理想,所以提前結(jié)束訓(xùn)練是一種方式。
    這種方式只需要一次訓(xùn)練即可,不需要重復(fù)多次來尋找合適的參數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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