BN层实现细节:
一个问题:
在上图中的最后一行中, 进行了scale 和 shift,此时已经完成了归一化操作, 这样做的原因是:
如果没有scale和shift且使用sigmoid作为激活函数的话, 那么BN会使得输入sigmoid的数据都处
于其梯度较大的区域,而如果都在该区域的话, sigmoid的非线性拟合能力将会被减弱, 因为这段
区域与线性比较相似, 因此会降低模型的拟合能力, 因此需要将一部分数据移出梯度较大的区域,
也就是scale和shift操作的作用。
Batch Norm 与 Layer Norm
Batch Norm 是对Batch中不同样本的feature map 的相同位置通道的进行归一化, 如上图的上半部分所示
Layer Norm 是只对自己进行归一化, 考虑的是自己的feature map的所有通道, 如上图的下半部分所示