归一化和正则化在机器学习中是两个完全不同的概念,之所以把他们放在一篇文章里是因为网络上不少文章经常混淆概念的使用这些词。
经常在一些文章中提到归一化和正则化,网上有些文章中会替换使用归一化和正则化的翻译,自己在学习的过程中也一度误解了,故今天花时间整理了一下。
查了几本书中的翻译,一般将Regularization译为正则化。Normalization一般则译为归一化,另外还有Standardization译为标准化,有的地方对归一化和标准化没有做详细区分,我目前的理解是Standardization是一种特殊的Normalization。
一、正则化
引入正则化的目的主要是为了处理过拟合(over-fitting),正则化是解决过拟合的方法之一。
李航的《统计学习方法》一书的1.4节有对过拟合和正则化的详细描述,另外可参考尾部链接【1】。
除了处理过拟合。
还有另一个副作用,在模型参数求解中可能存在多个最优解,正则化可以对模型起到惩罚作用,从而获得唯一的最优解(这个作用是在周志华的《机器学习》一书中提到)。Andrew Ng在Coursera的机器学习课程中给出了更具数学化的解释,在正规方程求解过程中引入正则化来避免不可逆的情况。
二、归一化/标准化
归一化主要用于处理各维特征量纲不同的情况。
2.1归一化带来的好处(详见尾部链接【2】):
1.提高梯度优化的收敛速度
2.有可能提高结果精度
2.2常用的归一化方法(详见尾部链接【2】):
1.线性归一化
2.标准差归一化(有些地方将其称为标准化)
3.非线性归一化
2.3哪些模型中需要对数据做归一化
作为新手,这个问题很苦恼,比如像决策树好像就不需要做归一化,但是SVM、KNN、神经网络之类一般都得做归一化。
在网上查了很久没找到这方面的详细解释,在知乎上看到一个简短的说法:
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。像svm、线性回归之类的最优化问题就需要归一化。
看上去是这么个道理,后续有看到相关资料再做补充。