dropout 和 drop connect 有什麼區別?
dropout 和 drop connect 有什麼區別?
AFAIK,dropout 在訓練期間隨機丟棄隱藏節點,但將它們保持在測試中,並且 drop connect 丟棄連接。
但是刪除連接不等於刪除隱藏節點嗎?節點(或連接)不只是一組權重嗎?
DropOut 和 DropConnect 都是旨在防止神經網絡中單元“共同適應”的方法。換句話說,我們希望單元獨立地從其輸入中提取特徵,而不是依賴其他神經元來這樣做。
假設我們有一個像這樣的多層前饋網絡(拓撲並不重要)。我們擔心中間層的黃色隱藏單元會協同適應。
輟學
為了應用 DropOut,我們隨機選擇單元的一個子集,並將它們的輸出箝制為零,而不管輸入如何;這有效地從模型中刪除了這些單位。每次我們展示一個訓練示例時,都會隨機選擇一個不同的單元子集。
以下是兩種可能的網絡配置。在第一個演示文稿(左)中,第 1 和第 3 個單元被禁用,但在隨後的演示文稿中隨機選擇了第 2 個和第 3 個單元。在測試時,我們使用完整的網絡,但重新調整權重以補償所有這些現在都可以激活的事實(例如,如果你刪除一半的節點,權重也應該減半)。
DropConnect
DropConnect 的工作方式類似,除了我們禁用單個權重(即,將它們設置為零)而不是節點,因此節點可以保持部分活動。從示意圖上看,它看起來像這樣:
比較
這些方法都有效,因為它們可以有效地讓您同時訓練多個模型,然後對它們進行平均以進行測試。例如,黃色層有四個節點,因此有 16 種可能的 DropOut 狀態(全部啟用、#1 禁用、#1 和#2 禁用等)。
DropConnect 是 DropOut 的泛化,因為它產生了更多可能的模型,因為幾乎總是連接多於單元。但是,您可以在單個試驗中獲得類似的結果。例如,右側的 DropConnect 網絡有效地丟棄了 Unit #2,因為所有傳入連接都已被刪除。
延伸閱讀
原始論文很容易獲得,並且包含更多細節和實證結果。
- DropOut:Hinton 等人,2012 年, Srivast等人,2014 年;JMLR
- DropConnect:萬等人,2013