EM算法

Jensen不等式

其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有
\[
\lambda f(x) + (1-\lambda)f(y)\ge f(\lambda x + (1-\lambda)f(y)),\ where\ 0\le\lambda\le 1
\]
推广一下,便有
\[
f(\sum_{i=1}^n\lambda_ix_i)\le\sum_{i=1}^n\lambda_if(x_i),\ where \sum_{i=1}^n\lambda_i = 1
\]
这就是Jensen不等式,写成期望的形式便有
\[
f(E(x))\le E(f(x))
\]
对于concave函数,只需不等号反向,因为对convex函数取负得到的是concave函。

EM算法推导

我们的目的是最大化似然函数\(P(X|\theta)\),为了计算方便,取对数,得到
\[
L(\theta)=\ln P(X|\theta)
\]
假设我们已知\(\theta^n\),现在要求新的\(\theta\),为了极大化似然函数,我们期望最大化
\[
\max(L(\theta)-L(\theta'))
\]
于是有
\[
\begin{align*}
L(\theta) - L(\theta') &= \log\left(\sum_ZP(Y|Z,\theta)P(Z|\theta)\right) - \log P(Y|\theta')\\
&= \log\left(\sum_ZP(Z|Y,\theta')\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')}\right) - \log P(Y|\theta')\\
&\ge \sum_ZP(Z|Y,\theta')\log\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')} - \log P(Y|\theta')\\
&= \sum_ZP(Z|Y,\theta')\log\dfrac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta')} - \log P(Y|\theta')\sum_ZP(Z|Y,\theta')\\
&= \sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta) - \log P(Y|\theta') - \sum_ZP(Z|Y,\theta')\log P(Z|Y,\theta')
\end{align*}
\]
后面两项是常数项,去掉还是等价的。于是便有
\[\begin{align*}
\arg\max_\theta L(\theta) - L(\theta') &= \arg\max_\theta\sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta) \\
&- \log P(Y|\theta') - \sum_ZP(Z|Y,\theta')\log P(Z|Y,\theta')\\
&= \arg\max_\theta\sum_ZP(Z|Y,\theta')\log P(Y|Z,\theta)P(Z|\theta)\\
&= \arg\max_\theta \sum_ZP(Z|Y,\theta')\log P(Y,Z|\theta)
\end{align*}\]

上面这种形式是采用李航的《统计学习方法》中的形式,与PRML中的形式初看有些不一样,我们只需要把最初的\(P(Y|Z,\theta)P(Z|\theta)\)替换为\(P(Y,Z|\theta)\)就一样了。

最新文章

  1. GitLab使用
  2. 拼图 canvas分割 dom拖拽 pc 移动端
  3. GJM : 【技术干货】给The Lab Renderer for Unity中地形添加阴影
  4. Codeforces Round #283 Div.2 D Tennis Game --二分
  5. 1.nodejs权威指南--基础知识
  6. 字符串中带有emoji表情处理
  7. 结合Git实现Mysql差异备份,可用于生产环境
  8. MySQL 5.1.63 单机配置多实例(简单配置)
  9. java List交集 并集 差集 去重复并集
  10. hdu 5080 2014ACM/ICPC鞍山K题 polya计数
  11. 白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连续7-电话问卷调查
  12. 框架应用:Mybatis(二) - 动态SQL
  13. shell 运算符章节笔记
  14. linux学习第十九天 (Linux就该这么学) 结课了
  15. Linux下postgres9.4 版本的单机版安装小笔记
  16. Mac 安装多个python环境
  17. _event_active_team
  18. 18年春招某编程题:有三个整数X,Y,Z,要求进行若干次操作使得X,Y,Z相等
  19. MySQL 服务无法启动
  20. .Net 环境

热门文章

  1. JSON解析字符串
  2. UVA 11186 Circum Triangle (枚举三角形优化)(转)
  3. 语音03_TTS_C#示例代码
  4. cell 配置
  5. Angular表单的本地校验和远程校验
  6. 2D游戏摄像机跟随不出界
  7. UML用例建模解析(二)---------用例执行者之间关系
  8. Ajax-快速上手前后端交互
  9. SpringTask定时任务实例讲解【Java获取微信公众平台accessToken及jsapiTicket】
  10. 2018.7.24 Error Code