Batch Normalization笔记

批量归一化(Batch Normalization)是提高神经网络性能的重要技术,它可以提高模型的泛化能力和收敛速度。BN通过对每一层的输入进行归一化处理,解决了梯度消失和梯度爆炸问题,同时能作为正则化手段减少其他正则项。在前向传播中,BN计算数据均值和方差进行归一化,通过可学习参数调整保持特征分布。反向传播时,通过链式法则更新γ和β以及权重。此外,BN还能替代局部响应归一化层,并允许使用更大的学习率,加速训练过程。
摘要由CSDN通过智能技术生成

一、为什么需要归一化
1、提高泛化能力
若测试集与训练集分布不同,则会使网络的泛化能力降低。
2、提高收敛速度
若每个batch的数据分布不尽相同,那么每次迭代都需要去适应不同的分布情况;且网络前几层的变化会累积到后面的网络层(我们将这种训练过程中网络中间层数据分布的改变称之为:“Internal Covariate Shift”。),从而使训练收敛速度降低。
3、待补充

二、Batch Normalization原理
与再输入层对输入数据进行归一化处理相似,于每一层的输入之前加入BN层进行每一层的数据分布归一化。
1、借鉴思想
对输入数据的预处理通常采用白化操作,经白化处理后的数据集满足如下两个条件:
(1)特征相关性降低;
(2)数据均值、标准差归一化。
然而简单的白化处理有可能破坏上一层所学习到的特征分布,故BN层在对x近似白化处理之后引入可学习参数γ和β来还原特征分布。
2、前向传播
在这里插入图片描述
(1)计算数据均值;
(2)计算数据方差;
(3)对输入数据近似白化处理(归一化);
(4)通过放缩和迁移提高数据对非线性区域的表达能力并还原上一层学习到的特征分布。
3、反向传播
通过链式求导方式求出γ与β以及相关权值。

三、

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值