iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
4
AI & Data

英雄集結:深度學習的魔法使們系列 第 9

[精進魔法] Optimization:優化深度學習模型的技巧(下)- Batch Normalization

本文主題是「Batch Normalization」,Ian Goodfellow 大大在《Deep Learning》一書中是這麼描述 Batch Normalization 的:

Batch normalization (Ioffe and Szegedy, 2015) is one of the most exciting recent innovations in optimizing deep neural networks, and it is actually not an opti-mization algorithm at all. Instead, it is a method of adaptive reparametrization,motivated by the difficulty of training very deep models.

這也是在 「Optimization:優化深度學習模型的技巧」最後一篇中想跟大家介紹的原因。

首先先來講 Normalization 的好處:在具有統一規格的資料下,Machine Learning 能更容易學到資料中的規律,以下是資料應用 L2 normalization 的例子:
https://ithelp.ithome.com.tw/upload/images/20181022/20112540BMuoCKXn6Z.png

圖片來源:《Feature Engineering for Machine Learning》一書

  • Batch Normalization 的優點

它的提出是為了克服深度神經網絡難以訓練的問題,使用 Batch Normalization 優點在於:

  1. 快速學習(能增加學習率)
  2. 不會過度依賴預設值(不會對預設值產生過度反應)
  3. 控制過度學習(減少 Dropout 等必要性)
  • Batch Normalization 的運作

Batch Normalization 在進行學習時以 mini-batch 為單位,依照各個 mini-batch 來進行正規化。為了增加神經網絡的穩定性,它透過減去 batch 的均值並除以 batch 的標準差(standard deviation)來正規化前面激活層(activation)的輸出。

https://ithelp.ithome.com.tw/upload/images/20181023/201125405M0SCfgrhA.png

圖片來源:論文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》

Batch Normalization 為每一層增加了兩個訓練參數,standard deviation 參數(γ)、mean 參數(β)。 換句話說,它讓 SGD 對每次激活僅更改這兩個權重來執行 denormalization,而不是透過更改所有權重卻失去網絡的穩定性。

  • Batch Normalization 的使用時機
  1. 遇到收歛速度很慢,或梯度爆炸等無法訓練的狀況時可以嘗試
  2. 在一般使用情况下也可以加入,用來加快訓練速度,提高模型效能。

最後總結,各位見習魔法使可將 Batch Normalization 視為對神經網絡中的每一層進行預處理的過程。它的最大好處就是讓每一層的值在有效的範圍內傳遞下去。
https://ithelp.ithome.com.tw/upload/images/20181024/20112540EtGZnyN2F6.jpg

另外補充教學影片參考資源,有了畫面解說想必會更加了解。


上一篇
[精進魔法] Optimization:優化深度學習模型的技巧(中)- Adaptive Learning Rates
下一篇
[魔王出沒] 深度學習中的魔王軍簡介
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言