EM算法推导
网上和书上有关于EM算法的推导,都比较复杂,不便于记忆,这里给出一个更加简短的推导,用于备忘。
在不包含隐变量的情况下,我们求最大似然的时候只需要进行求导使导函数等于0,求出参数即可。但是包含隐变量,直接求导就变得异常复杂,此时需要EM算法,首先求出隐变量的期望值(E步),然后,把隐变量当中常数,按照不包含隐变量的求解最大似然的方法解出参数(M步),反复迭代,最终收敛到局部最优。下面给出EM算法的推导
我们有对数似然函数
[L( heta)=log P(y| heta) = logsum_zp(y,z| heta)
]
可以表示成包含隐变量(z)的形式,然后通过边缘化再消除(z),效果是一样的。
由于是迭代,我们需要每次得到的新的似然结果比上一次的似然结果要大,于是我们的目标是下式
[ heta = argmax_ heta L( heta) - L( heta')
]
由于$L( heta') $ 是常量,所以,使得(L( heta))最大化即可。下面看看如何最大化 (L( heta)) :
[egin{split}
heta &= argmax_ heta L( heta)\
&= argmax_ heta logsum_zp(y,z| heta)\
&= argmax_ heta logsum_zp(z|y, heta')dfrac{p(y, z| heta)}{p(z|y, heta')}\
&= argmax_ heta sum_zp(z|y, heta')logdfrac{p(y,z|
heta)}{p(z|y, heta')}\
&= argmax_ hetasum_zp(z|y, heta')log(p(y, z| heta))\
&= argmax_ heta Q( heta, heta')
end{split}
]
至此,得到传说中的Q函数,然后求解出参数( heta)即可