猪猪的机器学习笔记(十四)EM算法

EM算法

作者:樱花猪

 

摘要:

本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记。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的某一个分布,有:

LOG的曲线。

为了使等号成立:

有:

根据上述推导,有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

 

多项分布的参数:

考察M-step的目标函数,对于φ,删除常数项:

有:

由于多项分布的概率和为1,建立拉格朗日方程:

求偏导,等于0:

更加感观的讲解,参见:

http://blog.csdn.net/zouxy09/article/details/8537620

来自为知笔记(Wiz)

时间: 2024-10-13 12:27:30

猪猪的机器学习笔记(十四)EM算法的相关文章

swift 笔记 (十四) —— 构造过程

构造过程 为了生成类.结构体.枚举等的实例,而做的准备过程,叫做构造过程. 为了这个过程,我们通常会定义一个方法来完成,这个方法叫做构造器.当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作以及一此自定义化的处理. 为存储型属性设置初始值 类和结构体在生成实例那一刻,必须为所有的属性赋以特定的初始值. 要么在定义存储型属性的时候直接给个初始值,否则就必须在构造器里面指定一个初始值. 上面说的这两种情况,都不会触发存储型属性的监听者行为(property observer). struc

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)

今天要来讨论的是EM算法.第一眼看到EM我就想到了我大枫哥,EM Master,千里马,RUA!!!不知道看这个博客的人有没有懂这个梗的.好的,言归正传,今天要讲的EM算法,全称是Expectation maximization,期望最大化.怎么个意思呢,就是给你一堆观测样本,让你给出这个模型的参数估计.我靠,这套路我们前面讨论各种回归的时候不是已经用烂了吗?求期望,求对数期望,求导为0,得到参数估计值,这套路我懂啊,MLE!但问题在于,如果这个问题存在中间的隐变量呢?会不会把我们的套路给带崩呢

SIGAI机器学习第二十四集 高斯混合模型与EM算法

讲授聚类算法的基本概念,算法的分类,层次聚类,K均值算法,EM算法,DBSCAN算法,OPTICS算法,mean shift算法,谱聚类算法,实际应用. 大纲: 聚类问题简介聚类算法的分类层次聚类算法的基本思想簇之间距离的定义k均值算法的基本思想k均值算法的流程k均值算法的实现细节问题实验EM算法简介Jensen不等式EM算法的原理推导收敛性证明 聚类算法是无监督学习的典型代表,前边讲过的数据降维算法是无监督学习的另外一种典型代表. 原文地址:https://www.cnblogs.com/wi

猪猪的机器学习笔记(十八)条件随机场

条件随机场 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十八次课在线笔记.条件随机场是一种判别式概率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列. 引言: “条件随机场”被用于中文分词和词性标注等词法分析工作,一般序列分类模型常常采用隐马尔科夫模型(HMM),像基于类的中文分词.但隐马尔可夫模型中存在两个假设:输出独立性假设和马尔可夫性假设.其中,输出独立性假设要求序列数据严格相互独立才能保证推导的正确性,而事实上大多数序列数据不能

猪猪的机器学习笔记(十二)支持向量机

支持向量机 作者:樱花猪   摘要: 本文为七月算法(julyedu.com)12月机器学习第十二次次课在线笔记.SVM是一种常见的分类器,在很长一段时间起到了统治地位.而目前来讲SVM依然是一种非常好用的分类器,在处理少量数据的时候有非常出色的表现. 引言: SVM是一个非常常见的分类器,在真正了解他的原理之前我们多多少少都有接触过他.本位将会详细的介绍SVM的原理.目标以及计算过程和算法步骤.我们针对线性可分数据和线性不可分数据介绍了线性支持向量机和非线性支持向量机,并在最后简单阐述非线性支

猪猪的机器学习笔记(十三)贝叶斯网络

贝叶斯网络 作者:樱花猪 摘要 本文为七月算法(julyedu.com)12月机器学习第十三次次课在线笔记.贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一.贝叶斯网络适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全.不精确或不确定的知识或信息中做出推理.本节课从朴素贝叶斯模型开始,详细描述了贝叶斯网络的意义,构建方案以及其他衍生算法. 引言 贝叶斯网络是机器学习中非常经典的算法之一,它能够根据已知的条件

Stanford机器学习---第十四讲.机器学习应用举例之Photo OCR

http://blog.csdn.net/l281865263/article/details/50278745 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学习系统设计.SVM(Support Vector Machines 支持向量机).聚类.降维.异常检测.大规模机器学习等章节.内容大多来自Standford公开课machine lear