MLE、MAP、BE_最大似然估计、最大后验估计及贝叶斯估计
0.引言
总结放在前:
在对事物建模时,用 θ \theta θ 表示模型的参数,请注意,解决问题的本质就是求 θ \theta θ :
-
MLE: 最大似然估计思想为,观测数据(样本)发生概率最大的参数就是最好的参数(谁大像谁):
θ ∗ = a r g m a x θ p ( X ∣ θ ) = a r g m a x θ ∏ x 1 x n p ( x i ∣ θ ) = a r g m a x θ ∑ x 1 x n log p ( x i ∣ θ ) = a r g m m i n θ − ∑ x 1 x n log p ( x i ∣ θ ) \theta ^* = \underset{\theta}{{argmax}} \operatorname{p}(X \mid \theta) = \underset{\theta}{{argmax}} \prod_{x_1}^{x_n} p(x_i \mid \theta) = \underset{\theta}{{argmax}} \sum_{x_1}^{x_n} \log p(x_i \mid \theta) = \underset{\theta}{{argmmin}} -\sum_{x_1}^{x_n} \log p(x_i \mid \theta) θ∗=θargmaxp(X∣θ)=θargmaxx1∏xnp(xi∣θ)=θargmaxx1∑xnlogp(xi∣θ)=θargmmin−x1∑xnlogp(xi∣θ)
使似然函数 P ( X ∣ θ ) P(X|θ) P(X∣θ) 最大的参数 θ θ θ 即为最好的 θ θ θ 。MLE只关注当前发生的事情,不考虑事情的先验情况。 -
MAP : 最大后验估计中引入了先验概率。
θ
∗
=
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
(
θ
)
\theta ^* =\underset{\theta}{{argmax}} \operatorname{p}(\theta \mid X)=\underset{\theta}{{argmax}} \frac{p(X \mid \theta) p(\theta)}{p(X)}= \underset{\theta}{{argmax}} \operatorname{p}(X \mid \theta) p(\theta)=\underset{\theta}{{argmax}} \left(\prod_{x 1}^{x n} p(x i \mid \theta)\right) p(\theta)
θ∗=θargmaxp(θ∣X)=θargmaxp(X)p(X∣θ)p(θ)=θargmaxp(X∣θ)p(θ)=θargmax(x1∏xnp(xi∣θ))p(θ)
等式后面同样采用负对数求最小值,就不在展开了。最大后验估计不只是关注当前的样本的情况,还关注已经发生过的先验知识。有点类似kalman滤波,考虑先验概率进行权衡取舍。最大后验概率分布认为
θ
θ
θ 是一个随机变量,即
θ
θ
θ 具有某种概率分布,称为先验分布,求解时除了要考虑似然函数
P
(
X
∣
θ
)
P(X|θ)
P(X∣θ) 之外,还要考虑
θ
θ
θ 的先验分布
P
(
θ
)
P(θ)
P(θ),因此其认为使
P
(
X
∣
θ
)
P
(
θ
)
P(X|θ)P(θ)
P(X∣θ)P(θ) 取最大值的
θ
θ
θ 就是最好的
θ
θ
θ。
后续内容则转载自ref01.
1、贝叶斯公式
这三种方法都和贝叶斯公式有关,所以我们先来了解下贝叶斯公式:
p ( θ ∣ X ) = p ( X ∣ θ ) p ( θ ) p ( X ) p(\theta \mid X)=\frac{p(X \mid \theta) p(\theta)}{p(X)} p(θ∣X)=p(X)p(X∣θ)p(θ)
每一项的表示如下:
p o s t e r i o r = l i k e h o o d ∗ p r i o r e v i d e n c e { posterior }=\frac{ { likehood } * { prior }}{ { evidence }} posterior=evidencelikehood∗prior
-
prior:参数 θ \theta θ的先验概率,一般是根据人的先验知识来得出的。比如人们倾向于认为抛硬币实验会符合先验分布:beta分布。当我们选择beta分布的参数 α = β = 0.5 \alpha=\beta=0.5 α=β=0.5时,代表人们认为抛硬币得到正反面的概率都是0.5。在kalman滤波中,先验估计,是指通过系统模型推算出的具有不确定性的估计。
-
posterior:通过样本X得到参数 θ \theta θ的概率,也就是后验概率。后验估计,在kalman滤波中,指经过校正后,更加接近真实值的估计。
-
likehood:通过参数 θ \theta θ得到样本X的概率,似然函数,通常就是我们的数据集的表现。是假设 θ \theta θ已知后我们观察到的数据应该是什么样子的。
-
evidence: p ( X ) = ∫ p ( X ∣ θ ) p ( θ ) d θ p(X)=\int p(X \mid \theta) p(\theta) d \theta p(X)=∫p(X∣θ)p(θ)dθ,样本X发生的概率,是各种条件下发生的概率的积分。
贝叶斯: 先验 (prior) + 似然 (likelihood) -->后验 (posterior)
2、极大似然估计(MLE)
极大似然估计的核心思想是:认为当前发生的事件是概率最大的事件,或者说最大似然估计的思想是使得观测数据(样本)发生概率最大的参数就是最好的参数(谁大像谁)。因此就可以给定的数据集,使得该数据集发生的概率最大来求得模型中的参数。似然函数如下:
p ( X ∣ θ ) = ∏ x 1 x n p ( x i ∣ θ ) p(X \mid \theta)=\prod_{x_1}^{x_n} p(x_i \mid \theta) p(X∣θ)=x1∏xnp(xi∣θ)
为了便于计算,我们对似然函数两边取对数,生成新的对数似然函数(因为对数函数是单调增函数,因此求似然函数最大化就可以转换成对数似然函数最大化):
p ( X ∣ θ ) = ∏ x 1 x n p ( x i ∣ θ ) = ∑ x 1 x n log p ( x i ∣ θ ) p(X \mid \theta)=\prod_{x_1}^{x_n} p(x_i \mid \theta)=\sum_{x_1}^{x_n} \log p(x_i \mid \theta) p(X∣θ)=x1∏xnp(xi∣θ)=x1∑xnlogp(xi∣θ)
求对数似然函数最大化,可以通过导数为0来求解。
极大似然估计只关注当前的样本,也就是只关注当前发生的事情,不考虑事情的先验情况。由于计算简单,而且不需要关注先验知识,因此在机器学习中的应用非常广,最常见的就是逻辑回归。
3、最大后验估计(MAP)
和最大似然估计不同的是,最大后验估计中引入了先验概率(先验分布属于贝叶斯学派引入的,像L1,L2正则化就是对参数引入了拉普拉斯先验分布和高斯先验分布),而且最大后验估计要求的是
p ( θ ∣ X ) p(\theta \mid X) p(θ∣X)
最大后验估计可以写成下面的形式:
a r g m a x p ( θ ∣ X ) = argmax 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} \operatorname{p}(\theta \mid X)=\operatorname{argmax} \frac{p(X \mid \theta) p(\theta)}{p(X)}=argmax\operatorname{p}(X \mid \theta) p(\theta)={argmax}\left(\prod_{x 1}^{x n} p(x i \mid \theta)\right) p(\theta) argmaxp(θ∣X)=argmaxp(X)p(X∣θ)p(θ)=argmaxp(X∣θ)p(θ)=argmax(x1∏xnp(xi∣θ))p(θ)
在求最大后验概率时,可以忽略分母 p ( X ) p(X) p(X),因为该值不影响对 θ θ θ的估计。
同样为了便于计算,对两边取对数,后验概率最大化就变成了:
a r g m a x ( ∑ x 1 x n l o g p ( x i ∣ θ ) + l o g p ( θ ) ) {argmax}\left(\sum_{x 1}^{x n}log \operatorname{p}(x i \mid \theta)+log \operatorname{p}(\theta)\right) argmax(x1∑xnlogp(xi∣θ)+logp(θ))
最大后验估计不只是关注当前的样本的情况,还关注已经发生过的先验知识。在朴素贝叶斯中会有最大后验概率的应用,但并没有用上最大后验估计来求参数(因为朴素贝叶斯中的 θ θ θ其实就是分类的类别)。
最大后验估计和最大似然估计的区别:最大后验估计允许我们把先验知识加入到估计模型中,这在样本很少的时候是很有用的(因此朴素贝叶斯在较少的样本下就能有很好的表现),因为样本很少的时候我们的观测结果很可能出现偏差,此时先验知识会把估计的结果“拉”向先验,实际的预估结果将会在先验结果的两侧形成一个顶峰。通过调节先验分布的参数,比如beta分布的 α α α, β β β,我们还可以调节把估计的结果“拉”向先验的幅度, α α α, β β β越大,这个顶峰越尖锐。这样的参数,我们叫做预估模型的“超参数”。
4、贝叶斯估计(BE)
贝叶斯估计和极大后验估计有点相似,都是以最大化后验概率为目的。区别在于:
-
1)极大似然估计和极大后验估计都是只返回了预估值。
-
2)极大后验估计在计算后验概率的时候,把分母p(X)给忽略了,在进行贝叶斯估计的时候则不能忽略
-
3)贝叶斯估计要计算整个后验概率的概率分布
对于一个特定的似然函数,如果我们选定一个先验概率分布,得到的后验概率分布和先验概率分布相同,则似然函数分布和先验概率分布就组成了一对共轭分布。此时训练出来的是后延概率分布,而不再是单一的值。
举几个例子:
-
likehood为高斯分布,prior为高斯分布,则posterior也为高斯分布。
-
likehood为伯努利分布(二项式分布),prior为beta分布,则posterior也为beta分布。
-
likehood为多项式分布,prior为Dirichlet分布(beta分布的一个扩展),则posterior也为Dirichlet(狄利克雷)分布。beta分布可以看作是dirichlet分布的特殊情况。
根据上面的描述,在实践中我们往往会选择共轭先验来简化。在把后验概率推导为和先验概率一样的分布形式的时候,分母p(X)其实可以看做一个常数,往往充当了一个normalize,归一化的作用。
求解的时候,既然我们根据先验分布知道了后验是什么分布,那我们求出后验分布的期望值(知道了分布情况就很容易求得期望值),即是需要估计的参数的值:
p = E { θ ∣ X } p=E\{\theta \mid X\} p=E{θ∣X}
贝叶斯估计相对于最大后验估计的好处还在于,贝叶斯估计计算了整个后验概率的分布,从而也能求出其他一些比如分布的方差之类的值来供参考,比如计算出来方差太大的,我们可以认为分布不够好,从而把这个当做选择超参数的一个考虑因素。实际上,贝叶斯估计会比MAP把估计的结果往先验结果“拉”的程度还提高了一些,从而使估计结果更靠近先验结果。
贝叶斯估计的应用有LDA主题模型。LDA主题模型通过共轭分布的特性来求出主题分布和词分布。