EM算法之不同的推导方法和自己的理解


一、前言

EM算法主要针对概率生成模型解决具有隐变量的混合模型的参数估计问题。
对于简单的模型,根据极大似然估计的方法可以直接得到解析解;可以在具有隐变量的复杂模型中,用MLE很难直接得到解析解,此时EM算法就发挥作用了。
E步解决隐变量的问题,M步求解模型的参数值,也就是极大似然的方法求取模型的参数值。

自己的理解:走一步看一步,走了看,看了再走,迭代过程
首先使用估计的方式直接设置一组模型的参数值,这组模型的参数值是先验的,甚至可以说是我们瞎设的,这么设肯定不够准确呀,我们期望得到更更精确的参数值,那么就用现在的这组参数值去解决隐变量的问题,得到的隐变量,再根据隐变量得到后验的参数值。后验是根据观测到的数据在先验的基础上进行修正,以使得参数值更匹配这组数据。


二、概览

假设一组数据,\(X=\{x^i,x^2 \cdots ,x^n\}\), 包含 \(n\) 个独立的样本,这组样本由一组混合模型生成而来,我们希望 \(\theta\) 满足:
\[\arg\max_{\theta} logP(X|\theta)\]

可是X是由一组混合模型而来,与隐变量 \(Z\) 有关,\(Z\) 表示样本归属于哪一个模型。
直接使用极大似然估计的方法求取上式很难由解析解,通过EM算法,转而求解:
\[\theta^{(t+1)} = \arg\max_{\theta} \int_Z \; P(Z|X,\theta^{(t)})\;logP(X,Z|\theta)\]

通过不断的迭代求解,求得的\(\theta\) 可以使得 \(logP(X|\theta)\) 不断增大,达到我们的目的。

如果把已知的数据当成由一个概率模型生成的,那么 \(P(X|\theta)\) 可能会非常复杂,而且我们不知道 \(P(X|\theta)\) 的形式,两眼一抹黑,啥都不知道,因此就使用了归纳偏置,假定它服从于某个模型,对于生成模型,假设存在一个隐变量 \(Z\), \(Z\) 负责了 \(X\) 的生成,有了假设,那么\(P(X)\) 就有了一种结构,有了结构就好具体处理了。此时
\(P(X)=\int_{Z}P(X,Z)dZ\),把 \(P(X)\) 分解处理。
引入隐变量 \(Z\) 求取 \(\theta\)。


三、收敛性

通过上述方式得到的 \(\theta\) 真的可以达到我们的目的吗?即使得 \(logP(X|\theta)\) 极大。
\[
\begin{aligned}
logP(X|\theta) &=log \frac {P(X,Z|\theta)}{P(Z|X,\theta)}\\
&=log {P(X,Z|\theta)} - log{P(Z|X,\theta)}
\end{aligned}
\]

左右两边同时对 \(P(Z|X,\theta^{(t)})\) 求取积分:
\[
\begin{aligned}
左边&=\int_{Z}P(Z|X,\theta^{(t)}) log {P(X|\theta)} dZ\\
&=log {P(X|\theta)} \int_{Z}P(Z|X,\theta^{(t)})dZ\\
&=log {P(X|\theta)}
\end{aligned}
\]

\[
\begin{aligned}
右边&=\int_{Z}P(Z|X,\theta^{(t)}) \left[log {P(X,Z|\theta)} - log{P(Z|X,\theta)}\right] dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)}) log {P(X,Z|\theta)} dZ - \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta)} dZ\\
&Q(\theta,\theta^{(t)}) = \int_{Z}P(Z|X,\theta^{(t)}) log {P(X,Z|\theta)} dZ\\
&H(\theta,\theta^{(t)}) = \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta)} dZ\\
&log {P(X|\theta^{(t+1)})} -log {P(X|\theta^{(t)})} = Q(\theta^{(t+1)},\theta^{(t)}) -Q(\theta^{(t)},\theta^{(t)}) + H(\theta^{(t)},\theta^{(t)}) -H(\theta^{(t+1)},\theta^{(t)})
\end{aligned}
\]

根据\(\theta^{(t+1)}\) 的求取公式,直接得出:
\[Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta,\theta^{(t)})\]

此时令\(\theta = \theta^{(t)}\),则:
\[Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta^{(t)},\theta^{(t)})\]

\[
\begin{aligned}
H(\theta^{(t)},\theta^{(t)}) -H(\theta^{(t+1)},\theta^{(t)}&=\int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta^{(t)})}- \int_{Z}P(Z|X,\theta^{(t)}) log{P(Z|X,\theta^{(t+1)})}dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)}) [log{P(Z|X,\theta^{(t)})}-log{P(Z|X,\theta^{(t+1)})}]dZ\\
&=\int_{Z}P(Z|X,\theta^{(t)})log \frac{P(Z|X,\theta^{(t)})}{P(Z|X,\theta^{(t+1)})}dZ\\
&=KL(P(Z|X,\theta^{(t)}) \;||\; P(Z|X,\theta^{(t+1)})) \geq 0
\end{aligned}
\]

所以 \[log {P(X|\theta^{(t+1)})} -log {P(X|\theta^{(t)})} \geq 0\]

\[log {P(X|\theta^{(t+1)})} \geq log {P(X|\theta^{(t)})} \]


四、完整的推导

Jesen不等式:当f是凹函数时:\[f[E] \geq E[f]\]

其中 \(f\) 表示凹函数,\(E\) 表示期望。比如说\(log[E(x)] \geq E[log(x)]\)

第一种推导方法
\[
\begin{aligned}
log {P(X|\theta)} &= log \int_{Z}P(X,Z|\theta)dZ=log \int_{Z} \frac{P(X,Z|\theta)}{q(Z)}q(Z)dZ\\
&=log E_{q(Z)}[\frac{P(X,Z|\theta)}{q(Z)}] \geq E_{q(Z)}[log \frac{P(X,Z|\theta)}{q(Z)}]
\end{aligned}
\]

取等号时是\(\frac{P(X,Z|\theta)}{q(Z)}=C\)
我们把\(E_{q(Z)}[log \frac{P(X,Z|\theta)}{q(Z)}]\)叫做 \(ELBO\)
换句话说就是 \(ELBO\) 是 \(log {P(X|\theta)}\) 的下界,不停的增大ELBO,就可以不断的增大 \(log {P(X|\theta)}\)

在后面我们可以看到 $ \int_Z ; P(Z|X,\theta^{(t)});logP(X,Z|\theta)$ 就是这里的 \(ELBO\)


第二种推导方法
\[
\begin{aligned}
log {P(X|\theta)} &=log\frac{P(X,Z|\theta)}{P(Z|X,\theta)}\\
&=log P(X,Z|\theta) - log P(Z|X,\theta)\\
&=log \frac {P(X,Z|\theta)}{q(Z)} - \frac {log P(Z|X,\theta)}{q(Z)}
\end{aligned}
\]

等式两边同时关于分布 \(q(Z)\) 求期望(两边同时对 \(q(Z)\) 求积分)
左边还是等于左边(具体步骤参考上面)
\[
\begin{aligned}
右边 &= \int_{Z}q(Z)log \frac {P(X,Z|\theta)}{q(Z)}dZ-\int_{Z}q(Z)log \frac {log P(Z|X,\theta)}{q(Z)}dZ\\
& = ELBO+KL(q(Z)\;||\;P(Z|X,\theta))
\end{aligned}
\]

当 \(q(Z)与P(Z|X,\theta)\) 同分布时取等号。

因此:
E步:找到一个q = p
M步:(多种不同的形式)
\[
\begin{aligned}
&\arg\max_{\theta} \int_{Z}q(Z)log \frac {P(X,Z|\theta)}{q(Z)}dZ \\ &\arg\max_{\theta}\int_{Z}q(Z)log {P(X,Z|\theta)}dZ\\ &\arg\max_{\theta}\int_{Z}P(Z|X,\theta^{(t)})log {P(X,Z|\theta)}dZ\\
&\arg\max_{\theta}\sum_{Z}P(Z|X,\theta^{(t)})log {P(X,Z|\theta)}
\end{aligned}
\]

题外话:在GMM中,我们直接把 \(q(Z)\) 写为 \(P(Z|X,\theta)\),也就是Z的后验。此时
\[log P(X|\theta) = ELBO\]

当我们不停的极大化 \(ELBO\) 时,就是在极大化 $ log P(X|\theta)$。
自己的理解就是从极大化 \(log P(X|\theta)\) 这个任务 变成了 极大化 \(log P(X,Z|\theta)\)这个任务。
因为直接极大化 \(log P(X|\theta)\) 这个任务我们做不出来,然后引入了隐变量 \(Z\)(对应样本属于哪个模型的分布) 来帮助我们解决问题。从一阶段变成了二阶段:求他们的联合分布的概率最大化。


五、广义EM

\[logP(X|\theta) = ELBO+KL(q(Z)||P(Z|X,\theta))\]


\[L(q,\theta)=ELBO = E_{q(Z)}[ log\frac{P(X,Z|\theta)} {q(Z)}] \]

发散一下
\(logP(X|\theta) = E_{q(Z)}[ log{P(X,Z|\theta)}]-E_{q(Z)}[log \;q(Z)]+KL(q(Z)||P(Z|X,\theta))\)
\(= E_{q(Z)}[ log{P(X,Z|\theta)}]+H(q(Z))+KL(q(Z)||P(Z|X,\theta))\)
\(= E_{q(Z)}[ log{P(X,Z|\theta)}]+H(q(Z),P(Z|X,\theta))\)

E-step:固定 \(\theta\),找出q,此时 \(logP(X|\theta)\)是定值:
\[
\begin{aligned}
q^{(t+1)} &= \arg\min_{q}KL(q||P) = \arg\max_{q}ELBO\\& = \arg\max_{q} L(q,\theta^{(t)})\\&=\arg\max_{\theta} E_{q(Z)}[ log\frac{P(X,Z|\theta^{(t)})} {q(Z)}]
\end{aligned}
\]

M-step:固定 \(q\),找出 \(\theta\):
\[
\begin{aligned}
\theta^{(t+1)} &= \arg\max_{\theta}ELBO =\arg\max_{\theta} L(q^{(t+1)},\theta)\\&= \arg\max_{\theta} E_{q^{(t+1)}(Z)}[ log\frac{P(X,Z|\theta)} {q^{(t+1)}(Z)}]\\&=
\arg\max_{\theta} E_{q^{(t+1)}(Z)}[ log{P(X,Z|\theta)} ]
\end{aligned}
\]


EM算法之不同的推导方法和自己的理解的更多相关文章

  1. EM算法-完整推导

    前篇已经对EM过程,举了扔硬币和高斯分布等案例来直观认识了, 目标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗子, 直接来 ...

  2. 【EM算法】EM(转)

    Jensen不等式 http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html 回顾优化理论中的一些概念.设f是定义域为实数的函数 ...

  3. 机器学习第三课(EM算法和高斯混合模型)

    极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一.说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值. ...

  4. EM算法--第一篇

    在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(LatentVariable).最大期望 ...

  5. EM算法(坐标上升算法)

    原文地址:https://www.cnblogs.com/to-creat/p/6075322.html 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一 ...

  6. <转>E-M算法

    转自http://blog.csdn.net/zouxy09/article/details/8537620/ 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊, ...

  7. 机器学习笔记—EM 算法

    EM 算法所面对的问题跟之前的不一样,要复杂一些. EM 算法所用的概率模型,既含有观测变量,又含有隐变量.如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法来估计 ...

  8. 转载:EM算法的最精辟讲解

    机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做很多人做不了的事.那么EM ...

  9. 含隐变量模型求解——EM算法

    1 EM算法的引入1.1 EM算法1.2 EM算法的导出2 EM算法的收敛性3EM算法在高斯混合模型的应用3.1 高斯混合模型Gaussian misture model3.2 GMM中参数估计的EM ...

随机推荐

  1. scrapy 分布式爬虫- RedisSpider

    爬去当当书籍信息 多台机器同时爬取,共用一个redis记录 scrapy_redis 带爬取的request对象储存在redis中,每台机器读取request对象并删除记录,经行爬取.实现分布式爬虫 ...

  2. 4、wordcount程序原理剖析及Spark架构原理

    一.wordcount程序原理深度剖析 二.Spark架构原理 1.

  3. angular2事件触发

    输入框输入过程触发Select()方法. <input type="text" name="code" [(ngModel)]="code&qu ...

  4. yii中异步验证和自定义方法验证

    一.异步验证,一般使用ajax验证唯一性较多 1.model开启验证[['mobile_id','ip'], 'unique','message'=>Yii::t('app','E10010') ...

  5. python生成二维码(简易)

    首先要的配置: pillow image qrcode zxing 然后直接上代码: import PIL import qrcode # 实例化二维码生成类 qr = qrcode.QRCode( ...

  6. java设计模式学习-单例模式

    java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供.”单例模式可以保证一个应用中有且只有一个实例,避免了资源的浪费和多个实例多次调用导致出错. 单例模式有以下特点: 1.单 ...

  7. 将Excel文件导入到Navicat Premium中日期变为0000-00-00

    在网上查询了一些文章,说要改excel的单元格格式,我试验了好几次,不管是设置成文本,还是日期,都始终是 0000-00-00. 最后改变了办法,把数据库中的date类型设置 成 varchar,等导 ...

  8. oracle sql insert插入字符&

    最近遇到insert 语句插入&字符报弹出框,如下: sql: insert into test_ldl001 (ID, NAME) values (', '/test/test.do?act ...

  9. routine的加载

    // Hearthbuddy.Windows.MainWindow // Token: 0x06000245 RID: 581 RVA: 0x0008C318 File Offset: 0x0008A ...

  10. 关于路由跟踪指令---traceroute

    我们都用过ping命令来检查主机与目标地址是否连通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包. 原理:https://www.cnblogs.com/be ...