视频地址:https://www.bilibili.com/video/BV1aE411o7qd?p=46
笔记地址:https://www.yuque.com/books/share/f4031f65-70c1-4909-ba01-c47c31398466/nl8l9l

P60 EM算法1 - 收敛性证明
EM算法核心思想:是具有隐变量的混合模型的参数估计。本节主要证明了分步迭代更新参数θ时,新的θt+1一定会使X取的比上一步θt更高的置信度P(X|θ),这样算法才能保证收敛。

前置知识:首先要理解什么是含有隐变量的混合模型。我们之前处理的都是数据满足单一分布的情况,如下图(1)所示,我们列出数据集X的极大似然P(X|θ)之后直接求导,即可求出(1)中正态分布的参数,也就得到了模型。但是如(2)所示,当整体模型(虚线)是由多个子模型叠加而成的,整体模型就是由多个模型的多个参数共同表示的,这时当我们对其中一个模型的参数求导,剩下的式子中仍有多个参数还是无法求解。这时一个简单的想法就是:对于某个样本xi我们分别把它放在不同子模型的分布中求概率,再把概率加起来。这样我们就不用直接求整体模型了,而是把整体模型解耦成一个个简单的子模型,我们又能用前边的直接求导计算的方法了。这个所谓的xi属于哪个子模型其实就是隐变量z,z其实就是子模型的类别。因为我们要求出所有子模型的概率之后再加起来,所以也就把P(X|θ)变成了 ∫ P(X,z|θ) dz。这里还有一个问题就是:如(2)所示,不同分布对应的数据量可能不同,数据量越多形成的分布肯定越准确,我们也应该给予这个分布更高的权重。那么究竟应该给每个分布多大权重呢?我们用一个分布P(z|X,θ)来表示,它的意思就是在已知样本为X和模型参数为θ的情况下,分布为z的权重。所以最终我们单分布的似然函数P(X|θ)就变成了含隐变量z的多模型概率加权叠加 ∫ P(X,z|θ)· P(z|X,θ) dz。

前置知识可以参考徐亦达EM算法
https://www.bilibili.com/video/BV1Wp411R7am?p=1

:根据极大似然估计列出优化目标P(X|θ),我们要找的θ就是能让目标取得最大值的θ。从第一个argmax到第二个argmax,参考前置知识的解释。
:我们要验证的就是:分步迭代更新参数θ时,新的θt+1一定会使X取的比上一步θt更高的置信度P(X|θ)。
:将P(X|θ)用贝叶斯公式写成跟隐变量z有关的形式,只不过右边贝叶斯公式把除法写成了log减法。我们要优化的目标还是P(X|θ),通过变形出的右边减法式子分别推导。
:右边式子的第一项根据我们对θ的定义即可得证。因为log函数是凸函数,第二项化简的过程中要用到凸优化的定理: E(logX)<=log(E(X))。E(logX)是对多个xi求log之后再算均值,对应于图中我们算了log(a)和log(b)之后,在两点之间连接直线上c点对应的值,求期望就类似于线性拟合。log(E(X))则是先找到a和b两个点的期望c点,然后求log©。log©还在曲线上,[log(a)+log(b)]/2在直线上,对于凸函数来说,显然E(logX)<=log(E(X))。

P61 EM算法2 - 公式导出之ELBO+KL divergence

本节内容:是用KL divergence推导出①中θ的迭代公式。可以看到EM算法包含 E-step 和 M-step,E就是Expectation或者说数据真实分布的下界ELBO(evidence of lower bound),就是求出 ∫ P(X,z|θ)· P(z|X,θ(t)) dz,这个式子不是一个值,而是一个θ的函数。M就是Maximization,最大化上边的θ函数。本节推导其实和上一节收敛性的推导一样,只不过这里是对一个预设的分布q(z)积分,上一节是直接告诉了按P(z|x,θ)积分。这里的ELBO就是上一节的Q(θ,θ(t)),这里的KL(q(z)||P(z|x,θ))就是上一节的H(θ,θ(t))。这里q(z)=P(z|x,θ)的条件是根据KL(q(z)||P(z|x,θ))=0这个条件求出的。可以看出EM优化算法和梯度下降优化算法的不同,梯度下降是直接在原函数上求最大值,EM是不断提高下界的最大值。

P62 EM算法3 - 公式导出之ELBO+Jensen不等式
本节内容:如①所示,还是在优化P(X|θ)= ∫ P(X,z|θ) dz的过程中构造了隐变量z的分布q(z),然后利用②jensen不等式推出q(z)=P(z|X,θ),依然是一个对下界的优化。

P64 EM算法5 - 广义EM

本节内容:广义EM优化的目标就是概率生成模型,也即先从分布q(z)中挑出一个子模型,再优化子模型的参数θ。如GMM、HMM都是这种概率生成模型,两者的主要区别是挑选子模型的分布q(z)不同,GMM是离散概率分布,HMM是前向依赖的马氏链。GMM和HMM挑好子模型之后,直接从子模型中发射出(emit)样本即可。所以我们可以看到概率生成模型主要优化的对象有分布q(z)和参数θ。像最早期我们优化单变量高斯模型的MLE时那样,先固定一个变量θ去优化q,再代入上一步找到的最优q去优化θ,这样交替迭代直至收敛。前边的狭义EM只不过是假定了q(z)=P(z|X,θ),但实际上后验概率P(z|X,θ)很多时候并不能求出来,这就需要用后边的变分推断和蒙特卡洛方法去近似这个后验概率。

P65 EM算法6 - EM的变种

本节内容:像EM算法这样,先固定一部分变量去优化另一部分,再固定另一部分去优化这一部分,这样交替进行直至收敛的方法其实叫做 坐标上升法SMO。上图方框中①表示梯度下降法优化的曲线,②表示坐标上升法优化的曲线,可以看出在二维参数空间中,②每次只沿着一条轴优化,也即是固定一部分参数优化另一部分参数的意思,在某一个方向上是固定的。

白板机器学习笔记 P60-P65 EM算法相关推荐

  1. 机器学习笔记(十六)——EM算法概述

    一.引言 按照计划,这周应该学习HMM中的第三个基本问题:参数估计问题,但是其中的内容涉及到了EM算法,所以打算先把EM算法搞定之后再去继续HMM的问题.EM算法的推导过程比较复杂,这节我只给出简述和 ...

  2. 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)

    吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection) 对于异常检测算法,使用特征是至关重要的,下面谈谈 ...

  3. 机器学习系列-强填EM算法在理论与工程之间的鸿沟(下)

    前言 在上一篇文章<机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)>中,小夕用优(恐)雅(怖)的数学理论来向读者解释了EM算法的工作原理.那么从工程角度出发的EM算法又是怎样的呢? ...

  4. 《机器学习系列-强填EM算法在理论与工程之间的鸿沟(上)》

    小夕曾经问一位做机器学习理论的学姐:"学姐学姐,EM算法是什么呢?" 学姐回答:"EM算法啊,就是解决包含隐变量的参数估计问题." 小夕: 然后小夕去问一位做工 ...

  5. Python机器学习笔记:异常点检测算法——Isolation Forest

    Python机器学习笔记:异常点检测算法--Isolation Forest 参考文章: (1)Python机器学习笔记:异常点检测算法--Isolation Forest (2)https://ww ...

  6. 机器学习最易懂之EM算法详解与python实现

    文章目录 0.前言 1.EM算法引入 2.具体的EM算法 3.EM算法推导 3.1 Jensen不等式 3.2 EM推导 3.3 EM算法的收敛性 4.EM算法在高斯混合模型中的应用 4.1 高斯混合 ...

  7. 机器学习:详细推导EM算法

    EM算法可以说是一个非常经典的算法,至今仍在广泛地被使用(如强化学习领域等等). 网上介绍该算法的文章也很多,比如如何通俗理解EM算法.[机器学习基础]EM算法.但是我认为这些文章讲的太多,反而显得乱 ...

  8. (转载)机器学习知识点(十四)EM算法原理

    1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...

  9. 机器学习(九)——EM算法

    http://antkillerfarm.github.io/ 高斯混合模型和EM算法(续) E-Step中,根据贝叶斯公式可得: p(z(i)=j|x(i);ϕ,μ,Σ)=p(x(i)|z(i)=j ...

最新文章

  1. 高考估分查分选志愿一键搞定_支付宝又操办了件人生大事
  2. 腾讯云数据库客户数超50万,携手合作伙伴共建数据库生态
  3. python 画风场 scipy_科学网-Python: 扩展库SciPy-刘洋洋的博文
  4. 【uniapp】 下拉刷新页面
  5. 与众不同 windows phone (29) - Communication(通信)之与 OData 服务通信
  6. 转:PHP中文乱码问题
  7. Top1方案源码和数据,腾讯广告受众基础属性预估
  8. SQL Server 2008 白皮书
  9. 能ping通,TCP就一定能连通吗?
  10. 谷歌chrome浏览器安装json插件
  11. IT十年人生过客-十八-路过机遇
  12. webview 边距_张虹亮'blog » android中的dialog默认离屏幕的边距如何去除(即如何全屏)...
  13. 我的Java开发学习之旅------Java经典面试题
  14. 实现西门子S71200/1500与三菱FX系列PLC通讯
  15. win10自带录屏怎么用?两种方法快来get
  16. 【NLP自然语言处理】文本特征提取
  17. 表单Form提交数据和PHP数据处理
  18. failed to accept an incoming connection: connection from 127.0.0.1
  19. 海康工业相机USB相机问题排查思路—Windows 系统
  20. 实现海康监控视频播放(实时预览)(抓拍,录像,对讲等功能)

热门文章

  1. tomcat 8启动很慢解决方式
  2. 基于设备树的TQ2440 DMA学习(3)—— DMA控制器驱动
  3. 《软件测试》 第三次博客作业
  4. 各种排序方法的时间复杂度、空间复杂度和稳定性统计表
  5. Repeater删除时给出js提示
  6. Linux 内核PCI去除一个设备
  7. PHPCMS之 列表和内容页
  8. css 实现居中的五种方式
  9. editor does not contain a main type的解决方案
  10. Cygwin中解决vi编辑器方向键和Backspace键不好使、安装vim的方法