深度學習 一文入門Dropout層

2022-01-12 17:00:24 字數 1218 閱讀 9125

dropout層在神經網路層當中是用來幹嘛的呢?它是一種可以用於減少神經網路過擬合的結構,那麼它具體是怎麼實現的呢?

假設下圖是我們用來訓練的原始神經網路:

一共有四個輸入x_i,乙個輸出y。dropout則是在每乙個batch的訓練當中隨機減掉一些神經元,而作為程式設計者,我們可以設定每一層dropout(將神經元去除的的多少)的概率,在設定之後,就可以得到第乙個batch進行訓練的結果:

從上圖我們可以看到一些神經元之間斷開了連線,因此它們被dropout了!dropout顧名思義就是被拿掉的意思,正因為我們在神經網路當中拿掉了一些神經元,所以才叫做dropout層。

在進行第乙個batch的訓練時,有以下步驟:

1.設定每乙個神經網路層進行dropout的概率

2.根據相應的概率拿掉一部分的神經元,然後開始訓練,更新沒有被拿掉神經元以及權重的引數,將其保留

3.引數全部更新之後,又重新根據相應的概率拿掉一部分神經元,然後開始訓練,如果新用於訓練的神經元已經在第一次當中訓練過,那麼我們繼續更新它的引數。而第二次被剪掉的神經元,同時第一次已經更新過引數的,我們保留它的權重,不做修改,直到第n次batch進行dropout時沒有將其刪除。

備註:

這就是dropout層的思想了,為什麼dropout能夠用於防止過擬合呢?因為約大的神經網路就越有可能產生過擬合,因此我們隨機刪除一些神經元就可以防止其過擬合了,也就是讓我們擬合的結果沒那麼準確。就如同機器學習裡面的l1/l2正則化一樣的效果!

那麼我們應該對什麼樣的神經網路層進行dropout的操作呢?很顯然是神經元個數較多的層,因為神經元較多的層更容易讓整個神經網路進行**的結果產生過擬合,假設有如下圖所示的乙個dropou層:

由於隱藏層的第一層和第二層神經元個數較多,容易產生過擬合,因此我們將其加上dropout的結構,而後面神經元個數較少的地方就不用加了!

深度學習 Drop out

1.原理 在每個訓練批次的前向傳播中,以概率p保留部分神經元。目的是 簡化神經網路的複雜度,降低過擬合風險。根據保留概率p計算乙個概率向量r 1,0,1,0,0,1,1.然後保留部分節點。2.注意點 因為dropout一般只使用在訓練時,而測試時所有的神經元都會保留。為了使訓練和測試時對應,可以有以...

一文讀懂深度學習時序分析

作者 prakhar ganesh 編譯 安然 圖靈topia 近日,發表在 datascience 上的一篇文章,使用深度學習方法,從資料處理 迴圈網路 rnn上的lstm cnn lstms等方面介紹了時間序列分析,同時解釋了時間序列的概念以及為什麼選擇深度學習的方法等問題。什麼是時間序列分析?...

深度學習 dropout理解

深度神經網路的訓練是一件非常困難的事,涉及到很多因素,比如損失函式的非凸性導致的區域性最優值 計算過程中的數值穩定性 訓練過程中的過擬合等。其中,過擬合是很容易發生的現象,也是在訓練dnn中必須要解決的問題。過擬合我們先來講一下什麼是 過擬合 過擬合是指模型訓練到一定程度後,在訓練集上得到的測試誤差...