參数预计:最大似然预计、贝叶斯预计与最大后验预计

简单介绍:

在概率统计中有两种基本的方法:參数统计和非參数统计(或者说參数预计和非參数预计)。 当中,參数预计是概率统计的一种方法。主要在样本知道情况下,一般知道或如果样本服从某种概率分布。但不知到详细參数(或者知道详细模型,但不知道模型的參数)。

參数预计就是通过多次试验。观察其结果,利用结果推出參数的大概值。 (当你推出參数的极大可能值时。就相当于知道了分布及其參数情况。就能够利用它来猜測其它例子出现的概率了。

这属于应用了)

參数预计的方法有多种,这里我们分析三种基于概率的方法。各自是最大似然预计(Maximum Likelihood)、贝叶斯预计(Bayes)和最大后验预计(Maximum a posteriori)。我们如果我们观察的变量是x,观察的变量取值(样本)为mathcal{D}={x_1, ...,x_N},要预计的參数是	hetax的分布函数是p(x|	heta)(我们用条件概率来显式地说明这个分布是依赖于	heta取值的)。

实际中,x	heta都能够是几个变量的向量,这里我们最好还是觉得它们都是标量(theta若是标量求导。若是向量求偏导)。

这里的p(x|θ)能够是高斯分布或其它分布。


  • 最大似然预计 Maximum Likelihood (ML)

“likelihood/似然”的意思就是“事件(即观察数据)发生的可能性”。最大似然预计就是要找到	heta的一个预计值,使“事件发生的可能性”最大。也就是使p(mathcal{D}|	heta)最大。一般来说,我们觉得多次取样得到的x是独立同分布的(iid),这样

p(mathcal{D}|	heta)=prod_{substack{i=1}}^{N}{p(x_i|	heta)}

因为p(x_i)一般都比較小,且N一般都比較大,因此连乘easy造成浮点运算下溢,所以通常我们都去最大化相应的对数形式

	heta_{ML}^{*}=argmax_{	heta}{Sigma_{i=1}^{N}{log{p(x_i|	heta)}}}

详细求解释时。可对右式对	heta求导数。然后令为0。求出	heta值即为	heta_{ML}^{*}

这时一般知道详细的分布,再加上參数theta,然后能够用含theta的式子表示每一次(独立的)出现的概率。这样L(theta)就是一个含theta參数的式子,最后求导(或偏导),解方程(组)就OK了。

注意:最大似然把待估的參数看做是确定性的量,仅仅是其取值未知。最佳预计就是使得产生以观測到的样本的概率最大的那个值。
该预计是最大可能性预计,但不是无偏预计。

最大似然预计属于点预计,只能得到待预计參数的一个值。

(1) 可是在有的时候我们不只希望知道	heta_{ML}^{*},我们还希望知道	heta取其他值得概率。即我们希望知道整个	heta在获得观察数据mathcal{D}后的分布情况p(	heta|mathcal{D}). (2) 最大似然预计只依据(有限的)观察数据对整体分布进行预计,在数据量不大的情况下。可能不准确。比如我们要预计人的平均体重,可是抽样的人都是小孩。这样我们得到的平均体重就不能反映整体的分布,而我们应该把“小孩之占总人口20%”的先验考虑进去。

这时我们能够用贝叶斯方法。


  • 贝叶斯预计 Bayes

使用Bayes公式,我们能够把我们关于	heta的先验知识以及在观察数据结合起来,用以确定	heta的后验概率p(	heta|mathcal{D})

p(	heta|mathcal{D})=frac{1}{Z_D}p(mathcal{D}|	heta)p(	heta)

当中Z_D=int_{	heta} {p(mathcal{D}|	heta)p(	heta)}\,mathrm{d}	heta是累积因子,以保证p(	heta|mathcal{D})和为1。

要使用Bayes方法,我们需有关于	heta的先验知识,即不同取值的概率p(	heta)。比方	heta=1表示下雨。	heta=0表示不下雨,依据以往的经验我们大体上有P(	heta=1)=0.01P(	heta=0)=0.99,在这样的知识不足的时候,能够如果	heta是均匀分布的。即取各值的概率相等。

在某个确定的	heta取值下。事件x的概率就是p(x|	heta),这是关于	heta的函数,比方一元正态分布p(x|	heta)=frac{1}{sqrt{2pi}}exp(-frac{(x-	heta)^2}{2})

与上一节中的一样,我们觉得各次取样是独立的。p(mathcal{D}|	heta)能够分开来写,这样我们就能够得到p(	heta|mathcal{D})的一个表达式。不同的	heta相应不同的值。

依据获得的p(	heta|mathcal{D}),我们边能够取使其最大化的那个	heta取值。记为	heta_{B}^{*}。可能有人已经看出问题来了:我们做了非常多额外功,为了求得一个	heta_{B}^{*},我们把	heta取其他值的情况也考虑了。

当然在有的时候p(	heta|mathcal{D})分布是实用的,可是有的时候我们取并不须要知道p(	heta|mathcal{D})。我们仅仅要那个	heta_{B}^{*}

最大后验预计这个时候就上场了。


备注:贝叶斯预计则把待预计的參数看成是符合某种先验概率分布的随机变量

对样本进行观測的过程,就是把先验概率密度转化为后验概率密度,这样就利用样本的信息修正了对參数的初始预计值。

在贝叶斯预计中。一个典型的效果就是。每得到新的观測样本。都使得后验概率密度函数变得更加尖锐,使其在待估參数的真实值附近形成最大的尖峰。



  • 最大后验预计 MAP

最大后验预计运用了贝叶斯预计的思想。可是它并不去求解p(	heta|mathcal{D})。而是直接获得	heta_{B}^{*}。从贝叶斯预计的公式能够看出,Z_D是与	heta无关的,要求得使p(	heta|mathcal{D})最的的	heta,等价于求解以下的式子:

	heta_{MAP}^{*}={argmax}_{	heta}{ p(	heta|x)}=argmax_{	heta}{p(x|	heta)p(	heta)}

与最大似然预计中一样,我们通常最大化相应的对数形式:

	heta_{MAP}^{*}=argmax_{	heta}{log{p(x|	heta)}+log{p(	heta)}}

这样,我们便无需去计算Z_{mathcal{D}},也不须要求得详细的p(	heta|mathcal{D})部分,便能够得到想要的	heta_{MAP}^{*}

和最大似然非常相似,也是假定參数未知,可是为确定数值。

仅仅是优化函数为后验概率形式,多了一个先验概率项。

差别与总结:

差别:而贝叶斯预计和二者最大的不同在于,假定參数也是随机变量,不是确定值。在样本分布D上。计算參数全部可能的情况,并通过基于參数期望,计算类条件概率密度。
也就是说贝叶斯预计不是想极大似然预计那样找到使观測到的样本的概率最大的那个參数值。

而是找到全部可能的參数值及其对应的可信值(暂且怎么称呼吧)。

这样你就能够知道不同參数值的可信程度。

比如:①有三个分别为0.8,0.05,0.05; 则决然的选最大的0.8。比如②三个參数值的可信值为0.4,0.39。 0.39; 则选第一个參数值就要谨慎了。

可是,当參数分布为尖峰(如例①),且该參数相应样本分布比較平坦时。极大似然近似于贝叶斯。

总结:

三种方法各有千秋,使用于不同的场合。当对先验概率p(	heta)的预计没有信心。能够使用最大似然预计(当然也能够使用其他两种)。贝叶斯预计得到了后验概率的分布,最大似然预计适用于仅仅须要知道使后验概率最大的那个	heta整体上。极大似然计算简单。而贝叶斯在某些特殊情况下,效果好于极大似然。

另外一方面,我们能够感觉到。最大似然预计和Bayes/MAP有非常大的不同。原因在于后两种预计方法利用了先验知识p(	heta),假设利用恰当,能够得到更好的结果。事实上这也是两大派别(Frequentists and Bayesians)的一个差别。


最后附上一张參数预计与非參数预计的对照图:


參考文献:
http://guangchun.wordpress.com/2011/10/13/ml-bayes-map/


图片版:

由于该死的blog竟然不支持latex公式编辑,导致公式显示不出来。以下是图片版





原文地址:https://www.cnblogs.com/liguangsunls/p/7347211.html