不看后悔(drop out的作用)drop outt,Dropout技術一覽:可視化解釋以及在DNN/CNN/RNN中的應用,win7關機卡死在正在關機界面,
目錄:
1.drop out原理
2.dropout原理和作用
3.drop -out
4.dropout drop-out
5.drops out
6.drop out drop in
7.drop sb out
8.drop out drop out of
9.drop out dropout drop-out
10.drop it out
1.drop out原理
來源丨AI公園編輯丨極市平臺
2.dropout原理和作用
動機在深度機器學習中訓練一個模型的主要挑戰(zhàn)之一是協(xié)同適應這意味著神經(jīng)元是相互依賴的他們對彼此的影響相當大,相對于他們的輸入還不夠獨立我們也經(jīng)常發(fā)現(xiàn)一些神經(jīng)元具有比其他神經(jīng)元更重要的預測能力的情況發(fā)面失敗還能二次發(fā)嗎換句話說,我們會過度依賴于個別的神經(jīng)元的輸出。
3.drop -out
這些影響必須避免,權重必須具有一定的分布,以防止過擬合某些神經(jīng)元的協(xié)同適應和高預測能力可以通過不同的正則化方法進行調(diào)節(jié)其中最常用的是Dropout然而,dropout方法的全部功能很少被使用取決于它是DNN
4.dropout drop-out
,一個CNN或一個RNN,不同的dropout方法可以被應用在實踐中,我們只(或幾乎)使用一個我認為這是一個可怕的陷阱所以在本文中,我們將從數(shù)學和可視化上深入到dropouts的世界中去理解:標準的Dropout方法。
5.drops out
標準Dropout的變體用在CNNs上的dropo發(fā)面失敗還能二次發(fā)嗎ut方法用在RNNs上的dropout方法其他的dropout應用(蒙特卡洛和壓縮)符號
6.drop out drop in
標準的Dropout最常用的dropout方法是Hinton等人在2012年推出的Standard dropout通常簡單地稱為“Dropout”,由于顯而易見的原因,在本文中我們將稱之為標準的Dropout。
7.drop sb out
為了防止訓練階段的過擬合,隨機去掉神經(jīng)元在一個密集的(或全連接的)網(wǎng)絡中,對于每一層,我們給出了一個dropout的概率p在每次迭代中,每個神經(jīng)元被去掉的概率為pHinton等人的論文建議,輸入層的dropout概率為“p=0.2”,隱藏層發(fā)面失敗還能二次發(fā)嗎的dropout概率為“p=0.5”。
8.drop out drop out of
顯然,我們對輸出層感興趣,這是我們的預測所以我們不會在輸出層應用dropout
9.drop out dropout drop-out
數(shù)學上,我們說每個神經(jīng)元的丟棄概率遵循概率p的伯努利分布因此,我們用一個mask對神經(jīng)元向量(層)進行了一個元素級的操作,其中每個元素都是遵循伯努利分布的隨機變量在測試(或推斷)階段,沒有dropout。
10.drop it out
所有的神經(jīng)元都是活躍的為了補償與訓練階段相比較的額外信息,我們用出現(xiàn)的概率來衡加權權重所以神經(jīng)元沒有被忽略的概率,是“1 - p”DropConnect也發(fā)面失敗還能二次發(fā)嗎許你已經(jīng)熟悉標準的Dropout方法但也有很多變化。
要對密集網(wǎng)絡的前向傳遞進行正則,可以在神經(jīng)元上應用dropoutL. Wan等人介紹的DropConnect沒有直接在神經(jīng)元上應用dropout,而是應用在連接這些神經(jīng)元的權重和偏置上
因此,我們找到了與標準Dropout方法相同的機制。除了掩碼(它的元素是遵循一個分布的隨機變量)不是應用在某一層的神經(jīng)元向量上,而是應用在連接該層與前一層的權重矩陣上。
對于測試階段,可以使用與標準Dropout方法相同的邏輯我們可以乘以出現(xiàn)的概率但這并不是L. Wan等人提出的方法他們提出了一個很有趣的隨機方法,即使在測試階段也是如此,他們采用了DropConn發(fā)面失敗還能二次發(fā)嗎ect的高斯近似。
然后由從這個高斯表示中隨機采樣樣本我們會在Standout之后回到高斯近似StandoutL. J. Ba和B. Frey介紹的Standout是一個標準的Dropout方法,基于一個Bernoulli。
mask(我將根據(jù)它們遵循的分布來命名這些mask,這樣會更簡單)。不同之處在于,神經(jīng)元被遺漏的概率p在這一層中并不恒定。根據(jù)權重的值,它是自適應的。
這可以適用于任何g激活函數(shù),甚至是一個單獨的神經(jīng)網(wǎng)絡。類似地,對于Ws,可以是一個W的函數(shù)。然后在測試階段,我們根據(jù)存在的可能性進行平衡。例子
這樣不是很清楚,我們舉個例子。在他們的論文中,他們表明在實踐中,置信網(wǎng)絡的權值可以近似發(fā)面失敗還能二次發(fā)嗎為權值的仿射函數(shù)。例如,我取s的絕對值作為激活函數(shù)。
因此,我們可以看到,權重越大,神經(jīng)元被丟棄的概率就越大這有力地限制了某些神經(jīng)元可能具有的高預測能力Gaussian Dropout應用于神經(jīng)網(wǎng)絡的dropout方法在繼續(xù)增長所以,在討論DNNs以外的其他東西之前,我想先談談一種dropout方法,它當然是最吸引人的。
舉幾個例子,F(xiàn)ast Dropout, 變分Dropout或Concrete Dropout是從貝葉斯角度解釋Dropout的方法具體地說,我們沒有使用伯努利mask,而是使用了一個mask,它的元素是遵循高斯分布的隨機變量(正態(tài)分布)。
我不會在這里演示大數(shù)定律,這不是重點我們來發(fā)面失敗還能二次發(fā)嗎直觀地理解一下
我們可以模擬一個伯努利mask,我們使用正態(tài)規(guī)律進行dropouts但這有什么區(qū)別呢?什么都做,什么都不做由于我們神經(jīng)元的協(xié)同適應和/或預測能力,它不會改變這些方法與過擬合的相關性但是,與之前的方法相比,它改變了訓練。
階段所需的執(zhí)行時間邏輯上,通過在每次迭代中丟棄帶有dropout的神經(jīng)元,那些在迭代中丟棄的神經(jīng)元在反向傳播期間不會被更新它們并不存在所以訓練階段被“放慢”了另一方面,通過使用Gaussian Dropout方法,在每次迭代和每個訓練樣本中,所有的神經(jīng)元都暴露出來。
這就避免了減速
在數(shù)學上,有一個高斯mask的乘法(例如以1為中心的伯努利定律的標準差p(1-p))通過發(fā)面失敗還能二次發(fā)嗎在每次迭代中保持所有的神經(jīng)元都是活躍的,從而隨機地對其預測能力進行加權,從而模擬了dropout這種方法的另一個實際優(yōu)勢集中在測試階段,與沒有dropout的模型相比,不需要進行任何修改。
Pooling Dropout本文的“難”理解部分結束了。剩下的更直覺的部分可以給我們更好的性能。
圖像和特征圖的問題是像素非常依賴于它們的鄰居簡單地說,在一張貓的圖片上,如果你取一個與它的外表相對應的像素,那么所有鄰近的像素都將與同樣的外表相對應兩者幾乎沒有區(qū)別所以我們理解了標準Dropout方法的。
限制。我們甚至可以說它是低效的,它帶來的唯一改變就是額外的計算時間。如果我們隨機丟棄圖像上的像素,那么幾乎沒有發(fā)面失敗還能二次發(fā)嗎信息被刪除。丟棄的像素幾乎與它們的鄰居相同。防止過擬合的性能很差。
為什么不利用CNNs中經(jīng)常使用的的合適的層。例如最大池化層。最大池化層是一個過濾器,通過一個圖片或(特征圖)選擇重疊區(qū)域的最大激活。
Max-Pooling Dropout是H. Wu和X. Gu提出的一種用于CNNs的Dropout方法它在執(zhí)行池化操作之前,直接將伯努利mask應用到最大池化層的內(nèi)核上直觀地說,這允許對具有高激活的pooling結果最小化。
這是一個限制某些神經(jīng)元的高預測能力的很好的觀點在測試階段,你可以根據(jù)出現(xiàn)的概率來確定前面方法的權重
我們以最大池化層為例,但同樣可以對其他池化層進行操作例如,對于平均池化層,我們發(fā)面失敗還能二次發(fā)嗎可以在訓練階段以同樣的方式應用一個dropout然后在測試階段,沒有變化,因為它已經(jīng)是一個加權平均值了Spatial Dropout。
對于CNNs,我們可以利用池化層。但是我們也可以更聰明地遵循J. Tompson等人提出的Spatial Dropout方法。他們提出用經(jīng)典的dropout方法來解決這個問題,因為相鄰像素高度相關。
我們可以不去隨機應用一個dropout在像素上,我們可以考慮把dropout應用在每個特征圖上如果我們以我們的貓為例,那么這就像從圖像中移除紅色通道并強迫它去總結圖像中的藍色和綠色通道然后在下一次迭代中隨機放置其他特征圖。
我不知道如何用數(shù)學正確地書寫,使它易于理解但是發(fā)面失敗還能二次發(fā)嗎如果你理解了前面的方法,你就不會有任何問題在訓練階段,對每個feature map應用Bernoulli mask,其丟棄概率為p然后在測試階段,沒有dropout,只有一個概率為。
1-p的加權。Cutout
讓我們進一步了解我們的方法,以克服相鄰像素高度相關的事實不是對每個特征圖應用伯努利mask,我們可以在不同的區(qū)域中應用這就是T. DeVries和G. W. Taylor提出的Cutout方法最后以我們的貓圖像為例:該方法可以通過對圖像的隱藏區(qū)域進行泛化從而限制過擬合。
我們最后看到的是貓的頭丟棄掉的畫面這迫使CNN了解到可以描述貓的不太明顯的屬性同樣,在本節(jié)中沒有數(shù)學這種方法很大程度上依賴發(fā)面失敗還能二次發(fā)嗎于我們的想象力:正方形、長方形、圓形,在所有的特征圖上,一次在一個特征圖上,或者可能在幾個特征圖上……這取決于你。
Max-Drop最后,為了結束關于CNNs的這一節(jié),我必須指出,很明顯,幾個方法可以進行組合當我們知道了不同的方法時,這就是使我們強大的原因:我們可以同時利用他們的好處這是S. Park和N. Kwak提出的。
Max-Drop方法。
這種方法在某種程度上是化dropout和高斯dropout的混合。dropout是在最大池化層上執(zhí)行的,但使用的是貝葉斯方法。
在他們的論文中,他們表明這種方法給出的結果與 Spatial Dropout一樣有效除此之外,在每次迭代中,所有的神經(jīng)元都保持活發(fā)面失敗還能二次發(fā)嗎躍,這限制了訓練階段的減速這些結果都是用μ = 0.02和σ2 = 0.05的數(shù)據(jù)得到的。
RNNDrop
我們已經(jīng)看到了一些DNNs和CNNs的dropout的方法一些研究還試圖找出哪些方法對遞歸神經(jīng)網(wǎng)絡是有效的它們通常依賴于LSTMs,所以我將以RNNs為例它可以推廣到其他的RNNs問題很簡單:在RNN上應用dropout是危險的。
RNN的目的是長期保存事件的記憶但傳統(tǒng)的dropout方法效率不高,因為它們會產(chǎn)生噪音,阻止這些模型長期保存記憶下面這些方法可以長期保存記憶。
T. Moon等人提出的RNNDrop是最簡單的方法一個伯努利mask只應用于隱藏的單元格狀態(tài)但是這個掩碼從一個序列到另一個發(fā)面失敗還能二次發(fā)嗎序列保持不變這稱為dropout的逐序列采樣它只是意味著在每個迭代中我們創(chuàng)建一個隨機掩碼。
然后從一個序列到另一個序列,這個掩碼保持不變所以被丟棄的元素一直被丟棄而留下來的元素一直留著所有的序列都是這樣循環(huán)Dropout
S. Semeniuta等人提出的循環(huán)Dropout是一個有趣的變體單元格狀態(tài)保持不變dropout只應用于更新單元格狀態(tài)的部分所以在每次迭代中,伯努利的mask使一些元素不再對長期記憶有貢獻但是記憶并沒有改變。
變分RNN dropout
最后,簡單而有效的,由Y. Gal和Z. Ghahramani介紹的RNN Dropout是在internal gates前的基于序列的Drop發(fā)面失敗還能二次發(fā)嗎out的應用這將導致LSTM在不同的點進行dropout打開我們的思路
還有很多不同的dropout方法,但我們將在這里停下來。我發(fā)現(xiàn)非常有趣的是,Dropout方法不僅僅是正則化的方法。Monte Carlo Dropout
Dropout方法也可以提供一個模型不確定性的指標讓我解釋一下對于相同的輸入,經(jīng)歷了dropout的模型在每次迭代中會有一個不同的架構這將導致輸出中的方差如果網(wǎng)絡是相當廣義的,并且協(xié)同適應是有限的,那么預測是在整個模型中分布的。
這將導致在每次迭代中使用相同的輸入時輸出的方差降低研究這個方差可以給出一個可以分配給模型的置信度的概念這可以從Y. Gal和Z. Ghahraman發(fā)面失敗還能二次發(fā)嗎i的方法中看出模型壓縮最后,直觀地,通過隨機應用dropouts,我們可以看到給定神經(jīng)元對預測是否有效。
根據(jù)這個觀察結果,我們可以通過減少參數(shù)的數(shù)量來壓縮模型,同時最大限度地降低性能的損耗K. Neklyudov等人提出了利用變分dropout來剪枝DNNs和CNNs的方法英文原文:https://towardsdatascience.com/12-main-dropout-methods-mathematical-and-visual-explanation-58cdc2112293