首页
学习
活动
专区
工具
TVP
发布

机器学习当中的正则化,了解一下?

今天的主题是正则化。一句话总结正则化的作用:正则化是一种在统计模型当中试图解决过拟合的技巧。它解决的是在建立模型时把噪声数据考虑在内的窘境。

先来谈一下学习背景,对机器学习感兴趣的同学,看到下面的公式应该不陌生。

这是我们在进行监督学习任务时,需要进行最小化的目标函数。公式当中的第一项,是度量预测值与真实值之间误差的损失函数,公式第二项是规则化函数,也就是今天的主人公——正则化函数。

用一张Ng课上的逻辑回归的图来说明我们今天要解决的问题。

上图中g(x)函数当中所有的组合起来,就是上面公式当中所要求的参数向量。图中我们可以看到,参数过少会造成——欠拟合(underfit),模型过于简单,不能完全学习到的数据主要的特性,类比到学习上就是学的太少,遇啥啥不会;参数过多会造成模型过于复杂——过拟合(overfit),就好比学生机械式填塞课本知识,遇到没接触过的新知识就不会做了。这两者对于机器学习任务都是不利好的。只有参数选择适量足以表达训练数据的总体特征时,得到的模型才最接近学习的数据的本质。需要解决的问题就是,怎样通过正则化对模型的参数进行优化,选择,才使得模型的泛化能力更强。

通常采用模型参数向量的范数作为正则化函数,这里只提最常见的三种范数:L0、L1与L2范数。它们的定义如下:

L0范数:向量中非0的元素的个数。

L1范数:向量中各个元素绝对值之和。

L2范数:向量各元素的平方和然后求平方根。

先讲一下正则化稀疏的概念。正则化稀疏,就是引入上面公式中的正则化函数去控制当中的数量,使它尽量变少,具体到矩阵当中,就是非零项更少,如下图所示。稀疏化的作用是使模型(函数)尽量简单。

这样来看,目的性很明确。在选取合适的情况下,当

时,在文章开头的目标函数最小化过程中也就对L0范数求最小化,直观来看,L0范数越小,参数向量中非0元素个数越少,参数向量越稀疏,正好达到简化模型的作用。另一方面也说明,L0范数正则有比较好的特征选择能力,如上图中只选择了前两个特征,后两个特征由于参数为0被丢弃

有了L0范数,理论上很实用,但是已经被证明是NP-hard问题,就是在实际求解过程中很艰难。L1范数正则化的提出,一则是因为它是L0范数的“最优凸近似”,二则它有更强的优化求解能力。这两点结论我目前是直接获取的,还没有进一步看相关文献去验证。所以特征选择的任务一般由L1来代替L0完成。

L2正则的作用是从整体上减小参数的值(接近于但不等于0)从而简化模型,避免过拟合。这样得到的模型抗干扰能力强,参数很小时,即使样本数据x发生很大变化,模型预测值y的变化范围也会很小。除了避免过拟合,L2还有一个优点是有助于矩阵求解的难题,这里有个名词condition number,感兴趣的同学可以去研究一下,目前对这块儿还没有接触。简言之,L2比L1更容易进行优化求解

关于L1正则起到稀疏化的作用的问题,找到一张图,以示说明[1]。

左图中可以看出,最小化的目标函数在接近L1-ball时,总是在其一角得到,角的意思是指存在一个非0坐标而其他坐标均为0,也就是得到稀疏解。而右图中解集在与L2-ball边缘相切时,由于L2区域是圆形的,尽管只能观察到一个切点,但实际上在切点的附近有无数相邻点与函数曲线相接触,这有点高数中存在某一邻域有无数点近似相等的概念。这就是解释了为什么L2非稀疏的原因。

L1是Lasso算法的惩罚函数[2],L2是Ridge算法的惩罚函数,它们各自有其优缺点[3],因而衍生出更多的优化算法,比如结合L1和L2的Elastic Net等等。

引用某博主总结的一句话如下:

Lasso在特征选择时候非常有用,而Ridge就只是一种规则化。[4]

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331G1A1TG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券