归一化:常用的方法是对原始数据进行线性变换把数据映射到[0,1]或者[-1,1]之间。变换方法见下文一、二。不同变量往往量纲不同,归一化可以消除量纲对最终结果的影响,是不同变量具有可比性。在不涉及距离度量、协方差计算、数据不符合正态分布时,可使用归一化方法。比如图像处理中,将RGB图像转换为灰度图向后,将其值限定在[0,255]的范围等。
标准化:常用的方法是z-score标准化,镜柜处理后数据均值为0,标准差为1。该标准化方法要求原始数据的分布可以近似为高斯分布,均值为0,标准差为1,。在分类、聚类算法中,需要使用距离来度量相似性的时候,或者PCA技术进行降维的时候,Z-score standardization表现的更好。
单位化:单位化处理比较简单。就是每个矩阵除以他自己的模。模的计算时矩阵中每个元素的平方和再开方。
一、L1 normalization, L2 normalization, Lp normalization
无论传统图像处理,还是深度学习,我们经常会听说存在L1 normalization,L2 normalization,那么这些归一化是什么呢?在统计学习中,归一化的具体作用是归纳归一样本的统计分布性。归一化在0~1之间是统计的概率分布,归一化在-1~+1之间是统计的坐标分布。即该函数在(负无穷,正无穷)的积分为1。
下图为pytorch官网normalize的定义和实现方程
从公式中可以看出这是一个Lp normalize,p表示1,2,...,n。sigma是一个极小的小数,为了防止分母为0时所做的处理。
对于L1来说,p=1,分母就是上图中的示例1。对于L2来说,p=2,分母就是上图中的示例2。对于Lp来说,分母就是上图中的示例3。
比如存在数:
L1 normalize的结果和L2 normalize的结果如下:
pytorch计算结果:
Lp normalization归一化范围:[-1, 1]
所以往后可以使用Lp normalize了,方便简单。
二、使用最大最小值进行归一化处理
1. Rescaling
其中:
min(x):数据分布的最小值
max(x):数据分布的最大值
作用:计算出每个样本的比例值。
作用:计算出每个样本的比例值。
取值范围:[0,1]
2. Mean Normalization
其中:
mean(x):数据分布中的均值
min(x):数据分布的最小值
max(x):数据分布的最大值
作用:计算出每个样本的比例值。
取值范围:[-1,1]
三、符合正态分布的标准化处理
常用的方法是z-score标准化,镜柜处理后数据均值为0,标准差为1。
其中:
u:表示均值,mean
sigma:表示标准差,std
标准化处理就是数据减去均值然后除以标准差,使其分布符合正态分布。
标准差 = 方差的算数平方根
该标准化方法要求原始数据的分布可以近似为高斯分布,均值为0,标准差为1,。在分类、聚类算法中,需要使用距离来度量相似性的时候,或者PCA技术进行降维的时候,Z-score standardization表现的更好。
四、使用最大最小值进行归一化处理。
Scaling to unit length
单位化处理比较简单。就是每个矩阵除以他自己的模。模的计算时矩阵中每个元素的平方和再开方。