神经网络BN层

批量归一化(Batch Normalization,BN)方法有效规避了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力。
神经网络训练的本质是学习数据的分布,如果训练数据和测试数据分布不同的话,学习的泛华能力大大降低。因此需要在训练开始前对数据所有输入数据进行归一化处理。
然而随着网络训练的进行, 每个隐藏层参数变化会使得后一层的输入发生变化,从而使得每一批训练数据的分布发生变化,致使网络在每一次迭代中都需要拟合不同的数据,增大模型的复杂度和过拟合的风险。
批量归一化是针对每一批数据,网络的每一层输入之前增加归一化处理。归一化可以看做是每一层的输入和上一层的输出之间加入了一个新的计算层,对数据的分布进行额外的约束,从而增强了模型的泛华能力。
但是批归一化同时也降低了模型的拟合能力。归一化后的数据分布被强制为均值为0,标准差为1。以sigmod函数为例,批量归一化后处于函数的变化区域。破坏了数据原始的特征。为了恢复原始的数据分布,具体引入了变换重构以及可学习参数。对于一般的网络,不采用批量归一化操作时,这两个参数高度依赖前面网络学习到的连接权重(对应复杂的非线性)。而在批量归一化操作中,γ和β变成了该层的学习参数,仅用两个参数就可以恢复最优的输入数据分布,与之前网络层的参数解耦,从而更加有利于优化的过程,提高模型的泛化能力。

随着网络层数的增加,激活函数的输入值的整体分布逐渐往激活函数的取值区间上下靠近,从而导致在反向传播是低层神经网络的梯度消失。通过批归一化,使得越来越偏的分布拉倒0附近,使得梯度变大,加快了学习收敛速度,避免了梯度消失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值