爱吧机器人网 » 技术 > 机器学习 > 正文

机器学习之——正则化

最近在刷李航的《统计学习方法》这本书,在很多算法的损失函数里,都出现类似的描述:

损失函数最小化原则一般就是用正则化的极大似然估计进行模型选择。

正则化到底是什么呢?正则化应该怎么去理解?到底又有什么作用呢?

什么是正则化?

正则化就是在损失函数后加上一个正则化项(惩罚项),其实就是常说的结构风险最小化策略,即经验风险(损失函数)加上正则化。一般模型越复杂,正则化值越大。

上面的式子就是结构风险最小化策略的通用表达式,其中第2项(绿色标记的部分)就是本文要讲的正则化项,第1项就是损失函数。可能你会问,有第一项不就可以将训练数据拟合得很好嘛,模型的表现也会很棒吗?没错,但是在监督学习中,我们同时更加关注测试数据在模型上的表现,也就是模型的泛化能力。

监督机器学习问题归根结底就是“minimizeyour error while regularizing your parameters”,也就是说规则化参数的同时最小化误差。最小化误差是为了让我们的模型更好的拟合训练数据,而规则化参数是防止模型过分拟合我们的训练数据(overfiting)。多么简约的哲学啊!因为模型参数太多会导致模型复杂度上升,容易发生过拟合,也就是训练误差会很小。但我们的最终目标不仅是训练误差小,而且更关注模型的测试误差是否也很小,目的是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才有比较好的泛化性能,而要使得模型“简单”就是通过规则函数来实现,也就是正则化。

说了半天,其实总结就是一句话,正则化的目的就是防止过拟合!

L1正则化和L2正则化

终于进入正题了,深呼吸开动你的大脑,干货来了。

一般,正则化项就是一些L1范数和L2范数(因为L0范数用的少,所以不作讨论)。

L1范数——各参数的绝对值之和(稀疏规则算子)

L2范数——各参数的平方和的开方(权重衰减)

初中数学就能理解这些了,那到底在损失函数中加入这些玩意有什么用呢?好,别慌,很简单,公众号文章的目的就是用口水话讲看起来高深的玩意。

L1正则化

细心的读者肯定发现了,在上面L1 范数的概念中的最后写了个稀疏规则算子,对,我也不知道是什么一开始(毕竟不是学数学出身的)。6个字中应该只有最前面2个字有价值吧,语文还是可以的(哈哈)。“稀疏”,就是少的意思,想想损失函数后面加个带参数的项,想干嘛?前面罗里吧嗦说了很多,意思就是如果没这个项,模型复杂度高,模型容易过拟合。加了这个项,就可以防止过拟合(大神是这么说的)。所以,稀疏二字的意思可以得知,肯定是将参数变少了呗,模型复杂度降低了。

一般来说,xi的大部分元素(也就是特征)都是和输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑(比如噪声数据),从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择,它会去干掉这些没有信息的特征,也就是把这些特征对应的权重变为为0。

我们来看个经典的图:

\

在二维的情况下,只有2个参数,利用梯度下降算法在(w1, w2)平面上可以画出目标函数的等高线。而那个四边形就是正则化项(L1)对应的图形。最优解就在等高线和四边形相交的地方。从图中可以看出,相交的地方,w1等于0。回到之前讨论的,稀疏二字,也就是将w1干掉了,模型最后剩下w2参数。换句话讲,该正则项的目的就是将关联不大的特征直接剔除,只保留部分特征。因为在有些数据下,只有少数特征对模型有贡献,绝大部分特征是没有贡献的。所以,L1范数(||W||1)的重要作用就是特征选择。

L2正则化

L2范数: ||W||2。这玩意能改善过拟合。让L2范数的规则项||W||2最小,我们可以使W的每个元素都很小,接近于0。但与L1范数不同的是不会让它等于0,而是接近于0。想想看为什么不也直接让它等于0呢?

如果我们将w都变的很小很小,但是又不等于0,就好比一个人去小吃街吃好吃的,一开始进小吃街就将前几家店的东西吃撑了,后面还有好多美食没品尝到,这是不是傻呢?大部分店都吃一些是不是就知道哪些才好吃,下次去的时候就会优先选择好吃的店。对于模型也差不多这个意思吧,如果把有些参数都干掉,万一这个参数未来在某些情况能发生作用呢(天知道)。可能举得例子不太贴切,表达的意思应该可以理解吧。这样做的目的就是,让模型的泛化能力更强些(因为模型的参数更多了。知识储备多了,可以解决一些复杂的问题)

\

也用一个经典的图来说明,从图中可以看出,二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。最优解的点就是为了让w1和w2的值都变得尽量小,当w变小时,园就会变小,w的值将会向0靠近。L2正则项可以获得很小的权重系数,减小模型的复杂度。

小结

L1会趋向于产生少量的特征,而其他的特征都是0。而L2会选择更多的特征,这些特征都会接近于0.

只有少数特征起重要作用的情况下,选择L1范数比较合适,因为它能自动地选择特征。

而如果所有特征中大部分特征都能起作用,而且起的作用很平均,那么使用L2范数更合适。

上一篇:实用:用深度学习方法修复医学图像数据集
下一篇: 贝叶斯机器学习前沿进展
精选推荐
研究人员融合人类与AI的创造力 显著提高了深度学习的表现
研究人员融合人类与AI的创造力 显著提高了深度学习的表现

[2019-10-12]  由加拿大人工智能领域研究主席、滑铁卢大学系统设计工程教授Alexander Wong领导的一个团队开发了一种新型紧凑型神经网络家族,可以在智能 ...

搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站
搭载人工智能的太空机器人CIMON 2乘SpaceX抵达国际空间站

[2019-12-09]  12月5日,搭载人工智能的太空机器人西蒙2号(CIMON 2)乘坐SpaceX火箭Dragon货运舱,从佛罗里达州卡纳维拉尔角空军基地升空,前往国际空间 ...

南加州大学机器人学家:机器人更适合粗暴的爱
南加州大学机器人学家:机器人更适合粗暴的爱

[2019-11-07]  图片来自JOHN MADERE GETTY IMAGES打是疼骂是爱,当人类粗暴的将物体从机器人手中敲掉,看似残忍,实际上却能帮助机器人找到最好的握持物 ...

受大脑控制的机器人
受大脑控制的机器人

[2017-03-21]   想让机器人做我们想做的,首先,他得全面地了解我们。通常,这就意味着人类需要要付出更多。比如,教机器人复杂的人类语言或者把一项任务 ...

亚马逊CEO杰夫·贝佐斯操控巨型有人驾驶机器人(巨型机甲)
亚马逊CEO杰夫·贝佐斯操控巨型有人驾驶机器人(巨型机甲)

[2017-03-21]  近日,亚马逊CEO杰夫·贝佐斯实现了每一个6岁儿童都会有的梦想,他控制了一个巨大的机甲机器人。据国外媒体Verge报道,前天(3月19日),贝 ...

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

科学家从蟑螂获得启发 教机器人更好地走路
科学家从蟑螂获得启发 教机器人更好地走路

[2017-12-11]  Weihmann指出:“我特别感到惊讶的是,动物运动稳定机制的变化与腿部协调的变化是一致的。昆虫的慢运行非常稳定,因为它的重心很低,三条腿总是以协调的方式运动。...

通过对抗性图像黑入大脑
通过对抗性图像黑入大脑

[2018-03-02]  在上面的图片中,左边是一张猫的照片。在右边,你能分辨出它是同一只猫的图片,还是一张看起来相似的狗的图片?这两张图片之间的区别在于, ...

本周栏目热点

盘点全球十大最具影响力的机器人摇篮

[1970-01-01]    人工智能(AI)研究现正迅速发展,如无人驾驶汽车、计算机在《危险边缘》智力竞赛节目中获胜、数字私人助手Siri、GoogleNow和语音助手C ...

深度学习反向传播算法(BP)原理推导及代码实现

[2017-12-19]  分析了手写字数据集分类的原理,利用神经网络模型,编写了SGD算法的代码,分多个epochs,每个 epoch 又对 mini_batch 样本做多次迭代计算。这其中,非常重要的一个步骤,......

如何在机器学习项目中使用统计方法的示例

[2018-07-23]  事实上,机器学习预测建模项目必须通过统计学方法才能有效的进行。在本文中,我们将通过实例介绍一些在预测建模问题中起关键作用的统计学方法。...

Machine Learning-感知器分类算法详解

[2018-05-31]  今天我们来讲解的内容是感知器分类算法,本文的结构如下:什么是感知器分类算法,在Python中实现感知器学习算法,在iris(鸢尾花)数据集上训练一个感知器模型,自适应线性神......

[2017-08-28]  模拟退火(Simulated Annealing,简称SA)是一种通用概率算法,用来在一个大的搜寻空间内找寻命题的最优解。1、固体退火原理:将固体加温 ...