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

机器学习之——正则化

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

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

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

什么是正则化?

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

上面的式子就是结构风险最小化策略的通用表达式,其中第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范数更合适。

上一篇:实用:用深度学习方法修复医学图像数据集
下一篇: 贝叶斯机器学习前沿进展
精选推荐
MIT最新“人机”互连系统 让双腿机器人复制人体技能
MIT最新“人机”互连系统 让双腿机器人复制人体技能

[2019-11-01]  MIT的小爱马仕想借用你的大脑 ,图片来自: João Ramos爱吧机器人网消息,麻省理工学院(MIT)的研究人员展示了一种新型遥操作系 ...

基于生物启发的机器人很容易适应丢失附属器官
基于生物启发的机器人很容易适应丢失附属器官

[2017-12-17]  很多机器人被设计应用在危险环境,如灾难现场。在这些地方,他们的运动系统完全有可能被损坏。那这样会吓跑这些机器人吗?也许不是,如果它们像日本的东北和北海道大学创造的......

揭秘达芬奇手术机器人
揭秘达芬奇手术机器人

[2018-04-19]  达芬奇手术系统是由美国Intuitive Surgical公司制造的机器人手术系统。美国食品和药物管理局(FDA)于2000年通过该标准,旨在利用微创手段 ...

2022年全球工业机器人市场将达到790亿美元
2022年全球工业机器人市场将达到790亿美元

[2017-09-04]  预计到 2022年, 全球工业机器人市场将达到790亿美元, 并在预测期内登记11 5% 的复合年增长率。随着发展中国家中小型企业需求的不断增长, 采用自动化技术以确保生产质量......

这个外科手术机器人可以为患者“量身定制”
这个外科手术机器人可以为患者“量身定制”

[2019-07-12]  世界首创,来自澳大利亚机器人视觉研究中心的研究人员正在推动手术机器人的发展边界,他们创造了可定制的、小型化的手术机器人,能够唯一地 ...

一个让深度学习惨败的通用人工智能领域——语境处理
一个让深度学习惨败的通用人工智能领域——语境处理

[2019-11-04]  Context是指用来解释一段给定文本或语句的来源框架,我们可以翻译为上下文或语境。维基百科将context定义为:*在符号学、语言学、社会学和 ...

麻省理工又秀神技:推出如魔法般跳跃的方块机器人集群
麻省理工又秀神技:推出如魔法般跳跃的方块机器人集群

[2019-10-31]  几天前,小编向大家介绍过麻省理工(MIT)研发的一种自组装机器人集群(点此阅览),它们可以用统一标准的小单元自动组装出各种大型结构。 ...

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

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

本周栏目热点

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

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

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

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

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

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

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

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

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