EM(Expectation Maximum,期望最大化)是一种迭代算法,用于对含有隐变量概率参数模型的极大似然估计或极大后验估计。模型参数的每一次迭代,含有隐变量概率参数模型的似然函数都会增加,当似然函数不再增加或增加的值小于设置的阈值时,迭代结束。

EM算法在机器学习和计算机视觉的数据聚类领域有广泛的应用,只要是涉及到后验概率的应用,我们都可以考虑用EM算法去解决问题。EM算法更像是一种数值分析方法,正确理解了EM算法,会增强你机器学习的自学能力,也能让你对机器学习算法有新的认识,本文详细总结了EM算法原理。

目录

1. 只含有观测变量的模型估计

2. 含有观测变量和未观测变量的模型参数估计

3. EM算法流程

4. 抛硬币问题举例

5. 高斯混合模型的参数估计

6. 聚类蕴含的EM算法思想

7. 小结

1. 只含有观测变量的模型估计

我们首先考虑比较简单的情况,即模型只含有观测变量不含有隐藏变量,如何估计模型的参数?我们用逻辑斯蒂回归模型(logistic regression model)来解释这一过程。

假设数据集有d维的特征向量X和相应的目标向量Y,其中。下图表示逻辑斯蒂回归模型:

由之前的文章介绍,逻辑斯蒂回归模型的目标预测概率是S型函数计算得到,定义为:

,则目标预测变量为1;反之,目标预测变量为0。其中w是待估计的模型参数向量。

机器学习模型的核心问题是如何通过观测变量来构建模型参数w,最大似然方法是使观测数据的概率最大化,下面介绍用最大似然方法(Maximum Likelihood Approach)求解模型参数w。

假设数据集,样本数据,模型参数

观测数据的对数似然函数可写为:

由对数性质可知,上式等价于:

式(1)代入式(2),得:

其中:

由于(3)式是各个样本的和且模型参数间并无耦合,因此用类似梯度上升的迭代优化算法去求解模型参数w。

因为:

由式(4)(5)(6)可得:

因此,模型参数w的更新方程为:

其中η是学习率。

根据梯度更新方程(7)迭代参数w,似然函数L(w)逐渐增加,当似然函数收敛时,模型参数w不再更新,这种参数估计方法称为最大似然估计。

2.含有观测变量和因变量的模型参数估计

上节介绍当模型只含有观测变量时,我们用极大似然估计方法计算模型参数w。但是当模型含有隐变量或潜在变量(latent)时,是否可以用极大似然估计方法去估计模型参数,下面我们讨论这一问题:

假设V是观测变量,Z是隐变量,θ是模型参数,我们考虑用极大似然估计方法去计算模型参数:

由于隐变量在log内部求和,造成不同参数间相互耦合,因此用极大似然方法估计模型参数非常难。(8)式不能估计模型参数的主要原因是隐变量,若隐变量Z已知,完全数据的似然函数为,为了书写方便,观测变量V,Y统一用V表示,即

那么问题来了,如何通过已观测变量估计隐变量Z的值?这个时候我们想到了后验概率:

EM算法最大化完全数据在隐变量分布的对数似然函数期望,得到模型参数θ即:

现在我们总结EM算法的流程:

1)初始化模型参数

2)E步估计隐变量的后验概率分布:

3)M步估计模型参数

4)当模型参数或对数似然函数收敛时,迭代结束;反之,返回第(2)步,继续迭代。

3.EM算法的更深层分析

上节我们介绍了EM算法的模型参数估计过程,相信大家会有个疑问:为什么最大化下式来构建模型参数。

下面我给大家解释这一算法的推导过程以及其中蕴含的含义:

假设隐藏变量的理论分布为,观测数据的对数似然函数可以分解为下式:

由贝叶斯理论可知:

(9)式得:

分子分母除q(Z),得:

(10)式第二项表示相对熵,含义为隐变量后验概率分布与理论概率分布的差异,相对熵的一个性质是:

根据(10)式我们推断:

因此观测数据的对数似然函数的下界为,如果我们能够极大化这个下界,那么同时也极大化了可观测数据的对数似然函数。

当相对熵等于0时,即:

由上式得到隐藏变量的后验概率分布与理论分布相等,即:

进而(11)式等号成立,即:

取得上界,现在我们需要最大化的上界,即:

当相对熵等于0时,式(12)代入式(13)得到的上界为:

式(15)的第二项对应隐变量的熵,可看成是常数,因此最大化(15)式等价于最大化,其中:

最大化(16)式对应上节介绍EM算法的M步。

重新整理算法EM的流程:

1)初始化模型参数为

2)当等式(12)成立时,取得上界,最大化等价于最大化下式:

3)最大化,返回参数

4)当收敛时,迭代结束;否则,算法返回到第(2)步继续迭代;

为了大家清晰理解这一算法流程,下面用图形表示EM算法的含义。

E步:模型参数是时,由(13)式可知,用黑色实心点标记;

M步:最大化,返回参数,用红色实心点标记;

,重复E步和M步,当收敛时,迭代结束。

4.抛硬币问题举例

我们有两种硬币A和B,选择硬币A和硬币B的概率分别为π和(1-π),硬币A和硬币B正面向上的概率分别为p和q,假设观测变量为,1,0表示正面和反面,i表示硬币抛掷次数;隐变量,1,0表示选择硬币A和硬币B进行抛掷。

问题:硬币共抛掷n次,观测变量已知的情况下求模型参数的更新表达式。

根据EM算法,完全数据的对数似然函数的期望:

其中表示观测数据来自掷硬币A的概率,用表示:

最大化,得到如下更新表达式:

现在我们知道了模型参数θ的更新方程,假设共抛掷硬币10次,观测结果如下:1,1,0,1,0,0,1,0,1,1。

初始化模型参数为:

由式(18)得:

利用模型参数更新得:

由式(18),得:

模型参数继续更新:

因此,收敛时,最终的模型参数为:

表示选择硬币A和硬币B的概率是一样的,如果模型参数的初始值不同,得到的最终模型参数也可能不同,模型参数的初始化和先验经验有关。

5.高斯混合模型的参数估计

一维变量的高斯分布:

其中u和σ分别表示均值和标准差。

n维变量的高斯分布:

其中u是n维均值向量,是n×n的协方差矩阵。

n维变量的混合高斯分布:

该分布共由k个混合成分组成,每个混合成分对应一个高斯分布,其中是第k个高斯混合成分的均值和协方差。

是归一化混合系数,含义为选择第k个高斯混合成分的概率,满足以下条件:

下图为k=3的高斯混合成分的概率分布图(红色):

假设由高斯混合分布生成的观测数据,其对数似然函数:

我们用EM算法估计模型参数,其中隐变量对应模型的高斯混合成分,即对于给定的数据x,计算该数据属于第k个高斯混合分布生成的后验概率,记为

根据贝叶斯定律:

最大化式(19),令

由式(20)(21)(22)(23)可得模型参数:

小结EM算法构建高斯混合模型的流程

1)初始化高斯混合模型的均值,协方差和混合系数,计算完全数据的对数似然值(式(19));

2)E步:使用当前的参数值,通过下式计算均值:

表示观测数据x属于第k个高斯混合成分的后验概率;

3)M步:最大化对数似然函数,得到式(24)(25)(26)的模型更新参数;

4)根据更新的参数值,重新计算完全数据的对数似然函数:

若收敛,则得到最终的模型参数值;反之,回到算法第(2)步继续迭代。

6.聚类蕴含的EM算法思想

我们可以把聚类理解为:计算观测数据x属于不同簇类的后验概率,记为,其中j是簇类个数(j=1,2,...,K),观测数据x所属的簇标记由如下确定:

我们可以用EM算法计算每个样本由不同高斯混合成分生成的后验概率,步骤可参考上一节。

【例】 如下的观测数据,假设簇类个数K=2,初始化每个高斯混合参数得到,根据式(27)得到聚类结果:

根据上一节介绍的EM算法步骤,迭代1次后得到,根据式(27)得到聚类结果:

迭代5次后得到,根据式(27)得到聚类结果:

迭代20次后的,根据式(27)得到聚类结果:

k均值聚类是高斯混合聚类的特例,k均值假设各个维是相互独立的,其算法过程也可用EM思想去理解:

1)初始化簇类中心;2)E步:通过簇类中心计算每个样本所属簇类的后验概率;3)M步:最大化当前观测数据的对数似然函数,更新簇类中心4)当观测数据的对数似然函数不再增加时,迭代结束;反之,返回(2)步继续迭代;7.小结

EM算法在各领域应用极广,运用了后验概率,极大似然方法和迭代思想构建最优模型参数,希望通过这篇文章能让读者对EM算法不再陌生。

推荐阅读:

博士论文工作的基本特征和创新能力评价存在的挑战

不是每次都能这么有惊无险…

一首可靠性工程哲理的古老诗歌—执事的杰作,神奇的“单马马车”

遗传算法解决带时间窗的车辆路径规划问题(附java代码及详细注释)

分治法(Divide-and-Conquer Algorithm)经典例子分析

em算法详细例子及推导_EM算法入门教程相关推荐

  1. em算法详细例子及推导_EM算法详解(例子+推导)

    一. 例子讲解 假设有两个硬币1和2,随机抛出后出现正面概率为 . .每次取一枚银币,连续抛5次,共抛5轮,数据如下: 硬币1-->(3正2反):硬币2-->(2正3反):硬币3--> ...

  2. em算法详细例子及推导_outlier analysis 补充——EM算法

    August:人人都懂EM算法​zhuanlan.zhihu.com 全网最容易理解最直观最形象的em算法的解释文. 首先,EM和极大似然法一样需要提前假设数据的分布符合XX分布情况,EM算法和极大似 ...

  3. em算法详细例子及推导_第九章-EM算法

    从第九章开始,学习总结的东西有所不同了,第2-8章是分类问题,都属于监督学习,第9章EM算法是非监督学习.本文主要是总结EM算法的应用以及处理问题的过程和原理推导. EM算法 EM算法(期望极大算法 ...

  4. em算法怎么对应原有分类_EM算法

    判别模型求的是条件概率p(y|x), 生成模型求的是联合概率p(x,y)  .即 = p(x|y) ? p(y) 常见的判别模型有线性回归.对数回归.线性判别分析.支持向量机.boosting.条件 ...

  5. em算法怎么对应原有分类_EM算法原理

    转自:https://www.cnblogs.com/Gabby/p/5344658.html 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知 ...

  6. 蒙特卡洛树搜索的主要流程有哪些_「详细原理」蒙特卡洛树搜索入门教程

    本文是对 Monte Carlo Tree Search – beginners guide 这篇文章的文章大体翻译,以及对其代码的解释. 1 引言 蒙特卡洛树搜索在2006年被Rémi Coulom ...

  7. flexpaper java 例子_Flexpaper二次开发入门教程》(十) Flexpaper简单使用-第一个Flexpaper例子...

    4. Flexpaper简单使用 通过上面三章的内容,大家对Flexpaper.SWFTools应该有大概的了解了,SWF文件也已经生成了,我们开始进入Flexpaper的使用的介绍. 本章中只演示F ...

  8. python操作word详细操作_Python操作Word的入门教程

    Python操作Word的入门教程 前言 今天来介绍下,如何用 Python 来操作 Word. 再来介绍操作 Word 之前,先来说一个最近看书学到的法则,即 3W 法则. 3W:3W分别指 Wha ...

  9. 超级详细的 VirtualBox 虚拟机安装 及入门教程

    一.前言 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统.在实体计算机中能够完成的工作在虚拟机中都能够实现. 虚拟机是在一些开 ...

  10. 一个例子入坑布谷鸟算法(附完整py代码)

    布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由 布谷鸟算法思想简介 更新位置的方式 莱维飞行 局部随机行走 抛出个 ...

最新文章

  1. 中国LED产业园区现状模式及投资策略分析报告2022-2028年版
  2. WebSocket——stomp连接错误[Whoops! Lost connection to XXX]解决方案
  3. poj 2914(stoer_wanger算法求全局最小割)
  4. xp系统怎样添加桌面计算机名,教你win10系统电脑桌面怎么添加日历
  5. oracle数据库主键消失,oracle数据库提示找不到主键
  6. 在探索的飞鸽传书科学的道路上
  7. form 表单添加请求头_Golang GinWeb框架5-绑定多种请求类型的数据
  8. 列线图计算每个患者得分,并生成Roc曲线。
  9. DNS中A记录和CNAME的区别 什么是CNAME
  10. 有向图和无向图转化为邻接表后链表中结点个数
  11. 算法导论 9.3-7 设计一个O(n)时间的算法,对于一个给定的包含n个互异元素的集合S和一个正整数k≤n,该算法能够确定S中最接近中位数的k个元素。
  12. 诚之和:太平鸟难渡“抄袭劫”?
  13. 基于ssm+mysql的web助学金申请系统(源文件)、javaweb实现奖学金申请设计过程
  14. gird布局(网格布局)
  15. docker:配置 Docker 加速器
  16. 少吃柿子、山楂、黑枣,警惕鞣酸
  17. Word 批注的使用
  18. Springboot毕设项目篮球文化商铺系统的设计与实现t1klm(java+VUE+Mybatis+Maven+Mysql)
  19. 毕业设计记录 day(4)
  20. Flutter MD5加密工具类

热门文章

  1. 思维的碰撞|小博变换偶遇深度学习
  2. 科技部正式发文:破除“唯论文”不良导向;网友:靠水论文拿奖励的人不开心了...
  3. 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,
  4. UVaOJ 10328 Coin Toss
  5. Linux服务器配置多台虚拟主机
  6. HDU Today--hdu2112
  7. 近年来最流行网络词汇及论坛用语
  8. 数据库设计方法、规范和技巧
  9. 【GDB调试学习笔记】GDB查看运行时数据
  10. 一筐鸡蛋筐拿鸡蛋的问题