机器学习理论基础学习9--- EM 算法
EM算法的适用场景:
- EM算法用于估计含有隐变量的概率模型参数的极大似然估计,或者极大后验概率估计。
- 当概率模型既含有观测值,又含有隐变量或潜在变量时,就可以使用EM算法来求解概率模型的参数。
- 当概率模型只含有观测值时,直接使用极大似然估计法,或者贝叶斯估计法估计模型参数就可以了。
最大似然估计:若X为离散型随机变量,其概率分布的形式为P{X=x}=p(x;theta). 当样本值确定时,所有样本的乘积可以看作是theta的函数,并称为似然函数。
由于已经得到了样本值(x1,…,xn),那它的出现的可能性应该是大的,即似然函数的值应该是大的。因而我们选择使似然函数达到最大值的那个theta做为真theta的估计
EM算法的入门简单例子:
已知有三枚硬币A,B,C,假设抛掷A,B,C出现正面的概率分别为pi,p,q。
单次实验的过程是:
1.首先抛掷硬币A,如果A出现正面选择硬币B,否则,选择硬币C。
2.抛掷所选择的硬币,正面输出1,反面输出0。
重复上述单词实验n次,需要估计抛掷硬币A,B,C出现正面的概率pi,p,q。
其中每次实验步骤1的抛掷结果不可见,可见的是所挑选硬币的抛掷结果。





- 核心思想:通过E步骤和M步骤使得期望最大化
- 算法优点:简单稳定
- 算法缺点:迭代速度慢,次数多,容易陷入局部最优;对初始值敏感:EM算法需要初始化参数θ,而参数θ的选择直接影响收敛效率以及能否得到全局最优解。
- 应用领域:参数估计; 计算机视觉的数据集聚; k-means算法是EM算法思想的体现,E步骤为聚类过程,M步骤为更新类簇中心。GMM(高斯混合模型)也是EM算法的一个应用
参考文献:
EM算法存在的意义是什么?
如何简单易懂地理解变分推断(variational inference)?
机器学习理论基础学习9--- EM 算法的更多相关文章
- 学习笔记——EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...
- 机器学习理论基础学习13--- 隐马尔科夫模型 (HMM)
隐含马尔可夫模型并不是俄罗斯数学家马尔可夫发明的,而是美国数学家鲍姆提出的,隐含马尔可夫模型的训练方法(鲍姆-韦尔奇算法)也是以他名字命名的.隐含马尔可夫模型一直被认为是解决大多数自然语言处理问题最为 ...
- 机器学习理论基础学习12---MCMC
作为一种随机采样方法,马尔科夫链蒙特卡罗(Markov Chain Monte Carlo,以下简称MCMC)在机器学习,深度学习以及自然语言处理等领域都有广泛的应用,是很多复杂算法求解的基础.比如分 ...
- 【机器学习】GMM和EM算法
机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...
- 机器学习(七)EM算法、GMM
一.GMM算法 EM算法实在是难以介绍清楚,因此我们用EM算法的一个特例GMM算法作为引入. 1.GMM算法问题描述 GMM模型称为混合高斯分布,顾名思义,它是由几组分别符合不同参数的高斯分布的数据混 ...
- 机器学习理论基础学习10--- 高斯混合模型GMM
一.什么是高斯混合模型? 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布 ...
- 机器学习笔记—混合高斯和 EM 算法
本文介绍密度估计的 EM(Expectation-Maximization,期望最大). 假设有 {x(1),...,x(m)},因为是无监督学习算法,所以没有 y(i). 我们通过指定联合分布 p( ...
- 机器学习理论基础学习4--- SVM(基于结构风险最小化)
一.什么是SVM? SVM(Support Vector Machine)又称为支持向量机,是一种二分类的模型.当然如果进行修改之后也是可以用于多类别问题的分类.支持向量机可以分为线性和非线性两大类. ...
- 机器学习理论基础学习3.2--- Linear classification 线性分类之线性判别分析(LDA)
在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),是一种处理文档的主题 ...
随机推荐
- 关于windows下基于php7.0.2下编写的第一个扩展
网上的教程是比较多的,但是基于php7+windows的教程非常之少,通过几天的摸索及参考很多资料,终于发现如下可以运行. php7要求使用vc2015,同时安装sdk,我使用的是8.1的window ...
- router之switch
比较路由中有无switch的区别: 代码一: <Router history={history}> <Route exact path="/" component ...
- set数组去重
new Set const arr = [{name:"wo"},{name:"shi"},{name:"wo"}] console.log ...
- jenkins部署war包到远程服务器的tomcat
一.目的 jenkins上将war包,部署到远程服务器的tomcat上. 这边tomcat在windows 主机A上,版本apache-tomcat-8.5.23. jenkins在主机B上,cent ...
- 编译源码 JAVA out of memory
- 【CF875F】Royal Questions 最小生成基环树森林
[CF875F]Royal Questions 题意:国王的n个王子该结婚了!现在从外国来了m位公主,第i位公主的嫁妆是wi.由于进步思想的传播,每个公主在选择配偶的事情上是有自主权的,具体地,每个公 ...
- jfinal如何获取参数为数组的值
前台: var postParams = { ids:["qw","ew"]}; 后台: String[] userids = this.getParaValu ...
- jquery 设置style:display 其实很方便的哦
("#id").css('display','none'); $("#id").css('display','block'); 或 $("#id&qu ...
- CodeForces - 768C Jon Snow and his Favourite Number 桶排
https://vjudge.net/problem/CodeForces-768C 题意:n个数,k次操作,x.每次操作先排序,再让奇数位置上的数据a[i]:=a[i] XOR x; k< ...
- zabbix修改Template OS Linux模版使已使用内存(Used memory)更准确
说明: [root@coolnull ~]# free -m total used free shared buffers cached Mem: 995 785 209 0 6 92 -/+ buf ...
