最大期望算法

EM算法的正式提出来自美国数学家Arthur Dempster、Nan Laird和Donald Rubin,其在1977年发表的研究对先前出现的作为特例的EM算法进行了总结并给出了标准算法的计算步骤,EM算法也由此被称为Dempster-Laird-Rubin算法。1983年,美国数学家吴建福(C.F. Jeff Wu)给出了EM算法在指数族分布以外的收敛性证明。

MLE

MLE就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值 的计算过程。直白来讲,就是给定了一定的数据,假定知道数据是从某种分布中 随机抽取出来的,但是不知道这个分布具体的参数值,即“模型已定,参数未 知” ,MLE就可以用来估计模型的参数。MLE的目标是找出一组参数(模型中的 参数),使得模型产出观察数据的概率最大。

MLE求解过程:

  • 编写似然函数(即联合概率函数)

  • 对似然函数取对数,并整理;(一般都进行)

  • 求导数;

  • 解似然方程。

 

贝叶斯

贝叶斯算法估计是一种从先验概率和样本分布情况来计算后验概率的一种方式。

贝叶斯算法中的常见概念:P(A)是事件A的先验概率或者边缘概率;P(A|B)是已知B发生后A发生的条件概率,也称为A的后验概率;P(B|A)是已知A发生后B发生的条件概率,也称为B的后验概率;P(B)是事件B的先验概率或者边缘概率。贝叶斯算法估计:

在实际应用中计算:

 

MAP

MAP和MLE一样,都是通过样本估计参数θ的值;在MLE中,是使似然函数P(x|θ)最大的时候参数θ的值,MLE中假设先验概率是一个等值的;而在MAP中,则是求θ使P(x|θ)P(θ)的值最大,这也就是要求θ值不仅仅是让似然函数最大,同时要求θ本身出现的先验概率也得比较大。

MAP是贝叶斯的一种应用:

 

Jensen不等式

如果函数为凸函数,那么下面的式子将成立:

 

如果θ1,....,θk>=0,θ1,....,θk=1将存在:

 

对于f(E(x))=E(f(x))相等的时候,也就是x==y的时候.

相反对于这样的函数:

公式将变成:

 

EM算法引入

假设有3枚硬币,分别记作A,B,C。这些硬币正面出现的概率分别是π,p和q。进行如下掷硬币试验:先掷硬币A,根据其结果选出硬币B或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次试验(这里,n=10),观测结果为1,1,0,1,0,0,1,0,1,1

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币各自的正面朝上的概率,即三硬币模型的参数。

这里,随机变量y是观测变量,表示一次试验观测的结果是1或0;随机变量z是隐变量,表示未观测到的掷硬币A的结果;θ=(π,p,q)是模型参数。随机变量y的数据可以观测,随机变量z的数据不可观测。

三硬币模型:

EM算法(Expectation Maximization Algorithm, 最大期望算法)是一种迭代类型的算法,是一种在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量。

EM原理

给定的m个训练样本{x(1),x(2),...,x(m)},样本间独立,找出样本的模型参数θ,极大化模型分布的对数似然函数如下:

 

假定样本数据中存在隐含数据z={z(1),z(2),...,z(k)},此时极大化模型分布的对数似然函数如下:

 

令z的分布为Q(z;θ) ,并且Q(z;θ)≥0;sum(Q(z;θ))=1;那么有如下公式:

相当于期望根据不等式且是反过来的凸函数

求l(θ)的最大值而后面的式子正好是它的下界,所以求后面式子的上界就行了,根据jensen不等式,当下列式子为常数的时候,l(θ)才能取等号,

 

EM算法的流程

样本数据x={x,x,...,x},联合分布p(x,z;θ),条件分布p(z|x;θ),最大迭代次数J1) 随机初始化模型参数θ的初始值θ02) 开始EM算法的迭代处理:

  • E步:计算联合分布的条件概率期望

     
  • M步:极大化L函数,得到θj+1

     
  • 如果θj+1已经收敛,则算法结束,输出最终的模型参数θ,否则继续迭代处理

给出停止迭代的条件,一般是对较小的正数ε1,ε2,若满足下面条件则停止迭代

 

现在回到刚开始算法引入时候三个硬币例子:

1,初始化模型参数π,p,q

2,EM迭代:

E:估计隐藏变量概率分布期望函数

 

M:根据期望函数重新估计分布函数的参数π,p,q

对上面的式子求偏导即可:

机器学习-EM算法的更多相关文章

  1. 机器学习-EM算法-pLSA模型笔记

    pLSA模型--基于概率统计的pLSA模型(probabilistic Latent Semantic Analysis,概率隐语义分析),增加了主题模型,形成简单的贝叶斯网络,可以使用EM算法学习模 ...

  2. 机器学习-EM算法笔记

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断,混合高斯模型 ...

  3. 机器学习——EM算法

    1 数学基础 在实际中,最小化的函数有几个极值,所以最优化算法得出的极值不确实是否为全局的极值,对于一些特殊的函数,凸函数与凹函数,任何局部极值也是全局极致,因此如果目标函数是凸的或凹的,那么优化算法 ...

  4. 机器学习-EM算法的收敛证明

    上一篇开头说过1983年,美国数学家吴建福(C.F. Jeff Wu)给出了EM算法在指数族分布以外的收敛性证明. EM算法的收敛性只要我们能够证明对数似然函数的值在迭代的过程中是增加的 即可: 证明 ...

  5. 机器学习——EM算法与GMM算法

    目录 最大似然估计 K-means算法 EM算法 GMM算法(实际是高斯混合聚类) 中心思想:①极大似然估计 ②θ=f(θold) 此算法非常老,几乎不会问到,但思想很重要. EM的原理推导还是蛮复杂 ...

  6. 机器学习-EM算法-GMM模型笔记

    GMM即高斯混合模型,下面根据EM模型从理论公式推导GMM: 随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为φ1,φ2,... ,φK,第i个高斯分布的均值为μi,方差为Σi.若观测到随机 ...

  7. opencv3中的机器学习算法之:EM算法

    不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注.相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计.也能得到每个样本对应的标注值,类似于kmea ...

  8. 简单易学的机器学习算法——EM算法

    简单易学的机器学习算法——EM算法 一.机器学习中的参数估计问题 在前面的博文中,如“简单易学的机器学习算法——Logistic回归”中,采用了极大似然函数对其模型中的参数进行估计,简单来讲即对于一系 ...

  9. 关于机器学习-EM算法新解

    我希望自己能通俗地把它理解或者说明白,但是,EM这个问题感觉真的不太好用通俗的语言去说明白,因为它很简单,又很复杂.简单在于它的思想,简单在于其仅包含了两个步骤就能完成强大的功能,复杂在于它的数学推理 ...

随机推荐

  1. Node EE方案 -- Rockerjs在微店的建设与发展

    本文是根据2019.4.13日参加 "Node-Party"论坛使用的PPT,加上笔者新的思考与沉淀而来.在此再次感谢贝贝网前端部门和芋头君以及相关与会人员的支持! -- 微店杨力 ...

  2. QTcpSocket 对连接服务器中断的不同情况进行判定

    http://blog.csdn.net/goforwardtostep/article/details/52300335

  3. mouseover和mouseout事件引发的BUG-解决方法

    mouseover和mouseout引发的BUG原由 当给一个元素添加mouseover或mouseout事件,这个元素还有子元素. 由于子元素的事件冒泡,鼠标移入或移出子元素都会触发事件. 解决的方 ...

  4. SqlServer 动态SQL(存储过程)中Like 传入参数无正确返回值的问题

    最近在做项目时,以动态Sql进行Like语句查询时发现应该返回的结果却一直返回空,后来发现是写法错误: 错误SQL: DECLARE @0 varchar(20) SET @0 = 'XA-LZ' S ...

  5. hive 常用的 join 操作 实例

    test_a 表 id value 1 java 2 python 3 c++ test_b 表 id value 1 java 2 go 3 php 4 c++ 1. join 计算的是笛卡尔积,不 ...

  6. 在CentOS7下安装JDK1.8

    1.下载JDK1.8的tar.gz的压缩包 下载网址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-jav ...

  7. Ural 2072:Kirill the Gardener 3(DP)

    http://acm.timus.ru/problem.aspx?space=1&num=2072 题意:有n朵花,每朵花有一个饥渴值.现在浇花,优先浇饥渴值小的(即从小到大浇),浇花需要耗费 ...

  8. 快速搭建 Windows Kubernetes

    背景 接上一篇 Windows 应用容器 后,想要快速且便利的部署与管理它们,可以借助容器编排工具.对于 Windows 容器,在今天 Service Fabric 会是个更为成熟的选择,在业界有更多 ...

  9. flask 请求上下文源码(转)

    本篇阅读目录 一.flask请求上下文源码解读 二.http聊天室(单聊/群聊)- 基于gevent-websocket 回到顶部 转:https://www.cnblogs.com/li-li/p/ ...

  10. C++学习书籍推荐《Exceptional C++(英文)》下载

    百度云及其他网盘下载地址:点我 作者简介 Herb Sutter is the author of three highly acclaimed books, Exceptional C++ Styl ...