1、背景:
????????卷積神經網絡的出現,網絡參數量大大減低,使得幾十層的深層網絡成為可能。然而,在殘差網絡出現之前,網絡的加深使得網絡訓練變得非常不穩定,甚至出現網絡長時間不更新或者不收斂的情形,同時網絡對超參數比較敏感,超參數的微量擾動也會導致網絡的訓練軌跡完全改變。
2、提出
????????2015 年,Google 研究人員Sergey Ioffe等提出了一種參數標準化(Normalize)的手段,并基于參數標準化設計了 Batch Nomalization(簡稱 BatchNorm或 BN)層 。BN層提出后:
????????1)使得網絡的超參數的設定更加自由,比如更大的學習率,更隨意的網絡初始化等,同時網絡的收斂速度更快,性能也更好。
????????2)廣泛地應用在各種深度網絡模型上,卷積層、BN 層,ReLU 層、池化層一度成為網絡模型的標配單元,通過堆疊 Conv-BN-ReLU-Pooling 方式往往可以獲得不錯的模型性能。
3、原理
????????網絡層的輸入x分布相近,并且分布在較小范圍內時(如 0 附近),更有利于函數的迭代優化。那么如何保證輸入x的分布相近呢?
????????數據標準化可以實現此目的,通過數據標準化操作可以將數據x映射x ^?
?
?很容易很看出來:上面的公式表示的是正太分布。也就是說,通過上面的公式計算,可以將原本隨機分布的輸入數據x,轉化成按正態分布分布的數據x ^? ,從而使得輸入網絡的數據分布較近,有利于網絡的迭代優化。
4、計算
5、Scale and Shift
????????