高斯混合模型(GMM--Gaussian mixture model)
参考:李航《统计学习方法》
http://blog.csdn.net/xmu_jupiter/article/details/50889023
https://www.cnblogs.com/mindpuzzle/archive/2013/04/24/3036447.html
**
GMM是用来做非监督学习的聚类的。下图可以直观知道什么是聚类:
一、GMM模型定义
**
GMM应用广泛,在许多情况下,EM算法是学习GMM的有效方法。
一般混合模型可以由任意概率分布密度代替上面的高斯分布密度,只要K足够大,这个混合模型就会变得足够复杂,就可以用来逼近任意连续的概率密度分布。这里我们介绍最常用的高斯混合模型(高斯函数具有良好的计算性能)。
GMM的各个高斯分量的系数之和必须为1:
Answer:GMM本质上是一个概率密度函数,根据概率密度函数的性质,其在作用域内的积分为1。每一个高斯分量的概率密度函数的积分必然是1,若使GMM整体的概率密度积分为1,则对每个高斯分量赋予一个不大于1的权值,并且权值之和为1。
求解GMM参数为什么必须用EM算法:
首先尝试用MLE求解
可以看出目标函数是包含和的对数,这是十分困难求解的。只能选择EM算法。
二、GMM参数估计步骤
GMM分成两步,类似于K-means的两步:
1. 估计数据由每个分模型生成的概率,对于每个数据
2. 再根据极大似然估计
这样其实只是把原本样本一定属于某一类改成了一个样本属于某类的概率,而k类样本数量
GMM与K-means:
相同点:
- 需要指定K值
- 需要参数初始化,例如k-means的中心点,GMM的各个参数
- 本质是EM算法
不同点:
1. 优化目标函数不同,K-means:最短距离,GMM:最大化log似然估计
2. E步的指标不同,K-means:点到中心的距离(硬指标),GMM:求解每个观测数据的每个component的概率(软指标)。(K-means的结果是把每个数据点assign到其中某一个cluster,而GMM则是给出每个数据点被assign到每一个cluster的概率,又称作soft assignment。)
三、用EM算法推导GMM参数
GMM的参数估计—-EM算法:
在GMM里,模型的参数
- 明确隐变量,写出完全数据的对数似然函数
设想观测数据
按照这样的设想:隐变量是一个向量,并且这个向量中只有一个元素取值为1,其它的都是0。
对GMM中使用EM算法隐变量的理解:
使用EM算法必须确定隐变量。GMM的一个观测数据在直观上应该是每个高斯分量都有产生,而不是由一个高斯分量单独生成。而隐变量是一个向量,只有一个元素为1,其他为0,意味着只有一个高斯分量被选中并产生观测数据.
请耐心,写出完全数据的对数似然函数。
2. E步:确定Q函数
直接参考李航书籍
3. M步:求Q函数的极大值的
直接参考李航书籍