1. 程式人生 > >AI聖經-深度學習-讀書筆記(七)-深度學習中的正則化

AI聖經-深度學習-讀書筆記(七)-深度學習中的正則化

深度學習中的正則化

0 簡介

機器學習中的一個核心問題是設計不僅在訓練資料上表現好,而且能在新輸入上泛化好的演算法。採用顯式減少測試誤差(可能會增加訓練誤差)的策略稱為正則化。

在深度學習的背景下,大多數正則化策略都會對估計進行正則化(以偏差的增加換取方差的減小),我們的實現一個好的情境就是顯著減少方差而不過度增加偏差

模型族訓練的三種情況:

①不管真實資料的生成過程—-欠擬合,高偏差;

②匹配真實資料的生成過程—-較好擬合;

③除了包括匹配真實的資料生成過程,還包括許多其他可能的生成過程—-方差主導過擬合

正則化的目標是使模型從第三種情況轉化為第二種情況。

從最小化泛化誤差的意義上,最好的擬合模型是一個適當正則化的大型模型。

1 引數範數的懲罰

J^(θ;X,y)=J(θ;X,y)+αΩ(θ)

其中α[0,),α越大,對應正則化懲罰越大

我們通常只對權重做懲罰而不對偏置做正則懲罰,每個權重會指定兩個變數如何相互作用,而偏置只控制一個單變數,這意味著我們不對其進行正則化也不會導致太大的方差。此外,正則化偏置可能會導致明顯的欠擬合。

在神經網路的情況下,有時希望對網路的每一層使用單獨的懲罰,並分配不同的α係數。尋找合適的多個超引數額代價很大,因此為了減小搜尋空間,我們會在所有層使用相同的權重衰減,即L2引數正則化。

1.1 L2引數正則化

L2正則化是指權值向量w中各個元素的平方和讓然後再求平方根

L2正則化可以理解為每次移除權重的x%

1.2 L1正則化

L1正則化是指權值向量w中,各個元素的絕對值之和

L1正則化可以理解為每次從權重中減去一個常數

L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇

2 作為約束範數懲罰

我們可以把引數範數懲罰看做對權重強加的約束。如果Ω是L2範數,那麼權重就是被約束在一個L2球中,如果Ω是L1範數,那麼權重就是被約束在一個L1範數限制的區域中。較大的α,將得到一個較小的約束區域,較大的α,將得到一個較大的約束區域。此種方式為隱式地限制,即增加懲罰,所謂懲罰就是對損失函式中的某一些引數做一些限制。

通過重投影實現的顯式約束只在權重變大並試圖離開限制區域時產生作用,重投影的顯式約束還對優化過程增加了一定穩定性。

分別限制每一列的範數可以防止某一隱藏單元有非常大的權重。在實踐中,列範數的限制總是通過重投影的顯式約束來實現。

3 正則化和欠約束問題

大多數形式的正則化能夠保證應用於欠定問題(不可逆問題)的迭代方法收斂。

4 資料集增強

讓機器學習模型泛化得更好的最好辦法是使用最多的資料進行訓練。但是由於現實生活中,資料量有限,解決這個問題的一種辦法就是建立假資料並新增到訓練集中。

資料集增強對語音識別任務也是有效的。

在神經網路的輸入層注入噪聲也可以看做資料增強的一種方式。但是,神經網路被證明對噪聲不是非常健壯。改善神經網路健壯性的方法之一是簡單地將隨機噪聲新增到輸入再進行訓練。(輸入噪聲注入是一些無監督學習演算法的一部分)

通常情況下,人工設計的資料集增強方案可以大大減少機器學習技術的泛化誤差。

5 噪聲的魯棒性

對於某些模型而言,向輸入新增方差極小的噪聲等價於對權重施加範數懲罰。在一般情況下,注入噪聲遠比簡單地收縮引數強大,特別是噪聲被新增到隱藏單元時會更強大(dropout)。

另一種正則化模型的噪聲使用方式是將其加到權重。這項技術主要應用於迴圈神經網路。

向輸出目標註入噪聲

大多數資料集的y標籤都有一定錯誤。錯誤的y不利於最大化logp(y|x)。避免這種情況的一種方法是顯式地對標籤上的噪聲進行建模。

使用softmax函式和明確目標的最大似然學習可能永遠不會收斂—-softmax函式永遠無法真正預測0概率和1概率,因此他會繼續學習越來越大的權重,使預測更極端。使用如權重衰減等其他正則化策略能夠防止這種情況。

標籤平滑的優勢是能夠防止模型追求確切概率而不影響模型學習非正確分類。

6 半監督學習

學習表示的目的是使相同類中的樣本有類似的表示。

7 多工學習

多工學習是通過合併幾個任務中的樣例來提高泛化得一種方式。正如額外的訓練樣本能夠將模型引數推向具有更好泛化能力的值一樣,當模型的一部分被多個額外的任務共享是,這部分將被約束為良好的值(如果共享合理),通常會帶來更好的泛化能力。

8 提前終止

當訓練有足夠的表示能力甚至會過擬合的大模型時,我們經常觀察到,訓練誤差會隨著時間的推移逐漸降低但驗證集的誤差會再次上升。這種現象幾乎一定會出現的。

提前終止即在每次驗證集誤差有所改善之後,我們儲存模型引數的副本。這可能是深度學習中最常用的正則化形式,它的流行主要是因為它的有效性和簡單性。

我們可以認為提前終止是非常高效的超引數選擇演算法。大多數超引數的選擇必須使用高代價的猜測和檢查過程,我們需要在訓練開始時,猜測一個超引數,然後執行幾個步驟來檢查它的訓練效果。通過提前終止自動選擇超引數的唯一顯著的代價是訓練期間要定期評估驗證集。另一個提前終止的額外代價是需要保持最佳的引數副本。

提前終止是一種非常不顯眼的正則化形式,它幾乎不需要改變基本訓練過程、目標函式或一組允許的引數值。相對於權重衰減,必須小心不能使用太多的權重衰減,以防網路陷入不良區域性極小點。

提前終止通常涉及監控驗證集誤差,以便在空間特別好的點處終止軌跡。因此提前終止比權重衰減更具有優勢,提前終止能自動確定正則化的正確量,而權重衰減需要進行多個不同超引數的訓練實驗。

9 引數繫結和引數共享

L2正則化(權重衰減)對引數偏離零的固定值進行懲罰。引數範數懲罰是正則化引數使其彼此接近的一種方式,更流行的方法是使用約束,強迫某些引數相等。由於我們將各種模型或模型元件解釋為共享唯一的一組引數,這種正則化方法通常被稱為引數共享

目前為止,最流行和廣泛使用的引數共享出現在應用於計算機視覺的卷積神經網路中。

10 稀疏表示

前文所述的權重衰減直接懲罰模型引數。另一種策略是懲罰神經網路中的啟用單元,稀疏化啟用單元。這種策略間接地對模型引數施加了複雜懲罰。

L1懲罰是表示稀疏的方法之一。

11 Bagging和其他繼承方法

Bagging是通過幾種模型降低泛化誤差的技術。主要想法是分別訓練幾個不同的模型,然後讓所有模型表決測試樣例的輸出。

不同的整合方法以不同的方式構建整合模型。例如,整合的每個成員可以使用不同的演算法和目標函式訓練成完全不同的模型。Bagging是一種允許重複多次使用同一種模型、訓練演算法和目標函式的方法。

模型平均是一個減小泛化誤差的非常強大可靠的方法。當然,不是所有構建整合的技術都是為了讓整合模型比單一模型更加正則化。

12 Dropout

Dropout提供了正則化一大類模型的方法,計算方便但功能強大。Dropout提供了一種廉價的Bagging整合近似,能夠訓練和評估指數級數量的神經網路。

Dropout比其他標準的計算開銷小的正則化方法(如權重衰減、過濾器範數約束和稀疏啟用的正則化)更有效。Dropout也可以與其他形式的正則化合並,得到進一步的提升。

Dropout優點:①計算方便;②不怎麼限制適用的模型和訓練過程

因為Dropout是一個正則化技術,它減少了模型的有效容量,為了抵消這種影響,我們必須增大模型規模。使用Dropout時最佳驗證集的誤差會低很多,但這是以更大的模型和更多訓練演算法的迭代次數為代價換來的。對於非常大的資料集,正則化帶來的泛化誤差減少得很小。只有極少的訓練樣本可用時,Dropout不會很有效。

批處理化(深度學習的另一種演算法)主要目的是改善優化,但噪聲具有正則化的效果,有時沒有必要再使用Dropout。