閒話深度神經網路中的正則化方法之一 Dropout

2021-09-11 16:27:09 字數 713 閱讀 1705

本文主要聊下inverted dropout。

想看英文解釋的可以檢視《regularization of neural networks using dropconnect》

所謂inverted dropout,當模型使用了dropout layer,訓練的時候只有佔比為 p的隱藏層單元參與訓練,那麼在**的時候,如果所有的隱藏層單元都需要參與進來,則得到的結果相比訓練時平均要大1/p,為了避免這種情況,就需要測試的時候將輸出結果乘以p 使下一層的輸入規模保持不變。而利用inverted dropout,我們可以在訓練的時候直接將dropout後留下的權重擴大1/p倍,這樣就可以使結果的scale保持不變,而在**的時候也不用做額外的操作了,更方便一些。

數學分析:

假設我們設定dropout probability為p, 那麼該層大約有比例為p的單元會被drop掉,因為每個神經元是否drop就是一次伯努利實驗,這層的dropout概率服從伯努利分布,而分布的期望就是np。

,當層有比例為p的單元drop後,大約會變為原來的p倍,為了保證l層的z期望不變,所以要在與dropout矩陣乘積後,要除以p,即擴大1/p倍。

深度神經網路正則化

在深層網路學習中,為了防止過擬合問題,正則化是個有效措施。以下是用tensorflow搭建的小例子,配合tensorboard。import tensorflow as tf import os os.environ tf cpp min log level 2 cpu加速 def get weig...

神經網路正則化方法

在訓練資料不夠多時,或者overtraining時,常常會導致overfitting 過擬合 其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大 因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻...

深度神經網路 正則化(二)dropout正則化

深度學習可能存在過擬合問題 高方差,有兩個解決辦法,一是正則化,另乙個是準備更多的資料,但由於無法時時刻刻準備足夠多的訓練資料或者獲取資料的成本高,所以通常使用正則化的方法來避免過擬合。正則化的主要方法有 l2正則化 dropout 資料增廣 early stopping bagging 在樣本中增...