神经网络中的BN层

BN层

BN,全称Batch Normalization(批规范化),是2015年提出的一种方法,在进行深度网络训练时,大都会采取这种算法。算法过程如下:
神经网络中的BN层
简单来说就是对上一层输出的数据进行规范化。

优势:

  1. 加快网络的训练和收敛的速度,即我们可以使用较大的学习率
  2. 控制梯度爆炸防止梯度消失
  3. 防止过拟合

1.加快训练速度

在深度神经网络中中,如果把每层的数据都在转换在均值为零,方差为1的状态下,这样每层数据的分布都是一样的训练会比较容易收敛。
原因在于神经网络学习过程本质就是为了学习数据分布,如果训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,深度网络的训练是一个复杂的过程,只要网络的前面几层发生微小的改变,那么后面几层就会被累积放大下去。如果每批训练数据的分布各不相同,那么网络就要在每次迭代都去学习适应不同的分布,这样将会降低网络的训练速度。

2.控制梯度爆炸防止梯度消失

2.1什么是梯度爆炸/消失

梯度消失与梯度爆炸其实是一种情况。以下图以三个隐层的单神经元网络为例:
神经网络中的BN层
以上图为例,假设每一层网络**后的输出为 fi(x)f_{i}(x),其中 ii 为第 ii 层, xx 代表第 ii 层的输入, 也就是第 i1i-1 层的输出, ff 是**函数, 那么, 可得出 fi+1=f(fiwi+1+bi+1),f_{i+1}=f\left(f_{i} * w_{i+1}+b_{i+1}\right), 简记为 fi+1=f(fiwi+1)f_{i+1}=f\left(f_{i} * w_{i+1}\right)_{\circ} BP算法基于梯度下降策略, 以目标的负梯度方向对参数进行调整, 参数的更新为 ww+Δw,w \leftarrow w+\Delta w, 给定学习率 α,\alpha, 得出 Δw=αLossw\Delta w=-\alpha \frac{\partial L o s s}{\partial w}。如果要更新第二隐藏层的权值信息,根据链式求导法则, 更新梯度信息: Δw1=Lossw2=Lossf4f4f3f3f2f2w2,\Delta w_{1}=\frac{\partial L o s s}{\partial w_{2}}=\frac{\partial \text {Loss}}{\partial f_{4}} \frac{\partial f_{4}}{\partial f_{3}} \frac{\partial f_{3}}{\partial f_{2}} \frac{\partial f_{2}}{\partial w_{2}}, 很容易看出来f4f3=w4f(f3w4),\frac{\partial f_{4}}{\partial f_{3}}=w_{4} f^{\prime}\left(f_{3} w_{4}\right), 即对**函数求导后与权重相乘, f2w2=f1f(f1w2),\frac{\partial f_{2}}{\partial w_{2}}=f_{1} f^{\prime}\left(f_{1} w_{2}\right), 即第二隐层的输入与**函数求导后相乘。如果**函数求导后与权重相乘的积大于1,那么层数增多的时候,最终的求出的梯度更新信息将以指数形式增加, 即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减, 即发生了梯度消失。

2.2解决

通过规范化操作将输出信号xx规范化到均值为00,方差为11保证网络的稳定性。从上述分析分可以看到,反向传播式子中有ww的存在,所以ww的大小影响了梯度的消失和爆炸,Batch Normalization 就是通过对每一层的输出规范为均值和方差一致的方法,消除了ww带来的放大缩小的影响,进而解决梯度消失和爆炸的问题。

3.防止过拟合

在网络的训练中,BN的使用使得一个minibatch中所有样本都被关联在了一起,因此网络不会从某一个训练样本中生成确定的结果,即同样一个样本的输出不再仅仅取决于样本的本身,也取决于跟这个样本同属一个batch的其他样本,而每次网络都是随机取batch,这样就会使得整个网络不会朝特定方向使劲学习。一定程度上避免了过拟合。

4.为什么BN层常常不放在非线性单元后面

BN层一般用在线性层和卷积层后面,而不是放在非线性单元后,因为非线性单元的输出分布形状会在训练过程中变化,归一化无法消除他的方差偏移,相反的,全连接和卷积层的输出一般是一个对称,非稀疏的一个分布,更加类似高斯分布,对他们进行归一化会产生更加稳定的分布。例如Relu这样的**函数,如果你输入的数据是一个高斯分布,经过他变换出来的数据小于0的部分被抑制成0,输出已经不再是高斯分布了。