分類目錄:《深入理解深度學習》總目錄
Dropout供了正則化一大類模型的方法,計算方便且功能強大。在第一種近似下,Dropout可以被認為是集成大量深層神經網(wǎng)絡的實用Bagging方法。Bagging涉及訓練多個模型,并在每個測試樣本上評估多個模型。當每個模型都是一個很大的神經網(wǎng)絡時,這似乎是不切實際的,因為訓練和評估這樣的網(wǎng)絡需要花費很多運行時間和內存。通常我們只能集成五至十個神經網(wǎng)絡,如Szegedy集成了六個神經網(wǎng)絡贏得ILSVRC,超過這個數(shù)量就會迅速變得難以處理。Dropout提供了一種廉價的Bagging集成近似,能夠訓練和評估指數(shù)級數(shù)量的神經網(wǎng)絡。
具體而言,Dropout訓練的集成包括所有從基礎網(wǎng)絡除去非輸出單元后形成的子網(wǎng)絡,如下圖所示。最先進的神經網(wǎng)絡基于一系列仿射變換和非線性變換,我們只需將一些單元的輸出乘零就能有效地刪除一個單元。這個過程需要對模型(如徑向基函數(shù)網(wǎng)絡,單元的狀態(tài)和參考值之間存在一定區(qū)別)進行一些修改。為了簡單起見,我們在這里提出乘零的簡單Dropout算法,但是它被簡單修改后,可以與從網(wǎng)絡中移除單元的其他操作結合使用?;叵胍幌翨agging學習,我們定義
k
k
k個不同的模型,從訓練集有放回采樣構造
k
k
k個不同的數(shù)據(jù)集,然后在訓練集 i 上訓練模型 i。Dropout的目標是在指數(shù)級數(shù)量的神經網(wǎng)絡上近似這個過程。具體來說,在訓練中使用Dropout時,我們會使用基于小批量產生較小步長的學習算法,如隨機梯度下降等。我們每次在小批量中加載一個樣本,然后隨機抽樣應用于網(wǎng)絡中所有輸入和隱藏單元的不同二值掩碼。對于每個單元,掩碼是獨立采樣的。掩碼值為1的采樣概率(導致包含一個單元)是訓練開始前一個固定的超參數(shù)。它不是模型當前參數(shù)值或輸入樣本的函數(shù)。通常在每一個小批量訓練的神經網(wǎng)絡中,一個輸入單元被包括的概率為0.8,一個隱藏單元被包括的概率為0.5。然后,我們運行和之前一樣的前向傳播、反向傳播以及學習更新。
更正式地說,假設一個掩碼向量
μ
\mu
μ指定被包括的單元,
J
(
θ
,
μ
)
J(\theta, \mu)
J(θ,μ)是由參數(shù)
θ
,
\theta,
θ,和掩碼
μ
\mu
μ定義的模型代價。那么Dropout訓練的目標是最小化
E
μ
J
(
θ
,
μ
)
E_\mu J(\theta, \mu)
Eμ?J(θ,μ)。這個期望包含多達指數(shù)級的項,但我們可以通過抽樣
μ
\mu
μ獲得梯度的無偏估計。Dropout訓練與Bagging訓練不太一樣。在Bagging的情況下,所有模型都是獨立的。在Dropout的情況下,所有模型共享參數(shù),其中每個模型繼承父神經網(wǎng)絡參數(shù)的不同子集。參數(shù)共享使得在有限可用的內存下表示指數(shù)級數(shù)量的模型變得可能。
在Bagging的情況下,每一個模型在其相應訓練集上訓練到收斂。在Dropout的情況下,通常大部分模型都沒有顯式地被訓練,因為通常父神經網(wǎng)絡會很大,以致于到宇宙毀滅都不可能采樣完所有的子網(wǎng)絡。取而代之的是,在單個步驟中我們訓練一小部分的子網(wǎng)絡,參數(shù)共享會使得剩余的子網(wǎng)絡也能有好的參數(shù)設定。這些是僅有的區(qū)別。除了這些,Dropout與Bagging算法一樣。例如,每個子網(wǎng)絡中遇到的訓練集確實是有放回采樣的原始訓練集的一個子集。Bagging集成必須根據(jù)所有成員的累積投票做一個預測。在這種背景下,我們將這個過程稱為推斷(Inference)。目前為止,我們在介紹Bagging和Dropout時沒有要求模型具有明確的概率?,F(xiàn)在,我們假定該模型的作用是輸出一個概率分布。在Bagging的情況下,每個模型
i
i
i產生一個概率分布
p
(
i
)
(
y
∣
x
)
p^{(i)}(y|x)
p(i)(y∣x)。集成的預測由這些分布的算術平均值給出:
1
k
∑
i
=
1
k
p
(
i
)
(
y
∣
x
)
\frac{1}{k}\sum_{i=1}^k p^{(i)}(y|x)
k1?i=1∑k?p(i)(y∣x)
在Dropout的情況下,通過掩碼
μ
\mu
μ定義每個子模型的概率分布
p
(
y
∣
x
,
μ
)
p(y | x, \mu)
p(y∣x,μ)。所有掩碼的算術平均值由下式給出:
∑
p
(
μ
)
p
(
y
∣
x
,
μ
)
\sum p(\mu)p(y | x, \mu)
∑p(μ)p(y∣x,μ)
其中 p ( μ ) p(\mu) p(μ)是訓練時采樣 μ \mu μ的概率分布。
因為這個求和包含多達指數(shù)級的項,除非該模型的結構允許某種形式的簡化,否則是不可能計算的。目前為止,無法得知深度神經網(wǎng)絡是否允許某種可行的簡化。相反,我們可以通過采樣近似推斷,即平均許多掩碼的輸出。即使是10 ? 20個掩碼就足以獲得不錯的表現(xiàn)。然而,一個更好的方法能不錯地近似整個集成的預測,且只需一個前向傳播的代價。要做到這一點,我們改用集成成員預測分布的幾何平均而不是算術平均。Warde-Farley提出的論點和經驗證據(jù)表明,在這個情況下幾何平均與算術平均表現(xiàn)得差不多。多個概率分布的幾何平均不能保證是一個概率分布。為了保證結果是一個概率分布,我們要求沒有子模型給某一事件分配概率0,并重新標準化所得分布。通過幾何平均直接定義的非標準化概率分布由下式給出:
p
~
ensemble
(
y
∣
x
)
=
∏
μ
p
(
y
∣
x
,
μ
)
2
d
\tilde{p}_{\text{ensemble}}(y|x) = \sqrt[2^d]{\prod_\mu p(y|x, \mu)}
p~?ensemble?(y∣x)=2d?μ∏?p(y∣x,μ)?
其中
d
d
d是可被丟棄的單元數(shù)。這里為簡化介紹,我們使用均勻分布的
μ
\mu
μ,但非均勻分布也是可以的。為了作出預測,我們必須重新標準化集成:
p
ensemble
(
y
∣
x
)
=
p
~
ensemble
(
y
∣
x
)
∑
y
′
p
~
ensemble
(
y
′
∣
x
)
p_{\text{ensemble}}(y|x) = \frac{\tilde{p}_{\text{ensemble}}(y|x)}{\sum_{y'}\tilde{p}_{\text{ensemble}}(y'|x)}
pensemble?(y∣x)=∑y′?p~?ensemble?(y′∣x)p~?ensemble?(y∣x)?
涉及Dropout的一個重要觀點是我們可以通過評估模型中 p ( y ∣ x ) p(y | x) p(y∣x)來近似 p ensemble p_{\text{ensemble}} pensemble?:該模型具有所有單元,但我們將單元 i i i的輸出的權重乘以單元 i i i的被包含概率。這個修改的動機是得到從該單元輸出的正確期望值。我們把這種方法稱為權重比例推斷規(guī)則(Weight Scaling Inference Rule)。目前還沒有在深度非線性網(wǎng)絡上對這種近似推斷規(guī)則的準確性作任何理論分析,但經驗上表現(xiàn)得很好。
因為我們通常使用
1
2
\frac{1}{2}
21?的包含概率,權重比例規(guī)則一般相當于在訓練結束后將權重除2,然后像平常一樣使用模型。實現(xiàn)相同結果的另一種方法是在訓練期間將單元的狀態(tài)乘 2。無論哪種方式,我們的目標是確保在測試時一個單元的期望總輸入與在訓練時該單元的期望總輸入是大致相同的(即使近半單位在訓練時丟失)。對許多不具有非線性隱藏單元的模型族而言,權重比例推斷規(guī)則是精確的。舉個簡單的例子,考慮Softmax函數(shù)回歸分類,其中由向量
v
v
v表示
n
n
n個輸入變量:
P
(
Y
=
y
∣
v
)
=
Softmax
(
W
T
v
+
b
)
P(Y = y|v) = \text{Softmax}(W^Tv + b)
P(Y=y∣v)=Softmax(WTv+b)
我們可以根據(jù)二值向量
d
d
d逐元素的乘法將一類子模型進行索引:
P
(
Y
=
y
∣
v
;
d
)
=
Softmax
(
W
T
(
d
⊙
v
)
+
b
)
y
P(Y = y|v; d) = \text{Softmax}(W^T(d\odot v) + b)_y
P(Y=y∣v;d)=Softmax(WT(d⊙v)+b)y?
權重比例推斷規(guī)則在其他設定下也是精確的,包括條件正態(tài)輸出的回歸網(wǎng)絡以及那些隱藏層不包含非線性的深度網(wǎng)絡。然而,權重比例推斷規(guī)則對具有非線性的深度模型僅僅是一個近似。雖然這個近似尚未有理論上的分析,但在實踐中往往效果很好。Goodfellow實驗發(fā)現(xiàn),在對集成預測的近似方面,權重比例推斷規(guī)則比蒙特卡羅近似更好(就分類精度而言)。即使允許蒙特卡羅近似采樣多達1000 子網(wǎng)絡時也比不過權重比例推斷規(guī)則。Gal and Ghahramani發(fā)現(xiàn)一些模型可以通過二十個樣本和蒙特卡羅近似獲得更好的分類精度。似乎推斷近似的最佳選擇是與問題相關的。Srivastava顯示,Dropout比其他標準的計算開銷小的正則化方法(如權重衰減、過濾器范數(shù)約束和稀疏激活的正則化)更有效。Dropout也可以與其他形式的正則化合并,得到進一步的提升。計算方便是Dropout的一個優(yōu)點。訓練過程中使用Dropout產生 n n n個隨機二進制數(shù)與狀態(tài)相乘,每個樣本每次更新只需 O ( n ) O(n) O(n)的計算復雜度。根據(jù)實現(xiàn),也可能需要 O ( n ) O(n) O(n)的存儲空間來持續(xù)保存這些二進制數(shù)(直到反向傳播階段)。使用訓練好的模型推斷時,計算每個樣本的代價與不使用Dropout是一樣的,盡管我們必須在開始運行推斷前將權重除以2。
Dropout的另一個顯著優(yōu)點是不怎么限制適用的模型或訓練過程。幾乎在所有使用分布式表示且可以用隨機梯度下降訓練的模型上都表現(xiàn)很好。包括前饋神經網(wǎng)絡、概率模型,如受限玻爾茲曼機,以及循環(huán)神經網(wǎng)絡。許多效果差不多的其他正則化策略對模型結構的限制更嚴格。
雖然Dropout在特定模型上每一步的代價是微不足道的,但在一個完整的系統(tǒng)上使用Dropout的代價可能非常顯著。因為Dropout是一個正則化技術,它減少了模型的有效容量。為了抵消這種影響,我們必須增大模型規(guī)模。不出意外的話,使用Dropout時最佳驗證集的誤差會低很多,但這是以更大的模型和更多訓練算法的迭代次數(shù)為代價換來的。對于非常大的數(shù)據(jù)集,正則化帶來的泛化誤差減少得很小。在這些情況下,使用Dropout和更大模型的計算代價可能超過正則化帶來的好處。只有極少的訓練樣本可用時,Dropout不會很有效。在只有不到5000的樣本的Alternative Splicing數(shù)據(jù)集上 ,貝葉斯神經網(wǎng)絡比Dropout表現(xiàn)得更好。當有其他未分類的數(shù)據(jù)可用時,無監(jiān)督特征學習也比Dropout更有優(yōu)勢。Wager表明,當Dropout作用于線性回歸時,相當于每個輸入特征具有不同權重衰減系數(shù)的 L 2 L^2 L2權重衰減。每個特征的權重衰減系數(shù)的大小是由其方差來確定的。其他線性模型也有類似的結果。而對于深度模型而言,Dropout與權重衰減是不等同的。
使用Dropout訓練時的隨機性不是這個方法成功的必要條件。它僅僅是近似所有子模型總和的一個方法。Wang and Manning導出了近似這種邊緣分布的解析解。他們的近似被稱為快速 Dropout,減小梯度計算中的隨機性而獲得更快的收斂速度。這種方法也可以在測試時應用,能夠比權重比例推斷規(guī)則更合理地(但計算也更昂貴)近似所有子網(wǎng)絡的平均??焖?Dropout在小神經網(wǎng)絡上的性能幾乎與標準的Dropout相當,但在大問題上尚未產生顯著改善或尚未應用。隨機性對實現(xiàn)Dropout的正則化效果不是必要的,同時也不是充分的。為了證明這一點,Warde-Farley使用一種被稱為Dropout Boosting的方法設計了一個對照實驗,具有與傳統(tǒng)Dropout方法完全相同的噪聲掩碼,但缺乏正則化效果。Dropout Boosting訓練整個集成以最大化訓練集上的似然。從傳統(tǒng)Dropout類似于Bagging的角度來看,這種方式類似于Boosting。如預期一樣,和單一模型訓練整個網(wǎng)絡相比,Dropout Boosting幾乎沒有正則化效果。這表明,使用Bagging解釋Dropout比使用穩(wěn)健性噪聲解釋Dropout更好。只有當隨機抽樣的集成成員相互獨立地訓練好后,才能達到Bagging集成的正則化效果。
Dropout啟發(fā)其他以隨機方法訓練指數(shù)量級的共享權重的集成。DropConnect是Dropout的一個特殊情況,其中一個標量權重和單個隱藏單元狀態(tài)之間的每個乘積被認為是可以丟棄的一個單元。隨機池化是構造卷積神經網(wǎng)絡集成的一種隨機化池化的形式,其中每個卷積網(wǎng)絡參與每個特征圖的不同空間位置。目前為止,Dropout仍然是最廣泛使用的隱式集成方法。
一個關于Dropout的重要見解是,通過隨機行為訓練網(wǎng)絡并平均多個隨機決定進行預測,實現(xiàn)了一種參數(shù)共享的Bagging形式。早些時候,我們將Dropout描述為通過包括或排除單元形成模型集成的Bagging。然而,這種參數(shù)共享策略不一定要基于包括和排除。原則上,任何一種隨機的修改都是可接受的。在實踐中,我們必須選擇讓神經網(wǎng)絡能夠學習對抗的修改類型。在理想情況下,我們也應該使用可以快速近似推斷的模型族。我們可以認為由向量 μ \mu μ參數(shù)化的任何形式的修改,是對 μ \mu μ所有可能的值訓練 p ( y ∣ x , μ ) p(y | x, \mu) p(y∣x,μ)的集成。注意,這里不要求 μ \mu μ具有有限數(shù)量的值。例如, μ \mu μ可以是實值。Srivastava表明,權重乘以 μ ~ N ( 1 , l ) \mu\sim N(1, l) μ~N(1,l)比基于二值掩碼Dropout表現(xiàn)得更好。由于 E [ μ ] = 1 E[\mu] = 1 E[μ]=1,標準網(wǎng)絡自動實現(xiàn)集成的近似推斷,而不需要權重比例推斷規(guī)則。
目前為止,我們將Dropout介紹為一種純粹高效近似Bagging的方法。然而,還有比這更進一步的Dropout觀點。Dropout不僅僅是訓練一個Bagging的集成模型,并且是共享隱藏單元的集成模型。這意味著無論其他隱藏單元是否在模型中,每個隱藏單元必須都能夠表現(xiàn)良好。隱藏單元必須準備好進行模型之間的交換和互換。Hinton由生物學的想法受到啟發(fā):有性繁殖涉及到兩個不同生物體之間交換基因,進化產生的壓力使得基因不僅是良好的而且要準備好不同有機體之間的交換。這樣的基因和這些特點對環(huán)境的變化是非常穩(wěn)健的,因為它們一定會正確適應任何一個有機體或模型不尋常的特性。因此Dropout正則化每個隱藏單元不僅是一個很好的特征,更要在許多情況下是良好的特征。Warde-Farley將Dropout與大集成的訓練相比并得出結論:相比獨立模型集成獲得泛化誤差改進,Dropout會帶來額外的改進。
Dropout強大的大部分原因來自施加到隱藏單元的掩碼噪聲,了解這一事實是重要的。這可以看作是對輸入內容的信息高度智能化、自適應破壞的一種形式,而不是對輸入原始值的破壞。例如,如果模型學得通過鼻檢測臉的隱藏單元 h i h_i hi?,那么丟失 h i h_i hi?對應于擦除圖像中有鼻子的信息。模型必須學習另一種 h i h_i hi?,要么是鼻子存在的冗余編碼,要么是像嘴這樣的臉部的另一特征。傳統(tǒng)的噪聲注入技術,在輸入端加非結構化的噪聲不能夠隨機地從臉部圖像中抹去關于鼻子的信息,除非噪聲的幅度大到幾乎能抹去圖像中所有的信息。破壞提取的特征而不是原始值,讓破壞過程充分利用該模型迄今獲得的關于輸入分布的所有知識。
Dropout的另一個重要方面是噪聲是乘性的。如果是固定規(guī)模的加性噪聲,那么加了噪聲 ? \epsilon ?的整流線性隱藏單元可以簡單地學會使 h i h_i hi?變得很大(使增加的噪聲 ? \epsilon ?變得不顯著)。乘性噪聲不允許這樣病態(tài)地解決噪聲魯棒性問題。另一種深度學習算法——批標準化,在訓練時向隱藏單元引入加性和乘性噪聲重新參數(shù)化模型。批標準化的主要目的是改善優(yōu)化,但噪聲具有正則化的效果,有時沒必要再使用Dropout。批標準化將會在后面的文章中被更詳細地討論。文章來源:http://www.zghlxwxcb.cn/news/detail-485523.html
參考文獻:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.文章來源地址http://www.zghlxwxcb.cn/news/detail-485523.html
到了這里,關于深入理解深度學習——正則化(Regularization):Dropout的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!