【深度學習】正則化技術全面了解

1、簡介

正則化就是結構風險最小化策略的實現, 是在經驗風險最小化的情況下加入一個正則化項或者罰項。

正則化技術令參數數量多於輸入數據量的網絡避免產生過擬合現象。正則化通過避免訓練完美擬合數據樣本的係數而有助於算法的泛化。為了防止過擬合, 增加訓練樣本是一個好的解決方案。此外, 還可使用數據增強、 L1正則化、 L2 正則化、 Dropout、 DropConnect 和早停(Early stopping) 法等。

2、數據增強

數據增強是提升算法性能、 滿足深度學習模型對大量數據的需求的重要工具。數據增強通過向訓練數據添加轉換或擾動來人工增加訓練數據集。數據增強技術如水平或垂直翻轉圖像、 裁剪、 色彩變換、 擴展和旋轉通常應用在視覺表象和圖像分類中。(後續的推文會仔細解釋和實踐)

3、L2正則化

L2 正則化就是在損失函數後面增加上 L2 正則化項, 公式為:

其中 L0為原始損失函數, 後面部分為 L2 正則化項。L2 正則化項為所有權值的平方和除以訓練集中的樣本大小 n, λ∈ R 是引入的正則化項係數, 用來調節正則項和原始損失值 L0 的比重, 係數 1/2 時方便求導時進行約簡。 對 L2 正則化公式進行求導後得到:

將上述公式代入梯度下降公式, L2 正則化後權值 w 的更新為:

沒有使用L2正則化時權值w前面的係數為1,使用L2正則化後權值w前面的係數為 1-ηλ/n, 其中η、λ、n 為正數,使得權值w的係數恆小於1,因此可以看出L2正則化就是用來懲罰特徵的權值w的, 學術上稱之為權重衰減。

L2正則化確實能夠讓權值變得更小,它可以用於防止過擬合的原因在於更小的權值表示神經網絡的複雜度更低、網絡參數越小,這說明模型相對簡單,越簡單的模型引起過度擬合的可能性越小。

4、 L1 正則化

L1 正則化時原始的損失函數後面加上一個 L1 正則化項, 即權值 w 絕對值的和除以 n, L1 正則化公式為:

當權值為正時,更新後權值變小;當權值為負時, 更新後權值變大。因此 L1 正則化的目的是讓權值趨向於 0,使得神經網絡的權值儘可能小, 也就相當於減小了網絡的複雜度, 防止了過擬合。

在實際應用中,一般使用L2正則化。因為L1範式會產生稀疏解,具有一定的特徵選擇能力,對求解高維特徵空間比較有用;L2 範式主要是為了防止過擬合。

5、 L1 和 L2 正則化的對比

L1和L2正則化是最常用的正則化方法。L1正則化向目標函數添加正則化項,以減少參數的絕對值總和;而L2正則化中, 添加正則化項的目的在於減少參數平方的總和。根據之前的研究,L1正則化中的很多參數向量是稀疏向量,因為很多模型導致參數趨近於0,因此它常用於特徵選擇設置中。機器學習中最常用的正則化方法是對權重施加L2範數約束。

線性回歸中,使用L1正則化的為Lasso回歸,使用L2正則化的為Ridge回歸(嶺回歸),既使用L1正則又使用L2正則的為 ElasticNet。

5.1、 為什麼 L1 和 L2 正則化可以防止過擬合?

擬合過程中通常都傾向於讓權值儘可能小,最後構造一個所有參數都比較小的模型。因為一般認為參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。可以設想一下對於一個線性回歸方程,若參數很大,那麼只要數據偏移一點點,就會對結果造成很大的影響;但如果參數足夠小,數據偏移得多一點也不會對結果造成什麼影響,即抗擾動能力強。

L1&L2正則化會使模型偏好於更小的權值。更小的權值意味着更低的模型複雜度;添加L1&L2正則化相當於為模型添加了某種先驗,限制了參數的分佈,從而降低了模型的複雜度。模型的複雜度降低, 意味着模型對於噪聲與異常點的抗干擾性的能力增強,從而提高模型的泛化能力。——直觀來說,就是對訓練數據的擬合剛剛好,不會過分擬合訓練數據(比如異常點,噪聲)。

5.2、 為什麼 L1 能使得權值稀疏?

使用0範數來正則化參數,也可以使大部分參數為0,實現稀疏,但是0範數的優化求解特性不如1範數好,所以通常用1範數來實現稀疏。

L1 與 L2 的相同點: 都可以限制模型的學習能力,即通過限制參數的規模,使模型偏好於權值較小的目標函數,防止過擬合。

L1 與 L2 的不同點: L1正則化可以產生更稀疏的權值矩陣,可以用於特徵選擇, 同時一定程度上防止過擬合;

L2正則化主要用於防止模型過擬合L1正則化適用於特徵之間有關聯的情況;

L2正則化適用於特徵之間沒有關聯的情況L1相對於L2更能實現權值稀疏,是由他們本身的計算方式決定的,L1是各元素絕對值之和,L2是各元素平方和的根,在對不同參數進行懲罰時,L1無論參數大小如何,對它們的懲罰值都相同,導致那些參數大小和懲罰值相等的參數,一減就變為 0,而L2對參數的懲罰值是根據參數本身的大小來變化的,越小的參數懲罰值越小,越大的參數懲罰值越大,所以最終使得所有參數都接近 0,但不會等於0。

6、 Dropout

Bagging是通過結合多個模型降低泛化誤差的技術,主要的做法是分別訓練幾個不同的模型,然後讓所有模型表決測試樣例的輸出。而Dropout可以被認為是集成了大量深層神經網絡的Bagging方法, 因此它提供了一種廉價的Bagging集成近似方法,能夠訓練和評估值數據數量的神經網絡。

Dropout指暫時丟棄一部分神經元及其連接。隨機丟棄神經元可以防止過擬合,同時指數級、高效地連接不同網絡架構。神經元被丟棄的概率為1 – p,減少神經元之間的共適應。隱藏層通常以0.5的概率丟棄神經元。使用完整網絡(每個節點的輸出權重為 p)對所有 2^n 個dropout神經元的樣本平均值進行近似計算。Dropout顯著降低了過擬合,同時通過避免在訓練數據上的訓練節點提高了算法的學習速度。

7、 Drop Connect

Drop Connect是另一種減少算法過擬合的正則化策略,是 Dropout的一般化。在Drop Connect的過程中需要將網絡架構權重的一個隨機選擇子集設置為零,取代了在Dropout中對每個層隨機選擇激活函數的子集設置為零的做法。由於每個單元接收來自過去層單元的隨機子集的輸入,Drop Connect和 Dropout都可以獲得有限的泛化性能。Drop Connect和 Dropout相似的地方在於它涉及在模型中引入稀疏性,不同之處在於它引入的是權重的稀疏性而不是層的輸出向量的稀疏性。

8、 最大約束範式

最大約束範式就是對權值進行約束,限制權值的大小,對每個神經元的權重絕對值給予限制。實際操作中先對所有參數進行正常的更新,然後通過限制每個神經元的權重矢量使其滿足關係式:

其中c∈R常用取值為3或4。最大約束範式的特點是對權值的更新進行了約束,即使學習率很大,也不會因網絡參數發生膨脹導致過擬合。

9、 基於優化過程的正則化:早停法

早停法可以限制模型最小化代價函數所需的訓練迭代次數。早停法通常用於防止訓練中過度表達的模型泛化性能差。如果迭代次數太少,算法容易欠擬合(方差較小,偏差較大),而迭代次數太多,算法容易過擬合(方差較大,偏差較小)。早停法通過確定迭代次數解決這個問題,不需要對特定值進行手動設置。

10、 基於函數模型的正則化

10.1、 參數共享

在同一網絡的多個部分中重用一定的可訓練參數,這種方法稱為權值共享。當兩個模型執行足夠相似的分類任務並且具有相似的輸入/輸出分佈時,模型參數之間應當存在一些相關性, 這時認為模型參數具有一定的可重用性,應用這一正則化方法可以使得模型比使用單獨訓練參數的模型更加簡單。

目前,較為廣泛地應用權重共享作為正則化方法的模型之一是卷積神經網絡,它通過在圖像的多位置共享權值參數從而對有關特徵提取的平移不變性和局部性的先驗知識進行了編碼。此外,權重共享有效降低了卷積神經網絡中需要學習的權重的參數數量,支持網絡在不斷增加訓練數據的同時向更深處進行擴展。使用權值共享的模型的另一個例子就是自動編碼器,將編碼部分與相應的Sigmoid層參數共享,實現網絡的構建。

10.2、 噪聲標籤

在模型輸入部分添加噪聲是數據集擴增的一種主要方式。將噪聲添加到模型的隱藏單元可以得到常用的噪聲模型;噪聲模型的例子就是循環神經網絡,通過噪聲添加到模型權重從而轉換到一個有關權重的貝葉斯推斷的隨機實現。通過貝葉斯推理的學習過程表現權重的不確定性,是一種使用的隨機方法,此外,隨機池化通過向模型的各個部分注入隨機噪聲賦予模型隨機性實現了確定性模型隨機泛化。向輸出目標添加噪聲的一個重要應用就是標籤平滑。

10.3、 標籤平滑

標籤平滑通過將 softmax 函數明確分類結果替換為有關輸出數量的比值, 對模型進行正則化, 它的優勢就是能夠防止模型陷入精確概率求解並且不影響正常的分類結果, 與之相關的正則化方法是 Mixup。令 x 為樣本, y 為標籤, 我們可以從訓練數據(xi,yi)和(xj,yj)中創造出虛擬訓練樣本, 用於增強數據集的魯棒性:

權重λ 是隨機數, 線性混合方法是簡單的點對點混合。

10.4、 多任務學習

多任務學習是一種比較複雜的正則化方法,通過合併多個任務中的樣例提高網絡泛化。它可以與半監督學習進行結合,從而實現無標記的數據在輔助任務上的應用。在元學習中也使用類似的任務共享概念,即來自同一個領域的多個任務按順序學習並使用之前獲得知識作為新任務的偏置;而在遷移學習中則將來自於一個領域的知識遷移到另一個領域,從而實現多任務學習。