DNN,CNN和RNN的12種主要dropout方法的數學和視覺解釋

深入研究DNN,CNN和RNNDropout方法以進行正則化,蒙特卡洛不確定性和模型壓縮

## 動機

在(深度)機器學習中訓練模型時的主要挑戰之一是協同適應。 這意味着神經元彼此非常依賴。 它們彼此之間影響很大,並且在輸入方面不夠獨立。 找到某些神經元具有比其他神經元重要的預測能力的情況也是很常見的。 換句話說,我們的輸出可能會過度依賴一個神經元。

爲了避免這些影響,必須分配權重以防止過擬合。 某些神經元的共適應和高預測能力可以用不同的正則化方法來調節。 其中最常用的一種是Dropout。 但是,大多數情況下很少使用Dropout的全部功能。

根據網絡結構的不同,DNN,CNN還是RNN,可以應用不同的Dropout方法。 實際上,我們僅使用一個(或幾乎使用),大部分人並不對Dropout有深入的理解。 因此在本文中,我們將在數學上和視覺上深入Dropout的世界:

  • 標準Dropout方法
  • 標準Dropout的變體
  • 應用於CNN的Dropout方法
  • 應用於RNN的Dropout方法
  • 其他Dropout應用程序(Monte Carlo和壓縮)

符號

Standard Dropout

最著名和最常用的方法是Hinton等人於2012年引入的標準dropout。出於明顯的原因,通常簡稱爲“dropout”,在本文中,我們將其稱爲“標準dropout”。

爲了防止在訓練階段過度擬合,會隨機省略神經元。 在密集(或完全連接)的網絡中引入的每一層,我們給出了丟失的概率p。 在每次迭代中,每個神經元都有被忽略的概率p。 Hinton等。 論文建議在輸入層上的丟失概率p = 0.2,在隱藏層上的概率p = 0.5。 顯然,我們對作爲預測的輸出層感興趣。 因此,我們不會在輸出層上應用缺失。

在數學上,我們說每個神經元的遺漏概率遵循概率p的伯努利分佈。 因此,我們用蒙版製作了神經元矢量(層)的逐個元素,其中每個元素都是遵循伯努利分佈的隨機變量。

在測試(或推斷)階段,沒有退出。 所有神經元都活躍。 爲了補償與訓練階段相比的其他信息,我們根據存在的可能性進行加權。 因此,神經元的概率不會被忽略。 它是1-p

DropConnect



我們找到了與“標準dropout”方法相同的機制。 除了掩碼(其元素是遵循分佈的隨機變量)之外,不將其應用於圖層的神經元矢量,而是應用於將圖層連接至前一層的權重矩陣。


對於測試階段,可能具有與標準Dropout方法相同的邏輯。 我們可以乘以存在的概率。 但這不是L. Wan等人提出的方法。 有趣的是,即使在測試階段,他們也可以通過應用DropConnect的高斯近似來提出一種隨機的丟棄方法。 然後通過從該高斯表示中隨機抽取樣本。StandOut之後,我們將回到高斯近似。

Standout

作爲標準的Dropout方法,L。J. Ba和B. Frey引入的Standout 基於伯努利蒙版(我將根據它們遵循的分佈來稱呼這些蒙版,這會更簡單)。 區別在於神經元遺漏的概率p在該層上不是恆定的。 它根據權重的值是自適應的。

這可以用於任何g激活函數,甚至可以是單獨的神經網絡。 類似地,對於Ws可以是W的函數。然後對於測試階段,我們通過存在概率進行平衡。

有點晦澀,所以讓我們舉個例子。 他們在論文中表明,在實踐中,信念網絡權重可以近似爲權重的仿射函數。 例如,我將S型曲線的絕對值作爲激活函數。


我們可以看到,權重越大,將忽略神經元的可能性就越大。 這有力地限制了某些神經元可能具有的高預測能力。

Gaussian Dropout

應用於神經網絡的Dropout方法列表不斷增長。 因此,在繼續講DNN之前,我想談一談最引人入勝的Dropout方法類別。

僅舉幾個例子,快速Dropout,變項Dropout或具體Dropout是從貝葉斯角度解釋Dropout的方法。 具體而言,我們沒有使用伯努利蒙版,而是有一個蒙版,其元素是遵循高斯分佈(正態分佈)的隨機變量。 在這裏,我將不進行大數定律的演示,這不是重點。 因此,讓我們嘗試直觀地理解這一點。

這幾篇論文表明,我們可以用正常定律模擬我們的Dropout的伯努利掩碼。 但這有什麼區別。 一切都什麼都沒有。 關於這些方法與由於過度適應和/或我們神經元的預測能力而導致的過度擬合的相關性,它沒有改變。 但是,與之前介紹的方法相比,它改變了訓練階段所需的執行時間。

從邏輯上講,通過在每個迭代中省略具有缺失的神經元,在迭代過程中不會更新在迭代中省略的神經元。 它們不存在。 因此,訓練階段變慢了。 另一方面,通過使用高斯Dropout方法,在每次迭代和每個訓練樣本中都暴露了所有神經元。 這樣可以避免減速。

在數學上,有一個與高斯掩碼的乘法(例如,以伯努利定律標準偏差p(1-p)爲中心的1)。 通過在每次迭代中使所有神經元保持活動狀態來隨機加權其預測能力,從而模擬了Dropout現象。 該方法的另一個實用優勢集中於1:在測試階段,與沒有Dropout的模型相比,無需進行任何修改。

Pooling Dropout

圖像或特徵圖的問題在於像素非常依賴於它們的鄰居。 簡而言之,在貓的圖片上,如果拍攝一個與其外衣相對應的像素,則所有相鄰像素都將與同一外衣相對應。 幾乎沒有差異。

因此,我們瞭解了標準Dropout方法的侷限性。 我們甚至可以說它效率低下,唯一帶來的變化就是額外的計算時間。 如果我們隨機忽略圖像上的像素,則幾乎不會刪除任何信息。 省略的像素與其周圍幾乎相同。 這意味着性能不佳,無法防止過擬合。

爲什麼不利用CNN中經常使用的池化呢? 例如最大池化層。 對於那些不知道的人:“最大池化層”是通過圖片或(功能圖)選擇重疊區域的最大激活程度的濾鏡。

Max-Pooling Dropout 是一種應用於H. Wu和X. Gu提出的CNN的丟棄方法。 在執行合併操作之前,它將伯努利的遮罩直接應用於“最大池化層”內核。 憑直覺,這允許最小化高活化劑的聚集。 限制某些神經元的沉重預測能力是一個很好的觀點。 在測試階段,然後可以根據存在的可能性對以前的方法進行加權。

以最大池化層爲例,但其他池化層也可以這樣做。 例如,對於平均池化層,我們可以在訓練階段以相同的方式應用Dropout。 然後在測試階段,因爲它已經是加權平均值,所以不會有任何變化。

Spatial Dropout

對於CNN,我們可以利用池化層。 但是我們也可以遵循J. Tompson等人提出的Spatial Dropout 方法,變得更聰明。 他們提議用經典的丟失方法來克服該問題,因爲相鄰像素高度相關。


除了可以在像素上隨機應用濾除之外,我們還可以考慮對每個要素貼圖應用濾除。 如果我們以貓爲例,那就像從圖像中去除紅色,然後將其強制推廣到圖像的藍色和綠色。 然後在接下來的迭代中將其他特徵圖隨機刪除。

我不知道如何正確地數學寫作以使其易於理解。 但是,如果您瞭解以前的方法,則不會有任何麻煩。 在訓練階段,每個特徵圖都應用伯努利遮罩,其概率爲p。 然後在測試階段,沒有丟失,而是通過存在概率1-p進行加權。

Cutout

讓我們更深入地研究克服相鄰像素高度相關這一事實的方法。 可以在區域中應用它們,而不是在每個特徵圖上應用伯努利遮罩。 這是T. DeVries和G. W. Taylor提出的Cutout方法。

上一次以貓圖像爲例:該方法可以通過隱藏圖像區域來進行泛化,從而限制過擬合。 我們最終得到的圖像是貓頭掉落的地方。 這迫使CNN識別描述貓的不太明顯的屬性。

同樣在本節中沒有數學。 這種方法在很大程度上取決於我們的想象力:正方形區域,矩形,圓形,所有要素地圖,一次或可能多次……取決於您。

Max-Drop

最後,總結本節有關CNN的過程,我必須指出,顯然可以組合幾種方法。 當我們知道不同的方法時,這就是使我們變得強大的原因:我們可以同時利用它們的好處。 這就是S. Park和N. Kwak提出的最大下降方法


這種方法在某種程度上是Pooling Dropout和Gaussian Dropout的混合。 刪除是在最大池化層上執行的,但是使用貝葉斯方法。


在他們的論文中,他們證明了這種方法所產生的結果與使用Spatial Dropout一樣有效。 除了在每次迭代中,所有神經元都保持激活這一事實之外,這還限制了訓練階段的減速。這些結果是在µ = 0.02和σ²= 0.05的條件下獲得的。

RNNDrop

好吧,我們已經看到了DNN和CNN的一些Dropout方法。 該研究還試圖找出哪種方法對遞歸神經網絡(RNN)可能有效。 它們通常依賴於LSTM,因此我將以RNN的這種特殊情況爲例。 它將可以推廣到其他RNN。

問題很簡單:在RNN上應用dropout很危險。 從某種意義上說,RNN的目的是長期保留事件的記憶。 但是經典的丟棄方法效率不高,因爲它們會產生噪音,從而阻止這些模型長期保持記憶。 將介紹的方法可以長期保留此內存。

T. Moon等人提出的RNNDrop 。 是最簡單的方法。 伯努利遮罩僅應用於隱藏的單元狀態。 但是此掩碼在序列之間彼此相同。 這稱爲Dropout的按順序採樣。 這僅表示在每次迭代中我們都會創建一個隨機掩碼。 然後從一個序列到另一個序列,此掩碼保持不變。 因此,放置的元素仍然保留,而當前的元素仍然存在。 而這在所有序列上。

Recurrent Dropout

S. Semeniuta等人提出的遞歸dropout。 是一個有趣的變體。 單元狀態保持不變。 Dropout僅應用於更新單元狀態的部分。 因此,在每次迭代中,伯努利的遮罩都會使某些元素不再有助於長期記憶。 但是內存沒有改變。

Variational RNN dropout

最後,由Y. Gal和Z. Ghahramani提出的簡單但有效的RNN Dropout 是在內部閘門之前應用基於序列的dropout。

腦洞 Monte Carlo Dropout

仍然有很多不同的Dropout方法,但本文將在此處停止。 最後,我發現瞭解Dropout方法不僅是正則化方法。

Dropout方法還可以提供模型不確定性的指標。 對於相同的輸入,遇到缺失的模型在每次迭代中將具有不同的體系結構。 這導致輸出差異。 如果網絡相當籠統,並且共同適應受到限制,那麼預測將分佈在整個模型中。 這會導致在每次迭代中使用相同輸入的情況下輸出的方差較小。 研究此方差可以給出可以分配給模型的置信度的概念。 這可以通過Y. Gal和Z. Ghahramani方法看到。

最後,直觀地,通過隨機地應用丟棄,我們可以看到給定神經元進行預測的效率或效率低下。 根據這一觀察,我們可以通過減少參數數量同時最小化性能下降來壓縮模型。 K.Neklyudov等。 提出了一種使用變差丟棄DNN和CNN的方法。

引用

[1] G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R. R. Salakhutdinov, Improving neural networks by preventing co-adaptation of feature detectors

[2] L. Wan, M. Zeiler, S. Zhang, Y. LeCun, and R. Fergus, Regularization of neural networks using dropconnect

[3] L. J. Ba and B. Frey, Adaptive dropout for training deep neural networks

[4] S. Wang and C. Manning, Fast dropout training

[5] D. P. Kingma, T. Salimans, and M. Welling, Variational dropout and the local reparameterization trick

[6] Y. Gal, J. Hron, A. Kendall, Concrete Dropout

[7] H. Wu and X. Gu, Towards dropout training for convolutional neural networks

[8] J. Tompson, R. Goroshin, A. Jain, Y. LeCun, and C. Bregler, Efficient object localization using convolutional networks

[9] T. DeVries and G. W. Taylor, Improved regularization of convolutional neural networks with cutout

[10] S. Park and N. Kwak, Analysis on the dropout effect in convolutional neural networks

[11] T. Moon, H. Choi, H. Lee, and I. Song, Rnndrop

[12] S. Semeniuta, A. Severyn, and E. Barth, Recurrent dropout without memory loss

[13] Y. Gal and Z. Ghahramani, A theoretically grounded application of dropout in recurrent neural networks

[14] Y. Gal and Z. Ghahramani, Dropout as a bayesian approximation: Representing model uncertainty in deep learning

[15] K. Neklyudov, D. Molchanov, A. Ashukha, and D. P. Vetrov, Structured bayesian pruning via log-normal multiplicative noise

[16] A. Labach, H. Salehinejad, Survey of Dropout Methods for Deep Neural Networks

作者:Axel Thevenot

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