混合高斯模型
来源:互联网 发布:c语言在线运行 编辑:程序博客网 时间:2024/06/08 18:21
1. 单高斯模型(SGM)
多维高斯分布的概率密度函数如下式所示:
N(x|μ,Σ)=12π|Σ|√e−12(x−μ)⊤Σ−1(x−μ)
对于单高斯模型,由于可以明确训练样本是否属于该高斯模型,因此
2. 混合高斯模型(GMM)
虽然单⾼斯分布有⼀些重要的分析性质,但是当它遇到实际数据集时,也会有巨⼤的局限性。考虑下图给出的例⼦。这个数据集被称为“⽼忠实间歇喷泉”数据集,由美国黄⽯国家公园的⽼忠实间歇喷泉的272次喷发的测量数据组成。每条测量记录包括喷发持续了⼏分钟(横轴)和距离下次喷发间隔了⼏分钟(纵轴)。我们看到数据集主要聚集在两⼤堆中,⼀个简单的⾼斯分布不能描述这种结构,⽽两个⾼斯分布的线性叠加可以更好地描述这个数据集的特征。
混合高斯模型假设数据服从混合高斯分布,通过将单个⾼斯分布进⾏线性组合而得到的模型,被称为混合高斯模型(Gaussian Mixture Model)。下图是⼀维混合⾼斯分布的例⼦,蓝⾊曲线给出了三个⾼斯分布,红⾊曲线表⽰它们的和。通过使⽤⾜够多的⾼斯分布,并且调节它们的均值和⽅差以及线性组合的系数,⼏乎所有的连续概率密度都能够以任意的精度近似。
混合高斯模型通常用于聚类,假设模型由 K 个 高斯分布组成(即数据包含K个类),每个高斯分布称为一个“Component”,这些 Component 线性加成在一起就组成了 GMM 的概率密度函数:
p(x)=∑Kk=1p(k)p(x|k)=∑Kk=1πkN(x|μk,Σk)
其中,参数
下图给出了⼆维空间中3个⾼斯分布混合的例⼦。(a)每个混合分量的常数概率密度轮廓线,其中三个分量分别被标记为红⾊、蓝⾊和绿⾊,且混合系数的值在每个分量的下⽅给出。(b)混合分布的边缘概率密度p(x)的轮廓线。(c)概率分布p(x)的⼀个曲⾯图。
为了便于引入EM算法,我们通过隐变量来描述GMM。我们引⼊⼀个K维⼆值随机变量z(称为隐变量),这个变量采⽤了“1-of-K”表⽰⽅法,其中⼀个特定的元素
p(zk=1)=πk
类似地,给定z的⼀个特定的值,x的条件概率分布是⼀个⾼斯分布
p(x|zk=1)=N(x|μk,Σk)
联合概率分布为
p(x)=∑zp(z)p(x|z)=∑Kk=1πkN(x|μk,Σk)
现在假设我们有 N 个数据点,并假设它们服从某个分布(记作
∑Ni=1lnp(xi)=∑Ni=1ln{∑Kk=1πkN(xi|μk,Σk)}
3. EM算法求解参数
本文不涉及EM算法的详细介绍,简单来讲,EM的意思是“Expectation Maximization”:该过程分为两步:第一步,假设知道各个高斯分布的参数(可以初始化一个,或者基于上一步迭代结果),去估计每个高斯模型的隐变量;第二步,基于估计的隐变量,回过头再去确定高斯分布的参数。重复这两个步骤,直到收敛。
接下来我们需要最大化如下似然函数(通常的做法是求导并令导数等于零,然后解方程),亦即找到这样一组参数值,它让似然函数取得最大值,我们就认为这是最合适的参数,这样就完成了参数估计的过程。
∑Ni=1lnp(xi)=∑Nn=1ln{∑Kk=1πkN(xi|μk,Σk)}
由于在对数函数里面又有加和,我们没法直接用求导解方程的办法直接求得最大值。采用EM算法的思想,混合高斯模型的参数确定可分为以下两步:
(1)E-step
估计数据由每个 Component 生成的概率(并不是每个 Component 被选中的概率):对于每个数据
γ(i,k)=πkN(xi|μk,Σk)∑Kj=1πjN(xi|μj,Σj)
由于式子里的
(2)M-step
估计每个 Component 的参数:现在我们假设上一步中得到的
μkΣkπk=1Nk∑i=1Nγ(i,k)xi=1Nk∑i=1Nγ(i,k)(xi−μk)(xi−μk)T=Nk/N
其中Nk=∑Ni=1γ(i,k)
重复迭代前面两步,直到似然函数的值收敛为止。
4. 参考资料
http://blog.pluskid.org/?p=39
http://blog.csdn.net/linkin1005/article/details/41212085
- 高斯混合模型
- 混合高斯模型
- 混合高斯模型
- 混合高斯模型
- 混合高斯模型
- 混合高斯模型
- 混合高斯模型
- 混合高斯模型
- 高斯混合模型
- 混合高斯模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- 高斯混合模型
- Web开发
- Java中的继承的概念——1
- Android访问WEBAPI
- filter_input
- 将博客搬至CSDN
- 混合高斯模型
- 学习资料 选择结构
- 51nod 1307 绳子与重物 【二分/并查集】
- Jacobian矩阵、Hessian矩阵
- linux目录操作
- Java图片处理
- Android 事件传递总结
- C#读写config配置文件 HelpConfiger类
- LeetCode算法题目:Gas Station