原标题:批归一化Batch Normalization的原理及算法
一、BN提出的背景意义
本文的背景文献是:《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》,Batch Normalization算法目前已经被大量的应用,最新的文献算法很多都会引用这个算法,进行网络训练,可见其强大之处。
随机梯度下降法是训练深度网络的首选。尽管随机梯度下降法对于训练深度网络简单高效,但是需要我们人为的去选择参数,比如学习速率、初始化参数、权重衰减系数、Drop out比例,等等。这些参数的选择对训练结果至关重要,以至于我们很多时间都浪费在这些的调参上。BN算法(Batch Normalization)其好处如下:
可以选择比较大的初始学习率,极大的提高训练速度。Batch Gradient Descent使用多个梯度的均值来更新权重,用相对少的训练次数遍历完整个训练集,也正是因为平均了多个样本的梯度,许多样本对神经网络的贡献就被其他样本平均掉了,相当于在每个epoch中,训练集的样本数被缩小了。batch中每个样本的差异性越大,这种弊端就越严重。BN首先是把所有的samples的统计分布标准化,降低了batch内不同样本的差异性,然后又允许batch内的各个samples有各自的统计分布。所以,BN的优点自然也就是允许网络使用较大的学习速率进行训练,加快网络的训练速度(减少epoch次数),提升效果;
省去参数选择的问题。再也不用去理会过拟合中drop out、L2正则项参数的选择问题,采用BN算法后,你可以移除这两项了参数&#