深度拾遺(01) - 梯度爆炸/梯度消失/Batch Normal

什麼是梯度爆炸/梯度消失?

深度神經網絡訓練的時候,採用的是反向傳播方式,該方式使用鏈式求導,計算每層梯度的時候會涉及一些連乘操做,所以若是網絡過深。
那麼若是連乘的因子大部分小於1,最後乘積的結果可能趨於0,也就是梯度消失,後面的網絡層的參數不發生變化.
那麼若是連乘的因子大部分大於1,最後乘積可能趨於無窮,這就是梯度爆炸html

如何防止梯度消失?

sigmoid容易發生,更換激活函數爲 ReLU便可。
權重初始化用高斯初始化網絡

如何防止梯度爆炸?

1 設置梯度剪切閾值,若是超過了該閾值,直接將梯度置爲該值。dom

2 使用ReLU,maxout等替代sigmoid
區別:機器學習

  1. sigmoid函數值在[0,1],ReLU函數值在[0,+無窮],因此sigmoid函數能夠描述機率,ReLU適合用來描述實數;
  2. sigmoid函數的梯度隨着x的增大或減少和消失,而ReLU不會。
  3. Relu會使一部分神經元的輸出爲0,這樣就形成了網絡的稀疏性,而且減小了參數的相互依存關係,緩解了過擬合問題的發生
    圖片名稱

sigmoid導數最大爲1/4
a的數值變化範圍很小,若x數值僅在[-4,4]窄範圍內會出現梯度消失,若大於4則梯度爆炸。
對於sigmoid更容易出現梯度消失。函數

Battch Normal

ref

解決了梯度消失與加速收斂(數據自己在0均值處)和internal covariate shift(內部神經元分佈的改變) 數據分佈不一致問題。
傳統的深度神經網絡在訓練是,每一層的輸入的分佈都在改變,所以訓練困難,只能選擇用一個很小的學習速率,可是每一層用了BN後,能夠有效的解決這個問題,學習速率能夠增大不少倍.學習

  1. 經過將activation規範爲均值和方差一致的手段使得本來會減少的activation的scale變大。
  2. 初始化的時候,咱們的參數通常都是0均值的,所以開始的擬合y=Wx+b,基本過原點附近,如圖b紅色虛線。所以,網絡須要通過屢次學習才能逐步達到如紫色實線的擬合,即收斂的比較慢。若是咱們對輸入數據先做減均值操做,如圖c,顯然能夠加快學習。更進一步的,咱們對數據再進行去相關操做,使得數據更加容易區分,這樣又會加快訓練,如圖d。 經過把梯度映射到一個值大但次優的變化位置來阻止梯度太小變化。
    圖片名稱spa

  3. 統計機器學習中的一個經典假設是「源空間(source domain)和目標空間(target domain)的數據分佈(distribution)是一致的」。若是不一致,那麼就出現了新的機器學習問題,如,transfer learning/domain adaptation等。
    covariate shift就是分佈不一致假設之下的一個分支問題,它是指源空間和目標空間的條件機率是一致的,可是其邊緣機率不一樣,即:對全部\(x\in \mathcal{X},P_s(Y|X=x)=P_t(Y|X=x)\),可是\(P_s(X)\ne P_t(X)\).
    對於神經網絡的各層輸出,因爲它們通過了層內操做做用,其分佈顯然與各層對應的輸入信號分佈不一樣,並且差別會隨着網絡深度增大而增大,但是它們所能「指示」的樣本標記(label)仍然是不變的,這便符合了covariate shift的定義。因爲是對層間信號的分析,也便是「internal」的來由。
    所以至少0均值1方差的數據集能夠減小樣本分佈的變化問題
  4. 使用BN訓練時,一個樣本只與minibatch中其餘樣本有相互關係;對於同一個訓練樣本,網絡的輸出會發生變化。這些效果有助於提高網絡泛化能力,像dropout同樣防止網絡過擬合,同時BN的使用,能夠減小或者去掉dropout相似的策略。.net

BN(Batch Normalization)層的做用orm

  1. 加速收斂
  2. 控制過擬合,能夠少用或不用Dropout和正則
  3. 下降網絡對初始化權重敏感
  4. 容許使用較大的學習率
    在每一層輸入的時候,加個BN預處理操做。BN應做用在非線性映射前,即對x=Wu+b作規範化。在BN中,是經過將activation規範爲均值和方差一致的手段使得本來會減少的activation的scale變大。能夠說是一種更有效的local response normalization方法

PS:
Batch Norm會忽略圖像像素(或者特徵)之間的絕對差別(由於均值歸零,方差歸一),而只考慮相對差別,因此在不須要絕對差別的任務中(好比分類),有錦上添花的效果。而對於圖像超分辨率這種須要利用絕對差別的任務,Batch Norm只會添亂。htm

參考
參考

常見問題備查
1
2
3

相關文章
相關標籤/搜索