该篇博客是对邱锡鹏老师《神经网络与深度学习》的学习笔记。在阅读本博文之前,建议读者先阅读上一篇博客EM算法。

高斯混合模型(Gaussian Mixture Model)

如果一个连续随机变量或连续随机向量的分布比较复杂,那么我们通常可以用高斯混合模型来估计其分布情况。

不失一般性,我们考虑一维的情况。假设样本 x x x 是由 K K K个高斯分布中的一个分布生成的,但是无法观测到具体由哪个分布生成。我们引入一个隐变量 z ∈ { 1 , ⋯ , K } z \in \{1,\cdots,K\} z∈{1,⋯,K}来表示样本 x x x 来自于哪个高斯分布, z z z服从多项分布:
p ( z = k ; π ) = π k , 1 ≤ k ≤ K p(z=k; \pi) = \pi_k, 1\leq k \leq K p(z=k;π)=πk​,1≤k≤K

其中 π = [ π 1 , ⋯ , π K ] \pi = [\pi_1, \cdots, \pi_K] π=[π1​,⋯,πK​]为多项分布的参数,并满足 π k ≥ 0 , ∀ k \pi_k \geq 0, \forall k πk​≥0,∀k, ∑ k = 1 K π k = 1 \sum_{k=1}^K \pi_k = 1 ∑k=1K​πk​=1, π k \pi_k πk​表示样本 x x x 由第 k k k个高斯分布生成的概率。给定 z = k z=k z=k,条件分布 p ( x ∣ z = k ) p(x|z=k) p(x∣z=k)为高斯分布:
p ( x ∣ z = k ; μ k , σ k ) = N ( x ; μ k , σ k ) = 1 2 π σ k exp ⁡ ( − ( x − μ k ) 2 2 σ k 2 ) \begin{aligned} p(x|z=k; \mu_k, \sigma_k) &= \mathcal {N}(x; \mu_k, \sigma_k) \\ &= \frac{1}{\sqrt {2 \pi} \sigma_k} \exp \left ( - \frac{ (x-\mu_k)^2 }{2 \sigma^2_k} \right ) \end{aligned} p(x∣z=k;μk​,σk​)​=N(x;μk​,σk​)=2π ​σk​1​exp(−2σk2​(x−μk​)2​)​

其中 μ k \mu_k μk​和 σ k \sigma_k σk​表示第 k k k个高斯分布的均值和方差。

从高斯混合模型GMM中生成一个样本 x x x 的过程可以分为两步:
(1) 首先根据多项分布 p ( z ; π ) p(z; \pi) p(z;π)随机选取一个高斯分布;
(2) 假设选中第 k k k个高斯分布(即 z = k z=k z=k),再从高斯分布 N ( x ; μ k , σ k ) \mathcal {N}(x; \mu_k, \sigma_k) N(x;μk​,σk​)中选取一个样本 x x x。

下图给出了高斯混合模型的图模型表示:

在GMM中,随机变量 x x x的PDF为:
p ( x ) = ∑ k = 1 K N ( x ; μ k . σ k ) p(x) = \sum_{k=1}^K \mathcal{N} (x; \mu_k. \sigma_k) p(x)=k=1∑K​N(x;μk​.σk​)

参数估计

给定 N N N个由高斯混合模型生成的训练样本 x ( 1 ) , x ( 2 ) , ⋯ , x ( N ) x^{(1)},x^{(2)},\cdots,x^{(N)} x(1),x(2),⋯,x(N),希望能学习其中的参数 π k , μ k , σ k , 1 ≤ k ≤ K \pi_k, \mu_k, \sigma_k, 1 \leq k \leq K πk​,μk​,σk​,1≤k≤K。由于我们无法观测样本 x ( n ) x^{(n)} x(n)是从哪个高斯分布生成的,因此无法直接用最大似然来进行参数估计。

对每个样本 x ( n ) x^{(n)} x(n),其对数边际分布为
log ⁡ p ( x ( n ) ) = log ⁡ ∑ k = 1 K π k ⋅ N ( x ( n ) ; μ k , σ k ) \log p( x^{(n)}) = \log \sum_{k=1}^K \pi_k \cdot \mathcal{N}(x^{(n)}; \mu_k, \sigma_k) logp(x(n))=logk=1∑K​πk​⋅N(x(n);μk​,σk​)

根据EM算法,参数估计分为两步进行迭代
(1) E步:先固定参数 μ , σ \mu, \sigma μ,σ,计算后验分布 p ( z ( n ) ∣ x ( n ) ) p(z^{(n)}|x^{(n)}) p(z(n)∣x(n)),即
γ n k ≐ p ( z ( n ) = k ∣ x ( n ) ) = p ( z ( n ) ) p ( x ( n ) ∣ z ( n ) ) p ( x ( n ) ) = π k ⋅ N ( x ( n ) ; μ k , σ k ) ∑ k = 1 K π k ⋅ N ( x ( n ) ; μ k , σ k ) \begin{aligned} \gamma_{nk} &\doteq p(z^{(n)}=k|x^{(n)}) \\ & = \frac{ p(z^{(n)}) p(x^{(n)} | z^{(n)}) } {p(x^{(n)})} \\ &= \frac{ \pi_k \cdot \mathcal N(x^{(n)}; \mu_k, \sigma_k) } { \sum_{k=1}^K \pi_k \cdot \mathcal{N}(x^{(n)}; \mu_k, \sigma_k) } \end{aligned} γnk​​≐p(z(n)=k∣x(n))=p(x(n))p(z(n))p(x(n)∣z(n))​=∑k=1K​πk​⋅N(x(n);μk​,σk​)πk​⋅N(x(n);μk​,σk​)​​

其中 γ n k \gamma_{nk} γnk​定义了样本 x ( n ) x^{(n)} x(n)属于第 k k k个高斯样本的后验概率。

(2) M步:固定 γ n k \gamma_{nk} γnk​,令 q ( z = k ) = γ n k q(z=k)=\gamma_{nk} q(z=k)=γnk​,那么数据集 D \mathcal D D的证据下界ELBO为:
E L B O ( γ , D ; π , μ , σ ) = ∑ n = 1 N ∑ k = 1 K γ n k log ⁡ p ( x ( n ) , z ( n ) = k ) γ n k = ∑ n = 1 N ∑ k = 1 K γ n k log ⁡ p ( z ( n ) = k ) ⋅ p ( x ( n ) ∣ z ( n ) = k ) γ n k = ∑ n = 1 N ∑ k = 1 K γ n k ( log ⁡ N ( x ( n ) ; μ k , σ k ) + log ⁡ π k γ n k ) \begin{aligned} ELBO(\gamma, \mathcal D; \pi, \mu, \sigma) &= \sum_{n=1}^N \sum_{k=1}^K \gamma_{nk} \log \frac{ p(x^{(n)}, z^{(n)}=k) } { \gamma_{nk} } \\ &= \sum_{n=1}^N \sum_{k=1}^K \gamma_{nk} \log \frac{ p(z^{(n)}=k) \cdot p(x^{(n)}|z^{(n)}=k) } { \gamma_{nk} } \\ &= \sum_{n=1}^N \sum_{k=1}^K \gamma_{nk} \left ( \log \mathcal{N}(x^{(n)}; \mu_k, \sigma_k) + \log \frac{\pi_k}{\gamma_{nk}} \right) \end{aligned} ELBO(γ,D;π,μ,σ)​=n=1∑N​k=1∑K​γnk​logγnk​p(x(n),z(n)=k)​=n=1∑N​k=1∑K​γnk​logγnk​p(z(n)=k)⋅p(x(n)∣z(n)=k)​=n=1∑N​k=1∑K​γnk​(logN(x(n);μk​,σk​)+logγnk​πk​​)​

注意,上式中的 γ n k \gamma_{nk} γnk​的表达式中虽然含有参数 π k , μ k , σ k \pi_k, \mu_k, \sigma_k πk​,μk​,σk​,但是这些参数都是第 t t t次迭代估计的结果,即 γ n k \gamma_{nk} γnk​(后验),且 q ( z = k ) = γ n k q(z=k)=\gamma_{nk} q(z=k)=γnk​,在M步中被固定。而第M步要估计的第 t + 1 t+1 t+1次迭代的参数,因此,我们可以进一步把上式化简为:
E L B O ( γ , D ; π , μ , σ ) = ∑ n = 1 N ∑ k = 1 K γ n k ( − ( x − μ k ) 2 2 σ k 2 − log ⁡ σ k + log ⁡ π k ) + C o n s t ELBO(\gamma, \mathcal D; \pi, \mu, \sigma) = \sum_{n=1}^N \sum_{k=1}^K \gamma_{nk} \left ( - \frac{(x-\mu_k)^2}{2 \sigma^2_k} - \log \sigma_k + \log \pi _k \right) + Const ELBO(γ,D;π,μ,σ)=n=1∑N​k=1∑K​γnk​(−2σk2​(x−μk​)2​−logσk​+logπk​)+Const

其中 C o n s t Const Const是和第 t + 1 t+1 t+1次M步迭代参数无关的常数。进一步将参数估计问题转化为优化问题:
max ⁡ π , μ , σ E L B O ( γ , D ; π , μ , σ ) s . t . ∑ k = 1 K π k = 1 \begin{aligned} & \max_{\pi, \mu, \sigma} ELBO(\gamma, \mathcal D; \pi, \mu, \sigma) \\ & s.t. \ \ \sum_{k=1}^K \pi_k = 1 \end{aligned} ​π,μ,σmax​ELBO(γ,D;π,μ,σ)s.t.  k=1∑K​πk​=1​

利用拉格朗日乘数法求解上面的等式约束优化问题,分别求拉格朗日函数 E L B O ( γ , D ; π , μ , σ ) + λ ( ∑ k = 1 K π k − 1 ) ELBO(\gamma, \mathcal D; \pi, \mu, \sigma) + \lambda \left ( \sum_{k=1}^K \pi_k -1 \right) ELBO(γ,D;π,μ,σ)+λ(∑k=1K​πk​−1)关于 π k , μ k , σ k \pi_k, \mu_k, \sigma_k πk​,μk​,σk​的偏导数,令其等于0,可得
π k = N k N μ k = 1 N k ∑ n = 1 N γ n k x ( n ) σ k 2 = 1 N k ∑ n = 1 N γ n k ( x ( n ) − μ k ) 2 \begin{aligned} \pi_k &= \frac{N_k}{N} \\ \mu_k &= \frac{1}{N_k} \sum_{n=1}^N \gamma_{nk} x^{(n)} \\ \sigma^2_k &= \frac{1}{N_k} \sum_{n=1}^N \gamma_{nk} \left ( x^{(n)} - \mu_k \right )^2 \\ \end{aligned} πk​μk​σk2​​=NNk​​=Nk​1​n=1∑N​γnk​x(n)=Nk​1​n=1∑N​γnk​(x(n)−μk​)2​

其中
N k = ∑ n = 1 N γ n k N_k = \sum_{n=1}^N \gamma_{nk} Nk​=n=1∑N​γnk​

参考

[1] 邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.

使用高斯混合模型(GMM)近似未知分布:EM算法的应用相关推荐

  1. 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)

    高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程.主要参考Christopher M. Bishop的<Pa ...

  2. gmm的java实现_4. EM算法-高斯混合模型GMM详细代码实现

    1. 前言 EM的前3篇博文分别从数学基础.EM通用算法原理.EM的高斯混合模型的角度介绍了EM算法.按照惯例,本文要对EM算法进行更进一步的探究.就是动手去实践她. 2. GMM实现 我的实现逻辑基 ...

  3. 高斯混合模型 GMM

    在一般的分类问题中,通常的套路都是提取特征,将特征输入分类器训练,得到最终的模型.但是在具体操作时,一开始提出的特征和输入分类器训练的特征是不一样的.比如假设有N张100×100100\times10 ...

  4. EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)

    文章目录 k-means聚类 EM角度的理解 算法流程 特点 k值选择 局限性 高斯混合模型 GMM的问题描述 1,明确隐变量 2.EM算法的E步:确定Q函数 3. EM算法的E步 4. 停止条件 上 ...

  5. EM算法及高斯混合模型GMM详述

    1.最大似然估计 最大似然估计(Maximum Likelihood Estimation,MLE)就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程.直白来讲,就是给定了 ...

  6. ITK学习笔记(八) ITK高斯混合模型 GMM EM

    ITK学习笔记(八) ITK高斯混合模型 GMM EM 1.高斯混合模型 2.变分贝叶斯高斯混合 3.ITK中的GMM.EM 1.高斯混合模型 sklearn.mixture是一个能够学习高斯混合模型 ...

  7. 高斯混合模型--GMM(Gaussian Mixture Model)

    参考:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率 ...

  8. 单高斯分布模型GSM,高斯混合模型GMM

    本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程. 单高斯分布 ...

  9. 高斯混合模型--GMM

    原文:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html   高斯混合模型--GMM(Gaussian Mixture Model)     统计 ...

最新文章

  1. LeetCode 168. Excel Sheet Column Title
  2. Java中的ArrayList的初始容量和容量分配
  3. python3 sleep 并发_python异步编程之asyncio(百万并发)
  4. mysql中设置字符_MySQL中设置默认字符集的方法
  5. JavaScript学习笔记(七)
  6. sqlite or svn 错误 The database disk image is malformed 可解决
  7. 机器学习 Machine Learning- 吴恩达Andrew Ng 第1~5课总结
  8. 人人都是产品经理指南:技术转产品经理,从入门到放弃
  9. Nsight Compute内存访问常用Metrics含义理解
  10. 《路由器开发 - 路由器刷机指南》华硕路由器RT-N66W刷机
  11. [转帖]SPARC简介
  12. 60岁还在写代码的程序员大师,Delphi、C#、TypeScript之父Anders Hejlsberg(安德斯·海尔斯伯格):编程符合10000小时定律
  13. 软考高级(信息系统项目管理师)(四)--中间件技术
  14. Linux 目录文件与管理
  15. Inventor API学习
  16. spring整合aspects做aop演示
  17. python for ArcGIS 绘制南京市板块地图
  18. dota游戏之我之见
  19. 查阅相关文献描述CN,SMC,EMCI,LMCI,AD五类疾病的早期干预和诊断标准|2022数维杯国赛C题
  20. java虚拟机win10_主编解读win10系统Java虚拟机错误的详尽解决方法

热门文章

  1. 如何摆脱低智商的社会,让自己脱颖而出? (转载)
  2. Ubuntu-Touch-03:使用SSH连接手机
  3. lldb常用命令与调试技巧
  4. 制作和合入quilt补丁
  5. CSS3实现晃动的引导箭头-百度新首页
  6. Supplier应用场景
  7. 对奥卡姆剃刀(Occam’s razor)原理的思考
  8. [简单]js获取tr内td数量及值
  9. 微信朋友圈很多好友都变成长颈鹿头像是怎么回事?
  10. 5-13 统计工龄 (20分)