期望最大化

首页 编程分享 EXPERIENCE 正文

anonymous 转载 编程分享 2021-01-03 23:44:08

简介 ...



在本篇文章中将解释高斯混合模型(GMM)的关键部分背后的数学原理,即期望最大化(EM),以及如何将这些概念转换为Python。这个故事的重点是EM或M-Step。

注意:这不是有关端到端GMM算法的全面说明。要进行更深入的研究,请参阅我们以前翻译的文章。

期望最大化

GMM中有一系列步骤,通常称为“期望最大化”,简称“ EM”。要解释如何理解EM数学,请首先考虑您可能要处理的模型。

样本由图形上的点表示。这些点形成一些不同的斑点。每个斑点都有一个中心,每个点都与每个斑点的中心相距一定距离。给定GMM模型数据,目标通常是根据最接近的中心按其样本点标记其他样本。有些点距离一个或多个中心几乎相等,因此,我们希望基于某种概率来标记点。

EM用到的符号

要学习如何学习机器学习算法,您一生中需要一些希腊语。因为算法中符号基本上都是以希腊文表示的。尽管可能会想掩盖基础知识,但是对单个希腊字母的简单掌握可以帮助您理解算法中的重要概念。

算法可能会令人生畏且令人困惑。例如,乍看之下,高度集中的希腊符号有时足以使人窒息。但是不要浪费时间,我们在这里只要考虑现在要使用的符号即可

除此以外,我们也有一些英文字母在EM中代表GMM的意思。通常,英文字母围绕着希腊字母,就像小领航鱼围着大鲨鱼游动。就像小鱼一样,英文字母有一个重要的作用,它为如何解释算法提供了指导。

M-Step的数学解释

现在我们已经隔离了方程的每个组成部分,让我们通过检查M-Step,将它们组合成一些常用的数学短语,这些短语对于用EM语言进行对话很重要。

簇,高斯,字母J或K,有时还包括C:通常都是同一件事-如果我们有3个簇,那么您可能会听到“每个高斯”,“每个j”,“每个高斯j”或 “对于每个K组件”-这些都是谈论相同3个簇的不同方法。在数据方面,我们可以绘制(x,y)样本/点的数组,并查看它们如何形成簇。

 Id a 2D array of samples [features and targets] 
 Id the last column, targets [0,1,2], represent three clusters
 Id the first two columns are the points that make up our features
 Id each feature is just a set of points (x,y) in 2D space
 Id each row is a sample and cluster label
 
 [[-7.72642091 -8.39495682 2. ]
  [ 5.45339605 0.74230537 1. ]
  [-2.97867201 9.55684617 0. ]
  [ 6.04267315 0.57131862 1. ] ...]

软分类(Soft Assignments),概率,响应度(Responsibility):聚类的一个主要思想是我们希望为每个样本找到一个数字,以告诉我们样本属于哪个聚类。在GMM中,对于我们评估的每个样本,我们可能会返回代表“每个高斯j的响应度”,每个“软分类”或每个“概率”的值。

这些阶段通常都是关于同一件事的,但响应度与概率之间存在关键区别。

 Id an array of assignment data about the 2D array of samples
 Id each column represents a cluster
 Id each row represents data about each sample
 Id in each row, we have the probability that a sample belongs to one of three clusters - it adds up to 1 (as it should)
 Id but the sum of each column is a big number number (not 1)
 
 print(assignments)
 Id sample output: an array of assignment data
 [[1.00000000e+000 2.82033618e-118 1.13001412e-070]
  [9.21706438e-074 1.00000000e+000 3.98146031e-029]
  [4.40884339e-099 5.66602768e-053 1.00000000e+000]...]
 
  print(np.sum(assignments[0])
 Id sample output: the sum across each row is 1
 1
 
 print(np.sum(assignments[:, 0])
 Id sample output: the sum in each col is a big number that varies
 Id Little Gamma: the really small numbers in each column
 Id Big Gamma: the sum of each column, or 33.0 in this sample33.0

大写伽玛,小写伽玛,J,N,x和i:EM中的核心任务是为每个群集优化三组参数,或者“对于每个j,优化w(


Tags:


本篇评论 —— 揽流光,涤眉霜,清露烈酒一口话苍茫。


    声明:参照站内规则,不文明言论将会删除,谢谢合作。


      最新评论




ABOUT ME

Blogger:袅袅牧童 | Arkin

Ido:PHP攻城狮

WeChat:nnmutong

Email:nnmutong@icloud.com

标签云