EM算法 小结

猴子吃果冻

 

4-EM算法原理及利用EM求解GMM参数过程

1.极大似然估计

  原理:假设在一个罐子中放着许多白球和黑球,并假定已经知道两种球的数目之比为1:3但是不知道那种颜色的球多。如果用放回抽样方法从罐中取5个球,观察结果为:黑、白、黑、黑、黑,估计取到黑球的概率为p;

  假设p=1/4,则出现题目描述观察结果的概率为:(1/4)*(3/4) = 3/1024

  假设p=3/4,则出现题目描述观察结果的概率为:(3/4)*(1/4) = 81/1024

  由于81/1024 > 3/1024,因此任务p=3/4比1/4更能出现上述观察结果,所以p取3/4更为合理

  以上便为极大似然估计的原理

  定义如下图:(图片来自浙江大学概率论课程课件)

  

2.知晓了极大似然估计的原理之后,我们可以利用极大似然估计的原理来解决如下问题:

  即,若给定一圈样本x1,x2.....xn,已知他们服从高斯分布N(μ,σ),要求估计参数均值μ,标准差σ

  (1) 高斯分布的概率密度为:

    

  (2) 利用上述极大似然估计的原理,构建似然函数为:

    

  (3) 为例求解方便我们取对数似然:

    

  (4) 我们的目标是求上述l(x)的最大值,对上式,分别关于μ,σ求二阶导数,很容易证明2次倒数均小于0 ,所以上述函数关于μ,和σ均为凹函数,极大值点满足一阶导数等于0,故通过对μ,和σ求偏导并且倒数为0 我们即可得到如下等式:

    

3.EM算法原理推导

  3.1 EM算法与极大似然估计的区别于联系(直接饮用李航-统计学习方法中的内容)

    概率模型有时即含有观测变量,又含有隐变量或潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或者贝叶斯估计法估计模型参数。但是当模型含有隐量时,就不能简单的用这些估计方法,EM算法就是含有隐变量的概率模型参数的极大似然估计法

    什么是隐变量?

    举例:比如现要在一所学校中随机选取1000个人测量身高,最终我们会得到一个包含1000个身高数据的数据集,此数据集就称为观测变量,那这1000个学生中,既有男生又有女生,我们在选取完成以后并不知道男生和女生的比例是多少?此时这1000名学生中男生的占比以及女生的占比就称为隐变量

  3.2 有了上述简单的认识之后,下边解决EM算法的推导过程

    在对EM算法原理进行推导之前,先用一个实例理解一下下文中θ所表示的意义:

    

    假设现有样本集T= {x1,x2 .....xm},包含m个独立样本,其中每个样本对应的类别z(这里的类别z就可以类比3.1中的男生女生两种性别去理解)是未知的,所以很难直接用极大似然法去求解。

    以x1为例:x1发生的概率可以表示为:,θ表示的就是我们要估计的参数的一个总称后续证明过程中的Q(z)也是θ中的一个参数。举例,如果每一个类别z均符合高斯分布,那么θ中还会包含均值μ和标准差σ,如果对θ的理解不是不到

    整个数据集T的似然函数可以表示为:

          

    为了便于计算我们取对数似然得:

      

    对上上述函数log中有求和运算,求解困难,故我们可以对其形式进行转化,转化为易于我们求解的方式如下式:表示第i个样本第j个类别的概率,则表示的期望

      

    log函数是一个凹函数,故利用jenson不等式的原理可以得出期望的函数值大于等于函数值的期望,故表达如下:

           

    在上述不等式的等号成立时和是等价的,也就是说后式的最大值即为前式的最大值。当log函数的图像是一条直线时等号成立,故为常数时,等号成立。      

      

    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

    E-step:即就是上述的

    M-step:在E-step的基础上求使得上述函数值的期望取得最大值的参数θ的取值

       

    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

    对上述E-step和M-step不断进行迭代,知道我们估计的模型参数收敛(即变化趋近于一个定值)我们即可得到最适合观测数据集的模型参数,者便是EM算法

4.利用EM原理推导GMM(混合高斯模型)

  随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为φ1,φ2...φK,第i个高斯分布的均值为μi,方差为Σi。若观测到随机变量X的一系列样本x1,x2...xn,试估计参数φ,μ,Σ。    

   第一步:依据3中E-step估计φ用wj(i) 表示,意义是对第i个样本第j个高斯分布的贡献率(即第j个高斯分布的占比)

    

  第二步:依据3中的M-step估计μ,和σ  用 表示σ2

    

    对上述关于μ求偏导得:

    

    对(2)式为0 可得:

    

    同理对方差求偏导,并令导入为0 可得:

    

    对于φ由于 ,故对于φ必须采用添加极值的方式求解,需构建拉个朗日方程进行求解。

    观察(1)式,log函数中可以看成是一个常数与φj相乘。由对数函数求导法则指,在求导之后,常数项终被抵消,如f(x) = lnax 关于x求导结果与g(x)=lnx关于x求导结果相同,故对于(1)式在构建拉个朗日函数时,直接去掉log函数中的常数项,如下:

    由于φ为正在log函数中已有现值,故这里无需构建不等式约束

    

    对朗格朗日函数关于φj求导并取倒数为0 可得:

    

    

       

5.用实例理解GMM的参数估计过程

  5.1 在正式引入GMM(混合高斯模型)前我们以下述情景的求解为例,用实例看先熟悉以下参数更新的过程

    情景:假设从商场随机选取10位顾客,测量这10位顾客的身高,这些顾客中既包含男性顾客也包含女性顾客,现在我们已知测量数据,T=[x1,x2.....x10]为我们测试的身高数据,即为可观测数据集。并且知道男性女性顾客的身高均服从高斯分布N(μ11),N(μ22),估计参数μ11,μ22 ,以及男女比例 α1,α2

    高斯分布的概率密度函数为:

      

    (1)对于测试数据x其产生的概率我们可以表示为:

      

      我们用γ(i,k)来表示男性或者女性在生成数据x1  时所做的贡献(γ(i,k)就相当于我们初始给定的α1,α2)。或者说表示单由男性或者女性产生数据xi的概率,前后两个说法所想表达的意思是相同的,那么就有:

       

 

      

 

    (2)对于测试数据x2 其产生的概率我们可以表示为:

      

      同(1)可知:

      

      

    (3)依次按照上述(1)(2)的规律我们就可以求出如下表格中的所有值,表中标绿的在上述(1)(2)步已求出

      

      我们在上文2中的(4)已经推导出来了μ和σ2的计算公式,故

         

        

      

      

       

        

    对于上述α1,α2计算方式的理解:α1,α2表示的是同一次实验,或者说针对同一个样本,两类数据来源(男性,女性)对样本结果的贡献率,那么对于每一个样本来说他们的男性和女性的贡献率都应该是恒定的,故我们采用取平均的方式更新α1,α2;

    (4)用计算出来的μ1new2new      σ21new    σ22new   α1new2new 再次重复迭代上述(1)(2)(3)步骤,直到μ1new2new      σ21new    σ22new   α1new2new 收敛我们即得到的关于本次观测数据最合适的参数

  5.2 有了上述实例以后,我们直接给出GMM的推广式:(下述式子的正面过程见4中GMM的证明过程)

    随机变量X是有K个高斯分布混合而成,取各个高斯分布的概率为φ1,φ2...φK,第i个高斯分布的均值为μi,方差为Σi。若观测到随机变量X的一系列样本x1,x2...xn,试估计参数φ,μ,Σ。

    第一步:(如上述实例中(1)和(2))

      

    第二步:(如上述实例中的(3))

      

 

转载于:https://www.cnblogs.com/cupleo/p/10656370.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SPSS-回归分析

回归分析(一元线性回归分析、多元线性回归分析、非线性回归分析、曲线估计、时间序列的曲线估计、含虚拟自变量的回归分析以及逻辑回归分析) 回归分析中,一般首先绘制自变量和因变量间的散点图,然后通过数据在散点图中的分布特点选…

HTML5概要与新增标签

一、HTML5概要 1.1、为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网。为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电、触摸、不开放)。 HTML5增强了浏览器的…

Tomcat启动失败错误解决Could not publish server configuration for Tomcat v8.0 Server at localhost....

这个问题本质是我们有多个重名项目,为什么我们会有多个重名项目,其实一般都是我们删除以前的项目,然后再把它重新导进eclipse时以前的项目删除不彻底造成的,以前的项目在"Servers"里面的"server.xml"文件下的…

Mock.js 和Node.js详细讲解

​​​​原文地址:http://www.manongjc.com/article/10503.html 《一统江湖的大前端》系列是自己的前端学习笔记,旨在介绍javascript在非网页开发领域的应用案例和发现各类好玩的js库,不定期更新。如果你对前端的理解还是写写页面绑绑事件&am…

架构图

负载均衡 分布式 转载于:https://www.cnblogs.com/jiqing9006/p/10672280.html

文本聊天室(TCP-中)

开始我们今天的代码实现,我们接着上一回,上回实现了服务器的代码这次实现客户端的UI(界面)层, 我们界面层采用javafx来进行绘制,首先有个登录服务器的界面然后切换到聊天界面运行结果如下.源代码如下: 1 package jffx.blogs.net;2 3 import javafx.appli…

爱好-摩托车:铃木

ylbtech-爱好-摩托车:铃木1.返回顶部 2.返回顶部3.返回顶部4.返回顶部5.返回顶部 1、http://www.suzuki-china.com/motor/2、6.返回顶部作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有,欢迎转载&#x…

vue面试题,知识点汇总(有答案)

一. Vue核心小知识点 1、vue中 key 值的作用 key 的特殊属性主要用在 Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes。如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用key,它会基于…

EF中Take和Skip的区别

以例子来说明: 数据库中Orders表如下: 代码部分: 运行结果: 可以看出:Take()方法的作用是从查询结果中提取前n个结果;而Skip()方法则是跳过前n个结果,返回剩余的结果。转载于:https://www.cnblo…

详解Vuex常见问题、深入理解Vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态。简单的…

Mac OS Git 安装

一、Git是一个分布式的代码版本管理工具。类似的常用工具还有SVN,CVS。最大的特点也是优点在于提供分布式的代码管理 1、分支代码只有一份! 使用过svn的童鞋想必都知道,当我们要开发一个新功能或者增加一个新版本或者修改一个复杂bug的时候&#xff0c…

JS对象与jQuery对象

JS对象大致可以分为三种,如下图: JS常用内置对象(JS自身所持有的对象,不需要创建,直接可用): String:API跟java的字符串API大致相同 两种创建对象的方式:String s1 “…

Nginx Slab内存管理

L38 Slub内存管理适用 ngx_http_limit_conn_module、ngx_http_limit_req_module 模块场景 我们可以用阿里第三方模块Slab_Stat模块 并且用add-module 方式编译进openresty中 转载于:https://www.cnblogs.com/jackey2015/p/10684151.html

Node.js异步库async

async的使用需要安装第三方包 1.串行无关联 async.series 函数依次执行,后面不需要调前面步骤的结果 程序执行时间为所有步骤之和 2.并行无关联 async.paraller 某步出错不影响其他步骤执行 程序执行时间为最长的那个时间 3.串行有关联 async.waterfall 函数依次执行,后面需要…

vue的双向绑定原理及实现

前言 使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图来吸引各位&a…

作业——8

这个作业属于哪个课程C语言程序设计Ⅱ这个作业的要求在哪里C语言作业评价标准我在这个课程的目标是指针与字符串这个作业在哪个具体方面帮助我实现目标使用指针与字符串参考文献指针和字符串(基础知识)第七周作业 一 1 、使用函数删除字符串中的字符 输入…

Vue实现组件props双向绑定解决方案

注意: 子组件不能直接修改prop过来的数据,会报错 方案一: 用data对象中创建一个props属性的副本 watch props属性 赋予data副本 来同步组件外对props的修改 watch data副本,emit一个函数 通知到组件外 HelloWorld组件代码如下…

Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler

一.使用 Flask中的特殊装饰器(中间件)方法常用的有三个 app.before_request # 在请求进入视图函数之前app.after_request # 在请求结束视图函数之后 响应返回客户端之前app.errorhandler(404) # 重定义错误信息before_request def func():passafter_request def func(ret): # …

CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport

最近看了很多这方面的文章,能搜到的基本看了个遍,但感觉还是似懂非懂,知道这个东西,很难说出这是个什么东西,先整理一些概念,慢慢消化,以后慢慢探索其中的原因。 1、PX(CSS pixels) 1.1 定义 …

【转】10条你不可不知的css规则

10条你不可不知的css规则 Posted on 2006-12-20 10:33 雨中太阳 阅读(343) 评论(1) 编辑 收藏 :【译】10条你不可不知的css规则正文: Published December 6th, 2004 in CssStaff Tags: No Tags. 原文地址:Ten CSS Tricks You May not Know k…