极大似然估计与最大后验估计

一、背景知识

1.1 似然函数

似然函数,是根据已知结果去推测固有性质的可能性(likelihood),是对固有性质的拟合程度,所以不能称为概率。假设是否堵车,受天气,路上的车辆的数量和事故影响,这里只关心堵车和事故之间的关系,如果发生了事故,那么对堵车这一属性的拟合程度有多大。和后验概率非常像,区别在于似然函数把堵车看成一个肯定存在的属性,而后验概率把堵车看成一个随机变量。

先看似然函数的定义,它是给定联合样本值x下关于(未知)参数 θ \theta θ 的函数: L ( θ ∣ x ) = f ( x ∣ θ ) L(\theta|x)=f(x|\theta) L(θx)=f(xθ)
这里的小x是指联合样本随机变量X取到的值,即 X = x X=x X=x
这里的 θ \theta θ是指未知参数,它属于参数空间;
这里的 f ( x ∣ θ ) f(x|\theta) f(xθ)是一个密度函数,特别地,它表示(给定) θ \theta θ下关于联合样本值的联合密度函数。所以从定义上,似然函数和密度函数是完全不同的两个数学对象:前者是关于 θ \theta θ的函数,后者是关于x的函数。所以这里的等号 = = = 理解为函数值形式的相等,而不是两个函数本身是同一函数(根据函数相等的定义,函数相等当且仅当定义域相等并且对应关系相等)。

说完两者的区别,再说两者的联系。
(1)如果X是离散的随机向量,那么其概率密度函数 f ( x ∣ θ ) f(x|\theta) f(xθ)可改写为 f ( x ∣ θ ) = P θ ( X = x ) f(x|\theta)=P_\theta(X=x) f(xθ)=Pθ(X=x) ,即代表了在参数 θ \theta θ下随机向量X取到值x的可能性;并且,如果我们发现
L ( θ 1 ∣ x ) = P θ 1 ( X = x ) > P θ 2 ( X = x ) = L ( θ 2 ∣ x ) L(\theta_1|x)=P_{\theta_1}(X=x)>P_{\theta_2}(X=x)=L(\theta_2|x) L(θ1x)=Pθ1(X=x)>Pθ2(X=x)=L(θ2x)
那么似然函数就反应出这样一个朴素推测:在参数 θ 1 \theta_1 θ1下随机向量取到值的可能性大于 在参数 θ 2 \theta_2 θ2下随机向量取到值的可能性。换句话说,我们更有理由相信(相对于 θ 2 \theta_2 θ2来说) θ 1 \theta_1 θ1更有可能是真实值。这里的可能性由概率来刻画。
(2)如果是连续的随机向量,那么其密度函数 f ( x ∣ θ ) f(x|\theta) f(xθ)本身(如果在x连续的话)在x处的概率为0,为了方便考虑一维情况:给定一个充分小 ϵ > 0 \epsilon>0 ϵ>0,那么随机变量取值在区间 ( x − ϵ , x + ϵ ) (x-\epsilon, x+\epsilon) (xϵ,x+ϵ)内的概率即为
P θ ( x − ϵ < X < x + ϵ ) = ∫ x − ϵ x + ϵ f ( x ∣ θ ) d x ≈ 2 ϵ f ( x ∣ θ ) = 2 ϵ L ( θ ∣ x ) P_\theta(x-\epsilon < X < x+\epsilon)=\int_{x-\epsilon}^{x+\epsilon}f(x|\theta)dx \approx 2\epsilon f(x|\theta) = 2\epsilon L(\theta|x) Pθ(xϵ<X<x+ϵ)=xϵx+ϵf(xθ)dx2ϵf(xθ)=2ϵL(θx)
并且两个未知参数的情况下做比就能约掉 2 ϵ 2\epsilon 2ϵ,所以和离散情况下的理解一致,只是此时似然所表达的那种可能性和概率 f ( x ∣ θ ) = 0 f(x|\theta)=0 f(xθ)=0无关。

综上,概率(密度)表达给定 θ \theta θ下样本随机向量的可能性,而似然表达了给定样本 X = x X=x X=x下参数 θ 1 \theta_1 θ1(相对于另外的参数 θ 2 \theta_2 θ2)为真实值的可能性。我们总是对随机变量的取值谈概率,而在非贝叶斯统计的角度下,参数是一个实数而非随机变量,所以我们一般不谈一个参数的概率。

最后我们再回到 L ( θ ∣ x ) = f ( x ∣ θ ) L(\theta|x)=f(x|\theta) L(θx)=f(xθ)这个表达。首先我们严格记号,竖线|表示条件概率或者条件分布,分号;表示把参数隔开。所以这个式子的严格书写方式是 L ( θ ∣ x ) = f ( x ; θ ) L(\theta|x)=f(x;\theta) L(θx)=f(x;θ)因为 θ \theta θ在右端只当作参数理解。

1.2 频率学派和贝叶斯派

在说极大似然估计(Maximum Likelihood Estimate)与最大后验概率估计(Maximum A Posteriori estimation)之前,不得不说对于概率看法不同的两大派别频率学派与贝叶斯派。他们看待世界的视角不同,导致他们对于产生数据的模型参数的理解也不同。

  • 频率学派
    他们认为世界是确定的。他们直接为事件本身建模,也就是说事件在多次重复实验中趋于一个稳定的值p,那么这个值就是该事件的概率。他们认为模型参数是个定值,希望通过类似解方程组的方式从数据中求得该未知数。这就是频率学派使用的参数估计方法-极大似然估计(MLE),这种方法往往在 大数据量 的情况下可以很好的还原模型的真实情况。

  • 贝叶斯派
    他们认为世界是不确定的,因获取的信息不同而异。假设对世界先有一个预先的估计,然后通过获取的信息来不断调整之前的预估计。 他们不试图对事件本身进行建模,而是从旁观者的角度来说。因此对于同一个事件,不同的人掌握的先验不同的话,那么他们所认为的事件状态也会不同。
    他们认为模型参数源自某种潜在分布,希望从数据中推知该分布。对于数据的观测方式不同或者假设不同,那么推知的该参数也会因此而存在差异。这就是贝叶斯派视角下用来估计参数的常用方法-最大后验概率估计(MAP),这种方法在先验假设比较靠谱的情况下效果显著,随着数据量的增加,先验假设对于模型参数的主导作用会逐渐削弱,相反真实的数据样例会大大占据有利地位。极端情况下,比如把先验假设去掉,或者假设先验满足均匀分布的话,那她和极大似然估计就如出一辙了。
    极大似然估计与最大后验概率估计

二、极大似然估计

极大似然估计的核心思想是:认为当前发生的事件是概率最大的事件。因此就可以给定的数据集,使得该数据集发生的概率最大来求得模型中的参数。似然函数如下:
p ( X ∣ θ ) = ∏ x 1 x n p ( x i ∣ θ ) p(X|\theta)=\prod_{x_1}^{x_n}p(x_i|\theta) p(Xθ)=x1xnp(xiθ)
为了便于计算,我们对似然函数两边取对数,生成新的对数似然函数(因为对数函数是单调增函数,因此求似然函数最大化就可以转换成对数似然函数最大化):
p ( X ∣ θ ) = ∏ x 1 x n p ( x i ∣ θ ) = ∑ x 1 x n l o g p ( x i ∣ θ ) p(X|\theta)=\prod_{x_1}^{x_n}p(x_i|\theta)=\sum_{x_1}^{x_n}log p(x_i|\theta) p(Xθ)=x1xnp(xiθ)=x1xnlogp(xiθ)
求对数似然函数最大化,可以通过一阶优化算法如sgd或者二阶优化算法如Newton求解。

极大似然估计只关注当前的样本,也就是只关注当前发生的事情,不考虑事情的先验情况。由于计算简单,而且不需要关注先验知识,因此在机器学习中的应用非常广,最常见的就是逻辑回归的求解就是用的极大似然估计。

三、最大后验估计

和最大似然估计不同的是,最大后验估计中引入了先验概率(先验分布属于贝叶斯学派引入的,像L1,L2正则化就是对参数引入了拉普拉斯先验分布和高斯先验分布),最大后验估计可以写成下面的形式:
a r g m a x p ( x ) = a r g m a x p ( X ∣ θ ) p ( θ ) p ( X ) = a r g m a x P ( X ∣ θ ) p ( θ ) = a r g m a x ( ∏ x 1 x n p ( x i ∣ θ ) ) p ( θ ) argmax p(x)= argmax \frac{p(X|\theta)p(\theta)}{p(X)}=argmax P(X|\theta)p(\theta)=argmax(\prod_{x_1}^{x_n}p(x_i|\theta))p(\theta) argmaxp(x)=argmaxp(X)p(Xθ)p(θ)=argmaxP(Xθ)p(θ)=argmax(x1xnp(xiθ))p(θ)
在求最大后验概率时,可以忽略分母 p ( X ) p(X) p(X),因为该值不影响对 θ θ θ的估计。

同样为了便于计算,对两边取对数,后验概率最大化就变成了:(在极大似然法估计的过程中,因为极大似然假设[公式]是一个定值而不是一个随机变量,并不假设它的分布情况而当作一个常量处理所以p([公式])=1带入map的式子消去就得到了mle的极大似然函数式了)
a r g m a x ( ∑ x 1 x n l o g p ( x i ∣ θ ) + l o g p ( θ ) ) argmax(\sum_{x_1}^{x_n}log p(x_i|\theta)+logp(\theta)) argmax(x1xnlogp(xiθ)+logp(θ))
我们和极大似然估计( p ( X ∣ θ ) = ∏ x 1 x n p ( x i ∣ θ ) = ∑ x 1 x n l o g p ( x i ∣ θ ) p(X|\theta)=\prod_{x_1}^{x_n}p(x_i|\theta)=\sum_{x_1}^{x_n}log p(x_i|\theta) p(Xθ)=x1xnp(xiθ)=x1xnlogp(xiθ))比较一下:最大后验估计不只是关注当前的样本的情况,还关注已经发生过的先验知识。

最大后验估计和极大似然估计的区别:最大后验估计允许我们把先验知识加入到估计模型中,对于逻辑回归,在公式上的表达就是多了一个log P(theta)的项,这在样本很少的时候是很有用的(因此朴素贝叶斯在较少的样本下就能有很好的表现),因为样本很少的时候我们的观测结果很可能出现偏差,此时先验知识会把估计的结果“拉”向先验,实际的预估结果将会在先验结果的两侧形成一个顶峰。通过调节先验分布的参数,比如beta分布的α,β,我们还可以调节把估计的结果“拉”向先验的幅度,α,β越大,这个顶峰越尖锐。这样的参数,我们叫做预估模型的“超参数”。(但是这也和我们选取的先验有关,如果先验的概率选取不当反而会适得其反)

参考文献

[1] 如何理解似然函数
[2] 先验概率,后验概率与似然函数
[3] 极大似然估计与最大后验概率估计
[4] 极大似然估计、最大后验估计和贝叶斯估计

你可能感兴趣的:(机器学习)