最大似然估计MLE与贝叶斯估计
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
大学期间学习数理统计这门课程的时候,没有特别用心。说实话统计学还是挺枯燥的,而且当时也没有太多的学习意识,不知道为什么要学这些貌似八竿子打不着的东西。现在想想,当时真是too simple,sometimes naive啊。。等到越往后面深入,发现需要用的数学知识尤其是统计学知识越来越多,因为现在机器学习里发展最成熟应用最广泛的一部分就是统计机器学习,自然离不开统计学的方方面面。而且随着研究的逐步深入,发现统计学其实还是挺有意思的一门学科,能将一些平时常见的问题或者不太好表达的问题能用特别简洁与清楚的数学语言来描述。因此,现在遇到统计方面有什么疑问或者不太理解的地方,本博主就自觉将之前没学好欠下的历史旧债给补上。
最近一直在看一些参数估计方面的内容,有了自己的一些小小心得体会,特意记录下来,以免日后忘记了又找不到相关文档。
1.为什么要有参数估计(parameter estimation)
研究一个课题的时候,博主的第一反应一般都是"why"。为什么会有这个东东?这个东东到底能解决什么实际问题?
OK,那我们为什么要采用参数估计的方法呢?举个很简单的实际例子,我们国家每隔一段时间需要进行人口普查,但是因为我国国土面积太大,人口太多,不太可能真正挨个人口进行统计,所以可以统计部分人口样本,然后根据这部分样本的参数去描述人口的总体分布情况。那为什么我们可以这么干?因为我们对整体分布的形式是知晓的,比如我们知道全国人民的身高体重服从正态分布,这样我们只需要取得部分样本的数据,然后估计正态分布的均值与方差即可。否则,我们就需要借助非参数的方法了。
再用一句简单的话来总结参数估计:模型已定,参数未知!
2.最大似然估计(Maximum Likehood Estimation MLE)
最大似然估计的核心思想是:找到参数 θ \theta θ的一个估计值,使得当前样本出现的可能性最大。用当年博主老板的一句话来说就是:谁大像谁!
假设有一组独立同分布(i.i.d)的随机变量 X X X,给定一个概率分布 D D D,假设其概率密度函数为 f f f,以及一个分布的参数 θ \theta θ,从这组样本中抽出 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn,那么通过参数 θ \theta θ的模型 f f f产生上面样本的概率为:
f ( x 1 , x 2 , ⋯ , x n ∣ θ ) = f ( x 1 ∣ θ ) × f ( x 2 ∣ θ ) × ⋯ f ( x n ∣ θ ) f(x_1,x_2,\cdots,x_n|\theta) = f(x_1|\theta) \times f(x_2|\theta) \times \cdots f(x_n|\theta) f(x1,x2,⋯,xn∣θ)=f(x1∣θ)×f(x2∣θ)×⋯f(xn∣θ)
最大似然估计会寻找关于 θ \theta θ 的最可能的值,即在所有可能的 θ \theta θ 取值中,寻找一个值使这个采样的“可能性”最大化!
因为是"模型已定,参数未知",此时我们是根据样本采样 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn取估计参数 θ \theta θ,定义似然函数为:
L ( θ ∣ x 1 , x 2 , ⋯ , x n ) = f ( x 1 , x 2 , ⋯ , x n ∣ θ ) = ∏ f ( x i ∣ θ ) L(\theta|x_1,x_2,\cdots,x_n)=f(x_1,x_2,\cdots,x_n|\theta) = \prod f(x_i | \theta) L(θ∣x1,x2,⋯,xn)=f(x1,x2,⋯,xn∣θ)=∏f(xi∣θ)
实际使用中,因为 f ( x i ∣ θ ) f(x_i | \theta) f(xi∣θ)一般比较小,而且 n n n往往会比较大,连乘容易造成浮点运算下溢。所以一般我们用对数似然函数:
ln L ( θ ∣ x 1 , x 2 , ⋯ , x n ) = ∑ i = 1 n f ( x i ∣ θ ) \ln L(\theta|x_1,x_2,\cdots,x_n) = \sum_{i=1}^n f(x_i | \theta) lnL(θ∣x1,x2,⋯,xn)=i=1∑nf(xi∣θ)
l ^ = 1 n ln L \widehat l= \frac{1}{n} \ln L l =n1lnL
那最终 θ \theta θ的估计值为:
\begin{equation}
\widehat{\theta}{MLE} =\mathop{\arg\max}{\theta} \widehat l(\theta|x_1,x_2,\cdots,x_n)
\end{equation}
根据前面的描述,总结一下求最大释然估计值的步骤:
1.写似然函数
2.一般对似然函数取对数,并将对数似然函数整理
3.对数似然函数求导,令导数为0,求得似然方程
4.根据似然方程求解,得到的参数即为所求估计值
3.对数似然求解实例
下面给大家举个别人文章中简单的小例子,看看对数似然的具体求解过程。
假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我 们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?
估计大家很快能反应出来答案是70%。但是如果让推导一下具体过程呢?
我们假设罐中白球的比例是 p p p,那么黑球的比例就是 1 − p 1-p 1−p。因为每抽一个球出来,在记录颜色之后,我们把抽出的球放回了罐中并摇匀,所以每次抽出来的球的颜 色服从同一独立分布。这里我们把一次抽出来球的颜色称为一次抽样。题目中在一百次抽样中,七十次是白球的概率是 p ( x ∣ θ ) p(x|\theta) p(x∣θ),这里 x x x是所有的抽样, θ \theta θ是所给出的模型参数,表示每次抽出来的球是白色的概率为 p p p。
按照第二部分提到的似然估计求解过程,先写出似然函数:
\begin{align}
p(x|\theta) & = p(x_1,x_2,\cdots,x_n| \theta) \
& = p(x_1 | \theta) \cdot p(x_2 | \theta) \cdots p(x_n | \theta) \
& = p{70}(1-p){30}
\end{align}
接下来对似然函数对数化:
\begin{align}
\ln p(x|\theta) &= \ln (p{70}(1-p){30}) \
& =70 \ln p + 30\ln (1-p)
\end{align}
然后求似然方程:
\begin{align}
\ln’ p(x|\theta) &= \frac{70}{p} - \frac{30}{1-p} \
\end{align}
最后求解似然方程,得: p = 0.7 p=0.7 p=0.7
以上就是最大似然估计的详细完整过程!
4.贝叶斯估计
统计学里有两个大的流派,一个是频率派,一个是贝叶斯派。时至今日,这两派还未就各自的观点达成统一。我们前面提到的最大似然估计就是频率派的典型思路,接下来再看看贝叶斯派的思路,到底跟频率派估计有何不同。
先来看几个相关的小公式:
两个随机变量 x , y x,y x,y的联合概率 p ( x , y ) p(x,y) p(x,y)的乘法公式:
p ( x , y ) = p ( x ∣ y ) p ( y ) = p ( y ∣ x ) p ( x ) p(x,y) = p(x|y)p(y) = p(y|x)p(x) p(x,y)=p(x∣y)p(y)=p(y∣x)p(x)
如果 x , y x,y x,y是独立随机变量,上面的式子可以表示为:
p ( x , y ) = p ( x ) p ( y ) = p ( y ) p ( x ) p(x,y) = p(x)p(y) = p(y)p(x) p(x,y)=p(x)p(y)=p(y)p(x)
那么条件概率就可以表示为:
p ( x ∣ y ) = p ( x , y ) p ( y ) , p ( y ∣ x ) = p ( x , y ) p ( x ) p(x|y) = \frac{p(x,y)}{p(y)},p(y|x) = \frac{p(x,y)}{p(x)} p(x∣y)=p(y)p(x,y),p(y∣x)=p(x)p(x,y)
对于一个完备事件组 y 1 , y 2 , ⋯ , y n y_1,y_2,\cdots,y_n y1,y2,⋯,yn,可以使用全概率公式:
p ( x ) = ∑ i = 1 n p ( y i ) p ( x ∣ y i ) , 其 中 ∑ i = 1 n p ( y i ) = 1 p(x) = \sum_{i=1}^{n}p(y_i)p(x|y_i),其中\sum_{i=1}^{n}p(y_i) = 1 p(x)=i=1∑np(yi)p(x∣yi),其中i=1∑np(yi)=1
由以上这些,可以得出贝叶斯公式:
p ( y i ∣ x ) = p ( x , y i ) p ( x ) = p ( y i ) p ( x ∣ y i ) p ( x ) p(y_i|x) = \frac{p(x,y_i)}{p(x)} = \frac{p(y_i)p(x|y_i)}{p(x)} p(yi∣x)=p(x)p(x,yi)=p(x)p(yi)p(x∣yi)
其中, p ( y i ∣ x ) p(y_i|x) p(yi∣x)是后验概率。 p ( x ∣ y i ) p(x|y_i) p(x∣yi)是条件概率,或者说似然概率,这个概率一般都可以通过历史数据统计得出。而 p ( y i ) p(y_i) p(yi)是先验概率,一般也是根据历史数据统计得出或者认为给定的,贝叶斯里的先验概率,就是指 p ( y i ) p(y_i) p(yi)。对于 p ( x ) p(x) p(x),我们前面提到可以用全概率公式计算得出,但是在贝叶斯公式里面我们一般不care这个概率,因为我们往往只需要求出最大后验概率而不需要求出最大后验的具体值。
5.MLE与Bayes的区别
细心的同学通过观察MLE与Bayes的公式,发现Bayes公式比MLE公式里就多了一项 p ( y i ) p(y_i) p(yi)(咱们先抛开 p ( x ) p(x) p(x)不考虑),而条件概率或者说似然概率的表达式是一致的。从数学表达式的角度来说,两者最大的区别就在这里:贝叶斯估计引入了先验概率,通过先验概率与似然概率来求解后验概率。而最大似然估计是直接通过最大化似然概率来求解得出的。
换句话说,最大似然估计没有考虑模型本身的概率,或者说认为模型出现的概率都相等。而贝叶斯估计将模型出现的概率用先验概率的方式在计算过程中有所体现。
举个大家上学时候就遇到的例子:
假如人们会感染一种病毒,有一种测试方法,在被测试者已感染这个病毒时,测试结果 为阳性的概率为95%。在被测试者没有感染这个病毒时,测试结果为阳性的概率为2%。现在,有一个人的测试结果为阳性,问这个人感染了病毒吗?
如果用最大似然估计的方法,既然感染了病毒出现阳性的概率为95%,没感染出现阳性的概率为2%,本着谁大像谁的原则,那我就认为这个人已经感染了病毒。
但是如果用贝叶斯方法进行估计,如果我们得知有一个先验概率,比如整体人群中只有1%的人会感染此种病毒,那么由贝叶斯公式:
\begin{align}
p(真阳性|检测为阳性) &= \frac{p(真阳性)p(检测为阳性|真阳性)}{p(真阳性)p(检测为阳性|真阳性) + p(真阴性)p(检测为阳性|真阴性) } \
&= \frac{0.01 \times 0.95}{0.01 \times 0.95 + 0.99 \times 0.02} \
&= 0.324
\end{align}
其中, p ( 真 阳 性 ∣ 检 测 为 阳 性 ) p(真阳性|检测为阳性) p(真阳性∣检测为阳性)为后验概率,即我们通过检测出为阳性可以判断为真阳性的概率; p ( 真 阳 性 ) p(真阳性) p(真阳性)为先验概率, p ( 检 测 为 阳 性 ∣ 真 阳 性 ) p(检测为阳性|真阳性) p(检测为阳性∣真阳性)为条件概率, p ( 真 阳 性 ) p ( 检 测 为 阳 性 ∣ 真 阳 性 ) + p ( 真 阴 性 ) p ( 检 测 为 阳 性 ∣ 真 阴 性 ) {p(真阳性)p(检测为阳性|真阳性) + p(真阴性)p(检测为阳性|真阴性) } p(真阳性)p(检测为阳性∣真阳性)+p(真阴性)p(检测为阳性∣真阴性)为全概率,检测出为阳性是由一个完备事件组构成的:这个人要么是真阳性,要么是真阴性。
由此可见,在贝叶斯估计中,先验概率对结果的影响很大。在这种场景下,采用贝叶斯估计似乎更为合理一些。
最后来个总结:从本质上来说,最大似然是对点估计,贝叶斯推断是对分布估计。即,假设求解参数 θ \theta θ,最大似然是求出最有可能的 θ \theta θ值,而贝叶斯推断则是求解 θ \theta θ的分布。
6.一些tips
MLE简单又客观,但是过分的客观有时会导致过拟合(Over fitting)。在样本点很少的情况下,MLE的效果并不好。比如我们前面举的病毒的例子。在这种情况下,我们可以通过加入先验,用贝叶斯估计进行计算。
贝叶斯估计最要命的问题是,实际应用场景中的先验概率不是那么好求,很多都是拍脑袋决定的。一旦是拍脑袋决定的,这玩意自然就不准;更有甚者,很多时候是为了方便求解生造出来一个先验。那既然这样,要这个先验还有什么卵用呢?所以频率派的支持者就揪住这点不放攻击贝叶斯派。
在现在看来,Frequentist与Bayesian这两派还将长期并存,在各自适合的领域发挥自己的作用。
最大似然估计MLE与贝叶斯估计相关推荐
- 参数估计:最大似然估计MLE
http://blog.csdn.net/pipisorry/article/details/51461997 最大似然估计MLE 顾名思义,当然是要找到一个参数,使得L最大,为什么要使得它最大呢,因 ...
- 透彻理解机器学习中极大似然估计MLE的原理(附3D可视化代码)
文章目录 相关资料 一.什么是概率,什么是似然 二.极大似然估计 Maximum Likelihood Estimation (MLE) 的含义 2.1 机器学习中的极大化似然函数 2.2 极大似然估 ...
- 简单理解极大似然估计MLE
简单理解极大似然估计(MLE) 基本思想 使数据集中数据出现的概率(似然)最大 举例描述 假设某一个新闻文档数据集下有体育.财经.游戏等分类,已知体育类下的所有文档中"篮球"一词出 ...
- 最大似然估计MLE和最大后验估计MAP理解
1.频率学派和贝叶斯派 频率学派认为参数是固定而未知的,关心似然函数. 贝叶斯派认为参数是随机的有分布的,关心后验分布. 2.MLE.MAP公式 3.参数估计-MLE 4.参数估计-MAP MAP与M ...
- 最大似然估计,最大后验估计,贝叶斯估计联系与区别
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice 欢迎大家star,留言,一起学习进步 1.什么是参数 在机器学习中,我们经常 ...
- Python实现极大似然估计
概念 现实中任何随机变量的概率分布函数都是未知的. 如果假定随机变量服从某种分布(如正态分布),可以通过统计手段来计算该分布的参数,这种方法称为参数估计. 极大似然估计(Maximum Likelih ...
- 先验分布、后验分布、似然估计、贝叶斯估计、最大似然估计
一.什么叫先验分布.后验分布.似然估计 这几个概念可以用"原因的可能性"和"结果的可能性"的"先后顺序"及"条件关系" ...
- 贝叶斯估计和极大似然估计
在开始接触最大似然估计和贝叶斯估计时,大家都会有个疑问:最大似然估计和贝叶斯估计二者很相似,到底有何区别?本文便来说说二者的不同之处以及求参模型的公式推导! 预热知识必知 如何求类条件概率密度: 我们 ...
- 机器学习基础——先验概率、后验概率和似然估计的讲解;频率派和贝叶斯派之分;以及MLE和MAP方法的解析
1.先验概率 假定 B 1 , B 2 , - , B n B_1,B_2,\ldots ,B_n B1,B2,-,Bn是某个过程所有可能的前提条件,也就是 B 1 , B 2 , - , B ...
最新文章
- 定时器 Quartz
- 世博展示生态化住宅 物联网助推智能化家居
- 常用PHP array数组函数
- IOS基础使用PCH文件全局定义宏常量
- 学号20145209《信息安全系统设计基础》第11周学习总结
- oracle 日志丢失,Oracle联机日志文件丢失解决方法一例
- tensorflow-gpu_tensorflow GPU环境安装踩坑日记
- ELK入门级介绍--打造实时日志查询系统
- python3下载-python下载 v3.7.0 官方正式版
- 反射--笔记(第一篇)
- 学习python的第六天---1(理论)
- 分享谷歌SEO的32个实用关键词拓展工具
- 软件需求说明书 (1)
- 安装ALEXA工具条
- PlutoSDR软件无线电平台带宽破解
- 网线为什么又叫做双绞线?UTP STP FTP SFTP之间的区别?
- 面试之你为什么从上家公司离职
- 微信小程序基于OCR插件实现图文识别(超简单)
- 【边做项目边学Android】手机安全卫士07-手机防盗之进入限制
- 沐曦加入龙蜥社区,聚焦技术创新,繁荣开源生态
热门文章
- 一个工程师的工程文化
- Windows下启动Redis失败,报错creating server tcp listening socket 127.0.0.1:6379: bind No error
- C#(Csharp)环境配置
- 图纸加密模块介绍(主模块)
- Ubuntu开发环境配置(七) 卸载Mysql
- 【3D视觉创新应用竞赛作品系列​】RGB-D相机结合机械臂的无序抓取系统
- Android 支付开发(支付宝)
- 黄浩老师cpp平时作业(十一)矩阵乘法矩形类读写文件与结构体
- SUSE Linux 10.0 实现网络电视功能(安装Sopcast,使用xine播放)
- 【传感器sensor】机器人/无人驾驶常用传感器模型、选型与安装