使用高斯混合模型(GMM)近似未知分布:EM算法的应用
该篇博客是对邱锡鹏老师《神经网络与深度学习》的学习笔记。在阅读本博文之前,建议读者先阅读上一篇博客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π σk1exp(−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∑KN(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∑Nk=1∑Kγnklogγnkp(x(n),z(n)=k)=n=1∑Nk=1∑Kγnklogγnkp(z(n)=k)⋅p(x(n)∣z(n)=k)=n=1∑Nk=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∑Nk=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} π,μ,σmaxELBO(γ,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=Nk1n=1∑Nγnkx(n)=Nk1n=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算法的应用相关推荐
- 高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)
高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程.主要参考Christopher M. Bishop的<Pa ...
- gmm的java实现_4. EM算法-高斯混合模型GMM详细代码实现
1. 前言 EM的前3篇博文分别从数学基础.EM通用算法原理.EM的高斯混合模型的角度介绍了EM算法.按照惯例,本文要对EM算法进行更进一步的探究.就是动手去实践她. 2. GMM实现 我的实现逻辑基 ...
- 高斯混合模型 GMM
在一般的分类问题中,通常的套路都是提取特征,将特征输入分类器训练,得到最终的模型.但是在具体操作时,一开始提出的特征和输入分类器训练的特征是不一样的.比如假设有N张100×100100\times10 ...
- EM算法应用:k均值聚类(k-means)和高斯混合模型(GMM)
文章目录 k-means聚类 EM角度的理解 算法流程 特点 k值选择 局限性 高斯混合模型 GMM的问题描述 1,明确隐变量 2.EM算法的E步:确定Q函数 3. EM算法的E步 4. 停止条件 上 ...
- EM算法及高斯混合模型GMM详述
1.最大似然估计 最大似然估计(Maximum Likelihood Estimation,MLE)就是利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值的计算过程.直白来讲,就是给定了 ...
- ITK学习笔记(八) ITK高斯混合模型 GMM EM
ITK学习笔记(八) ITK高斯混合模型 GMM EM 1.高斯混合模型 2.变分贝叶斯高斯混合 3.ITK中的GMM.EM 1.高斯混合模型 sklearn.mixture是一个能够学习高斯混合模型 ...
- 高斯混合模型--GMM(Gaussian Mixture Model)
参考:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率 ...
- 单高斯分布模型GSM,高斯混合模型GMM
本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程. 单高斯分布 ...
- 高斯混合模型--GMM
原文:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 高斯混合模型--GMM(Gaussian Mixture Model) 统计 ...
最新文章
- LeetCode 168. Excel Sheet Column Title
- Java中的ArrayList的初始容量和容量分配
- python3 sleep 并发_python异步编程之asyncio(百万并发)
- mysql中设置字符_MySQL中设置默认字符集的方法
- JavaScript学习笔记(七)
- sqlite or svn 错误 The database disk image is malformed 可解决
- 机器学习 Machine Learning- 吴恩达Andrew Ng 第1~5课总结
- 人人都是产品经理指南:技术转产品经理,从入门到放弃
- Nsight Compute内存访问常用Metrics含义理解
- 《路由器开发 - 路由器刷机指南》华硕路由器RT-N66W刷机
- [转帖]SPARC简介
- 60岁还在写代码的程序员大师,Delphi、C#、TypeScript之父Anders Hejlsberg(安德斯·海尔斯伯格):编程符合10000小时定律
- 软考高级(信息系统项目管理师)(四)--中间件技术
- Linux 目录文件与管理
- Inventor API学习
- spring整合aspects做aop演示
- python for ArcGIS 绘制南京市板块地图
- dota游戏之我之见
- 查阅相关文献描述CN,SMC,EMCI,LMCI,AD五类疾病的早期干预和诊断标准|2022数维杯国赛C题
- java虚拟机win10_主编解读win10系统Java虚拟机错误的详尽解决方法