批量歸一化(BatchNormalization)
對輸入的標(biāo)準(zhǔn)化(淺層模型)
處理后的任意一個特征在數(shù)據(jù)集中所有樣本上的均值為0闸翅、標(biāo)準(zhǔn)差為1。
標(biāo)準(zhǔn)化處理輸入數(shù)據(jù)使各個特征的分布相近
批量歸一化(深度模型)
利用小批量上的均值和標(biāo)準(zhǔn)差喇颁,不斷調(diào)整神經(jīng)網(wǎng)絡(luò)中間輸出损敷,從而使整個神經(jīng)網(wǎng)絡(luò)在各層的中間輸出的數(shù)值更穩(wěn)定欧宜。
1.對全連接層做批量歸一化
位置:全連接層中的仿射變換和激活函數(shù)之間。
全連接:
批量歸一化:
這?? > 0是個很小的常數(shù)篡诽,保證分母大于0
引入可學(xué)習(xí)參數(shù):拉伸參數(shù)γ和偏移參數(shù)β。若和榴捡,批量歸一化無效杈女。
2.對卷積層做批量歸?化
位置:卷積計算之后、應(yīng)?激活函數(shù)之前吊圾。
如果卷積計算輸出多個通道达椰,我們需要對這些通道的輸出分別做批量歸一化,且每個通道都擁有獨(dú)立的拉伸和偏移參數(shù)项乒。
計算:對單通道啰劲,batchsize=m,卷積計算輸出=pxq
對該通道中m×p×q個元素同時做批量歸一化,使用相同的均值和方差。
3.預(yù)測時的批量歸?化
訓(xùn)練:以batch為單位,對每個batch計算均值和方差檀何。
預(yù)測:用移動平均估算整個訓(xùn)練數(shù)據(jù)集的樣本均值和方差蝇裤。
從零實(shí)現(xiàn)
殘差網(wǎng)絡(luò)(ResNet)
深度學(xué)習(xí)的問題:深度CNN網(wǎng)絡(luò)達(dá)到一定深度后再一味地增加層數(shù)并不能帶來進(jìn)一步地分類性能提高,反而會招致網(wǎng)絡(luò)收斂變得更慢频鉴,準(zhǔn)確率也變得更差栓辜。
殘差塊(Residual Block)
恒等映射:
左邊:f(x)=x
右邊:f(x)-x=0 (易于捕捉恒等映射的細(xì)微波動)
在殘差塊中,輸?可通過跨層的數(shù)據(jù)線路更快 地向前傳播垛孔。
ResNet模型
卷積(64,7x7,3)
批量一體化
最大池化(3x3,2)
殘差塊x4 (通過步幅為2的殘差塊在每個模塊之間減小高和寬)
全局平均池化
全連接
稠密連接網(wǎng)絡(luò)(DenseNet)
主要構(gòu)建模塊:
稠密塊(dense block): 定義了輸入和輸出是如何連結(jié)的藕甩。
過渡層(transition layer):用來控制通道數(shù),使之不過大周荐。
稠密塊
過渡層
卷積層:來減小通道數(shù)
步幅為2的平均池化層:減半高和寬