防止過擬合的方法:
提前終止(當驗證集上的效果變差的時候)
l1和l2正則化加權
soft weight sharing
dropout
dropout率的選擇
經過交叉驗證,隱含節點dropout率等於0.5的時候效果最好,原因是0.5的時候dropout隨機生成的網路結構最多。
dropout也可以被用作一種新增雜訊的方法,直接對input進行操作。輸入層設為更接近1的數。使得輸入變化不會太大(0.8)
訓練過程
對引數w的訓練進行球形限制(max-normalization),對dropout的訓練非常有用。
球形半徑c是乙個需要調整的引數。可以使用驗證集進行引數調優
dropout自己雖然也很牛,但是dropout、max-normalization、large decaying learning rates and high momentum組合起來效果更好,比如max-norm regularization就可以防止大的learning rate導致的引數blow up。
使用pretraining方法也可以幫助dropout訓練引數,在使用dropout時,要將所有引數都乘以1/p。
部分實驗結論
maxout 神經網路中得另一種方法,cifar-10上超越dropout
文字分類上,dropout效果提公升有限,分析原因可能是reuters-rcv1資料量足夠大,過擬合併不是模型的主要問題
其他standerd regularizers的對比:
1) l2 weight decay
2) lasso
3) kl-sparsity
4) max-norm regularization
特徵學習
1) 標準神經網路,節點之間的相關性使得他們可以合作去fix其他節點中得雜訊,但這些合作並不能在unseen data上泛化,於是,過擬合,dropout破壞了這種相關性。在autoencoder上,有dropout的演算法更能學習有意義的特徵(不過只能從直觀上,不能量化)。
2) 產生的向量具有稀疏性。
3) 保持隱含節點數目不變,dropout率變化;保持啟用的隱節點數目不變,隱節點數目變化。
4) 資料量小的時候,dropout效果不好,資料量大了,dropout效果好
模型均值**
1) 使用weight-scaling來做**的均值化
2) 使用mente-carlo方法來做**。即對每個樣本根據dropout率先sample出來k個net,然後做**,k越大,效果越好。
3) multiplicative gaussian noise
4) 使用高斯分布的dropout而不是伯努利模型dropout
5) dropout的缺點就在於訓練時間是沒有dropout網路的2-3倍。
參考部落格:
dropout函式 關於dropout防止過擬合
直觀理解droupout why droupout work so well like a regularizer。為什麼droupout 可以作為乙個正則化器,並且表現的很好?drop掉一些神經元之後,神經網路變小了。採用乙個較小的神經網路和使用正則化的效果是一樣的。dropout產生的效果是使得...
dropout的比例 Dropout正則化原理
1 dropout 如何工作 典型的神經網路其訓練流程是將輸入通過網路進行正向傳導,然後將誤差進行反向傳播。dropout就是針對這一過程之中,隨機地刪除隱藏層的部分單元,進行上述過程。步驟如下 隨機刪除網路中的一些隱藏神經元,保持輸入輸出神經元不變將輸入通過修改後的網路進行前向傳播,然後將誤差通過...
dropout學習筆記
目的 防止過擬合,讓一部分權值停止更新,減少權值之間的依賴 原理 當網路有n個引數時,可以選擇的子網路個數有2 n種,當n很大時,選中相同子網路的概率很小,避免了對同乙個網路重複訓練,過分擬合到訓練集 以前我們網路的計算公式是 採用dropout後計算公式就變成了 上面公式中bernoulli函式,...