深度学习之与学习相关的技巧(篇三Batch Normalization与正则化)

#深度学习

        在上一篇,我们观察了各层的激活值分布,并从中了解到如果设定了合适的权重初始值,则各层的激活值分布会有适当的广度,从而可以顺利地进行学习。那么,为了使各层拥有适当的广度,“强制性”地调整激活值的分布会怎样呢?实际上,Batch Normalization[11]方法就是基于这个想法而产生的。

        1. Batch Normalization

        Batch Normalization[1]是一种在深度学习中用于提高训练速度和稳定性的技术,由 Sergey Ioffe 和 Christian Szegedy 在2015年提出。它的主要目的是解决在训练深度神经网络时内部协变量偏移(Internal Covariate Shift)的问题。

        内部协变量偏移指的是神经网络在训练过程中,由于每层输入的分布不断变化,导致每层的权重需要不断适应这些变化,这会使得训练过程变得缓慢且难以收敛。Batch Normalization通过以下步骤来解决这个问题:

  1. 标准化:对每个特征在小批量数据上进行标准化处理。具体来说,对每个特征,计算小批量数据的平均值和标准差,然后使用这些值将每个特征标准化到均值为0,标准差为1的分布。

            深度学习之与学习相关的技巧(篇三Batch Normalization与正则化)_第1张图片

    其中,是批量大小,是一个很小的数,以避免除以零。

  2. 缩放和移位

你可能感兴趣的:(深度学习,学习,batch)