久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

博客專欄

EEPW首頁 > 博客 > Batch Normalization原理與實戰(2)

Batch Normalization原理與實戰(2)

發布人:計算機視覺工坊 時間:2022-09-26 來源:工程師 發布文章
2 BN測試

在這里,我們構造一個4層神經網絡,輸入層結點數784,三個隱層均為128維,輸出層10個結點,如下圖所示:

圖片

實驗中,我們主要控制一下三個變量:

  • 權重矩陣(較小初始化權重,標準差為0.05;較大初始化權重,標準差為10)
  • 學習率(較小學習率:0.01;較大學習率:2)
  • 隱層激活函數(relu,sigmoid)
2.1 小權重,小學習率,ReLU

測試結果如下圖:

圖片

我們可以得到以下結論:

  • 在訓練與預測階段,加入BN的模型準確率都稍高一點;
  • 加入BN的網絡收斂更快(黃線)
  • 沒有加入BN的網絡訓練速度更快(483.61it/s>329.23it/s),這是因為BN增加了神經網絡中的計算量

為了更清楚地看到BN收斂速度更快,我們把減少Training batches,設置為3000,得到如下結果:

圖片

從上圖中我們就可以清晰看到,加入BN的網絡在第500個batch的時候已經能夠在validation數據集上達到90%的準確率;而沒有BN的網絡的準確率還在不停波動,并且到第3000個batch的時候才達到90%的準確率。

2.2 小權重,小學習率,Sigmoid

圖片

學習率與權重均沒變,我們把隱層激活函數換為sigmoid。可以發現,BN收斂速度非常之快,而沒有BN的網絡前期在不斷波動,直到第20000個train batch以后才開始進入平穩的訓練狀態。

2.3 小權重,大學習率,ReLU

圖片

在本次實驗中,我們使用了較大的學習率,較大的學習率意味著權重的更新跨度很大,而根據我們前面理論部分的介紹,BN不會受到權重scale的影響,因此其能夠使模型保持在一個穩定的訓練狀態;而沒有加入BN的網絡則在一開始就由于學習率過大導致訓練失敗。

2.4 小權重,大學習率,Sigmoid

圖片

在保持較大學習率(learning rate=2)的情況下,當我們將激活函數換為sigmoid以后,兩個模型都能夠達到一個很好的效果,并且在test數據及上的準確率非常接近;但加入BN的網絡要收斂地更快,同樣的,我們來觀察3000次batch的訓練準確率。

圖片

當我們把training batch限制到3000以后,可以發現加入BN后,盡管我們使用較大的學習率,其仍然能夠在大約500個batch以后在validation上達到90%的準確率;但不加入BN的準確率前期在一直大幅度波動,到大約1000個batch以后才達到90%的準確率。

2.5 大權重,小學習率,ReLU

圖片

當我們使用較大權重時,不加入BN的網絡在一開始就失效;而加入BN的網絡能夠克服如此bad的權重初始化,并達到接近80%的準確率。

2.6 大權重,小學習率,Sigmoid

圖片

同樣使用較大的權重初始化,當我們激活函數為sigmoid時,不加入BN的網絡在一開始的準確率有所上升,但隨著訓練的進行網絡逐漸失效,最終準確率僅有30%;而加入BN的網絡依舊出色地克服如此bad的權重初始化,并達到接近85%的準確率。

2.7 大權重,大學習率,ReLU

圖片

當權重與學習率都很大時,BN網絡開始還會訓練一段時間,但隨后就直接停止訓練;而沒有BN的神經網絡開始就失效。

2.8 大權重,大學習率,Sigmoid

圖片

可以看到,加入BN對較大的權重與較大學習率都具有非常好的魯棒性,最終模型能夠達到93%的準確率;而未加入BN的網絡則經過一段時間震蕩后開始失效。

8個模型的準確率統計如下:

圖片

總結

至此,關于Batch Normalization的理論與實戰部分就介紹道這里。總的來說,BN通過將每一層網絡的輸入進行normalization,保證輸入分布的均值與方差固定在一定范圍內,減少了網絡中的Internal Covariate Shift問題,并在一定程度上緩解了梯度消失,加速了模型收斂;并且BN使得網絡對參數、激活函數更加具有魯棒性,降低了神經網絡模型訓練和調參的復雜度;最后BN訓練過程中由于使用mini-batch的mean/variance作為總體樣本統計量估計,引入了隨機噪聲,在一定程度上對模型起到了正則化的效果。

參考資料:

[1] Ioffe S, Szegedy C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]// International Conference on International Conference on Machine Learning. JMLR.org, 2015:448-456.

[2] 吳恩達Cousera Deep Learning課程

[3] 詳解深度學習中的Normalization,不只是BN

[4] 深度學習中 Batch Normalization為什么效果好?

[5] Udacity Deep Learning Nanodegree

[6] Implementing Batch Normalization in Tensorflow

本文僅做學術分享,如有侵權,請聯系刪文。

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區

關閉