EM
Last updated
Was this helpful?
Last updated
Was this helpful?
观测数据表示为 ,未观测数据表示为 ,则观测数据的似然函数为
EM思路:先是对整体求极大似然估计对数,但因为隐藏变量Z的存在,所以直接最大化L就不可能了。但是可以通过不断的建立L的下界(E步),然后优化下界(M步)。
每次迭代优化的目标: 对 式子两边求期望。 注意,期望是对某个分布的而言的,这里是对求期望的。
左边: 因为不包含Z,所以可以提到积分外,里面的概率分布积分就是1.
右边: 每次迭代只对前面一部分求最大,即 ,这个就是《统计学习方法》中的Q函数。
《统计学习方法》page158,Q函数定义:完全数据的对数似然关于在给定的观测数据Y和当前参数下对未观测数据Z的条件概率分布的期望
这个式子里面是期望,外面求最大,这就是Expectation Maximization。 在每次迭代后,后面一部分会变小,所以整体保证了迭代目标。
选择合适的初始参数
收敛性判别,是否终止
以下是以前从jensen不等式看EM算法的,感觉不如EM一般化分析清晰
将上式简化下,就得到《统计学习方法》上的形式:
推广到多个变量,得:
所以EM算法的步骤如下:
收敛判断:若似然函数未收敛,则转至第二步。
网上没找到半监督式的EM,但是我想,在E步算每个样本分类的期望时,不改变已经标注的类别,这样在M步时,这些标注样本依然可以起效。
参考MLAPP和《Online EM for Unsupervised Models》
有batch EM,incremental EM,stepwise EM。
个人理解就是 新来的样本训练出的新参数, 然后跟momentum方式一样结合老参数更新参数
Variational EM , Monte Carlo EM , Generalized EM
The EM algorithm is simple, but can be much slower than direct gradient methods
混合高斯模型
混合朴素贝叶斯模型
因子分析
贝叶斯神经网络
E-step,计算隐含变量的后验概率。利用当前参数值计算隐含变量的后验概率,并基于此计算目标函数的期望
M-step,优化,其中
完全数据的对数似然 关于在给定观测数据和当前参数下对未观测数据的条件概率分布的期望
其中 就是 的期望,是凸函数,所以可以用 jensen 不等式。
x是离散型随机变量,分布律为,则:
x是连续型随机变量,概率密度函数为 ,则有
如果f是凸函数,则 。
其实凸函数的定义就一个jensen不等式。
上式相当于给出了目标函数的下界,提高下界即最大化目标函数。这个不等式的最高就是等式成立,需要让随机变量或函数值为常数, 即 。假设给定。 因为,所以。 则
初始化参数:
E步:
M步:
Let be a vector of sufficient statistics for a single data case.
Let be the expected sufficient statistics for case i, and be the sum of the ESS.
let denote the ML or MAP estimate of the parameters in the M step.
stepsize 和 mimi_batch_size很重要。 if we take , then any is valid. mimi_batch_size越大,则越稳定。