Laplace(拉普拉斯)先验与L1正则化

在之前的一篇博客中L1正则化及其推导推导证明了L1正则化是如何使参数稀疏化人,并且提到过L1正则化如果从贝叶斯的观点看来是Laplace先验,事实上如果从贝叶斯的观点,所有的正则化都是来自于对参数分布的先验。现在来看一下为什么Laplace先验会导出L1正则化,也顺便证明Gauss(高斯)先验会导出L2正则化。

最大似然估计

很多人对最大似然估计不明白,用最简单的线性回归的例子来说:如果有数据集\((X, Y)\),并且\(Y\)是有白噪声(就是与测量得到的\(Y\)与真实的\(Y_{real}\)有均值为零的高斯分布误差),目的是用新产生的\(X\)来得到\(Y\)。如果用线性模型来测量,那么有:

\[
f(X) = \sum_i(x_i\theta_i) + \epsilon = X\theta^T + \epsilon \tag{1.1}
\]

其中\(X=(x_1, x_2...x_n)\),\(\epsilon\)是白噪声,即\(\epsilon - N(0, \delta^2)\)。那么于一对数据集\((X_i, Y_i)\)来用,在这个模型中用\(X_i\)得到\(Y_i\)的概率是\(Y_i - N(f(X_i), \delta^2)\):

\[
P(Y_i|X_i, \theta) = \frac{1}{\epsilon\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2}) \tag{1.2}
\]

假设数据集中每一对数据都是独立的,那么对于数据集来说由\(X\)得到\(Y\)的概率是:

\[
P(Y|X,\theta)= \prod_i\frac{1}{\epsilon\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2}) \tag{1.3}
\]

根据决策论,就可以知道可以使概率\(P(Y|X,\theta)\)最大的参数\(\theta^*\)就是最好的参数。那么我们可以直接得到最大似然估计的最直观理解:对于一个模型,调整参数\(\theta\),使得用X得到Y的概率最大。那么参数\(\theta\)就可以由下式得到:

\[
\begin {split}
\theta^* &= argmax_{\theta} \left(\prod_i\frac{1}{\epsilon\sqrt{2\pi}} \exp(-\frac{\|f(X_i) - Y_i\|^2}{2\delta^2})\right) \cr
&=argmax_{\theta} \left( -\frac{1}{2\delta^2} \sum_i \|f(X_i) - Y_i\|^2 + \sum_i ln(\delta\sqrt{2\pi}) \right) \cr
&=argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 \right)
\end {split} \tag{1.4}
\]

这个就是最小二乘计算公式。

Laplace分布

Laplace概率密度函数分布为:

\[
f(x|\mu, b) = \frac{1}{2b} \exp(-\frac{|x-\mu|}{b}) \tag{2.1}
\]

分布的图像如下所示:

图1 Laplace分布

可以看到Laplace分布集中在\(\mu\)附近,而且\(b\)越小,数据的分布就越集中。

Laplace先验导出L1正则化

先验的意思是对一种未知的东西的假设,比如说我们看到一个正方体的骰子,那么我们会假设他的各个面朝上的概率都是\(1/6\),这个就是先验。但事实上骰子的材质可能是密度不均的,所以还要从数据集中学习到更接近现实情况的概率。同样,在机器学习中,我们会根据一些已知的知识对参数的分布进行一定的假设,这个就是先验。有先验的好处就是可以在较小的数据集中有良好的泛化性能,当然这是在先验分布是接近真实分布的情况下得到的了,从信息论的角度看,向系统加入了正确先验这个信息,肯定会提高系统的性能。我们假设参数\(\theta\)是如下的Laplace分布的,这就是Laplace先验:

\[
P(\theta_i) = \frac{\lambda}{2} \exp(-\lambda|\theta_i|) \tag{3.1}
\]

其中\(\lambda\)是控制参数\(\theta\)集中情况的超参数,\(\lambda\)越大那么参数的分布就越集中在0附近。

在前面所说的最大似然估计事实上是假设了\(\theta\)是均匀分布的,也就是\(P(\theta)=Constant\),我们最大化的要后验估计,即是:

\[
\begin {split}
\theta^* &= argmax_{\theta} \left(\prod_i P(Y_i|X_i, \theta) \prod_i P(\theta_i)\right) \cr
&=argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \sum_i \ln(P(\theta_i))\right)
\end {split} \tag{3.2}
\]

如果是Laplace先验,将式\((3.1)\)代入到式\((3.2)\)中可得:

\[
\theta^* =argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \lambda \sum_i |\theta_i|)\right) \tag{3.3}
\]

这就是由Laplace导出L1正则化,我在之前的一篇博客中L1正则化及其推导分析过\(\lambda\)越大,那么参数的分布就越集中在0附近,这个与Laplace先验的分析是一致的。

Gauss先验导出L2正则化

到这里,我们可以很轻易地导出L2正则化,假设参数\(\theta\)的分布是符合以下的高斯分布:

\[
P(\theta_i) = \frac{\lambda}{\sqrt{\pi}} \exp(-\lambda\|\theta_i\|^2) \tag{3.4}
\]

代入式\((3.2)\)可以直接得到L2正则化:

\[
\theta^* =argmin_{\theta} \left(\sum_i \|f(X_i) - Y_i\|^2 + \lambda \sum_i \|\theta_i\|^2)\right) \tag{3.5}
\]

【防止爬虫转载而导致的格式问题——链接】:
http://www.cnblogs.com/heguanyou/p/7688344.html

Laplace(拉普拉斯)先验与L1正则化的更多相关文章

  1. L1正则化及其推导

    \(L1\)正则化及其推导 在机器学习的Loss函数中,通常会添加一些正则化(正则化与一些贝叶斯先验本质上是一致的,比如\(L2\)正则化与高斯先验是一致的.\(L1\)正则化与拉普拉斯先验是一致的等 ...

  2. 贝叶斯先验解释l1正则和l2正则区别

    这里讨论机器学习中L1正则和L2正则的区别. 在线性回归中我们最终的loss function如下: 那么如果我们为w增加一个高斯先验,假设这个先验分布是协方差为 的零均值高斯先验.我们在进行最大似然 ...

  3. L1正则化

    正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式, ...

  4. 【深度学习】L1正则化和L2正则化

    在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况.正则化是机器学习中通过显式的控制模 ...

  5. L1正则化比L2正则化更易获得稀疏解的原因

    我们知道L1正则化和L2正则化都可以用于降低过拟合的风险,但是L1正则化还会带来一个额外的好处:它比L2正则化更容易获得稀疏解,也就是说它求得的w权重向量具有更少的非零分量. 为了理解这一点我们看一个 ...

  6. L2与L1正则化理解

    https://www.zhihu.com/question/37096933/answer/70507353 https://blog.csdn.net/red_stone1/article/det ...

  7. L1正则化和L2正则化

    L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择 L2正则化可以防止模型过拟合(overfitting):一定程度上,L1也可以防止过拟合 一.L1正则化 1.L1正则化 需注意, ...

  8. L1正则化与L2正则化的理解

    1. 为什么要使用正则化   我们先回顾一下房价预测的例子.以下是使用多项式回归来拟合房价预测的数据:   可以看出,左图拟合较为合适,而右图过拟合.如果想要解决右图中的过拟合问题,需要能够使得 $ ...

  9. 正则化--L1正则化(稀疏性正则化)

    稀疏矢量通常包含许多维度.创建特征组合会导致包含更多维度.由于使用此类高维度特征矢量,因此模型可能会非常庞大,并且需要大量的 RAM. 在高维度稀疏矢量中,最好尽可能使权重正好降至 0.正好为 0 的 ...

随机推荐

  1. 软件工程资料 - UCSD 怎么教软件工程

    2012年,在上软件工程课的过程中,收集到这个博客,作为学习资料. 原网站 (http://www.arc-trooper.com)已经不存在,这是一个备份. ----------------- 以下 ...

  2. 201521123072《java程序设计》第七周总结

    201521123072<java程序设计>第七周总结 标签: java 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源 ...

  3. 201521123047 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 答: - 只能有一个父类,即单继承,子类继承父类的全部成员(属性和方法),并可能有自己特有的 ...

  4. 自定义win8资源管理器左侧导航窗格的方法

    Win8自定义资源管理器左侧导航窗格: 快捷键Win+R – 输入regedit: 删除“网络”项目 HKEY_CLASSES_ROOTCLSID{F02C1A0D-BE21-4350-88B0-73 ...

  5. 201521123016 《Java学习笔记》 第11周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问, ...

  6. JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask

    为什么要是用Callable和Future Runnable的局限性 Executor采用Runnable作为基本的表达形式,虽然Runnable的run方法能够写入日志,写入文件,写入数据库等操作, ...

  7. mapreduce自定义排序(map端1.4步)

    3 3 3 2 3 1 2 2 2 1 1 1 -----------------期望输出 1 1 2 1 2 2 3 1 3 2 3 3 将以上数据进行排序,排序规则是:按照第一列升序排序,如果第一 ...

  8. 中位数的和_KEY

    中位数的和 (number.pas/c/cpp) [题目描述] flower 有 N-1 个朋友,他们要一起玩一个游戏:首先确定三个非负整数 a,b,c,然后每个人依次在纸上写一个数,设第 i 个人写 ...

  9. 开始使用ASP.NET Core - 创建第一个Web应用

    .NET Core 是.NET Framework的新一代跨平台应用程序开发框架,是微软在一开始发展时就开源的软件平台,由于 .NET Core 的开发目标是跨平台的 .NET 平台,因此 .NET ...

  10. linux/Windows系统如何安装PHP-openssl扩展

    今天倒腾了半天公司的OA办公系统,原来现在很多的smtp服务器是需要ssl方式加密的,而支持ssl需要php加载openssl扩展.所以本文我们将和大家一起分享如何在linux/Windows系统下安 ...