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的期望,并乘上就是最后的优化目标,得到下式:
(14)
那么,最后的优化就分为两步:
1.先求出z在给定参数x和的情况下,关于在的期望值,也称为E步,即求期望
(15)
2.求得关于z的期望之后,可以认为此时z为已知,这个时候就是上述的完整数据(complete case )的情形,所以可以用MLE的方式去优化求解参数,就可以求解最大化,也称为M步,即最大化目标函数:
(16)
最后总结就是,从整个优化过程来看
1.在E步的时候,假设参数已知,来求解隐变量z
2.在求得隐变量z之后,再假设z已知,来求解参数,这里用MLE 的方式进行优化
如此往复,就能求得最终的参数 。
EM算法性质
1.EM算法并不是全局最优的,所以使用的时候,要重复多次,找到最优的结果,(隐变量模型他本身不是凸函数)。
2.EM的趋势,其最大似然的估计过程,最大化的过程一定是严格递增的,即一定能够收敛,如下图所示
图1,EM算法 极大似然优化过程的曲线图
暂时写到这,
欢迎批评指正