uniform机器学习极简入门4—高斯混合聚类(GMM Gaussian Mixture Model)

uniform机器学习极简入门3 我们介绍了KMeans的基本概念,这个方法是给每个样本归属一个类别,我们可以找出每个类别的原型向量,但是很多场景里往往不是这种0-1事件,我们需要的是某个样本属于各个类别的概率。高斯混合聚类模型正是这样一种模型,用概率分布来表示类别标签。

1 高斯混合聚类概述(GMM)

基本定义:

假设已知空间概率分布是由k个高斯分布混合而成,每个样本都是来源于这混合分布的采样。

公式表示如下
P_M(x_j)=\sum_{i=1}^{k}\alpha_iP(x_j|\mu_i,\sigma^2_i)
其中第i个分量的高斯分布表示如下
P(x_j|\mu_i, \sigma^2_i)=\frac{1}{\sqrt{2\pi}\sigma_i}e^{-\frac{(x_j-\mu_i)^2}{2\sigma^2_i}}
公式很直接表示了某个样本xj的概率是由多个高斯分布组合而成。其中\alpha表示第i个高斯分布的先验概率。
已知某个样本xj,属于i的后验概率
P(z_j=i)=\alpha_i
P(z_j=i|x_j)=\frac{P(z_j=i)P(x_j|z_j=i)}{\sum_lP(z_j=l)P(x_j|z_j=l)}
=\frac{\alpha_iP(x_j|z_j=i)}{\sum_l\alpha_lP(x_j|z_j=l)}

后验概率直观上也很好理解,就是已知某个样本,求解其来源i高斯分布的概率。
我们简化表示
r_{ji}=\frac{\alpha_iP(x_j|z_j=i)}{\sum_l\alpha_lP(x_j|z_j=l)} \ \ \ \ \ \ \ (1)

2 高斯混合聚类模型求解推导

通过模型描述,我们看出需要求解的参数有
(\alpha_i, \mu_i, \sigma^2_i)
如何求解概率参数?我们这个教程最开就介绍了两种参数估计的方法:

  1. 最大似然求解
  2. 最大后验概率求解

这里每个高斯分量都有两个参数,如果加上先验分布假设似乎不太方便,我们这里用最大似然来求解如下:
L = \prod^{j=1}_{n}P_M(x_j)
=\prod^{j=1}_{n}[\sum_{i=1}^{k}\alpha_iP(x_j|\mu_i,\sigma^2_i)]
这里我们依然采用取对数来优化(都是凸函数),而且里面P(·)表示的是高斯分布,继续推导如下
L = \sum_{j=1}^{n} log[\sum_{i=1}^{k}\alpha_iP(x_j|\mu_i,\sigma^2_i)]
=\sum_{j=1}^{n} log[\sum_{i=1}^{k}\alpha_i\frac{1}{\sqrt{2\pi}\sigma_i}e^{-\frac{(x_j-\mu_i)^2}{2{\sigma}^2_i}}]
我们分别对之前提到的求解的三个参数求导,得:
\frac{\partial L}{\partial \mu_i}=\sum_{j=1}^{n}\frac{\alpha_iP(x_j|\mu_i,\sigma^2_i)[\frac{x_j-\mu_i}{\sigma^2_i}]}{\sum_{l=1}^{k}\alpha_lP(x_j|\mu_l,\sigma^2_l)}
=\sum_{j=1}^{n}r_{ji}(x_j-\mu_i)=0
=>\mu_i=\frac{\sum_{j=1}^n r_{ji}x_j}{\sum_{j=1}^n r_{ji}} \ \ \ \ (2)
先不管这个公式推导,我们直观理解这个结果,每个高斯分布的均值这个参数其实就是每个样本的加权求和(权重就是这个样本属于这个高斯分布的概率)。
这里加权求和,如果是在KMeans,这里的权重就要么为0要么为1,其实就是KMeans更加泛化,如下KMeans的均值向量
\mu_i=\frac{\sum_{j=1}^{n}1\{z_j=i\}x_j}{\sum_{j=1}^{n}1\{z_j=i\}}
这样就好理解了。

我们继续求解方差这个项
\frac{\partial L}{\partial \sigma_i} =\sum_{j=1}^{n}\frac{\alpha_i\frac{1}{\sqrt{2\pi}}[\frac{-1}{\sigma_i^2}e^{f}+\frac{1}{\sigma_i}e^f(\frac{(x_j-\mu_i)^2}{\sigma^3_i})] }{\sum_{l=1}^{k}\alpha_lP(x_j|\mu_l,\sigma^2_l)}
=\sum_{j=1}^nr_{ji}[(x_j-\mu_i)^2-\sigma^2_i] = 0
=>\sigma^2_i=\frac{\sum_{j=1}^{n}(x_j-\mu_i)(x_j-\mu_i)^T}{\sum_{j=1}^{n}} \ \ \ \ \ (3)
同样对比于Kmeans,我们上节说到属于球形的聚类,所以方差就是直接等于1(常数)

我们已知关系
\sum_i\alpha_i=1
这里用拉格朗日乘子
l = L + \lambda(\sum_{i=1}^{k}\alpha_i-1)
同样求导
\alpha_i=\frac{1}{n}\sum_{j=1}^{n}r_{ji} \ \ \ \ (4)
这里同样是采用EM算法(其实Kmeans也是用EM算法来求解,这个算法我们下一节会介绍到)

随机初始化参数(\alpha, \mu, \sigma)

  • E步
    根据公式(1)求解rji
  • M 步
    根据E步求解结果,一句公式(2)(3)(4)求解对应的三个参数
    然后根据更新的三个参数继续反复求解EM

3 应用

1)空间点分布

还记得我们在最大似然法里举的例子,学校里男生和女生的身高问题,在大样本情况下,身高可以看成服从高斯分布,因此用GMM来求解那女的身高是合理的。

假设我们有如下数据:


Data

(红色和蓝色假设事先不知道,我们如果需要聚类可能需要确认下K)

用上节提到的曲率的方法


k_SSE

可以看到曲率较大的是k=2, 4
我们就用这两个参数来试验

  • KMeans


    KMeans
  • GMM
    如果用GMM,效果如下


    GMM

从结果来看,GMM效果明显更合理,能够很好捕捉到高斯分量的分布。

2)基于GMM的图像应用

另外一个应用就是在图像里对前景和背景的建模。
下面摘自博客 车辆前景检测算法

在运动目标的前景检测中,GMM的目标是实现对视频帧中的像素进行前景/背景的二分类。通过统计视频图像中各个点的像素值获取背景模型,最后利用背景减除的思想提取出运动目标。
GMM假设在摄像机固定的场景下,在一段足够长的时间区间内,背景目标出现的概率要远高于前景目标。利用监控视频的这一特点,对视频帧上的任意坐标的像素值进行时间方向的统计,为每个坐标分配若干个高斯概率密度函数作为该位置的像素值概率分布模型。

该方法是对每个像素坐标的像素值进行高斯混合建模,所以模型参数也较大(每个像素点都有若干个高斯分布)

假设坐标(x,y),我们对该点在视频一段时间的像素值进行建模,用k个高斯分布描述
M_p=(G_1(\mu_1,\sigma_1,w_1), G_1(\mu_2,\sigma_2,w_2), ..., G_1(\mu_k,\sigma_k,w_k))
图像每个像素点的像素值如果看成只服从一个高斯分布,那只需要求解每个像素点的参数(均值,方差),如果看成是由多个高斯分布组成,则求解参数(均值,方差,权重)。
如下图,一个是单峰,一个是三峰的像素值分布

单峰的像素值分布
多峰的像素值分布
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,552评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,666评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,519评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,180评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,205评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,344评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,781评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,449评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,635评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,467评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,515评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,217评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,775评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,851评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,084评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,637评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,204评论 2 341

推荐阅读更多精彩内容

  • 本文首发公众号【花间奇谈】,转载请联系公众号授权。 张小姐一大清早来到公司,就发现自己的办公室被围的水泄不通。 “...
    花间奇谈阅读 486评论 0 6
  • 暗线练习——画了八把钥匙。 原因有二:一是想多练习几个图样;二是因为赋予钥匙更多的含义,一把钥匙开一把锁,人生需要...
    喜悦Iris阅读 298评论 0 0
  • 其实,最开始的时候,我并没有想7月份当值月生,因为我知道7月份我的工作依旧很忙。但后来,心态发生了转变,我相信自己...
    小仙女雨婷阅读 448评论 4 3
  • 人间最珍贵的是什么是善良 善良的人总是在播种阳光和雨露抚慰人们心灵的创伤 善良的人总是以他人之乐为乐乐于施与帮助人...
    杨启峰阅读 527评论 1 9