高斯混合模型(GMM)

  最近在实际工作中用到了高斯混合模型(Gaussian Mixture Model),遂写一篇笔记来整理记录相关知识点,以便复查巩固。

1. 高斯模型(Gaussian model,GM)

简单回顾一下本科概率论讲过的高斯模型。
  高斯模型是一种常用的变量分布模型,又称正态分布,在数理统计领域有着广泛的应用。
当样本数据 X 是一维数据(Univariate)时,高斯分布遵从下方概率密度函数(Probability Density Function)(下文简称pdf)如下:p(x|\theta)= \frac{1}{\sqrt{2π}\alpha}exp(-\frac{(x-u)^2}{2\alpha^2})其中u为数据均值(期望),\alpha为数据标准差(Standard deviation)。
当样本数据 X 是多维数据(Multivariate)时,高斯分布pdf为:
p(x|\theta)= \frac{1}{(2π)^{\frac{D}{2}}|\sum|^{\frac{1}{2}}}exp(-\frac{(x-u)^T\sum^{-1}(x-u)}{2})其中,u为数据均值(期望),\sum为协方差(Covariance),描述各维变量之间的相关度,D 为数据维度。

2. 混合高斯模型(Gaussian mixture model, GMM)

  高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,这 K 个子模型是混合模型的隐变量(Hidden variable)。一般来说,一个混合模型可以使用任何概率分布,这里使用高斯混合模型是因为高斯分布具备很好的数学性质以及良好的计算性能。

2.1 为什么要有混合高斯模型

先来看一组数据。

如果我们假设这组数据是由某个高斯分布产生的,利用极大似然估计(后文还会提及)对这个高斯分布做参数估计,得到一个最佳的高斯分布模型如下。
有什么问题吗?一般来讲越靠近椭圆的中心样本出现的概率越大,这是由pdf决定的,但是这个高斯分布的椭圆中心的样本量却极少。显然样本服从单高斯分布的假设并不合理。单高斯模型无法产生这样的样本。
  实际上,这是用两个不同的高斯分布模型产生的数据。
它通过求解两个高斯模型,并通过一定的权重将两个高斯模型融合成一个模型,即最终的混合高斯模型。这个混合高斯模型可以产生这样的样本。
  更一般化的描述为:假设混合高斯模型由K个高斯模型组成(即数据包含K个类),则GMM的概率密度函数如下:其中

  • p(x|\theta)=phi(x|\theta_k)是第k个高斯模型的概率密度函数,可以看成选定第k个模型后,该模型产生x的概率;
  • \alpha_k​是第k个高斯模型的权重,称作选择第k个模型的先验概率,且满足\sum_{k=1}^{K}\alpha_k=1

  所以,混合高斯模型并不是什么新奇的东西,它的本质就是融合几个单高斯模型,来使得模型更加复杂,从而产生更复杂的样本。理论上,如果某个混合高斯模型融合的高斯模型个数足够多,它们之间的权重设定得足够合理,这个混合模型可以拟合任意分布的样本。

3. 模型参数学习

对于单高斯模型,我们可以用最大似然法(Maximum likelihood)估算参数\theta的值\theta = argmax_{\theta}L(\theta)这里我们假设了每个数据点都是独立的(Independent),似然函数由概率密度函数(PDF)给出。
L(\theta)=\prod_{j=1}^{N}p(x_j|\theta)由于每个点发生的概率都很小,乘积会变得极其小,不利于计算和观察,因此通常我们用 Maximum Log-Likelihood 来计算(因为 Log 函数具备单调性,不会改变极值的位置,同时在 0-1 之间输入值很小的变化可以引起输出值相对较大的变动):logL(\theta)=\sum_{j=1}^{N}logp(x_j|\theta)对其进行求导并令导数为0,所求出的参数就是最佳的高斯分布对应的参数。
  所以最大化似然函数的意义就是:通过使得样本集的联合概率最大来对参数进行估计,从而选择最佳的分布模型。
对于高斯混合模型,Log-Likelihood 函数是:logL(\theta)=\sum_{j=1}^{N}logp(x_j|\theta)=\sum_{j=1}^{N}log\sum_{k=1}^{K}\alpha_k\phi(x|\theta_k)如何计算高斯混合模型的参数呢?这里我们无法像单高斯模型那样使用最大似然法来求导求得使 likelihood 最大的参数,因为对于每个观测数据点来说,事先并不知道它是属于哪个子分布的(hidden variable),因此 log 里面还有求和,对于每个子模型都有未知的\alpha_k, u_k, \delta_k ,直接求导无法计算。需要通过迭代的方法求解。

4. EM算法

EM 算法是一种迭代算法,1977 年由 Dempster 等人总结提出,用于含有隐变量(Hidden variable)的概率模型参数的最大似然估计。

每次迭代包含两个步骤:

  1. E-step:求期望E(\gamma_{jk}|X, \theta) for all j = 1,2,3,...,N
  2. M-step:求极大,计算新一轮迭代的模型参数

这里不具体介绍一般性的 EM 算法,(通过 Jensen 不等式得出似然函数的下界 Lower bound,通过极大化下界做到极大化似然函数,有log(E(x))>=E(log(x))),只介绍怎么在高斯混合模型里应用从来推算出模型参数。
通过 EM 迭代更新高斯混合模型参数的方法(我们有样本数据x_1,x_2,...,X_N和一个有K个子模型的高斯混合模型,想要推算出这个高斯混合模型的最佳参数):

  • 首先初始化参数
  • E-step:依据当前参数,计算每个数据j来自子模型k的可能性\gamma_{jk} = \frac{\alpha_k\phi(x_j|\theta_k)}{\sum_{k=1}^K\alpha_k\phi(x_j|\theta_k)}
  • M-step:计算新一轮迭代的模型参数u_k=\frac{\sum_j^N(\gamma_{jk}x_j)}{\sum_j^N(\gamma_{jk})}, \sum_k = \frac{\sum_j^N\gamma_{jk}(x_j-u_k)(x_j-u_k)^T}{\sum_j^N(\gamma_{jk})}, \alpha_k = \frac{\sum_j^N(\gamma_{jk})}{N}
    重复计算 E-step 和 M-step 直至收敛||\theta_{i+1} - \theta_i|| < \epsilon.

至此,我们就找到了高斯混合模型的参数。需要注意的是,EM 算法具备收敛性,但并不保证找到全局最大值,有可能找到局部最大值。解决方法是初始化几次不同的参数进行迭代,取结果最好的那次。

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