dropout是2023年深度學習視覺領域的開山之作*****:《imagenet classification with deep convolutional》所提到的演算法,用於防止過擬合。
基本思想:
dropout是指在深度學習網路訓練的過程中,對於神經網路單元,按照一定的概率將其==暫時==從網路中丟棄,對於隨機梯度下降演算法來說,由於是隨機丟棄,所以每個mini-batch都在訓練不同的網路。
大規模神經網路的缺點:
過擬合是很多機器學習的通病,為了解決過擬合問題,我們可能會想到l2正則化、或者減小網路規模。dropout很好的解決了這個問題。
因而對於乙個有n個節點的神經網路,有了dropout後,==就可以看做是2^n個模型的集合了==,但是需要訓練的引數數目依然不變,這就解脫了費時的問題。
2.1 dropout是怎麼工作的?
dropout就是我們讓它在前向傳播的時候,讓某個神經元的啟用值以一定的概率p,讓他停止工作。
==以前我們網路的計算公式==是:
採用==dropout後==變成如下公式:
==再詳細點的解釋就是==:我們要讓某個神經元以概率p停止工作(也就是將這個神經元的啟用值變為0), 那麼這個概率怎麼產生呢?答案就是伯努利分布,我們用伯努利函式,以概率p隨機生成乙個0、1的向量, 也就是上述公式中的r。
原始碼實現如下
#dropout函式的實現
def dropout(x, level):
if level < 0.
or level >= 1:#level是概率值,必須在0~1之間
raise exception('dropout level must be in interval [0, 1[.')
retain_prob = 1. - level
#我們通過binomial函式,生成與x一樣的維數向量。binomial函式就像拋硬幣一樣,我們可以把每個神經元當做拋硬幣一樣
#硬幣 正面的概率為p,n表示每個神經元試驗的次數
#因為我們每個神經元只需要拋一次就可以了所以n=1,size引數是我們有多少個硬幣。
sample=np.random.binomial(n=1,p=retain_prob,size=x.shape)#即將生成乙個0、1分布的向量,0表示這個神經元被遮蔽,不工作了,也就是dropout了
print sample
x *=sample#0、1與x相乘,我們就可以遮蔽某些神經元,讓它們的值變為0
print x
x /= retain_prob
return x
#對dropout的測試,大家可以跑一下上面的函式,了解乙個輸入x向量,經過dropout的結果
x=np.asarray([1,2,3,4,5,6,7,8,9,10],dtype=np.float32)
dropout(x,0.4)
函式中,x是本層網路的啟用值。level就是dropout就是每個神經元要被丟棄的概率。
2.2 rescale
經過上面的遮蔽,使部分啟用值變為0以後,我們還需要對向量進行rescale,也就是乘以 1/(1-p).
我們前面說過,其實dropout是類似於平均網路模型。我們可以這麼理解,我們在訓練階段訓練了1000個網路,每個網路生成的概率為pi,然後我們在測試階段的時候,我們肯定要把這1000個網路的輸出結果都計算一遍,然後用這1000個輸出,乘以各自網路的概率pi,求得的期望值就是我們最後的平均結果。
1、2、
3、《imagenet classification with deep convolutional》
4、《improving neural networks by preventing co-adaptation of feature detectors》
深度學習 Drop out
1.原理 在每個訓練批次的前向傳播中,以概率p保留部分神經元。目的是 簡化神經網路的複雜度,降低過擬合風險。根據保留概率p計算乙個概率向量r 1,0,1,0,0,1,1.然後保留部分節點。2.注意點 因為dropout一般只使用在訓練時,而測試時所有的神經元都會保留。為了使訓練和測試時對應,可以有以...
深度學習 dropout理解
深度神經網路的訓練是一件非常困難的事,涉及到很多因素,比如損失函式的非凸性導致的區域性最優值 計算過程中的數值穩定性 訓練過程中的過擬合等。其中,過擬合是很容易發生的現象,也是在訓練dnn中必須要解決的問題。過擬合我們先來講一下什麼是 過擬合 過擬合是指模型訓練到一定程度後,在訓練集上得到的測試誤差...
深度學習 理解dropout
dropout是指在深度學習網路的訓練過程中,對於神經網路單元,按照一定的概率將其暫時從網路中丟棄。注意是暫時,對於隨機梯度下降來說,由於是隨機丟棄,故而每乙個mini batch都在訓練不同的網路。dropout是cnn中防止過擬合提高效果的乙個大殺器。dropout如何工作 dropout以概率...