机器学习系列之最大后验估计(MAP)

绪论

假如我们有一个任务;已知数据和模型,来推测模型的参数。解决该问题,一般有两类方法:极大似然估计最大后验估计,关于极大似然估计,可以看我这篇博客:机器学习系列之极大似然估计(MLE)

例子

我们还是拿抛硬币来举例,假如现在有一个不规则的硬币,我们实验抛了10次,结果10次全部是正面。我们记硬币朝上的概率为 θ \theta θ 。如果按照极大似然估计的方法来求解,似然函数为:
L ( θ ) = C 10 10 θ 10 ( 1 − θ ) 0 L(\theta) = C_{10}^{10}{\theta}^{10}(1-\theta)^0 L(θ)=C1010θ10(1θ)0
最大该似然函数:
θ M L E = a r g max ⁡ L ( θ ) = 1 \theta_{MLE} = arg\max L(\theta) = 1 θMLE=argmaxL(θ)=1
即正面朝上的概率 θ \theta θ 为 1。

这时,贝叶斯就不同意了,他认为,大部分的硬币都是均匀的,出现这样的硬币本身就是一个概率特别小的事件,也就是我们同样需要考虑得到这样一枚硬币的概率。所以,最大后验估计就出来了,即最大化后验概率 p ( θ ∣ X ) p(\theta|X) p(θX)。从式子就可以看出它的意义很明确,就是已知观测到的数据 X X X ,求出可能性最大的那个 θ \theta θ
θ M A P = a r g max ⁡ p ( θ ∣ X ) = a r g max ⁡ p ( X ∣ θ ) p ( θ ) p ( X ) = a r g max ⁡ p ( X ∣ θ ) p ( θ ) \begin{aligned} {\theta}_{MAP} &= arg\max p(\theta| X)\\\\ &= arg\max{\frac{p(X|\theta)p(\theta)}{p(X)}}\\\\ &= arg\max {p(X|\theta)p(\theta)} \end{aligned} θMAP=argmaxp(θX)=argmaxp(X)p(Xθ)p(θ)=argmaxp(Xθ)p(θ)
式子中, X X X 是观测的样本分布,所以 p ( x ) p(x) p(x) 已知,所以舍弃。从式子中,我们可以看出 p ( X ∣ θ ) p(X|\theta) p(Xθ) 就是似然函数,它跟极大似然估计的区别就是多了一个 p ( θ ) p(\theta) p(θ)


这时,我们来继续解上面的抛硬币的例子,将上面的似然函数化简后带入公式:
θ M L E = a r g max ⁡ θ 10 p ( θ ) \theta_{MLE} = arg\max {\theta}^{10} p(\theta) θMLE=argmaxθ10p(θ)
假设取到一个正面朝上概率为1的硬币概率为0.01,取到正面朝上概率为0.9的硬币的概率为0.1。此时:
θ = 1 \theta = 1 θ=1时:
θ 10 p ( θ ) = 0.01 {\theta}^{10} p(\theta) = 0.01 θ10p(θ)=0.01
θ = 0.9 \theta = 0.9 θ=0.9时:
θ 10 p ( θ ) = 0.034 {\theta}^{10} p(\theta) = 0.034 θ10p(θ)=0.034
相比这两个结果,我们当然是取 θ = 0.9 \theta = 0.9 θ=0.9了, 这样就跟极大似然估计的结果不一样了

同时,当实验数据不断增加的时候,先验概率 p ( θ ) p(\theta) p(θ) 的作用会越来越小。假设我们现在抛了100次硬币都是正面,此时:

θ = 1 \theta = 1 θ=1时:
θ 100 p ( θ ) = 0.01 {\theta}^{100} p(\theta) = 0.01 θ100p(θ)=0.01
θ = 0.9 \theta = 0.9 θ=0.9时:
θ 100 p ( θ ) = 0.00000265 {\theta}^{100} p(\theta) = 0.00000265 θ100p(θ)=0.00000265
这是明显能看出,先验概率的影响小了很多。

总结

最大后验估计和极大似然估计本质上就是多了一个先验概率,并且,随着观测的样本数据越来越多时,先验概率的影响越来越小。我们可以看出,当样本很少很少的时候,先验概率很有作用,不至于让结果太离谱。

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