EM算法
总述
expectation maximization algorithm:含有隐变量的概率模型 参数的极大似然估计法、极大后验概率估计法
模型含有latent variable(潜在变量)、hidden variable (隐变量)似然函数将没有解析解
所以EM算法需要迭代求解,每次迭代由两步组成
- E步:求期望expectation
- M步:求极大maximization
- 模型变量都是observable variable、给定数据情况下,可以 直接使用极大似然估计、贝叶斯估计
EM算法
对含有隐变量的概率模型,目标是极大化观测数据(不完全数据) $Y$关于参数$\theta$的对数似然函数,即极大化
- $Y$:观测变量数据
- $Z$:隐随机变量数据(未知)
- $Y,Z$合在一起称为完全数据
- $P(Y,Z|\theta)$:联合分布
- $P(Z|Y,\theta)$:条件分布
- 但是极大化目标函数中包括未观测数据$Z$、求和(积分)的 对数,直接求极大化非常困难
- EM算法通过迭代逐步近似极大化$L(\theta)$
推导
假设第i次迭代后$\theta$的估计值是$\theta^{(i)}$,希望 新估计值$\theta$能使$L(\theta)$增加,并逐步增加到极大值 ,考虑两者之差
利用Jensen不等式有
令
则$B(\theta, \theta^{(i)})$是$L(\theta)$的一个下界,即
并根据$B(\theta, \theta^{(i)})$定义有
则任意$\theta$满足 $B(\theta,\theta^{(i)}) > B(\theta^{(i)},\theta^{(i)})$ ,将满足$L(\theta) > L(\theta^{(i)})$,应选择 $\theta^{(i+1)}$使得$B(\theta,\theta^{(i)})$达到极大
- 和$\theta$无关的常数项全部舍去
- $Q(\theta, \theta^{(i)})$:Q函数,完全数据的对数似然函数 $logP(Y,Z|\theta)$,关于在给定观测$Y$和当前参数 $\theta^{(i)}$下,对未观测数据Z的条件概率分布 $P(Z|Y,\theta^{(i)})$
算法
选择参数初值$\theta^{0}$,开始迭代
E步:记$\theta^{(i)}$为第$i$迭代时,参数$\theta$的估计值 ,在第$i+1$步迭代的E步时,计算Q函数 $Q(\theta, \theta^{(i)})$
M步:求使得Q函数极大化$\theta$作为第$i+1$次估计值 $\theta^{(i+1)}$
重复E步、M步直到待估参数收敛
算法初值可以任意选择,但EM算法对初值敏感
E步:参数值估计缺失值分布,计算Q函数(似然函数)
M步:Q函数取极大得新参数估计值
收敛条件一般是对较小正数$\epsilon$,满足 $|\theta^{(i+1)} - \theta^{(i)}| < \epsilon$或 $|Q(\theta^{(i+1)},\theta^{(i)}) - Q(\theta^{(i)},\theta^{(i)})| < \epsilon$
EM算法特点
EM算法优点
- EM算法可以用于估计含有隐变量的模型参数
- 非常简单,稳定上升的步骤能非常可靠的找到最优估计值
- 应用广泛,能应用在多个领域中
- 生成模型的非监督学习
EM算法缺点
- EM算法计算复杂、受外较慢,不适合高维数据、大规模数据集
- 参数估计结果依赖初值,不够稳定,不能保证找到全局最优解
算法收敛性
定理1
- 设$P(Y|\theta)$为观测数据的似然函数,$\theta^{(i)}$为 EM算法得到的参数估计序列,$P(Y|\theta^{(i)}),i=1,2,…$ 为对应的似然函数序列,则$P(Y|\theta^{(i)})$是单调递增的
由条件概率
则对数似然函数有
- $H(\theta, \theta^{(i)}) = \sum_Z log P(Z|Y,\theta) P(Z|Y,\theta)$
- $Q(\theta, \theta^{(i)})$:前述Q函数
- $logP(Y|\theta)$和$Z$无关,可以直接提出
分别取$\theta^{(i+1)}, \theta^{(i)}$带入,做差
$\theta^{(i+1)}$使得$Q(\theta, \theta^{(i)})$取极大
又有
定理2
- 设$L(\theta)=log P(Y|\theta)$为观测数据的对数似然函数, $\theta^{(i)},i=1,2,…$为EM算法得到的参数估计序列, $L(\theta^{(i)}),i=1,2,…$为对应的对数似然函数序列
- 若$P(Y|\theta)$有上界,则$L(\theta^{(i)})$收敛到某 定值$L^{*}$
- Q函数$Q(\theta, \theta^{‘})$与$L(\theta)$满足一定 条件的情况下,由EM算法得到的参数估计序列 $\theta^{(i)}$的收敛值$\theta^{*}$是$L(\theta)$的 稳定点
- 结论1由序列单调、有界显然
- Q函数$Q(\theta, \theta^{‘})$与$L(\theta)$的条件在大多数 情况下是满足的
- EM算法收敛性包含对数似然序列$L(\theta^{(i)})$、参数估计 序列$\theta^{(i)}$的收敛性,前者不蕴含后者
- 此定理只能保证参数估计序列收敛到对数似然序列的稳定点, 不能保证收敛到极大点,可选取多个不同初值迭代,从多个结果 中选择最好的
Gaussion Mixture Model
- 高斯混合模型是指具有如下概率分布模型
- $\alphak \geq 0, \sum{k=1}^K \alpha_k=1$:系数
- $\phi(y|\theta_k)$:高斯分布密度函数
- $\theta_k=(\mu_k, \sigma_k)$:第k个分模型参数
- 用EM算法估计高斯混合模型参数 $\theta=(\alpha_1,…,\alpha_2,\theta_1,…,\theta_K)$
推导
明确隐变量
明确隐变量,写出完全数据对数似然函数
反映观测数据$y_j$来自第k个分模型的数据是未知的
- $j=1,2,\cdots,N$:观测编号
- $k=1,2,\cdots,K$:模型编号
则完全数据为
完全数据似然函数为
- $nk = \sum{j=1}^{N} \gamma_{j,k}$
- $\sum_{k=1}^K n_k = N$
完全数据的对数似然函数为
E步:确定Q函数
- $E\gamma{j,k} = E(\gamma{j,k}|y,\theta)$:记为 $\hat \gamma_{j,k}$
带入可得
M步
求新一轮模型参数 $\theta^{(i+1)}=(\hat \alpha_1,…,\hat \alpha_2,\hat \theta_1,…,\hat \theta_K)$
- $\hat \theta_k = (\hat \mu_k, \hat \sigma_k^2)$:直接求 偏导置0即可得
- $\hat \alphak$:在$\sum{k=1}^K \alpha_k = 1$条件下求 偏导置0求得
算法
- 输入:观测数据$y_1, y_2,\cdots, y_N$,N个高斯混合模型
- 输出:高斯混合模型参数
取参数初始值开始迭代
E步:依据当前模型参数,计算分模型k对观测数据$y_j$响应度
M步:计算新一轮迭代的模型参数 $\hat mu_k, \hat \sigma_k^2, \hat \alpha_k$
重复2、3直到收敛
- GMM模型的参数估计的EM算法非常类似K-Means算法
- E步类似于K-Means中计算各点和各聚类中心之间距离,不过 K-Means将点归类为离其最近类,而EM算法则是算期望
- M步根据聚类结果更新聚类中心
GEM
Maximization-Maximization Algorithm
Free Energy函数
- 假设隐变量数据Z的概率分布为$\tilde P(Z)$,定义分布 $\tilde P$与参数$\theta$的函数$F(\tilde P, \theta)$如下
- $H(\tilde P)=-E_{\tilde P} log \tilde P(Z)$:分布 $\tilde P(Z)$的熵
- 通常假设$P(Y,Z|\theta)$是$\theta$的连续函数,则函数 $F(\tilde P,\theta)$是$\tilde P, \theta$的连续函数
定理1
- 对于固定$\theta$,存在唯一分布$\tilde P\theta$,极大化 $F(\tilde P, \theta)$,这时$\tilde P\theta$由下式给出 并且$\tilde P_{\theta}$随$\theta$连续变化
对于固定的$\theta$,求使得$F(\tilde P, \theta)$的极大, 构造Lagrange函数
因为$\tilde P(Z)$是概率密度,自然包含两个约束
即Lagrange方程中后两项
对$\tilde P(Z)$求偏导,得
令偏导为0,有
则使得$F(\tilde P, \theta)$极大的$\tilde P_\theta(Z)$ 应该和$P(Y,Z|\theta)$成比例,由概率密度自然约束有
而由假设条件,$P(Y,Z|\theta)$是$\theta$的连续函数
这里概率密度函数$\tilde P(Z)$是作为自变量出现
理论上对$\tilde P(Z)$和一般的复合函数求导没有区别, 但$E_{\tilde P}, \sum_Z$使得整体看起来非常不和谐
定理2
- 若$\tilde P_\theta(Z) = P(Z|Y, \theta)$,则
定理3
- 设$L(\theta)=log P(Y|\theta)$为观测数据的对数似然函数, $\theta^{(i)}, i=1,2,\cdots$为EM算法得到的参数估计序列, 函数$F(\tilde P,\theta)$如上定义
- 若$F(\tilde P,\theta)$在$\tilde P^{}, \theta^{}$ 上有局部极大值,则$L(\theta)$在$\theta^{*}$也有局部 最大值
- 若$F(\tilde P,\theta)$在$\tilde P^{}, \theta^{}$ 达到全局最大,则$L(\theta)$在$\theta^{*}$也达到全局 最大
由定理1、定理2有
特别的,对于使$F(\tilde P,\theta)$极大$\theta^{8}$有
由$\tilde P_\theta$关于$\theta$连续,局部点域内不存在点 $\theta^{}$使得$L(\theta^{}) > L(\theta^{})$,否则 与$F(\tilde P, \theta^{})$矛盾
定理4
- EM算法的依次迭代可由F函数的极大-极大算法实现
- 设$\theta^{(i)}$为第i次迭代参数$\theta$的估计, $\tilde P^{(i)}$为第i次迭代参数$\tilde P$的估计,在第 i+1次迭代的两步为
- 对固定的$\theta^{(i)}$,求$\tilde P^{(i)}$使得 $F(\tilde P, \theta^{(i)})$极大
- 对固定的$\tilde P^{(i+1)}$,求$\theta^{(i+1)}$使 $F(\tilde P^{(t+1)}, \theta)$极大化
固定$\theta^{(i)}$
则固定$\tilde P^{(i+1)}$求极大同EM算法M步
GEM算法
- 输入:观测数据,F函数
- 输出:模型参数
初始化$\theta^{(0)}$,开始迭代
第i+1次迭代:记$\theta^{(i)}$为参数$\theta$的估计值, $\tilde P^{(i)}$为函数$\tilde P$的估计,求 $\tilde P^{(t+1)}$使$\tilde P$极大化$F(\tilde P,\theta)$
求$\theta^{(t+1)}$使$F(\tilde P^{(t+1)l}, \theta)$极大化
重复2、3直到收敛
次优解代替最优解
- 输入:观测数据,Q函数
- 输出:模型参数
初始化参数$\theta^{(0)}$,开始迭代
第i+1次迭代,记$\theta^{(i)}$为参数$\theta$的估计值, 计算
求$\theta^{(i+1)}$使
重复2、3直到收敛
- 有时候极大化$Q(\theta, \theta^{(i)})$非常困难,此算法 仅寻找使目标函数值上升方向
ADMM求次优解
- 输入:观测数据,Q函数
- 输出:函数模型
初始化参数 $\theta^{(0)} = (\theta_1^{(0)},…,\theta_d^{(0)})$, 开始迭代
第i次迭代,记 $\theta^{(i)} = (\theta_1^{(i)},…,\theta_d^{(i)})$, 为参数$\theta = (\theta_1,…,\theta_d)$的估计值,计算
进行d次条件极大化
在$\theta1^{(i)},…,\theta{j-1}^{(i)},\theta_{j+1}^{(i)},…,\theta_d^{(i)}$ 保持不变条件下 ,求使$Q(\theta, \theta^{(i)})$达到极大的 $\theta_j^{(i+1)}$
j从1到d,进行d次条件极大化的,得到 $\theta^{(i+1)} = (\theta_1^{(i+1)},…,\theta_d^{(i+1)})$ 使得
重复2、3直到收敛