利用每个channel下的max 和min计算均值方差
方差 | 方差系数 | 均值 | resnet-20/cifar-10的错误率 |
---|---|---|---|
( m a x − m i n ) 2 (max-min)^2 (max−min)2 | 无 | ( m a x − m i n ) / 2 (max-min)/2 (max−min)/2 | 0.28 |
( m a x − m i n ) 2 (max-min)^2 (max−min)2 | 1 2 ∗ l n ( n ) \frac {1} {\sqrt{2*ln(n)}} 2∗ln(n)1n是该channel下参数个数 | ( m a x − m i n ) / 2 (max-min)/2 (max−min)/2 | 0.24 |
( m a x − m i n ) 2 (max-min)^2 (max−min)2 | 1 2 ∗ l n ( n ) \frac {1} {\sqrt{2*ln(n)}} 2∗ln(n)1 | origin_mean | 0.18 |
m a x − m i n max-min max−min | 无 | ( m a x − m i n ) / 2 (max-min)/2 (max−min)/2 | 0.31 |
m a x − m i n max -min max−min | a b s ( 1 + λ ) , λ 是 可 学 习 参 量 abs(1+\lambda) ,\lambda是可学习参量 abs(1+λ),λ是可学习参量 | ( m a x − m i n ) / 2 (max-min)/2 (max−min)/2 | 0.25 |
m a x − m i n max -min max−min | a b s ( 1 + λ ) abs(1+\lambda) 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
=
X
1
W
1
+
X
2
W
2
+
.
.
.
.
X
C
i
n
W
C
i
n
=
C
i
n
X
W
z = x * w = X_1W_1+X_2W_2+....X_{C_{in}}W_{C_{in}}=C_{in}XW
z=x∗w=X1W1+X2W2+....XCinWCin=CinXW
E
(
z
)
=
C
i
n
∗
1
2
π
∗
μ
w
E(z) = C_{in} * \sqrt{\frac{1}{2\pi}}*\mu_w
E(z)=Cin∗2π1∗μw
E
(
z
2
)
=
C
i
n
2
∗
1
2
∗
σ
w
2
E(z^2)=C_{in}^2*\frac{1}{2}*\sigma^2_{w}
E(z2)=Cin2∗21∗σw2
将resnet20中间的一个卷积层的输出记录下来,该卷积层的输出有32个channel。计算输出的方差real_var和均值real_mean,同时按照上面的估算公式,分别估计方差estimateVar,均值estimateMean。
下图是
v
a
r
D
i
f
f
=
e
s
t
i
m
a
t
e
V
a
r
/
r
e
a
l
V
a
r
varDiff=estimateVar/realVar
varDiff=estimateVar/realVar。
下图是
m
e
a
n
D
i
f
f
=
e
s
t
i
m
a
t
e
M
e
a
n
/
r
e
a
l
M
e
a
n
meanDiff=estimateMean/realMean
meanDiff=estimateMean/realMean。
由上面两图可以看出,对方差的估计是非常靠近真实的方差取值的。而均值的估计则比较差。
均值方差在整个训练过程中的变化
仍然取该层的输出,画出mean和var在整个训练过程中的变化趋势
从上面可以看出,随着训练过程的推进,各个channel的均值向着0靠近。
从上面的图看出,随着训练过程的推进,各个channel的方差逐渐降低。