深度学习中的归一化方法

本文探讨了深度学习中归一化方法的作用,包括Normalization、BatchNormalization、LayerNormalization、InstanceNormalization和GroupNormalization。归一化能加快梯度下降速度,避免梯度消失问题,但可能限制非线性学习。BatchNormalization通过动态调整数据分布解决了这一问题。

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


深度学习中的归一化方法总结:

  1. Normalization
  2. Batch normalization
  3. Layer Normalization
  4. Instance Normalization
  5. Group Normalization

Normalization

网络层越深,发现网络的数据的分布发生偏移(internal covariate shift 内部协变量偏移),因此,采用归一化方法可以是数据分布集中在激活函数0-1上(网络输出的白化处理whitening activation Neural Net-works: Tricks of the trade. LeCun etal),使得训练的过程中梯度下降更快,同时也能避免sigmod等函数出现梯度消失、爆炸的问题。
但是,使用Normalization后,每层的数据分布相同,意味着是一个线性学习的过程,这让原来的网络不能够学习非线性的特征,因此,Batchnormalization被提出来解决这个问题。

BatchNormalization

在batchnormalization之前是有一些方案解决internal covariate shift的,但是计算量较大,而且不是处处可微,因此这篇文章的设计了一个替代方案。
首先说明一下,几个问题:

  1. training和val过程是参数不一样的,training的参数(主要是E,Var)是由一个batch决定的,而val时BN的参数是将每个B作为一个样本集,对所有的B做样本的无偏估计作为E、Var;
  2. training过程是有反向传播的;
  3. 总的思想是,对输入的X进行归一化处理,简单的说就是X-N(u,var2)变为X-N(0,1),而后面的y=gamma*x冒+beta,个人理解是gamma和beta作为参数是网络的训练内容,而进行分类任务是,有效的特征体现在数据的均值和方差上,激活层所表示的非线性特征通过这两个参数得以保存,val使用的正是网络训练的值。
  4. BN处理时采用了减去了均值,所以在卷积时,bias没有存在的意义。整个卷积可以表示为g(bn(wx))
    这是整个实现过程
    反向传播过程
    训练过程:
    在这里插入图片描述
    文章主要内容是这些,其余实现和方法的优势介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hc'_lalala

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

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

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

打赏作者

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

抵扣说明:

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

余额充值