<深度学习基础> Batch Normalization

Batch Normalization批归一化

BN优点

  1. 减少了人为选择参数。在某些情况下可以取消dropout和L2正则项参数,或者采取更小的L2正则项约束参数;
  2. 减少了对学习率的要求。现在我们可以使用初始很大的学习率或者选择了较小的学习率,算法也能够快速训练收敛;
  3. 破坏原来的数据分布,一定程度上缓解过拟合;
  4. 减少梯度消失,加快收敛速度,提高训练精度。

步骤

下面给出BN 算法在训练时的过程
输入:上一层输出结果 X = x 1 , x 2 , . . . , x m X={x_1,x_2,...,x_m} X=x1,x2,...,xm,学习参数 γ , β \gamma,\beta γ,β
算法流程:
(1)计算上一层输出数据的均值
μ β = 1 m ∑ i = 1 m x i \mu_{\beta}=\frac{1}{m} \sum_{i=1}^m x_i μβ=m1i=1mxi
其中, m m m 是此次训练样本batch的大小。
(2)计算上一层输出数据的标准差
σ β 2 = 1 m ∑ i = 1 m ( x i − μ β ) 2 \sigma_{\beta}^2=\frac{1}{m} \sum_{i=1}^m (x_i-\mu_{\beta})^2 σβ2=m1i=1m(xiμβ)2
(3)归一化处理,得到
x ˆ i = x i + μ β σ β 2 + ϵ \^x_i=\frac{x_i+\mu_{\beta}}{\sqrt{\sigma_{\beta}^2}+\epsilon} xˆi=σβ2 +ϵxi+μβ
其中 ϵ \epsilon ϵ是为了避免分母为0 而加进去的接近于0 的很小值;
(4)重构,对经过上面归一化处理得到的数据进行重构,得到
y i = γ x ˆ i + β y_i=\gamma \^x_i + \beta yi=γxˆi+β
其中, γ , β \gamma,\beta γ,β为可学习参数。

注:上述是BN训练时的过程,但是当在推理时,往往只是输入一个样本,没有所谓的均值 μ β \mu_{\beta} μβ和标准差 σ β 2 \sigma_{\beta}^2 σβ2。此时,均值 μ β \mu_{\beta} μβ是计算所有batch的 μ β \mu_{\beta} μβ值的平均值得到,标准差 σ β 2 \sigma_{\beta}^2 σβ2采用每个batch的 σ β 2 \sigma_{\beta}^2 σβ2的无偏估计得到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值