归一化方法的两个问题讨论
Microstrong0305 机器学习算法那些事 昨天
作者:Microstrong0305
链接:
https://blog.csdn.net/program_developer/article/details/78637711
编辑:石头
前几天有网友咨询我关于归一化的两个问题:
(1) 归一化是否能够提高最优模型的收敛速度。
(2) 标准化归一化和线性归一化的应用场景是什么。
本文通过图形的方式解释了为什么归一化能够提高最优模型的收敛速度,以及通过方差的角度去理解标准化归一化和线性归一化的应用场景问题。
目录
1. 背景
2. 目的
3. 归一化的优点
4. 常用归一化方法的定义
5. 归一化方法的应用场景
5. 总结
1. 背景
从左至右来看,第一个模型是一个线性模型,拟合度很低,也称作欠拟合(Underfitting),不能很好地适应我们的训练集;第三个模型是一个高次方的模型,属于过度拟合,虽然能很好的适应我们的训练数据集,但是在新输入变量进行预测的时候,可能效果会很差。第二个模型可能是刚刚适合我们数据的模型。
那么问题来了,如果我们发现这样过度拟合的情况,如何处理呢?
有两种方式:
1). 丢弃一些不能帮助我们正确预测的特征。采用的方法如下:
a). 手工选择保留哪些特征。
b). 使用降维算法。(例如PCA等)
2). 归一化处理
保留所有的特征,但是减少参数的大小(或者说:减少参数的重要性)
2. 目的
不同的评价指标往往具有不同的量纲(例如:对于评价房价来说量纲指:面积、房价数、楼层等;对于预测某个人患病率来说量纲指:身高、体重等。)和量纲单位(例如:面积单位:平方米、平方厘米等;身高:米、厘米等),这样的情况会影响到数据分析的结果,为了消除指标之间量纲的影响,需要对数据进行归一化处理,以解决数据指标之间的可比性。原始数据经过数据归一化处理后,各指标处于同一数量级,适合进行综合对比评价。
3. 归一化方法的优点
(1)归一化后加快了梯度下降法求最优解的速度。
(2)归一化有可能提高精度(归一化是让不同维度之间的特征在数值上有一定的比较性)。
解释:
(1)加快梯度下降求解最优解的速度:
例子:假定为了预测房子价格,自变量为面积,房间数两个,因变量为房价。
那么可以得到的公式为:
首先我们给出两张图代表数据是否均一化的最优解寻解过程。
未归一化:
归一化之后:
我们在寻找最优解的过程中也就是求使得损失函数值最小的theta1和theta2,上述两幅图代表的是损失函数的等高线。我们很容易看出,当数据没有归一化的时候,面积数的范围可以从0-1000,房间数的范围一般为0-10,可以看出面积数的取值范围远大于房间数。
归一化和没有归一化的影响:
数据没有归一化的损失函数表达式为:
造成图像的等高线为类似的椭圆形状,最优解的寻优过程如下图所示:
数据归一化后的损失函数表达式为:
其中系数和
均处于[0,1]范围内,则图像的等高线为类似圆的形状,最优解的寻优过程如下图所示:
从上面可以看出,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解 。
(2). 归一化有可能提高精度(归一化是让不同维度之间的特征在数值上有一定的比较性)
解释:
一些分类器需要计算样本之间的距离(如欧式距离)来描述相似度,比如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,可能与实际情况不符 。
4. 常用归一化方法的定义
两种常用的归一化方法:
(1) min-max标准化
(2) Z-score标准化方法
min-max标准化(Min-Max Normalization),也称线性函数归一化
定义: 对原始数据进行线性变换,使数据结果映射到0-1之间。
本质: 把数变为[0,1]之间的小数。
转换函数: (X-Min)/(Max-Min)
如果将数据映射到[-1,1]范围,则将转换公式写成 :
其中max为样本数据的最大值,min为样本数据的最小值,Mean表示数据的均值。
缺陷:
(1). 当有新数据加入时,可导致max和min的变化,需要重新定义。
(2). 若数据出现较大或较小的异常值,则该标准化方法存在较大的误差。
0均值标准化(Z-score standardization)
定义:通过原始数据的均值(mean)和标准差(standard deviation)进行标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1。
本质:把有量纲表达式变成无量纲表达式。
转换函数:(X-Mean)/(Standard deviation)
其中,Mean为所有样本数据的均值。Standard deviation为所有样本数据的标准差。
5. 归一化方法的使用场景
(1). 在分类、聚类算法中,需要使用距离来度量相似性的时候或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。
解释:第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,不同的量纲计算的距离也会不同。
(2). 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。
第二种归一化方法对新的数据进行了方差归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
为什么在距离度量相似性和PCA中使用第二种方法(Z-score standardization)会更好呢?我们进行了以下的推导分析:
归一化方法对方差、协方差的影响:
假设我们数据为2个维度(X、Y),我们使用Z-score标准化进行计算,我们先不做方差归一化,只做0均值化为:
新数据的协方差为:
由于:
因此:
而原始数据协方差为 :
因此:
做方差归一化后:
方差归一化后的协方差为:
由上式可知,方差归一化后的协方差也进行了类似求解相关系数的算法处理(可参考相关系数公式),相关系数取值范围在0到1之间,因此,方差归一化后的协方差也进行了类似的归一化处理。
使用Min-Max标准化方法进行计算,为了方便分析,我们只对X维进行线性函数变换:
计算协方差:
(1)使用Max-Min标准化后,其协方差产生了倍数值得缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时由于量纲的存在,使用不同的量纲,距离的计算结果会不同。
(2)使用0均值标准化后,新数据进行了方差归一化,新数据样本的多维变量间进行了协方差归一化,因此在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离的计算产生的巨大影响。
6. 总结
总的来说,在算法的后续计算中涉及距离度量(聚类分析)或者协方差分析(PCA、LDA等)且数据分布近似为正态分布,应当使用0均值化的归一方法,其它应用则根据具体情况选用合适的归一化方法。
参考
http://blog.csdn.net/yehui_qy/article/details/53787386
http://blog.csdn.net/zbc1090549839/article/details/44103801
知乎:处理数据时不进行归一化会有什么影响?归一化的作用是什么?什么时候需要归一化?有哪些归一化的方法? - 忆臻的回答
https://www.zhihu.com/question/20455227/answer/197897298
http://blog.csdn.net/mysteryhaohao/article/details/51261300