首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【入门系列】归一化很简单?5种归一化形式,你都了解嘛?

在神经网络中,每一批次数据分布的不一致,当每一批数据进来之后,神经网络就开始寻找这批数据的平衡点,显然会影响收敛速度,甚至产生梯度消失或爆炸等行为,所以引入了一种方法,就是归一化。

除了常见的批归一化,还有4种归一化,分别是层归一化、单例归一化、群归一化、权重归一化,本篇文章主要讲解清楚它们的理论知识以及如何运用在pytorch中的API。

归一化的大致步骤是这样的:

计算出每批次的均值、方差

归一化处理为均值为0,方差为1

恢复网络学习的数据分布

在测试集进入的网络时候,均值从何而来,方差从何而来?

均值是训练集中所有batch均值的平均值,是每个batch方差的无偏估计,至于无偏估计,我知道大概是用样本值取估计总体量的参数,有懂的小伙伴可以介绍一下这个无偏估计是如何计算的。

先放一张图,大家来看一下这几种归一化的区别:

批归一化:

每个batchsize中按照channel做归一化处理,也就是上图1中的公式,(N是batchsize,C是channel,HW被合成一个维度)

pytorch_api:

层归一化:按照每一个样本、每一层来求均值、方差,常用在RNN网络中

单例归一化:在风格迁移中常用,按照每一个样本、每一个通道来求均值方差

群归一化:按照每个样本、每组(channel分组)

上面的几种归一化方法只是求均值、方差的维度不同

权重归一化:WN的做法是将权值向量w 在其欧氏范数和其方向上解耦成了参数向量 v 和参数标量 g 后使用SGD分别优化这两个参数

用v除以v的模得到原来权重向量的方向,再增加一个g的可学习幅度

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220608A0AI8800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券