**防止梯度爆炸和梯度消失**
它是所有深层网络模型都需要的标准网络层,因为随着网络层数的增加,通过多层的计算后输出可能开始出现过大或过小的情况,这样可能会导致学习过程出现异常,模型可能收敛非常慢。因此都会在一定层后接规范化层进行数值的规范化,使其特征数值在合理范围内。
(1) Batch normalization,就是“批规范化”。
1.BN的计算就是把一个Batch每个通道的NHW单独拿出来归一化处理.
2.针对每个channel我们都有一组y,β,所以可学习的参数为2*C.
3.当batch size越小,BN的表现效果也越不好,因为计算过程中所得到的均值和方差不能代表全局.
4.一批批的去标准化图片数据, 依赖批量化的数据。
**BN适用于判别模型中,比如图片分类模型。因为BN注重对每个batch进行归一化,从而保证数据分布的一致性,而判别模型的结果正是取决于数据整体分布。但是BN对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布。**
(2) Layer Norm
1.LN的计算就是把每个CHW单独拿出来归一化处理,不受batchsize的影响。
2.常用在RNN网络,但如果输入的特征区别很大,那么就不建议使用它做归一化处理。在Transformer中也是使用的LN。
3.一张张图片去标准化图片数据。
引用:
[https://blog.csdn.net/liuxiao214/article/details/81037416](https://blog.csdn.net/liuxiao214/article/details/81037416)