前言

本文讨论了机器学习中正则化这个话题,对于L1正则项为什么稀疏也是面试中经常涉及的。

概要

正则化是机器学习中防止过拟合的一种重要技术。从数学上讲,它增加了一个正则化项,以防止系数如此完美地拟合而过度拟合。

为什么需要正则化

定义样本,为样本空间,模型函数,故预测值为,损失函数为。因此机器学习的训练过程可以转换为一个在泛函空间内,找到一个使得全局损失最小的模型,此时的损失函数又叫做「经验风险」(empirical risk),即损失函数的期望:

但上述损失函数只考虑了训练集上的经验风险,会出现过拟合的现象。为什么会出现过拟合?因为「模型参数过多或者结构过于复杂」。故我们需要一个函数来「描述模型的复杂程度」,即,也就是机器学习中常说到的「正则化项」(regularizer)。为了对抗过拟合,我们需要结合损失函数和正则化项,使他们的和最小,就可以将经验风险最小化问题转化为结构风险最小化,即机器学习中定义的「目标函数」(objective function):

其中,目标函数,用于控制正则项的参数。若模型过度复杂使得更小,但正则化项却更大,总体的目标函数值不一定会降低。所以,总结来说,「正则化项起到了平衡偏差与方差的作用」

以上便是以机器学习的角度,来讲述为什么需要正则化。总的来说主要是在原有的损失中加入描述模型复杂度的项,将经验风险(损失函数)转化为结构风险(目标函数),「综合考虑模型预测与真实的差距和模型复杂度」,以达到抑制过拟合的作用。接下来将具体的讲述范数与正则化的关系。

范数

一般来说,「损失函数是一个具有下确界的函数」,当预测值与真实值足够接近时,则损失值也会越接近下确界,这保证我们可以求出模型的最优解。当我们加入正则化项,变成目标函数,则也需要能够进行最优化求解。这也就要求「正则化项也应该是一个具有下确界的函数」,而范数则很好的满足了这个条件。

范数(norm):是具有“长度”概念的函数。简单来说,就是将向量投影到的值。

我们假设某向量为,范数满足长度的三条基本性质:

  • 非负性:;

  • 齐次性:

  • 三角不等式:

因此,范数也是一个具有下确界的函数,这是由「非负性和齐次性」所保证的。这一特性使得-范数天然适合做正则项,因为目标函数仍可用梯度下降等方式求解最优化问题。-范数作为正则项时被称为-正则项。

范数的非负性保证了范数有下界。当齐次性等式中的取零时可知,零向量的范数是零,这保证了范数有下确界。

-范数定义如下:

其中,应用较多的是范数(Taxicab distance,也称曼哈顿距离)、范数(欧几里得距离)。两者的区别,简单用一幅曼哈顿街道图来说明:

范数对应的是两点之间的移动,有多个解,而范数是欧几里得距离,关于如何最快到达两点之间总是有一个正确答案。

接下来介绍范数对应的正则化项,首先从正则化开始。

正则化项

以下对进行描述。其中,这里讨论的稀疏性只从最能理解的【导数的角度】进行解释。当然最为常见的应该是从优化的角度,还有一种是从概率论的角度(正则项相当于为加入拉普拉斯分布的先验,正则项相当于加入高斯分布的先验),具体见[3]。

正则化

我们简单定义一个线性模型:

其中,为样本的个数,为特征的个数,。

当训练集中存在统计噪声时(这里我们假设一种可能会发生过拟合的条件),冗余的特征可能会成为过拟合的来源。

统计噪声:指的是某些特征为统计特征,如均值、求和、标准差等。它们加入在特征中,会在一定程度上加快模型的收敛,但它们也同样可以在一个线性模型中得到,对于统计噪声,模型无法从有效特征当中提取信息进行拟合,故而会转向冗余特征。

为了对抗过拟合,如上述所说,我们可以通过降低模型的复杂度。最简单的方法就是令某些学习到的特征参数为0,即。因此,可以引入-范数。

-范数:指的是向量中不为0的个数。

-正则项为:

通过引入-正则项,则对原优化过程加入了一种我们常说的「惩罚机制」:当优化算法希望增加模型复杂度(此处特指将原来为零的参数更新为非零的情形)以降低模型的经验风险(即降低损失函数的)时,在结构风险上进行大小为(因为增加了1个非零参数)。由于结构风险(目标函数)是综合考虑损失函数和正则化项,「若当增加模型复杂度在经验风险的收益不足时,则结构化风险依旧会上升,而此时优化算法也会拒绝此更新」

引入-正则化项会使模型参数稀疏化,使得模型易于解释。但是正常机器学习中并不使用-正则化项,因为它有无法避免的问题:非连续、非凸、不可微。所以,我们引入了-范数。

正则项

-正则项(亦称LASSO-正则项)为:

目标函数为:

我们对目标函数进行对求偏导,计算其梯度:

sgn:符号函数,

如下图所示【简单起见,仅有一个参数组成】:

故参数更新为:

可以观察最后项,我们发现它始终让(,为负,,为正),因此L1正则化将「以相同的步长」(注意这里)将任何权重移向0,而不管权重的值是多少。所以可以「实现参数稀疏化」

对于上图,我们忽略原损失函数对参数的梯度,当,,迭代多次,发现最终。

所以正则项的特点是:

  • 不容易计算,在零点连续但不可导,需要分段求导;

  • L1可以将一些权值缩小到零(稀疏),所以是一个天然的「特征选择器」

  • 由于它可以提供稀疏的解决方案,因此通常是「建模特征数量巨大时的首选正则项」。在这种情况下,获得稀疏解决方案具有很大的计算优势,因为可以简单地忽略具有零系数的特征。它任意选择高度相关的特征中的任何一个,并将其余特征对应的系数减少到零。

  • L1范数函数对异常值更具抵抗力。

正则项

如上图所示,我们发现,当模型发生过拟合时,模型相对于其他模型,曲线函数更加的弯曲,这说明在「局部弯曲的部分,切线斜率特别大」,(即模型导数的绝对值特别大),对于整个模型来说,我们可以理解为所有的参数的绝对值之和特别大【梯度计算】。因此,如果我们有办法「使得这些参数的值,比较稠密均匀地集中在零附近」,就能有效地抑制过拟合。于是,便引入了范数。

-正则项为:

目标函数为:

对求偏导:

故参数更新为:

我们可以通过调整学习率和正则化参数,使得为0~1之间的数,从而衰减的权重,所有的参数接近于0,从而抑制过拟合。

如上图所示,解释了为什么不会像那样产生稀疏解,而只是让权值接近0(当权值接近0时,它会采取越来越小的步骤)。

正则项的特点是:

  • 容易计算,可导,适合基于梯度的方法将一些权值缩小到接近0;

  • 相关的预测特征对应的系数值相似当特征的数量巨大时,计算量会比较大;

  • 对outliers(异常值)非常敏感;

  • 相对于L1正则化会更加精确;

参考资料

[1] https://www.kaggle.com/residentmario/l1-norms-versus-l2-norms

[2] https://stats.stackexchange.com/questions/45643/why-l1-norm-for-sparse-models

[3] https://www.zhihu.com/question/37096933/answer/475278057


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
本站qq群851320808,加入微信群请扫码:

【机器学习基础】范数与正则化相关推荐

  1. 机器学习基础-23:矩阵理论(L0/L1/L2范数等)

    机器学习基础-23:矩阵理论(L0/L1/L2范数等) 机器学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 线性代数是数学的一个分支,广泛应用于科学和工程领域.线性代数和矩阵理论是机器学 ...

  2. 【机器学习基础】数学推导+纯Python实现机器学习算法14:Ridge岭回归

    Python机器学习算法实现 Author:louwill 上一节我们讲到预防过拟合方法的Lasso回归模型,也就是基于L1正则化的线性回归.本讲我们继续来看基于L2正则化的线性回归模型. L2正则化 ...

  3. 【机器学习基础】数学推导+纯Python实现机器学习算法13:Lasso回归

    Python机器学习算法实现 Author:louwill 第13讲和第14讲我们来关注一下回归模型的两个变种模型.本节我们要介绍的是基于L1正则化的Lasso模型,下一节介绍基于L2正则化的Ridg ...

  4. 神经网络——机器学习基础

    机器学习基础 本章会将你对这些问题的直觉固化为解决深度学习问题的可靠的概念框架.我们将把所有这些概念--模型评估.数据预处理.特征工程.解决过拟合--整合为详细的七步工作流程,用来解决任何机器学习任务 ...

  5. 2020-1-29 深度学习笔记5 - 机器学习基础(构建机器学习算法)

    第5章 机器学习基础 官网 学习算法 机器学习算法是一种能够从数据中学习的算法. 所谓学习是指,对于某类任务T和性能度量P,一个计算机程序被认为可以从经验E中学习是指,通过经验E改进后,它在任务T上由 ...

  6. 机器学习基础与实践(二)----数据转换

    ------------------------------------本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢!-------------- ...

  7. 花书笔记:第05章 机器学习基础

    花书笔记:第 05 章 机器学习基础 5.1 机器学习算法 机器学习算法定义: 对于某类任务 TTT ,和性能度量 PPP ,一个计算机程序被认为可以从经验 EEE 中学习是指,通过经验 EEE 改进 ...

  8. 机器学习基础(四):特征选择与稀疏学习

    4.特征选择与稀疏学习 对一个学习任务来说,给定属性集,其中有些属性可能很关键.很有用,另一些则可能没什么用.将属性称为特征feature,则对当前学习任务有用的属性称为相关特征relevant fe ...

  9. 资源 | Intel发布AI免费系列课程3部曲:机器学习基础、深度学习基础以及TensorFlow基础

    翻译 | AI科技大本营(公众号ID:rgznai100) 校对 | 成龙 编辑 | 明明 Intel于近期发布了三门AI系列的免费课程,分别是关于机器学习基础.深度学习基础.TensorFlow基础 ...

最新文章

  1. linux 文件访问控制 特殊权限 suid,sgid,sbit
  2. Problem 63 何时该用glDrawTexiOES?
  3. 鸿蒙10.1升级机型,鸿蒙系统的前奏,华为EMUI10.1从底层掏空安卓,20款老机型升级...
  4. FFmpegInterop 库在 Windows 10 应用中的编译使用
  5. Kafka团队修改KSQL开源许可,怒怼云厂商
  6. Linux mkdir 命令创建多级目录
  7. Archive object standard check
  8. MySQL5.7数据库软件下载教程
  9. 免费使用3天!52CV GPU云大促,疫情期间做深度学习的首选!
  10. 小米手机困境,米粉伤心,黄牛伤钱
  11. python读取多行函数_Python3基础 __doc__ 单行与多行函数文档
  12. CCF NOI1003 猜数游戏
  13. 在RedHat下安装MPlayer
  14. VS2015中OpenCV编程插件Image Watch安装和使用介绍
  15. linux tricks 之数据对齐。
  16. C++:数组的输入、排序与去重操作
  17. android报警声音
  18. 车载android播放器,KX万能播放器
  19. 中科大最新Nature Communications!这样的水净化谁不爱?
  20. word中生成带方块的对勾

热门文章

  1. js入门·表单详解一(修改表单属性,修改表单元素值)
  2. 解释型语言与编译型语言
  3. ABP 拦截器不工作
  4. Tomcat 直接使用端口号访问项目
  5. PHP+JQuery实现ajax跨域
  6. Linux 学习笔记之超详细基础linux命令 Part 3
  7. Spring REST
  8. How to remove the dotted border on Active link state---移除链接激活时出现的虚线
  9. mysql中文注释语法报错_Linux系统Python配置MySQL详细教程
  10. Vue+flask前后端开发