其他算法-高斯混合模型
目录
- 高斯模型
- 单高斯模型
- 高斯混合模型GMM
- 参数估计
- 单高斯模型参数估计-极大似然
- 高斯混合模型参数估计-EM算法
- GMM与k-means
高斯模型
单高斯模型
当样本数据 x∈Rx\in\mathbb{R}x∈R 是一维时,高斯分布服从以下概率密度函数:
P(x∣θ)=12πσ2exp(−(x−μ)22σ2)P(x|\theta)=\frac{1}{\sqrt{2\pi\sigma^{2}}}exp(-\frac{(x-\mu)^{2}}{2\sigma^{2}})P(x∣θ)=2πσ21exp(−2σ2(x−μ)2)
其中,μ\muμ为数据均值(期望),σ\sigmaσ为数据标准差;
当样本数据 x∈RDx\in\mathbb{R}^{D}x∈RD 是多维时,高斯分布服从以下概率密度函数:
P(x∣θ)=1(2π)D2∣∑∣12exp(−(x−μ)T∑−1(x−μ)2)P(x|\theta)=\frac{1}{(2\pi)^{\frac{D}{2}}|\sum|^{\frac{1}{2}}}exp(-\frac{(x-\mu)^{T}\sum^{-1}(x-\mu)}{2})P(x∣θ)=(2π)2D∣∑∣211exp(−2(x−μ)T∑−1(x−μ))
其中,μ∈RD\mu\in\mathbb{R}^{D}μ∈RD为数据均值(期望),∑∈RD×D\sum\in\mathbb{R}^{D\times D}∑∈RD×D为数据的协方差矩阵(协方差矩阵回顾其他算法-卡尔曼滤波器),DDD为数据维度;
高斯混合模型GMM
高斯混合模型(Gaussian Mixture Model)可以看作是由多个单高斯模型集成的模型,理论上,混合模型可以使用任何的概率分布作为子模型,使用高斯模型是因为高斯分布具有更广泛的物理意义。
比如对以下二维数据:
如果仅通过单高斯模型,是不能很好拟合其分布的,但通过(多峰的)高斯混合模型,可以较容易拟合该数据的分布。
定义以下信息:
- xjx_{j}xj表示第jjj个观测数据,j=1,2,...,Nj=1,2,...,Nj=1,2,...,N
- KKK是混合模型中子高斯模型的数量,k=1,2,...,Kk=1,2,...,Kk=1,2,...,K
- αk\alpha_{k}αk是观测数据的混合系数,反映了第kkk个子模型在决定数据分布时占有的权重,满足:
∑k=1Kαk=1\sum_{k=1}^{K}\alpha_{k}=1k=1∑Kαk=1 - ϕ(x∣θk)\phi(x|\theta_{k})ϕ(x∣θk)是第kkk个子模型的高斯分布密度函数(单高斯模型),θk=(μk,∑k)\theta_{k}=(\mu_{k},\sum_{k})θk=(μk,∑k)
因此,高斯混合模型的概率分布为:
P(x∣θ)=∑k=1Kαkϕ(x∣θk)P(x|\theta)=\sum_{k=1}^{K}\alpha_{k}\phi(x|\theta_{k})P(x∣θ)=k=1∑Kαkϕ(x∣θk)
参数估计
单高斯模型参数估计-极大似然
对于单高斯模型,可以用极大似然法估计参数θ\thetaθ的值:
θ=argmaxθL(θ)\theta=argmax_{\theta}L(\theta)θ=argmaxθL(θ)
假设每个数据点相互独立,似然函数(Likelihood)可以通过各个数据点的概率密度连乘得到,为了便于计算,可以在似然函数上取对数(Log-Likelihood):
L(θ)=∏j=1NP(xj∣θ)→log(L(θ))=∑j=1Nlog(P(xj∣θ))L(\theta)=\prod_{j=1}^{N}P(x_{j}|\theta)\rightarrow log(L(\theta))=\sum_{j=1}^{N}log(P(x_{j}|\theta))L(θ)=j=1∏NP(xj∣θ)→log(L(θ))=j=1∑Nlog(P(xj∣θ))
极大似然估计参数的推导过程回顾非线性规划-三种常见参数估计算法及联系
极大似然包括两个步骤:
- 1.找到似然函数
- 2.对似然函数求导,令导数为零,直接得到解
对于高斯混合模型,可以发现,其对数似然函数为:
log(L(θ))=∑j=1Nlog(P(xj∣θ))=∑j=1Nlog(∑k=1Kαkϕ(xj∣θk))log(L(\theta))=\sum_{j=1}^{N}log(P(x_{j}|\theta))=\sum_{j=1}^{N}log(\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k}))log(L(θ))=j=1∑Nlog(P(xj∣θ))=j=1∑Nlog(k=1∑Kαkϕ(xj∣θk))
这里不能像单高斯模型一样使用极大似然法求导,以获得似然函数的最大参数,因为对一个数据点而言,存在KKK组未知的参数[αk,θk\alpha_{k},\theta_{k}αk,θk],考虑通过迭代的方法求解;
高斯混合模型参数估计-EM算法
EM算法回顾 非线性规划-三种常见参数估计算法及联系,对于GMM,隐变量来自 KKK 个子模型;假设样本数据为{x1,x2,...,xNx_{1},x_{2},...,x_{N}x1,x2,...,xN},EM算法过程如下:
- 1.根据jensen不等式定义对数似然函数的下界
∑j=1Nlog(∑k=1Kαkϕ(xj∣θk))⇒∑j=1N∑k=1Kγjklog(αkϕ(xj∣θk)γjk)\sum_{j=1}^{N}log(\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k}))\Rightarrow \sum_{j=1}^{N}\sum_{k=1}^{K}\gamma_{jk}log(\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\gamma_{jk}})j=1∑Nlog(k=1∑Kαkϕ(xj∣θk))⇒j=1∑Nk=1∑Kγjklog(γjkαkϕ(xj∣θk)) - 2.E步:根据当前参数,计算期望
γjk=αkϕ(xj∣θk)∑k=1Kαkϕ(xj∣θk)\gamma_{jk}=\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k})}γjk=∑k=1Kαkϕ(xj∣θk)αkϕ(xj∣θk)
代入下界函数作为新的似然函数:
L(θ)=∑j=1N∑k=1Kγjklog(αkϕ(xj∣θk)γjk)L(\theta)=\sum_{j=1}^{N}\sum_{k=1}^{K}\gamma_{jk}log(\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\gamma_{jk}})L(θ)=j=1∑Nk=1∑Kγjklog(γjkαkϕ(xj∣θk)) - 3.M步:极大似然
θ=argmaxθ(L(θ))\theta=argmax_{\theta}(L(\theta))θ=argmaxθ(L(θ))
通过解导数为零的根,可以更新参数θ=αk,μk,∑k,k={1,2,...,K}\theta=\alpha_{k},\mu_{k},\sum_{k},k=\left\{1,2,...,K\right\}θ=αk,μk,∑k,k={1,2,...,K}:
μk=∑j=1Nγjkxj∑j=1Nγjk,∑k=∑j=1Nγjk(xj−μk)(xj−μk)T∑j=1Nγjk,αk=∑j=1NγjkN,k=1,2,..,K\mu_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}x_{j}}{\sum_{j=1}^{N}\gamma_{jk}},\sum_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}(x_{j}-\mu_{k})(x_{j}-\mu_{k})^{T}}{\sum_{j=1}^{N}\gamma_{jk}},\alpha_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}}{N},k=1,2,..,Kμk=∑j=1Nγjk∑j=1Nγjkxj,k∑=∑j=1Nγjk∑j=1Nγjk(xj−μk)(xj−μk)T,αk=N∑j=1Nγjk,k=1,2,..,K - 4.检验模型是否收敛,如果不收敛,则回到第2步
使用EM算法迭代多次后,可以得到高斯混合模型的参数,注意:EM 算法具备收敛性,但并不保证找到全局最大值,有可能找到局部最大值。解决方法是初始化几次不同的参数进行迭代,取结果最好的那次;
GMM与k-means
k-means回顾 机器学习笔记本-K均值算法,GMM与k-means都常用作聚类算法,两者都使用EM算法进行参数估计(学习),两者的比较如下:
相同点:
- 都是迭代执行的算法,且迭代的策略也相同:算法开始执行时先对需要计算的参数赋初值,然后交替执行两个步骤,一个步骤是对数据的估计(k-means是估计每个点所属簇;GMM是计算隐含变量的期望);第二步是用上一步算出的估计值重新计算参数值,更新目标参数(k-means是计算簇心位置;GMM是计算各个高斯分布的均值和协方差矩阵以及混合系数);
- k-means可以看成是一种特殊的GMM
不同点:
- 1.需要计算的参数不同:k-means是簇心位置;GMM是各个高斯分布的参数;
- 2.计算目标参数的方法不同:k-means是计算当前簇中所有元素的位置的均值;GMM是基于概率的算法,通过计算似然函数的最大值实现分布参数的求解的
其他算法-高斯混合模型相关推荐
- gmm的java实现_4. EM算法-高斯混合模型GMM详细代码实现
1. 前言 EM的前3篇博文分别从数学基础.EM通用算法原理.EM的高斯混合模型的角度介绍了EM算法.按照惯例,本文要对EM算法进行更进一步的探究.就是动手去实践她. 2. GMM实现 我的实现逻辑基 ...
- EM算法高斯混合模型原理详解及小例子
EM算法与混合高斯模型 EM算法经常用在混合高斯模型下,那么首先我们先介绍一下什么是混合高斯模型 什么是混合高斯模型 首先我们对于单个高斯模型我们会有如下数据,并且不同的数据服从的高斯也不同,也就是它 ...
- 高斯混合模型与EM算法求解
高斯混合模型 文章目录 高斯混合模型 EM算法 高斯混合模型参数估计 1.样本分类已知情况下的GMM 2.样本分类未知的情况下的GMM 混合模型是一个用来表示在总体分布中含有K个子分布的概率模型,也就 ...
- 详解高斯混合模型与EM算法
详解高斯混合模型与EM算法 详解高斯混合模型与EM算法 高斯混合模型 单高斯模型(Gaussian single model, GSM) 一维高斯分布 多维高斯分布 混合高斯模型(Gaussian m ...
- 使用高斯混合模型建立更精确的聚类
介绍 我很喜欢研究无监督学习问题.它们为监督学习问题提供了一个完全不同的挑战,用我拥有的数据进行实验的发挥空间要比监督学习大得多.毫无疑问,机器学习领域的大多数发展和突破都发生在无监督学习领域. 无监 ...
- 机器学习基础专题:高斯混合模型和最大期望EM算法以及代码实现
高斯混合模型 混合模型是潜变量模型的一种,是最常见的形式之一.而高斯混合模型(Gaussian Mixture Models, GMM)是混合模型中最常见的一种.zzz代表该数据点是由某一个高斯分布产 ...
- K-means算法、高斯混合模型 matlab
K-means算法.高斯混合模型 简介: 本节介绍STANFORD机器学习公开课中的第12.13集视频中的算法:K-means算法.高斯混合模型(GMM).(9.10.11集不进行介绍,略过了哈) 一 ...
- em算法python代码_EM 算法求解高斯混合模型python实现
注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...
- 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
文章目录 I . 高斯混合模型 ( 样本 -> 模型 ) II . 高斯混合模型 ( 模型 -> 样本 ) III . 高斯混合模型 与 K-Means 迭代过程对比 IV . 高斯混合模 ...
最新文章
- R语言ggplot2绘制平滑曲线的折线图简单小例子
- 时序约束,STA的QA
- oracle 非数字型转数字型
- 通信大数据应用未来还有很大的想象空间
- 换个角度入门 K8s
- 2020年高考数学试题难吗?历史上最难数学卷不是2003!
- 操作数组的常用方式二-----排序、查找
- WCF两个类或者项目通信交互。
- 鹏华基金:科技赋能 打造公募基金的头部机构
- 阿里云云原生一体化数仓入选 2022数博会“十佳大数据案例”
- 2021美亚杯第七届中国电子数据取证团体赛题目详解write up
- 关于win10 64位安装 XP 32位注意事项
- 请高手指点,简单的几个数组操作方法不知道是否可以有更好的改进方法或者更简单的方法?
- 软件资产管理重在license
- Android平台压缩纹理ETC2 VS ASTC
- python利用百度翻译器,爬取需要翻译的关键字
- 系统学习机器学习之cox模型
- 简述什么是“零信任”
- 借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。
- ventoy集成微PE+优启通;vmware虚拟机如何进入PE系统,ventoy启动盘制作。