GMM,高斯混合模型,也可以简写为MOG。高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。

高斯混合模型(CMMs)是统计学习理论的基本模型,在可视媒体领域应用广泛。近些年来,随着可视媒体信息的增长和分析技术的深入,GMMs在(纹理)图像分割、视频分析、图像配准、聚类等领域有了进一步的发展。从GMMs的基本模型出发,从理论和应用的角度讨论和分析了GMMs的求解算法,包括EM算法、变化形式等,论述了GMMs的模型选择问题:在线学习和模型约简。在视觉应用领域,介绍了GMMs在图像分段、视频分析、图像配准、图像降噪等领域的扩展模型与方法,详细地阐述了一些最新的典型模型的原理与过程,如用于图像分段的空间约束CMMs、图像配准中的关联点漂移算法。最后,讨论了一些潜在的发展方向与存在的困难问题。

GMM在视觉分析中的应用

1.图像分段
高斯混合模型在图像分割领域应用广泛,在一般图像上经典过程是将像素映射到特征空间,然后假设特征空间的点由待定参数的GMMs生成,使用EM等算法计算最优的参数值以确定像素的类别。实际上,在图像分割应用中GMMs被看做是一个聚类模型,与特征选择、聚类分析、模型选择、EM算法设计紧密相关。
2.视频分析
CMMs和相关的统计方法广泛应用于视频分段、目标识别和跟踪、错误消除,为手势识别、武器制导、智能交通、视频监控等应用提供服务。
在视频分段方面有不少的工作。早期, Weiss和Adelson根据相邻像素之间的某种相似性,如强度,通过马尔科夫随机场建立了运动分割的统一框架。
3.噪声消除
噪声在图像和视频中不可避免,消除噪声有利于图像与视频分割、特征提取、目标跟踪与识别等后期处理过程。GMMs在图像噪声消除领域多有应用,一个主要的方法是利用GMMs对图像的正交函数基分解系数建模,消除噪声(91 1999年, Wain-wright等人发展了一类多尺度随机过程来表达图像的统计本质,该随机过程定义在多解析系数树的层叠结构之上。
4.图像配准
图像配准和融合是图像和视频分析领域发展的方向之一,在医疗图像处理、航空制导、遥感图像处理、视频监控等领域应用广泛。图像配准通常建立在图像特征提取基础之上,常用的方法有最小二乘估计、小波变换、FFTE息等。CMMs和EM算法亦可用于(3D)图像配准,近些年来,有不少的研究成果。Chui和Rangarajan通过GMMs构建了特征点集配准映射,通过融合EM过程的模拟退火算法计算模型参数。

以下是关于GMM的参数和属性

参数:
n_components : int,默认为1。
混合物成分的数量。

covariance_type : {“完整”(默认),“并列”,“诊断”,“球形”}
描述要使用的协方差参数类型的字符串。必须是以下之一:

‘充分’
每个分量都有自己的通用协方差矩阵

‘绑’
所有分量共享相同的通用协方差矩阵

‘diag’
每个分量都有自己的对角协方差矩阵

‘球形’
每个组件都有其自己的单个方差

tol : float,默认为1e-3。
收敛阈值。当下限平均增益低于此阈值时,EM迭代将停止。

reg_covar : 浮点型,默认为1e-6。
非负正则化添加到协方差的对角线上。允许确保协方差矩阵均为正。

max_iter : int,默认为100。
要执行的EM迭代次数。

n_init : int,默认为1。
要执行的初始化次数。保持最佳结果。

init_params : {‘kmeans’,‘random’},默认为’kmeans’。
用于初始化权重,均值和精度的方法。必须是以下之一:

“K均值”  : 责任 是 初始化 使用 K均值。
“随机”  : 责任 是 随机初始化的 。

weights_init : 类似数组的形状(n_components,),可选
用户提供的初始权重,默认为无。如果为None,则使用init_params方法初始化权重。

means_init :类 数组,形状(n_components,n_features),可选
用户提供的初始均值,默认为None,如果为None,则使用该init_params方法初始化均值。

precisions_init : 类似数组的字段,可选。
用户提供的初始精度(协方差矩阵的倒数),默认为无。如果为None,则使用’init_params’方法初始化精度。形状取决于’covariance_type’:

(n_components ,)                        如果是 '球形' ,
(n_features , n_features )               如果是 'tied' ,
(n_components , n_features )             如果是 'diag' ,
(n_components , n_features , n_features ) 如果是 'full'

random_state : int,RandomState实例或无,可选(默认值:无)
如果为int,则random_state是随机数生成器使用的种子;否则为false。如果是RandomState实例,则random_state是随机数生成器;如果为None,则随机数生成器是所使用的RandomState实例np.random。

warm_start : 布尔值,默认为False。
如果’warm_start’为True,则最后一次拟合的结果将用作下一次fit()的初始化。在类似问题上多次调用拟合时,这可以加快收敛速度​​。在这种情况下,“ n_init”将被忽略,并且在第一次调用时仅发生一次初始化。请参阅词汇表。

verbose : int,默认为0。
启用详细输出。如果为1,则打印当前的初始化和每个迭代步骤。如果大于1,则还将打印对数概率和每个步骤所需的时间。

verbose_interval : int,默认为10。
下一次打印之前完成的迭代次数。

属性:
weights_ : 类似数组的形状(n_components,)
每种混合物成分的重量。

means_ : 数组状,形状(n_components,n_features)
每个混合物成分的平均值。

covariances_ : 类似数组
每个混合物成分的协方差。形状取决于covariance_type:

(n_components ,)                        如果是 '球形' ,
(n_features , n_features )               如果是 'tied' ,
(n_components , n_features )             如果是 'diag' ,
(n_components , n_features , n_features ) 如果是 'full'

precisions_ : 类似数组
混合物中每种成分的精密度矩阵。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称正定的,因此可以通过精度矩阵等效地对高斯的混合进行参数化。存储精度矩阵而不是协方差矩阵使在测试时计算新样本的对数似然更有效率。形状取决于covariance_type:

(n_components ,)                        如果是 '球形' ,
(n_features , n_features )               如果是 'tied' ,
(n_components , n_features )             如果是 'diag' ,
(n_components , n_features , n_features ) 如果是 'full'

precisions_cholesky_ : 类似数组
每个混合成分的精确矩阵的cholesky分解。精度矩阵是协方差矩阵的逆矩阵。协方差矩阵是对称正定的,因此可以通过精度矩阵等效地对高斯的混合进行参数化。存储精度矩阵而不是协方差矩阵使在测试时计算新样本的对数似然更有效率。形状取决于covariance_type:

(n_components ,)                        如果是 '球形' ,
(n_features , n_features )               如果是 'tied' ,
(n_components , n_features )             如果是 'diag' ,
(n_components , n_features , n_features ) 如果是 'full'

converged_ : 布尔
当在fit()中达到收敛时为true,否则为False。

n_iter_ : int
最适合EM达到收敛的步数。

lower_bound_ : 浮动
EM最佳拟合的对数似然(训练数据相对于模型)的下界值。

例:绘制两个高斯混合的密度估计。数据是从具有不同中心和协方差矩阵的两个高斯生成的。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
from sklearn import mixturen_samples = 300# generate random sample, two components
np.random.seed(0)# generate spherical data centered on (20, 20)
shifted_gaussian = np.random.randn(n_samples, 2) + np.array([20, 20])# generate zero centered stretched Gaussian data
C = np.array([[0., -0.7], [3.5, .7]])
stretched_gaussian = np.dot(np.random.randn(n_samples, 2), C)# concatenate the two datasets into the final training set
X_train = np.vstack([shifted_gaussian, stretched_gaussian])# fit a Gaussian Mixture Model with two components
clf = mixture.GaussianMixture(n_components=2, covariance_type='full')
clf.fit(X_train)# display predicted scores by the model as a contour plot
x = np.linspace(-20., 30.)
y = np.linspace(-20., 40.)
X, Y = np.meshgrid(x, y)
XX = np.array([X.ravel(), Y.ravel()]).T
Z = -clf.score_samples(XX)
Z = Z.reshape(X.shape)CS = plt.contour(X, Y, Z, norm=LogNorm(vmin=1.0, vmax=1000.0),levels=np.logspace(0, 3, 10))
CB = plt.colorbar(CS, shrink=0.8, extend='both')
plt.scatter(X_train[:, 0], X_train[:, 1], .8)plt.title('Negative log-likelihood predicted by a GMM')
plt.axis('tight')
plt.show()

参考资料:https://scikit-learn.org/0.21/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture
[1]管涛,李玲玲.高斯混合模型、求解算法及视觉应用综述[J].中国图像图形学报,2017,17(12):1-22.

GMM算法应用实例介绍及参数详解相关推荐

  1. rsync的介绍及参数详解,配置步骤,工作模式介绍

    rsync的介绍及参数详解,配置步骤,工作模式介绍 rsync是类unix系统下的数据镜像备份工具.它是快速增量备份.全量备份工具. Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主 ...

  2. 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)

    Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...

  3. 阿里云ARM服务器通用型g6r实例CPU性能参数详解

    查看全文 http://www.taodudu.cc/news/show-2713373.html 相关文章: oracle profile 参数,oracle profile的参数详解 CPU各项参 ...

  4. 阿里云服务器ECS存储增强通用型g7se实例CPU性能参数详解

    腾讯云服务器ECS存储增强通用型实例规格族g7se实例CPU处理器采用Intel Xeon(Ice Lake) Platinum 8369B,基频2.7 GHz,全核睿频3.5 GHz,单实例顺序读写 ...

  5. DL之RefineNet:RefineNet和Light-Weight RefineNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之RefineNet:RefineNet和Light-Weight RefineNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 RefineNet和Light-Weig ...

  6. catboost原理、参数详解及python实例

    catboost 简介 优点: 1)它自动采用特殊的方式处理类别型特征(categorical features).首先对categorical features做一些统计,计算某个类别特征(cate ...

  7. DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之MobileNet V2:MobileNet V2算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNetV2算法的简介(论文介绍) MobileNet V2算法 ...

  8. DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之MobileNet:MobileNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 MobileNet算法的简介(论文介绍) 1.研究背景 2.传统的模型轻量化常用的方法 ...

  9. DL之SqueezeNet:SqueezeNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之SqueezeNet:SqueezeNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 SqueezeNet算法的简介(论文介绍) 1.轻量级的CNN架构优势 2.主要特 ...

最新文章

  1. c语言返回一个数的任意倍数,几道基础C语言题
  2. linux cron计划任务
  3. Apache CXF – JAX-WS –简单教程
  4. Linux 查询股价工具,find 查找工具
  5. 如何提高射频信号发生器的性能
  6. 《微积分:一元函数积分学》——指数函数积分进阶
  7. PETA 数据集下载
  8. 可以几分钟快速对接支付宝APP支付和手机网站支付?
  9. 集线器、路由器、网桥(桥接器)、网关、网线、交换机、中继器(转发器)、网卡工作在哪一层
  10. php 如何模拟浏览器,PHP 浏览器模拟测试 Mink
  11. SQL语句一二三之SQL基本语句
  12. 加入雷锋网,与智能未来同行
  13. c语言字符相关函数,c语言字符相关函数
  14. vue创建项目报错command not found:create-webpack
  15. 91CDKEY服务协议
  16. QuickSort c++
  17. TensorFlow实战:经典卷积神经网络(AlexNet、VGGNet)
  18. [TITANX × 4]在服务器上运行darknet/YOLOv3
  19. Unity制作GIF动画播放组件
  20. DeepLab-v3简易思维导图

热门文章

  1. Charles 抓包手机app
  2. 【综述】A Comprehensive Survey on Graph NeuralNetworks(3)
  3. Vim插件之vim-polyglot
  4. 个人提升:如何变得更加优秀
  5. TensorFlow:AI工程师的快速入门实战利器
  6. 9款HTML5实现的超酷特效
  7. 过曲线y=x^2(x=0)上某点处作切线,使该曲线、切线与x轴所围成的面积为1/12,求切点坐标,切线方程,并求此图形绕x轴旋转一周所围成的立体的体积
  8. python定向爬虫实例(一)
  9. 如何做好知识付费课程?
  10. codevs 2547 东方辉针城(dfs)