机器学习笔记之高斯混合模型(一)模型介绍
机器学习笔记之高斯混合模型——模型介绍
- 引言
- 高斯混合模型介绍
- 示例介绍
- 从几何角度观察高斯混合模型
- 从混合模型的角度观察
- 概率混合模型的引出
- 从概率生成模型的角度观察高斯混合模型
引言
上一系列介绍了EM算法,本节将介绍第一个基于EM算法求解的概率生成模型——高斯混合模型(Gaussian Mixture Model,GMM)。
高斯混合模型介绍
示例介绍
首先观察一张关于样本集合X\mathcal XX的分布图:
从观察的视角对X\mathcal XX的分布进行分析,感觉上述样本点明显存在两堆,当然也可以认为是一堆样本,可能是样本没有全部生成完而已。但从常理角度观察 更像是两种不同分布的样本点存在于同一个样本空间中。
我们假设上述两堆样本点每一堆均服从高斯分布,尝试对上述样本点横坐标的的概率密度函数(Probability Density Function,PDF)进行表示:
该图意义是概率密度函数结果越高,该样本点存在更大的概率被产生出来。
观察上述所有样本点的横坐标,发现 以0.8和2.1这两个位置为中心,横坐标值围绕这两个中心产生的更密集,而其他位置相对稀疏一些。
因此,我们可以认为产生这些样本点的概率模型P(X)P(\mathcal X)P(X)是由两个高斯分布混合在一起得到的混合模型。我们称这个概率模型P(X)P(\mathcal X)P(X)为高斯混合模型。
从几何角度观察高斯混合模型
P(X)P(\mathcal X)P(X)也自然存在概率密度函数。依然以上述样本点横坐标作为示例,它的概率密度函数大致表示如下:
其中这个蓝色线可看作概率分布P(X)P(\mathcal X)P(X)产生的样本横坐标的概率密度函数。以第iii个样本的横坐标x(i)x^{(i)}x(i)为例,它的具体计算方法如下:
xmix(i)=f1(x(i))f1(x(i))+f2(x(i))⋅f1(x(i))+[1−f1(x(i))f1(x(i))+f2(x(i))]⋅f2(x(i))=[f1(x(i))]2+[f(x(i))]2f1(x(i))+f2(x(i))\begin{aligned}x_{mix}^{(i)} & = \frac{f_1(x^{(i)})}{f_1(x^{(i)}) + f_2(x^{(i)})} \cdot f_1(x^{(i)}) + \left[1 - \frac{f_1(x^{(i)})}{f_1(x^{(i)}) + f_2(x^{(i)})}\right] \cdot f_2(x^{(i)}) \\ & = \frac{[f_1(x^{(i)})]^2 + [f_(x^{(i)})]^2}{f_1(x^{(i)}) + f_2(x^{(i)})} \end{aligned}xmix(i)=f1(x(i))+f2(x(i))f1(x(i))⋅f1(x(i))+[1−f1(x(i))+f2(x(i))f1(x(i))]⋅f2(x(i))=f1(x(i))+f2(x(i))[f1(x(i))]2+[f(x(i))]2
其中,f1,f2f_1,f_2f1,f2分别表示两种高斯分布的概率密度函数:
fj=12πσje−(xi−μj)22σj2(j=1,2)f_j = \frac{1}{\sqrt{2\pi}\sigma_j}e^{-\frac{(x_i - \mu_j)^2}{2 \sigma_j^2}} \quad (j=1,2)fj=2πσj1e−2σj2(xi−μj)2(j=1,2)
我们可以将xmix(i)x_{mix}^{(i)}xmix(i)结果的生成看成两个步骤:
- 对应样本点横坐标x(i)x^{(i)}x(i),分别计算该样本点分别出现在分布1、分布2的比重α1(i),α2(i)\alpha_1^{(i)},\alpha_2^{(i)}α1(i),α2(i):
α1(i)=f1(x(i))f1(x(i))+f2(x(i)),α2(i)=[1−f1(x(i))f1(x(i))+f2(x(i))]\alpha_1^{(i)} = \frac{f_1(x^{(i)})}{f_1(x^{(i)}) + f_2(x^{(i)})} ,\alpha_2^{(i)} = \left[1 - \frac{f_1(x^{(i)})}{f_1(x^{(i)}) + f_2(x^{(i)})} \right]α1(i)=f1(x(i))+f2(x(i))f1(x(i)),α2(i)=[1−f1(x(i))+f2(x(i))f1(x(i))] - 融合模型的概率密度结果表示为属于各分布的加权平均:
xmix(i)=α1(i)f1(x(i))+α2(i)f2(x(i))x_{mix}^{(i)} = \alpha_1^{(i)}f_1{(x^{(i)})} + \alpha_2^{(i)}f_2{(x^{(i)})}xmix(i)=α1(i)f1(x(i))+α2(i)f2(x(i))
因此,从图像角度观察可以将高斯混合模型理解为:样本空间中的任一维度均由多个高斯分布叠加而成,并且该模型的概率密度函数可表示为多个高斯分布的加权平均。
假设某高斯混合模型由K\mathcal KK个高斯分布叠加而成,那么该模型的概率密度函数表示如下:
P(X)=∑k=1Kαk⋅N(μk,Σk)(∑k=1Kαk=1)P(\mathcal X) = \sum_{k=1}^{\mathcal K} \alpha_{k} \cdot \mathcal N(\mu_{k},\Sigma_{k}) \quad (\sum_{k=1}^{\mathcal K} \alpha_k = 1)P(X)=k=1∑Kαk⋅N(μk,Σk)(k=1∑Kαk=1)
从混合模型的角度观察
重新观察样本分布图,先设定数据集合中样本点的表示如下:
Data={(x(i),y(i))∣i=1N}Data = \left\{(x^{(i)},y^{(i)}) |_{i=1}^N\right\}Data={(x(i),y(i))∣i=1N}
其中x(i),y(i)x^{(i)},y^{(i)}x(i),y(i)分别表示样本点(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i))的横坐标、纵坐标。此时给定一个样本点(x(k),y(k))(x^{(k)},y^{(k)})(x(k),y(k))(红色样本点)如图所示:
我们提出的问题是:红色样本点(x(k),y(k))(x^{(k)},y^{(k)})(x(k),y(k))属于哪个高斯分布?
上述的高斯分布的等高线只是画了若干条以作表示,但实际上高斯分布在其样本空间内无限延伸。
因此,实际上(x(k),y(k))(x^{(k)},y^{(k)})(x(k),y(k))只要在该样本空间内,它属于任意一个高斯分布,但如果需要确定该样本所服从的规律,我们可以提出一个朴素想法:
该样本距离哪个高斯分布中心更近一点,它是哪个高斯分布的概率就更大一点。
基于上述想法,构建一个变量Z\mathcal ZZ,并赋予它实际意义:样本(x(k),y(k))(x^{(k)},y^{(k)})(x(k),y(k))属于哪个高斯分布。
基于上述思想,我们基于变量Z\mathcal ZZ对样本点(x(k),y(k))(x^{(k)},y^{(k)})(x(k),y(k))的分布归属问题有如下判断:
Z\mathcal ZZ | z1z_1z1 | z2z_2z2 |
---|---|---|
P(Z)P(\mathcal Z)P(Z) | p1p_1p1 | p2p_2p2 |
其中,z1,z2z_1,z_2z1,z2表示高斯分布编号(离散型随机变量),p1,p2p_1,p_2p1,p2表示样本点(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i))分别属于高斯分布z1,z2z_1,z_2z1,z2的概率。即:
pj=P[(x(i),y(i))∈zj](j=1,2)p_j = P[(x^{(i)},y^{(i)}) \in z_j] \quad (j=1,2)pj=P[(x(i),y(i))∈zj](j=1,2)
关于P(Z)P(\mathcal Z)P(Z)的约束条件有:
p1+p2=1p_1 + p_2 = 1p1+p2=1
概率混合模型的引出
基于上述例子,我们称上述定义的变量Z\mathcal ZZ为隐变量。原因在于该变量无法从样本集合自身观察出来,而定义它的目的在于协助求解概率分布P(X)P(\mathcal X)P(X)。
基于隐变量Z\mathcal ZZ,可以通过两步走的形式进行求解:
- 对样本点属于样本空间内任意高斯分布的概率进行统计,即求解P(Z)P(\mathcal Z)P(Z);
- 基于步骤1,样本基于各概率服从对应的高斯分布,即求解P(X∣Z)P(\mathcal X \mid \mathcal Z)P(X∣Z);
假设样本空间中一共包含K\mathcal KK个高斯分布,概率分布P(X)P(\mathcal X)P(X)可以表示如下:
该式子和‘几何角度’中的公式基本没有区别,只是从不同角度理解理解‘隐变量的表示’而已。
P(X)=∑ZP(X∣Z)P(Z)=∑k=1Kpk⋅N(μk,Σk)(∑k=1Kpk=1)P(\mathcal X) = \sum_{\mathcal Z}P(\mathcal X \mid \mathcal Z)P(\mathcal Z) = \sum_{k=1}^{\mathcal K} p_{k} \cdot \mathcal N(\mu_{k},\Sigma_{k}) \quad (\sum_{k=1}^{\mathcal K} p_k = 1)P(X)=Z∑P(X∣Z)P(Z)=k=1∑Kpk⋅N(μk,Σk)(k=1∑Kpk=1)
从概率生成模型的角度观察高斯混合模型
我们在极大似然估计与最大后验概率估计中介绍过,P(X)P(\mathcal X)P(X)既可以表示样本集合X\mathcal XX的概率分布,也可以表示概率模型。
它的描述具体为:样本集合X\mathcal XX是由概率模型P(X)P(\mathcal X)P(X)生成的样本组成的集合。概率模型可以源源不断地生成样本,样本集合X\mathcal XX只是其中一个子集。
高斯混合模型的隐变量Z\mathcal ZZ是一个基于参数的离散分布,因此将高斯混合模型从生成模型的角度 理解为如下步骤:
- 以pkp_kpk的概率从K\mathcal KK个离散的参数中选择了参数kkk;
- 在参数kkk确定的条件下,由于参数kkk唯一对应一个高斯分布N(μk,Σk)\mathcal N(\mu_k,\Sigma_k)N(μk,Σk),因此,从高斯分布N(μk,Σk)\mathcal N(\mu_k,\Sigma_k)N(μk,Σk)中随机生成一个样本xxx;
- 重复执行上述步骤,重复NNN次,最终获得NNN个样本的样本集合X\mathcal XX。
下一节将介绍高斯混合模型的求解过程。
相关参考:
机器学习-高斯混合模型(1)-模型介绍
机器学习笔记之高斯混合模型(一)模型介绍相关推荐
- 机器学习笔记之高斯网络(三)高斯马尔可夫随机场
机器学习笔记之高斯网络--高斯马尔可夫随机场 引言 回顾:马尔可夫随机场--团.势函数 高斯马尔可夫随机场 点势函数关联的项 边势函数相关的项 关于多元高斯分布学习任务的核心思想 关于条件独立性的总结 ...
- 机器学习笔记之卡尔曼滤波(一)动态模型基本介绍
机器学习笔记之卡尔曼滤波--动态模型基本介绍 引言 回顾:动态模型 动态模型的相关任务 卡尔曼滤波介绍 引言 本节从动态模型开始,介绍卡尔曼滤波(Kalman Filter). 回顾:动态模型 我们在 ...
- 机器学习笔记之前馈神经网络(一)基本介绍
机器学习笔记之前馈神经网络--基本介绍 引言 从机器学习到深度学习 频率学派思想 贝叶斯学派思想 深度学习的发展过程 引言 从本节开始,将介绍前馈神经网络. 从机器学习到深度学习 在机器学习笔记开始- ...
- 【机器学习笔记4】逻辑回归模型
目录 什么是逻辑回归? Sigmoid函数 决策边界 逻辑回归的损失函数 为什么平方误差模型不可行? 对数损失函数 单个样例损失: 整体损失函数 梯度下降算法 补充:F1-score评价指标 F1-S ...
- Netty入门笔记-Linux网络I/O模型介绍
在之前的博客中并没有将关于Netty的知识系统的总结起来.从这篇博客开始就将关于Netty的有关知识点总结起来顺便提升自己的分析问题的能力,通过博客分享的形式将学习的知识点形成体系,希望也可以帮助大家 ...
- 机器学习笔记:高斯判别分析
1 模型概述 假设有如下数据: 其中样本数据的类别y在给定的情况下服从伯努利分布 不同类别的样本数据又分别服从不同的多元高斯分布(这里假设两个高斯分布具有同样的方差) 2 损失函数 高斯判别模型的损失 ...
- 机器学习笔记(七)——决策树模型
引言 决策树(Decision Tree)是一种基本的分类和回归方法.它的扩展方法有GBDT和GBRT 等.决策树模型的学习过程主要有特征选择.决策树生成和剪枝.主要算法有ID3.C4.5和CART等 ...
- 【机器学习笔记之五】用ARIMA模型做需求预测用ARIMA模型做需求预测
本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数 ...
- 机器学习笔记(八)——决策树模型的特征选择
一.引言 决策树构建过程中的特征选择是非常重要的一步.特征选择是决定用哪个特征来划分特征空间,特征选择是要选出对训练数据集具有分类能力的特征,这样可以提高决策树的学习效率.如果利用某一个特征进行分类与 ...
最新文章
- Linux事件循环阻塞,深入浅析Node.js 事件循环、定时器和process.nextTick()
- WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现
- 启明云端分享|SSD20X_烧录mac地址文档参考
- 7系列mrcc xilinx_XILINX 7系列FPGA_时钟篇
- “stdafx.h”: No such file or directory
- Java 14:有用的NullPointerException消息
- 布隆过滤器的原理、应用场景和源码分析实现
- 使用libsvm中的svm_cross_validation函数进行交叉验证
- 使用Ping命令解析主机名解析出来的是IPv6
- html5 drawimage 不显示,javascript – 来自视频的HTML5 Canvas drawImage在第一次绘制时不显示...
- HIbernate Session 线程安全的问题
- hibernate 基础方法(二)【相关配置详解】
- layer的move要怎么用
- 2020-10-07
- (读书笔记).NET大局观—.NET引介
- 基于深度学习自动对焦技术
- 安装包时遇到 requires a peer of @angular/core、unmet peer dependency...的问题
- 网站卡其cdn后不能访问_关于网站使用CDN后无法登录的解决办法
- uniapp微信公众号h5接入网易七鱼客服系统
- kuix教程1:我的第一Kuix应用