《深度學習》之第七章正則化

正則化是增強模型泛化能力,減少測試誤差的策略;它可以在不過度增加偏差的情況下顯著的減少方差。

  1. 參數(shù)范數(shù)懲罰
參數(shù)范數(shù)懲罰正則化

L2范數(shù):w的平均平方和, 也叫weight decay(權(quán)重衰減),絕對值偏大權(quán)重會受到更大懲罰,使得所有權(quán)重傾向比較小。

L2范數(shù)正則化的理解

L2(或權(quán)重衰減)正則化對最佳 w 值的影響。實線橢圓表示沒有正則化目標的等值線。虛線圓圈表示 L2 正則化項的等值線。在 w ? 點,這兩個競爭目標達到平衡。目標函數(shù) J 的 Hessian 的第一維特征值很小。當從 w? 水平移動時,目標函數(shù)不會增加得太多。因為目標函數(shù)對這個方向沒 有強烈的偏好,所以正則化項對該軸具有強烈的影響。正則化項將 w1 拉向零。而目標函數(shù)對沿著第二維遠離 w? 的移動非常敏感。對應(yīng)的特征值較大,表示高曲率。因此,權(quán)重衰減對 w2 的位置影響相對較小。

L1范數(shù):w的平均絕對值之和。它會讓很多權(quán)重變?yōu)?,產(chǎn)生稀疏的解。 這種特性也導致L1經(jīng)常用在特征選擇上。

  1. 作為約束的范數(shù)懲罰

如果我們想約束 Ω(θ) 小于某個常數(shù) k,我們可以構(gòu)建廣義 Lagrange 函數(shù):

帶條件的約束的目標函數(shù)

我們可以把參數(shù)范數(shù)懲罰看 作對權(quán)重強加的約束。如果 Ω 是 L2 范數(shù),那么權(quán)重就是被約束在一個 L2 球中。如 果 Ω 是 L1 范數(shù),那么權(quán)重就是被約束在一個 L1 范數(shù)限制的區(qū)域中。

  1. 正則化和欠約束問題
    很多機器學習的方法需要對X'X是可逆的,但實際中X'X很可能是個奇異矩陣。 正則化的許多形式對應(yīng)求逆 X'X + aI, 這個正則化矩陣可以保證是可逆的。

  2. 數(shù)據(jù)集增強
    讓機器學習模型泛化得更好的最好辦法是使用更多的數(shù)據(jù)進行訓練。當然,在 實踐中,我們擁有的數(shù)據(jù)量是很有限的。解決這個問題的一種方法是創(chuàng)建假數(shù)據(jù)并添加到訓練集中。比如:圖片翻轉(zhuǎn),剪切,縮放,旋轉(zhuǎn)等。

  3. 噪聲魯棒性

  4. 半監(jiān)督學習

  5. 多任務(wù)學習
    多任務(wù)學習是通過合并幾個任務(wù)中的樣例(可以視為對參數(shù)施加的軟約束)來提高泛化的一種方式。額外的訓練樣本以同樣的方式將模型的參數(shù)推向泛化更好的方向,當模型的一部分在任務(wù)之間共享時,模型的這一部分更多地被約束為良好的值(假設(shè)共享是合理的),往往能更好地泛化。

  6. 提前終止
    當訓練有足夠的表示能力甚至會過擬合的大模型時,訓練誤差會隨著時間的推移逐漸降低但驗證集的誤差會再次上升。這意味著如果我們返回使驗證集誤差最低的參數(shù)設(shè)置,就可以獲得更好的模型 (因此,有希望獲得更好的測試誤差)。在每次驗證集誤差有所改善后,我們存儲模型參數(shù)的副本。當驗證集上的誤差在事先指定的循環(huán)次數(shù)內(nèi)沒有進一步改善時,算法終止。

提前終止的訓練示意圖
  1. 參數(shù)綁定和參數(shù)共享
    卷積神經(jīng)網(wǎng)絡(luò)就是參數(shù)共享的列子

  2. 稀疏表示
    前文所述的權(quán)重衰減直接懲罰模型參數(shù)。另一種策略是懲罰神經(jīng)網(wǎng)絡(luò)中的激活 單元,稀疏化激活單元。這種策略間接地對模型參數(shù)施加了復雜懲罰。

  3. Bagging 和其他集成方法
    Bagging(bootstrap aggregating)是通過結(jié)合幾個模型降低泛化誤差的技術(shù)。主要想法是分別訓練幾個不同的模型,然后讓所有模型表決測試樣例的輸出。這是機器學習中常規(guī)策略的一個例子,被稱為模型平均(model averaging)。采用這種策略的技術(shù)被稱為集成方法。
    模型平均(model averaging)奏效的原因是不同的模型通常不會在測試集上產(chǎn) 生完全相同的誤差。

不同的集成方法以不同的方式構(gòu)建集成模型。例如,集成的每個成員可以使用 不同的算法和目標函數(shù)訓練成完全不同的模型。
Bagging是一種允許重復多次使用同 一種模型、訓練算法和目標函數(shù)的方法。具體來說,Bagging涉及構(gòu)造 k 個不同的數(shù)據(jù)集。每個數(shù)據(jù)集從原始數(shù)據(jù)集中重 復采樣構(gòu)成,和原始數(shù)據(jù)集具有相同數(shù)量的樣例。這意味著,每個數(shù)據(jù)集以高概率 缺少一些來自原始數(shù)據(jù)集的例子,還包含若干重復的例子(如果所得訓練集與原始數(shù)據(jù)集大小相同)。模型 i 在數(shù)據(jù)集 i 上訓練。每個數(shù)據(jù)集所含樣本的差異導致了訓練模型之間的差異。

神經(jīng)網(wǎng)絡(luò)的解能達到足夠多的變化,可以從模型平均中受益 (即使所有模型都在同一數(shù)據(jù)集上訓練)。神經(jīng)網(wǎng)絡(luò)中隨機初始化的差異、小批量的隨機選擇、 超參數(shù)的差異或不同輸出的非確定性實現(xiàn)往往足以使得集成中的不同成員具有部分獨立的誤差。

  1. Dropout
    Dropout(Dropout) 提供了正則化一大類模型的方 法,計算方便但功能強大。在第一種近似下,Dropout可以被認為是集成大量深層神 經(jīng)網(wǎng)絡(luò)的實用Bagging方法。Bagging涉及訓練多個模型,并在每個測試樣本上評估多個模型。當每個模型都是一個很大的神經(jīng)網(wǎng)絡(luò)時,這似乎是不切實際的,因為訓 練和評估這樣的網(wǎng)絡(luò)需要花費很多運行時間和內(nèi)存。

在Bagging的情況下,所有模型都是獨立的;Dropout的情況下,所有模型共享參數(shù),其中每個模型繼承父神經(jīng)網(wǎng)絡(luò)參數(shù) 的不同子集。參數(shù)共享使得在有限可用的內(nèi)存下表示指數(shù)級數(shù)量的模型變得可能。

Dropout優(yōu)點:計算方便,不限制適用的模型或訓練過程,幾乎在所有使用分布式表示且可以用隨機梯度下降訓練的模型上都表現(xiàn)很好。

因為Dropout減少了模型的有效容量。為了抵消這種影響,我們必須增大模型規(guī)模和更多的訓練數(shù)據(jù)。對于非常大的數(shù)據(jù)集,正則化帶來的泛化誤差減少得很小,好處有限; 而使用Dropout和更大模型可能超過正則化帶來的好處!
同時也要注意:只有極少的訓練樣本時,Dropout不會很有效。

Dropout可以被看成是一種純粹高效近似Bagging的方法。更進一步的,Dropout不僅僅是訓練一個Bagging的集成模型,并且是共享隱藏單元的集成模型。這意味著無論其他隱藏單元是否在模型中,每個隱藏單元必須都能夠表現(xiàn)良好。隱藏單元必須準備好進行模型之間的交換和互換。Dropout正則化每個隱藏單元不僅是一個很好的特征,更要在許多情況下是良好的特征。相比獨立模型Bagging集成獲得泛化誤差,Dropout會帶來額外的改進。

  1. 對抗訓練
    在精度達到人類水平的神經(jīng)網(wǎng)絡(luò)上可以通過優(yōu)化過程故意構(gòu)造數(shù)據(jù)點,其上的誤差率接近100%! 模型在這個輸入點 x′ 的輸出與附近的數(shù)據(jù) 點 x 非常不同。在許多情況下,x′ 與 x 非常近似,人類觀察者不會察覺原始樣本和對抗樣本(adversarial example)之間的差異,但是網(wǎng)絡(luò)會作出非常不同的預(yù)測。
對抗樣本實例
  1. 切面距離、正切傳播和流形正切分類器
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容