Noramal详解Vlog1
BatchNormal
y
=
x
−
E
[
x
]
V
a
r
[
x
]
+
C
∗
γ
+
β
y=\frac{x-E[x]}{\sqrt{Var[x]+C}}*γ+β
y=Var[x]+Cx−E[x]∗γ+β
Batch Normalization
(1)BN计算就是把每个通道的NHW单独拿出来进行计算:就是在每一个批次中的第一个通道进行计算,因此,nn.BatchNorm()中填的是通道数,就是将一批次中的每个通道都计算一次
(2)针对每个channel我们兜兜一组gamma和beta,所以可以学习的参数为(2*通道数)
(3)当batch size比较小时,BN的表现效果也越不好,因为计算过程中所得到的均值和方差不能代表全局
(1)沿着通道计算每个batch的均值u
(2)沿着通道计算每个batch的方差σ^2
(3)对x做归一化,x’=(x-u)/开根号(σ^2+ε)
(4)加入缩放和平移变量γ和β ,归一化后的值,y=γx’+β
LayerNormal
Layer Normalization
(1)LN的计算就是把每个CHW单独拿出来记性计算,就是将每一个图片进行的3个通道进行计算,不受batch size的影响
(2)常常用在RNN网络中,但如果输入的特征区别很大,那么就不建议使用它做归一化处理
InstanceNormal
Instance Noramlization
(1)IN的计算就是把每个HW单独拿出来归一化处理,不受通道和batch size的影响
(2)常用在风格化迁移,但如果特征图可以用到通道之间的相关性,那么久不建议使用它做归一化处理。
GroupNormal
Group Noramlization
(1)GN的计算先把通道C分成Group组,然后把每个gHW单独拿出来做归一化处理,然后把Group组归一化之后的数据合并成CHW
(2)GN介于LN和IN之间,当然也可以说LN和IN就是GN的特例,比如Group的大小为1或者C
Switchable Normalizaion
Switchable Normalizaion
(1)将BN、IN、LN结合,赋予权重,让网络学习去归一化层应该使用什么方法
(2)集万千宠爱与一身,但是训练复杂