Inception系列之Batch-Normalization
- 2020 年 11 月 10 日
- 筆記
訓練深度神經網路非常複雜,因為在訓練過程中,隨著先前各層的參數發生變化,各層輸入的分布也會發生變化,圖層輸入分布的變化帶來了一個問題,因為圖層需要不斷適應新的分布,因此訓練變得複雜,隨著網路變得更深,網路參數的細微變化也會放大。由於要求較低的學習率和仔細的參數初始化,這減慢了訓練速度,並且眾所周知,訓練具有飽和非線性的模型非常困難。我們將此現象稱為內部協變數偏移,並通過歸一化層輸入來解決該問題。
Batch Normalization通過將歸一化作為模型體系結構的一部分並為每個訓練小批量執行歸一化來汲取其優勢。批處理規範化使我們可以使用更高的學習率,而對初始化則不必那麼小心。它還可以充當正則化器,在某些情況下,不需要Dropout,BN朝著減少內部協變數偏移邁出了一步,並且在此過程中極大地加速了深度神經網路的訓練。它通過固定圖層輸入的均值和方差的歸一化步驟來完成此操作。
BN應用於最先進的影像分類模型,以較少的14倍訓練步驟即可達到相同的精度,並且在很大程度上擊敗了原始模型。使用批歸一化網路的模型在 ImageNet分類中達到4.9%的top-5驗證錯誤(和4.8%的測試錯誤),超過了人類評分者的準確性。
Batch-Normalization實現
最開始的想法是通過白化來實現分布歸一化,然而考慮到白化需要在梯度下降外計算協方差矩陣,因此白化層將嚴重影響計算量。後來選擇了在mini-batch中使用如下公式實現歸一化:
請注意,簡單地標準化圖層的每個輸入可能會更改該圖層可以表示的內容。例如,對S形輸入進行歸一化會將其約束為非線性的線性狀態。為了解決這個問題,我們確保網路中插入的轉換可以表示身份轉換(the transformation inserted in the network can represent the identity transform)。因此,我們為每次激活x(k)引入一對參數γ(k),β(k),它們可縮放和移動標準化值:
其中,γ(k) = Var[x(k)]開根號,β(k) = E[x(k)]
具體實現演算法偽程式碼如下:
在訓練期間,我們需要通過此變換反向傳播損耗gradient的梯度,以及計算與BN變換的參數有關的梯度。我們使用鏈式規則,如下所示(在簡化之前):
因此,BN轉換是將標準化激活引入網路的可微分轉換。這樣可以確保在訓練模型時,各層可以繼續學習內部協變數偏移較少的輸入分布,從而加快了訓練速度。此外,將學習到的仿射變換應用於這些規範化激活,可以使BN變換表示身份變換並保留網路容量。
Batch-Normalization在卷積層中應用
卷積網路中添加BN前的映射方程為z = g(W u + b),這裡g是激活函數。在添加BN後變為了z = g(BN(W u)),這裡去除了b,由於我們對W u + b進行了歸一化,因此可以忽略偏差b,因為其作用將被隨後的均值減法抵消(偏差的作用在前面的式子中由β所實現)
Batch-Normalization有利於使用更大的學習率
在傳統的深度網路中,過高的學習率可能會導致梯度爆炸或消失,以及陷入不良的局部最小值。批處理規範化有助於解決這些問題。通過對整個網路的激活進行標準化,可以防止對參數的細微更改放大為梯度激活中的較大和次佳的更改。例如,它可以防止訓練陷入非線性的飽和狀態。
批歸一化還使訓練對參數規模更具彈性。通常,較高的學習率可能會增加圖層參數的規模,然後放大反向傳播期間的梯度並導致模型爆炸。但是,使用批歸一化,通過層的反向傳播不受其參數範圍的影響。確實,對於標量a, 假設BN (W u) = BN ((aW )u),(這裡可以這麼假設的原因,個人理解是BN有仿射變換,可以實現不同卷積參數大小得到相同的結果),等式兩邊分別對u和W求導,
對此,比例尺a不會影響雅可比層,也不會影響梯度傳播。而且,較大的權重反而有較小的梯度,並且「批歸一化」將穩定參數的增長。
Batch-Normalization實際效果
1. 增加學習率
2. 可去除Dropout
3. 減少L2權重正則化
4. 加速學習率衰減
5. 不再需要局部響應歸一化(LRN)(在BN提出來之前是使用LRN)
6. 更徹底地混洗訓練示例
7. 減少光度失真
後兩個不太好理解,例如第七點,原文的說法是「由於批量歸一化的網路訓練速度更快,並且觀察每個訓練示例的次數更少,因此,我們使訓練者可以通過減少畸變來專註於更多「真實」的影像。「我個人的理解是可以減少對影像進行畸變這種數據增強方式,因為有了BN後能更關注於真實影像,但這種理解不夠直觀,並不知道為什麼會可以這樣。
實驗效果,收斂速度明顯更快,精度更高。
如有錯誤或不合理之處,歡迎在評論中指正。
歡迎關注公眾號「CV技術指南」,主要進行電腦視覺方向的論文解讀,最新技術跟蹤,以及CV技術的總結。