神经网络BN层batch normalization参数计算

神经网络BN层batch normalization参数计算

作用

BN层一般放在线性层或卷积层后面,激活函数前面,作用如下:

1.加快网络收敛;
因为每层的数据都转换为同一的分布,这样会加快训练速度。

2.防止梯度爆炸和梯度消失;
因为BN会使非线性变换函数的输入值落入对输入比较敏感的区域。

3.防止过拟合,提升泛化能力。
因为BN求均值和方差是基于同一个batch内的样本,使网络不会朝一个方向学习。

计算过程

在这里插入图片描述
为什么会有放缩系数 γ \gamma γ和平移系数 β \beta β
因为归一化不可避免的会改变数据的分布,从而可能会对激活函数只使用了其线性部分,限制了模型的表达能力。引入参数 γ \gamma γ β \beta β可以使网络的输出重构原始特征的表达能力。

训练阶段

在训练阶段,BN会对batch内的每个样本做归一化,每一层特征图会计算出HxWxChannel个均值和方差。训练时计算的均值和方差会不断按加权累积下来,通过移动平均的方法来近似得到整个样本集的均值和方差。

训练过程中共会产生(图片总数/batchsize)组 γ \gamma γ β \beta β

在反向传播时,利用 γ \gamma γ β \beta β求梯度从而改变训练权重,每层都有自己的 γ \gamma γ β \beta β

预测阶段

在预测阶段,很可能不是按batch预测的,通常只有一个样本,那么BN层中的均值和方差都是固定的,那就需要用到训练时的均值和方差通过移动平均而得到。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值