EM算法之不同的推导方法和自己的理解
一、前言
EM算法主要针对概率生成模型解决具有隐变量的混合模型的参数估计问题。
对于简单的模型,根据极大似然估计的方法可以直接得到解析解;可以在具有隐变量的复杂模型中,用MLE很难直接得到解析解,此时EM算法就发挥作用了。
E步解决隐变量的问题,M步求解模型的参数值,也就是极大似然的方法求取模型的参数值。
自己的理解:走一步看一步,走了看,看了再走,迭代过程。
首先使用估计的方式直接设置一组模型的参数值,这组模型的参数值是先验的,甚至可以说是我们瞎设的,这么设肯定不够准确呀,我们期望得到更更精确的参数值,那么就用现在的这组参数值去解决隐变量的问题,得到的隐变量,再根据隐变量得到后验的参数值。后验是根据观测到的数据在先验的基础上进行修正,以使得参数值更匹配这组数据。
二、概览
假设一组数据,\(X=\{x^i,x^2 \cdots ,x^n\}\), 包含 \(n\) 个独立的样本,这组样本由一组混合模型生成而来,我们希望 \(\theta\) 满足:
\[\arg\max_{\theta} logP(X|\theta)
\]
可是X是由一组混合模型而来,与隐变量 \(Z\) 有关,\(Z\) 表示样本归属于哪一个模型。
直接使用极大似然估计的方法求取上式很难由解析解,通过EM算法,转而求解:
\[\theta^{(t+1)} = \arg\max_{\theta} \int_Z \; P(Z|X,\theta^{(t)})\;logP(X,Z|\theta)
\]
通过不断的迭代求解,求得的\(\theta\) 可以使得 \(logP(X|\theta)\) 不断增大,达到我们的目的。
如果把已知的数据当成由一个概率模型生成的,那么 \(P(X|\theta)\) 可能会非常复杂,而且我们不知道 \(P(X|\theta)\) 的形式,两眼一抹黑,啥都不知道,因此就使用了归纳偏置,假定它服从于某个模型,对于生成模型,假设存在一个隐变量 \(Z\), \(Z\) 负责了 \(X\) 的生成,有了假设,那么\(P(X)\) 就有了一种结构,有了结构就好具体处理了。此时
\(P(X)=\int_{Z}P(X,Z)dZ\),把 \(P(X)\) 分解处理。
引入隐变量 \(Z\) 求取 \(\theta\)。
三、收敛性
通过上述方式得到的 \(\theta\) 真的可以达到我们的目的吗?即使得 \(logP(X|\theta)\) 极大。
\[\begin{aligned}
logP(X|\theta) &=log \frac {P(X,Z|\theta)}{P(Z|X,\theta)}\\
&=log {P(X,Z|\theta)} - log{P(Z|X,\theta)}
\end{aligned}
\]
左右两边同时对 \(P(Z|X,\theta^{(t)})\) 求取积分:
\[\begin{aligned}
左边&=\int_{Z}P(Z|X,\theta^{(t)}) log {P(X|\theta)} dZ\\
&=log {P(X|\theta)} \int_{Z}P(Z|X,\theta^{(t)})dZ\\
&=log {P(X|\theta)}
\end{aligned}
\]
\[\begin{aligned}
右边&=\int_{Z}P(Z|X,\theta^{(t)}) \left[log {P(X,Z|\theta)} - log{P(Z|X,\theta)}\right] dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)}) log {P(X,Z|\theta)} dZ - \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta)} dZ\\
&Q(\theta,\theta^{(t)}) = \int_{Z}P(Z|X,\theta^{(t)}) log {P(X,Z|\theta)} dZ\\
&H(\theta,\theta^{(t)}) = \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta)} dZ\\
&log {P(X|\theta^{(t+1)})} -log {P(X|\theta^{(t)})} = Q(\theta^{(t+1)},\theta^{(t)}) -Q(\theta^{(t)},\theta^{(t)}) + H(\theta^{(t)},\theta^{(t)}) -H(\theta^{(t+1)},\theta^{(t)})
\end{aligned}
\]
根据\(\theta^{(t+1)}\) 的求取公式,直接得出:
\[Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta,\theta^{(t)})
\]
此时令\(\theta = \theta^{(t)}\),则:
\[Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta^{(t)},\theta^{(t)})
\]
\[\begin{aligned}
H(\theta^{(t)},\theta^{(t)}) -H(\theta^{(t+1)},\theta^{(t)}&=\int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta^{(t)})}- \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta^{(t+1)})}dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)}) [log{P(Z|X,\theta^{(t)})}-log{P(Z|X,\theta^{(t+1)})}]dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)})log \frac{P(Z|X,\theta^{(t)})}{P(Z|X,\theta^{(t+1)})}dZ\\
&=KL(P(Z|X,\theta^{(t)}) \;||\; P(Z|X,\theta^{(t+1)})) \geq 0
\end{aligned}
\]
所以 $$log {P(X|\theta^{(t+1)})} -log {P(X|\theta^{(t)})} \geq 0$$
\[log {P(X|\theta^{(t+1)})} \geq log {P(X|\theta^{(t)})}
\]
四、完整的推导
Jesen不等式:当f是凹函数时:$$f[E] \geq E[f]$$
其中 \(f\) 表示凹函数,\(E\) 表示期望。比如说\(log[E(x)] \geq E[log(x)]\)
第一种推导方法
\[\begin{aligned}
log {P(X|\theta)} &= log \int_{Z}P(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)}] \geq E_{q(Z)}[log \frac{P(X,Z|\theta)}{q(Z)}]
\end{aligned}
\]
取等号时是\(\frac{P(X,Z|\theta)}{q(Z)}=C\)
我们把\(E_{q(Z)}[log \frac{P(X,Z|\theta)}{q(Z)}]\)叫做 \(ELBO\)
换句话说就是 \(ELBO\) 是 \(log {P(X|\theta)}\) 的下界,不停的增大ELBO,就可以不断的增大 \(log {P(X|\theta)}\)
在后面我们可以看到 $ \int_Z ; P(Z|X,\theta^{(t)});logP(X,Z|\theta)$ 就是这里的 \(ELBO\)
第二种推导方法
\[\begin{aligned}
log {P(X|\theta)} &=log\frac{P(X,Z|\theta)}{P(Z|X,\theta)}\\
&=log P(X,Z|\theta) - log P(Z|X,\theta)\\
&=log \frac {P(X,Z|\theta)}{q(Z)} - \frac {log P(Z|X,\theta)}{q(Z)}
\end{aligned}
\]
等式两边同时关于分布 \(q(Z)\) 求期望(两边同时对 \(q(Z)\) 求积分)
左边还是等于左边(具体步骤参考上面)
\[\begin{aligned}
右边 &= \int_{Z}q(Z)log \frac {P(X,Z|\theta)}{q(Z)}dZ-\int_{Z}q(Z)log \frac {log P(Z|X,\theta)}{q(Z)}dZ\\
& = ELBO+KL(q(Z)\;||\;P(Z|X,\theta))
\end{aligned}
\]
当 \(q(Z)与P(Z|X,\theta)\) 同分布时取等号。
因此:
E步:找到一个q = p
M步:(多种不同的形式)
\[\begin{aligned}
&\arg\max_{\theta} \int_{Z}q(Z)log \frac {P(X,Z|\theta)}{q(Z)}dZ \\ &\arg\max_{\theta}\int_{Z}q(Z)log {P(X,Z|\theta)}dZ\\ &\arg\max_{\theta}\int_{Z}P(Z|X,\theta^{(t)})log {P(X,Z|\theta)}dZ\\
&\arg\max_{\theta}\sum_{Z}P(Z|X,\theta^{(t)})log {P(X,Z|\theta)}
\end{aligned}
\]
题外话:在GMM中,我们直接把 \(q(Z)\) 写为 \(P(Z|X,\theta)\),也就是Z的后验。此时
\[log P(X|\theta) = ELBO
\]
当我们不停的极大化 \(ELBO\) 时,就是在极大化 $ log P(X|\theta)$。
自己的理解就是从极大化 \(log P(X|\theta)\) 这个任务 变成了 极大化 \(log P(X,Z|\theta)\)这个任务。
因为直接极大化 \(log P(X|\theta)\) 这个任务我们做不出来,然后引入了隐变量 \(Z\)(对应样本属于哪个模型的分布) 来帮助我们解决问题。从一阶段变成了二阶段:求他们的联合分布的概率最大化。
五、广义EM
\[logP(X|\theta) = ELBO+KL(q(Z)||P(Z|X,\theta))
\]
令
\[L(q,\theta)=ELBO = E_{q(Z)}[ log\frac{P(X,Z|\theta)} {q(Z)}]
\]
发散一下
\(logP(X|\theta) = E_{q(Z)}[ log{P(X,Z|\theta)}]-E_{q(Z)}[log \;q(Z)]+KL(q(Z)||P(Z|X,\theta))\)
\(= E_{q(Z)}[ log{P(X,Z|\theta)}]+H(q(Z))+KL(q(Z)||P(Z|X,\theta))\)
\(= E_{q(Z)}[ log{P(X,Z|\theta)}]+H(q(Z),P(Z|X,\theta))\)
E-step:固定 \(\theta\),找出q,此时 \(logP(X|\theta)\)是定值:
\[\begin{aligned}
q^{(t+1)} &= \arg\min_{q}KL(q||P) = \arg\max_{q}ELBO\\& = \arg\max_{q} L(q,\theta^{(t)})\\&=\arg\max_{\theta} E_{q(Z)}[ log\frac{P(X,Z|\theta^{(t)})} {q(Z)}]
\end{aligned}
\]
M-step:固定 \(q\),找出 \(\theta\):
\[\begin{aligned}
\theta^{(t+1)} &= \arg\max_{\theta}ELBO =\arg\max_{\theta} L(q^{(t+1)},\theta)\\&= \arg\max_{\theta} E_{q^{(t+1)}(Z)}[ log\frac{P(X,Z|\theta)} {q^{(t+1)}(Z)}]\\&=
\arg\max_{\theta} E_{q^{(t+1)}(Z)}[ log{P(X,Z|\theta)} ]
\end{aligned}
\]