不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注.相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计.也能得到每个样本对应的标注值,类似于kmeans聚类(输入样本数据,输出样本数据的标注).实际上,高斯混和模型GMM和kmeans都是EM算法的应用. 在opencv3.0中,EM算法的函数是trainEM,函数原型为: bool trainEM(InputArray samples, OutputArray logLikelihoods=n…
在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种: 1.正态贝叶斯:normal Bayessian classifier    我已在另外一篇博文中介绍过:在opencv3中实现机器学习之:利用正态贝叶斯分类 2.K最近邻:k nearest neighbors classifier 3.支持向量机:support vectors machine    请参考我的另外一篇博客:在opencv3中实现机器学习之:利用svm(支持向量机)分类 4.决…
EM算法简介 EM算法其实是一类算法的总称.EM算法分为E-Step和M-Step两步.EM算法的应用范围很广,基本机器学习需要迭代优化参数的模型在优化时都可以使用EM算法. EM算法的思想和过程 E-Step:E的全称是Expectation,即期望的意思.E-step也是获取期望的过程.即根据现有的模型,计算各个观测数据输入到模型中的计算结果.这个过程称为期望值计算过程,即E过程. M-Step:M的全称是Maximization,即最大化的意思.M-step也是期望最大化的过程.得到一轮期…
1.MM 算法: MM算法是一种迭代优化方法,利用函数的凸性来寻找它们的最大值或最小值. MM表示 “majorize-minimize MM 算法” 或“minorize maximize MM 算法”,取决于需要的优化是最大化还是最小化. MM本身不是算法,而是一种如何构造优化算法的描述. MM算法的思想是不直接对目标函数求最优化解,转而找到一个目标函数的替代函数,对这个替代函数求解.每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解.通…
手写数字digits分类,这可是深度学习算法的入门练习.而且还有专门的手写数字MINIST库.opencv提供了一张手写数字图片给我们,先来看看 这是一张密密麻麻的手写数字图:图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字.在opencv3.0版本中,图片存放位置为 /opencv/sources/samples/data/digits.png 我们首先要做的,就是把这5000个手写数字,一个个截取出来,每个数字块大小为20*20.直接将…
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于EM算法,我们主要从以下三个方向学习: 1,最大似然 2,EM算法思想及其推导 3,GMM(高斯混合模型) 1,最大似然概率 我们经常会从样本观察数据中,找到样本的模型参数.最常用的方法就是极大化模型分布的对数似然函数.怎么理解呢?下面看我一一道来. 假设我们需要调查我们学习的男生和女生的身高分布.你…
''' 数据集:伪造数据集(两个高斯分布混合) 数据集长度:1000 ------------------------------ 运行结果: ---------------------------- the Parameters set is: alpha0:0.3, mu0:0.7, sigmod0:-2.0, alpha1:0.5, mu1:0.5, sigmod1:1.0 ---------------------------- the Parameters predict is: al…
初始目的 将样本分成K个类,其实说白了就是求一个样本例的隐含类别y,然后利用隐含类别将x归类.由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?怎样评价假定的好不好呢? 我们使用样本的极大似然估计来度量,这里就是x和y的联合分布P(x,y)了.如果找到的y能够使P(x,y)最大,那么我们找到的y就是样例x的最佳类别了,x顺手就聚类了.但是我们第一次指定的y不一定会让P(x,y)最大,而且P(x,y)还依赖于其他未知参数,当然在给定y的情况下,我们可以调…
极大似然估计 考虑一个高斯分布\(p(\mathbf{x}\mid{\theta})\),其中\(\theta=(\mu,\Sigma)\).样本集\(X=\{x_1,...,x_N\}\)中每个样本都是独立的从该高斯分布中抽取得到的,满足独立同分布假设. 因此,取到这个样本集的概率为: \[\begin{aligned} p(X\mid{\theta}) &= \prod_{i=1}^Np(x_i\mid\theta) \end{aligned}\] 我们要估计模型参数向量\(\theta\)…
注:本文中涉及到的公式一律省略(公式不好敲出来),若想了解公式的具体实现,请参考原著. 1.基本概念 (1)聚类的思想: 将数据集划分为若干个不想交的子集(称为一个簇cluster),每个簇潜在地对应于某一个概念.但是每个簇所具有现实意义由使用者自己决定,聚类算法仅仅会进行划分. (2)聚类的作用: 1)可以作为一个单独的过程,用于寻找数据的一个分布规律 2)作为分类的预处理过程.首先对分类数据进行聚类处理,然后在聚类结果的每一个簇上执行分类过程. (3)聚类的性能度量: 1)外部指标:该指标是…