em算法详细例子及推导_机器学习无监督算法|高斯混合模型(GMM)的来龙去脉,看不懂来找我!当场推导...

前言

最近一直有读者要求我更新相关的机器学习算法,之前更新了马尔可夫链,HMM,随机森林,今天应读者的需求,给大家简单分析和推导一下,GMM的来龙去脉,既然是算法,就避免不了,从数学公式的推导,算法的经典之处,算法的应用场景以及目前的发展现状,每去讨论一个算法,其实是一个非常庞大的工程。对过对自己来说也是一种项目的研究过程。废话不多说,我们首先来看看GMM的来龙去脉。

一、GMM的所属的大家庭

之前小编给大家去列举了一下无监督学习的综述,有需要的您可以参考一下,这样就对GMM又一个所属范畴上的感知:

好好先生:无监督学习|聚类算法综述​zhuanlan.zhihu.com
v2-63f0be37161bb5dd07a5b1e9bb012ac2_180x120.jpg

v2-9a1a151afe4f85d2cf42dcc059d765fb_b.jpg
无监督学习数据集聚类的算法分组

我们从大致知道高斯混合模型无监督学习聚类算法的成员,是由近邻算法(AP)的缺点演化,同时它属于概率聚类模型,那么什么是概率聚类模型呢?我们联想到了概率图模型,但是不要混淆了。

v2-494fdf50e55d23d966733d442847cb3d_b.jpg
概率图模型

那么我们简单总结一下,GMM为什么叫概率类聚类算法。

我们要先了解一下K_means算法,为什么呢?看下去就知道了!

二、Kmeans聚类算法

  1. 什么是Kmeans算法
  2. 解决什么问题
  3. 算法原理是什么
  4. 核心问题
  5. 应用的数据集
  6. 解决不了的问题(缺憾)
  • 什么是Kmeans算法?

那么,K-均值到底是什么?嗯,这是一种无监督的学习算法(意味着没有目标标签),它使您可以识别数据中相似的数据点组或群集

  • 解决什么问题?

要了解为什么它有用,请想象上面提到的用例之一,客户细分使用此算法的公司将能够根据客户的特征将其客户划分为不同的组。千人千面大家肯定听说过。这是从事目标广告、提供诸如个性化折扣、促销之类的东西的非常有用的方式,这很可能会推动收入增长。

  • 算法原理是什么?

同样,可以将K均值问题看作是将数据分组为K个聚类,这也是K的含义。其中对聚类的分配基于与质心的某种相似性或距离度量(稍后将对此进行详细介绍)。那么我们该怎么做呢?让我们首先概述涉及的步骤。

  1. 我们随机初始化K个起始质心。每个数据点都分配给它最近的质心。
  2. 重心被重新计算为分配给各个群集的数据点的平均值。
  3. 重复步骤1和2,直到触发停止标准。

原理就是这么简单。现在您可能想知道我们正在优化什么,通常是相似性度量方法:更精确的欧几里德距离或平方欧几里德距离。数据点被分配给最接近它们的簇,或者换句话说,该簇使该平方距离最小。我们可以将其更正式地写为:

v2-13c9c94214141de49a0c89940a5805bd_b.png
K表示成本函数
公式解释: J只是每个数据点与其分配的簇的距离的平方之和。其中 [R是指示函数等于1,如果数据点(x_n)被分配给该群集(k)和否则为0。什么意思呢?其实就是一共分了K个组,每组有一个随机初始化的质心,计算的距离就是每个数据点n与其所属的组k的距离的平方和,然后我们再把所有的数据距离的平方和相加。这里的Rnk就是一个对应关系的指示函数。相当于之前我们经常看到的指示函数I(x=y)其中只取0或1值。

这里我们就是要找J的最小值问题,我们就不用列代码了,相关的项目也非常多,我们用算法可视化的方法来看看训练的动态过程:

v2-d05490e8f38ce6e817f681f53de6ff9b_b.gif
K均值算法,来源:Bishop
图像解释:
如您所见,上图显示了K均值在起作用。我们定义了k = 2,因此我们在每次迭代时将数据分配给两个集群之一。图(a)对应于随机初始化质心。在(b)中,我们将数据点分配给它们最接近的群集,在图c中,我们将新质心分配为每个群集中数据的平均值。这一直持续到我们达到停止标准为止(最小化成本函数J或预定义的迭代次数)。希望上面的解释以及可视化使您对K的含义有了很好的理解。
  • 核心问题

最佳的K值:

使用K均值时,我们需要做的一件事情就是确保选择最佳的聚类数。太少了,我们可能会将具有明显差异的数据分组在一起。簇太多,我们将过度拟合数据,而我们的结果将不能很好地推广。

v2-461b8fa4cd44b00598ab64db5a5d97fb_b.jpg
K值选择太小

为了回答这个问题,我们将使用弯头方法,这是用于此任务的常用技术。它涉及使用各种数量的K值聚类估计模型并计算聚类内平方和的负值对于使用sklearn的评分方法选择的每个簇数。请注意,这只是上述目标函数的负数。我们选择的数字是,添加更多聚类只会稍微增加分数。绘制图形时,结果看起来像肘(在这种情况下为上下肘)。簇数的最佳选择是肘部形成的位置。

其实就是我们看到的n_clusters这个超参数的最佳取舍:拐点

number_clusters 

v2-95c3e0f2d8650e0470ea3735d9eae58e_b.jpg
最佳集群数
  • 无法解决的问题

由于,我们采用了随机初始化的方式,聚类中心初始化得不好,直接影响我们最后聚类的效果

现在应该清楚,k均值是一种简单而强大的算法,它对于分析中可能出现的许多不同类型的问题确实非常有用。话虽如此,对于您的特定问题而言,它不一定总是最佳选择,并且在某些假设中,如果要使用该算法,则需要了解该算法。k均值的最大假设和局限性可能是假设聚类是球形的。该假设实质上转化为具有相同方差的所有变量,或者换句话说,是对角线上具有恒定方差的对角协方差矩阵。如果不是这种情况,那么在实践中通常不是这样,那么k均值可能不是最佳解决方案。k-means算法的另一个局限性在于数据点是“硬分配”给集群。换句话说,数据点位于群集中或不在群集中(噪声)。当然,我们对某些数据点相对于其他数据点而言更有信心吗?如果能以某种方式将这种信心纳入我们的结果中会更好吗?

  • 应用的数据集

这里我要好好给大家解释一下,这个数据集的假设问题:

K means没有严格的前提要求,但是有一些假设和数据的限制性分布,但是如果数据不符合下面三个要求的话,K means得到的结果可能会比较奇怪:

  1. 数据中每个变量的方差基本上要一样
  2. 每一个cluster中每个变量都是近似正态分布(或者众数等于中位数的对称分布)
  3. 每一个cluster中的元素个数要几乎一样

条件1和2就几乎保证了每个cluster看起来像是球形(而不是椭球形),而且是图的。

为什么条件3也很重要呢,可以看下面这个例子,尽管我们肉眼能看出三个稀疏程度不同的球状簇,但是K means却分成了三个样本数量相似的三个簇

v2-cdae9a70cfa94da1edd8fed030591481_b.jpg
原始数据

v2-ac7bbd470b50bb8a4ce2f037b8f6ed7b_b.jpg
分类之后的数据

补充说明:

要求数据集是凸数据集,就是数据集内任意两点的连线上所有的点都在数据集内,否则分类效果就很差,这时候DBSCAN就比较合适了:

这里我们不做深入,之后会解释到。

v2-aecbcf76693914ca32a91ea4c53b7477_b.jpg
DBSCAN算法

对我们来说幸运的是,还有另一种技术可以用来解决这些问题。我们可以使用称为高斯混合模型或GMM的算法。这样做的好处是我们得到了软分配,即每个数据点都以一定的概率属于每个群集。不仅如此,GMM还对集群的方差做出了较少限制的假设。缺点是它是一个更复杂的算法,这也是我们要讨论的GMM!!

三、GMM高斯模型

  1. 凸函数
  2. Jensen's inequality
  3. EM 演算法(Expectation-Maximization Algorithm)
  4. 高斯混合模型(Gaussian Mixed Model)
    GMM概念
    GMM公式怎么来的
  5. GMM-EM
    GMM-EM演算法流程
    GMM-EM详细推导

上面我讨论了k-means聚类作为总结文本数据的一种方式。我还谈到了k均值的一些局限性,在什么情况下它可能不是最合适的解决方案。可能的最大限制是每个聚类具有相同的对角协方差矩阵。这样就产生了球状簇,就其可以建模的分布类型而言,它非常不灵活。在本文中,我想解决其中的一些局限性,并特别讨论一种可以避免这些问题的方法,即高斯混合模型(GMM)。接下来的叙述将与上一篇非常相似,我将解释GMM背后的理论及其工作原理。然后,我们可以看到结果与k-means有何不同,以及为什么使用GMM可能是一个很好的选择。

简单来说,GMM也是一种聚类算法。顾名思义,每个聚类都是根据不同的高斯分布建模的。这种对数据建模的灵活且概率性的方法意味着,我们没有像k-means这样的硬分配到聚类中,而是拥有软分配。这意味着每个数据点可能已经由任何分布以相应的概率生成。实际上,每个分布都有一定的“责任”来生成特定的数据点。

我们如何估计这种类型的模型?好吧,我们可以做的一件事就是为每个数据点引入一个潜在变量 (gamma)。这假定是通过使用关于潜在变量的一些信息生成的每个数据点γ。换句话说,它告诉我们哪个高斯生成了特定的数据点。但是实际上,我们没有观察到这些潜在变量,因此我们需要对其进行估计。我们如何做到这一点?好吧,对我们来说幸运的是,在这样的情况下已经有了一种算法,期望最大化(EM)算法,这是我们接下来要讨论的。

开始之前先稍微复习EM会用到的线性代数或是最优化理论的内容:

凸函数

如果f为实数x的函数,二阶微分大于等于0,则f称为凸函数,二阶微分大于0称为严格凸函数。

v2-0e70a8ad08855b74d9d11ecf2bfc99b1_b.png

如果f为向量x的函数,二阶微分矩阵(Hessian Matrix, H)如果是半正定(determinant(H)≥0),则f称j为凸函数,如果determinant(H)>0称为严格凸函数。

v2-d0dab9c3973687d16f3a64ce87370df8_b.png

Jensen's inequality

机率论观点,如果φ是凸函数,X是随机变量

v2-af005e75a4a745160e5ce864eea23c14_b.png

E: 期望值(expectation),公式如下:

v2-c2e73efc4b5a5cd0ea973b7ba18f7d24_b.jpg

f :是x的概率密度函数。

总结:我们自己去理解这个定理就只用画一个勾和一个倒钩就理解了。

  1. 对于凸数据集对于样本中任意两个随机变量的连线都不穿过样本。
  2. 对于凸函数随机变量的期望的函数小于随机变量函数的期望

这是机器学习的概率论基础:

这里给大家一个概率论的学习便签,需要原思维导图的可以在文末获取下载:

v2-f909044206c1d260d224e83a29999185_b.jpg
机器学习概率论基础

手写推导:

这是所有理论推理,包含了很多理论知识和小知识点:

v2-aacd88512f78d372f6563f60b686c41d_b.jpg
单个高斯模型的参数估计与多个高斯参数模型的参数估计,GMM的产生

v2-ba9738878a9ebac6baf6826399918d29_b.jpg
贝叶斯框架求单个高斯的参数估计

v2-ddff384bc559cee2e856dfa469ea7700_b.jpg
概率权重的混合高斯模型的参数估计不能一步到位,所以需要用迭代的方法来迭代出所有参数theta

v2-9c477b69ef8c6b7e353a9bc6ba02a494_b.jpg
隐变量Zeta的提出,他指示每个样本所在的高斯,值域有K个,所以也是K个高斯

v2-afdaa68b1c8903e22fe58fc755a07207_b.jpg
EM的迭代关系中的theta

v2-fc4250855e0d78750a87c22621725491_b.jpg
证明参数估计的theta的更新的每一步,似然函数都是递增的P(X|theta)

v2-e0f6f47be9e396145fe25560dfceff49_b.jpg
EM的E步骤

v2-ae01435ff1bb988c40d4f2a78b9bb9a7_b.jpg
theta三个系列的参数组合的估计

徐亦达机器学习:Expectation Maximization EM算法 ,主要视频推荐:

徐亦达机器学习:Expectation Maximization EM算法 【2015年版-全集】_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com
v2-b50f7ca25b115f34fd45d31e30da25ba_180x120.jpg

GMM公式怎么来的

用一种案例来理解:

v2-c2e0ec690bfe91b0cc557481f8ac6a26_b.jpg

1.先选一个袋子
这时候选袋子有是一种随机变量,这边假设K个袋子的随机变量这边假设是离散型的,连续型基本上差不多)为

v2-6a0d5df140a2cd53b408815b4c3555d7_b.png

从袋子拿一颗糖果:

v2-bc86e65149b44adc97d49728bbb2d5a3_b.png
从这个例子我们知道,z是无法量测的随机变量,也就是隐藏变数,且是先验机率(priori)

先验概率:

v2-685eb696ba3b40eb22db1c29986b9468_b.png

αk也就是第k个袋子(高斯分布)被选中的先验机率,或称为每个袋子被挑中的权重。

因此隐藏变数z的概率密度函数为:

v2-59516d3a37d583ae43231426974d51de_b.jpg

假设我们今天选中第k个袋子,然后抽中糖果x发生机率是:

v2-463be92887eb5125e0fbb293395d6bd6_b.jpg

写的比较general一点就是

v2-d58988e118fd92219edb543454d66717_b.jpg

如果看过后验机率应该知道有一个分母项叫全概率,把所有z可能的概率似然函数乘上先验机率再相加。

v2-9619effbfaf326ff37f2b09a4befbf4d_b.png

其中:

v2-51c20fcc713d1408852617595ecfa682_b.png

Θ称为高斯混合模型的参数集。

现在我们这个概率模型我把高斯分布写进去替换:

v2-f1663cc3fd691ebc2ca514622304569f_b.jpg

这就是GMM的公式。
α k等于每个高斯分布的界于0到1的权重,然后我们会限定权重和为1。

假设我们已经知道高斯混合模型的参数(Θ)了,此刻我们有一颗糖果x,根据它的后验机率可以推论出来是来自第k个糖果袋子的机率,也可以解读成这个糖果在全部袋子中,第k个袋子将负责多少比例的机率:

v2-c6eeaac03d24adeb4c44c11b1c2d1312_b.png

此时wk ( x )具有一个特性,全部K个糖果袋子的机率和是1

v2-036cfb64d75ef9bb47ff5d0474c378fc_b.jpg

GMM概率似然函数估计

这边会延续糖果的例子。
假设我们抽了n个糖果,所是事件集合是{ x1,x2,…,xn },我们要用这些糖果来反推论参数,分别是:

v2-78ba82026bd01dc224508781a37e51fe_b.png

听起来就很困难对吧,从抽出来的糖果要去推这么多东西,EM是视乎是一个有效的估计方法。

这边将我们抽了n个糖果的概似函数写出来,然后取对数:

v2-5a69ff5fe701f480f4de591e49326aec_b.jpg

EM是一种不断迭代的算法,所以参数会不断的更新,这边假设

v2-d83eeb8873b5ac4bc3cf3c065fc5a2fe_b.jpg

v2-50017d7d42de231d9f7306075f416c23_b.jpg

v2-e1eca4a16cddceb1ca364ff118dab21a_b.png
Jensen's inequality

所以:

v2-b580a63623f347adc7ec938687a7bf0a_b.jpg

因为已经在算t+1次,所以第t次的参数Θ(t)固定时,可视为一个常数C不重要可以删除。

我们定义一个函数q:

v2-ec0e30114b40f6ac11ef3ad5af0ccfb1_b.png

上述式子可以简化成:

v2-69a8cb6418e8a703f11f7bacaaa46084_b.png
所以式子右边那一串(三项相加)等于ln(L(Θ(t+1)))的下界原本目的是希望t+1次的对数概似函数(ln(L(Θ(t+1))))最大化,但因为很困难,所以我们去最大化ln(L(Θ(t+1) ))的下界会比较容义一些,因此最大化q (Θ(t),Θ(t+1))会使得ln(L(Θ(t+1)))变大。

EM算法

EM算法包括两个步骤,E步骤或Expectation步骤以及M步骤或Maximization步骤。比方说,我们有一些潜在变量γ (这是不可观测,并通过下面的矢量Z表示)和我们的数据点X我们的目标是在给定参数(由矢量θ表示)的情况下,最大化X的边际概率。本质上,我们可以找到作为X和Z的联合的边际概率分布,并求和所有Z的总和(概率总和)。

v2-1e5a3c092466fae4757e40216ce1b8ad_b.jpg
公式1:具有潜在变量的边际概率

简化目标函数:

上面的公式通常会导致难以最大化的复杂函数。在这种情况下,我们可以做的是使用Jensens不等式 构造一个下界函数 ,该函数更容易优化。如果我们通过最小化两个分布之间的KL散度 (间隙)来优化此值,则可以近似原始函数。此过程在下面的图1中说明。我还提供了一个视频链接,上面提供了一些想要更严格数学解释的人的KL散度推导。

要从本质上估计我们的模型,我们只需要执行两个步骤。在第一步(E步)中,我们要估计我们的潜在变量的后验分布,其条件取决于我们的权重(π)均值(µ)和高斯变量的协方差(Σ)。参数的向量在图1中表示为θ。估算E步需要首先初始化这些值,我们可以使用k-means进行此操作,这通常是一个很好的起点(有关更多信息,请参见下面的代码)。然后,我们可以转到第二步(M步),并使用 使关于参数θ的可能性最大化。重复此过程,直到算法收敛为止(损失函数不变)。

可视化EM算法

我们在第一步中计算 的后验分布,事实证明它等于通过最小化两个分布之间的KL散度而获得的值。然后,我们将后验概率设置为等于q,并针对参数θ最大化该函数。我们可以从图中看到,当我们迭代并执行这些计算时,我们会朝着最优(或至少是局部最优)迈进。

v2-dd3877904c04bc486365071d3c5df528_b.gif
注意:Theta是所有参数的向量,来源:贝叶斯机器学习方法

EM算法的推演这部分我给大家用手写推演一下吧:

v2-dcd50c9f7ff33e4e92bd614d1bc6a5e3_b.png

EM算法适用于带有隐变量的概率模型的估计,什么是隐变量呢?就是观测不到的变量,对于上面四川人和东北人的例子,对每一个身高而言,它来自四川还是东北,就是一个隐变量。

为什么要用EM,我们来具体考虑一下上面这个问题。如果使用极大似然估计——这是我们最开始最单纯的想法,那么我们需要极大化的似然函数应该是这个:

v2-ff5ec494fe010d29414bd4bc963877df_b.jpg

 然而我们并不知道p(x;θ)的表达式,有同学说我知道啊,不就是上面那个混个高斯模型?不就是参数多一点麽。

  仔细想想,GMM里的θ可是由四川人和东北人两部分组成哟,假如你要估计四川人的身高均值,直接用GMM做似然函数,会把四川人和东北人全考虑进去,显然不合适。

  另一个想法是考虑隐变量,如果我们已经知道哪些样本来自四川,哪些样本来自东北,那就好了。用Z=0或Z=1标记样本来自哪个总体,则Z就是隐变量,需要最大化的似然函数就变为:

v2-ac8fa2a457204c1a89f18cbb272dfbf5_b.jpg
如果知道样本的分类问题,我们就可以用指示函数Z来把分布分开求似然函数

然而并没有卵用,因为隐变量确实不知道。要估计一个样本是来自四川还是东北,我们就要有模型参数,要估计模型参数,我们首先要知道一个样本是来自四川或东北的可能性...

  到底是鸡生蛋,还是蛋生鸡?

  不闹了,我们的方法是假设。首先假设一个模型参数θ,然后每个样本来自四川/东北的概率p(zi)就能算出来了,p(xi,zi)=p(xi|zi)p(zi),而x|z=0服从四川人分布,x|z=1服从东北人分布,所以似然函数可以写成含有θ的函数,极大化它我们可以得到一个新的θ。新的θ因为考虑了样本来自哪个分布,会比原来的更能反应数据规律。有了这个更好的θ我们再对每个样本重新计算它来自四川和东北的概率,用更好的θ算出来的概率会更准确,有了更准确的信息,我们可以继续像上面一样估计θ,自然而然这次得到的θ会比上一次更棒,如此蒸蒸日上,直到收敛(参数变动不明显了),理论上,EM算法就说完了。

  然而事情并没有这么简单,上面的思想理论上可行,实践起来不成。主要是因为似然函数有“和的log”这一项,log里面是一个和的形式,一求导这画面不要太美,直接强来你要面对 “两个正态分布的概率密度函数相加”做分母,“两个正态分布分别求导再相加”做分子的分数形式。m个这玩意加起来令它等于0,要求出关于θ的解析解,你对自己的数学水平想的不要太高。

怎么办?先介绍一个不等式,叫Jensen不等式,是这样说的:

X是一个随机变量,f(X)是一个凸函数(二阶导数大或等于0),那么有:

v2-d1c1be695e2d4c41d22aa67617ca8d99_b.jpg
当且仅当X是常数的时候等号成立  如果f(X)是凹函数,不等号反向

半路杀出一个Jensen不等式,要用它解决上面的困境也是应有之义,不然说它做什么。直接最大化似然函数做不到,那么如果我们能找到似然函数的一个的下界一直优化它,并保证每次迭代能够使总的似然函数一直增大,其实也是一样的。怎么说?画个图你就明白了:

v2-51606ed8eb8af98c8d6f7a1a4a234652_b.jpg

v2-db0aeacd51f7b7232f79820f747b8700_b.jpg
要求等于c时,是为了紫色曲线和红色曲线有交点,也就是为了“紧”。当得到紫色曲线后,我们要在紫色曲线上做优化,就不能一直赖在交点上了。否则会出现log(p(x,z|θ)/Q)一直等于logc的情况,这样把log都约掉了也就推不出标准公式了。

横坐标是参数,纵坐标是似然函数,首先我们初始化一个θ1,根据它求似然函数一个紧的下界,也就是图中第一条黑短线,黑短线上的值虽然都小于似然函数的值,但至少有一点可以满足等号(所以称为紧下界),最大化小黑短线我们就hit到至少与似然函数刚好相等的位置,对应的横坐标就是我们的新的θ2,如此进行,只要保证随着θ的更新,每次最大化的小黑短线值都比上次的更大,那么算法收敛,最后就能最大化到似然函数的极大值处。

  构造这个小黑短线,就要靠Jensen不等式。注意我们这里的log函数是个凹函数,所以我们使用的Jensen不等式的凹函数版本。根据Jensen函数,需要把log里面的东西写成一个数学期望的形式,注意到log里的和是关于隐变量Z的和,于是自然而然,这个数学期望一定是和Z有关,如果设Q(z)是Z的分布函数,那么可以这样构造:

v2-83dea371b77660df897e8ea3ac0df340_b.jpg

5. GMM-EM演算法流程:

假设给定样本集合{x1,x2,…,xn}

1.初始化参数

设定K个数,t(第t次计算)设定为0

v2-8c6927dc41c014f4d675a3200f7fa9cc_b.jpg

2. E-step:

假设所有参数(Θ(t))已知,计算:

v2-5a7d70e17bbe443857cfd4154035cce7_b.jpg

3. M-step:
利用MLE去估计q (Θ(t),Θ(t+1))的参数Θ(t+1):

v2-042e7121113663e5db408e067e75bf1f_b.jpg

参数估计出来为:

v2-8103efdf56fc24ef821f2a0e19e6d0b6_b.jpg

4. 重复2~3,直到满足收敛条件(参数收敛或是极大似然函数收敛)

v2-99ec57bf121743cd9c6c7fd979711832_b.jpg
GMM example: simple data set: Full Covariance

更多详情:

机器学习无监督算法|高斯混合模型(GMM)的来龙去脉,看不懂来找我!当场推导​mp.weixin.qq.com
v2-08805a5569542dd358a0457f8ae3a08b_180x120.jpg

参考国外高赞文章:机器学习无监督算法|高斯混合模型(GMM)的来龙去脉,看不懂来找我!当场推导参考国外高赞文章:

Gaussian Mixture Modelling (GMM)

https://towardsdatascience.com/gaussian-mixture-modelling-gmm-833c88587c7f​towardsdatascience.com

GMM-EM详细推导

https://medium.com/@chih.sheng.huang821/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-em-%E6%BC%94%E7%AE%97%E6%B3%95-expectation-maximization-algorithm-em-%E9%AB%98%E6%96%AF%E6%B7%B7%E5%90%88%E6%A8%A1%E5%9E%8B-gaussian-mixture-model-gmm-%E5%92%8Cgmm-em%E8%A9%B3%E7%B4%B0%E6%8E%A8%E5%B0%8E-c6f634410483​medium.com

语音识别-GMM,HMM

https://medium.com/@jonathan_hui/speech-recognition-gmm-hmm-8bb5eff8b196​medium.com

解锁 Medium 会员文章的浏览器插件:

https://manojvivek.github.io/medium-unlimited/​manojvivek.github.io

Link to full code: https://www.kaggle.com/dfoly1/gaussian-mixture-model

Source: Christopher M. Bishop 2006, Pattern Recognition and Machine Learning

Source: Bayesian Methods for Machine Learning: Coursera course

Source: Python for Data Science Handbook

v2-99d69109a4aae82afc575ae7139af0ee_b.jpg
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值