我是靠谱客的博主 寂寞小松鼠,最近开发中收集的这篇文章主要介绍最大似然和EM算法最大似然EM算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最大似然

    你知道一个分布,但是不知道分布的具体参数,比如你知道学校男生身高分布服从高斯分布,但是你不知道其参数,即 θ = [ u , σ ] theta=[u,sigma] θ=[u,σ]。这是就可以使用最大似然来求解参数。
    首先需要从该分布中采样获取数据,比如你获取了 N N N个数据,就可以得到其似然函数,如下:
L ( θ ) = L ( x 1 , … , x n ; θ ) = ∏ i = 1 N p ( x i ; θ ) L(theta)=L(x_1,dots,x_n;theta)=prod_{i=1}^Np(x_i;theta) L(θ)=L(x1,,xn;θ)=i=1Np(xi;θ)
其中,每次采样获得的 x i x_i xi都是独立同分布服从 N ( u , σ ) N(u,sigma) N(u,σ),所以似然函数可以理解为采样获得这组数据的概率。
    为了求得参数 θ ^ hat{theta} θ^,我们只要求:
θ ^ = arg ⁡ max ⁡ θ log ⁡ L ( θ ) hat{theta}=argmax_thetalog L(theta) θ^=argθmaxlogL(θ)
那为什么 θ ^ hat{theta} θ^就是我们所需要的参数呢,这个就是最大似然的思想:采样得到的数据客观来讲就是概率最大数据。举个最简单的例子,从装有8个黑球和2个红球的袋子中随机取出一个球,在没看到这个球的颜色前,要你猜一个你肯定会猜是黑色的。如果还是不理解可以参考下面的链接。

EM算法

    EM算法是在最大似然的基础上的,就刚刚学校男生身高的例子中,如果给你采样的数据中有男生也有女生,明显男生女生身高服从不同的分布,那如何来求出我们所需要的 θ theta θ呢?这边我们需要引入隐变量 Z Z Z。同样我们还是要最大化似然函数,为了方便我们记似然函数为:
L ( θ ) = p ( X ∣ θ ) L(theta)=p(X|theta) L(θ)=p(Xθ)
这个和上面的似然函数的表达式是等价的, X X X就是我们采样得到的数据。

算法推导一

目标:
θ ^ = arg ⁡ max ⁡ θ log ⁡ p ( X ∣ θ ) hat{theta}=argmax_thetalog p(X|theta) θ^=argθmaxlogp(Xθ)
log ⁡ p ( X ∣ θ ) = log ⁡ p ( X , Z ∣ θ ) − log ⁡ p ( Z ∣ X , θ ) = log ⁡ p ( X , Z ∣ θ ) q ( Z ) − log ⁡ p ( Z ∣ X , θ ) q ( Z ) ( 引 入 概 率 密 度 q ( Z ) 不 为 0 ) begin{aligned} log p(X|theta)&=log p(X,Z|theta)-log p(Z|X,theta) \ &=log frac{p(X,Z|theta)}{q(Z)}-log frac{p(Z|X,theta)}{q(Z)}(引入概率密度q(Z)不为0) end{aligned} logp(Xθ)=logp(X,Zθ)logp(ZX,θ)=logq(Z)p(X,Zθ)logq(Z)p(ZX,θ)(q(Z)0)
等号两边都乘以 q ( Z ) q(Z) q(Z),然后对 Z Z Z积分,得到:
log ⁡ p ( X ∣ θ ) = E L B O + K L ( q ∣ ∣ p ) log p(X|theta)=ELBO+KL(q||p) logp(Xθ)=ELBO+KL(qp)
K L ( q ∣ ∣ p ) = ∫ Z q ( Z ) log ⁡ p ( Z ∣ X , θ ) q ( Z ) d Z ≥ 0 KL(q||p)=int_Zq(Z)log frac{p(Z|X,theta)}{q(Z)}dZge0 KL(qp)=Zq(Z)logq(Z)p(ZX,θ)dZ0,可以用jensen不等式证明。
补充jensen不等式:


如果 f ( x ) f(x) f(x)为凸函数,则 E [ f ( x ) ] ≥ f ( E [ x ] ) E[f(x)]ge f(E[x]) E[f(x)]f(E[x]),凹函数则相反。上式等号成立时, p ( Z ∣ X , θ ) q ( Z ) frac{p(Z|X,theta)}{q(Z)} q(Z)p(ZX,θ)取常数,即 p ( Z ∣ X , θ ) q ( Z ) = c frac{p(Z|X,theta)}{q(Z)}=c q(Z)p(ZX,θ)=c ∫ Z p ( Z ∣ X , θ ) d Z = c ∫ Z q ( Z ) d Z ⇒ c = 1 int_Zp(Z|X,theta)dZ=cint_Zq(Z)dZRightarrow c=1 Zp(ZX,θ)dZ=cZq(Z)dZc=1,所以得 q ( Z ) = p ( Z ∣ X , θ ( t ) ) q(Z)=p(Z|X,theta^{(t)}) q(Z)=p(ZX,θ(t))


我们取 q ( Z ) = p ( Z ∣ X , θ ( t ) ) q(Z)=p(Z|X,theta^{(t)}) q(Z)=p(ZX,θ(t)),EM算法为迭代算法, θ ( t ) theta^{(t)} θ(t)为上一轮得到的 θ ^ hat{theta} θ^
那么我们要求使得 log ⁡ p ( X ∣ θ ) log p(X|theta) logp(Xθ)最大的 θ theta θ值,而ELBO是其下届,我们只要不断最大化下届即可,如下式:
θ ^ = arg ⁡ max ⁡ θ E L B O = arg ⁡ max ⁡ θ ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( X , Z ∣ θ ) p ( Z ∣ X , θ ( t ) ) d Z = arg ⁡ max ⁡ θ ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( X , Z ∣ θ ) d Z begin{aligned} hat{theta}&=argmax_theta ELBO\ &=argmax_thetaint_Zp(Z|X,theta^{(t)})logfrac{p(X,Z|theta)}{p(Z|X,theta^{(t)})}dZ\ &=argmax_thetaint_Zp(Z|X,theta^{(t)})log p(X,Z|theta)dZ end{aligned} θ^=argθmaxELBO=argθmaxZp(ZX,θ(t))logp(ZX,θ(t))p(X,Zθ)dZ=argθmaxZp(ZX,θ(t))logp(X,Zθ)dZ
    最后的EM算法总结为:
E-step:
q ( Z ) = p ( Z ∣ X , θ ( t ) ) q(Z)=p(Z|X,theta^{(t)}) q(Z)=p(ZX,θ(t))
M-step:
θ ^ = arg ⁡ max ⁡ θ ∫ Z p ( Z ∣ X , θ ( t ) ) log ⁡ p ( X , Z ∣ θ ) d Z hat{theta}=argmax_thetaint_Zp(Z|X,theta^{(t)})log p(X,Z|theta)dZ θ^=argmaxθZp(ZX,θ(t))logp(X,Zθ)dZ
循环E-step,M-step,直到参数 θ theta θ收敛。

算法推导二

目标函数还是一样的,但是处理方式不同,如下:
log ⁡ p ( X ∣ θ ) = log ⁡ ∫ Z p ( X , Z ∣ θ ) d Z = log ⁡ ∫ Z p ( X , Z ∣ θ ) q ( Z ) q ( Z ) d Z = log ⁡ E q ( Z ) [ p ( X , Z ∣ θ ) q ( Z ) ] ( 使 用 j e n s e n 不 等 式 ) ≥ E q ( Z ) [ log ⁡ p ( X , Z ∣ θ ) q ( Z ) ] begin{aligned} log p(X|theta)&=log int_Zp(X,Z|theta)dZ \ &=log int_Zfrac{p(X,Z|theta)}{q(Z)}q(Z)dZ\ &=log E_{q(Z)}[frac{p(X,Z|theta)}{q(Z)}](使用jensen不等式)\ &ge E_{q(Z)}[logfrac{p(X,Z|theta)}{q(Z)}] end{aligned} logp(Xθ)=logZp(X,Zθ)dZ=logZq(Z)p(X,Zθ)q(Z)dZ=logEq(Z)[q(Z)p(X,Zθ)](使jensen)Eq(Z)[logq(Z)p(X,Zθ)]
等号成立时, p ( X , Z ∣ θ ( t ) ) = c q ( Z ) p(X,Z|theta^{(t)})=cq(Z) p(X,Zθ(t))=cq(Z),两边对 Z Z Z积分得:
∫ Z p ( X , Z ∣ θ ( t ) ) d Z = c ∫ Z q ( Z ) d Z ⇒ c = p ( X ∣ θ ( t ) ) q ( Z ) = p ( X , Z ∣ θ ( t ) ) c = p ( X , Z ∣ θ ( t ) ) p ( X ∣ θ ( t ) ) = p ( Z ∣ X , θ ( t ) ) begin{aligned} &int_Z p(X,Z|theta^{(t)})dZ=cint_Zq(Z)dZ\ &Rightarrow c=p(X|theta^{(t)})\ &q(Z)=frac{p(X,Z|theta^{(t)})}{c}=frac{p(X,Z|theta^{(t)})}{p(X|theta^{(t)})}=p(Z|X,theta^{(t)}) end{aligned} Zp(X,Zθ(t))dZ=cZq(Z)dZc=p(Xθ(t))q(Z)=cp(X,Zθ(t))=p(Xθ(t))p(X,Zθ(t))=p(ZX,θ(t))
结论和上面一致。
参考:
https://blog.csdn.net/zouxy09/article/details/8537620
https://www.bilibili.com/video/av31906558/?p=1

最后

以上就是寂寞小松鼠为你收集整理的最大似然和EM算法最大似然EM算法的全部内容,希望文章能够帮你解决最大似然和EM算法最大似然EM算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部