em算法

机器学习算法:EM算法

杀马特。学长 韩版系。学妹 提交于 2019-11-27 12:09:16
EM算法 适用问题:概率模型参数估计 模型特点:含隐变量的概率模型 学习策略:极大似然估计、极大后验概率估计 学习的损失函数:对数似然损失 学习算法:迭代算法 EM算法 给定的训练样本是,样例间独立,我们想找到每个样例隐含的类别z,能使得p(x,z)最大。p(x,z)的最大似然估计如下: 第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。但是直接求一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。 EM是一种解决存在隐含变量优化问题的有效方法。竟然不能直接最大化,我们可以不断地建立的下界(E步),然后优化下界(M步)。这句话比较抽象,看下面的。 对于每一个样例i,让表示该样例隐含变量z的某种分布,满足的条件是。(如果z是连续性的,那么是概率密度函数,需要将求和符号换做积分符号)。比如要将班上学生聚类,假设隐藏变量z是身高,那么就是连续的高斯分布。如果按照隐藏变量是男女,那么就是伯努利分布了。 可以由前面阐述的内容得到下面的公式: import numpy as np #Numpy是Python的一个科学计算的库,提供了矩阵运算的功能 import math pro_A, pro_B, por_C = 0.5, 0.5, 0.5 data=[1,1,0,1,0,0,1,0,1,1] def pmf(i, pro_A, pro_B,

高斯混合模型(GMM)和EM算法

戏子无情 提交于 2019-11-26 21:52:55
EM算法 EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。每一次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximazation)。不断循环直到算法收敛,最后得出参数的估计。 之所以要搞得这么麻烦,就是因为有隐变量(latent variable)这个东西的存在,隐变量是无法观测的,这就造成了我们的观测值和想要预测的参数值之间的差距。如果所有的变量都是可观测的,我们使用极大似然法就可以得出对参数的估计了。 一般地,我们用Y表示观测随机变量的数据,Z表示隐随机变量的数据,Y和Z连在一起称为完全数据。假设给定观测数据Y,其概率分布是 P ( Y | θ ) //--> , θ //--> 为要估计的参数,那么Y的对数似然函数为 L ( θ ) = log P ( Y | θ ) //--> 。Y和Z的联合概率分布是 P ( Y , Z | θ ) //--> ,它的对数似然函数为 log P ( Y , Z | θ ) //--> 。 下面介绍EM算法的步骤: 输入:观测变量数据Y,隐变量数据Z, 联合分布 P ( Y , Z | θ ) //--> ,条件分布 P ( Z | Y , θ ) //--> (这里的两个分布应该指的是形式) 输出:模型参数 (1)选择参数的初始值 θ ( 0 ) //--> (2)E步: θ ( i )

数据挖掘经典算法概述以及详解链接

不想你离开。 提交于 2019-11-26 21:47:42
po主最近在学习数据挖掘方面相关算法,今天就在这里总结一下数据挖掘领域的经典算法,同时提供每个算法的详解链接,就当做在这里温习吧。对于熟悉的算法我会有较多的描述,不熟悉的算法可能描述较少,以免误导,但是会贴出学习的链接。由于本人也是资历尚浅,必然有错误的地方,也希望大家能够指出来,我也会改正的,谢谢大家。 数据挖掘方面的算法,主要可以用作 分类,聚类,关联规则,信息检索,决策树,回归分析 等。他们的界限并不是特别的明显,常常有交叉,如聚类算法在一定程度上也是一种分类算法。分类算法比较成熟,并且分支也较多。 这里先介绍两个概念: 监督学习 与 非监督学习 。通俗一点说,如果我们提前设置一些标签,然后对于每个待分类项根据一定规则分类到某些标签,这就是 监督学习 。如果我们提前不知道标签,而是通过一定的统计手段将一定量的数据,分成一个个类别,这就是 非监督学习 ,通常用作“聚类”(不绝对)。当然监督学习常用作分类学习,也可用作回归分析等。 1.K-Means算法 K-Means算法是一种常用的 非监督学习 聚类算法,也常用在图像检索领域,如K-Means+BoF算法。它的作用就是我们可以在不知道有哪些类别的情况下,将数据以K个 类心 ,聚成K个 聚类 。 通常我们会先确定一个相异度度量方法,常用的相异度有, 欧氏距离,曼哈顿距离,马氏距离,余弦距离 等。根据两个数据之间的“距离

HMM基本算法

爱⌒轻易说出口 提交于 2019-11-26 20:13:46
隐马尔科夫模型(Hidden Markov Model,以下简称HMM)作为语音信号的一种统计模型,在语音处理的各个领域中获得了广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降。但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。本篇将介绍HMM应用到语音处理中经常会面临的3大基本问题的解决方案,也就是给出三种基本算法:前向-后向算法、Baum_Welch算法以及Viterbi解码算法。 前向-后向算法 ​ 该算法用来计算给定一个观察值序列 \(O=o_1,o_2,\ldots,o_T\) 以及一个模型 \(\lambda=(\pi,A,B)\) 时,由模型 \(\lambda\) 计算出O的概率 $ P(O| \lambda ) $ 。 HMM组成如下图所示: \(P(O|\lambda)\) 最直接的求取方式如下: 对一个固定的状态序列 \(Q=q_1,q_2,\ldots,q_T\) ,有 \[ P(O|Q,\lambda)=\mathop{\Pi}_{t=1}^TP(o_t|q_t,\lambda) = b_{q_1}(o_1)b_{q_2}(o_2) \ldots b_{q_T}(o_T)\tag{1-1} \] 其中, \[ b_{q_t}(o_t)=

高斯混合模型(GMM)

ε祈祈猫儿з 提交于 2019-11-26 17:50:01
据上次博客已经2周多了,一直没写,惭愧。 一、高斯模型简介 首先介绍一下单高斯模型(GSM)和高斯混合模型(GMM)的大概思想。 1.单高斯模型 如题,就是单个高斯分布模型or正态分布模型。想必大家都知道正态分布,这一分布反映了自然界普遍存在的有关变量的一种统计规律,例如身高,考试成绩等;而且有很好的数学性质,具有各阶导数,变量频数分布由 μ、σ 完全决定等等,在许多领域得到广泛应用。在这里简单介绍下高斯分布的概率密度分布函数: 其中 θ= ( μ,σ 2 ); 2.高斯混合模型 注:在介绍GMM的时候,注意跟K-means的相似点 K个GSM混合成一个GMM,每个GSM称为GMM的一个component,也就是分为K个类,与K-means一样,K的取值需要事先确定,具体的形式化定义如下: 其中, 是样本集合中k类被选中的概率: ,其中z=k指的是样本属于k类,那么 可以表示为 ,很显然 ,y是观测数据。 这里如果我们事先知道每个样本的分类情况,那么求解GMM的参数非常直观,如下表示: 假设 有K个类,样本数量分别为 N 1 ,N 2 ,…,N k 且 N 1 +N 2 +…+N k =N,即有观测数据 ,第k个分类的样本集合表示为S(k),那么公式(2)中的三个参数可以表示为: 这样是理想情况,例如给你一堆人类的身高的数据,以及对应的性别,那么这个就是估计两个分量的高斯混合模型

变分贝叶斯(Variational Bayes)

安稳与你 提交于 2019-11-26 15:01:20
此文公式图片不全。详见博客: http://www.blog.huajh7.com/variational-bayes/ 【关键字】平均场理论,变分法,贝叶斯推断,EM算法,KL散度,变分估计,变分消息传递 引言 · 从贝叶斯推断说起 Question : 如果我们有一组观测数据D,如何推断产生这些数据的模型m? 模型由1)模型的类别ξ(如高斯分布,伽马分布,多项式分布等)与2)模型的参数Θ共同决定,即 . 模型的选择 假设M为所有可能的模型集合(包括不同类别),那么选择 如何计算p(m | D)? 通常情况很难直接计算p(m | D),根据贝叶斯公式有 ,p(m)表示模型的先验,p(D | m)表示证据; 先验:贝叶斯规则倾向于选择能解释数据的最简单模型:Occam剃刀原理。因为简单模型只在有限范围内做预测,复杂模型(如有更多自由参数)能对更宽范围做预测。 那么如何计算证据(evidence) ? 参数θ的后验概率为 证据p(D | m)通常会在最可能的参数 附近有一个很强的峰。 以一维参数为例:利用Laplace方法近似,即用被积函数 乘以其宽度 。即 。 此处不在深究Occam因子。 从模型的选择可以看出参数的估计非常重要。 考虑同一个类别的模型。由于任何模型(函数)都可以由统一的数学形式给出,比如拉格朗日展开,傅里叶极数,高斯混合模型(GMM)等

【校招面经】机器学习与数据挖掘常见面试题整理 part3

房东的猫 提交于 2019-11-26 13:05:37
四十一、请简要说说EM算法 有时候因为样本的产生和隐含变量有关(隐含变量是不能观察的),而求模型的参数时一般采用最大似然估计,由于含有了隐含变量,所以对似然函数参数求导是求不出来的,这时可以采用EM算法来求模型的参数的(对应模型参数个数可能有多个),EM算法一般分为2步:   E步:选取一组参数,求出在该参数下隐含变量的条件概率值;   M步:结合E步求出的隐含变量条件概率,求出似然函数下界函数(本质上是某个期望函数)的最大值。   重复上面2步直至收敛。作者:史兴 链接: https://www.zhihu.com/question/27976634/answer/39132183 理论: 简版:猜(E-step),反思(M-step),重复; 啰嗦版: 你知道一些东西(观察的到的数据), 你不知道一些东西(观察不到的),你很好奇,想知道点那些不了解的东西。怎么办呢,你就根据一些假设(parameter)先猜(E-step),把那些不知道的东西都猜出来,假装你全都知道了; 然后有了这些猜出来的数据,你反思一下,更新一下你的假设(parameter), 让你观察到的数据更加可能(Maximize likelihood; M-stemp); 然后再猜,在反思,最后,你就得到了一个可以解释整个数据的假设了。 1. 注意,你猜的时候,要尽可能的猜遍所有情况,然后求期望(Expected)