Batch Normalization在推理时如何作用?

Batch Normalization(批归一化)是一种在深度学习中广泛使用的正则化技术,其主要目的是提高训练速度和稳定性。

1. Batch Normalization的过程

Batch Normalization的核心思想是在每一层的输入进行标准化,使其均值接近0,方差接近1。具体过程如下:

  1. 计算均值和方差
    对于一个批次的数据 X = { x 1 , x 2 , … , x m } X = \{x_1, x_2, \ldots, x_m\} X={x1,x2,,xm},其中 m m m 是批次大小:
  • 均值:
    μ = 1 m ∑ i = 1 m x i \mu = \frac{1}{m} \sum_{i=1}^{m} x_i μ=m1i=1mxi
  • 方差:
    σ 2 = 1 m ∑ i = 1 m ( x i − μ ) 2 \sigma^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu)^2 σ2=m1i=1m(xiμ)2
  1. 标准化
    使用计算得到的均值和方差,对输入进行标准化: x ^ i = x i − μ σ 2 + ϵ for  i = 1 , 2 , … , m \hat{x}_i = \frac{x_i - \mu}{\sqrt{\sigma^2 + \epsilon}} \quad \text{for } i = 1, 2, \ldots, m x^i=σ2+ϵ xiμfor i=1,2,,m其中, ϵ \epsilon ϵ 是一个小常数,用于防止除以零。
  2. 缩放和偏移
    引入可学习的参数 γ \gamma γ β \beta β 进行缩放和偏移: y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β

2. Batch Normalization在推理时的作用

在推理阶段,Batch Normalization的处理与训练阶段不同,主要体现在以下几个方面:

  1. 使用移动平均
    在训练过程中,Batch Normalization会计算每个批次的均值和方差,并同时更新训练期间的移动平均均值(running mean)和方差(running variance)。在推理时,模型使用这些累积得到的移动平均值,而不是当前批次的均值和方差。
  2. 推理时的公式
    在推理阶段,对于输入 x x x,Batch Normalization的输出为: y = γ x − μ running σ running 2 + ϵ + β y = \gamma \frac{x - \mu_{\text{running}}}{\sqrt{\sigma_{\text{running}}^2 + \epsilon}} + \beta y=γσrunning2+ϵ xμrunning+β其中, μ running \mu_{\text{running}} μrunning σ running 2 \sigma_{\text{running}}^2 σrunning2 是在训练过程中更新的移动平均均值和方差。
  3. 稳定性和一致性
    通过使用移动平均的均值和方差,Batch Normalization在推理时能够保持输出的一致性,避免因小批次引入的波动。这使得模型在不同输入上的表现更加稳定。

Batch Normalization通过对每个批次的输入进行标准化,显著改善了深度神经网络的训练过程。在推理阶段,模型依赖于训练期间积累的移动平均统计信息,从而确保推理过程的稳定性和一致性。

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值