一、影響模型泛性的因素有?什么是正則化技術?有什么用?
通常,影響模型泛化能力的因素有:
- 可調節參數的個數:可調節的參數過少,會造成模型過于簡單,欠擬合;過多,會造成成模型過于復雜,捕獲過多訓練數據中的噪聲或特定細節,過擬合。
- 參數采用的值:權重取值范圍較大,較大的權重值會導致模型對輸入數據更加敏感,從而可能捕獲訓練數據中的噪聲或特定細節,這會使模型變得過于復雜,容易過擬合訓練數據。
- 訓練數據量:數據越多,擬合數據模型就需要更加靈活,學習訓練數據中的噪聲和特定細節就變得更加困難。
深度學習中訓練模型由于數據的不足和訓練輪數的增加也可能導致模型學習到了訓練數據中的噪聲,模型的訓練誤差遠遠大于泛化誤差,模型在訓練數據上的表現遠遠好過在測試數據上的表現,這就是模型的過擬合。簡單來說就是由于練習題庫少,做題很多遍但是學習到的做題方法不夠,卻記住了練習題庫,導致做練習題分數很高,但是做新的考試題目就表現得很差。
過擬合一般取決于訓練數據量和模型的復雜程度這兩個因素,模型的復雜程度高,所以就會記住訓練數據中無關緊要的噪聲部分,對預測測試數據產生不良影響。
緩解模型過擬合一般有三種方式:
- 更多訓練數據:成本高,耗時長。
- 限制參數(特征)個數:過于生硬,參數過少模型容易過于簡單,參數過多模型容易過于復雜。
- 正則化技術:它是比限制參數個數更細粒度的調節模型復雜度的技術,一種避免模型過于復雜的技術,常見的正則化技術有權重衰減和暫退法。
二、權重衰減——限制參數“放飛自我”
權重衰減又叫做L2正則化,通過權重向量的L2范數度量模型的權重向量(模型參數)的復雜度,將這種范數度量作為懲罰函數添加到損失函數中,避免模型在訓練過程中權重參數變得過于復雜,造成過擬合。
2.1、簡單類比
考試前復習老師要求不要扣偏題怪題(防止模型過度關注噪聲),而是抓核心知識點(掌握主要特征),相當于老師劃定了考試范圍。就不會只學習帶項圈的貓的特征(項圈即噪聲),而遇到不戴項圈的貓時候就判定不是貓。
所謂的大道至簡,越簡潔的公式越具有普遍意義。比如:用大量小積木塊可以完整擬合訓練數據(比如特定形狀的橋),但是換形狀后就垮了;使用少量搭積木塊雖然不能很完美的擬合訓練數據,但是更容易搭出不同形狀的橋,形狀也更加穩定。
通過限制模型參數的大小,迫使模型學習更簡單、更通用的規律,而不是死記硬背訓練數據。它的本質是在擬合數據和保持簡單性之間找到平衡。
2.2、L2范數 VS L1范數
- L2(權重衰減)懲罰的是參數的平方和,對權重的大向量施加了巨大的懲罰,不會讓少數參數占據絕對的影響力,而是讓各個參數都對模型做出一定的貢獻,更好的保持了大量特征上的均勻分布權重,所以會讓參數趨近小而分散。
- L1懲罰的是絕對值之和,對于絕對值較小的參數,由于每次都會更靠近零,變成0后就不會再更新,所以L1會讓部分參數歸零,適合特征選擇。
三、暫退法——神經元隨機裝傻
3.1、核心思路
在訓練時,隨機讓一部分神經元“裝傻”(暫時失效),迫使模型不能過度依賴某些特定的神經元,必須學會用多樣化的路徑做預測。
3.2、類比
如果你是一個老師,你想要教會全班回答一個問題。如果只提問學霸,那么其他同學就會躺平,僅僅依靠學霸來應付提問。上面類似傳統的訓練,要想打破這種模型參數之間的特定依賴,每一層都依賴前一層輸出——即打破共適應性,提問的時候可以采用隨機抽取同學回答問題,不再是固定學霸回答,其他同學必須學習回答問題,進而訓練全班同學回答問題的能力——即使神經元隨機失效,稀疏化神經元依賴,相當于訓練了多個子模型,進而提高模型的泛化能力。
Dropout 是一種“以退為進”的策略,主要應用在神經網絡的訓練過程中的前向傳播階段,通過隨機讓神經元失效,強迫模型學習魯棒的特征,避免過擬合。它的本質是給訓練過程增加噪聲,讓模型在“不確定性”中變得更強大。
四、總結
-
Dropout:動態改變網絡結構,訓練多樣性子模型。
-
權重衰減:直接約束參數,從數學上控制模型復雜度。