机器学习里的黑色艺术:normalization, standardization, regularization

机器学习里的黑色艺术:normalization, standardization, regularization

今天在知乎看到有人问到机器学习中几个术语之间的区别:normalization, standardization, regularization. 简要谈谈,权当自己知识的梳理。

之所以把normalization和standardization叫做黑色艺术,其实是因为很多机器学习的文章,取得了很好的效果,模型很具有创新型,但是往往normalization的方法在文章中只字不提,导致后期结果复现的时候出现困难,遂自嘲它们为黑色艺术(black art)。

第一部分:大的层面上讲

1. normalization和standardization是差不多的,都是把数据进行前处理,从而使数值都落入到统一的数值范围,从而在建模过程中,各个特征量没差别对待。normalization一般是把数据限定在需要的范围,比如一般都是【0,1】,从而消除了数据量纲对建模的影响。standardization 一般是指将数据正态化,使平均值0方差为1. 因此normalization和standardization 是针对数据而言的,消除一些数值差异带来的特种重要性偏见。经过归一化的数据,能加快训练速度,促进算法的收敛。

2.而regularization是在cost function里面加惩罚项,增加建模的模糊性,从而把捕捉到的趋势从局部细微趋势,调整到整体大概趋势。虽然一定程度上的放宽了建模要求,但是能有效防止over-fitting的问题(如图,来源于网上),增加模型准确性。因此,regularization是针对模型而言。


这三个term说的是不同的事情。

第二部分:方法

总结下normalization, standardization,和regularization的方法。

Normalization 和 Standardization

(1).最大最小值normalization: x'=(x-min)/(max-min). 这种方法的本质还是线性变换,简单直接。缺点就是新数据的加入,可能会因数值范围的扩大需要重新regularization。

(2). 对数归一化:x'=log10(x)/log10(xmax)或者log10(x)。推荐第一种,除以最大值,这样使数据落到【0,1】区间

(3).反正切归一化。x'=2atan(x)/pi。能把数据投影到【-1,1】区间。

(4).zero mean normalization归一化,也是standardization. x'=(x-mean)/std.

有无normalization,模型的学习曲线是不一样的,甚至会收敛结果不一样。比如在深度学习中,batch normalization有无,学习曲线对比是这样的:图一 蓝色线有batch normalization (BN),黑色虚线是没有BN. 黑色线放大,是图二的样子,蓝色线放大是图三的样子。reference:Batch Normalization: Accelerating Deep Network Training by Reducing
Internal Covariate Shift, Sergey Ioffe.

Regularization 方法

一般形式,应该是 min min\sum_{i=1}^{n}{J(x_{i},y_{i})+\lambda}R(f) , R是regularization term。一般方法有

  1. L1 regularization: 对整个绝对值只和进行惩罚。
  2. L2 regularization:对系数平方和进行惩罚。
  3. Elastic-net 混合regularization。


个人总结,欢迎指正和交流。要欢迎学术交流。个人研究主页Rui Liu - Robot Knowledge

编辑于 2018-04-20

文章被以下专栏收录

    前 机器学习&深度学习--学术水准的理解专栏。 给出对算法的深度见解,辅以理论推导和实际应用场景,来引导算法理解。 ---认知机器人和人工智能实验室, 肯特州立大学。 ruiliurobotics.weebly.com