正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。

一、数学基础

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时的正态分布是标准正态分布。

高斯分布的概率密度函数

还有涉及极大似然估计、概率论相关的先验和后验相关概率, 为了控制篇幅, 本文就不详细介绍, wiki百科和百度百科都讲得很清楚。

二、正则化解决过拟合问题

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

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

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

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

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

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

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

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

  • 假设1: w参数向量服从高斯分布
    以下为贝叶斯最大后验估计推导:

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

  • 假设2: w参数服从拉普拉斯分布
    以下为贝叶斯最大后验估计推导:

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

L1和L2正则化的比较

为了帮助理解,我们来看一个直观的例子:假定x仅有两个属性,于是无论岭回归还是Lasso接触的w都只有两个分量,即w1,w2,我们将其作为两个坐标轴,然后在图中绘制出两个式子的第一项的”等值线”,即在(w1,w2)空间中平方误差项取值相同的点的连线。再分别绘制出L1范数和L2范数的等值线,即在(w1,w2)空间中L1范数取值相同的点的连线,以及L2范数取值相同的点的连线(如下图所示)。

L1正则化比L2正则化更易于得到稀疏解

岭回归与Lasso的解都要在平方误差项与正则化项之间折中,即出现在图中平方误差项等值线与正则化项等值线相交处。而由上图可以看出,采用L1范数时平方误差项等值线与正则化项等值线的交点常出现在坐标轴上,即w1或w2为0,而在采用L2范数时,两者的交点常出现在某个象限中,即w1或w2均非0。

这说明了岭回归的一个明显缺点:模型的可解释性。它将把不重要的预测因子的系数缩小到趋近于 0,但永不达到 0。也就是说,最终的模型会包含所有的预测因子。但是,在 Lasso 中,如果将调整因子 λ 调整得足够大,L1 范数惩罚可以迫使一些系数估计值完全等于 0。因此,Lasso 可以进行变量选择,产生稀疏模型。注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是求解L1范数正则化的结果时得到了仅采用一部分初始特征的模型;换言之,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程和学习器训练过程融为一体,同时完成。

总结

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

作者:suwi
链接:https://www.jianshu.com/p/c9bb6f89cfcc

转载于:https://www.cnblogs.com/USTC-ZCC/p/10123610.html

L1、L2正则化详解相关推荐

  1. 【机器学习】L1正则化与L2正则化详解及解决过拟合的方法

    在详细介绍L1与L2之前,先讲讲正则化的应用场景. 正则化方法:防止过拟合,提高泛化能力 所谓过拟合(over-fitting)其实就是所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越, ...

  2. L1正则化与L2正则化详解

    L1.L2正则化 什么是正则化? L1.L2正则化公式 正则化的作用 为什么加入L1正则化的模型会更稀疏 1.梯度视角 2.解空间形状视角 为何黄色区域为解空间? 3.函数叠加视角 为何L1正则化可将 ...

  3. 【L1正则化与L2正则化详解及为什么L1和L2正则化可防止过拟合】

    一.为什么L1和L2正则化可防止过拟合? 线性模型常用来处理回归和分类任务,为了防止模型处于过拟合状态,需要用L1正则化和L2正则化降低模型的复杂度,很多线性回归模型正则化的文章会提到L1是通过稀疏参 ...

  4. tikhonov正则化 matlab_4 L1和l2正则化详解(花书7.1 参数范数惩罚)

    7.1 参数范数惩罚 许多正则化方法通过对目标函数 添加一个 参数范数惩罚 ,限制模型(如神经网络.线性回归和逻辑回归)的学习能力.将正则化后的目标函数记为: 其中 是权衡范数惩罚项 和标准目标函数 ...

  5. 手推公式带你轻松理解L1/L2正则化

    文章目录 前言 L1/L2正则化原理 从数学的角度理解L1/L2正则化 从几何的角度理解L1/L2正则化 L1/L2正则化使用情形 前言 L1/L2正则化的目的是为了解决过拟合,因此我们先要明白什么是 ...

  6. 关于范数与正则化详解(转)

    L0范数是指向量中非0的元素的个数. L1范数是指向量中各个元素绝对值之和,也有个美称叫"稀疏规则算子"(Lasso regularization). L2范数是指向量各元素的平方 ...

  7. L1 L2 正则化区别

    文章一 文章二 机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit).即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力.为了避免过拟合,最常用的 ...

  8. L1,L2正则化分析

    1. 优化角度分析 1).L2正则化的优化角度分析 在限定的区域,找到使 最小的值. 图形表示为: 上图所示,红色实线是正则项区域的边界,蓝色实线是 的等高线,越靠里的等高圆, 越小,梯度的反方向是 ...

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

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

最新文章

  1. 1万粉的小红书kol报价_小红书母婴博主资源怎么找?小红书母婴种草软文撰写技巧分享!...
  2. AI模型变身文豪:“看懂”新闻报道,命名图片更有文采
  3. 【CodeForces - 289C】Polo the Penguin and Strings (水题,字符串,思维构造,有坑)
  4. 简述计算机文件的命名办法,如何进行文件命名-如何进行文件管理
  5. vue keepalive 动态设置缓存
  6. Python使用两个Event对象同步生产者消费者问题
  7. html评论和回复评论_佟丽娅“挑衅”贾玲,评论区晒刘德华合照,贾玲高情商回复佩服...
  8. 周围剃光头顶留长发型_?22岁亿万富翁凯莉登杂志,顶着5斤“鸟窝头”凹造型,绝代艳后...
  9. 2021年的第一本书,就从这里选
  10. Javascript特效:tab标签
  11. android:gravity与android:layout_gravity的区别,以及代码设置对应属性
  12. eclipse安装插件速度很慢的解决方案
  13. 全国所有省份行政区域名标准(全国省份2字母拼音缩写标准参考)
  14. 抖音SEO优化源码,抖音搜索排名系统,矩阵同步分发。
  15. 从USGS Earth Explorer网站查找和下载MODIS数据
  16. vue使用 svg图片以及修改svg图片颜色
  17. 零跑C11斩获大奖,带来了极致的挑战
  18. python 安装问题
  19. NLP(三十九)使用keras-bert实现完形填空及简单的文本纠错功能
  20. let和const以及箭头函数

热门文章

  1. 我来发美食啦,馋一下各位看官
  2. java学习与总结:集合类
  3. ARM学习方法大杂烩,高手经验之谈,内容完全来自互联网
  4. 聊聊职场那些事儿(转)
  5. Django多进程中的查询错乱问题以及mysql gone away问题
  6. php lock sh,php文件加锁 lock_sh ,lock_ex
  7. mysql md_MySQL主从.md
  8. 包区别 版本_详解Linux下二进制包、源代码包、rpm包区别与联系
  9. f12获取网页文本_怎么获取网页源代码中的文件?
  10. hive读取hdfs存放文件_Hive基本概念