BN层的原理与作用

本文详细解析了批量规范化(BN)层的工作原理及其在深度学习中的三大作用:加速训练收敛速度、控制梯度爆炸和防止梯度消失以及预防过拟合。通过分析BN层如何改善网络训练过程,为读者提供了深入理解BN层特性的视角。

在这里插入图片描述
从论文中给出的伪代码可以看出来BN层的计算流程是:

1.计算样本均值。

2.计算样本方差。

3.样本数据标准化处理。

4.进行平移和缩放处理。引入了γ和β两个参数。来训练γ和β两个参数。引入了这个可学习重构参数γ、β,让我们的网络可以学习恢复出原始网络所要学习的特征分布。
BN就是对不同样本的同一特征做归一化。

BN层的作用
BN层的作用主要有三个:
1.加快网络的训练和收敛的速度;
2.控制梯度爆炸防止梯度消失;
3.防止过拟合。
接下来就分析一下为什么BN层有着三个作用。

加快网络的训练和收敛的速度
在深度神经网络中中,如果每层的数据分布都不一样的话,将会导致网络非常难收敛和训练,而如果把 每层的数据都在转换在均值为零,方差为1 的状态下,这样每层数据的分布都是一样的训练会比较容易收敛。

控制梯度爆炸防止梯度消失
梯度消失:在深度神经网络中,如果网络的**输出很大,其对应的梯度就会很小,导致网络的学习速率就会很慢,假设网络中每层的学习梯度都小于最大值0.25,网络中有n层,因为链式求导的原因,第一层的梯度将会小于0.25的n次方,所以学习速率相对来说会变的很慢,而对于网络的最后一层只需要对自身求导一次,梯度就大,学习速率就会比较快,这就会造成在一个很深的网络中,浅层基本不学习,权值变化小,而后面几层网络一直学习,后面的网络基本可以表征整个网络,这样失去了深度的意义。(使用BN层归一化后,网络的输出就不会很大,梯度就不会很小)

梯度爆炸:第一层偏移量的梯度=层斜率1x权值1x层斜率2x…层斜率(n-1)x权值(n-1)x层斜率n,假如**层斜率均为最大值0.25,所有层的权值为100,这样梯度就会指数增加。(使用bn层后权值的更新也不会很大

防止过拟合
在网络的训练中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值