机器学习2-极大似然估计与贝叶斯估计

参数估计:最大似然、贝叶斯与最大后验

为何会有参数估计呢?这要源于咱们对所研究问题的简化和假设。咱们在看待一个问题的时候,常常会使用一些咱们所熟知的经典的模型去简化问题,就像咱们看一个房子,咱们想到是否是能够把它当作是方形同样。若是咱们已经知道这个房子是三间平房,那么大致上咱们就能够用长方体去描述它的轮廓。这个画房子的问题就从无数的可能性中,基于方圆多少里你们都住平房的经验,咱们能够假设它是长方体,剩下的问题就是肯定长宽高这三个参数了,问题被简化了。再如学生考试的成绩,根据既往的经验,咱们能够假设学生的成绩是正态分布的,那么剩下的问题就是肯定分布的指望和方差。因此,之因此要估计参数,是由于咱们但愿用较少的参数去描述数据的整体分布。而能够这样作的前提是咱们对整体分布的形式是知晓的,只须要估计其中参数的值;不然咱们要借助非参数的方法了。php

参数估计的方法有多种,这里咱们分析三种基于几率的方法,分别是最大似然估计(Maximum Likelihood)、贝叶斯估计(Bayes)和最大后验估计(Maximum a posteriori)。咱们假设咱们观察的变量是x,观察的变量取值(样本)为\mathcal{D}=\{x_1, ...,x_N\},要估计的参数是\thetax的分布函数是p(x|\theta)(咱们用条件几率来显式地说明这个分布是依赖于\theta取值的)。实际中,x\theta均可以是几个变量的向量,这里咱们不妨认为它们都是标量。html

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

“似然”的意思就是“事情(即观察数据)发生的可能性”,最大似然估计就是要找到\theta的一个估计值,使“事情发生的可能性”最大,也就是使p(\mathcal{D}|\theta)最大。通常来讲,咱们认为屡次取样获得的x独立同分布的(iid)(假设样本之间都是相对独立的),这样算法

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

因为p(x_i)通常都比较小,且N通常都比较大,所以连乘容易形成浮点运算下溢,因此一般咱们都去最大化对应的对数形式函数

\theta_{ML}^{*}=argmax_{\theta}\{\Sigma_{i=1}^{N}{log{p(x_i|\theta)}}\}

具体求解释时,可对右式对\theta求导数,而后令为0,求出\theta值即为\theta_{ML}^{*}post

最大似然估计属于点估计,只能获得待估计参数的一个值。(1) 可是在有的时候咱们不只仅但愿知道\theta_{ML}^{*},咱们还但愿知道\theta取其它值得几率,即咱们但愿知道整个\theta在得到观察数据\mathcal{D}后的分布状况p(\theta|\mathcal{D}). (2) 最大似然估计仅仅根据(有限的)观察数据对整体分布进行估计,在数据量不大的状况下,可能不许确。例如咱们要估计人的平均体重,可是抽样的人都是小孩,这样咱们获得的平均体重就不能反映整体的分布,而咱们应该把“小孩之占总人口20%”的先验考虑进去。这时咱们能够用贝叶斯方法。spa

  • 贝叶斯估计 Bayes

使用Bayes公式,咱们能够把咱们关于\theta的先验知识以及在观察数据结合起来,用以肯定\theta的后验几率p(\theta|\mathcal{D}).net

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

其中Z_D=\int_{\theta} {p(\mathcal{D}|\theta)p(\theta)}\,\mathrm{d}\theta是累积因子,以保证p(\theta|\mathcal{D})和为1。要使用Bayes方法,咱们需有关于\theta的先验知识,即不一样取值的几率p(\theta)。好比\theta=1表示下雨,\theta=0表示不下雨,根据以往的经验咱们大致上有P(\theta=1)=0.01P(\theta=0)=0.99,在这种知识不足的时候,能够假设\theta是均匀分布的,即取各值的几率相等。htm

在某个肯定的\theta取值下,事件x的几率就是p(x|\theta),这是关于\theta的函数,好比一元正态分布p(x|\theta)=\frac{1}{\sqrt{2\pi}}exp(-\frac{(x-\theta)^2}{2})。与上一节中的同样,咱们认为各次取样是独立的,p(\mathcal{D}|\theta)能够分开来写,这样咱们就能够获得p(\theta|\mathcal{D})的一个表达式,不一样的\theta对应不一样的值。blog

根据得到的p(\theta|\mathcal{D}),咱们边能够取使其最大化的那个\theta取值,记为\theta_{B}^{*}。可能有人已经看出问题来了:咱们作了不少额外功,为了求得一个\theta_{B}^{*},咱们把\theta取其它值的状况也考虑了。固然在有的时候p(\theta|\mathcal{D})分布是有用的,可是有的时候咱们取并不须要知道p(\theta|\mathcal{D}),咱们只要那个\theta_{B}^{*}。最大后验估计这个时候就上场了。事件

  • 最大后验估计 MAP

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

\theta_{MAP}^{*}={argmax}_{\theta}\{ p(\theta|x)\}=argmax_{\theta}\{p(x|\theta)p(\theta)\}

与最大似然估计中同样,咱们一般最大化对应的对数形式:

\theta_{MAP}^{*}=argmax_{\theta}\{\log{p(x|\theta)}+\log{p(\theta)}\}

这样,咱们便无需去计算Z_{\mathcal{D}},也不须要求得具体的p(\theta|\mathcal{D})部分,即可以获得想要的\theta_{MAP}^{*}

总结一下:三种方法各有千秋,使用于不一样的场合。当对先验几率p(\theta)的估计没有信心,可使用最大似然估计(固然也可使用其它两种)。贝叶斯估计获得了后验几率的分布,最大似然估计适用于只须要知道使后验几率最大的那个\theta

另一方面,咱们能够感受到,最大似然估计和Bayes/MAP有很大的不一样,缘由在于后两种估计方法利用了先验知识p(\theta),若是利用恰当,能够获得更好的结果。其实这也是两大派别(Frequentists and Bayesians)的一个区别。

其余区别:

在先验几率能保证问题有解的状况下,最大似然估计和贝叶斯估计在训练样本趋近于无穷时获得的结果是同样的!可是实际的模式识别问题中,训练样本老是有限的,咱们应如何选择使用哪一种模型呢?下面简单分析分析:

(1) 计算复杂度:就实现的复杂度来讲,确定是有限选择最大似然估计,最大似然估计中只须要使用到简单的微分运算便可,而在贝叶斯估计中则须要用到很是复杂的多重积分,不只如此,贝叶斯估计相对来讲也更难理解;

(2)准确性:当采用的样本数据颇有限时,贝叶斯估计偏差更小,毕竟在理论上,贝叶斯估计有很强的理论和算法基础。

参数化估计的缺点: 
贝叶斯估计和最大似然估计都是属于参数化估计,那么两者存在着一个共同的缺点:参数化估计虽然使得类条件几率密度变得相对简单,但估计结果的准确性严重依赖于所假设的几率分布形式是否符合潜在的真实数据分布。在现实应用中,与作出能较好的接近潜在真实分布中的假设,每每须要必定程度上利用关于应用任务自己的经验知识,不然若仅凭“猜想”来假设几率分布形式,极可能产生误导性的结果!因此没有什么算法是十全十美的啦!

 

参考文献:

https://www.cnblogs.com/stevenbush/articles/3357803.html

http://blog.csdn.net/feilong_csdn/article/details/61633180

相关文章
相关标签/搜索