當前位置:
首頁 > 最新 > 二十三:神經網路訓練中的批量歸一化

二十三:神經網路訓練中的批量歸一化

來看看批量歸一化的有關問題吧!記得進入公號菜單「機器學習」,複習之前的系列文章噢。

今天的內容是

【神經網路訓練中的批量歸一化】

場景描述

深度神經網路的訓練中涉及諸多手調參數,如學習率,權重衰減係數,Dropout比例等,這些參數的選擇會顯著影響模型最終的訓練效果。批量歸一化(Batch Normalization, BN)方法從數據分布入手,有效減弱了這些複雜參數對網路訓練產生的影響,在加速訓練收斂的同時也提升了網路的泛化能力。

問題描述

背景知識:統計學習,深度學習

解答與分析

1.BN的基本動機與原理是什麼?

神經網路訓練過程的本質是學習數據分布,訓練數據與測試數據的分布不同將大大降低網路的泛化能力,因此我們需要在訓練開始前對所有輸入數據進行歸一化處理。

然而隨著網路訓練的進行,每個隱層的參數變化使得後一層的輸入發生變化,從而每一批(batch)訓練數據的分布也隨之改變,致使網路在每次迭代中都需要擬合不同的數據分布,增大了訓練的複雜度以及過擬合的風險。

Batch Normalization方法是針對每一批數據,在網路的每一層輸入之前增加歸一化處理(均值為0,標準差為1),將所有批數據強制在統一的數據分布下,即對該層的任意一個神經元(不妨假設為第k維)採用如下公式:

2. BN的具體實現中怎樣恢復前一層學習到的特徵分布?

按照上式直接進行歸一化會導致上層學習到的數據分布發生變化,以sigmoid激活函數為例,BN之後數據整體處於函數的非飽和區域,只包含線性變換,破壞了之前學習到的特徵分布。為了恢復原始數據分布,具體實現中引入了變換重構以及可學習參數γ,β:

其中

分別為輸入數據分布的方差和偏差,對於一般的網路,不採用BN操作時,這兩個參數高度依賴前面網路的學習到的連接權重(對應複雜的非線性)。而在BN操作中提取出來後,γ,β變成了該層的學習參數,與之前網路層的參數無關,從而更加有利於優化的過程。

完整的Batch Normalization網路層的前向傳導過程公式如下:

3. 簡述BN在卷積神經網路中如何使用?

卷積神經網路中每一層操作後得到一系列特徵圖(feature maps),卷積層上的BN同樣使用類似權值共享的策略,將每張特徵圖做為一個處理單元,即全連接網路中的單個神經元,進行歸一化操作。

具體實現中,假設網路訓練中每個batch包含b個樣本,特徵圖個數為f,特徵圖的寬高分別為w, h,那麼,每個特徵圖所對應的全部神經元個數為b * w * h,利用這些神經元我們可得到一組學習參數γ,β用於對該特徵圖進行BN操作。詳細過程可參考問題2中的公式,其中m=b * w * h,為BN操作中的mini-batch。

下一題預告

【隨機梯度下降法】

場景描述

深度學習得以在近幾年迅速佔領工業界和學術界的高地,重要原因之一是數據量的爆炸式增長。如下圖所示,隨著數據量的增長,傳統機器學習演算法的性能會進入平台期,而深度學習演算法因其強大的表示能力,性能得以持續增長,甚至在一些任務上超越人類。因此有人戲稱,「得數據者得天下」。

經典的優化方法,例如梯度下降法,每次迭代更新需要用到所有的訓練數據,這給求解大數據、大規模的優化問題帶來了挑戰。掌握基於大量訓練數據求解模型的方法,對於掌握機器學習,尤其是深度學習至關重要。

問題描述

針對訓練數據量過大的問題,當前有哪些優化求解演算法?

歡迎留言提問或探討


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Hulu 的精彩文章:

實至名歸:Hulu自製劇《使女的故事》斬獲兩項金球獎

TAG:Hulu |