0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习中的正则化的相关知识点

中科院长春光机所 来源:极市平台 作者:极市平台 2021-01-20 15:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。当我们用较为复杂的模型拟合数据时,容易出现过拟合现象,导致模型的泛化能力下降,这时我们就需要使用正则化,降低模型的复杂度。本文总结阐释了正则化的相关知识点,帮助大家更好的理解正则化这一概念。

目录

LP范数

L1范数

L2范数

L1范数和L2范数的区别

Dropout

Batch Normalization

归一化、标准化 & 正则化

Reference

在总结正则化(Regularization)之前,我们先谈一谈正则化是什么,为什么要正则化。

个人认为正则化这个字眼有点太过抽象和宽泛,其实正则化的本质很简单,就是对某一问题加以先验的限制或约束以达到某种特定目的的一种手段或操作。在算法中使用正则化的目的是防止模型出现过拟合。一提到正则化,很多同学可能马上会想到常用的L1范数和L2范数,在汇总之前,我们先看下LP范数是什么鬼。

LP范数

范数简单可以理解为用来表征向量空间中的距离,而距离的定义很抽象,只要满足非负、自反、三角不等式就可以称之为距离。

LP范数不是一个范数,而是一组范数,其定义如下:

48d22580-57b9-11eb-8b86-12bb97331649.png

pp的范围是[1,∞)[1,∞)。pp在(0,1)(0,1)范围内定义的并不是范数,因为违反了三角不等式。

根据pp的变化,范数也有着不同的变化,借用一个经典的有关P范数的变化图如下:

490ab706-57b9-11eb-8b86-12bb97331649.jpg

上图表示了pp从0到正无穷变化时,单位球(unit ball)的变化情况。在P范数下定义的单位球都是凸集,但是当0

那问题来了,L0范数是啥玩意?

L0范数表示向量中非零元素的个数,用公式表示如下:

493d18cc-57b9-11eb-8b86-12bb97331649.png

我们可以通过最小化L0范数,来寻找最少最优的稀疏特征项。但不幸的是,L0范数的最优化问题是一个NP hard问题(L0范数同样是非凸的)。因此,在实际应用中我们经常对L0进行凸松弛,理论上有证明,L1范数是L0范数的最优凸近似,因此通常使用L1范数来代替直接优化L0范数。

L1范数

根据LP范数的定义我们可以很轻松的得到L1范数的数学形式:

497ed852-57b9-11eb-8b86-12bb97331649.png

通过上式可以看到,L1范数就是向量各元素的绝对值之和,也被称为是"稀疏规则算子"(Lasso regularization)。那么问题来了,为什么我们希望稀疏化?稀疏化有很多好处,最直接的两个:

特征选择

可解释性

L2范数

L2范数是最熟悉的,它就是欧几里得距离,公式如下:

49a0c0d4-57b9-11eb-8b86-12bb97331649.png

L2范数有很多名称,有人把它的回归叫“岭回归”(Ridge Regression),也有人叫它“权值衰减”(Weight Decay)。以L2范数作为正则项可以得到稠密解,即每个特征对应的参数ww都很小,接近于0但是不为0;此外,L2范数作为正则化项,可以防止模型为了迎合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力。

L1范数和L2范数的区别

引入PRML一个经典的图来说明下L1和L2范数的区别,如下图所示:

49f52886-57b9-11eb-8b86-12bb97331649.jpg

如上图所示,蓝色的圆圈表示问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于L2范数解范围是圆,所以相切的点有很大可能不在坐标轴上,而由于L1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,L1范数可以导致稀疏解,L2范数导致稠密解。

从贝叶斯先验的角度看,当训练一个模型时,仅依靠当前的训练数据集是不够的,为了实现更好的泛化能力,往往需要加入先验项,而加入正则项相当于加入了一种先验。

L1范数相当于加入了一个Laplacean先验;

L2范数相当于加入了一个Gaussian先验。

如下图所示:

4a7f64ba-57b9-11eb-8b86-12bb97331649.jpg

Dropout

Dropout是深度学习中经常采用的一种正则化方法。它的做法可以简单的理解为在DNNs训练的过程中以概率pp丢弃部分神经元,即使得被丢弃的神经元输出为0。Dropout可以实例化的表示为下图:

4ad6f932-57b9-11eb-8b86-12bb97331649.jpg

我们可以从两个方面去直观地理解Dropout的正则化效果:

在Dropout每一轮训练过程中随机丢失神经元的操作相当于多个DNNs进行取平均,因此用于预测时具有vote的效果。

减少神经元之间复杂的共适应性。当隐藏层神经元被随机删除之后,使得全连接网络具有了一定的稀疏化,从而有效地减轻了不同特征的协同效应。也就是说,有些特征可能会依赖于固定关系的隐含节点的共同作用,而通过Dropout的话,就有效地组织了某些特征在其他特征存在下才有效果的情况,增加了神经网络的鲁棒性。

Batch Normalization

批规范化(Batch Normalization)严格意义上讲属于归一化手段,主要用于加速网络的收敛,但也具有一定程度的正则化效果。

这里借鉴下魏秀参博士的知乎回答中对covariate shift的解释(https://www.zhihu.com/question/38102762)。

注:以下内容引自魏秀参博士的知乎回答

大家都知道在统计机器学习中的一个经典假设是“源空间(source domain)和目标空间(target domain)的数据分布(distribution)是一致的”。如果不一致,那么就出现了新的机器学习问题,如transfer learning/domain adaptation等。而covariate shift就是分布不一致假设之下的一个分支问题,它是指源空间和目标空间的条件概率是一致的,但是其边缘概率不同。大家细想便会发现,的确,对于神经网络的各层输出,由于它们经过了层内操作作用,其分布显然与各层对应的输入信号分布不同,而且差异会随着网络深度增大而增大,可是它们所能“指示”的样本标记(label)仍然是不变的,这便符合了covariate shift的定义。

BN的基本思想其实相当直观,因为神经网络在做非线性变换前的激活输入值(X=WU+BX=WU+B,UU是输入)随着网络深度加深,其分布逐渐发生偏移或者变动(即上述的covariate shift)。之所以训练收敛慢,一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值X=WU+BX=WU+B是大的负值或正值),所以这导致后向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因。而BN就是通过一定的规范化手段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布,避免因为激活函数导致的梯度弥散问题。所以与其说BN的作用是缓解covariate shift,倒不如说BN可缓解梯度弥散问题。

归一化、标准化 & 正则化

正则化我们以及提到过了,这里简单提一下归一化和标准化。

归一化(Normalization):归一化的目标是找到某种映射关系,将原数据映射到[a,b]区间上。一般a,b会取[−1,1],[0,1]这些组合。

一般有两种应用场景:

把数变为(0, 1)之间的小数

把有量纲的数转化为无量纲的数

常用min-max normalization:

4b354f32-57b9-11eb-8b86-12bb97331649.png

标准化(Standardization):用大数定理将数据转化为一个标准正态分布,标准化公式为:

4b5dd308-57b9-11eb-8b86-12bb97331649.png

归一化和标准化的区别:

我们可以这样简单地解释:

归一化的缩放是“拍扁”统一到区间(仅由极值决定),而标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。

值得注意:

归一化:缩放仅仅跟最大、最小值的差别有关。

标准化:缩放和每个点都有关系,通过方差(variance)体现出来。与归一化对比,标准化中所有数据点都有贡献(通过均值和标准差造成影响)。

为什么要标准化和归一化?

提升模型精度:归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

加速模型收敛:标准化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。如下图所示:

4b958a3c-57b9-11eb-8b86-12bb97331649.png

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4422

    浏览量

    67832
  • 神经元
    +关注

    关注

    1

    文章

    369

    浏览量

    19193
  • 机器学习
    +关注

    关注

    67

    文章

    8562

    浏览量

    137211

原文标题:一文读懂机器学习中的正则化

文章出处:【微信号:cas-ciomp,微信公众号:中科院长春光机所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    示波器小知识点

    示波器的系统带宽:是指一个逐渐升高频率的正弦输入信号显示幅度下降3dB时的频率。测试信号一般是方波,而方波信号由基波及奇次谐波组成。如果用示波器去测一个方波,需要注意示波器应从频率上能够测量到它
    的头像 发表于 04-16 11:04 81次阅读
    示波器小<b class='flag-5'>知识点</b>

    【黑金云课堂笔记】第三期知识点总结

    ,对 FPGA 免费直播课的热情也感染到了黑金云课堂的老师们。接下来我们会再接再厉,把每一期直播都做得更扎实   更多精彩课程欢迎关注我们 黑金云课堂全年免费直播课 ,现在让我们先来回顾一下上周的知识点精华——   数据类型 常量 进制表示:二进制(b/B)、八进制(o/
    的头像 发表于 04-01 16:08 172次阅读
    【黑金云课堂笔记】第三期<b class='flag-5'>知识点</b>总结

    手把手教你学51单片机-C语言版

    则是尽可能的先举例子,建立起鲜活的形象,然后去探求其中的奥秘,逐一解释例程的每个知识点的原理,这样会非常有利于对于例程的理解。 3、细致讲解,形象比喻 自然万物都是相通的,单片机也不例外。其实
    发表于 03-05 11:47

    算法工程师需要具备哪些技能?

    :自动任务(如数据预处理、模型训练调度)。Git版本控制:团队协作开发(如分支管理、代码合并)。 机器学习监督学习:线性回归、逻辑回归、决策树、SVM等。无监督
    发表于 02-27 10:53

    机器学习和深度学习需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习和深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不理,日后可能会引发诸多麻烦!只要我们密切关注
    的头像 发表于 01-07 15:37 347次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b><b class='flag-5'>中</b>需避免的 7 个常见错误与局限性

    单片机学习的8个知识点分享

    1、上拉电阻的选择 在单片机电路,上拉电阻的选择是很重要,它能够提高电路的驱动能力和稳定性,同时也能保护内部电路免受外部干扰。选择合适的上拉电阻需要考虑以下因素: ①电阻值:上拉电阻的电阻值需要
    发表于 11-20 07:58

    AI 驱动三维逆向:云降噪算法工具与机器学习建模能力的前沿应用

    在三维逆向工程领域,传统方法在处理复杂数据和构建高精度模型时面临诸多挑战。随着人工智能(AI)技术的发展,云降噪算法工具与机器学习建模能力的应用,为三维逆向工程带来了创新性解决方案,显著提升
    的头像 发表于 08-20 10:00 859次阅读
    AI 驱动三维逆向:<b class='flag-5'>点</b>云降噪算法工具与<b class='flag-5'>机器</b><b class='flag-5'>学习</b>建模能力的前沿应用

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】+基础概念学习理解

    指导。 三、读后感 这本书内容丰富且实用,完全可以当作我的工具书。当项目中涉及到相关知识时,我能够快速从中找到常用的知识点,为解决实际问题提供有力的支持。
    发表于 08-04 22:29

    FPGA在机器学习的具体应用

    ,越来越多地被应用于机器学习任务。本文将探讨 FPGA 在机器学习的应用,特别是在加速神经网
    的头像 发表于 07-16 15:34 3089次阅读

    最新人工智能硬件培训AI基础入门学习课程参考2025版(离线AI语音视觉识别篇)

    视觉开发板开箱即用的离线AI能力,分类列出学习课程知识点和实操参考,希望能够帮助大家快速掌握离线 AI 智能硬件的基础知识与实战技能,同时了解相关AI技术在实际场景的应用情况。正文按入
    发表于 07-04 11:14

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01初读体验

    书的心得体会,获取阅读重点等信息。 推荐序知识点 从推荐序,可以获得以下知识点: 这本书的学习过程可以实操,没有硬件条件的可以使用qem
    发表于 06-30 21:49

    使用MATLAB进行无监督学习

    无监督学习是一种根据未标注数据进行推断的机器学习方法。无监督学习旨在识别数据隐藏的模式和关系,无需任何监督或关于结果的先验
    的头像 发表于 05-16 14:48 1596次阅读
    使用MATLAB进行无监督<b class='flag-5'>学习</b>

    C51单片机及C语言知识点必备秘籍

    单片机关键知识点一览: 系列一 1:单片机简叙 2:单片机引脚介绍 3:单片机存储器结构 4:第一个单片机小程序 5:单片机延时程序分析 6:单片机并行口结构 7:单片机的特殊
    发表于 05-15 14:00

    电机选型计算公式与知识点汇总

    纯分享帖,需要者可点击附件获取完整资料~~~*附件:电机选型计算公式与知识点汇总.pdf 【免责声明】内容转自今日电机,因转载众多,无法确认真正原始作者,故仅标明转载来源。版权归原出处所有,纯分享帖,侵权请联系删除内容以保证您的权益。
    发表于 04-29 16:10

    汽车电子的关键车规质量标准

    在之前的文章《汽车质量标准初阶入门:哪些认证标准与我们息息相关,我们探讨了当时的车规质量标准。自那时起,汽车市场获得了长足发展,电子设备在车辆内外扮演的角色愈发重要。本文重新审视了这一主题并更新了相关
    的头像 发表于 04-24 15:13 1636次阅读
    汽车电子<b class='flag-5'>中</b>的关键车规质量标准