统计学习方法学习笔记-09-EM算法及其推广
首先叙述EM算法,然后讨论EM算法的收敛性,作为EM算法的应用,介绍高斯混合模型的学习,最后介绍EM算法的推广-GEM算法
EM算法的引入
目的:概率模型有时候既含有观测变量,也含有隐变量,EM算法就是含有隐变量的概率模型参数的极大似然估计法或极大后验概率估计法
EM算法
输入:观测变量数据YY,隐变量数据ZZ,联合分布P(Y,Z|θ)P(Y,Z|θ),条件分布P(Z|Y,θ)P(Z|Y,θ);
输出:模型参数θθ
- 选择参数的初值θ(0)θ(0),开始迭代
- EE步:记θ(i)θ(i)为第ii次迭代参数θθ的估计值,在第i+1i+1次迭代的EE步,计算
- M步:求使Q(θ,θ(i))Q(θ,θ(i))极大化的θθ,确定第i+1i+1次迭代的参数的估计值θ(i+1)θ(i+1)
- 重复第2,3步直到收敛
E步的Q函数是EM算法的核心,表示的是完全数据的对数似然函数logP(Y,Z|θ)logP(Y,Z|θ)关于给定观测数据YY和当前参数θ(i)θ(i)下对未观测数据ZZ的条件概率分布P(Z|Y,θ(i))P(Z|Y,θ(i))的期望,首先参数初值θ(0)θ(0)可以任意选择,但是该算法对初值是敏感的,E步求Q函数,M步求Q函数的极大化得到θ(i+1)θ(i+1),停止迭代的条件是θθ的变化小于阈值
EM算法的收敛性
- 设P(Y|θ)P(Y|θ)为观测数据的似然函数,θ(i),i=1,2,⋯θ(i),i=1,2,⋯为EM算法得到的参数估计序列,P(Y|θ(i),i=1,2,⋯P(Y|θ(i),i=1,2,⋯为对应的似然函数序列,则P(Y|θ(i))P(Y|θ(i))是单调递增的,也就是:
- 设L(θ)=logP(Y|θ)L(θ)=logP(Y|θ)为观测数据的对数似然函数,θ(i),i=1,2,⋯θ(i),i=1,2,⋯为EM算法得到的参数估计序列,L(θ(i))=logP(Y|θ(i)),i=1,2,⋯L(θ(i))=logP(Y|θ(i)),i=1,2,⋯为对应的对数似然函数序列,如果P(Y|θ)P(Y|θ)有上界,则L(θ(i))=logP(Y|θ(i)),i=1,2,⋯L(θ(i))=logP(Y|θ(i)),i=1,2,⋯收敛于某一值,在函数Q(θ,θ′)Q(θ,θ′)与L(θ)L(θ)满足一定条件下,由EM算法得到的参数估计序列θ(i)θ(i)的收敛值θ∗θ∗是L(θ)L(θ)的稳定点
EM算法在高斯混合模型学习中的应用
高斯混合模型是指具有如下形式的概率分布模型:
其中αkαk是系数,满足αk≥0,∑Kk=1αk=1αk≥0,∑Kk=1αk=1,ϕ(y|θk)ϕ(y|θk)是高斯分布密度,θk=(μk,σ2k)θk=(μk,σ2k)
称为第kk个分模型,一般混合模型可以由任意概率分布密度代替高斯分布密度,假设观测数据y1,y2,⋯,yNy1,y2,⋯,yN
由高斯混合模型生成
其中θ=(α1,α2,⋯,αK;θ1,θ2,⋯,θK)θ=(α1,α2,⋯,αK;θ1,θ2,⋯,θK),接下来使用EM算法估计高斯混合模型的参数θθ
首先明确隐变量,写出完全数据的对数似然函数,以隐变量γjkγjk来反映观测数据来自第kk个分模型:
有了观测数据yjyj和未观测数据γjkγjk,那么完全数据是:
于是可以写出完全数据的似然函数:
可以得到完全数据的对数似然函数为:
之后完成EM算法的E步:确定Q函数
需要求E(γjk|y,θ)E(γjk|y,θ)记为^γjk^γjk
ˆγjk^γjk是在当前模型参数下第jj个观测数据来自第kk个分模型的概率,称为分模型kk对观测数据yjyj的响应度,将ˆγjk=Eγjk^γjk=Eγjk和nk=∑Nj=1Eγjknk=∑Nj=1Eγjk带到上式:
接下来完成EM算法的M步,也就是求函数Q(θ,θ(i))Q(θ,θ(i))对θθ的极大值,即求新一轮迭代的模型参数:
θ(i+1)θ(i+1)的参数包含ˆμk,ˆσ2k,ˆαk,k=1,2,⋯,K^μk,^σ2k,^αk,k=1,2,⋯,K,只这些参数只需要分别对其求偏导并令偏导数为0即可求得,结果如下:
重复上述计算,直到对数似然函数值不再有明显的变化为止。高斯混合模型参数估计的EM算法:
输入:观测数据y1,y2,⋯,yN,高斯混合模型
输出:高斯混合模型参数
- 取参数的初始值开始迭代
- E步:依据当前模型参数,计算分模型k对观测数据yj的响应度
- M步:计算新一轮迭代的参数模型
- 重复第2,3步直到对数似然函数值不再有明显的变化即收敛的时候停止
EM算法的推广
EM算法可以解释为F函数的极大-极大算法,基于这个解释有若干变形与推广,如广义期望极大算法(generalized expectation maximization,GEM)
F函数:假设隐变量数据Z的概率分布为˜P(Z),定义分布˜P与参数θ的函数F(˜P,θ)如下:
上式称为F函数,式中H(˜P)=−E˜Plog˜P(Z)是分布˜P(Z)的熵,上述函数有如下性质:
对于固定的θ,存在唯一的分布˜Pθ极大化F(˜P,θ),这时˜Pθ由下式给出:
且˜Pθ随θ连续变化,如果上式成立则:
设L(θ)=logP(Y|θ)为观测数据的对数似然函数,θ(i),i=1,2,⋯,为EM算法得到的参数估计序列,如果F(˜P,θ)在˜P∗,θ∗得到局部极大值,那么L(θ)也在θ∗得到局部极大值,如果F(˜P,θ)在˜P∗,θ∗得到全局极大值,那么L(θ)也在θ∗得到全局极大值,EM算法的一次迭代可由F函数的极大-极大算法实现,设θ(i)是第i次迭代参数θ的估计,˜P(i)为第i次迭代函数˜P的估计,在第i+1次迭代的两步为:
- 对固定的θ(i)求˜P(i+1)使F(˜P,θ(i))极大化
- 对于固定的˜P(i+1),求θ(i+1)使得F(˜P(i+1),θ)极大化
GEM算法1
输入:观测数据,F函数
输出:模型参数
- 初始化参数θ(0),开始迭代
- 第i+1次迭代,第一步,记θ(i)为参数θ的估计值,˜P(i)为函数˜P的估计,求˜P(i+1)使˜P极大化F(˜P,θ(i))
- 第2步,求θ(i+1)使得F(˜P(i+1),θ)极大化
- 重复2,3步直到收敛
GEM算法2
输入:观测数据,F函数
输出:模型参数
- 初始化参数θ(0),开始迭代
- 第i+1次迭代,第一步,记θ(i)为参数θ的估计值,计算:
- 第2步,求θ(i+1)使得
- 重复2,3步直到收敛
GEM算法3
当参数θ的维数为d(d≥2)时,可以采用一种特殊的GEM算法,它将EM算法的M步分别为d次条件极大化,每次只改变参数向量的一个分量,其余分量不改变
输入:观测数据,F函数
输出:模型参数
- 初始化参数θ(0)=(θ(0)1,θ(0)2,⋯,θ(0)d),开始迭代
- 第i+1次迭代,第一步,记θ(i)为参数θ的估计值,计算:
- 第2步,进行d次条件极大化,首先在θ(0)2,⋯,θ(0)d保持不变的条件下求使Q(θ,θ(i))达到极大的θ(i+1)1,如此继续直到求得θ(i+1)使得
- 重复2,3步直到收敛
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~