CNN學習筆記:批標準化

CNN學習筆記:批標準化

Batch Normalization

  Batch Normalization, 批標準化, 是將分散的數據統一的一種作法, 也是優化神經網絡的一種方法。html

  在神經網絡的訓練過程當中,隨着網絡深度的增長,後面每一層的輸入值(即x=WU+B,U是輸入)逐漸發生偏移和變更,之因此訓練收斂慢,通常是總體分佈往非線性函數的取值區間的上下限兩端靠近,因此這將致使反向傳播時低層網絡的梯度消失,這是訓練深層神經網絡收斂愈來愈慢的本質緣由,而BN就是經過必定的規範手動,把每層神經網絡任意神經元這個輸入值來回倒均值爲0方差爲1的標準正態分佈網絡

  

  總而言之,BN是一種方法,對於每一個隱層神經元,把逐漸向非線性函數映射後向取值區間極限飽和區靠攏的輸入分佈強制拉回到均值爲0方差爲1的比較標準的正態分佈,使得非線性變換函數的輸入值落入對輸入比較敏感的區域,以此避免梯度消失問題。當梯度保持較大的狀態,會提升參數調整效率,加快收斂。函數

相關連接

 

訓練階段的BatchNorm

  假設對於一個深層神經網絡來講,其有兩層結構htm

  

  要對每一個隱層神經元的激活值作BN,能夠想象成每一個隱層又加上了一層BN操做層,它位於X=WU+B激活值得到以後,非線性函數變換以前,以下:blog

  

  對於Mini-Batch SGD來講,一次訓練過程裏面包含m個訓練實例,其具體BN操做就是對於隱層內每一個神經元的激活值來講,進行以下變換:ip

  

相關文章
相關標籤/搜索