Batch Normalization(Batch Norm, 2015)

Ray Lin
學以廣才
Published in
6 min readJun 21, 2018

Sergey Ioffe和Christian Szegedy兩位學者提出了Batch Normalization方法:
1. 加速計算: 可以設大一點的learning rate (因減少Internal Covariate Shift)
2. 減少梯度爆炸/消失
3. 可降低學習時被參數的初始化所影響的狀況
4. 降低對於regulation的需求
5. 以每個mini-batch來看,等於對各個隱藏層的Z增加random noise,效果類似於Dropout

之前學過,正規化可以讓想算的解問題函數從扁平變得比較圓。這樣對梯度下降比較容易求解。通樣的道理,BN就是對第 L 層隱藏層的輸入a,做標準化處理。例如正規化a[2],來加速w[3], b[3] 的計算。這樣的方式也簡稱Batch Norm。那該正規化 a[2],還是經過activation function後的 Z[2] ?
一般是對Z[2]進行標準化處理而不是a[2],但其實差別不是很大。

運作原理我覺得李老師的影片來比較好理解,推薦花個半小時聽聽。
首先,李老師說的Feature Scaling(就是輸入正規化):

沒有進行Feature Scaling之前,如果輸入x1,x2的分布很不均勻,導致w2對計算結果的影響比較大,訓練的時候,橫縱方向上需要給與一個不同的training rate,在w1方向需要一個更大的learning rate,w2方向給與一個較小的learning rate,但這樣做其實很複雜。對不同Feature做了normalization之後,使得error surface看起來比較接近正圓,就可以使訓練容易得多。

下面一共有R個data,分別計算每個維度的平均值,標準差。然後再使用圖片那個簡單的公式進行一下normalization,就可以把所有維度的平均值變為0,方差變為1了。一般來說,進行Feature Scaling之後可以使梯度下降算法更快收斂。

深度網絡的Internal Covariate Shift問題:
若把每層網路當作一個人,每人左右手上都有一個話筒來傳遞,只有他們將兩個話筒對接各自的耳朵上,才能很好地向後傳遞信息。小人們在訓練的時候會為了傳遞,每個人都想將兩個話筒相互調整到同一個水平高度,所以就可能出現下面的圖,只有中間兩人的話筒對上了,而其他人沒有,這會讓模型預測效果變差。過去的解決方法是調小learning rate,因為沒對上就是因為學習率太大導致的,但是又會導致訓練速度變得很慢。

回到深度學習訓練過程,當前一個層的參數改變之後也會改變後一層的參數,後面的參數按照前面的學好了之後,前面的又變了,會產生Internal Covariate Shift問題。Batch norm就可以解決這個問題。

Batch Normalization implement:

一般都是先進行normalization再傳進active function的,好處就是可以讓輸入更多地落在active function (比如sigmoid和tanh)的微分比較大的地方也就是零附近。先對一層的輸出求平均值μ和方差σ,然後normalization,這樣就可以得到每個維度的平均值為零,方差為1。

在每層的active function之前,都進行一次batch norm。那做batch norm之後的反向傳播,又是怎麼進行的呢? 我們可以把整體視為一個巨大的NN,一路反向傳播回來時,其實是會通過σ,然後通過μ,然後再更新Z的。(因為μ和σ是相依於Z的,改動了Z就相當於改動了μ和σ)。所以在training的時候μ和σ是會被考慮進去的。

不過在訓練網絡的過程中,平均值μ總是0 和 方差σ總是1,似乎不太合理,有時可能會是其值。因此,我們把Z 再正規化成Z ̃,然後在active function輸入之前,增加β和γ參數,這兩個參數在training的時候也會被學習到。但與μ和σ不同的是,他們是獨立的。通常實作時,為了增加計算穩定性,通常會 ε 來避免 σ=0,所以式子會長這樣:

在測試的時候,是怎麼做這個batch norm的? 測試時我們是不知道μ和σ的,因為只有一筆data輸入到網絡中,不能估計出μ和σ。兩個方法可以解決:
1. 直接用整個訓練集計算μ和σ。但實際上訓練集太大,一般不採用這方法。
2. 把過去訓練過程中的μ和σ都紀錄下來,最後平均當成整個資料集的μ和σ。

最後,總結一下Batch norm的優點如下圖左,並附上論文測試結果。

--

--

Ray Lin
學以廣才

善歌者,使人繼其聲;善教者,使人繼其志。其言也,約而達,微而臧,罕譬而喻,可謂繼志矣