Neural-Networks

dropout 和 drop connect 有什麼區別?

  • March 14, 2016

dropout 和 drop connect 有什麼區別?

AFAIK,dropout 在訓練期間隨機丟棄隱藏節點,但將它們保持在測試中,並且 drop connect 丟棄連接。

但是刪除連接不等於刪除隱藏節點嗎?節點(或連接)不只是一組權重嗎?

DropOut 和 DropConnect 都是旨在防止神經網絡中單元“共同適應”的方法。換句話說,我們希望單元獨立地從其輸入中提取特徵,而不是依賴其他神經元來這樣做。

假設我們有一個像這樣的多層前饋網絡(拓撲並不重要)。我們擔心中間層的黃色隱藏單元會協同適應。

示例 5-4-3 網絡

輟學

為了應用 DropOut,我們隨機選擇單元的一個子集,並將它們的輸出箝制為零,而不管輸入如何;這有效地從模型中刪除了這些單位。每次我們展示一個訓練示例時,都會隨機選擇一個不同的單元子集。

以下是兩種可能的網絡配置。在第一個演示文稿(左)中,第 1 和第 3 個單元被禁用,但在隨後的演示文稿中隨機選擇了第 2 個和第 3 個單元。在測試時,我們使用完整的網絡,但重新調整權重以補償所有這些現在都可以激活的事實(例如,如果你刪除一半的節點,權重也應該減半)。

輟學示例

DropConnect

DropConnect 的工作方式類似,除了我們禁用單個權重(即,將它們設置為零)而不是節點,因此節點可以保持部分活動。從示意圖上看,它看起來像這樣:

DropConnect

比較

這些方法都有效,因為它們可以有效地讓您同時訓練多個模型,然後對它們進行平均以進行測試。例如,黃色層有四個節點,因此有 16 種可能的 DropOut 狀態(全部啟用、#1 禁用、#1 和#2 禁用等)。

DropConnect 是 DropOut 的泛化,因為它產生了更多可能的模型,因為幾乎總是連接多於單元。但是,您可以在單個試驗中獲得類似的結果。例如,右側的 DropConnect 網絡有效地丟棄了 Unit #2,因為所有傳入連接都已被刪除。

延伸閱讀

原始論文很容易獲得,並且包含更多細節和實證結果。

引用自:https://stats.stackexchange.com/questions/201569

comments powered by Disqus