期望极大算法-ExpectationMaximization算法
介绍
Expectation Maximization (EM) 是一种以迭代的方式来解决一类特殊最大似然 (Maximum Likelihood) 问题的方法,这类问题通常是无法直接求得最优解,但是如果引入隐含变量,在已知隐含变量的值的情况下,就可以转化为简单的情况,直接求得最大似然解。
EM是一种解决存在隐含变量优化问题的有效方法。竟然不能直接最大化,我们可以不断地建立的下界(E步),然后优化下界(M步)。
EM中每次迭代分两步: 1. E步,期望,通过观测数据和现有模型参数,估计missing data; 2. M步,极大化,加上missing data已知的情况下,最大化似然函数,更新模型参数
Kmeans就是应用EM思想的例子,E步,对所有数据点进行聚类(初始聚类中心可以随机);M步,更新聚类中心
问题描述
- 输入:观测变量数据为Y
- 中间变量:隐变量数据为Z
- 输出:模型参数
推导过程
我们的目标是极大化观测数据Y关于参数的对数似然函数,即:
上式中含有未知变量和的对数,很难得到解析解,EM通过迭代的方法,逐步逼近最优解
目标是极大化,所以第i+1次迭代,要求,考虑二者之差:
其中不等号是根据Jensen不等式得到的,简单说就是,如果f(x)是凸函数,X是随机变量,则有:
倒数第二步是根据 $$ \sum_Z P(Z | Y,\theta^i)=1 $$ 得到的 |
显然有:,因此, 是 的下限,极大化前者也可使后者增大,因此:
其中是常数,化简得:
所以,EM的迭代过程相当于求Q函数并最大化的过程
计算过程:
-
初始化参数
-
E步:记为第i次迭代参数的估计值,对于第i+1次迭代,计算:
-
M步:求使极大化的,作为第i+1次迭代参数的估计值
-
重复E,M步,直到收敛