批量歸一化
1、對輸入的標準化(淺層模型)
處理後的任意一個特徵在數據集中所有樣本上的均值爲0、標準差爲1。
標準化處理輸入數據使各個特徵的分佈相近
2、批量歸一化(深度模型)
利用小批量上的均值和標準差,不斷調整神經網絡中間輸出,從而使整個神經網絡在各層的中間輸出的數值更穩定。
對全連接層做批量歸一化
位置:全連接層中的仿射變換和激活函數之間。
對卷積層做批量歸⼀化
位置:卷積計算之後、應⽤激活函數之前。
如果卷積計算輸出多個通道,我們需要對這些通道的輸出分別做批量歸一化,且每個通道都擁有獨立的拉伸和偏移參數。 計算:對單通道,batchsize=m,卷積計算輸出=pxq 對該通道中m×p×q個元素同時做批量歸一化,使用相同的均值和方差。
預測時的批量歸⼀化
訓練:以batch爲單位,對每個batch計算均值和方差。
預測:用移動平均估算整個訓練數據集的樣本均值和方差。
ResNet
深度學習的問題:深度CNN網絡達到一定深度後再一味地增加層數並不能帶來進一步地分類性能提高,反而會招致網絡收斂變得更慢,準確率也變得更差。
殘差塊(Residual Block)
恆等映射:
左邊:f(x)=x
右邊:f(x)-x=0 (易於捕捉恆等映射的細微波動)
ResNet模型
卷積(64,7x7,3)
批量一體化
最大池化(3x3,2)
殘差塊x4 (通過步幅爲2的殘差塊在每個模塊之間減小高和寬)
全局平均池化
全連接
DenseNet
主要構建模塊:
稠密塊(dense block): 定義了輸入和輸出是如何連結的。
過渡層(transition layer):用來控制通道數,使之不過大。