在实际情况中,往往会遇到未观测变量,未观测变量的学名是隐变量(latent variable)。令X表示已观测变量集,Z表示隐变量集,表示模型参数。若欲对做极大似然估计,则应最大化对数似然,由于Z是隐变量,上式无法直接求解,此时可以通过对Z计算期望,来最大化已观测数据的对数“边际似然”。
EM期望极大算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。
EM(Exceptation-Maximization)算法是常用的估计参数隐变量的力气,它是一种迭代式的方法,基本思想是:若参数一直,则可跟进训练数据推断出出最优隐变量Z的值(E步),反之,若Z的值已知,则可方便地对参数做极大似然估计(M步)。
EM算法的两个步骤是:
- E步(Exceptation):当以前参数推断隐变量分布,并计算对数似然
- M步(Maximization):寻找参数最大化期望似然,即
事实上,隐变量估计问题也可以通过梯度下降等优化算法进行求解,但由于求和的项数会随着隐变量的数目以指数级上升,会给梯度计算带来麻烦,而EM算法可以看做一种非梯度优化方法。
EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值。
一般地,用Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连在一起称为完全数据,观测数据Y又称为不完全数据。假设给定观测数据Y,其概率分布是,其中是需要估计的参数模型,那么不完全数据Y的似然函数是,对数似然函数,假设Y和Z的联合概率分布是,那么完全数据的对数似然函数是。
EM算法描述如下:
输入:观测变量数据Y,隐变量数据Z,联合分布,条件分布
输出:参数模型
(1)选择参数的初值,开始迭代
(2)E步:记为第i次迭代参数的估计值,在第i+1次迭代的E步,计算:
这里是在给定观测数据Y和当前的参数估计下隐变量数据Z的条件概率分布
(3)M步:求使得极大化的,确定第i+1次迭代的参数的估计值
(4)重复(2)和(3)直至收敛。
是EM算法的核心,称为Q函数
EM算法可以用于生成模型的非监督学习,生成模型由联合概率分布P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据,X为观测数据,Y为未观测数据。
EM 算法提供一种近似计算含有隐变量概率模型的极大似然估计的方法,EM算法最大的优点是简单性和普适性。
定理:设为观测数据的似然函数,为EM算法得到的参数估计序列,为对应的似然函数序列,则是单调递增的,即
定理:设为观测数据的对数似然函数,为EM算法得到的参数估计序列,为对应的对数似然函数序列:
(1)如果有上界,则收敛到某一值
(2)在函数与满足一定条件下,由EM算法得到的参数估计序列的收敛值是的稳定点
高斯混合模型参数估计的EM算法
输入:观测数据,高斯混合模型
输出:高斯混合模型参数
(1)取参数初始值开始迭代
(2)E步依据当前模型参数,计算分模型k对观测数据的响应度:
(3)M步,计算新一轮迭代的模型:
(4)重复(2)和(3)直到收敛
采用EM求解的模型有哪些?蒙特卡罗算法,混合高斯、协同过滤、k-means
参考:
- 《机器学习》
- 《统计学习方法》
- Expectation-Maximum(EM算法)