论文:链接
前言
机器学习中有个很重要的假设:IID 独立同分布假设,就是假设训练数据和测试数据是满足相同的分布,这是通过训练数据获得的模型在测试数据上表现效果好的一个基本保障,也就是说模型的泛化能力。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经网络的训练过程中使得每一层神经网络的输入保持相同的分布。
其实BatchNorm的提出也是为了解决深度神经网络训练困难的问题,像Relu、residual network也是为了解决这一问题的。
Q:为什么深度神经网络随着网络深度的加深,训练起来越困难,收敛越来越慢?
一、BN的提出
1、internal covariate shift
【We define Internal Covariate Shift as the change in the distribution of network activations due to the change in network parameters during training.】
论文中作者提出在训练深度神经网络时经常会出现训练困难的问题,因为每一层参数迭代更新后,上一层网络的输出经过这一层网络的计算,数据的分布会发生变化,因此为下一层网络的学习带来困难。
在深度学习中包含很多隐藏层,在训练过程中,各层的参数不停的在变化,所以每个隐藏层都面临着covariate shift,也就是说在训练过程中,隐藏层的输入分布总是在变化,这也就违背