EM算法理论与推导
EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计)
从定义可知,该算法是用来估计参数的,这里约定参数为 。既然是迭代算法,那么肯定有一个初始值,记为
,然后再通过算法计算
通常,当模型的变量都是观测变量时,可以直接通过极大似然估计法,或者贝叶斯估计法估计模型参数。但是当模型包含隐变量时,就不能简单的使用这些估计方法
举个具体的栗子:
永远在你身后:Matplotlib输出动画实现K-means聚类过程可视化zhuanlan.zhihu.com
K-means算法中,除了给定的样本(也就是观测变量) 以及参数
(也就是那些个聚类的中心)之外,还包含一个隐变量(记为
),它是每个样本的所属类别
可以理解为,我们之所以对一批样本进行聚类,也是因为认为这些样本是有它们潜在的类别的,也就是说还有一个隐变量是我们没有(或者无法)观测到的
下面先给出EM算法的步骤公式,然后再对公式进行推导。假设在第 次迭代后参数的估计值为
,对于第
次迭代,分为两步
- E步,求期望:
关于的随机变量的函数的期望,公式在后面会给出
- M步,最大化:
其中, 称为
函数,是EM算法的核心。下面就来对公式进行推导
给定一组观测数据记为 ,以及参数
。因为
是独立同分布,所以有以下对数似然函数:
可以通过极大似然估计来求解最优参数,即:
但是由于隐变量的存在, 变为
注意:联合概率公式 P(XZ)=P(X|Z)P(Z)
这样直接求解就变得困难,一个办法是构造一个容易优化的——关于对数似然函数的——下界函数,通过不断的优化这个下界,迭代逼近最优参数。为了方便下面推导流畅,提前先贴几个公式
随机变量的数学期望
随机变量函数的数学期望。设 ,则
的期望为:
下面是具体的推导。首先引入隐变量 的概率分布
,满足
并且以下等式成立
两边同时取对数
同时求两边在 上的期望
因为 与
无关,所以求期望仍然不变:
然后将右边展开
由此得到对数似然函数的下界。并且当 ,上式可以取到等号,由相对熵的性质可知,相对熵为0,也就是
其中 是
的概率分布,但是因为无法观测
,所以
未知,可以假设其等于
,也就是
关于给定
与
的后验,且
是由初始值
一次次迭代计算而来,所以此处的
是迭代
次后的值
然后通过极大似然估计得到:
以上,就是EM算法中E步的由来,然后令 ,就得到了M步的公式
以上就是EM算法的推导过程,为了加深理解,我们可以换一个角度来总结一下。前面我们定义了似然函数
由于累加号嵌套在 函数中,难以直接进行求解,如果换一个似然函数,就容易的多
但是,又由于的 是隐变量,无法得到它的概率分布,只能通过给定的
和
来计算它的后验分布,然后求似然函数在此分布上的期望
最后,再寻找能使似然函数的期望最大化的参数
EM算法理论与推导的更多相关文章
- Machine Learning系列--EM算法理解与推导
EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...
- EM算法定义及推导
EM算法是一种迭代算法,传说中的上帝算法,俗人可望不可及.用以含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计 EM算法定义 输入:观测变量数据X,隐变量数据Z,联合分布\(P(X,Z|\t ...
- python机器学习笔记:EM算法
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...
- 高斯混合模型参数估计的EM算法
# coding:utf-8 import numpy as np def qq(y,alpha,mu,sigma,K,gama):#计算Q函数 gsum=[] n=len(y) for k in r ...
- EM算法(Expectation Maximization Algorithm)
EM算法(Expectation Maximization Algorithm) 1. 前言 这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...
- EM算法求高斯混合模型參数预计——Python实现
EM算法一般表述: 当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然预计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化( ...
- EM算法 小结
猴子吃果冻 博客园 首页 新随笔 联系 管理 订阅 随笔- 35 文章- 0 评论- 3 4-EM算法原理及利用EM求解GMM参数过程 1.极大似然估计 原理:假设在一个罐子中放着许多白球和 ...
- 【机器学习】EM算法详细推导和讲解
今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...
- EM算法以及推导
EM算法 Jensen不等式 其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有 \[ \lambda f(x) + (1-\lambda)f(y) ...
随机推荐
- python基础003----标准数据类型
一.标准数据类型 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要开发者主动去说明它的类型,系统会自动识别.可以用type(变量名)来查看变量的类型.常见的变量类型 ...
- 为避免种族歧视,谷歌Chrome将不再使用“黑名单”等词
GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗! GitHub 15.2k Star 的Java工程师成神之路,不来了解一下吗! 近日,美国黑人乔治‧佛洛伊德(Georg ...
- 研华advantech-凌华ADLINK板卡运动控制卡
研华advantech:6路独立D/A输出12位分辨率双缓冲D/A转换器多种电压范围:+/-10V,+/-5V,0—+5V,0—+10V和4—20mA电流环(汇)16路数字量输入及16路数字量输出 P ...
- MFC基于CAsyncSocket套接字客户端代码示范
MFC基于CAsyncSocket套接字客户端代码示范 https://blog.csdn.net/txwtech/article/details/93016190
- #linux vscode 保存总提示“Retry as sudo”
linux中,对不同路径下的文件,系统默认指定了不同的操作权限(读/写/执行),出现这个问题是由于文件的权限不足造成的.(路径为/opt/lampp/htdocs/LearnPHP_jayce/hel ...
- C# 9.0 新特性之只读属性和记录
阅读本文大概需要 2 分钟. 大家好,这是 C# 9.0 新特性系列的第 4 篇文章. 熟悉函数式编程的童鞋一定对"只读"这个词不陌生.为了保证代码块自身的"纯洁&quo ...
- 吉比特&雷霆游戏--2020春招实习
笔试 题量较大,仅记了一些印象比较深刻的题. 题型为选择 + 填空(给C++代码填输出结果) + 编程 编程题不会太难,最难的就一道字符串的全排列(类似剑指offer第38题LeetCode链接)可以 ...
- WPF中的Data Binding调试指南
大家平时做WPF开发,相信用Visual studio的小伙伴比较多.XAML里面曾经在某些特殊版本的Visual Studio中是可以加断点进行调试的,不过目前多数版本都不支持在XAML加断点来调试 ...
- vue-elemnt-admin源码学习
vue-elemnt-admin源码学习 vue-element-admin是一个基于vue,element-ui的集成的管理后台.它的安装部分就不说了,按照官网的步骤一步步就可以执行了. https ...
- 谈谈如何绕过 TinyPNG 对上传图片数量的限制
前端er, 又称为切图仔,平时经常需要用 PSD 导出 PNG 或 JPG,但是导出来的的图片一般比较大,往往需要用一些其他工具压缩后再发布到生产环境. 以前常用的做法是,使用 image-webpa ...