點擊上方「程式設計師大白」,選擇「星標」公眾號
重磅乾貨,第一時間送達
Internal Covariate Shift(ICS)Batch Normalization的原論文作者給了Internal Covariate Shift一個較規範的定義:在深層網絡訓練的過程中,由於網絡中參數變化而引起內部結點數據分布發生變化的這一過程被稱作Internal Covariate Shift。
這裡做一個簡單的數學定義,對於全連結網絡而言,第i層的數學表達可以體現為:
【怎麼理解ICS問題】
我們知道,隨著梯度下降的進行,每一層的參數
BN解決的問題【ICS帶來的收斂速度慢】
因為每一層的參數不斷發生變化,從而每一層的計算結果的分布發生變化,後層網絡不斷地適應這種分布變化,這個時候會讓整個網絡的學習速度過慢。
【梯度飽和問題】
因為神經網絡中經常會採用sigmoid,tanh這樣的飽和激活函數(saturated actication function),因此模型訓練有陷入梯度飽和區的風險。解決這樣的梯度飽和問題有兩個思路:第一種就是更為非飽和性激活函數,例如線性整流函數ReLU可以在一定程度上解決訓練進入梯度飽和區的問題。另一種思路是,我們可以讓激活函數的輸入分布保持在一個穩定狀態來儘可能避免它們陷入梯度飽和區,這也就是Normalization的思路。
Batch NormalizationbatchNormalization就像是名字一樣,對一個batch的數據進行normalization。
現在假設一個batch有3個數據,每個數據有兩個特徵:(1,2),(2,3),(0,1)
如果做一個簡單的normalization,那麼就是計算均值和方差,把數據減去均值除以標準差,變成0均值1方差的標準形式。
對於第一個特徵來說:
【通用公式】
目前為止,我們做到了讓每個特徵的分布均值為0,方差為1。這樣分布都一樣,一定不會有ICS問題
如同上面提到的,Normalization操作我們雖然緩解了ICS問題,讓每一層網絡的輸入數據分布都變得穩定,但卻導致了數據表達能力的缺失。每一層的分布都相同,所有任務的數據分布都相同,模型學啥呢
【0均值1方差數據的弊端】
通過讓每一層的輸入分布均值為0,方差為1,會使得輸入在經過sigmoid或tanh激活函數時,容易陷入非線性激活函數的線性區域。(線性區域和飽和區域都不理想,最好是非線性區域)為了解決這個問題,BN層引入了兩個可學習的參數
所以對於某一層的網絡來說,我們現在變成這樣的流程:
(上面公式中,省略了
測試階段的BN我們知道BN在每一層計算的
利用訓練集訓練好模型之後,其實每一層的BN層都保留下了每一個batch算出來的
當然,計算訓練集的
BN層的好處有哪些BN使得網絡中每層輸入數據的分布相對穩定,加速模型學習速度。BN通過規範化與線性變換使得每一層網絡的輸入數據的均值與方差都在一定範圍內,使得後一層網絡不必不斷去適應底層網絡中輸入的變化,從而實現了網絡中層與層之間的解耦,允許每一層進行獨立學習,有利於提高整個神經網絡的學習速度。
BN允許網絡使用飽和性激活函數(例如sigmoid,tanh等),緩解梯度消失問題通過normalize操作可以讓激活函數的輸入數據落在梯度非飽和區,緩解梯度消失的問題;另外通過自適應學習
BN具有一定的正則化效果在Batch Normalization中,由於我們使用mini-batch的均值與方差作為對整體訓練樣本均值與方差的估計,儘管每一個batch中的數據都是從總體樣本中抽樣得到,但不同mini-batch的均值與方差會有所不同,這就為網絡的學習過程中增加了隨機噪音
BN與其他normalizaiton的比較【weight normalization】Weight Normalization是對網絡權值進行normalization,也就是L2 norm。
相對於BN有下面的優勢:
WN通過重寫神經網絡的權重的方式來加速網絡參數的收斂,不依賴於mini-batch。BN因為依賴minibatch所以BN不能用於RNN網路,而WN可以。而且BN要保存每一個batch的均值方差,所以WN節省內存;BN的優點中有正則化效果,但是添加噪音不適合對噪聲敏感的強化學習、GAN等網絡。WN可以引入更小的噪音。但是WN要特別注意參數初始化的選擇。
【Layer normalization】更常見的比較是BN與LN的比較。BN層有兩個缺點:
無法進行在線學習,因為在線學習的mini-batch為1;LN可以但是,在CNN中LN並沒有取得比BN更好的效果。
參考連結:
https://zhuanlan.zhihu.com/p/34879333https://www.zhihu.com/question/59728870https://zhuanlan.zhihu.com/p/113233908https://www.zhihu.com/question/55890057/answer/267872896