Keras
執行退出引用this paper。Keras實施的脫落正確嗎?
以下摘錄是從紙:
的想法是在測試時使用一個單一的神經網絡沒有輟學。 該網絡的權重是經過訓練的 權重的縮小版本。如果一個單元被訓練期間保留的概率爲p,該單元的 傳出權重由p在試驗時間乘以作爲 如圖2所示。
的Keras文檔中提到漏失在列車時間僅用於,並從差實現
x = K.in_train_phase(K.dropout(x, level=self.p), x)
以下線,似乎表明確實從輸出層被簡單地沿着在測試時通過。
此外,我無法找到在培訓完成後縮小權重的代碼,正如文中所建議的。我的理解是,這個縮放步驟對於退出工作來說是基本必要的,因爲它相當於在「子網」集合中獲得預期的中間層輸出。沒有它,計算就不再被認爲是從這個「子網絡」集合中抽取的。
那麼我的問題是,在Keras中實施的退出的縮放效果在哪裏?
更新1:好吧,所以Keras使用反向刪除,儘管它在Keras文檔和代碼中被稱爲丟失。鏈接http://cs231n.github.io/neural-networks-2/#reg似乎並不表示這兩者是等效的。在https://stats.stackexchange.com/questions/205932/dropout-scaling-the-activation-versus-inverting-the-dropout也沒有答案。我可以看到他們做了類似的事情,但我還沒有看到有人說他們完全一樣。我認爲他們不是。
因此,一個新的問題:輟學和倒退相當於?爲了清楚起見,我正在尋找數學上的理由來說明他們是否是。
感謝您的支持。你有沒有機會提供對我所問的第二個問題的見解? – user3390629
我更新了我的答案。 –
好的,你能解釋他們爲什麼相當(在答案中)?看來,使用丟失的網絡1和使用反向丟失的網絡2計算的梯度將是不同的,因此它們將會收斂到不同的最終狀態。 – user3390629