一、BN层的操作
1.BN层的操作位置:在非线性映射之前,目的是为了减少梯度消失和梯度爆炸。
1.对输入的x做归一化
2.增加2个参数,提高模型表达能力
3.理想情况下E和Var应该是针对整个数据集的,但显然这是不现实的。因此,作者做了简化,用一个Batch的均值和方差作为对整个数据集均值和方差的估计。
二、作用
1.因为反向传播的时候,梯度的连乘表达式中包含激活函数的导数,BN使得激活函数的输入正规化,从而导数落在比较好的位置,减少梯度消失和梯度爆炸。
2.但是,BN也引入了2次乘除法运算,在求导时也会贡献乘除法运算,也可能会导致梯度消失和爆炸。
3.由于参数初始化时,一般是均值为0的。因此样本在均值为0时,模型会训练得更快速。
如图,刚开始的参数模型,y=Wx+b,因为W和b是0均值初始化的,就类似2条绿线,样本是红色的点,要经过多次训练,模型参数才能变成紫色的线。若对数据点进行归一化,则模型训练会加快。