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