EM算法
期望最大化算法,是寻找具有潜在变量地概率模型地最大似然解的一种通用的方法。下面介绍一般形式的EM算法的推导过程。
我们把所有的观测变量联合起来记作 X = { x 1 , x 2 , . . . , x N } X=\{x_1, x_2, ..., x_N\} X={ x1,x2,...,xN},将所有的隐含变量记作 Z = { z 1 , z 2 , x N } Z=\{z_1, z_2, x_N\} Z={ z1,z2,xN}。这里只考虑 Z Z Z的状态是离散值的情况,我们假设每个样本 x n x_n xn点由对应的隐含变量 z n z_n zn决定。于是对于生成式模型,我们希望模型的参数集 θ \theta θ能够使得 p ( X ∣ θ ) p(X|\theta) p(X∣θ)的概率达到最大。因此很容易想到最大化模型的似然函数就能解出最优的参数集 θ \theta θ。
我们通过计算 ( X , Z ) (X,Z) (X,Z)的联合概率密度分布计算 X X X的边缘概率密度:
(1) p ( X ∣ θ ) = ∑ Z p ( X , Z ∣ θ ) p(X|\theta) = \sum _Z p(X,Z|\theta) \tag{1} p(X∣θ)=Z∑p(X,Z∣θ)(1)
对上式使用极大似然法求解参数 θ \theta θ的最优解过程中,需要对左右同时取对数,观察右边部分 l n ∑ Z p ( X , Z ∣ θ ) ln \sum _Z p(X, Z|\theta) ln∑Zp(X,Z∣θ),我们会发现对潜在变量的求和出现在了对数运算内部,这阻止了对数运算直接作用于联合概率分布,使得最大似然解的形式更加复杂。
问题的转化
后面的介绍中,我们称 { X , Z } \{X, Z\} { X,Z}为完整的数据集,并且我们称实际观测的数据集 X X X为不完整的,完整数据集的对数似然函数为 l n p ( X , Z ∣ θ ) ln \ p(X,Z|\theta) ln p(X,Z∣θ),我们假定这个完整数据集的对数似然函数进行最大化是很容易的。
下面介绍将最大化 p ( X ∣ θ ) p(X|\theta) p(X∣θ)的目标转化成最优化 p ( X , Z ∣ θ ) p(X,Z|\theta) p(X,Z∣θ)的过程。我们引入一个定义在潜在变量上的分布 q ( Z ) q(Z) q(Z),对于任意的 q ( Z ) q(Z) q(Z),下面的分解式成立:
(2) l n p ( X ∣ θ ) = L ( q , θ ) + K L ( q ∣ ∣ p ) ln\ p(X|\theta)=\mathcal{L}(q,\theta)+KL(q||p)\tag{2} ln p(X∣θ)=L(q,θ)+KL(q∣∣p)(2)
其中,我们定义了
(3) L ( q , θ ) = ∑ Z q ( Z ) l n { p ( X , Z ∣ θ ) q ( Z ) } K L ( q ∣ ∣ p ) = − ∑ Z q ( Z ) l n { p ( Z ∣ X , θ ) q ( Z ) } \mathcal{L}(q, \theta) = \sum _Z q(Z)ln\{\frac {p(X,Z|\theta)}{q(Z)}\} \\ KL(q||p) = - \sum _Z q(Z) ln \{\frac{p(Z|X,\theta)}{q(Z)}\} \tag{3} L(q,θ)=Z∑q(Z)ln{
q(Z)p(X,Z∣θ)}KL(q∣∣p)=−Z∑q(Z)ln{
q(Z)p(Z∣X,θ)