Expectation Maximization(EM)算法
来源:互联网 发布:吴彦祖 知乎 编辑:程序博客网 时间:2024/05/17 07:21
概率模型有时既含有观测变量(observable variable),又含有隐变量(latent variable)。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计或贝叶斯估计来计算模型参数。但是,当模型含有隐变量时,就不能简单地使用以上估计方法,而EM算法就是针对含有隐变量的概率模型参数的极大似然估计法。
一般地,用
从掷硬币实验说起
给定两枚硬币
选择一枚硬币,并且知道具体是哪一枚,然后用选中的硬币掷十次,记录结果。因此,总共进行了50次掷硬币的实验。如下图所示
现在,引入两个随机变量
事实上,上述的估计方式就是统计学上的最大似然估计。
现在考虑一个更有挑战性的参数估计问题。只给定硬币出现正面的次数,而不给定是由哪一枚硬币掷出的,即
凸函数
定义1 定义在区间
则称函数
定义2 如果函数
定理1 如果函数
定理2(Jensen inequality)
证明: 使用数学归纳法证明
- 当
n=1 时,(2)式显然成立,并取得等号。 - 当
n=2 时,即为凸函数的定义。 - 假设当
n=n 时(2)式成立,则
得证。
因为
图形表示为
EM算法
对于含有隐含变量的数据,EM算法是一个用于计算最大概率的高效的迭代过程,我们希望通过估计得到的模型参数可以使得观测到的数据出现的可能性最大。
EM算法的导出
对于一个含有隐含变量
极大化的主要困难在于上式中存在隐变量。最大化的
令
最后一步是由Jensen inequality得到的。并且,
对于任意的分布
最直接的想法是,对于特定的
其中
因为
(6)式等号右边对
现在,通过将
下图为迭代过程的图形化表示
收敛性
假设参数
同样由式(5)可得
式(9)是因为
综上所述,
note: EM算法只能保证参数估计序列收敛到对数似然函数序列的极大值点,不能保证收敛到最大值点。所以在应用中,初值的选择变得非常重要,常用的方法是选取几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。
再看掷硬币问题
其中一种迭代方式入下:
初始化参数
θ(t)^=(θ(t)A^,θ(t)B^) ,同时初始化硬币A 和B 出现的概率(等概率)。假设初始化的参数是正确的,通过最大似然估计计算模型参数
θ(t+1)^ .重复以上两个过程直至收敛。
从理论公式推导高斯混合模型
随机变量
E-step
M-step
将多项分布和高斯分布的参数代入,并求解
对高斯分布的均值
令其等于0可得
同理,对高斯分布的方差求偏导可得
求多项分布的参数
由于
建立拉格朗日方程
对
至此,由EM算法求解出了高斯混合模型的所有参数(11)(12)(14)。
参考文献
[1] 李航. 统计学习方法[M]. 清华大学出版社, 2012
[2] Borman S. The expectation maximization algorithm-a short tutorial[J]. Submitted for publication, 2004: 1-9.
[3] Do C B. What is the expectation maximization algorithm?[J]. Nature Biotechnology, 2008, 26(8):897-9.
[4] Andrew Ng. CS229 Lecture notes: The EM algorithm.
- EM算法:Expectation-Maximization
- EM(Expectation-Maximization)算法
- EM算法(Expectation Maximization)
- EM算法(Expectation Maximization)
- Expectation-Maximization(EM) 算法
- EM算法(Expectation Maximization)
- EM算法-expectation-maximization
- EM算法--expectation maximization
- Expectation Maximization(EM)算法
- EM(Expectation-Maximization)算法
- EM (Expectation Maximization) 算法理解
- EM(Expectation Maximization)算法
- EM(Expectation Maximization)算法原理
- EM算法(Expectation Maximization Algorithm )
- EM(Expectation-Maximization)算法
- <zz>EM(Expectation Maximization)期望最大化算法
- EM算法(expectation-maximization algorithm)
- EM算法(expectation-maximization algorithm)
- [BZOJ3942][Usaco2015 Feb]Censoring(kmp)
- 知识点总结
- hi3518SDK 目录树
- System v 和 Posix作用和区别(进程间通信IPC)
- 对dataframe中数据处理的办法:
- Expectation Maximization(EM)算法
- vue tab切换
- 静态导入Static import
- *sdnu1483.Problem_A
- 20. Valid Parentheses
- 创建抽象类 Transport
- Ubuntu 16.04编译安装最新的OpenCV3.2
- Android 网络连接的判断
- Servlet详解