赞
踩
今天要学习的内容是一个小知识点:归一化
归一化(Normalization): 是一种无量纲处理手段,即将有量纲的表达式,经过变换,化成无量纲的表达式,称为标量。通常来说,想比较两个有度量单位的物理量是不可以的,但是我们可以先将度量单位去掉,变成标量,就可以作比较了。归一化的具体作用是:归纳样本的统计分布性;操作是:把数据经某种算法限制在(0,1)或者(-1,1)范围内,限制数据到(0,1)区间是统计样本的概率分布,而限制到(-1,1)区间是统计样本的坐标分布。
常见的归一化方式是Rescaling (min-max normalization) 线性归一化:适用在数据比较集中的情况
x
′
=
x
−
min
(
x
)
max
(
x
)
−
min
(
x
)
x^\prime=\frac{x-\min(x)}{\max(x)-\min(x)}
x′=max(x)−min(x)x−min(x)
不论是计算,还是建模,首先要做的是对样本数据进行预处理,这要求样本的度量单位要统一,不然无法做统计分析,因此预处理的第一步往往是对数据去量纲。而去量纲化的操作通常有这几种:归一化和标准化。
标准化(Standardization): 是对原始数据按比例进行缩放处理,使得数据落入一个小的特定区间,这跟归一化差不多,但是唯一的差别就是缩放本质不同,归一化是将样本的特征值转化到同一量纲下,把数据映射到(0,1)或者(-1,1)区间。 而标准化是将数据通过去均值实现中心化(中心化:将数据的平均值变为0的操作),得到的数据是符合标准正态分布的,区别在于标准化是依照特征矩阵的列,归一化是依照特征矩阵的行处理数据。
标准化的形式是:Standardization (Z-score normalization)标准差归一化:将数据处理成符合均值为0,方差为1的标准正态分布
x
′
=
x
−
μ
(
x
)
σ
(
x
)
,
μ
为
均
值
,
σ
为
方
差
x^\prime=\frac{x-\mu(x)}{\sigma(x)}\;,\; \mu为均值,\sigma为方差
x′=σ(x)x−μ(x),μ为均值,σ为方差
个人观点:我认为归一化和标准化其实是起着相同效果的操作,在实际中无需将两者划分得这么清楚,因为他们的共同点都是消除不同量纲,都是一种线性变换,都是对样本x按比例缩放再平移。
在训练神经网络之前,我们一般都要对数据进行归一化,这样做的原因有三点:
批量归一化(Batch Normalization,BN): 顾名思义,就是批量地将样本进行归一化操作,它是基于mini-batch的数据计算均值和方差的,而不是整个training set。当小批次数量,即mini-batch设置较大时,数据分布较接近,在训练前充分打乱,将BN层设置在非线性映射前,这样有利于网络收敛。
BN在具体训练时的操作流程为:
输入:上一层输出的结果 X = { x 1 , . . . , x i , . . . , x n } X=\{x_1,...,x_i,...,x_n\} X={x1,...,xi,...,xn},学习参数 γ , β \gamma,\beta γ,β
权重归一化(Weight Normalization,WN): 顾名思义是对权重做归一化处理。在提出Weight Normalization之前,网络都是偏向于对样本进行归一化,而为了改进优化问题的条件,加快梯度下降的收敛速度,在一些诸如RNN之类的递归模型(因为RNN的输入Sequence/序列是变长的,无法固定批次来处理)和强化学习、对噪声敏感的GAN来说,使用BN并不太合适,于是Tim Salimans就提出了权重归一化,即对神经网络中权重向量的长度与其方向分离。
权重归一化的数学表达式为:Scaling to unit length
γ
′
=
g
∣
∣
v
∣
∣
v
\gamma^\prime=\frac{g}{||v||}v
γ′=∣∣v∣∣gv
其中,参数v是k维向量,||v||为v的欧式范数,参数g为标量。
γ
\gamma
γ被分为v和g两个参数,从上面的式子中可以分析
∣
∣
γ
∣
∣
=
g
||\gamma||=g
∣∣γ∣∣=g,与参数v独立,而权重
γ
\gamma
γ的方向变为
v
∣
∣
v
∣
∣
\frac v{||v||}
∣∣v∣∣v,因此权重向量
γ
\gamma
γ用两个独立的参数表示幅度/大小和方向。
经过WN后,对于v和g的梯度为:
▽
g
L
=
▽
γ
L
⋅
v
∣
∣
v
∣
∣
▽
v
L
=
g
⋅
▽
γ
L
∣
∣
v
∣
∣
−
g
⋅
▽
g
L
∣
∣
v
∣
∣
⋅
v
\triangledown_g L=\frac{\triangledown_\gamma L\cdot v}{||v||}\\ \\\;\\ \triangledown_v L=\frac{g\cdot\triangledown_\gamma L}{||v||}-\frac{g\cdot\triangledown_g L}{||v||}\cdot v
▽gL=∣∣v∣∣▽γL⋅v▽vL=∣∣v∣∣g⋅▽γL−∣∣v∣∣g⋅▽gL⋅v
其中,
▽
γ
L
\triangledown_\gamma L
▽γL为损失函数对为进行WN的权重
γ
\gamma
γ求偏导。
WN通过改变权重的方式来加速深度学习网络参数收敛,并没有引入mini-batch变量,不需要额外开辟空间来保留每个batch的均值和方差,减少了网络的计算开销,因此采用WN比BN的计算速度要快。
本文主要介绍了归一化,以及神经网络中两个常用的归一化操作:批量归一化和权重归一化。
参考:
https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247494179&idx=1&sn=3ebf86b321ac73d276c004872c5ee926&chksm=ec1c07dadb6b8eccee16e828eb7154513e447f4f8a2df0ab27e1965b72a5a7bd547d0570c5fe&mpshare=1&scene=23&srcid=&sharer_sharetime=1585550731022&sharer_shareid=7f7e7160bc27c0d4e5d25b89aee9e9d5#rd
https://blog.csdn.net/shwan_ma/article/details/85292024
https://blog.csdn.net/donkey_1993/article/details/81871132
https://zhuanlan.zhihu.com/p/25732304?utm_source=com.miui.notes&utm_medium=social
https://blog.csdn.net/simsimiztz/article/details/89465836?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。