极大似然估计和最大后验估计-程序员宅基地

技术标签: 机器学习  

https://baijiahao.baidu.com/s?id=1593811166204755239&wfr=spider&for=pc

机器学习中,一般只得到业务产生的数据集D,机器学习目的是通过数据D了解该项业务的过去(建模)和未来(预测和分类)。但你手头上只有数据集D,没有其他任何辅助信息,那么如何建模?

1.概率假设合理吗?

我们总是假设数据集D由某种概率分布生成(数据生成模型),甚至假设数据集D由高斯分布生成,一旦确定了高斯分布的参数,相当于我们掌握了数据的生成机制,这样就能预测业务的未来。但是,这种假设总是让人看起来不放心,这种假设合理吗?幸运的是,概率论里的中心极限定理保证了这种假设的合理性,中心极限定理表明,只要数据集D足够大,就可认为它由高斯分布生成。下图充分说明了这一点。

样本足够大时服从高斯分布

因此,即使数据集D的样本不够大,我们也会假设数据集D服从高斯分布,这时没有人会怀疑假设的合理性。高斯分布由期望和方差两个参数决定,但我们手头上只有数据集D和数据集D服从高斯分布这两条信息,并不知道高斯分布的参数的有关信息。因此估计高斯分布的参数成为我们首要任务,因为参数一旦确定下来,数据集D的生成模型也就确定下来,预测未来成为可能。关于高斯分布,我想进一步解释,不难看出,概率密度函数在期望值处取最大值,这说明了随机变量落在期望值周围的概率最大(通俗点来说就是我们大多数人生活在平均水平之中),这是密度函数名称的来源。

一维高斯分布及参数

高斯分布

2.极大似然然估计

从线性回归模型谈起,给定数据集[X,y],参数W,误差r服从高斯分布N(0,α^2),线性回归模型表示为:

线性回归模型

利用最小二乘法求参数W,即

最小二乘法求参数

这是一个解析解,让人满意的结果。但问题是当X中含有线性相关的特征时(特征重叠),矩阵不可逆,这时解不存在,需要选择正则化方法处理,如岭回归和lasso回归。大家应该发现这样的问题,最小二乘法与假设“误差r服从高斯分布N(0,α^2)”没有任何关系。但这个假设是合理的,只要有足够多的样本和好模型,误差自然大部分集中在0附近,并服从高斯分布。通过这个假设也可以倒逼训练出一个好模型。极大似然估计从假设“误差r服从高斯分布N(0,α^2)”开始,利用样本的独立性,有效估计参数。

首先考虑极大似然估计的通用模型,假设数据集D服从一个参数为W的概率分布f(x)=p(D=x|W)(含义为在知道W的条件下,数据集D取样本x的概率密度函数值),这里f(x)=p(D=x|W)是概率密度函数(对于连续型随机变量用概率密度函数代替概率),p(D|W)为数据集D的联合概率分布,根据样本的独立性,p(D|W)为所有样本的概率密度函数值f(x)的乘积。我们称p(D|W)为参数W的似然函数,log(p(D|W))为参数W的对数似然函数,记为L(W|D)=log(p(D|W))。现在首要任务是估计W。既然样本数据集D已经出现,概率直觉告诉我们,D出现的概率比所有其他样本数据集D'出现的概率都要大,即L(W|D)>L(W|D')。极大似然估计就是求一个参数W使得

下面用极大似然估计求解线性回归模型。

线性回归属于监督学习,X是特征,y是对应的值(即数据集D),应把X看成已知的参数,W为待估计的参数。假设误差r服从高斯分布N(0,α^2),这推出p(y|W)=N(W^TX,α^2)。根据极大似然估计

这说明了最小二乘法和极大似然估计在假设“误差r服从高斯分布N(0,α^2)”下是等价的。

极大似然估计基于朴素的概率直觉,有时得到的结果与实际情况有所偏差。从下图可以看出,不同的取样导致与实际情况偏差较大,因此使用极大似然估计应保持警惕。

思考1:在线性回归模型中,假设误差r服从贝塔分布,用极大似然估计参数,结果如何?

思考2:在线性回归模型中,假设误差r服从拉普拉斯分布,用极大似然估计参数,结果如何?

贝塔分布

拉普拉斯分布

3.最大后验估计

我在文章《贝叶斯定理》里详细介绍了贝叶斯定理以及先验(prior)、后验(posterior)、似然(likelihood)等概念。贝叶斯定理如下:

其中p(D)为标准化常数。贝叶斯定理可表述为:

目前,我们手头上有数据集D和数据集D服从高斯分布这两条信息,关于高斯分布的参数W,我们没有额外的信息,在这种情况下,我们只能用极大似然估计这些参数,这是我们能想到的方法。如果在建模之前能获知这些参数的额外信息,即先验p(W),那么我们可以利用这个先验建立更加精准的模型。这就是我们下面要讲的最大后验估计。根据贝叶斯定理,最大后验估计就是求参数W使得

计算上述最大值是一个挑战,但在一些特殊情况下,比如先验p(W)是一个高斯先验,我们是可以计算的。

现在我们可以讨论极大似然估计和最大后验估计的关系了。在极大似然估计中,我们不知道p(W),这相当于p(W)是均匀分布(均匀分布是无聊的,参数服从均匀分布等于没有告诉你关于参数任何信息),不妨假设p(W)=1,这时我们有

因此,极大似然估计和先验为均匀分布下的最大后验估计是等价的。

4.线性回归模型的最大后验估计

在线性回归模型里,误差r服从高斯分布N(0,α^2),进一步我们假设系数W的先验p(W)=N(0,^2),利用最大后验估计参数W,使得后验p(W|y)最大,这里我省去推导过程,直接给出结论:

本质上,这是岭回归。因此充分利用先验信息,最大后验估计比极大似然估计更加鲁棒。

思考:在线性回归模型中,假设先验p(W)服从拉普拉斯分布,用最大后验估计参数,结果如何?

5.总结

最后我们总结最小二乘法、极大似然估计和最大后验估计的关系。在线性回归模型中,假设误差r服从高斯分布N(0,α^2),最小二乘法和极大似然估计是等价的。在线性回归模型中,假设误差r服从高斯分布N(0,α^2),假设先验p(W)服从高斯分布N(0,^2),最大后验估计结果是岭回归。在假设p(W)服从均匀分布下,极大似然估计和最大后验估计是等价的。总之,在充分利用先验的基础上,最大后验估计比极大似然估计更加鲁棒。

(坚持原创,你的关注、点赞和转发是我的动力!未经授权禁止转载!)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lgb_love/article/details/81737808

智能推荐

连登 GitHub TOP 榜,中国开发者在行动!_连登 技术-程序员宅基地

文章浏览阅读1.2w次,点赞86次,收藏87次。中国开发者对于疫情的整体关注程度及防护方向。_连登 技术

java计算机毕业设计教育辅导班信息网服务端源码+mysql数据库+系统+lw文档+部署-程序员宅基地

文章浏览阅读37次。java计算机毕业设计教育辅导班信息网服务端源码+mysql数据库+系统+lw文档+部署。springboot基于Vue.js的云医疗自助就诊平台的设计与实现。前端技术:Layui、HTML、CSS、JS、JQuery等技术。springboot颜如玉图书销售网站的设计与实现。springboot竞赛信息发布及组队系统。springboot郑财校园新闻管理系统。springboot校园任务发布系统。

对jupyter notebook运行时出现“The kernel appears to have died. It will restart automatically”的解决方案_用jupyternotebook训练模型总是the kernel appears to have d-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏21次。1、前天在jupyter notebook 上运行tensorflow的代码时(主要是卷积神经网络,用小笔记本上的GPU),运行没多久,出现“The kernel appears to have died. It will restart automatically”。试了很多遍,一直都是这样。但是又运行之前的Tensorflow基础运算和全连接神经网络的程序,都可以运行,只有开始跑卷积神经网..._用jupyternotebook训练模型总是the kernel appears to have died. it will restar

redisson分布式锁组合spring事务解决锁被释放但事务还未被提交的问题_redis分布式锁释放了,业务还没处理完-程序员宅基地

文章浏览阅读2.6k次,点赞10次,收藏25次。定义的注解里面建议组合spring的Transactional注解 这样的话,使用者能够定义像传播特性、隔离级别等之类的属性,而不需要我们重新定义/**// 开启事务 如果不需要组合的话 可选择使用此注解 // 但需要稍微改一下后续的代码 // boolean transactional() default false;// 组合事务注解 最推荐 很方便 Transactional transactional();// 开启锁 boolean lock() default true;_redis分布式锁释放了,业务还没处理完

python asyncio和celery对比_如何将Celery与asyncio结合? - python-程序员宅基地

文章浏览阅读222次。如何创建使芹菜任务看起来像asyncio.Task的包装器?还是有更好的方法将Celery与asyncio集成?@ asksol,Celery的创建者said this::使用Celery作为异步I / O框架之上的分布式层是很常见的(提示:将CPU绑定的任务路由到prefork worker意味着它们不会阻塞事件循环)。但是我找不到任何专门针对asyncio框架的代码示例。参考方案如官方网站中所..._asyncio和celery

5种靶机安装(dvwa pikachu mutillidae mcir bwapp)_如何在靶机上安装软件-程序员宅基地

文章浏览阅读823次,点赞2次,收藏3次。**一 ,安装XAMPP软件,安装Gvim编辑器,火狐浏览器,360压缩,必须有固定的的IP地址。软件在360官网进行安装(本次安装时 Server Windows 2016)xampp安装过程登录本地网络管理器修改phpMyAdmin数据库密码修改配置文件密码登录重新登录数据库,安装前提完成。安装前提完成开始安装1,bwapp 端口:82 地址 172.16.12.100:82/install.php2,mcir 端口:83 地址_如何在靶机上安装软件

随便推点

OpenJudge-1.3.15:苹果和虫子_openjudge苹果和虫子-程序员宅基地

文章浏览阅读267次。OpenJudge-1.3.15:苹果和虫子_openjudge苹果和虫子

深入理解代理模式:静态代理与JDK动态代理_jdk 代理是静态代理-程序员宅基地

文章浏览阅读1.3w次,点赞32次,收藏140次。摘要:      代理模式为其他对象提供了一种代理以控制对这个对象的访问,具体实现包括两大类:静态代理和动态代理。Java动态代理机制的出现使得Java开发人员只需要简单地指定一组接口及委托类对象便能动态地获得代理类,并且其所生成的代理类在将所有的方法调用分派到委托对象上反射执行的同时,还可以对方法进行增强,这也正是Spring AOP的实现基础。通过阅读本文,读者将会对代理模式和Java动态..._jdk 代理是静态代理

jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次_js只能全选一次-程序员宅基地

文章浏览阅读334次。jquery checkbox全选,全不选,反选方法,jquery checkbox全选只有第一次成功jquery checkbox全选只能操作一次,下载Js代码 /** * 全选 * 对于Jquey1.7.2+版本,使用attr会造成只能操作一次。 * 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。 _js只能全选一次

JAVA微信小程序论坛系统毕业设计 开题报告_论坛微信小程序设计报告-程序员宅基地

文章浏览阅读3.5k次,点赞6次,收藏54次。本课题主要目标是设计并能够实现一个基于微信小程序论坛交流系统,前台用户使用小程序,后台管理使用Java+Mysql开发,后台使用了springboot框架;通过后台设置录入资讯、管理用户、设置轮播图、管理交流主题和回复管理;用户通过小程序登录,查看资讯、查看交流帖子、发起帖子、回复帖子等。_论坛微信小程序设计报告

command C:\Windows\system32\cmd.exe /d /s /c node ./build.js的解决方法_npm err! command c:\windows\system32\cmd.exe /d /s-程序员宅基地

文章浏览阅读3.6k次。npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node ./build.js_npm err! command c:\windows\system32\cmd.exe /d /s /c node scripts/build.js

c32循迹小车c语言程序,stm32篇--小车循迹-程序员宅基地

文章浏览阅读1.3k次。小车的循迹算法循迹小车使用红外对射寻黑线,根据轨道的不同,我使用了两种不同算法:(1)第一种是在轨道外有影响的,比如轨道外有黑色,车出去一点就会碰到黑色,那就是检测到歪了之后除非检测它回来了,否则一直拐弯://自己寻道void Self_Tracting(void){while(1){test_sensor();motor_move_speed(paras.speed);if(GPIO_ReadI..._寻迹小车怎么用c语言在拐歪处区分两条黑线