最大似然估计(Maximum likelihood estimation, 简称MLE)和最大后验概率估计(Maximum a posteriori estimation, 简称MAP)是很常用的两种参数估计方法,如果不理解这两种方法的思路,很容易弄混它们。下文将详细说明MLE和MAP的思路与区别。
首先从概率和统计讲起:
概率(Probability)和统计(statistics)看似两个相似的概念,实则研究的问题恰好相反。
概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。 举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计等等(选择参数),我想知道我养出来的猪大概能有多肥,肉质怎么样(预测结果)。
统计研究的问题则相反。统计是,有一堆数据,要利用这堆数据去预测模型和参数。仍以猪为例。现在我买到了一堆肉,通过观察和判断,我确定这是猪肉(这就确定了模型。在实际研究中,也是通过观察数据推测模型是/像高斯分布的、指数分布的、拉普拉斯分布的等等),然后,可以进一步研究,判定这猪的品种、这是圈养猪还是跑山猪还是网易猪,等等(推测模型参数)。
一句话总结:概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。
显然,本文解释的MLE和MAP都是统计领域的问题。它们都是用来推测参数的方法。为什么会存在着两种不同方法呢? 这需要理解贝叶斯思想。我们来看看贝叶斯公式。
贝叶斯公式就是在描述,你有多大把握能相信一件证据?(how much you can trust the evidence)
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
对于函数: P ( x ∣ θ ) P(x|\theta) P(x∣θ)
输入有两个: x x x表示具体的数据, θ \theta θ表示模型的参数。
如果 θ \theta θ是已知确定的, x x x是变量,这个函数叫做概率函数,它描述对于不同的样本点x,其出现概率是多少。
如果 x x x是已知确定的, θ \theta θ是变量,这个函数叫做似然函数, 它描述对于不同的模型参数,出现x这个样本点的概率是多少。
对于一个样本集合,既然是求该样本集合的θ,那我们得把得到该样本集合中某个元素xi的概率表示出来,记为:P(xi; θ),其中i = 1, 2, …, n,θ服从某分布(别问我服从什么分布,这里是为了讲解,应用时自己根据情况判断)。
既然样本集合中的元素相互独立,那样本集合的联合概率就是:
∏ i = 1 N P ( x i ∣ θ ) \displaystyle\prod_{i=1}^{N} P(x_i|\theta) i=1∏NP(xi∣θ)
这就是我这个样本集合的极大似然函数,记作:
L ( θ ) = L ( x 1 , x 2 , . . . , x n , θ ) = ∏ i = 1 N P ( x i ∣ θ ) L(\theta)=L(x_1,x_2,...,x_n,\theta)=\displaystyle\prod_{i=1}^{N} P(x_i|\theta) L(θ)=L(x1,x2,...,xn,θ)=i=1∏NP(xi∣θ)
有时候为了便于分析,两边取对数,得到:
此外,对L(θ)取对数将其变成连加的H(θ)还有一个原因:通常L(θ)中每个p(xi; θ)都很小,许多很小的数字相乘起来在计算机里很容易造成浮点数下溢,所以对其取对数将其变成连加的。
通过最大化似然函数,得到 θ \theta θ的估计值。
θ = a r g m a x L ( θ ) \theta=arg\ max\ L(\theta) θ=arg max L(θ)
例子如下:
可以看出,在 θ \theta θ = 0.7时,似然函数取得最大值。
这样,我们已经完成了对 θ \theta θ的最大似然估计。即,抛10次硬币,发现7次硬币正面向上,最大似然估计认为正面向上的概率是0.7。(ummm…这非常直观合理,对吧?)
且慢,一些人可能会说,硬币一般都是均匀的啊! 就算你做实验发现结果是“反正正正正反正正正反”,我也不信 θ \theta θ = 0.7
这里就包含了贝叶斯学派的思想了——要考虑先验概率。 为此,引入了最大后验概率估计。
最大似然估计是求参数θ, 使似然函数 P ( x 0 ∣ θ ) P(x_0 | \theta) P(x0∣θ)最大 。
最大后验概率估计则是最大化
P ( θ ∣ x 0 ) = P ( x 0 ∣ θ ) P ( θ ) P ( x 0 ) P(\theta|x_0)=\frac{P(x_0|\theta)P(\theta)}{P(x_0)} P(θ∣x0)=P(x0)P(x0∣θ)P(θ)
由于 x 0 x_0 x0是固定的,也就是最大化 P ( x 0 ∣ θ ) P ( θ ) P(x _0 ∣θ)P(θ) P(x0∣θ)P(θ)。求得的 θ \theta θ不单单让似然函数大,也让自己出现的先验概率 P ( θ ) P(\theta) P(θ)也得大。 (这有点像正则化里加惩罚项的思想,不过正则化里是利用加法,而MAP里是利用乘法)
MAP就是多个作为因子的先验概率 P ( θ ) P( θ ) P(θ)。或者,也可以反过来,认为MLE是把先验概率 P ( θ ) P(\theta) P(θ)认为等于1,即认为θ是均匀分布。