EM算法求解高斯混合模型参数公式推导

高斯混合模型介绍

高斯混合模型(Gaussian Mixture Model,简称GMM)是一种经典的概率模型,被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模,每个高斯分布对应于数据中的一个子群体。GMM的核心思想是通过组合多个高斯分布来更准确地表达数据的概率分布。
高斯混合模型(GMM)是一种常用的概率模型,可以用于聚类分析、密度估计、特征生成和缺失数据填充等问题。它能将数据集分成多个聚类簇,估计数据点从多个高斯分布中生成的概率密度,生成与原始数据具有相似特征的样本,并填充缺失数据。使用GMM需要根据具体问题进行模型参数设置和算法调优。

高斯混合模型应用广泛,在许多情况下, EM算法是学习高斯混合模型 (Gaussian mixture model) 的有效方法。
高斯混合模型

高斯模型数学定义

高斯混合模型是指具有如下形式的概率分布模型:
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right) P(yθ)=k=1Kαkϕ(yθk)

其中, a k a_k ak 是系数, α k ⩾ 0 , ∑ k = 1 K α k = 1 ; ϕ ( y ∣ θ k ) \alpha_k \geqslant 0, \sum_{k=1}^K \alpha_k=1 ; \phi\left(y \mid \theta_k\right) αk0,k=1Kαk=1;ϕ(yθk) 是高斯分布密度, θ k = ( μ k , σ k 2 ) \theta_k=\left(\mu_k, \sigma_k^2\right) θk=(μk,σk2),
ϕ ( y ∣ θ k ) = 1 2 π σ k exp ⁡ ( − ( y − μ k ) 2 2 σ k 2 ) \phi\left(y \mid \theta_k\right)=\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y-\mu_k\right)^2}{2 \sigma_k^2}\right) ϕ(yθk)=2π σk1exp(2σk2(yμk)2)

称为第 k k k 个分模型。

假设观测数据 y 1 , y 2 , ⋯ , y N y_1, y_2, \cdots, y_N y1,y2,,yN 由高斯混合模型生成,
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) P(y \mid \theta)=\sum_{k=1}^K \alpha_k \phi\left(y \mid \theta_k\right) P(yθ)=k=1Kαkϕ(yθk)
其中, θ = ( α 1 , α 2 , ⋯ , α K ; θ 1 , θ 2 , ⋯ , θ K ) \theta=\left(\alpha_1, \alpha_2, \cdots, \alpha_K ; \theta_1, \theta_2, \cdots, \theta_K\right) θ=(α1,α2,,αK;θ1,θ2,,θK), 我们学习这个模型,即目标就是用 EM算法估计高斯混合模型的参数 θ 。  \theta_{\text {。 }} θ 

高斯混合模型求解过程

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

可以设想观测数据 y j , j = 1 , 2 , … … , N y_j,j=1,2,……,N yj,j=1,2,……,N,是这样产生的:首先依据概率 α k \alpha_k αk选择第 k k k个高斯分布模型 ϕ ( y ∣ θ k ) \phi\left(y \mid \theta_k\right) ϕ(yθk),然后依据第 k k k个模型的概率分布生成观测数据 y j y_j yj 。这时观测数据 y j , j = 1 , 2 , . . . , N y_j,j=1,2,...,N yj,j=1,2,...,N,是已知的,反映观测数据 y j y_j yj来自第 k k k个分模型的数据是未知的, k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K,以隐变量 γ j k \gamma_{j k} γjk表示,其定义如下:
γ j k = { 1 , 第 j 个观测来自第 k 个分模型  0 , 否则  j = 1 , 2 , ⋯ , N ; k = 1 , 2 , ⋯ , K \begin{aligned} & \gamma_{j k}=\left\{\begin{array}{l} 1, \quad \text {第} j \text {个观测来自第} k \text {个分模型 } \\ 0, \text { 否则 } \end{array}\right. \\ & j=1,2, \cdots, N ; \quad k=1,2, \cdots, K \end{aligned} γjk={1,j个观测来自第k个分模型 0, 否则 j=1,2,,N;k=1,2,,K
γ j k \gamma_{j k} γjk 是 0-1 随机变量。
有了观测数据 y j y_j yj 及末观测数据 γ j k \gamma_{j k} γjk, 那么完全数据是
( y j , γ j 1 , γ j 2 , ⋯ , γ j K ) , j = 1 , 2 , ⋯ , N \left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K}\right), \quad j=1,2, \cdots, N (yj,γj1,γj2,,γjK),j=1,2,,N

于是,可以写出完全数据的似然函数:
P ( y , γ ∣ θ ) = ∏ j = 1 N P ( y j , γ j 1 , γ j 2 , ⋯ , γ j K ∣ θ ) = ∏ k = 1 K ∏ j = 1 N [ α k ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ 1 2 π σ k exp ⁡ ( − ( y j − μ k ) 2 2 σ k 2 ) ] γ j k 式中,  n k = ∑ j = 1 N γ j k , ∑ k = 1 K n k = N \begin{aligned} & P(y, \gamma \mid \theta)=\prod_{j=1}^N P\left(y_j, \gamma_{j 1}, \gamma_{j 2}, \cdots, \gamma_{j K} \mid \theta\right) \\ &=\prod_{k=1}^K \prod_{j=1}^N\left[\alpha_k \phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}} \\ &=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\phi\left(y_j \mid \theta_k\right)\right]^{\gamma_{j k}} \\ &=\prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N\left[\frac{1}{\sqrt{2 \pi} \sigma_k} \exp \left(-\frac{\left(y_j-\mu_k\right)^2}{2 \sigma_k^2}\right)\right]^{\gamma_{j k}} \\ & \text { 式中, } n_k=\sum_{j=1}^N \gamma_{j k}, \sum_{k=1}^K n_k=N \end{aligned} P(y,γθ)=j=1NP(yj,γj1,γj2,,γjKθ)=k=1Kj=1N[αkϕ(yjθk)]γjk=k=1Kαknkj=1N[ϕ(yjθk)]γjk=k=1Kαknkj=1N[2π σk1exp(2σk2(yjμk)2)]γjk 式中nk=j=1Nγjk,k=1Knk=N

那么, 完全数据的对数似然函数为
log ⁡ P ( y , γ ∣ θ ) = ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ a k − 1 2 σ k 2 . ( y j − μ k ) 2 ] } \begin{aligned} \log P(y, \gamma \mid \theta)= & \sum_{k=1}^K\left\{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log a_k-\frac{1}{2 {\sigma}_k^2} .\right.\right. \left.\left.\left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} logP(y,γθ)=k=1K{nklogak+j=1Nγjk[log(2π 1)logak2σk21.(yjμk)2]}

EM算法E步,写出Q函数

Q ( θ , θ ( i ) ) = E [ log ⁡ p ( y , γ ∣ θ ) ∣ y , θ ( i ) ] = E { ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ j k [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } } = ∑ k = 1 K { ∑ j = 1 N ( E γ j k ) log ⁡ a k + ∑ j = 1 N ( E γ j k ) [ log ⁡ ( 1 2 π ) − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } \begin{aligned} \mathbb{Q}\left(\theta, \theta^{(i)}\right) & =E\left[\log p(y, \gamma \mid \theta) \mid y, \theta^{(i)}\right] \\ & =E\left\{\sum _ { k = 1 } ^ { K } \left\{n_k \log a_k+\sum_{j=1}^N \gamma_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2 \right] \right \} \right \}\\ & =\sum_{k=1}^K\left\{\sum_{j=1}^N\left(E_{\gamma_{j k}}\right) \log a_k+\sum_{j=1}^N\left(E_{\gamma_{j k}}\right)\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)-\log \sigma_k-\frac{1}{2 \sigma_k^2} \left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} Q(θ,θ(i))=E[logp(y,γθ)y,θ(i)]=E{k=1K{nklogak+j=1Nγjk[log(2π 1)logσk2σk21(yjμk)2]}}=k=1K{j=1N(Eγjk)logak+j=1N(Eγjk)[log(2π 1)logσk2σk21(yjμk)2]}
这里我们先令
γ ^ j k = E γ j k , n k = ∑ j = 1 N E γ k j \begin{aligned} & \hat{\gamma}_{j k}=E_{\gamma_{j k}}, n_k=\sum_{j=1}^N E_{\gamma_{k j}} \end{aligned} γ^jk=Eγjk,nk=j=1NEγkj

这里针对 E γ j k E_{\gamma_{j k}} Eγjk的计算进行推导如下:
γ ^ j k = E ( γ j k ∣ y , θ ) = 1 ⋅ P ( γ j k = 1 ∣ y , θ ) + 0 ⋅ P ( γ j k = 0 ∣ y , θ ) = P ( Y j k = 1 , y , θ ) P ( y , θ ) 上下同时除以 P ( θ ) = P ( Y j k = 1 , y , θ ) / P ( θ ) P ( y , θ ) / P ( θ ) = P ( γ j k = 1 , y ∣ θ ) P ( y ∣ θ ) \begin{aligned} \hat{\gamma}_{j k} & =E\left(\gamma_{j k} \mid y, \theta\right)=1 \cdot P\left(\gamma_{j k}=1 \mid y, \theta\right) +0 \cdot P\left(\gamma_{j k}=0 \mid y, \theta\right) \\ & =\frac{P\left(Y_{j k}=1, y, \theta\right) }{P(y, \theta) } \\ &上下同时除以P(\theta)\\ & =\frac{P\left(Y_{j k}=1, y, \theta\right) / P(\theta)}{P(y, \theta) / P(\theta)} \\ & =\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{P(y \mid \theta)} \end{aligned} γ^jk=E(γjky,θ)=1P(γjk=1y,θ)+0P(γjk=0y,θ)=P(y,θ)P(Yjk=1,y,θ)上下同时除以P(θ)=P(y,θ)/P(θ)P(Yjk=1,y,θ)/P(θ)=P(yθ)P(γjk=1,yθ)
这里利用边缘概率公式对分母进行分解
= P ( γ j k = 1 , y ∣ θ ) ∑ k p ( γ j k = 1 , y ∣ θ ) = P ( y j ∣ θ , γ j k = 1 ) ⋅ p ( γ j k = 1 ∣ θ ) ∑ k p ( y j ∣ θ , γ j k = 1 ) ⋅ p ( γ j k = 1 ∣ θ ) = a k ϕ ( y ∣ θ ) ∑ a k ϕ ( y ∣ θ ) \begin{aligned} & =\frac{P\left(\gamma_{j k}=1, y \mid \theta\right)}{\sum_k p\left(\gamma_{j k}=1, y \mid \theta\right)} \\ & =\frac{P\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)}{\sum_k p\left(y_j \mid \theta , \gamma_{j k}=1\right) \cdot p\left(\gamma_{j k}=1 \mid \theta\right)} \\ & =\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)} \end{aligned} =kp(γjk=1,yθ)P(γjk=1,yθ)=kp(yjθ,γjk=1)p(γjk=1θ)P(yjθ,γjk=1)p(γjk=1θ)=akϕ(yθ)akϕ(yθ)

E γ j k E_{\gamma_{j k}} Eγjk n k n_k nk代入得
Q ( θ , θ ( i ) ) = ∑ k = 1 K { n k log ⁡ a k + ∑ j = 1 N γ ^ j k [ log ⁡ ( 1 2 π ) . − log ⁡ σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } \begin{aligned} Q\left(\theta, \theta^{(i)}\right)=\sum_{k=1}^K \left\{ n _ { k } \log a_k+\sum_{j=1}^N \hat{\gamma}_{j k}\left[\log \left(\frac{1}{\sqrt{2 \pi}}\right)\right.\right.. \left.\left.-\log \sigma_k-\frac{1}{2 \sigma_k^2}\left(y_j-\mu_k\right)^2\right]\right\} \end{aligned} Q(θ,θ(i))=k=1K{nklogak+j=1Nγ^jk[log(2π 1).logσk2σk21(yjμk)2]}

EM算法M步

迭代的M步是求函数 Q ( θ , θ ( i ) ) Q(\theta,\theta ^{(i)}) Q(θ,θ(i)) θ \theta θ的极大值,即新一轮迭代的参数:
θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta^{(i+1)}=\arg \max _\theta Q\left(\theta, \theta^{(i)}\right) θ(i+1)=argθmaxQ(θ,θ(i))
分别对 Q Q Q函数的三个参数 μ ^ k 、 σ k 2 、 α ^ k \hat{\mu}_k 、\sigma_k^2、\hat{\alpha}_k μ^kσk2α^k求偏导并令其等于0,解得三个参数的表达式:
μ ^ k = ∑ j = 1 N γ j k y j ∑ j = 1 N γ j k , k = 1 , 2 , … , K σ k 2 = ∑ j = 1 N γ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k , k = 1 , 2 , ⋯ , K α ^ k = n k N = ∑ j = 1 N γ j k N , k = 1 , 2 , ⋯ , K \begin{gathered} \hat{\mu}_k=\frac{\sum_{j=1}^N \gamma_{j k} y_j}{\sum_{j=1}^N \gamma_{j k}}, k=1,2, \ldots, K \\ \sigma_k^2=\frac{\sum_{j=1}^N \gamma_{j k}\left(y_j-\mu_k\right)^2}{\sum_{j=1}^N \hat{\gamma}_{j k}}, \quad k=1,2, \cdots, K \\ \hat{\alpha}_k=\frac{n_k}{N}=\frac{\sum_{j=1}^N \gamma_{j k}}{N}, \quad k=1,2, \cdots, K \end{gathered} μ^k=j=1Nγjkj=1Nγjkyj,k=1,2,,Kσk2=j=1Nγ^jkj=1Nγjk(yjμk)2,k=1,2,,Kα^k=Nnk=Nj=1Nγjk,k=1,2,,K

其中 γ j k \gamma_{j k} γjk n k n_k nk的计算方法在前面E步中给出,即 γ j k = a k ϕ ( y ∣ θ ) ∑ a k ϕ ( y ∣ θ ) \gamma_{j k}=\frac{a_k \phi(y \mid \theta)}{\sum a_k \phi(y \mid \theta)} γjk=akϕ(yθ)akϕ(yθ) n k = ∑ j = 1 N γ k j n_k=\sum_{j=1}^N \gamma_{k j} nk=j=1Nγkj

求得的参数进入下一轮迭代,重复计算指导似然函数值不再有明显变化为止。
以上为高斯混合模型的EM算法全部内容,更多EM算法相关内容可查看文末参考资料进行了解,感谢您的阅读。

参考资料

[1].EM算法Q函数推导过程详解
[2].EM算法求解三硬币模型参数推导

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROCm上运行情感分析:使用卷积神经网络

15.3. 情感分析:使用卷积神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)def corr1d(X, K):w K.s…

分布式任务调度内的 MySQL 分页查询优化

作者:vivo 互联网数据库团队- Qiu Xinbo 本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题。 对于数据分布不均如何发现,提供了一些SQL…

C语言初阶——5操作符

一、算数操作符 除了% 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于/ 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除 法。% 操作符的两个操作数必须为整数。返回的是整除之后的余数。 1、类型转换 C语言…

Simplicity Studui V5 新安装后无法Product Updates

之前(2021年)在SiliconLabs官网下载了SSV5,安装包我也保存在硬盘了,最近换了台电脑安装SSV5后安装 SDK之前必须Product Updates,但死活安装不上,老是提示发生了错误。来来回回卸载安装几十遍,后…

瓦解信息茧房,IPWO打破“墙”的限制

国外与国内的网络之间隔着一道无形的“墙”,这面“墙”让我们避免了海外不法分子的窥视,保护了我们的网络隐私。但是,“墙”的存在同样阻止了我们访问全球网络,获取海外资源,形成巨大的信息茧房。 越来越多的人渴望撕开…

Plant Simulation 双深位立库开发系列教程-出入口参数化

上一节讲到货架参数化,这一节我们继续讲出入口参数化,先看我们需要达到的效果,在Conveyor增加一个出入口设置功能,用户可以通过该功能设置多个出入口 步骤1:创建ConveyorList 在RackLane中新建一个表格ConveyorList,用于存储用户的设置参数 表格设置名字、类型、方向 、…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容: {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…

paligemma、Grounding-DINO-1.5简单无需标注无需训练直接可以使用的VLM图像到文本模型

1、paligemma 参考:https://github.com/google-research/big_vision/blob/main/big_vision/configs/proj/paligemma/README.md 模型架构: 文本与图像特征一起送入大模型 在线体验网址: https://huggingface.co/spaces/big-vision/paligemma 通过文字prompt既可与图片对话…

ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

QT creator centralwidget前面有个禁止符号

centralwidget前面有个禁止符号:表示分拆布局 在主窗口空白处,右键,选择布局即可选择不同的布局方式,表示对窗口内所有控件部件进行布局,不如垂直布局。

【机器学习】—机器学习和NLP预训练模型探索之旅

目录 一.预训练模型的基本概念 1.BERT模型 2 .GPT模型 二、预训练模型的应用 1.文本分类 使用BERT进行文本分类 2. 问答系统 使用BERT进行问答 三、预训练模型的优化 1.模型压缩 1.1 剪枝 权重剪枝 2.模型量化 2.1 定点量化 使用PyTorch进行定点量化 3. 知识蒸馏…

高光谱成像技术简介,怎么选择成像方案?

目录 一、什么是光谱?二、光谱和光谱分析方法的类型三、多光谱和高光谱的区别四、高光谱在水果品质检测中的应用1. 高光谱成像系统2. 高光谱图像的获取方式3. 高光谱图像处理与分析4. 在水果品质检测中的应用总结 五、针对自己的应用场景怎么使用高光谱技术六、参考…

海山数据库(He3DB)从方法到实践,构建以场景为中心的体验管理体系

编者按:体验优化的过程中设计师经常会遇到几个阶段,发现问题、定义问题、优化问题、查看反馈,但在产品快速迭代的过程中,体验的问题经常被归类到“不紧急”需求中,并逐步转为长尾问题,这些不被重视的问题聚…

【OpenGL实践10】关于几何着色器

目录 一、说明 二、几何着色器 2.1 设置 2.2 基本几何着色器 2.2.1 输入类型 2.2.2 输出类型 2.2.3 顶点输入 2.2.4 顶点输出 2.3 创建几何着色器 2.4 几何着色器和顶点属性 三、动态生成几何体 四、结论 练习 一、说明 几何着色器的应用比较高级,关于…

Epson推出的FC2012AN晶体专为小尺寸、低ESR应用设计

在可穿戴设备、loT产品、无线通信模块等领域,对于小型化、低功耗和高精度的时钟需求日益增长。Epson推出的FC2012AN系列晶体单元凭借其小尺寸、低ESR等特性使其成为这些应用的理想选择。 FC2012AN系列是一款32.768K频率的晶体单元,频率偏差为 20x10-6…

【云原生】kubernetes中的service原理、应用实战案例解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

DSPy - prompt 优化

文章目录 一、关于 DSPy与神经网络的类比常见问题解答**DSPy 优化器可以调整什么?****我应该如何使用 DSPy 完成我的任务?****如果我对提示或合成数据生成有更好的想法怎么办?**DSPy 代表什么? 二、安装三、文档A) 教程B) 指南C) …

全球手游4月战报,《Monopoly GO!》荣耀再续!全球手游畅销榜冠军

易采游戏网5月22日消息,在刚刚过去的四月里,全球移动游戏市场的角逐愈发激烈。根据最新发布的数据,Scopely旗下的经典游戏《Monopoly GO!》再次蝉联全球手游畅销榜首冠军宝座,展现了无与伦比的市场魅力与玩家黏度。 4月Scopely《M…

中霖教育怎么样?二建继续教育几年一次?

中霖为大家介绍: 根据相关规定,二级建造师执业资格注册证书设定有效期限为三年。为确保持证人员的专业能力,在规定的期限内需要完成规定的继续教育课程并参加考核,以此来维护其职业资质的连续性。 在执业资格证书的有效期满前&a…

redis小知识

AOF与RDB的区别 AOF (Append Only File) 和 RDB (Redis Database) 都是Redis中的持久化机制,但有以下几点不同之处: 内容格式:AOF 以日志的形式记录所有写操作命令,而 RDB 则是在指定的时间间隔内对数据库进行快照,将数…