作用:神經網路對0附近的資料更敏感,但是隨著網路層數的增加,特征資料會出現偏離0均值的情況,標準化可以使資料符合以0位均值,1為標準差的正太分布,把偏移的特征資料重新拉回0附近,
方法:
標準化:使資料符合0為均值,1為標準差的分布,
批標準差:對一小批資料(batch),做標準化處理,
批標準化后,第K個卷積核的輸出特征圖中的第i個像素點的值計算程序為:

批標準化前,第K個卷積核,輸出特征圖中第i個像素點的值
批標準化前,第K個卷積核,batch張輸出特征中所有像素點的平均值即 像素點的數量 = batch*該層卷積核數量*每個 卷積核的輸出特征影像素數量
批標準化前,第k個卷積核,batch張輸出特征中所有要素點的標準差


BN操作將原本偏移的特征資料重新拉回到0均值,使進入激活函式的資料分布在激活函式線性區,使得輸入資料的微小變化更明顯的體現到激活函式的輸出,提升了激活函式對輸入資料的區分力

但是這種簡單的特征資料標準化使特征資料完全滿足標準正分布,集中在激活函式的中心區域,使激活函式失去了非線性特性,

因此在BN操作中為每個卷積核引入了兩個可訓練引數γ和β,反向傳播時縮放銀子γ和偏移因子β會與其他帶訓練引數一同被訓練優化,使標準正太分布后的特征資料通過縮放因子和偏移因子優化了特征資料的寬窄和偏移量保證了網路的非線性表達力


BN層位于卷積層之后,激活層之前

TF2描述:
tf,keras.layers.BatchNormalization()
實體:
model = tf.keras.models.Sequential(
Conv2D(filter=6, kernel_size=(5, 5), padding='same'), # 卷積層
BatchNormalization(), # BN層
Activation('relu'), # 激活函式
MaxPool2D(pool_size=(2, 2), strides=2, padding='same'), # 池化層
Dropout(0.2) # dropout層
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3935.html
標籤:其他
上一篇:北斗同步時鐘(主時鐘控制器)應用于電氣化鐵道遠動系統
下一篇:VAE變分自編碼器Keras實作
