一、Jensen 不等式

在EM算法的推导过程中,用到了数学上的Jensen不等式,这里先来介绍一下。
若Ω是有限集合{x1,x2,…,xn}{x1,x2,…,xn}\{x_1,x_2,\ldots,x_n\},而μ是Ω上的正规计数测度,则不等式的一般形式可以简单地用和式表示:

φ(∑i=1ng(xi)λi)≤∑i=1nφ(g(xi))λi,(17−1)(1)(1)φ(∑i=1ng(xi)λi)≤∑i=1nφ(g(xi))λi,(17−1)

\varphi\left(\sum_{i=1}^{n} g(x_i)\lambda_i \right) \le \sum_{i=1}^{n} \varphi(g(x_i))\lambda_i,(17-1)
  其中 λ1+λ2+⋯+λn=1,λi≥0λ1+λ2+⋯+λn=1,λi≥0\lambda_1 + \lambda_2 + \cdots + \lambda_n = 1, \lambda_i \ge 0。

  若φ是凹函数,只需把不等式符号调转。主要参考文献【1】
  

二、EM算法推导

面对一个含有隐含变量的概率模型,目标是极大化观测数据YYY关于参数θ" role="presentation" style="position: relative;">θθ\theta的对数似然函数,即极大化:

L(θ)=logP(Y;θ)=log∑zP(Y,Z;θ)=log∑zP(Y|Z;θ)P(Z;θ)(184)(184)L(θ)=logP(Y;θ)=log∑zP(Y,Z;θ)=log∑zP(Y|Z;θ)P(Z;θ)

L(\theta) = log P(Y;\theta) = log \sum_{z} P(Y,Z; \theta)\\ = log \sum_{z} P(Y|Z; \theta) P(Z; \theta)
    事实上,EM算法是通过迭代逐步极大化 L(θ)L(θ)L(\theta)的。假设在第 iii 次迭代后 θθ\theta的估计值是 θ(i)θ(i)\theta^{(i)}。我们希望新的估计值 θθ\theta能使 L(θ)L(θ)L(\theta)增加,即 L(θ)>L(θ(i))L(θ)>L(θ(i))L(\theta) > L(\theta^{(i)}),并逐步达到极大值。为此考虑两者的差:

L(θ)−L(θ(i))=log(∑zP(Y|Z;θ)P(Z;θ))−logP(Y;θ(i))=log(∑zP(Z|Y;θ(i))P(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i)))−logP(Y;θ(i))≥∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))−logP(Y;θ(i))=∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))P(Y;θ(i))(185)(185)L(θ)−L(θ(i))=log(∑zP(Y|Z;θ)P(Z;θ))−logP(Y;θ(i))=log(∑zP(Z|Y;θ(i))P(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i)))−logP(Y;θ(i))≥∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))−logP(Y;θ(i))=∑zP(Z|Y;θ(i))logP(Y|Z;θ)P(Z;θ)P(Z|Y;θ(i))P(Y;θ(i))

L(\theta) - L(\theta^{(i)}) =log (\sum_{z} P(Y|Z; \theta) P(Z; \theta)) - log P(Y;\theta^{(i)}) \\ = log (\sum_{z} P(Z|Y;\theta^{(i)}) \frac{P(Y|Z; \theta) P(Z; \theta)}{P(Z|Y; \theta^{(i)})}) - log P(Y;\theta^{(i)}) \\ \ge \sum_{z} P(Z|Y;\theta^{(i)}) log \frac{P(Y|Z; \theta) P(Z; \theta)}{P(Z|Y; \theta^{(i)})} -log P(Y;\theta^{(i)}) \\ = \sum_{z} P(Z|Y;\theta^{(i)}) log \frac{P(Y|Z; \theta) P(Z; \theta)}{P(Z|Y; \theta^{(i)})P(Y;\theta^{(i)})}

上式利用了Jensen不等式,在17-1式中, 令 φφ\varphi 为 logloglog, 且∑zP(Z|Y;θ(i))=1∑zP(Z|Y;θ(i))=1\sum_{z} P(Z|Y;\theta^{(i)}) =1,则可得上述推导。注意logloglog为凹函数,不等号要改变方向

B(θ,θ(i))=L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)),(17−2)(186)(186)B(θ,θ(i))=L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)),(17−2)

B(\theta,\theta^{(i)}) = L(\theta^{(i)}) + \sum_{z} P(Y|Z;\theta^{(i)}) log \frac{P(Y|Z; \theta) P(Z; \theta)}{P(Y|Z; \theta^{(i)})P(Y;\theta^{(i)})} ,(17-2)
则:

L(θ)≥B(θ,θ(i))(187)(187)L(θ)≥B(θ,θ(i))

L(\theta) \ge B(\theta,\theta^{(i)})
那么, B(θ,θ(i))B(θ,θ(i))B(\theta,\theta^{(i)})是 L(θ)L(θ)L(\theta)的一个下界,由17-2知道:

L(θ(i))=B(θ(i),θ(i))(188)(188)L(θ(i))=B(θ(i),θ(i))

L(\theta^{(i)}) = B(\theta^{(i)},\theta^{(i)})
因此,任何可以使 B(θ,θ(i))B(θ,θ(i))B(\theta,\theta^{(i)})增大的 θθ\theta,都可使 L(θ)L(θ)L(\theta)增大,选择 θ(i+1)θ(i+1)\theta^{(i+1)}使 B(θ,θ(i))B(θ,θ(i))B(\theta,\theta^{(i)})达到极大,即:

θ(i+1)=argmaxθB(θ,θ(i))(189)(189)θ(i+1)=argmaxθB(θ,θ(i))

\theta^{(i+1)} = arg \max_{\theta} B(\theta,\theta^{(i)})
现在求 θ(i+1)θ(i+1)\theta^{(i+1)} 的表达式,省去对于 θθ\theta而言都是常数的项:

θ(i+1)=argmaxθ(L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y,Z;θ))=argmaxθQ(θ,θ(i))(190)(190)θ(i+1)=argmaxθ(L(θ(i))+∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ)P(Y|Z;θ(i))P(Y;θ(i)))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y|Z;θ)P(Z;θ))=argmaxθ(∑zP(Y|Z;θ(i))logP(Y,Z;θ))=argmaxθQ(θ,θ(i))

\theta^{(i+1)} = arg\max_{\theta} \left(L(\theta^{(i)})+\sum_{z}P(Y|Z;\theta^{(i)}) log \frac{P(Y|Z; \theta) P(Z; \theta)}{P(Y|Z;\theta^{(i)})P(Y;\theta^{(i)})}\right)\\ = arg\max_{\theta} \left(\sum_{z}P(Y|Z;\theta^{(i)}) log{P(Y|Z; \theta) P(Z; \theta)}\right)\\ = arg\max_{\theta} \left(\sum_{z}P(Y|Z;\theta^{(i)})log P(Y,Z;\theta)\right)\\ = arg\max_{\theta} Q(\theta, \theta^{(i)})
EM算法并不能保证全局最优值,直观解释如图所示。

参考文献

http://wiki.mbalib.com/wiki/%E8%A9%B9%E6%A3%AE%E4%B8%8D%E7%AD%89%E5%BC%8F

机器学习笔记(十七)——EM算法的推导相关推荐

  1. 机器学习笔记之EM算法(二)EM算法公式推导过程

    机器学习笔记之EM算法--EM算法公式推导过程 引言 回顾:EM算法公式 推导过程 引言 上一节介绍了隐变量和EM算法,以及 以EM算法公式为条件,证明了随着EM算法迭代步骤的增加,每次迭代得到新的模 ...

  2. 机器学习笔记之EM算法(一)隐变量与EM算法公式的收敛性

    机器学习笔记之EM算法--隐变量与EM算法公式的收敛性 引言 隐变量 示例1 示例2 EM算法 包含隐变量的混合概率模型 EM算法的表达形式 EM算法的收敛性 EM算法的收敛性证明的条件与目标 EM算 ...

  3. python 数学期望_python机器学习笔记:EM算法

    完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote EM算法也称期望最大化 ...

  4. 白板机器学习笔记 P60-P65 EM算法

    视频地址:https://www.bilibili.com/video/BV1aE411o7qd?p=46 笔记地址:https://www.yuque.com/books/share/f4031f6 ...

  5. EM算法讲推导原理讲的懂了的,表达清晰易懂的, 收藏cnblog上的大牛的

    博客1长于理论推导 https://zhuanlan.zhihu.com/p/149810914 EM算法的十重境界 https://www.zhihu.com/question/40797593/a ...

  6. 机器学习系列之EM算法

    机器学习系列之EM算法 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要 ...

  7. 机器学习笔记——支持向量机SMO算法完整版代码分析

    机器学习笔记--支持向量机SMO算法完整版代码分析 代码大体分析 外循环 参数类 内循环 KKT条件判断 eCache参数 完整SMO代码 添加核函数代码 代码参考书籍:<机器学习实战> ...

  8. 机器学习-白板推导-系列(十)笔记:EM算法

    文章目录 0 笔记说明 1 算法收敛性证明 2 公式导出 2.1 ELBO+KL Divergence 2.2 ELBO+Jensen Inequlity 2.3 最后的工作 3 从狭义EM到广义EM ...

  9. em算法 实例 正态分布_【机器学习】EM算法详细推导和讲解

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

最新文章

  1. Java 理解泛型的基本含义
  2. vCenter Server Appliance 5.5忘记root密码
  3. 精彩---rtl8139网卡驱动程序分析
  4. web端ios布局fixed元素软键盘唤起时fixed失效
  5. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...
  6. 聚类分析(Clustering Analysis)
  7. html页面选择指定条件在下方显示,如何从符合特定条件的HTML中找到CSS选择器?...
  8. hashmap移除元素_Java HashMap 如何正确遍历并删除元素的方法小结
  9. 一维卷积神经网络、卷积神经网络的基础知识
  10. Java多线程:生命周期,实现与调度
  11. jdk的selector(2)channel的注册
  12. c语言数据结构的主函数怎么写,您好,关于数据结构C语言的问题,上次百度知道里面主函数没有发上去? 爱问知识人...
  13. 记录——《C Primer Plus (第五版)》第八章编程练习第三题
  14. 基于表格存储的高性能监控数据存储计算方案
  15. 如何求最小三元组距离
  16. 【嗅探工具】wireshark初步认识
  17. python在线问卷调查系统_GitHub - imze/surveySystem: 问卷调查系统
  18. Python网络爬虫——爬取视频网站源视频!
  19. favicon 尺寸问题
  20. Scrapy对接Selenium(说明在哪里进行对接为什么在这里):小猪短租网实战分析

热门文章

  1. 利用python进行数据分析之准备工作(1)
  2. oracle格式化列宽度,ORACLE日期时间的格式化参数大全
  3. 计算机科学和软件工程区别,计算机科学和软件工程的区别
  4. kafka php 教程,php的kafka踩坑(一)
  5. 项目案例:在线拍卖系统_冀拓公司在张家口开展尾矿库在线监测监控系统 建设项目...
  6. 三菱a系列motion软体_工控电缆如何制作?(以三菱PLC、触摸屏为例)
  7. UserWarning: Matplotlib is currently using agg in Object Detection API
  8. 【贪心算法】POJ-1017
  9. android:Android中用文件初始化sqlite数据库(zz)
  10. Jmeter响应中中文乱码怎么解决?