EM算法和GMM算法的相关推导及原理

栏目: IT技术 · 发布时间: 4年前

内容简介:我们先从极大似然估计说起,来考虑这样的一个问题,在给定的一组样本x1,x2······xn中,已知它们来自于高斯分布N(u, σ),那么我们来试试估计参数u,σ。首先,对于参数估计的方法主要有矩估计和极大似然估计,我们采用极大似然估计,高斯分布的概率密度函数如下:

极大似然估计

我们先从极大似然估计说起,来考虑这样的一个问题,在给定的一组样本x1,x2······xn中,已知它们来自于高斯分布N(u, σ),那么我们来试试估计参数u,σ。

首先,对于参数估计的方法主要有矩估计和极大似然估计,我们采用极大似然估计,高斯分布的概率密度函数如下:

EM算法和GMM算法的相关推导及原理

我们可以将x1,x2,······,xn带入上述式子,得:

EM算法和GMM算法的相关推导及原理

接下来,我们对L(x)两边去对数,得到:

EM算法和GMM算法的相关推导及原理

于是,我们得到了l(x)的表达式,下面需要对其计算极大值:

EM算法和GMM算法的相关推导及原理

通过对目标函数的参数u,σ分别求偏导,很容易得到:

EM算法和GMM算法的相关推导及原理

对于上述的结果,和矩估计是一样,它的含义就是:样本的均值即为高斯分布的均值,样本的方差即为高斯分布的方差。

通过上面的问题分析,我们来看这样的一个问题,假设在班级中随机挑选100名同学,并且测量了这100名同学的身高,如果这100个样本服从的是正态分布,那么我们可以用样本的均值和方差等于正态分布的均值和方差来估计参数u和σ。但是样本中存在男同学和女同学,它们分别服从N1(u1, σ1)和N2(u2, σ2)的分布,那么我们应该如何估计u1, σ1,u2, σ2参数呢?

我们可以通过假设随机变量x是有k个高斯分布混合而成,取各个高斯分布的概率的φ1,φ2,······φk,第i个高斯分布的均值为ui,方差为∑i。那么,我们可以建立如下目标函数:

EM算法和GMM算法的相关推导及原理

上述的式子中,由于在对数函数中存在加和,无法直接求导计算极大值,我们可以将其分成两步:

第一步:估算数据来自哪个组份

估计数据是有哪个组份生成的概率,对于数据xi来说,它是由第k个组份生成的概率为:

EM算法和GMM算法的相关推导及原理

在上面的式子中,u和∑是需要进行估计的,这里采用迭代法,在计算r(i,k)的时候,假定u和∑均为已知的,但是在第一次计算时,我们根据先验知识给定u和∑。

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

假设上一步中得到的r(i,k)就是正确的数据xi由组份k生成的概率,亦可以当做该组份在生成这个数据上所做的贡献,或者也可以看做xi其中r(i,k)*xi部分是由组份k所生成的。对于所有的数据点,现在司机上可以看作组份k生成了{γ(i,k)*xi|i=1,2,…N}这些点。组份k是一个标准的高斯分布,利用上面的结论:

EM算法和GMM算法的相关推导及原理

EM算法的提出

假定有训练集{x1, x2,····xm},包含m个独立样本,要求从中找到该组数据的模型p(x, z)的参数。通过构建极大似然估计建立目标函数:

EM算法和GMM算法的相关推导及原理

在上面的式子中,z是隐随机变量,直接找到参数的估计是很困难的。这里我们采用建立目标函数的下界,并且求该下界的最大值,不断的重复这个过程,直到收敛到局部的最大值。

Jensen不等式

令Qi是z的某一个分布,并且Qi>=0,有:

EM算法和GMM算法的相关推导及原理

我们需要寻找尽量紧的下界,为了使得等式成立:

EM算法和GMM算法的相关推导及原理

EM算法和GMM算法的相关推导及原理

EM算法的整体框架

EM算法和GMM算法的相关推导及原理

从理论公式推导GMM

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

E-step

EM算法和GMM算法的相关推导及原理

M-step

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

EM算法和GMM算法的相关推导及原理

对上面的公式求偏导

EM算法和GMM算法的相关推导及原理

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

EM算法和GMM算法的相关推导及原理

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

EM算法和GMM算法的相关推导及原理

多项分布的参数

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

EM算法和GMM算法的相关推导及原理

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

EM算法和GMM算法的相关推导及原理

计算偏导:

EM算法和GMM算法的相关推导及原理


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

测试驱动开发的艺术

测试驱动开发的艺术

Lasse Koskela / 李贝 / 人民邮电出版社 / 20101023 / 59.00元

在传统的软件开发中,开发人员对于代码是否正确心中无底,一切依赖于后期的测试环节。极限编程反其道而行之,主张采用测试驱动开发(TDD)的方法,即通过测试定义所要开发的功能的接口,然后实现功能的开发过程。TDD通过不断地测试推动代码的开发,既简化了代码,又保证了软件质量。 本书采用“手把手”的教学方式,通过大量实例来解释TDD,还专门用几章的篇幅来讲解如何为难于测试的技术编写单元测试。全书内容循......一起来看看 《测试驱动开发的艺术》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换