August:人人都懂EM算法​zhuanlan.zhihu.com

全网最容易理解最直观最形象的em算法的解释文。

首先,EM和极大似然法一样需要提前假设数据的分布符合XX分布情况,EM算法和极大似然不同的地方在于当求解的公式中存在隐变量的时候极大似然法无法解决,此时可以采用EM算法来求解。

极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率极大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

求极大似然函数估计值的一般步骤:

(1)写出似然函数;

(2)对似然函数取对数,并整理;

(3)求导数,令导数为 0,得到似然方程;(很多时候似然方程没有解析解所以只能通过梯度下降法等优化算法迭代求解)

(4)解似然方程,得到的参数。

极大似然方程的一般形式

以一元高斯分布为例:

小学的高斯分布公式实际上就是这么推导而来的,因为高斯分布参数估计的似然函数存在解析解,所以求导之后可以直接求出对应的参数值而不需要使用梯度下降法之类的迭代求解的方法。


EM算法是在极大似然估计无法解决原始的似然函数中存在隐变量的情况下使用的一种启发式的算法。

可以看到对数似然函数的对数中有一大堆的求和项,求导起来极其复杂麻烦很难求解。那么EM的思路就是首先假设一个隐变量z的分布Q:

其中:

(这里的Q分布可以是连续也可以是离散分布的)

(2)式用到了Jensen不等式。

这里我们就构建出了原始的带隐变量的极大似然函数式的下界,EM的思想在于通过最大化这个下界从而增大原始的极大似然函数值(无法保证也最大化,启发式无法保证最优),此时原来的问题就转化为了最大化这个下界的值:

可以看到上面的这个式子实际上就是:

的加权平均,这一步就是EM中的E步

根据这个式子可以知道,当下界与原始的带隐变量的极大似然函数相等的时候取到最大值(小于等于的最大值当然是等于啦。。)

然后反过来,根据Jensen不等式的性质,取到等号的时候:

其中 c 为常数,对于任意

,我们得到:

方程两边同时累加和:

由于

。 从上面两式,我们可以得到:

其中:

边缘概率公式:

条件概率公式:

从上式可以发现

实际上就是已知样本和模型参数下的隐变量分布

得到了Q的表达式之后我们的E步就结束了,

然后进入M步,带入原始的下界函数的式子,然后关于参数

求极大值

这样我们就更新得到了新的参数

一直重复,直到参数

收敛为止。

上述的过程是EM算法的一个很通用的求解过程的序数,但是细化到不同的算法上又有很多需要注意的地方,这里以单元的GMM为例介绍下EM在GMM求解上的具体的例子,可见:

em算法详细例子及推导_outlier analysis 补充——EM算法相关推荐

  1. em算法详细例子及推导_第九章-EM算法

    从第九章开始,学习总结的东西有所不同了,第2-8章是分类问题,都属于监督学习,第9章EM算法是非监督学习.本文主要是总结EM算法的应用以及处理问题的过程和原理推导. EM算法 EM算法(期望极大算法 ...

  2. em算法详细例子及推导_EM算法详解(例子+推导)

    一. 例子讲解 假设有两个硬币1和2,随机抛出后出现正面概率为 . .每次取一枚银币,连续抛5次,共抛5轮,数据如下: 硬币1-->(3正2反):硬币2-->(2正3反):硬币3--> ...

  3. python快速排序算法详细图解_详解python实现快速排序算法

    人来人往,蜚短流长,不求此生匆匆过,但求每日在成长 快速排序严重依赖分区,分区部分完成就代表排序成功了一半 1.详细思路见代码注释部分: def quick_sort(l,low,high): ''' ...

  4. python快速排序算法详细图解_Python实现桶排序与快速排序算法结合应用示例

    说明: FreeNAS是一个基于FreeBSD的开源网络存储系统,支持iSCSI.NFS等共享协议, 通过Web页面进行管理,安装FreeNAS最小需要2G硬盘. 最新版本下载: http://iso ...

  5. Adaboost算法详细讲解

    转自线上数据建模 Adaboost算法详细讲解 Adaboost(Adaptive Boosting): Adaboost是Boosting模型,和bagging模型(随机森林)不同的是:Adaboo ...

  6. 【机器学习基础】数学推导+纯Python实现机器学习算法27:EM算法

    Python机器学习算法实现 Author:louwill Machine Learning Lab 从本篇开始,整个机器学习系列还剩下最后三篇涉及导概率模型的文章,分别是EM算法.CRF条件随机场和 ...

  7. 数学推导+纯Python实现机器学习算法22:EM算法

    Python机器学习算法实现 Author:louwill Machine Learning Lab 从本篇开始,整个机器学习系列还剩下最后三篇涉及导概率模型的文章,分别是EM算法.CRF条件随机场和 ...

  8. SMO算法详细推导(Sequential Minimal Optimization)

    本文针对一般性的"软判断的核函数的对偶问题的SVM",形如下式: 上式问题所在:当采样点 xix_ixi​ 选取50000个点时,则基于核函数变量Θ(xi,xj)\bm{\Thet ...

  9. 机器学习之EM算法的原理及推导(三硬币模型)及Python实现

    EM算法的简介 EM算法由两步组成:E步和M步,是最常用的迭代算法. 本文主要参考了李航博士的<统计学习方法> 在此基础上主要依据EM算法原理补充了三硬币模型的推导. 1.EM算法的原理 ...

最新文章

  1. Category中实现了原始类实例变量的get方法导致的警告
  2. 基于Java语言构建区块链(一)—— 基本原型
  3. tlias 教学过程_2020年Java生存现状!建议程序员了解一下!
  4. Flowable 数据库表结构 ACT_RU_EXECUTION
  5. 什么样的网站建设公司才是值得信赖的?
  6. onCreate onRestoreInstanceState onSaveInstanceState
  7. 做双网卡绑定_______物理机在双网卡的情况下做多IP绑定
  8. python 绘制堆积柱状图
  9. mac电脑安卓开发环境搭建
  10. STM32F207通过FSMC读取ADC数据
  11. 计算机基础考试在线搜题,计算机基础考试题库 (含答案).doc
  12. 小米笔记本bios版本大全_如何设置u盘启动?bios设置u盘启动教程+U盘启动快捷键大全...
  13. Windows文件系统过滤驱动开发教程-楚狂人
  14. 如何获取有价值的用户反馈?
  15. DSP CCS12.00 芯片:TMS320F28335 ADC 的运用
  16. 传奇SF的架设-开外网
  17. ue4打包h5_ue4学习之嵌入H5网页(web Brower)
  18. 旋转框目标检测mmrotate v0.3.1入门
  19. 哪些产品需要做3C认证
  20. JAVA-SSH2:JSch试用

热门文章

  1. java 初始化二维数组_java二维数组的常见初始化
  2. caffe添加层:Focal Loss的caffe实现
  3. 输入一个字符串,将其逆序后输出
  4. Egret之ProtoBuf(引用)
  5. 阿里云容器Kubernetes监控(七) - Prometheus监控方案部署
  6. vscode 配置php
  7. GOOD MEETINGS CREATE SHARED UNDERSTANDING, NOT BRDS!
  8. 修改linux bash shell PS1
  9. oracle 存储过程的基本语法 及注意事项
  10. 使用PHP处理Kafka消息