利用每個channel下的max 和min計算均值方差
方差 |
方差係數 |
均值 |
resnet-20/cifar-10的錯誤率 |
(max−min)2 |
無 |
(max−min)/2 |
0.28 |
(max−min)2 |
2∗ln(n)1n是該channel下參數個數 |
(max−min)/2 |
0.24 |
(max−min)2 |
2∗ln(n)1 |
origin_mean |
0.18 |
max−min |
無 |
(max−min)/2 |
0.31 |
max−min |
abs(1+λ),λ是可學習參量 |
(max−min)/2 |
0.25 |
max−min |
abs(1+λ) |
origin_mean |
0.19 |
origin_var |
無 |
origin_mean |
0.18 |
將resnet20中間的一個卷積層的輸出記錄下來,該卷積層的輸出有32個channel。計算輸出的方差real_var和均值real_mean,同時按照上面的估算公式,分別估計方差estimateVar,均值estimateMean。
利用weight的統計值來估計均值和方差
z=x∗w=X1W1+X2W2+....XCinWCin=CinXW
E(z)=Cin∗2π1∗μw
E(z2)=Cin2∗21∗σw2
將resnet20中間的一個卷積層的輸出記錄下來,該卷積層的輸出有32個channel。計算輸出的方差real_var和均值real_mean,同時按照上面的估算公式,分別估計方差estimateVar,均值estimateMean。
下圖是varDiff=estimateVar/realVar。
下圖是meanDiff=estimateMean/realMean。
由上面兩圖可以看出,對方差的估計是非常靠近真實的方差取值的。而均值的估計則比較差。
均值方差在整個訓練過程中的變化
仍然取該層的輸出,畫出mean和var在整個訓練過程中的變化趨勢
從上面可以看出,隨着訓練過程的推進,各個channel的均值向着0靠近。
從上面的圖看出,隨着訓練過程的推進,各個channel的方差逐漸降低。