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算法求解三硬币模型参数推导

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity2D:C#Script】实现角色射击功能

一、创建子弹预制体 1. 创建子弹预制体 2. 调整图片大小、层级 二、为子弹添加碰撞体积 1. 添加Box Collider 2D、Rigidbody 2D组件 2. 锁定z轴 三、编辑敌人脚本 注:在以下代码中,只显示本章节新增的代码,省略原有的代码 1. 为敌人添加生…

智能无网远控再升级 向日葵Q2Pro升级版发布

无网或者内网设备也想要进行远程控制,是不是听上去有些天方夜谭了?其实这类特种设备的远程控制需求是非常强的,比如医疗/工控设备的远程运维、使用指导教学等等。 实际上,只要这类设备有屏幕,支持可视化的桌面操作&am…

Linux - 整理工作中常用的 Linux 命令(目录、文件、系统、进程、网络)持续更新~

目录 一、Linux 目录结构 二、Linux 中的常用指令 2.1、目录命令 cd 切换目录 pwd 打印当前所在目录 ls 展示当前目录内容 mkdir 创建目录 du 统计每个目录下的文件字节数 2.2、文件命令 which 查找 命令字 所在位置 find 查找文件 touch 创建一个空文件 cp 复制文…

签发免费https证书的方式

目录 http访问和https访问的区别 实现https后有哪些好处: 如何申请、安装部署免费https证书: 在浏览网页时,最常见的是http访问,但是也有一部分网站前缀是https,且浏览器网址栏会出现“安全”字样,或是绿…

第14章 数据分析案例——2012联邦选举委员会数据库

美国联邦选举委员会发布了有关政治竞选赞助方面的数据。其中包括赞助者的姓名、职业、雇主、地址以及出资额等信息。我们对2012年美国总统大选的数据集比较感兴趣。(http://www.fec.gov/disclosurep/PDownload.do)。我在2012年6月下载的数据集是一个150M…

华为设备WLAN配置之AP上线

WLAN基础配置之AP上线 配置WLAN无线网络的第一阶段,AP上线技术: 实验目标:使得AP能够获得来自AC的DHCP地址服务的地址,且是该网段地址池中的IP。 实验步骤: 1.把AC当作三层交换机配置虚拟网关 sys Enter system view,…

【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 状态栏 | QStatusBar的使用及说明 文章编号:Qt 学…

一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚,于是本文梳理一下,既方便自己记忆,也方便小白学习。 CUDA 首先,CUDA版本,一般指cuda-toolkit,即cuda开发工具包…

开源绘图工具Rnote使用体验分享

软件介绍 Rnote,这款致力于提供矢量绘图、手写笔记以及文档注释功能的免费开源软件,逐渐成为了学生、教师以及绘图板用户的新宠。其独特之处在于,它不仅支持PDF和图片的导入导出,还拥有无限画布和适应各种屏幕大小的界面设计,这些功能使得Rnote在众多同类软件中脱颖而出。…

python抽取pdf中的参考文献

想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如: 想要只在引用序号(如 [3])前换行,其它换行都去掉&…

【中霖教育口碑】什么情况下不允许参加注册会计师考试?

对于某些特殊情况,存在明确的禁止性规定,是不能参加注册会计师考试的,中霖为大家分享一下!关于注册会计师全国统一考试的资格条件,需明确以下要点: 1. 针对在前期注册会计师统一考试中因违反规定而受到禁止参加考试的…

awesome-ai4s 现已开源!超全 AI for Science 学术论文与数据资源汇总,持续更新ing

2018 年中国科学院院士鄂维南提出「AI for Science」概念,强调利用 AI 学习科学原理、创造科学模型来解决实际问题。同年,AlphaFold 崭露头角,从 43 种蛋白质中准确预测出了 25 种蛋白质结构。2021 年,AlphaFold 2 开源并预测了 9…

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具,它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器,允许你在仓库级别方便地配置钩子脚本;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

上位机图像处理和嵌入式模块部署(mcu之芯片选择)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 目前市面上的mcu很多,有国产的,有进口的,总之种类很多。以stm32为例,这里面又包括了stm32f1、stm32…

AWS EC2 连接 AWS RDS(Mysql)

1 创建RDS数据库 点击创建数据库 引擎选项 模板 设置 连接 2 EC2连接Mysql $ sudo yum list mariadb* Installed Packages mariadb-connector-c.x86_64 3.1.13-1.amzn2023.0.3 amazonl…

飞睿智能超宽带UWB标签模组,简化设备开发流程,实时高速率数传交互应用

在科技飞速发展的今天,UWB超宽带技术因其高精度、低功耗和高安全性的特点,正逐渐成为智能设备定位和数据传输的新宠。 UWB技术是一种无线通信技术,它通过使用非常宽的频带进行数据传输,从而实现高数据传输速率和高精度定位。 飞…

远动通讯屏的原理和应用

远动通讯屏的原理和应用 远动通讯屏,是一种集显示和远程控制于一体的智能化控制设备。它可以通过网络、通信线路等方式实现与远程设备的通讯和交互,从而实现远程监控和控制。 远动通讯屏实现远程控制的核心原理是基于PLC(Programmable Logic …

彩色进度条(C语言版本)

.h文件 #include<stdio.h> #include<windows.h>#define NUM 101 #define LOAD_UP 50 #define LOAD_DOWN 60 #define SLEEP_SLOW 300 #define SLEEP_FAST 70 版本1&#xff1a;&#xff08;初始版&#xff09; //v1 #include "progress.h" int main() …

C# GetManifestResourceStream 获取项目资源为null解决方案(亲测)

GetManifestResourceStream 获取项目资源为null 使用Stream s assembly.GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name resourceName) 获取资源文件&#xff0c;返回流为null&#xff0c;如图所示&#xff1a; 解决方案 设置资源文件的 属性&…

创建一个python的Django项目文件

创建一个python的Django项目文件(内含conda) 文章目录 创建一个python的Django项目文件(内含conda)前言一、conda环境的下载二、配置conda的环境变量三、激活管理环境四、下载Django五、创建Django项目文件六、启动Django文件七、用pycharm直接创建Django文件 前言 大家好,今天…