摘要

  EM算法全称为Expectation Maximization Algorithm,既最大期望算法。它是一种迭代的算法,用于含有隐变量的概率参数模型的最大似然估计和极大后验概率估计。EM算法经常用于机器学习和机器视觉的聚类领域,是一个非常重要的算法。而EM算法本身从使用上来讲并不算难,但是如果需要真正的理解则需要许多知识的相互串联。

引言

  EM算法是机器学习十大经典算法之一。EM算法既简单有复杂,简单的在于他的思想而复杂则在于他的数学推理和复杂的概率公式。作为我这个新手来讲,决定先捡大的部分,因此文章我们会更加着重概念的理解,至于公式的推导,在上过课以后其实也不是那么的困难,主要一点是你需要有非常扎实的数学功底,EM算法的推导过程基本上涵盖了我们前面所有讲到的数学知识。因此,如果看不懂EM算法大概是因为基础知识太弱了需要补习。

预备知识:

  贝叶斯网络、概率论与数理统计、凸优化

一、EM算法

  实际问题:随机挑选10000位志愿者,测量他们的身高:若样本中存在男性和女性,身高分别服从N(μ1,σ1)和N(μ2,σ2)的分布,试估计μ1,σ1,μ2,σ2。

  1、提出

  假定有训练集,包含m个独立样本,希望从中找到该组主句的模型的参数。

  2、建立目标函数

  我们利用极大似然估计来建立目标函数:,z是隐随机变量,不方便直接找到参数估计。

  策略:计算下界,求该下界的最大值;重复该过程,直到收敛到局部最大值。

  

  利用利用Jesenbu不等式,寻找尽量紧的下界,寻找尽量紧的下界。

  令是z的某一个分布,有:

    

  为了使等号成立:

  

  有:

  

  根据上述推导,有EM算法框架:

  E-step(求条件分布)

  

  M-step(求期望)

  

  相互迭代,求的

二、高斯混合模型GMM

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

  1、直观求解:

  对数似然函数:

   

  由于在对数函数里面又有加和,我们没法直接用求导解方程的办法直接求得极大值。为了解决这个问题,我们分成两步。

  第一步:估计数据由每个组份生成的概率

  对于每个样本xi,它由第k个组份生成的概率为:

  

  上式中的μ和Σ也是待估计的值,因此采样迭代法:在计算γ(i,k)时假定μ和Σ已知;γ(i,k)亦可看成组份k在生成数据xi时所做的贡献。

  第二步:估计每个组份的参数

  对于所有的样本点,对于组份k而言,可看做生成了这些点。组份k是一个标准的高斯分布,利用上面的结论:

  

  2、EM方法求解:

  E-step:

  

  M-step:将多项分布和高斯分布的参数带入

  

  对均值求偏导

  

  令上式等于0,解的均值:

  

  高斯分布的方差:求偏导,等于0

  

  详细参考:http://blog.csdn.net/zouxy09/article/details/8537620

机器学习之EM算法(五)的更多相关文章

  1. 斯坦福大学机器学习,EM算法求解高斯混合模型

    斯坦福大学机器学习,EM算法求解高斯混合模型.一种高斯混合模型算法的改进方法---将聚类算法与传统高斯混合模型结合起来的建模方法, 并同时提出的运用距离加权的矢量量化方法获取初始值,并采用衡量相似度的 ...

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

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

  3. 【机器学习】EM算法详细推导和讲解

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

  4. 【机器学习】--EM算法从初识到应用

    一.前述 Em算法是解决数学公式的一个算法,是一种无监督的学习. EM算法是一种解决存在隐含变量优化问题的有效方法.EM算法是期望极大(Expectation Maximization)算法的简称,E ...

  5. 机器学习笔记—EM 算法

    EM 算法所面对的问题跟之前的不一样,要复杂一些. EM 算法所用的概率模型,既含有观测变量,又含有隐变量.如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法来估计 ...

  6. 机器学习:EM算法

    EM算法 各类估计 最大似然估计 Maximum Likelihood Estimation,最大似然估计,即利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程. 直白来讲,就 ...

  7. 机器学习——EM算法

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

  8. 机器学习五 EM 算法

    目录 引言 经典示例 EM算法 GMM 推导 参考文献: 引言 Expectation maximization (EM) 算法是一种非常神奇而强大的算法. EM算法于 1977年 由Dempster ...

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

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

随机推荐

  1. 利用 ELK 搭建 Docker 容器化应用日志中心

    利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...

  2. 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件项目的托管平台:https://github.com/zlslch/)(图文详解)(博主推荐)

    不多说,直接上干货! https://github.com/ 欢迎大家,加入我的微信公众号:大数据躺过的坑        人工智能躺过的坑       同时,大家可以关注我的个人博客:    http ...

  3. 在微信小程序中使用图表

    前言:网上有许多的图表库,如:Echarts.Tau Charts.ChartJS等等,具体自行百度. 这次我们使用的是:Echarts 官方教程:点击查看 Echarts下载地址:飞机直达 1.下载 ...

  4. ELK实践(一):基础入门

    虽然用了ELK很久了,但一直苦于没有自己尝试搭建过,所以想抽时间尝试尝试.原本打算按照教程 <ELK集中式日志平台之二 - 部署>(作者:樊浩柏科学院) 进行测试的,没想到一路出了很多坑, ...

  5. 深入学习主成分分析(PCA)算法原理(Python实现)

    一:引入问题 首先看一个表格,下表是某些学生的语文,数学,物理,化学成绩统计: 首先,假设这些科目成绩不相关,也就是说某一科目考多少分与其他科目没有关系,那么如何判断三个学生的优秀程度呢?首先我们一眼 ...

  6. Spark提高篇——RDD/DataSet/DataFrame(二)

    该部分分为两篇,分别介绍RDD与Dataset/DataFrame: 一.RDD 二.DataSet/DataFrame 该篇主要介绍DataSet与DataFrame. 一.生成DataFrame ...

  7. Perl流程控制语句

    布尔值判断 如果是数字,0表示假,其它所有数字都是真. 如果是字符串,空字符串('')为假,其它所有字符串为真(有例外,见下一条). 如果是字符串'0',perl是当作数值0来处理的,所以这是唯一的非 ...

  8. python字符串(string)方法整理

    python中字符串对象提供了很多方法来操作字符串,功能相当丰富. print(dir(str)) [..........'capitalize', 'casefold', 'center', 'co ...

  9. OpenCV神技——人脸检测,猫脸检测

    简介   OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 ...

  10. 【转载】C#工具类:FTP操作辅助类FTPHelper

    FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.可以通过C#中的FtpWebRequest类.NetworkCredential类.We ...