EM算法笔记
背景
EM(Expectation-Maximum)算法也称期望最大化算法,是最常见的隐变量估计方法,它的思想在很多算法上有所体现。例如高斯混合模型(Gaussian mixture model,简称GMM)的参数;隐式马尔科夫算法(HMM)、LDA主题模型的变分推断、还有VAE、GAN等等。
在机器学习算法中,一般学习包含两种数据情况,一种是完整数据(complete case )其包含我们可见的配对数据(z,x),所以我们能够直接用最大似然估计MLE的方式去估计参数,就能学习到z和x之间的表示关系。而另一种是不完整数据(incomplete case),这种情况下直接使用MLE是无法进行参数估计,这时的z就是所述的隐变量。比如我们对机器输入一段语音,机器只知道声音数据,却不知道其背后所表达的意思,这里的声音可以比作x,背后的意思可以比作z。
对于完整数据(complete case ),我们的目标函数如下:

虽然参数

未知,但是分别对

和

用MLE的方式进行估计即可。(chain rule)
对于不完整数据(incomplete case ),我们的目标函数如下:


因为此时的z是不可见的隐变量,所以我们通过全概率公式,将其转换,最后拆分成基于z的后验概率和x的后验概率的乘积,即,此时的参数

和z都是未知的。不过,如果我们能够通过先求得z的参数,再求x的参数,这样问他就能够迎刃而解。
EM算法推导
给定模型参数

(未知),观测变量x(已知),以及隐变量z(未知)
目标函数即为,用最大似然估计求如下公式:

(1)目的就是求如下目标所求的最大参数

,(arg max 下面 是

我不知道怎么打)
(2)假设经过n次迭代,我们得到了第n次迭代的参数
,这个时候
假定其已知,那么目标函数就可以写成如下形式,(arg max 下面 是

我不知道这么打):
(3)
同时,在这里引入隐变量z,先把左边拆开,右边暂时不管。

(4)
继续用全概率公式的方式进行拆解(chain rule)

(5)
在这里引入一个小小的变换,乘上1

(6)
并进行整理,就是把位置对应的换一下

(7)
因为在log 包含求和是比较不好算的,所以这里用优化其下届的方式进行优化,就有

(8)
为什么会得到上述的公式呢?这里用到了琴生不等式((Jensen)不等式(也称为詹森不等式)),通俗来讲就是,可以通过琴生不等式对上述的情况进行近似求解。解释如下:
比方说,要求解

,但这种形式求解是不很好求,但是如果我们求

的话,却比较好解决,所以,琴生不等式,就将

转化成了

的情形,其具体形式和条件如下:

并且 要求

回到公式(7)我们就会发现,这样正好符合上述的不等式要求,即

可以类比成

,后面那部分就对应另一部分,因为在给定x和参数
的情况下,

。接着,继续从(8)继续往下,因为

,所以我们把

直接合并到前面去,(log 相减 等于 log 里面相除)得到:

(9)
那么最终,就是从公式(3)转换到如下式子:

(10)那么第n+1 次迭代后的参数
的求解就可以写成如下形式(arg max 下面 是

我不知道这么打):
(11)即,最后优化其下届,就能够做到不断优化的作用。由于只需要求

的优化,所以其他无关项都可以舍去,

可以直接划去,

中,和

无关的项也都可以舍去,参照公式(9),得到最终的优化目标:

(12)
再对其进行整理,得到:

(13)即,最终的目标为求在给定x和
的情况下,求z的期望,并乘上

就是最后的优化目标,得到下式:
![\large = arg max \left \{E_{z|x,\theta_{n}}\left [ log P(x,z|\theta ) \right ] \right \} EM算法笔记_迭代_39](https://file.cfanz.cn/uploads/gif/2023/06/09/14/1MR5RC3989.gif)
(14)
那么,最后的优化就分为两步:
1.先求出z在给定参数x和
的情况下,关于在

的期望值,也称为E步,即求期望
![\large E_{z|x,\theta_{n}}\left [ log P(x,z|\theta ) \right ] EM算法笔记_数据_41](https://file.cfanz.cn/uploads/gif/2023/06/09/14/a9c13B68Rf.gif)
(15)2.求得关于z的期望之后,可以认为此时z为已知,这个时候就是上述的完整数据(complete case )的情形,所以可以用MLE的方式去优化求解参数

,就可以求解最大化

,也称为M步,即最大化目标函数:
![\large Maximize \left [ log P(x,z|\theta ) \right ] EM算法笔记_em_44](https://file.cfanz.cn/uploads/gif/2023/06/09/14/1RZ064Y03Z.gif)
(16)
最后总结就是,从整个优化过程来看
1.在E步的时候,假设参数

已知,来求解隐变量z2.在求得隐变量z之后,再假设z已知,来求解参数

,这里用MLE 的方式进行优化
如此往复,就能求得最终的参数 。
EM算法性质
1.EM算法并不是全局最优的,所以使用的时候,要重复多次,找到最优的结果,(隐变量模型他本身不是凸函数)。
2.EM的趋势,其最大似然的估计过程,最大化的过程一定是严格递增的,即一定能够收敛,如下图所示


图1,EM算法 极大似然优化过程的曲线图
暂时写到这,
欢迎批评指正










