泛統計理論初探——常見正則化技巧簡介

數據挖掘-正則化方法簡介

常見正則化方法介紹
   正則化方法是數據挖掘或者神經網絡應用裏常見的一種方法,該類方法其實是一種對於過擬合進行優化的思路,即當模型在訓練集和測試集的預測準確率差距非常大的時候,比如模型在訓練集預測準確率有98%,而在測試集預測的準確率只有70%,那麼這個時候就可能是模型訓練的過擬合了,需要使用多種方式加強模型的泛化能力,本文主要是介紹正則化方法來加強這種泛化能力。
   那麼正則化方法其實常見的就是L1正則化、L2正則化、DropOut方法,值得注意的是,前兩種方法的思路是在目標函數的基礎上增加一個懲罰項,使得原始目標函數不會收斂到局部最優解,而是另一個更好的最優解,這樣就可以防止原始的模型過擬合。第三種方法是一種策略,在神經網絡中使用的較多,處理思路是隨機丟掉一些神經元,即讓某些神經元“失活”,不參與整個神經網絡的訓練和學習,這種丟棄的思路也可以作爲模型增加泛化能力的一種方法。從某種程度來說,兩者也有相似性,因爲L1正則化和L2正則化其實也是一種參數丟棄,通過參數的模長來對目標函數進行約束,使得一些不重要的參數壓縮變爲0,從而達到正則化的效果。下面我們先對前兩種方法進行介紹,其中公式如下:
在這裏插入圖片描述
   上面的公式分別是L1正則化和L2正則化,我們發現其實L1正則化方法是參數的絕對值之和,而L2正則化方法是參數的平方之和,而lamda則是一個超參數,通過控制這個超參數的大小可以決定懲罰項的重要性,lamda設置的越大那麼懲罰項就越重要,但也有可能導致原本模型的欠擬合。下圖是對L1正則化和L2正則化的含義解釋,其中左邊是L2正則化、右邊是L1正則化。
在這裏插入圖片描述
   由於高維的參數向量不好展示,所以我們以二維的參數向量爲例,顯然如果只有參數w1和w2,那麼L2正則化必然是這兩個參數張成的一個圓,而L1正則化則是一個正方形或者說菱形。圖中的藍色圓環就是原始目標函數,而新的目標函數不僅需要原始目標函數最小,也需要懲罰項最小。同時我們根據上圖還可以發現,L1正則化方法是比較徹底的,把參數向量的其中一個參數壓縮成0,但是L2正則化方法是比較保守的,只是把其中一個參數的值變小了。
   在實際的問題上,其實一般常用的是L2正則化方法,因爲該方法是可導的並且不會使得參數直接失活,但是L1正則化方法這種讓參數失活的結果,經常被使用在特徵選擇的情況下,即在特徵工程中可以被使用到,它可以保留一些重要的特徵、拋棄不重要的特徵。在後續的研究中,有研究者也提出了L1正則化和L2正則化結合的彈性正則化方法,因爲L2正則化方法雖然比較優秀,但是它會受到參數波動的影響,因爲參數平方會放大那些較大的參數對於整體損失函數的影響,所以使用了彈性正則化的方法可以規避這個缺點。
   經過上述對L1和L2正則化方法的介紹,我們繼續簡單介紹一下dropout方法,這種方法其實是在神經網絡中使用的比較多,而且是針對全連接神經網絡使用的較多,一般在神經網絡中的隱藏層使用,其實現目標就是設定一個“失活概率p”,對於每一層的每一個神經元都用這個概率去判斷要不要使得這個神經元失活,最後達到如下圖的效果。
在這裏插入圖片描述
   其實這種dropout在某些特定類型的神經網絡中效果還是不錯的,因爲dropout不僅僅是一種正則化方法,還用到了集成學習的思路。由於每一次訓練過程中丟棄都是隨機的,所以每次都是一個不同的神經網絡,可以看作是原始神經網絡的一個子集,那麼通過多次的dropout就相當於構建了多個子神經網絡,那麼最終的神經網絡就是多個子神經網絡的一個集成,所以這種方法不僅可以降低模型的過擬合,還可以進一步提高準確率,但其缺點就是訓練起來較複雜。
   總的來說,正則化是提高模型泛化能力的一個很好的解決思路,當然還有其他的提高模型泛化能力的方法,我們在後面的文章會進行討論。對於初學者來說,弄清楚L1正則化和L2正則化的原理就可以更好地理解參數和目標函數的關係;而對於dropout方法的理解則是要結合實際,當使用神經網絡的過程中應用dropout方法會使得整體模型的穩健性和準確性要更好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章