--- disqus: ierosodin --- # Dropout , Activation Function and ResNet > Organization contact [name= [ierosodin](ierosodin@gmail.com)] ###### tags: `deep learning` `學習筆記` ==[Back to Catalog](https://hackmd.io/@ierosodin/Deep_Learning)== * Dropout * 在機器學習的模型中,如果模型的參數太多,而訓練樣本又太少,訓練出來的模型很容易產生過擬合的現象。 * Dropout可以作為訓練深度神經網絡的一種trick供選擇。在每個訓練批次中,通過忽略一半的特徵檢測器(讓一半的隱層節點值為0),可以明顯地減少過擬合現象。這種方式可以減少特徵檢測器(隱層節點)間的相互作用,檢測器相互作用是指某些檢測器依賴其他檢測器才能發揮作用。 * Activation Function * 在類神經網路中如果不使用激勵函數,那麼在類神經網路中皆是以上層輸入的線性組合作為這一層的輸出(也就是矩陣相乘),輸出和輸入依然脫離不了線性關係,做深度類神經網路便失去意義。引入非線性函數作為激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。 * ReLU * ReLU的分段線性性質能有效的克服梯度消失的問題。 * 對使用反向傳播訓練的類神經網絡來說,梯度的問題是最重要的,使用 sigmoid 和 tanh 函數容易發生梯度消失問題,是類神經網絡加深時主要的訓練障礙。 * ResNet * 殘差學習來解決退化問題。對於一個堆積層結構(幾層堆積而成)當輸入為 $x$ 時其學習到的特徵記為 $H(x)$,現在我們希望其可以學習到殘差 $F(x) = H(x) - x$,這樣其實原始的學習特徵是 $F(x)+x$。之所以這樣是因為殘差學習相比原始特徵直接學習更容易。當殘差為 0 時,此時堆積層僅僅做了恆等映射,至少網絡性能不會下降,實際上殘差不會為 0,這也會使得堆積層在輸入特徵基礎上學習到新的特徵,從而擁有更好的性能。殘差學習的結構下圖所示。這有點類似與電路中的 “短路”,所以是一種短路連接(shortcut connection)。 *  * 兩種策略,在第二種策略中,第一個 $1 \times 1$ 的捲積把 256 維 channel 降到 64 維,然後在最後通過 $1\times 1$ 卷積恢復,整體上用的參數數目:$1\times1\times256\times64 + 3\times3\times64\times64 + 1\times1\times64\times256 = 69632$,而不使用 bottleneck 的話就是兩個 $3\times3\times256$ 的卷積,參數數目: $3\times3\times256\times256\times2 = 1179648$,差了 16.94 倍。對於常規ResNet,可以用於34層或者更少的網絡中,對於 Bottleneck Design 的 ResNet 通常用於更深的如 101 這樣的網絡中,目的是減少計算和參數量(實用目的)。 * 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up