#深度学习
在上一篇,我们观察了各层的激活值分布,并从中了解到如果设定了合适的权重初始值,则各层的激活值分布会有适当的广度,从而可以顺利地进行学习。那么,为了使各层拥有适当的广度,“强制性”地调整激活值的分布会怎样呢?实际上,Batch Normalization[11]方法就是基于这个想法而产生的。
Batch Normalization[1]是一种在深度学习中用于提高训练速度和稳定性的技术,由 Sergey Ioffe 和 Christian Szegedy 在2015年提出。它的主要目的是解决在训练深度神经网络时内部协变量偏移(Internal Covariate Shift)的问题。
内部协变量偏移指的是神经网络在训练过程中,由于每层输入的分布不断变化,导致每层的权重需要不断适应这些变化,这会使得训练过程变得缓慢且难以收敛。Batch Normalization通过以下步骤来解决这个问题: