【机器学习基本理论】详解最大后验概率估计(MAP)的理解
【机器学习基本理论】详解最大后验概率估计(MAP)的理解
https://blog.csdn.net/weixin_42137700/article/details/81628065
最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。 下文将详细说明MLE和MAP的思路与区别。上篇讲解了MLE的相应知识。【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解 下面讲解最大后验概率MAP的相关知识。 1最大后验概率估计 最大似然估计是求参数theta, 使似然函数p(x0|theta)最大。 最大后验概率估计则是想求theta使得p(x0|theta)p(theta)最大。
求得的theta不单单让似然函数大,theta自己出现的先验概率也得大。 (这有点像正则化里加惩罚项的思想,不过正则化里是利用加法,而MAP里是利用乘法)
MAP其实是在最大化p(theta|x0)=p(x0|theta)p(theta)/p(x0),不过因为x0是确定的(即投出的“反正正正正反正正正反”),p(x0)是一个已知值,所以去掉了分母p(x0) (假设“投10次硬币”是一次实验,实验做了1000次,“反正正正正反正正正反”出现了n次, 则p(x0)=n/1000总之,这是一个可以由数据集得到的值)。最大化p(theta|x0)的意义也很明确,x0已经出现了,要求theta取什么值使p(theta|x0)最大。顺带一提,p(theta|x0)即后验概率,这就是“最大后验概率估计”名字的由来。
对于投硬币的例子来看,我们认为(”先验地知道“)theta取取0.5的概率很大,取其他值的概率小一些。我们用一个高斯分布来具体描述我们掌握的这个先验知识,例如假设p(theta)为均值0.5,方差0.1的高斯函数,如下图:
则p(x0|theta)p(theta)的函数图像为:
注意,此时函数取最大值时,theta取值已向左偏移,不再是0.7。实际上,在theta=0.558时函数取得了最大值。即,用最大后验概率估计,得到theta=0.558。
最后,那要怎样才能说服一个贝叶斯派相信theta=0.7呢? 你得多做点实验。。
如果做了1000次实验,其中700次都是正面向上,这时似然函数为:
如果仍然假设p(theta)为均值0.5,方差0.1的高斯函数,则p(x0|theta)p(theta)的函数图像为:
在theta=0.696,p(x0|theta)p(theta)取得最大值。
这样,就算一个考虑了先验概率的贝叶斯派,也不得不承认得把theta估计在0.7附近了。
PS. 要是遇上了顽固的贝叶斯派,认为p(theta=0.5)=1,那就没得玩了。。 无论怎么做实验,使用MAP估计出来都是theta=0.5。这也说明,一个合理的先验概率假设是很重要的。(通常,先验概率能从数据中直接分析得到)
2最大似然估计和最大后验概率估计的区别 相信读完上文,MLE和MAP的区别应该是很清楚的了。 MAP就是多个作为因子的先验概率p(theta)。 或者,也可以反过来,认为MLE是把先验概率p(theta)认为等于1,即认为theta为均匀分布,无论theta为何值,p(theta)均为1 文章地址:http://blog.csdn.net/u011508640/article/details/72815981
【机器学习基本理论】详解最大后验概率估计(MAP)的理解的更多相关文章
- 机器学习经典算法详解及Python实现--基于SMO的SVM分类器
原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector ...
- [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解
[PXE] Linux(centos6)中PXE 服务器搭建,PXE安装.启动及PXE理论详解 本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议 ...
- 机器学习03 /jieba详解
机器学习03 /jieba详解 目录 机器学习03 /jieba详解 1.引言 2.分词 2.1.jieba.cut && jieba.cut_for_search 2.2.jieba ...
- 图解机器学习 | LightGBM模型详解
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/34 本文地址:http://www.showmeai.tech/article-det ...
- JVM的GC理论详解
GC的概念 GC:Garbage Collection 垃圾收集.这里所谓的垃圾指的是在系统运行过程当中所产生的一些无用的对象,这些对象占据着一定的内存空间,如果长期不被释放,可能导致OOM(堆溢出) ...
- awk理论详解、实战
答疑解惑: 为什么用awk取IP的时候用$4? ifconfig eth0 | awk -F '[ :]+' 'NR==2{print $4}' IP第二行内容如下: inet addr:10.0.0 ...
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
1 集合框架 1.1 集合框架概述 1.1.1 容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...
- Java基础学习总结(53)——HTTPS 理论详解与实践
前言 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题.在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用户 ...
- 机器学习|线性回归算法详解 (Python 语言描述)
原文地址 ? 传送门 线性回归 线性回归是一种较为简单,但十分重要的机器学习方法.掌握线性的原理及求解方法,是深入了解线性回归的基本要求.除此之外,线性回归也是监督学习回归部分的基石. 线性回归介绍 ...
随机推荐
- git添加远程仓库
3种方式 # 未创建项目目录git clone https://github.com/xxx/zzz.git [这里指定目标文件夹,不填写,默认创建 zzz目录] # 已存在项目文件,未设置远程仓库的 ...
- 微信APP支付,支付宝APP支付demo
最近公司新开发的APP中,需要集成微信支付和支付宝支付,2个平台申请的都是APP支付.这是个人第一次单独的,完整的做完2个平台的支付. 这里我主要用到了2个接口:支付接口,订单查询接口,虽然2个平台的 ...
- 【app】自动化环境搭建(Appium)for java
Appium来做app自动化相信大家都很熟悉了吧,就不再赘述他的概念和作用了,我们接下来着重介绍怎么来搭建整个app自动化环境,整个环境包括如下几个步骤: 1.安装jdk和eclipse及配置jdk的 ...
- 9102年了,汇总下HttpClient问题,封印一个
如果找的是core的HttpClientFactory 出门右转. 官方写法,高并发下,TCP连接不能快速释放,导致端口占完,无法连接 Dispose 不是马上关闭tcp连接 主动关闭的一方为什么不能 ...
- 【Spark调优】Kryo序列化
[Java序列化与反序列化] Java序列化是指把Java对象转换为字节序列的过程:而Java反序列化是指把字节序列恢复为Java对象的过程.序列化使用场景:1.数据的持久化,通过序列化可以把数据永久 ...
- IDEA整合Junit详细步骤
一.添加Junit插件. 1.file-->setting-->plugins-->搜索Junit-->安装插件(一般已默认安装,无需手动安装). 二.设置Junit测试参数: ...
- 解决spring的bean同名冲突
今天工作发现当不同模块下有相同bean然后又被同一个模块引用的话就会导致bean同名冲突,如下: 解决方案很简单,如果是xml配置直接修改bean的名称即可,如果是注解形式修改如下: 只要在servi ...
- logstash笔记(二)——grok之match
官方文档: https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html 基本语法: %{SYNTAX:SEMA ...
- mysql 开发基础系列11 存储引擎memory和merge介绍
一. memory存储引擎 memoery存储引擎是在内存中来创建表,每个memory表只实际对应一个磁盘文件格式是.frm. 该引擎的表访问非常得快,因为数据是放在内存中,且默认是hash索引, ...
- Socket进程通信机制及应用
Socket通常称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通过套接字向网络发出请求或者应答网络请求.Socket即不是一个程序,也不是一个协议,其只是操作系统提供的通信层的一 ...