Tricks:Batch Normalization算法原理

BatchNormalization(批量归一化)通过规范化每一层的数据分布,加速深度神经网络的训练,提高模型泛化能力。它通过对每个mini-batch求均值和方差进行数据标准化,并引入可学习的γ和β参数进行调整。BN在全连接层和卷积层中应用有所不同,全连接层按特征维度归一化,卷积层则按通道维进行。使用BN的优势包括:提高学习率、替代Dropout、加速收敛且不影响精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、提出背景

二、Batch Normalization算法思路

三、在全连接层和卷积层中的Batch Normalization 

四、使用Batch Normalization的优势

一、提出背景

        深度神经网络的损失都出现在网络的最后一层,因此在进行反向传播训练时,更深的层训练得更快,而前面的层训练得比较慢。但是当底层网络的参数训练得比较好的时候,深层网络的参数不得不重新进行迭代,因此更深的层需要反复训练多次,导致训练变慢。那么BN的提出,使得不同层数据服从于相近的分布,避免了反复训练,加速收敛。原论文链接:Batch Normalization

二、Batch Normalization算法思路

        首先对每一个mini-batch求均值和方差,按照标准化公式对数据进行更新:

         然后对于每一个进行normalization的mini-batch,都引入一对可学习的参数γ和β,以此调整数据所服从的分布,γ可以看做是一个标准差,β可以看做是一种均值:

        训练过程如下:

         在推理时,BN训练完成之后,,当来一个测试样本进行预测时,我们只需要带入固定的参数,根据BN前向传播的公式进行BN就可以了。但是要注意的是:在推理阶段,对均值和方差的求解不再和训练阶段时的求法一样。这里的均值和方差是根据训练过程中每一次batch得到的均值和方差求解得到的,即求每一个batch的均值和方差的期望的无偏估计:

 

三、在全连接层和卷积层中的Batch Normalization 

        全连接层:输入为二维,每一行是一个样本,每一列是一个特征;对于全连接层来讲,对每一个特征计算均值和方差。

        卷积层:输入为四维[batch, channel, h, w],从[h,w]维度上看,每一个像素可以看成是一个样本,每个像素所拥有的通道数可以看成是每个样本所拥有的特征维度,即每个通道对应一种特征/模式,因此对于卷积层来讲是在通道维上进行normalization。

四、使用Batch Normalization的优势

(1)可以适当地使用更大的学习率;

(2)对于全连接层来讲,使用BN就不必再使用Dropout层;

(3)可以加快收敛速度,但是一般不会改变模型精度;

(4)BN阻止了网络陷入饱和模式,让使用饱和非线性成为可能。

------------------------------创作不易,给个赞吧--------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Taylor不想被展开

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值