目录
EM算法(3):EM算法运用
1. 内容
EM算法全称为 Expectation-Maximization 算法,其具体内容为:给定数据集X={x1,x2,...,xn},假定这个数据集是不完整的,其还缺失了一些信息Y,一个完整的样本Z = {X,Y}。而且假定如果我们能得到完整样本信息的话,训练模型就有闭式解(这个假定对于EM算法理论上可以没有,但是实际操作时我们还是要选定这样的完整信息)。那么EM算法分为两步,第一步(E-step),根据前一步得到的参数θ(i),计算目标函数的期望Q(θ;θ(i)):
Q(θ;θ(i))=EY[lnp(X,Y|θ)|X,θ(i)]
=∫lnp(X,Y|θ)⋅p(Y|X,θ(i))dY
第二步,选择一个θ(i+1),使得Q(θ;θ(i))最大化。
2. EM算法在GMM模型上的运用
上面讲的EM算法大家肯定觉得很空洞、无法理解,这样就对了,光看这个肯定是看不出什么来的,这个时候就需要一个例子来说明,GMM模型是最合适的。
在运用EM算法之前,我们首先要明确,缺失的Y取什么,这个得自己选取。那么由我们之前那篇博客,Y用来代表数据属于某个高斯分量最合适。y取1~k,分别代表k个高斯分量。那么很容易有p(x,y=l|π,μ,Σ)=πlN(x|μl,Σl),而p(x|π,μ,Σ)=∑kp(x,y=k|π,μ,Σ)=∑kπkN(x|μk,Σk),这与我么GMM模型的结果也是一致的。
首先我们先计算Q(θ;θ(i))(这里公式比较复杂,博客园的Latex比较坑,我就直接用Latex写了然后截图了):
其中p(yn=k|xn,θ(i))=p(yn=k,xn|θ(i))p(xn|θ(i))=γnk(推导要使用本小节第二段中的两个式子,γnk定义见本系列第二篇博客)。
第二步,我们对Q(θ;θ(i))进行最值优化,首先对均值进行求导,则有:
∂Q∂μk=0 得到 μ(i+1)k=∑nγnkxn∑nγnk
细心的读者可能已经发现,这与我们在第二篇博客中得到的结果是一样的。同样,对π和Σ求导得到的结果同样和第二篇博客中一样(有兴趣的读者可以自行推导一下,其中对Σ求导可能需要参考我的另一篇博文多维高斯概率密度函数对协方差矩阵求导),这样我们就由EM算法得到了GMM的训练算法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步