高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)
高斯混合模型(Gaussian Mixture Model)是机器学习中一种常用的聚类算法,本文介绍了其原理,并推导了其参数估计的过程。主要参考Christopher M. Bishop的《Pattern Recognition and Machine Learning》。
以粗体小写字母表示向量,粗体大写字母表示矩阵;标量不加粗,大写表示常数。
1. 高斯分布
高斯分布(Gaussian distribution),也称为正态分布(normal distribution),是一种常用的连续变量分布的模型。若单个随机变量
对于一个
其中
(1)式中,指数部分的二次型
2. 高斯混合模型(Gaussian Mixture Model)
多个高斯分布的线性叠加能拟合非常复杂的密度函数;通过足够多的高斯分布叠加,并调节它们的均值,协方差矩阵,以及线性组合的系数,可以精确地逼近任意连续密度([1], Section 2.3.9, p111)。
我们考虑
其中,
我们称(2)式为一个高斯混合(Mixture of Gaussians, Gaussian Mixture)。其中每个高斯密度函数称为混合的一个分模型(component),有自己的均值
(2)式中的参数
此外,由于
(更一般地,混合模型也可以是其他任意分布的叠加。)
由全概率公式,
上式与(2)式等价,其中
在观测到
下图所示为包含两个一维分模型的高斯混合:
3. 隐变量 & 完全数据
引入一个
考虑由以下方式产生样本
- 先以离散分布
抽样得到变量;
- 设根据
的取值选择了第个分模型,则以高斯分布抽样得到。
记高斯混合模型的参数为
变量
给定
或者写成如下形式:
也可由下面的式子得到:
这表明
4. 后验概率 & 响应度
根据贝叶斯定理(Bayes' theorem - Wikipedia),观测到
上式中,
将上式定义为:
对于样本集
5. 对数似然函数 & 最大似然估计
现在有一个样本集
样本集
似然函数中的连乘求导比较麻烦,取自然对数将其转换成对数的和,得到对数似然函数(the log of the likelihood function):
其中,
最大似然估计(maximum likelihood estimation),即通过求似然函数的最大值来估计概率模型的参数。用最大似然估计来计算高斯混合模型的参数,形成如下的优化问题:
采用拉格朗日乘子法来求极值,拉格朗日函数为:
先将
所以,
注意上式中
令
左乘
定义
对
接下来涉及矩阵求导(Matrix calculus - Wikipedia),要复杂一些,这里不做推导,按参考文献[1]Chapter 9的公式(9.19),给出
对
注意到上式左右两边乘以
上式对
又
所以
综上,对数似然函数
需要注意的是,上式并未给出高斯混合模型的解析解/闭式解(analytical soluiton/closed-form solution),因为响应度
不过,根据(6)式可使用迭代算法来计算模型参数。
6. EM算法计算高斯混合模型的参数见后续。
参考文献
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning, Springer, 2006.
[2] 李航,统计学习方法,清华大学出版社,2012年。
高斯-赛得尔迭代式 c++_高斯混合模型(Gaussian Mixture Model)与EM算法原理(一)相关推荐
- 高斯混合模型Gaussian Mixture Model (GMM)——通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布...
从几何上讲,单高斯分布模型在二维空间应该近似于椭圆,在三维空间上近似于椭球.遗憾的是在很多分类问题中,属于同一类别的样本点并不满足"椭圆"分布的特性.这就引入了高斯混合模型.--可 ...
- 高斯混合模型(Gaussian Mixture Model)
混 合 模 型 使 我 们 能 够 一 瞥 以 后 会 用 到 的 一 个 非 常 重 要 的 概 念 -- 潜 变 量(latent variable).潜变量是我们不能直接观测到的随机变量.
- 混合高斯模型(Gaussian Mixture Model,GMM)
高斯混合聚类和k 均值算法(k-means)都属于原型聚类,但与k均值用原型向量来刻画聚类结构不同,高斯混合聚类采用概率模型来表达聚类原型. 一.混合模型(Mixture Model) 混合模型是一个 ...
- 数值计算方法 线性方程组的数值解法(4)---向量和矩阵范数(norm) 高斯-赛德尔(Gauss-Seidel)迭代、共轭梯度(Conjugate Gradient)迭代
(范数部分matlab有现成函数,若有需要直接参照matlab_norm) 向量范数 设x∈Rn\boldsymbol x\in \boldsymbol R^nx∈Rn则范数||x||满足:∣∣x∣∣ ...
- 高斯—赛德尔求解线性方程+C代码
高斯-赛德尔迭代求矩阵特征值公式如下: 举例: 实现代码: #include "stdio.h" #include "stdlib.h" #include &q ...
- 高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现
高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现 代码 运行 手算例题 迭代法解线性方程组的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则,有不同的 ...
- MATLAB实现雅可比与高斯塞德尔迭代
概述 用MATLAB编程实现,形成m函数文件.输入A,b矩阵,无返回值,解得x向量直接显示在命令行窗口,同时绘制出x向量的收敛曲线. A = [ 2 − 1 1 1 1 1 1 1 − 2 ] b = ...
- [计算机数值分析]高斯-塞德尔迭代公式解线性方程组
在雅可比迭代公式的基础上,对于收敛的迭代过程,所求出的"新值"常比"老值"更准确些,因此可以用它替代老值作进一步的计算,这样的思想就是著名的高斯-塞德尔迭代公式 ...
- 高斯混合模型--GMM(Gaussian Mixture Model)
参考:http://blog.sina.com.cn/s/blog_54d460e40101ec00.html 概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率 ...
最新文章
- Go学习笔记07-结构体与方法
- Android的Menu状态动态设置方法onPrepareOptionsMenu(Menu menu) (转载)
- 【ASP】简单Url编码和Url解码实例
- 计算机图像图形设计制作 步骤,怎样在电脑上制作流程图?小编“墙裂”推荐它!...
- 乐高无线服务器必须有房主,乐高无限成就有哪些-乐高无限成就大全_手心游戏...
- JSF之经常使用注解
- OA项目之我的审批(查询会议签字)
- python如何设置窗口为活动窗口
- 阿里云域名转京东云服务器配置图
- Windows10+YOLOV3+VisualStudio2017最新版本超详细过程
- 海康大华安防网络摄像头Onvif、RTSP网络无插件直播流媒体服务解决方案EasyNVR表单重复提交的优化方案
- C++设计模式-中介者模式详解
- HTML CSS JS实现网页聊天窗口,js实现聊天对话框
- 数据结构与算法笔记:抽象思维之对比算法,发现共性(下楼梯台阶和象棋跳马问题算法重构)
- 支持向量机 二 :非线性支持向量机
- php json_encode unicode,phpjson_encode总是返回unicode字符u.问题解决
- [jvm-sandbox] 多个agent并用
- 亲爱的老狼-清除浮动float的5种方法
- 输入三个数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形是一般三角形、等腰三角形还是等边三角形。
- 苹果iTunes Store下架加密货币播客
热门文章
- error while loading shared libraries: libmysql....
- apache常用的配置指令:ServerRoot
- Javascript在页面加载时的执行顺序
- Linux下理解进程,fork()创建子进程
- Ice笔记--C++线程与并发(小结)
- 自适应中值滤波及实现
- 数字图像处理:基于MATLAB的车牌识别项目
- 两个点击事件共用一个方法_杭州淘宝直播代运营:一个简单的方法,提升直播间封面图点击率!...
- Ubuntu上安装显卡驱动
- SAP Fiori + Vue = ?