1、范数

范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小。范数的一般化定义:对实数p>=1, 范数定义如下:

  • L1范数
    当p=1时,是L1范数,其表示某个向量中所有元素绝对值的和。
  • L2范数
    当p=2时,是L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式。

2、拉普拉斯分布

如果随机变量的概率密度函数分布为:

那么它就是拉普拉斯分布。其中,μ 是数学期望,b > 0 是振幅。如果 μ = 0,那么,正半部分恰好是尺度为 1/2 的指数分布。

3、高斯分布

又叫正态分布,若随机变量X服从一个数学期望为μ、标准方差为σ2的高斯分布,记为:X∼N(μ,σ2),其概率密度函数为:

其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

4、正则化详解

正则化通过降低模型的复杂性, 达到避免过拟合的问题。 正则化是如何解决过拟合的问题的呢?从网上找了很多相关文章, 下面列举两个主流的解释方式。

原因1:来自知乎上一种比较直观和简单的理解, 模型过于复杂是因为模型尝试去兼顾各个测试数据点, 导致模型函数如下图,处于一种动荡的状态, 每个点的到时在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

而加入正则能抑制系数过大的问题。如下公式, 是岭回归的计算公式。

如果发生过拟合, 参数θ一般是比较大的值, 加入惩罚项后, 只要控制λ的大小,当λ很大时,θ1到θn就会很小,即达到了约束数量庞大的特征的目的。

原因二:从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。 L1正则是拉普拉斯先验,L2是高斯先验。整个最优化问题可以看做是一个最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计。
给定训练数据, 贝叶斯方法通过最大化后验概率估计参数θ:

说明:P(θ)是参数向量θ的先验概率。

下面我们从最大后验估计(MAP)的方式, 推导下加入L1和L2惩罚项的Lasso和岭回归的公式。
首先我们看下最小二乘公式的推导(公式推导截图来自知乎大神)

这个是通过最大似然估计的方法, 推导出线性回归最小二乘计算公式。

最终的公式就是岭回归计算公式。与上面最大似然估计推导出的最小二乘相比,最大后验估计就是在最大似然估计公式乘以高斯先验, 这里就理解前面L2正则就是加入高斯先验知识

最终的公式就是Lasso计算公式。与上面最大似然估计推导出的最小二乘相比,最大后验估计就是在最大似然估计公式乘以拉普拉斯先验, 这里就理解前面L1正则就是加入拉普拉斯先验知识

5、L1和L2正则化的直观理解

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0. 通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

这部分内容将解释为什么L1正则化可以产生稀疏模型(L1是怎么让系数等于零的),以及为什么L2正则化可以防止过拟合

假设有如下带L1正则化的损失函数:

其中是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。注意到L1正则化是权值的绝对值之和,J是带有绝对值符号的函数,因此J是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数J0后添加L1正则化项时,相当于对J0做了一个约束。令L=α∑w|w|,则J=J0+L,此时我们的任务变成在L约束下求出J0取最小值的解。考虑二维的情况,即只有两个权值w1和w2,此时L=|w1|+|w2|对于梯度下降法,求解J0的过程可以画出等值线,同时L1正则化的函数L也可以在w1w2的二维平面上画出来。如下图:

图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。上图中J0与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。

而正则化前面的系数α,可以控制L图形的大小。α越小,L的图形越大(上图中的黑色方框);α越大,L的图形就越小,可以小到黑色方框只超出原点范围一点点,这是最优点的值(w1,w2)=(0,w)中的w可以取到很小的值。

类似,假设有如下带L2正则化的损失函数:

同样可以画出他们在二维平面上的图形,如下:

二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。

6、选择L2正则项的原因

给损失函数加上的正则化项可以有多种形式,下面给出了正则化的一般形式:

不同函数值图像对应的等高线(即俯视图)为

7、总结

  1. L2 regularizer :使得模型的解偏向于范数较小的 W,通过限制 W 范数的大小实现了对模型空间的限制,从而在一定程度上避免了 overfitting 。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。
  2. L1 regularizer :它的优良性质是能产生稀疏性,导致 W 中许多项变成零。 稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。

正则化与L0、L1、L2范数祥解相关推荐

  1. 正则化与L0,L1,L2范数简介

    参考:机器学习中的范数规则化之(一)L0.L1与L2范数 1. 常见的范数 1.1 L0 范数 向量中非零元素的个数,即稀疏度,适合稀疏编码,特征选择. 1.2 L1 范数 又叫曼哈顿距离或最小绝对误 ...

  2. 浅谈L0,L1,L2范数及其应用

    原文传送门:浅谈L0,L1,L2范数及其应用 浅谈L0,L1,L2范数及其应用 在线性代数,函数分析等数学分支中,范数(Norm)是一个函数,其赋予某个向量空间(或矩阵)中的每个向量以长度或大小.对于 ...

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

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

  4. L0,L1,L2范数

    http://blog.csdn.net/zouxy09/article/details/24971995

  5. Lasso回归系列三:机器学习中的L0, L1, L2, L2,1范数

    L0, L1, L2, L2,1范数 机器学习中的范数定义不同于数学中的定义. 对于向量xxx (x=[x1,x2,x3,...xm]x=[x_1,x_2,x_3,... x_m]x=[x1​,x2​ ...

  6. 机器学习中的规则化范数(L0, L1, L2, 核范数)

    今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个 ...

  7. L0,L1,L2正则化浅析

    在机器学习的概念中,我们经常听到L0,L1,L2正则化,本文对这几种正则化做简单总结. 1.概念 L0正则化的值是模型参数中非零参数的个数. L1正则化表示各个参数绝对值之和. L2正则化标识各个参数 ...

  8. L0/L1/L2/无穷范数

    L0范数:向量中非零元素的个数 L1范数:向量中各个元素绝对值的和 L2范数:向量中元素平方的和,再开方:即向量的模长 无穷范数:向量中各个元素绝对值的最大值 关于范数,有个好文章:http://bl ...

  9. 机器学习中的范数理解(L0,L1,L2)

    监督机器学习就是规则化参数的同时最小化误差. 有监督学习的样本都是带有标签的样本,用 yyy 来表示样本的标签,我们通过算法来提取样本特征并对其进行分类或回归,得到结果 y1=WTx" ro ...

最新文章

  1. Python3中collections.OrderedDict介绍
  2. R数据可视化 火山图
  3. Python Tensorflow神经网络实现股票预测
  4. 如何确认与服务器偏差_货架如何正确验收
  5. pymsql 与 SQLAlchemy 操作数据库的区别
  6. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))
  7. 【转】基于jquery,bootstrap数据验证插件bootstrapValidator 教程
  8. java 程序增加 防盗_防盗Java EE –保护Java EE企业应用程序的安全
  9. 谷歌浏览器如何设置flash访问权限
  10. CVPR2017精彩论文解读:用于生物医学图像分析的精细调节卷积神经网络
  11. 一个简单的EXCEL 导入SQL 的例子
  12. Windows 的驱动程序签名要求
  13. 用c语言实现数字时钟课程设计,基于C51单片机的数字时钟课程设计(C语言,带闹钟).doc...
  14. 中国虾养殖和捕捞现状分析,养殖产量成上升趋势「图」
  15. NetworkManager和network
  16. U盘病毒 System Volume Information.exe删不掉
  17. Teredo 原理概述-IPv6隧道技术
  18. 宝刀——《荒原的呼唤》选载之一
  19. 存储卡的相关标准.CF.SD.SDHC.MMC.TF
  20. 四维空间的二维线框投影可视化(附matlab代码)

热门文章

  1. a challengefor the 2 hour course
  2. 正如孙正义的时间机器的理论
  3. 【转】【Unity+Lua】实测如何性能优化(Lua和C#交互篇)
  4. cf-Global Round2-C. Ramesses and Corner Inversion(思维)
  5. clustered index disadvantages in mysql
  6. iOS自动化打包之重签名导出不同证书ipa探索
  7. jquery改变css,改变style
  8. exchange系列(四)如何保护exchange邮件服务器的安全
  9. 微信公众平台开发(55)刮刮乐
  10. 条件语句:case语句