Batch Norm的原理和作用

Batch Normalization是一种用于深度学习的技术,旨在加速训练过程,提高模型稳定性。它通过标准化每一层的输出,确保数据在每一层都有相同的分布,均值为0,方差为1。在实际操作中,Batch Norm层插入在隐藏层之间,计算输入的均值和方差,然后进行规范化,同时引入可学习的参数gamma和beta进行尺度调整和偏移,以保留网络学到的特征。此外,它还利用指数移动平均来适应训练过程中的变化,并在推理阶段使用。
摘要由CSDN通过智能技术生成

Batch Normalization做了什么?

在数据在最初进来的时候,都希望是(IID)独立同分布的。

但是batch Normalization的作者觉得不够,应该在deep learning中的每层都进行一次处理,保证在每层都是同分布。

他是这么想的:假设网络有n层,网络正在训练,还没有收敛。这时候X_{1}被输入,经过了第一层,但是第一层还没有学到正确的weight,所以经过weight的矩阵乘法后,第二层的数会不会很乱?会不会第二层有些节点值是个位数,有些节点值蹦到好几百?细想一下,确实挺有可能啊,内部的参数都是随机初始化的,那蹦啥结果确实不好说啊。然后恐怖的事情来了,第二层这些乱蹦的数,又输到了第三层,那第三层的输入就是乱蹦的数,输出当然好不了,以此类推。

所以主要产生了两个问题:

1.所以在前面的网络没有收敛的时候,后面的网络其实并学不到什么。(一栋大楼底部都是晃的,那上面也好不了。所以必须要等前面的层收敛后,后面层的训练才有效果。)

2.因为一般来说网络内部每层都需要加一层激活来增加非线性化嘛,那么如果值比较大,它通过激活以后在S曲线上会比较接近0或1,梯度很小,收敛会很慢。

所以batch Normalization就想在每层都加一个norm进行标准化,让每层

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小羊头发长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值