再学习EM算法

EM 算法是十大经典的机器学习算法,【PS:MC是二十世纪十大算法】

回顾下经典的EM算法,对其理解加深

1. 学习的本质问题

  • \max p(x), 这是学习的基本目标。人称,likelihood.

直接\max p(x)很难的,所以这里有两种方法转化为联合分布 p(x,z|\theta)

  1. 直接对联合分布求边缘分布,p(x) = \Sigma_z p(x,z|\theta);
  2. 配凑的方法,p(x)p(z|x)=p(x,z|\theta);

第一种方法,可用琴生不等式处理。第二种方法,得到的是一个等式,详细的推导过程如下:
\log p(x) = \log(\frac{p(x,z|\theta)}{p(z|x)})-\log(\frac{q(z)}{q(z)})

\log p(x) = \log(\frac{p(x,z|\theta)}{q(z)})-\log(\frac{p(z|x)}{q(z)})
然后对在q(z)的分布下求上式左右的期望,

\log p(x) = \int q(z) \log p(x)dz = \int q(z)\log(\frac{p(x,z|\theta)}{q(z)})dz-\int q(z) \log(\frac{p(z|x)}{q(z)})dz

\log p(x) = ELBO(q,\theta)+KL
其中ELBO是后面第一项,KL散度是后面的第二项;

2. 优化求解

2.1 目标函数特点分析

  • KL散度大于等于0;
  • ELBO 是\log p(x)的下界 (lower bound);

2.2 两阶段的EM优化算法

  1. E-step: 固定\theta, 求q。【q是分布,求期望就好理解了】;
  2. M-step: 固定q, 求\theta; 【\theta是参数,最大化操作就记住了】;

E-step

怎么理解?


E-step
  • 改变q, 使得ELBO(q, \theta^{old})=\log p(x);
  • 实现: KL散度为0,q(z)=p(z|x;\theta^{old});
  • 评论:这里并没有优化\theta, 只是对隐变量z做出估计。

M-step

怎么理解?


M-step
  • 改变\theta, 使得ELBO(q,\theta)变的更大;
  • 那么 \log p(x|\theta) 也必然变大了;
  • 实现: 直接优化ELBO(q,\theta), 具体为 \max_\theta \int q(z)\log(\frac{p(x,z|\theta)}{q(z)})dz\propto

\int q(z)\log(\frac{p(x,z|\theta)}{q(z)})dz\propto \int q(z)\log(p(x,z|\theta))dz, 后面这个部分被称为complete-data log likelihood

  • 评论:这里优化ELBO中的\theta,从而实现对期望似然的最大化。

3. 例子

  • 带有outlier的曲面拟合。快速收敛,精度更高,MVFC

    MVFC文章截图

  • 结构光解相位。\log p(x)没有封闭解,而构造的p(x,z)存在封闭解,从而快速求解 CFPE

    ELBO公式存在解析解

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容