2015年12月17日 星期四

Deep Learning(深度學習) - 理解概念筆記 (一) : Dropout

內容皆為個人對於論文中的理解

如有理解錯誤歡迎一起討論,互相學習
--

Dropout是目前深度學習中最廣為使用的一種技巧

原始論文:
Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout: A simple way to prevent neural networks from overfitting. The Journal of Machine Learning Research, 15(1), 1929-1958.

PDF連結

其目的為防止network的overfitting

其原理為透過丟棄network中的某些neuron來防止feature之間的合作(co-adaption)

當某些feature被丟棄後,network必須學會利用剩下的feature進行分類

由於每次都是隨機的丟棄,network必須學會利用剩餘的feature本身來進行分類

而非透過某幾個feature所形成特定行為來進行分類
---
會成功的原因是透過丟棄network中的某些neuron

每個mini-batch進入學習並且進行dropout後,都是在train原本network的某種sub-network

原本network就變成是這些sub-network的集合體(ensemble)

而test時不使用dropout,其結果是為這些sub-network之期望值,故network表現會變好

不使用dropout的話,可視為只訓練出一個network來進行classification
使用dropout的話,可視為訓練出很多個的sub-network來進行classification

其圖示概念如下圖 (手繪)




















---

dropout目前被視為一種強而有力來降低overfitting的方法
幾乎被用於目前可見的任何的深度學習模型
也implement於目前所有的deep learning toolbox裡
其實現非常的簡單
依據dropout rate建立一個mask
使用這個mask遮蓋forwarding data
 backward時也同樣遮蓋gradients使其不被update


1 則留言: