1. 程式人生 > >Dropout淺見

Dropout淺見

神經網路中Dropout的理解

1、神經網路dropout的使用情況

在神經網路的訓練過程中,對於神經網路單元,按照一定的概率將一部分的訓練資料暫時性的拋棄,對於隨機梯度下降來說,由於隨機丟棄部分資料,因此,每一個mini-batch都在訓練不同的神經網路。  

2、dropout的作用

       作用:在卷積神經網路(CNN)可以有效的防止過擬合,提高學習效率。使用方法過程,常見的做法在過完一個神經網路模型(LSTM/RNN/CNN)之後,然後經過一層dropout,有時候也會在經過一個詞向量模型(nn.Embedding)之後,也會用一個dropout.

3、那麼dropout是怎麼起作用的的呢?

首先我們要明白大型的神經網路結構,大型的神經網路缺點很明顯,第一就是耗時,是由於網路的層數以及資料導致用時比較長。 第二就是容易過擬合,所有機器學習方法都會遇到過擬合的問題,基於神經網路的深度學習方法同樣不例外。

接著討論dropout防止過擬合:參考了一下這位仁兄的方法:dropout工作原理


每次經過model訓練之後,經過一次dropout,都會把原始的神經網路進行一個簡化(這裡圖樣是一個全連線的神經網路)。因此,我們對於一個有N個節點的神經網路,有了dropout後,就可以看做是2n個模型的集合了,但此時要訓練的引數數目卻是不變的,這就解決了費時的問題。(上述連結博主原話,勿噴)。

4、小結

dropout能提高神經元和其他隨機挑選出來的神經元共同工作的能力,消除了神經元節點的聯合適應性,增強了泛化能力。