[概念]深度学习5种标准化层BN、GN、LN、IN、SN+谷歌提出新的标准化层:FRN

[概念]深度学习5种标准化层BN、GN、LN、IN、SN+⾕歌提
出新的标准化层:FRN
标准化和归⼀化的区别?
对图像做数据处理,最常见的对图像预处理⽅法有两种,正常⽩化处理⼜叫图像标准化处理,另外⼀种⽅法叫做归⼀化处理
⽽所谓的标准化其实是因为它们都是⽤标准正太分布的公式如下,标准化后使得数据分布在均值为0,⽅差为1上,注意标准化的数据范围并⾮是[-1,1]之间或者[0,1]之间,通过如下实验可以验证.图像标准化是
四合扣将数据通过去均值实现中⼼化的处理,根据凸优化理论与数据概率分布相关知识,数据中⼼化符合数据分布规律,更容易取得训练之后的泛化效果, 数据标准化是数据预处理的常见⽅法之⼀
⽽对于归⼀化:
⽽BN、GN、LN、IN、SN是利⽤了标准化,英⽂名叫intermediate normalization layers
蜘蛛网结构
为什么要做标准化处理或者归⼀化处理?
神经⽹络学习过程的本质就是为了学习数据分布,如果我们没有做归⼀化处理,那么每⼀批次训练数据的分布不⼀样,从⼤的⽅向上看,神经⽹络则需要在这多个分布中到平衡点,从⼩的⽅向上看,由于每层⽹络输⼊数据分布在不断变化,这也会导致每层⽹络在平衡点,显然,神经⽹络就很难收敛了。当然,如果我们只是对输⼊的数据进⾏归⼀化处理(⽐如将输⼊的图像除以255,将其归到0到1之间),只能保证输⼊层数据分布是⼀样的,并不能保证每层⽹络输⼊数据分布是⼀样的,所以也需要在神经⽹络的中间层加⼊归⼀化处理。
常⽤的5种Normalization
它们分别是Batch Normalization(BN,2015年)、Layer Normalization(LN,2016年)、Instance Normalization(IN,2017年)、Group Normalization(GN,2018年) Switchable Normalization(SN,2019年4⽉)
论⽂下载地址:
共同的优点
1. 可以使学习快速进⾏(可以增⼤学习率)
2. 减弱对初始化的强依赖性
<
3. 抑制过拟合
4. 保持隐藏层中数值的均值、⽅差不变,让数值更稳定,为后⾯⽹络提供坚实的基础
标准化操作+缩放和平移
它们的计算流程基本⼀致,主要分为以下⼏个步骤:
1、对输⼊数据计算均值
2、计算⽅差
3、利⽤均值和⽅差进⾏标准化 (是⼀个微⼩常数,为了防⽌出现除以0的情况)
4、标准化后,还需要再进⾏缩放和平移(scale and shift),原因是每⼀次数据经过标准化后还保留原有学习来的特征,同时⼜能完成标准化.这两个参数是⽤来学习的
不同点
上图来⾃GN那⼀篇⽂章,其中N表⽰batch size的⼤⼩(批量),C表⽰通道数,(H,W)表⽰特征图的长度和宽度(压缩H,W⾄⼀个维度,即图中Instance Norm的蓝⾊部分既表⽰⼀个H,W).通过计算蓝⾊部分的值求均值和⽅差,从⽽进⾏标准化.
它们主要的区别在于标准化的对象有所不同,下⾯分别对它们依次进⾏讲解.
Batch Normalization
实现步骤
1. BN的计算就是把每个通道C的NHW单独拿出来标准化处理+缩放和平移
BN的使⽤位置:全连接层或卷积层之后,激活层之前
BN的问题:
1. BN层已经上成为了标配。但是BN层在训练过程中需要在batch上计算中间统计量,这使得BN层严重依赖batch,如果⼀堆数据集,每次
取得的batch size很⼩,那么计算出来的均值和⽅差不⾜以代表整个数据的分布,往往会恶化性能
车载卫生间
电磁屏蔽导电胶2. 但是batch size很⼤的时候,会超过内存容量.
BN的代码实现:
mu = np.mean(x,axis=0)
sigma2 = np.var(x,axis=0)
x_hat = (x-mu)/np.sqrt(sigma2+eps)
out = gamma*x_hat + beta
Layer Normalizatio
实现步骤
1. LN的计算就是把每个CHW单独拿出来标准化处理+缩放和平移
LN的使⽤位置:它不依赖于batch size和输⼊sequence的长度,因此可以⽤于batch size很⼩的时候和RNN中,LN的效果⽐较明显.
LN的优点:不受batch size的影响
LN的代码实现
x = x.T  # (D, N)
mu = np.mean(x, axis=0)  # (N,)
sigma2 = np.var(x, axis=0)  # (N,)
x_hat = (x - mu) / np.sqrt(sigma2 + eps)
x_hat = x_hat.T  # (N, D)新型助听器
out = gamma * x_hat + beta
inv_sigma = 1 / np.sqrt(sigma2 + eps)
cache = (x_hat, gamma, mu, inv_sigma)
Instance Normalization
实现步骤
1. IN的计算就是把每个HW单独拿出来标准化处理+缩放和平移
IN的使⽤位置:保持了每个图像的独⽴性,最初⽤于图像的风格化迁移
IN的优点:不受通道和batchsize 的影响
Group Normalization
实现步骤
1. 把C分成G组,每⼀组有C/G个通道,各组通道分别标准化+缩放和平移
GN的优点:
1. 不受batch size 的影响,batch size很⼩的时候,GN的效果会⽐BN好.如下图所⽰
2. GN介于LN和IN之间,当然可以说LN和IN就是GN的特列,⽐如G的⼤⼩为1或者为C
GN的缺点:
1. 但对于⼤batch size,GN仍然难以匹敌BN
GN实现代码:
Switchable Normalization
实现步骤: 将 BN、LN、IN 结合,赋予不同的权重,让⽹络⾃⼰去学习这些权重
缺点:训练复杂
⾕歌新推出的标准化: Filter Response Normalization
FRN论⽂下载: (2019年11⽉)
FRN的优点:
1. FRN层不仅消除了模型训练过程中对batch的依赖,⽽且当batch size较⼤时性能优于BN。
⾕歌的提出的FRN层包括归⼀化层FRN(Filter Response Normalization)和激活层TLU(Thresholded Linear Unit),如图所⽰

本文发布于:2024-09-22 21:24:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/98932.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:标准化   数据   处理   缩放   学习   图像
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议