EM算法定义及推导

EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及。用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计

EM算法定义

输入:观测变量数据X,隐变量数据Z,联合分布(P(X,Z| heta))

输出:模型参数( heta)

(1)选择初始模型参数( heta^{(0)}),开始迭代

(2)E步:记( heta^{i})为第i次迭代参数( heta)的估计值,计算在第i次迭代的期望$$Q( heta, heta^{(i)}) = E(logP(x,z| heta)|x, heta^{(i)}))=int_zlogp(x,z| heta)p(z| heta^{(i)})$$
(3)M步:求使( heta^{(i+1)} = Q( heta, heta^{(i)})的最大值)

(4)重复第(2)步和第(3)步

EM算法几点说明

(1)参数的初值可以任意选择,但需注意EM算法初始是敏感的

(2)E步求(Q( heta, heta^{(i)})),Q函数种的Z是为观测数据,X是观测数据,(Q( heta, heta^{(i)}))中的第一个变元表示要极大化的参数,第二个变元表示参数的当前估计值,每次迭代实际在求Q的极大值

(3)给出停止迭代的条件,一般是对较小的正数(xi_i,xi_2),若满足(|| heta^{(i+1)} - heta^{(i)} < xi_i||或||Q( heta^{(i+1)}, heta^{(i)})-Q( heta^{(i)}, heta^{(i)})|| < xi_2)

EM算法推导

[L( heta)= argmaxlogP(x| heta) = argmaxlogint_zp(x,z| heta)dz ]

[L( heta) = argmaxlogint_zfrac{p(x,z| heta)}{p(z| heta^{(i)})}p(z| heta^{(i)})dz ]

由于log函数为凹函数,则$$L( heta) geq int_zlogfrac{p(x,z| heta)}{p(z| heta^{(i)})}p(z| heta^{(i)})dz$$

[L( heta) geq int_zlogp(x,z| heta)p(z| heta^{(i)})dz - int_zlog(p(z| heta^{(i)}))p(z| heta^{(i)})dz ]

由于减式后面与模型参数( heta)无关,(P(z| heta^{(i)})是已知的),所以只需关注减式前面的式自,令$$Q( heta, heta^{(i)})=int_zlogp(x,z| heta)p(z| heta^{(i)})$$

和算法定义中的步骤(2)相同,将原L的优化问题转换为求原问题下界(Q( heta, heta^{(i)}))的最大值

因此,任何可以使(Q( heta, heta^{(i)}))增大的( heta)都可以使(L( heta))增大,为了使(L( heta))有尽可能的增长,选择使(Q( heta, heta^{(i)}))达到最大,即$$ heta^{(i+1)} = argmaxQ( heta, heta^{(i)})$$

EM算法收敛性

定理1(设P(x| heta)为观测数据的似然函数, heta^{(i)}为EM算法得到的参数估计序列,P(x| heta^{(i)})为对应的似然函数序列,则P(x| heta^{(i)})单调递增)

定理2(设L( heta) = logP(x| heta)为观测数据的似然函数, heta^{(i)}为EM算法得到的参数估计序列,L( heta^{(i)})为对应的似然函数序列)

(1)(如果P(x| heta)有上界,则L( heta^{(i)})收敛到某一值L^*)
(2)(在函数Q( heta, heta^{(i)})与L( heta)满足一定条件下,由EM算法得到的参数估计序列 heta^{(i)}的收敛值 heta^*是L( heta)的稳定值)

原文地址:https://www.cnblogs.com/xiaobingqianrui/p/10761904.html