【深度学习】常见的提高模型泛化能力的方法
前言
模型的泛化能力是其是否能良好地應(yīng)用的標準,因此如何通過有限的數(shù)據(jù)訓(xùn)練泛化能力更好的模型也是深度學(xué)習(xí)研究的重要問題。僅在數(shù)據(jù)集上高度擬合而無法對之外的數(shù)據(jù)進行正確的預(yù)測顯然是不行的。本文將不斷總結(jié)相關(guān)的一些方法。
一、模型角度
Dropout
首先隨機(臨時)刪掉網(wǎng)絡(luò)中一半的隱藏神經(jīng)元,輸入輸出神經(jīng)元保持不變。然后把輸入x通過修改后的網(wǎng)絡(luò)前向傳播,然后把得到的損失結(jié)果通過修改的網(wǎng)絡(luò)反向傳播。一小批訓(xùn)練樣本執(zhí)行完這個過程后,在沒有被刪除的神經(jīng)元上按照隨機梯度下降法更新對應(yīng)的參數(shù)(w,b),然后繼續(xù)重復(fù)這一過程。
Dropout簡單來說是是模型節(jié)點隨機失活,這樣使之不會太依賴數(shù)據(jù)的某些局部特征。
那么為什么這樣做能提高模型返回能力呢?
取平均的作用
模型的隨機失活最終相當于得到了不同的模型,然后類似于投票取各個子模型普遍認同的解,這樣將更具有參考價值。有一些集成學(xué)習(xí)的意味,最終能提高模型的泛化效果。
減少神經(jīng)元之間復(fù)雜的共適應(yīng)關(guān)系
因為dropout程序?qū)е聝蓚€神經(jīng)元不一定每次都在一個dropout網(wǎng)絡(luò)中出現(xiàn)。這樣權(quán)值的更新不再依賴于有固定關(guān)系的隱含節(jié)點的共同作用,阻止了某些特征僅僅在其它特定特征下才有效果的情況 。迫使網(wǎng)絡(luò)去學(xué)習(xí)更加魯棒的特征 ,這些特征在其它的神經(jīng)元的隨機子集中也存在。
更深的模型
模型更深可以使之學(xué)到更為抽象的特征,從而提高模型對物體認識的層次。
更寬的模型
其實是說綜合多種特征,還是集成學(xué)習(xí)的思路,在模型設(shè)計的時候?qū)⒍鄠€維度的特征進行融合,得到更加有效的信息。這也是提高模型學(xué)習(xí)效果的一個改進思路。
正則化
模型的損失函數(shù)加入正則項可以防止參數(shù)過大,防止過分擬合從而提高泛化能力。
二、數(shù)據(jù)角度
更多的數(shù)據(jù)
這個不怎么需要解釋,更多的數(shù)據(jù)能夠讓模型更充分的認識所要識別的問題,學(xué)到更加共性的信息
數(shù)據(jù)增強
數(shù)據(jù)增強就比較好理解了,比如識別圖片中的某個物體,不能因為圖片放大或縮小、比例改變、圖像截取、角度改變以及翻轉(zhuǎn)就識別不出來了,所以對數(shù)據(jù)進行這類操作一方面可以擴充數(shù)據(jù)集,另一方面也能去除像比例關(guān)系這種無關(guān)因素對訓(xùn)練的影響,從而提高模型的泛化能力。
更好的特征
比如對數(shù)據(jù)進行更好的的標注,讓其對所識別物體的認識更加符合人的思維,或者說認識到更加本質(zhì)的信息,或者說對問題進行等價轉(zhuǎn)換,能夠有更好地學(xué)習(xí)效果。
三、訓(xùn)練角度
小的Batch Size
這里在之前有討論過,經(jīng)過測試小批量數(shù)據(jù)訓(xùn)練能提高模型的泛化能力。
提前結(jié)束
這里即防止模型過度擬合,當模型在驗證集上效果下降時及時停止。
總結(jié)
提高模型的效果可以從很多角度出發(fā),包括數(shù)據(jù)角度、模型設(shè)計角度與訓(xùn)練角度,其實就是我們深度學(xué)習(xí)問題的各個階段,都有改進與提升的余地。
參考資料
https://blog.csdn.net/program_developer/article/details/80737724
https://blog.csdn.net/starzhou/article/details/52754436
總結(jié)
以上是生活随笔為你收集整理的【深度学习】常见的提高模型泛化能力的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 艾默生流量计选择电极应考虑的因素
- 下一篇: 深度学习提高泛化能力的技术