高斯混合模型(GMM--Gaussian mixture model)

参考:李航《统计学习方法》
http://blog.csdn.net/xmu_jupiter/article/details/50889023
https://www.cnblogs.com/mindpuzzle/archive/2013/04/24/3036447.html
https://blog.csdn.net/jinping_shi/article/details/59613054

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. E步:估计数据由每个分模型生成的概率,对于每个数据xix_i来说,它由第kk个分模型生成的概率(即分模型k对观测数据xix_i的响应度)为:
    这里写图片描述
  2. M步:再根据极大似然估计
    这里写图片描述
    这样其实只是把原本样本一定属于某一类改成了一个样本属于某类的概率,而第k类样本数量NkN_k变成了概率相加。

GMM与K-means:
相同点:

  1. 需要指定K值
  2. 需要参数初始化,例如k-means的中心点,GMM的各个参数
  3. 本质是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,α2,...,αk;θ1,θ2,...,θk)\theta=(\alpha_1,\alpha_2,...,\alpha_k;\theta_1,\theta_2,...,\theta_k)

  1. 明确隐变量,写出完全数据的对数似然函数

设想观测数据yjy_j是这样产生的:首选依赖GMM的某个高斯分量的系数概率αk\alpha_k选择到这个高斯分量,然后根据这个被选择的高斯分量生成观测数据。然后隐变量就是某个高斯分量是否被选中:选中就为1,否则为0。
按照这样的设想:隐变量是一个向量,并且这个向量中只有一个元素取值为1,其它的都是0。

对GMM中使用EM算法隐变量的理解:
使用EM算法必须确定隐变量。刚刚提到,只有一个高斯分量用于生成一个观测数据。这是合理的。GMM输出的是这个观测数据被GMM产生的概率而已。
合理性请见
在这里插入图片描述

M步:
在这里插入图片描述

对于各个高斯模型里的参数只需将Q函数求偏导并令其为0,即可得到;对于每个高斯模型的权重参数,需要在权重之和为1的约束条件下求偏导并令其为0得到。

展开阅读全文

没有更多推荐了,返回首页