本文主要聊下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 在樣本中增...