em算法

隐马尔可夫模型(HMM) - 1 - 基本概念

好久不见. 提交于 2019-12-06 14:15:30
声明: 1 ,本篇为个人对《 2012. 李航 . 统计学习方法 .pdf 》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。 2 ,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。 3 ,如果有内容错误或不准确欢迎大家指正。 4 ,如果能帮到你,那真是太好了。 基本概念 惯例性,在刚看到“隐马尔可夫模型”这个名字时我的第一反应是:这什么鬼?于是在看书上的定义时一万个不明白.... 所以,为了能清楚的描述“隐马尔可夫模型”,我们还是从例子开始。 例子 如上图所示,有4个盒子,每个盒子里都装有红白两种颜色的球,每个盒子中球的个数见上图。 然后,按照下面的规则抽5次球: 第一次:从4个盒子里等概论随机选取1个盒子,然后从这个盒子里随机抽出1个球,记录其颜色后放回; 剩下4次: 若上一次是从盒子1中抽球,那这次一定是盒子2; 若上一次是盒子2或3,那这次则分别以0.4和0.6的概率选择左边或右边的盒子; 若上一次是盒子4,那这次各以0.5的概率选择是停留在盒子4还是转移到盒子3。 确定转译的盒子后,再从这个盒子里随机抽出一个球,记录其颜色后放回。 就这样,得到一个球的颜色序列: {红,红,白,白,红} 在这个过程中

用EM算法求解高斯混合模型

喜夏-厌秋 提交于 2019-12-06 01:45:48
本文从高斯混合模型出发,引出EM算法,最后回归到利用EM算法求解高斯混合模型。理论部分力求详尽不留证明疑点,所以略显冗长。实验部分给出了生成高斯混合分布样本和利用EM算法求解高斯混合模型的matlab代码。 理论部分 高斯混合模型(GMM) 顾名思义,高斯混合模型就是由多个高斯分布混合构成的模型。 K K K 高斯混合分布的概率密度为: p ( x ) = ∑ k = 1 K ϕ k N ( x ∣ μ k , Σ k ) . p(\mathbf{x})=\sum_{k=1}^K \phi_k\mathcal{N}(\mathbf{x}|\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k). p ( x ) = k = 1 ∑ K ​ ϕ k ​ N ( x ∣ μ k ​ , Σ k ​ ) . 这里, ∑ k = 1 K ϕ k = 1 \sum_{k=1}^{K}\phi_k=1 ∑ k = 1 K ​ ϕ k ​ = 1 为混合系数, N ( x ∣ μ , Σ ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 exp ⁡ { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } \mathcal{N}(\mathbf{x}|\boldsymbol{\mu},\boldsymbol{\Sigma})=

变分推断

心不动则不痛 提交于 2019-12-04 14:55:12
EM算法 EM算法是含隐变量图模型的常用参数估计方法,通过迭代的方法来最大化边际似然。 带隐变量的贝叶斯网络 给定 N 个训练样本 D={x (n) } ,其 对数似然 函数为: 通过最大化整个训练集的对数边际似然 L(D; θ ) ,可以估计出最优的参数 θ ∗ 。然而计算边际似然函数时涉及p(x) 的 推断 问题,需要在对数函数的内部进行求和(或积分) 注意到,对数边际似然 log p(x; θ) 可以分解为 其中 D KL (q(z)∥p(z|x; θ)) 为分布 q(z) 和后验分布 p(z|x; θ) 的KL散度. 由于 D KL (q(z)∥p(z|x; θ)) ≥ 0 ,并当且仅当 q(z) = p(z|x; θ) 为0,因此 ELBO(q, x; θ) 为 log p(x; θ) 的一个下界 EM算法具体分为两个步骤:E步和M步。这两步不断重复,直到收敛到某个局部最优解。在第t 步更新时,E步和M步分别为 E步(Expectation Step):固定参数 θ t ,找到一个分布使得 ELBO(q, x; θ t ) 最大,即等于 log p(x; θ t ) 所以我们希望 q(z) = p(z|x, θ t ) ,这样 ELBO(q, x; θ t ) 最大。而计算后验分布 p(z|x; θ) 是一个推断(Inference)问题。如果 z 是有限的 一维

隐马尔可夫模型

北战南征 提交于 2019-12-03 07:05:55
一、基本思想 隐马尔可夫模型是 基于时序的概率模型 ,由 初始状态概率向量Π、状态转移概率矩阵A和观测概率矩阵B 组成。 隐马尔可夫做了两个基本假设: 齐次马尔可夫性假设:任意时刻的状态只与上一时刻的状态有关 观测独立性假设:任意时刻的观测值只与该时刻的状态有关 隐马尔科夫模型主要用来解决三个问题: 概率计算问题 :给定模型λ=(Π,A,B)和观察序列O,求在模型λ下观测序列O出现的概率 P(O|λ) 学习问题 :已知观察序列O,求模型 λ的三个参数 ,使得P(O|λ)最大 预测(解码)问题 :给定模型λ=(Π,A,B)和观察序列O,求在给定观察序列O的基础上,最有可能对应的状态序列I,即 P(I|O) 二、算法流程 1. 概率计算问题 1)前向算法 其中前向概率 \(\alpha_t(i)\) 表示t时刻产生观察序列 \(o_1,o_2,o_3...o_t\) 且t时刻的状态为i的概率。 公式10.15表示状态为i,观察序列为 \(o_1\) 的联合概率 公式10.16中[]里面的内容表示状态为i,观测序列为 \(o_1,o_2,o_3...o_t\) 的联合概率,最后乘以 \(b_i(o_{t+1})\) 得到状态为i,观察序列为 \(o_1,o_2,o_3...o_{t+1}\) 的联合概率 公式10.17表示将所有可能的状态i且对应的观察序列为 \(o_1,o_2,o_3.

【转】高斯混合模型的终极理解

妖精的绣舞 提交于 2019-12-02 19:47:17
高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM,不足之处还望各位指正。 首先给出GMM的定义 这里引用李航老师《统计学习方法》上的定义,如下图: 定义很好理解,高斯混合模型是一种混合模型,混合的基本分布是高斯分布而已。 第一个细节:为什么系数之和为0? PRML上给出过一张图: 这图显示了拥有三个高斯分量的一个维度的GMM是如何由其高斯分量叠加而成。这张图曾经一度对我理解GMM造成了困扰。因为如果是这样的话,那么这三个高斯分量的系数应该都是1,这样系数之和便为3,才会有这样直接叠加的效果。而这显然不符合GMM的定义。因此,这张图只是在形式上展现了GMM的生成原理而并不精确。 那么,为什么GMM的各个高斯分量的系数之和必须为1呢? 其实答案很简单,我们所谓的GMM的定义本质上是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。GMM整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1,所以,要想GMM整体的概率密度积分为1,就必须对每一个高斯分量赋予一个其值不大于1的权重,并且权重之和为1。 第二个细节:求解GMM参数为什么需要用EM算法 总所周知

遵循统一的机器学习框架理解高斯混合模型(GMM)

不想你离开。 提交于 2019-11-30 18:19:22
遵循统一的机器学习框架理解高斯混合模型(GMM) 一、前言 本文参考了网络上诸多资料,特别是B站UP shuhuai008 的视频,讲解东西也是我最喜欢的方式:从多个角度阐述和理解问题。 二、理解 统一的机器学习框架(MLA): 1.模型(Model) 2.策略(Loss) 3.算法(Algorithm) Model 题外话:所谓模型,就是我们建模的过程,也是我们对现实(已观测)的一种假设,比如前几篇介绍SVM,LR的假设就是:我们认为可以使用一个超平面区分这些数据。模型内涵了我们的 归纳偏置 或者说是 归纳偏好 。 几何角度: 对于已观测到的数据 \(X=\{x^i,x^2 \cdots ,x^n\}\) ,由一个概率生成模型生成而来 \(P(X|\theta)\) ,其中 \(\theta\) 就是这个模型的参数。由于我们压根不知道 \(P(X|\theta)\) 应该是什么形式,在 高斯混合模型 中,我们假设(归纳偏好)这些数据由K个高斯模型混合生成的数据,即: \(P(X)\) 由K个高斯模型 叠加 而来。 概率密度函数由多个高斯分布 叠加 (加权平均)而来 \[p(x) = \sum_{k=1}^{K} \alpha_k p(x|\mu_k,\Sigma_k),\;\;\sum_{k=1}^K \alpha_k=1,\;\;\alpha_k \; 表示加权值\]

机器学习:EM算法

偶尔善良 提交于 2019-11-30 14:28:15
概率模型有的时候既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么通过给定的数据可以通过极大似然估计,或者贝叶斯估计方法。但是当模型含有隐变量的时候,就不能简单地使用这些估计算法。 EM算法的推导 预备知识:Jensen不等式 $f$是定义域为实数的函数,如果对于所有的实数x。如果对于所有的实数x,$f(x)$的二次导数大于等于0,那么f是凸函数。当x是向量时,如果其hessian矩阵H是半正定的,那么f是凸函数。如果只大于0,不等于0,那么称f是严格凸函数。 Jensen不等式表述如下: 如果f是凸函数,X是随机变量,那么:$E[f(X)]>=f(E[X])$ 特别地,如果f是严格凸函数,当且仅当X是常量时,上式取等号。 图中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。(就像掷硬币一样)。X的期望值就是a和b的中值了,图中可以看到$E[f(X)]>=f(E[X])$成立。 当$f$是(严格)凹函数当且仅当$-f$是(严格)凸函数。 Jensen不等式应用于凹函数时,不等号方向反向。 推导过程 假设我们有一个样本集${x^{(1)},…,x^{(m)}}$,包含m个独立的样本。但每个样本i对应的类别$z(i)$是未知的(相当于聚类),也即隐含变量。故我们需要估计概率模型$p(x,z)$的参数$θ$,但是由于里面包含隐含变量z

第九章-EM算法

天大地大妈咪最大 提交于 2019-11-29 22:14:55
从第九章开始,学习总结的东西有所不同了,第2-8章是分类问题,都属于监督学习,第9章EM算法是非监督学习。本文主要是总结EM算法的应用以及处理问题的过程和原理推导。 EM算法 EM算法(期望极大算法 expectation maximization algorithm) 是一种迭代算法。当我们面对概率模型的时候,既有 观测变量 ,又含有 隐变量 或者潜在变量。如果 概率模型 的变量都是 观测变量 ,那么给定数据,可以直接使用 极大似然估计法 或者 贝叶斯估计模型 估计参数,但是,当模型含有 隐变量 的时候,就不能简单地这样估计,此时,在1977年,Dempster等人总结提出EM算法: E步:求期望(expectation);M步:求极大值(maximization) 。 \[ 输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|\theta),条件分布P(Z|Y,\theta)。\\ 输出:模型参数\theta。\\ (1)选择参数的初值\theta^{(0)},开始迭代。\\ (2)**E步:**记\theta^{(i)}为第i次迭代参数\theta的估计值,在第i+1次迭代的E步,\\计算\begin{aligned} Q(\theta,\theta^{(i)}) =& E_Z\big[\ln P(Y,Z|\theta) | Y, \theta^{(i)}\big] \

【机器学习】高斯混合模型(GMM)算法及其实现

∥☆過路亽.° 提交于 2019-11-29 19:32:41
相关视频可见 皮皮学机器学习 高斯混合模型(GMM) 学完了EM算法之后,就情不自禁地想学习一下高斯混合模型了。 高斯混合模型是具有如下形式的概率分布模型。 P ( x ) = ∑ k = 1 K W k g ( x ∣ μ k , ∑ k ) P(x)=\sum_{k=1}^KW_kg(x|\mu_k,\sum_k) P ( x ) = k = 1 ∑ K ​ W k ​ g ( x ∣ μ k ​ , k ∑ ​ ) 现在我们来解释一下上式的参数,K为GMM中成分的个数,也就是说有几个高斯分布,g是这几个高斯分布对应的分布密度函数,均值 μ \mu μ 是其均值,协方差矩阵 ∑ \sum ∑ ,W是每个成分的权重。 案例引入 依然使用一个男女身高为例: 在校园里随机抽取2000个学生,其中有男有女,已知男生,女生的身高都服从高斯分布,这两个高斯分布的均值和方差我们都不知道,另外由于某种原因,我们也不知道2000个学生里男生和女生的个数,现在我们要求出两个分布的均值和方差,还有男女比例。 1.初始化参数 2.计算每条身高数据为男/女分布的概率 该条样本所属于男生/女生分布的概率,这里用R表示,其实这一步就是EM算法中的E步,求期望 一维高斯函数: g ( h ∣ μ , σ ) = 1 2 π σ e − 1 2 σ ( x − μ ) 2 g(h|\mu,\sigma)=

EM算法

被刻印的时光 ゝ 提交于 2019-11-28 04:17:38
EM算法理解 来源:[知乎:Evan]( https://www.zhihu.com/question/27976634/answer/252238739 ) 1. EM算法产生的原因 EM算法是为了解决《最大似然估计》中更复杂的情形而存在的。 这里“极大似然估计中更复杂的情形”是什么情形呢? 我们知道极大似然估计是求解实现结果的最佳参数 \(\theta\) ,但极大似然估计需要面临的 概率分布只有一个或者知道结果是通过哪个概率分布实现 的,只不过你不知道这个概率分布的参数。而如果概率分布有多个呢或者你不知道结果是通过哪个概率分布实现的?更别说去确定“这些概率分布”的最佳参数了,我们连最终结果是根据哪个概率分布得出来的都不知道,这就是EM算法要面临的情况了。 2. EM算法 最大似然估计和EM算法都是根据实现结果求解概率分布的最佳参数 \(\theta\) ,但最大似然估计中知道每个结果对应哪个概率分布(我知道哪个概率分布实现了这个结果),而 EM算法面临的问题 是:我不知道哪个概率分布实现了该结果。怎么在不知道其概率分布的情况下还能求解其问题? EM算法的求解思想 在说明EM算法的求解思想前,我们先总结下上面的内容。 一般的用 \(Y\) 表示观测到的随机变量的数据, \(Z\) 表示隐随机变量的数据(因为我们观测不到结果是从哪个概率分布中得出的,所以将这个叫做隐变量)。于是