(图片来源于网络)
Batch-Normalization(BN)
- 对同一批次的数据分布进行标准化,得出的均值方差
- 效果受到BatchSize的影响,当BatchSize较小时,得到的均值和方差势必出现较大的偏差。因此比较适合BatchSize较大的场景
- 在激活函数接受输入之前,将数据规范到标准正态分布中,输入数据则较大概率会落到激活函数的较为敏感的区域(梯度较大的区域),因此在使用BN层后可以使用sigmoid或者tanh等饱和性激活函数。在使用BN层后,可以使输入数据分布相对稳定,加快网络训练速度。
Layer Normalization(LN)
- 不同于BN,LN是对整个一层的数据进行归一化,针对单个样本进行(如将一朵花的颜色、大小进行归一化)
- LN的这个特性导致其可以很好应用到RNN中,在小batch场景也有不错的效果
Weight Normalization(WN)
- BN和LN都是针对输入数据进行归一化,而WN则是针对其权重进行归一化。
- 由于是对网络参数进行正则化,所以可以减小网络复杂度。
- 解决了BN依赖大batch size以及LN每层只是用一个规范化公式的情况
Instance Normalization(IN)
- IN是将单个样本进行归一化,即归一化的维度为[W, H](可以看作为不带channel的LN方式)
- 由于IN方式依赖单个样本,可以保持实例之间的独立性,因此比较适合生成模型中
Group Normalization(GN)
- 将channel方向进行分组,对每一组进行归一化处理,用来解决BN在小batch下误差较大的缺陷。
|