一.传统的归一化
1.计算均值mean和方差var
2.归一化x'=(x-mean)/var——每一层的分布都是标准的正态分布,导致其学习不到输入的数据特征
二.BN与传统归一化的区别
在传统的归一化基础上引入伸缩变量:r和平移变量:B。在模型中,这两个参数为可训练参数。即:
3.x''=r*x'+B 。其作用为:将特征的分布从饱和区(梯度爆炸或者梯度消失)拉到非饱和区。
4.通过滑动平均更新全局的均值方差running_mean和running_var——用于线上预估时的bn。
红色字体内容,就是BN相比传统归一化的作用。其中,第一点:每一层的分布都是标准的正态分布,导致其学习不到输入的数据特征。个人不是很理解,因为BN引入伸缩和平移变量后,其实也还是正态分布,那还是会影响模型学不到数据特征。难道是因为伸缩平移后不是标准的正太分布???第二点的作用就非常容易理解。
欢迎各位大佬下方留言解答我的迷惑呀~