一、BatchNorm
论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
从论文名字就可以看出,BatchNorm技术是用来加速网络训练的,手段就是通过“Reducing Internal Covariate Shift(减小内部协变量偏移)”,什么叫做“Internal Covariate Shift”呢? 看一下下图所示的sigmoid函数图:
![](https://i-blog.csdnimg.cn/blog_migrate/2f3c5906e810a75e500e1f04810e95f2.png)
可以看出当x值在0附近时,其导数较大,靠近两边时导数很小。而在深度神经网络中,如果不加以约束,则激活函数的输入值很容易向两边偏移,导致导数变小,这样会使得网络训练变慢,而且逐层累乘后还会产生梯度消失现象。所以normalization的作用相当于数据在经过每层时都将它拉回为一个统一分布。batch normalization过程如下: