机器学习模型之EM算法

1、EM算法

EM算法是针对含有隐变量的一种优化算法,如果不含有隐变量,我们可以直接利用极大似然估计方法,对需要优化的变量求导,用梯度下降的方法进行参数的更新。而当变量中含有隐变量时,就无法用极大似然估计方法,就需要用到EM算法进行迭代的求解,EM算法分为两步,第一步是E步,即得到隐变量的期望,第二步是M步,即需要更新需要优化的参数。公式如下所示

  • step1:E步

\[Q(\theta,\theta^{i}) = \sum\limits_{Z} P(Z | Y, \theta^{i}) \log P(Y , Z| \theta) \]

第一步是求期望,这里的期望是对隐变量的期望,这里,我们首先根据先验知识获得\(\theta^{i}\),这样我们便可以得到\(P(Z | Y, \theta^{i})\),这个公式表示在已知\(\theta^{i}\)的情况下,我们通过样本数据得到在每一个隐变量上的概率值,通过该概率值,便可以求出\(P(Y , Z| \theta)\),但是这里的\(\theta\)是未知变量,我们进而对\(\theta\)进行求导,并令求导公式等于0,得到更新的\(\theta^{i+1}\),即M步。

  • step1:M步

\[\theta^{i+1} = \mathop{\arg\max}_{\theta} Q(\theta,\theta^{i}) \]

2、EM算法解释

下面,我们来讲解EM算法是如何得出来的。首先,得到需要优化的函数

\[L(\theta) = \log P(Y | \theta) \\ = \log \sum\limits_{Z} P(Y,Z| \theta) \\ = \log \sum\limits_{Z} P(Z | \theta) P(Y | Z,\theta) \]

接下来,我们定义

\[L(\theta) - L(\theta^{i}) = \log \sum\limits_{Z} P(Z | \theta) P(Y | Z,\theta) - \log P(Y | \theta^{i}) \\ = \log \sum\limits_{Z} P(Z | Y, \theta^{i}) \frac {P(Z | \theta) P(Y | Z,\theta)} {P(Z | Y, \theta^{i})} - \log P(Y | \theta^{i}) \\ 根据jensen不等式可以得到 \\ >= \sum\limits_{Z} P(Z | Y, \theta^{i}) \log \frac {P(Z | \theta) P(Y | Z,\theta)} {P(Z | Y, \theta^{i})} - \log P(Y | \theta^{i}) \\ = \sum\limits_{Z} P(Z | Y, \theta^{i}) \log \frac {P(Z | \theta) P(Y | Z,\theta)} {P(Z | Y, \theta^{i}) P(Y | \theta^{i})} \]

我们令

\[B(\theta,\theta^{i}) = L(\theta^{i}) + \sum\limits_{Z} P(Z | Y, \theta^{i}) \log \frac {P(Z | \theta) P(Y | Z,\theta)} {P(Z | Y, \theta^{i}) P(Y | \theta^{i})} \\ 则 L(\theta) >= B(\theta,\theta^{i}) \]

在什么时候\(L(\theta)\)\(B(\theta,\theta^{i})\)两者相等呢?其实在\(L(\theta^{i})=B(\theta^{i},\theta^{i})\)时两者相等,即在\(\theta= \theta^{i}\)的时候两者相等,由这个等式可知,\(L(\theta^{i})\)\(B(\theta^{i},\theta^{i})\)同增同减,那么我们只需要最大化\(B(\theta,\theta^{i})\)就可以更新\(\theta\)了,即

\[\theta^{i+1} = \mathop{\arg\max}_{\theta} B(\theta,\theta^{i}) \\ = \mathop{\arg\max}_{\theta} L(\theta^{i}) + \sum\limits_{Z} P(Z | Y, \theta^{i}) \log \frac {P(Z | \theta) P(Y | Z,\theta)} {P(Z | Y, \theta^{i}) P(Y | \theta^{i})} \\ = \mathop{\arg\max}_{\theta} \sum\limits_{Z} P(Z | Y, \theta^{i}) \log P(Z | \theta) P(Y | Z,\theta) \\ = \mathop{\arg\max}_{\theta} Q(\theta,\theta^{i}) \]

posted @ 2020-06-09 15:26  空空如也_stephen  阅读(469)  评论(0编辑  收藏  举报