Batch Normalization简单理解

批量归一化(Batch Normalization)在深度学习中用于稳定网络训练,通过标准化层间输入,减少内部协变量转移,允许使用更大学习率。尽管其最初被认为改善输入分布,但最新研究表明BN主要通过平滑优化景观提高梯度预测性,加速网络收敛。BN过程包括计算每批数据的均值和方差,并在测试时使用整个数据集的统计信息。训练期间,需积累每个Batch的统计量,以计算全局均值和方差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 使用BN的原因是网络训练中每一层不断改变的参数会导致后续每一层不断的分布式变化,而学习的过程又要使每一层去适应输入的分布,因此不得不降低网络的学习率,并且要小心使用初始化(internal covariant shift)

  • 如果仅通过归一化方法使得数据具有零均值和单位方差,则会降低层的表达能力(如果使用Sigmoid函数,只使用线性区域)

  • BN的具体过程(注意第三个公式中分母要加上epsilon)
    在这里插入图片描述

  • 注意点:在测试过程中使用的均值和方差已经不是某一个batch的了,而是针对整个数据集而言。因此,在训练过程中除了正常的前向传播和反向求导之外,我们还要记录每一个Batch的均值和方差,以便训练完成之后按照下式计算整体的均值和方差。

  • 另一个注意点,在aixiv的preprint论文中,有一篇叫做“How Does Batch Normalization Help Optimizetion?”的文章,里面提到的BN起作用的真正原因和改变输入的分布从而产生稳定性几乎没有什么关系,真正的原因使BN使对应优化问题的landscape变得更加平稳,这就保证了更加perdictive的梯度以及可以使用更大的学习率从而使网络更快收敛,从而不止BN可以产生这种影响,许多正则化技巧都有这种类似影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值