作者:泛音公众号:知识交点只分享知识,不发新闻,欢迎机器学习爱好者的投稿。
内容包含:BatchNormalization、LayerNormalization、InstanceNorm、GroupNorm、SwitchableNorm
1.简述
1.1 论文链接
(1)、Batch Normalizationhttps://arxiv.org/pdf/1502.03167.pdf(2)、Layer Normalizaitonhttps://arxiv.org/pdf/1607.06450v1.pdf(3)、Instance Normalizationhttps://arxiv.org/pdf/1607.08022.pdfhttps://github.com/DmitryUlyanov/texture_nets(4)、Group Normalizationhttps://arxiv.org/pdf/1803.08494.pdf(5)、Switchable Normalizationhttps://arxiv.org/pdf/1806.10779.pdfhttps://github.com/switchablenorms/Switchable-Normalization
1.2 整体介绍
归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018年)、Switchable Normalization(2018年);
将输入的图像shape记为[N, C, H, W],这几个方法主要的区别就是在:
batchNorm是在batch上,对NHW做归一化,对小batchsize效果不好;
layerNorm在通道方向上,对CHW归一化,主要对RNN作用明显;
instanceNorm在图像像素上,对HW做归一化,用在风格化迁移;
GroupNorm将channel分组,然后再做归一化;
SwitchableNorm是将BN、LN、IN结合,赋予权重,让网络自己去学习归一化层应该使用什么方法。
2.详细解说
2.1 Batch Normalization
算法过程:
(1)、沿着通道计算每个batch的均值u
(2)、沿着通道计算每个batch的方差σ^2
(3)、对x做归一化,x’=(x-u)/开根号(σ^2+ε)
(4)、加入缩放和平移变量γ和β ,归