高斯混合模型(Mixtures of Gaussians)和 EM算法

一、全概率公式与贝叶斯公式

这两个公式是十分十分重要的公式,在概率统计中用的非常多。这里的EM思想,也是用到了 这两个公式的思想。关于这两个公式,这篇博客讲的很细致 理解全概率公式和贝叶斯公式

1.1 、全概率公式

1.1.1 、从网页中完备事件组看起,一直到“村里有东西被偷”的概率,这个用到了全概率公式。

直接求“村里被偷的概率”不好求,而小偷活动的概率,活动以后得手的概率已经知道,所以可以由上面这些,推出结果

但是,这个例子确实用了全概率公式,但是 ,假设的前提并不准确:
按照上述,完备事件组中的Bi就是,小偷A偷了东西,小偷B偷了东西,小偷C偷了东西,这三个事件两两互斥,在这里没体现出来

1.2、贝叶斯公式

在全概率公式中,如果将A看成是“结果”,Bi看成是导致结果发生的诸多“原因”之一,那么全概率公式就是一个“原因推结果”的过程。但贝叶斯公式却恰恰相反。贝叶斯公式中,我们是知道结果AA已经发生了,所要做的是反过来研究造成结果发生的原因,是XX原因造成的可能性有多大,即“结果推原因”。

仍然用“小偷”这个例子 。“村子被偷”作为结果,“有人偷”作为原因。

  • 全概率公式:因为直接求“村子被偷”不好求,所以这里把“村子被偷”作为结果,然后“有人偷”作为原因,利用全概率公式,可以求得。

  • 贝叶斯公式:假设,现在村子已经被偷了,我想求得 是谁偷的概率
    即,已知结果,求原因。可以利用贝叶斯公式。

注意:确定了“完备事件组”的前提以后,已知P(Bi)和P(A|Bi)是就可以求出全概率公式的结果以及贝叶斯公式的结果的

  • 全概率公式:已知P(Bi)和P(A|Bi),求P(A)。(已知原因,求结果)
    P(A)=sigma P(A|Bi)P(Bi)
  • 贝叶斯公式:已知P(Bi)和P(A|Bi),求P(Bi|A)。(已知结果A,求原因)
    ----1、先利用全概率公式求出P(A)。
    P(A)=sigma P(A|Bi)P(Bi)
    ----2、利用贝叶斯公式求出P(Bi|A)

-------------------------------------------------------------------------------
比如,上面小偷的问题,已经知道昨天村子丢东西了,求是A偷的概率。
(典型的已知结果,求原因)。就是求P(B小偷A|A)。贝叶斯公式。

-------------------------------------------------------------------------------

带菌的问题

带菌率低到只有0.03,甚至比误检率还要低。这句话也挺有意思,也就是说明,可能检查10000个人,有100个误检了,50个呈阳性,但是带菌的真正有30个,所以若这个人呈阳性,是很可能被误检了的。有时候相信数字是正确的选择

关于男女生分类的这一题,可以看出:

  • 1、无论怎么分类,最后都是需要预测的
  • 2、同样一个问题,有时可以用判别模型, 也可以用生成模型。

已知特征+已知特征对应的类别+已知分布(或假设出分布) ==>可以用生成模型
已知特征+已知特征对应的类别 ==> 可以用判别模型

从上面也可以看出,生成模型的条件比较苛刻,所以,一旦能用生成模型,就一定能用判别模型。(比如这个问题以及垃圾邮件分类问题,可以用朴素贝叶斯,就可以用SVM。)

  • 3、当然也可以看出,对于这么小的样本,真的是用朴素贝叶斯比较好,也比较合理。更加验证了,生成模型在小样本上的表现好的优点。

-----------------------------------------------------------------————

而在机器学习中应用贝叶斯公式的时候,就不要纠结什么因果了,纠结特征是因还是果没有什么用。上面提出公式,用因果来分析,只是因为便于理解和记忆,实际上, 也就是由a推出b,那么b能推出a的关系。

也就是,在高斯混合模型中(GMM),E步,已知P(z),P(x|z),求P(z|x)。
由上面可知,直接利用贝叶斯公式就可以。不用纠结谁是因谁是果,没必要。

P(x|z)这个的意思,我们认为此时(在选定z的条件下)的x服从多值高斯分布。

二、与K-means的比较

因为突然转到概率上的参数,有点懵,所以这里准备通过让混合高斯模型和上篇文章所讲的K-means聚类联系起来,分析相同点与不同点,来分析此模型。

  • 1、与与k-means的硬指定不同,我们首先认为隐含类别标签Z(i) 是满足一定的概率分布的。
    不太可能说,1000个样例正好平均分成10类,每一类100个。所以,我们认为Z(i)不是符合均匀分布,在这里,我们认为Z(i)满足多项式分布。 (个人认为并不是满足传统的多项式分布的,因为正经的多项式分布,应该是掷骰子20次,1-6个数字出现为X=[2,4,5,6,0,3]的概率,这个X才是随机变量,有66种可能。)
    这里可能是类似于讲义上的写的笔记的种类分布,而Z(i)=j 意味着Z向量的第j个数为1,其余的zi都为0 。于是,Z向量也只能有K个值,每个值对应着一个类的概率Φ。于是可以近似的写成Z(i)=j 。。。先这么理解着吧。

  • 2、因为这里的类别标签Z(i)是用概率表示的,所以,没法用K-means一样的方法去判别样例x^(i)距离那个类的质心的坐标最近。
    这里通过概率联系起来,因为都是概率,所以可以在后面用极大似然估计,联系起来。这里我们认为x(i)服从多值高斯分布(n个特征,每个特征服从一个高斯分布)。
    而判断样例x(i)属于哪一个类,通过后验概率计算出p(zi|xi)的值,可以认为,属于概率大的zi的那一类。

注意:

  • 3、混合高斯模型不同于K-means的硬指定:在每次循环中指定每个样例属于某个类别(距离最小的那个质心)。
    混合高斯模型属于软指定。即:除了最最开始的时候,(这一点倒类似于k-means一开始的时候),先随机为每个样例指定其属于哪个类别z(i)
    在利用上面随机指定(已知类别, 利用有监督学习,用极大似然估计函数),求得三个参数 以后 ,在E步中,计算出每个样例xi属于每个类别zj的概率wj。并不强硬地说,xi属于概率最大的这一类,而是保留起来这些概率。留着在M步中,利用这些概率wj来计算出新的三个参数,如此循环下去。

类似于K-means中M步求每一类的质心的方法:面对每一个类,对属于这一类的所有样例的坐标求平均。即,共有100个样例,2个类。此时E步得到的第2类共有30个,M步中第二类的质心就是这三十个坐标相加再除以30.

混合高斯模型因为是采用了软指定,所以在E步中,每个样例都有对应的k个类。所以相比于K-means,计算量是它的K倍。伪代码如下:

for step to 收敛:
    E步:        
    for j in range(k):  
        for i in range(m):
              计算每个样例属于第j类的概率。

    M步:
    for j in range(k):  
          phi_j = 所有的(样例属于第j类的概率的)平均值
          miu_j = 所有的(样例属于第j类的概率 * 该样例的特征向量)/所有的(样例属于第j类的概率)
          sigma 同理

三、混合高斯模型(使用期望最大化(EM)算法来进行密度估计)

给定训练样本

隐含类别标签用z(i)表示,不同于K-means的硬指定,我们认为z(i)是满足一定的概率分布的(多项式分布)。

并且,我们认为在给定z(i)后,样例x(i)满足多值高斯分布,即:

由此可以得到联合分布:

联合分布,是为了在最开始的时候,指定每个样例所属类别以后,利用有监督学习的算法,利用极大似然估计方法估计参数。从而开始真正的EM。
-----------------------------------------------------------------------------------------------------

整个模型,可以描述为,对于每个样例x(i),是我们先从k个类别中按照多项式分布采样得到一个z(i),在确定了z(i)以后的条件下,按照多值高斯分布(每个特征都符合一个高斯分布)采样得到一个样例x(i)。因为有k个类别,所以相当于全概率公式中,把样本空间S分成了k个,所以需要k个相加,对应到p(x)的概率分布上就是

-----------------------------------------------------------------------------------------------

按照极大似然估计的思想,已知数据只有样例m个x(i),且符合一定分布,最极端理想的情况就是,参数就是正好出现m个样例x(i)的情况,联合分布的概率是1。

极大似然就是最大化这个联合分布,用来估计x(i)服从的分布参数。

对数化后如下:

这个式子的最大值是不能通过前面使用的求导数为0的方法解决的,因为求的结果不是close form。但是**假设我们知道了每个样例的类别标签z(i),那么上式可以简化为:

--------------------------------------------------------------------------------------------
注意,这一点也体现了EM算法的思想:开始可以凑合着过,反正后面的日子会越来越好。
解释:比如,K-means中一开始,就先随机指定了质心坐标。
这里 也是,因为对数化后的极大似然公式仍然难求,

  • 最开始:
    指定类别概率(或质心坐标):先随机给每个样例随机指定类别,这样初步算是有监督学习
  • 再然后估计出稍微好点的参数:
    此时类别已经确定,可以利用有监督学习的方法求导等于零得到分布的三个参数,总归是比不知道或者瞎蒙强啊
  • E步(期望达到目标,得到最好的分类):
    已经得到了稍微好点的参数:利用已经得到的参数再去计算类别概率(或者类别质心)。
  • M步(根据分好的类,最大化似然函数,估计出参数):
    已经得到类别,利用极大似然估计方法, 估计出参数。
  • 循环EM步直至收敛。
    --------------------------------------------------------------------------------------------

接着上面公式讲:

当知道z(i)后,最大似然个估计就类似于高斯判别模型了。所不同的是GDA中类别y是伯努利分布,而这里的z是多项式分布,还有这里的每个样例都有不同的协方差矩阵,而GDA中认为只有一个。

这时候再对三个参数进行求导,得到:

之前已经讲的很清楚了,EM思想,这里应用到GMM中,就是先随意 给每个样例猜测一个类别z(i),然后再用上面公式计算(有监督了)三个参数。然后就是,
期望达到目标(得到更好的类别的质心或概率分布)
最大化似然函数得到更好的参数估计

这里我们发现, 用Wj(i)代替了前面的φi,由前面简单的0/1值变成了概率。
这是因为,不同于GDA中每个样例对应的标签zi是确定的。这里除了最开始的一步,剩下的情况下,每个样例的类别zi是服从一个分布的,在对每个样例求所述类别是,都需要用贝叶斯公式才行。

E步中,已知各个参数分布,求每个样例x(i)对应的类别z(i)的概率。
即已知p(z),p(x|z),求p(z|x)(和一开始模型中,先采样z(i)以后在在此条件下采样x(i)形成对比),想到用贝叶斯公式。

Wj(i)计算公式如下:

对比K-means可以发现,这里使用了“软”指定,为每个样例分配的类别z(i)是有一定的概率的,同时计算量也变大了,每个样例i都要计算属于每一个类别j的概率。与K-means相同的是,结果仍然是局部最优解。对其他参数取不同的初始值进行多次计算不失为一种好方法。

接下来介绍一般化的EM推导过程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • 转载 http://blog.csdn.net/zouxy09 EM算法是一种迭代算法,用于含有隐含变量的概率模型...
    Jlan阅读 2,152评论 1 13
  • 半监督学习综述 引言 传统的机器学习技术一般都是只利用有标签样本集或者只利用无标签样本集合,只利用有标签样本的算法...
    不忘初心c阅读 6,443评论 1 20
  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 6,559评论 5 24
  • 两个月的时间,只不过弹指一挥。 似乎过了那么久,已经完全认不出自己, 但似乎又仍然是停留在原点的那个自己。 每天在...
    KolyaMa阅读 268评论 0 0
  • 屋外狂风大作,查了墨迹,提醒防范7-9级大风。想来两年前也是八月的样子,来魔都出差,一个人住酒店,半夜起来...
    存一寸光阴换一个世纪阅读 321评论 0 0