最大似然和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}=\arg\max_\theta\log 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}=\arg\max_\theta\log 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)}dZ\ge0 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=c\int_Zq(Z)dZ\Rightarrow 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}&=\arg\max_\theta ELBO\\ &=\arg\max_\theta\int_Zp(Z|X,\theta^{(t)})\log\frac{p(X,Z|\theta)}{p(Z|X,\theta^{(t)})}dZ\\ &=\arg\max_\theta\int_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}=\arg\max_\theta\int_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_Z\frac{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)}[\log\frac{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=c\int_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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值