Dropout — 隨機關閉神經元 | 模擬人腦神經元原理 | 避免模型過擬合

Dropout簡單介紹

CHEN TSU PEI
Mar 22, 2020

聲明

為了更好地閱讀體驗,所以請連結到此網頁閱讀

介紹

Dropout這個概念是在2014年被提出的,它的概念其實很簡單,在訓練的時候,隨機將一些神經元關閉,這樣避免神經元之間過度依賴(prevents units from co-adapting too much),並在Inference時將所有神經元開啟,這樣可以輕鬆估計各個不同小的神經網路的平均值,使用dropout可以大幅降低overfitting的可能

原理

Source: ref.[2]. 左邊為一般神經網路,右邊為使用Dropout的神經網路

乍聽之下很簡單的原理,用一個機率p來開啟神經元,但其實背後做到了model combination, weight sharing的動作。假設我們有n顆神經元,每顆都可能開或不開,因此我們的神經網路的可能總共為2n種,我們稱每個小的神經網路為thinned network,所以在我們訓練途中,其實是在訓練2n個 thinned network ,並且由於各個 thinned network 之間又是使用同個權重,因此可以看作權重的分享(weight sharing)

Source: ref.[2]. 在使用或測試時,將權重乘上機率p,讓我們能得到單一的神經網路

test time的時候,理論上我們要平均2n個 thinned network 的預測,但不可能這樣做,我們透過將神經元權重scale-down的動作,也就是將每個神經元的權重乘以它被開啟的機率p,這使得我們可以將2n個 thinned network 合併成單一個神經網路

公式

這邊直接將原論文的段落引述出來,因為一些符號的意義直接看原文定義是最精準的

Reference

  1. 講解非常清楚的知乎: 深度学习中Dropout原理解析
  2. Dropout: A Simple Way to Prevent Neural Networks from Overfitting

--

--

CHEN TSU PEI

這邊停止更新了!麻煩移駕到https://tsupei.github.io,有持續更新更多NLP的文章唷!