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,但死活安装不上,老是提示发生了错误。来来回回卸载安装几十遍,后…

每日新闻掌握【2024年5月24日 星期五】

2024年5月24日 星期五 农历四月十七 TOP大新闻 卫龙因缺斤少两致歉并开展自查 5月23日,卫龙官方账号发布致消费者的一封信。信中提到:针对近日消费者反馈的15g魔芋爽存在克重不足的情况我们表示诚挚的歉意。产品质量是卫龙的重中之重。卫龙已经与相关消…

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

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

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

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

c# 基础 .net core、.net framework、c#、mono之间的关系

它们都是微软旗下的产品.NET Framework 主要针对window环境开发,是一套开发框架,它包含了大量的类库和运行时环境(CLR),支持多种编程语言,包括 C#。- .NET Framework 的版本(如 4.5、4.6、4.7 …

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…

Java enum 枚举类

Java Enum 枚举类 概述 枚举类型本质上也是一种类,只不过是这个类的对象是有限的、固定的几个,不能让用户随意创建。 如果针对于某个类,其实例是确定个数,则推荐将此类声明为枚举类。 如果枚举类的实例只有一个,则可…

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博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

HCIP-Datacom-ARST自选题库__MPLS判断【道题】

1.在MPLS网络中,每台设备依然要遵循最长匹配原则,即每台设备都要有到达目的IP地址的路由,否则网络设备会丢弃收到的MPLS报文。 2.在MPLS网络中,运行DP协议的SR之间通过交换LDP消息来实现邻居发现、会活建立与维护以及标签管理等功…

Java 9的模块化系统(JPMS):探讨Java 9引入的模块化系统,并解释其对Java生态的影响

Java 9 模块化系统(JPMS)简介 Java 9 模块系统,也被称为 Java 平台模块系统 (JPMS),它是 Java 9 的核心特性之一,用于改进 Java 的大型应用的封装性和可维护性。 JPMS 的主要功能如下: 模块化代码:JPMS 允许你将代码库划分为不同的模块,在没有显示声明的情况下,模…

QT creator centralwidget前面有个禁止符号

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

AI商业化之路:开源大模型VS闭源大模型

开源大模型与闭源大模型,你更看好哪一方? 简介:评价一个AI模型“好不好”“有没有发展”,首先就躲不掉“开源”和“闭源”两条发展路径。对于这两条路径,你更看好哪一种呢? 探讨开源大模型和闭源大模型在商…

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

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

线性回归 10 种图表 上【建议收藏】

这段时间,不少同学提到了一些图表的问题。 每次在使用matplotlib画图,运用这些图表说明问题的时候,很多时候是模糊的,比如说什么时候画什么图合适? 其实这个根据你自己的需求,自己的想法来就行。 今天的…

不是人人都懂的学习要点

不是人人都懂的学习要点_什么叫独特?别人都学的东西,人人都懂的东西咱就不学了,学别人知道的少的东西-CSDN博客

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

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