问题的提出

   --> Figure_1

假设我们有一堆如图(b)所示的数据集X,它们由3个独立的高斯分布生成,样本在空间中存在交叠,上帝知道它的本来面目(如图(a)所示),一个自然的问题是:能否根据数据集X,估计出生成它们的分布的参数呢?答案是肯定的,下面来分析如何求解模型参数。

混合高斯模型

我们假设X的生成分布为:

                   (1)

其中,表示混合系数,且关于k求和结果为1,表示均值为、协方差为的高斯分布。我们可以很容易地根据该假设写出数据集的对数似然函数:

      (2)

然后,根据MLE的求解流程,求解模型参数的时候,发现ln or log符号内包含一堆东西,这样这些耦合在一起,求解起来往往比较费劲(需要说明的是,(2)事实上也是可以直接用来求解模型参数的))。我们来复盘一下这个问题,如果给我们的数据集是(a)所示的完全数据集{X,Z},每个样本x都存在如图F2(a)所示的指示变量z,此时数据集的形态如图F1(a)所示,那么我们可以把各个分布的数据拿来估计对应分布的参数,因此参数估计的难度瞬间减低。一个很自然的问题:如果我们在估计模型参数前知道各个样本对应的指示变量,那么问题不就可以简化许多?

引入隐变量Z

a).        b).     --> Figure_2

基于上述思想,我们很自然地想到引入中间变量来辅助我们求解模型参数。具体地:对于任意的样本,引入隐变量,其中(即one-hot编码,只有一个分量值为1,其它分量值为0),它表示样本是由分布生成。记模型参数为,我们假设隐变量的先验分布(prior)为:

                     (3)

需要指出这里隐变量的分布仅仅与模型参数有关,而与样本无关。

相应地,样本的似然函数为:

     (4)

当我们得到后,由条件概率公式可得完备数据的似然函数:

至此,整个完备数据集{X,Z}似然函数为:

对相应的对数似然函数关于隐变量Z取期望可得:

          (5)

行文至此,有一个非常自然的问题:为什么要对隐变量Z取期望?因为对于,我们往往无法给出其exactly的形式(one-hot编码格式),只能通过概率的形式来表述其分量。读者可以类比一下Mnist数据集的分类情形,对于一个特定的输入图片,它所对应groundtruth只有1个,但是我们模型做分类的时候,通过softmax给出一个score_list。

下面给出计算公式:

     (6)

一个很自然的问题是:计算期望时为什么使用的是的后验分布P(Z|X,),而不是如(3)所示的它的先验分布呢?注意,计算期望时,由于隐变量已经‘看过’数据了,因此为了能够更加精准地刻画隐变量自身的分布,它需要根据已经看过的数据X、模型参数来修正原来的先验分布P(Z|)。(6)式物理意义跃然纸上,这里不在叙述,为了方便符号的统一,后续我们用来表示。

混合高斯分布的解

相对于(2),利用(5)来求解模型参数则变得非常简单。需要指出,在上述的叙述中有一个隐含条件我们一直没有着重强调:,在求解混合系数时需要加入”和为1“的约束条件。这里,我们给出(5)对应的Lagrange函数:

对上式关于各个变量求偏导、置零,即可解出对应的表达式。下面给出求解得到的结果:

,其中,                    (7)

                                (8)

       (9)

基于以上的叙述,我们给出如下求解混合高斯模型参数的算法:

EM算法——基于bayes视角

一般地,对于完备数据集{X,Z},我们有:

         (10)

其中表示表示指示变量(隐变量)的后验分布。对(10)变形可得:

   (11)

在(11)中我们引入了指示变量的先验分布,对(11)等号两边同时乘以,并关于先验分布积分(或求和),可得:

            (12)

注意,这里的一般被称为Q-function,KL(q||p)表示KL-散度,它用于度量两个分布之间的差异性,两个分布如果诧异越大,它的取值越大;反之,则越小,当且仅当p=q时,KL(q||p) = 0.

在实际应用中,我们遇到的数据一般是不完备的数据集{X},然后我们基于对数据分布的假设需要根据实际数据来求解:,但直接求解往往比较复杂,于是我们通过引入中间变量(隐变量)Z来简化求解问题。具体地,对于(12)有:

            (13)

我们可以退而且其次,来优化的下界,这样通过优化下界函数来间接地优化原始问题

a).    b).          c).    -->Figure 3

具体的优化过程可以结合Figure3来叙述。首先,对于固定的,(12)可由Figure-3a阐述,此时红线表示,为了使下界函数达到最大,我们必须使得KL(q||p)达到最小,因此取;当我们取时,对于固定的,下界函数,如Figure3b所示;然后,在固定隐变量的分布的情形下关于模型参数优化下界函数,得到,似然函数下的取值由Figure3c中红色实线表示,此时对于KL(q||p)而言,由于,故有KL(q||p) >= 0。因此,为了在新的参数下使得下界函数达到最大,我们需要将隐变量的分布更新为。接着,再固定隐变量的分布,更新模型参数,……,直到达到算法终止条件。Figure4给出了似然函数在上述的交替迭代过程中的变化情况:

   --> Figure 4

最后,我们给出EM算法的一般流程:

MoG EM-Algorithm相关推荐

  1. 【转载】(EM算法)The EM Algorithm

    (EM算法)The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了. ...

  2. 第八讲:期望最大化算法(EM algorithm)

    在前面的若干讲义中,我们已经讲过了期望最大化算法(EM algorithm),使用场景是对一个高斯混合模型进行拟合(fitting a mixture of Gaussians).在本章里面,我们要给 ...

  3. 【the EM algorithm】自己动手,丰衣足食。

    1. 首先,用MATLAB生成符合双峰正态分布的随机数. r=0.5; mu1=50; sigma1=20; mu2=200; sigma2=20; x=zeros(10000,1); for i=1 ...

  4. (EM算法)The EM Algorithm

    EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了.在Mitchell的书中也提到EM可以用于贝叶 ...

  5. EM Algorithm

    (From yesterday to now, I have learning EM for 4 times, and each time I will gain some new ideas and ...

  6. EM算法(Expectation Maximization Algorithm)详解

    EM算法(Expectation Maximization Algorithm)详解 主要内容 EM算法简介 预备知识  极大似然估计 Jensen不等式 EM算法详解  问题描述 EM算法推导 EM ...

  7. 【ML】MoG与EM:从MoG到EM

    文章目录 MoG:高斯混合模型. Recap:监督学习情境. 无监督学习情境. EM in MoG. MoG:高斯混合模型. 考虑这样一个问题,给定一组无标签数据集 {x(1),x(2),..,x(m ...

  8. 【机器学习课程-华盛顿大学】:4 聚类和检索 4.4 MoG混合高斯模型编程测试

    1 k-means和MoG都容易出现局部最优解 2.公式: 3.自己实现EM算法 (1)主函数: def EM(data, init_means, init_covariances, init_wei ...

  9. EM算法(Expectation Maximization)期望最大化算法

    原文:EM(期望最大化)算法初步认识 - 大数据和AI躺过的坑 - 博客园 https://www.cnblogs.com/zlslch/p/6965374.html 机器学习十大算法之一:EM算法( ...

  10. 人人都能看懂的EM算法推导

    作者丨August@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/36331115 编辑丨极市平台 估计有很多入门机器学习的同学在看到EM算法的时候会有种种疑惑:EM ...

最新文章

  1. HBase shell 命令执行
  2. 对比Android和iPhone的优缺点
  3. linux 设备驱动程序 过滤,Linux驱动发开,usb设备的probe全过程
  4. 机房收费系统-- MDI子窗体显示技巧(续vb.net版)
  5. IOC注解注入View
  6. git status 命令总结 —— Git 学习笔记 06
  7. 程序显示文本框_C++入门到精通(二),编写我们自己的Hello World程序
  8. MPAndroidChart——饼图
  9. Linux问题分析与性能优化
  10. python中order函数_order by排序
  11. JavaScript ES2021 新特性解析
  12. 深交所与工信部签署优质中小企业上市培育战略合作协议
  13. 【Flink】SASL encryption trust check: localHostTrusted = false, remoteHostT
  14. 用screenfetch显示带有酷炫Linux标志的基本硬件信息
  15. PAT 1012 数字分类 (20 分)(C语言)
  16. 星际2新智能体开源:单机并行能力强,适应环境广,个人可训练
  17. Android dex、odex、oat、vdex、art区别
  18. 甘特图 知乎_哪一款甘特图软件最好用?
  19. windows 7 静默 安装 软件
  20. 毕业设计之 ---- 基于JAVA WEB的网上购物系统的设计与实现

热门文章

  1. Linux下笔记本禁用触摸板
  2. NLP数据预处理与词嵌入
  3. PyTorch学习系列教程:构建一个深度学习模型需要哪几步?
  4. UE5——AI追逐(蓝图、行为树)
  5. SSH远程连接服务(五)
  6. 网易2018校园招聘编程题真题集合3字符串碎片
  7. NASA顶级程序员编程十大原则
  8. html页面插件 复制,ReadabilityCopy - 一键复制网页内容插件
  9. SPEA 功率半导体测试仪- DOT800T简介
  10. 在基于ZYNQ MPSOC XCZU3CG自定义单板上运行DPU例程