之前对EM一直没有一个直观的理解,只知道可以用来求解含隐变量的参数估计,但是一直不懂Q函数是什么,E步M步是什么,为什么这样,昨天在知乎上看了几篇EM的blog,对EM的理解有了很大的进步,算是入了个门
首先我们要清楚一点,EM不是一个具体的模型而是一种算法
EM 算法的核心思想非常简单,分为两步:Expection-Step 和 Maximization-Step。
E-Step 主要通过观察数据和现有模型来估计参数,然后用这个估计的参数值来计算似然函数的期望值;
M-Step 是寻找似然函数最大化时对应的参数。由于算法会保证在每次迭代之后似然函数都会增加,所以函数最终会收敛。
这篇blog我不打算写太多的公式上来,因为大佬们写的已经够好了,看他们的就够了,我只想记录一下几个关键点
Q函数:
Q
(
θ
,
θ
(
i
)
)
=
E
Z
[
log
P
(
Y
,
Z
∣
θ
)
[
Y
,
θ
(
i
)
]
]
=
∑
Z
log
P
(
Y
,
Z
∣
θ
)
P
(
Z
∣
Y
,
θ
(
i
)
)
\begin{aligned} Q(\theta,\theta^{(i)}) = E_Z\left[ \mathop{\log}P(Y,Z|\theta)[Y,\theta^{(i)}] \right] \\ =\sum_Z\mathop{\log}P(Y,Z|\theta)P(Z|Y,\theta^{(i)}) \end{aligned}
Q(θ,θ(i))=EZ[logP(Y,Z∣θ)[Y,θ(i)]]=Z∑logP(Y,Z∣θ)P(Z∣Y,θ(i))