em-在高斯混合模型中的应用

时光怂恿深爱的人放手 提交于 2020-03-08 06:10:50

EM算法

EM算法的来源

李航的《统计学习方法一书》通过三硬币模型引入了对EM的用法,但是并没有讲解怎么通过EM算法推导出三硬币模型的递推公式。

从三硬币法开始讲起

三硬币模型
假设有三枚硬币A,B,C,硬币A以π\pi的概率掷出正面,以1π1-\pi的概率掷出反面,硬币B以pp的概率掷出正面,以1p1-p的概率掷出反面,硬币C以qq的概率掷出正面,以1q1-q的概率掷出反面。定义以下规则:掷出硬币A,如果掷出正面,选择硬币B,记录掷出硬币B的结果;否则掷出硬币C,记录C的结果。记正面为1,反面为0,得到:
1,1,1,1,1,0,0,0,0,1,1,1,11,1,1,1,1,0,0,0,0,1,1,1,1
π\pippqq的最大似然估计。
这是一个典型的存在隐形变量的问题。即“硬币A的结果”是隐含变量,这里将硬币A的结果用ZZ表示,观测变量用YY表示,用yi{0,1}y_i\in \{0,1\}表示每一次掷出的结果。可以得到
P(yi)=πpyi(1p)1yi+(1π)qyi(1q)1yiP(y_i)=\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}
用参数θ=[π,p,q]\theta = \left[\pi,p,q\right]表示未知参数。Y的联合概率可以表示为
P(Yθ)=i=1NP(yiθ)P\left(Y\right|\theta) = \prod_{i=1}^{N} P\left( y_i|\theta\right)
最大似然估计就是寻找一个可以使得Y的联合概率达到最大的θ\theta,写成对数形式比较容易计算,并带入上面的公式即
θ^=arg maxθln(i=1NP(yiθ))=arg maxθi=1Nln(πpyi(1p)1yi+(1π)qyi(1q)1yi)\hat{\theta}=\argmax_{\theta}\ln\left(\prod_{i=1}^{N}P(y_i|\theta)\right)=\argmax_{\theta}\sum_{i=1}^{N}\ln\left(\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}\right)
按照极大似然法的流程,下一步应当计算似然函数的极值dLdθ=0\frac{dL}{d\theta}=\mathbf{0},其中L(θ)=i=1Nln(πpyi(1p)1yi+(1π)qyi(1q)1yi)L(\theta)=\sum_{i=1}^{N}\ln\left(\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}\right)
0=dL(θ)dπ=i=1Nln(πpyi(1p)1yi+(1π)qyi(1q)1yi)=i=1Npyi(1p)1yiqyi(1q)1yiπpyi(1p)1yi+(1π)qyi(1q)1yi=0 \mathbf{0}=\frac{dL(\theta)}{d\pi}=\sum_{i=1}^{N}\ln\left(\pi p^{y_i}(1-p)^{1-y_i}+ (1-\pi)q^{y_i}(1-q)^{1-y_i} \right)\\ =\sum_{i=1}^{N}\frac{p^{y_i}(1-p)^{1-y_i}-q^{y_i}(1-q)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+ (1-\pi)q^{y_i}(1-q)^{1-y_i} }\\ = \mathbf{0}\\

0=d(θ)dp=i=1Nπpyi(yi1)(1p)yi+(1π)qyi(yi1)(1q)yiπpyi(1p)1yi+(1π)qyi(1q)1yi \mathbf{0} = \frac{d|(\theta)}{dp} = \sum_{i=1}^{N} \frac{\pi p^{y_i}(y_i-1)(1-p)^{-y_i}+ (1-\pi)q^{y_i}(y_i-1)(1-q)^{-y_i} }{\pi p^{y_i}(1-p)^{1-y_i}+ (1-\pi)q^{y_i}(1-q)^{1-y_i}}
发现无法往下往下计算了……,由于目标函数并非凸函数。这个方程没有解析解。
因此考虑放缩法。

EM算法的推导

这一部分主要参考李航著《统计学习方法》
用符号YY表示观测数据,符号ZZ表示隐含数据,上述似然函数是观测数据的似然函数,即
L(θ)=lnP(Yθ)=lnZP(Y,Zθ)=lnZP(YZ,θ)P(Zθ)L(\theta)=\ln P(Y|\theta) = \ln \sum_Z P(Y,Z | \theta) = \ln \sum_{Z} P(Y|Z,\theta)P(Z|\theta)
极大化此函数的难度在于对数函数中含有数据求和,EM算法是通过不断迭代来极大化似然函数的。简单来说就是保证每一次迭代都使得L(θ)L(\theta)不会缩小。
L(θ)L(θ(i))=lnZP(Y,Zθ)ln(Yθ(i))=lnZP(YZ,θ)P(Zθ)lnP(Y,θ(i)) L(\theta) - L(\theta^{(i)}) = \ln\sum_{Z} P(Y,Z|\theta) - \ln(Y|\theta^{(i)})\\ =\ln \sum_{Z}P(Y|Z,\theta)P(Z|\theta) - \ln P(Y,\theta^{(i)})
利用Jensen不等式(详情见湖北高考2014年数学卷),这是对于上凸函数ln(x)\ln(x)满足的不等式:
lnjλjyjjλilnyi\ln \sum_{j}\lambda_jy_j\geq \sum_{j}\lambda_i\ln y_i

运用此结论可以得到
L(θ)L(θ(i))=ln(ZP(ZY,θ(i))P(YZ,θ)P(Zθ)P(ZY,θ(i)))lnP(Yθ(i)ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))lnP(Yθ(i))=ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Y,θ(i)) L(\theta)-L(\theta^{(i)})=\ln \left(\sum_{Z} P(Z|Y,\theta^{(i)}) \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}\right)-\ln P(Y|\theta^{(i)}\\ \geq \sum_Z P(Z|Y,\theta^{(i)})\ln \frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})}-\ln P(Y|\theta^{(i)})\\ =\sum_Z P(Z|Y,\theta^{(i)}) \ln\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y,\theta^{(i)})}
注:这里利用了ZP(ZY,θ)=1\sum_Z P(Z|Y,\theta)=1
B(θ,θ(i)=L(θ(i))+ZP(YZ,θ(i))lnP(ZY,θ)P(Zθ)P(ZY,θ(i))P(Y,θ(i))B(\theta,\theta^{(i)} =L(\theta^{(i)})+\sum_Z P(Y|Z,\theta^{(i)}) \ln\frac{P(Z|Y,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y,\theta^{(i)})},可以得到
L(θ)B(θ,θ(i)) L(\theta) \geq B(\theta,\theta^{(i)})
即函数B(θ,θ(i)B(\theta,\theta^{(i)}是函数L(θ)L(\theta)的下界。
因此,任何使得B(θ,θ(i)B(\theta,\theta^{(i)}增大的θ\theta也能使得L(θ)L(\theta)增大,为了使得L(θ)L(\theta)得到极大,应该使得B(θ,θ(i)B(\theta,\theta^{(i)}得到极大
θ(i+1)=arg maxθB(θ,θ(i)) \theta^{(i+1)}=\argmax_\theta B(\theta,\theta^{(i)})
然后省略对θ\theta来说是常数项的部分,得到
θ(i+1)=arg maxθ{L(θ(i))+ZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Y,θ(i))}=arg maxθZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)P(ZY,θ(i))P(Y,θ(i))=arg maxθZP(ZY,θ(i))lnP(YZ,θ)P(Zθ)=arg maxθZP(ZY,θ(i))lnP(Y,Zθ)=arg maxθQ(θ,θ(i)) \theta^{(i+1)} = \argmax_\theta \{ L(\theta^{(i)})+\sum_Z P(Z|Y,\theta^{(i)}) \ln\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y,\theta^{(i)})}\}\\ =\argmax_\theta \sum_Z P(Z|Y,\theta^{(i)}) \ln\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{(i)})P(Y,\theta^{(i)})}\\ =\argmax_\theta \sum_Z P(Z|Y,\theta^{(i)}) \ln P(Y|Z,\theta)P(Z|\theta)\\ =\argmax_\theta \sum_Z P(Z|Y,\theta^{(i)}) \ln P(Y,Z|\theta)\\ =\argmax_\theta Q(\theta,\theta^{(i)})
由此推导出QQ函数,即完全数据的对数似然函数对于条件概率的期望
Q(θ,θ(i))=ZP(ZY,θ(i))lnP(Y,Zθ(i)) Q(\theta,\theta^{(i)}) = \sum_Z P(|Z|Y,\theta^{(i)}) \ln P(Y,Z|\theta^{(i)})

EM算法流程

  1. 设置参数初始值θ(0)\theta^{(0)},注意EM算法对于初始值的敏感的
  2. E step: 求Q(θ,θ(i))Q(\theta,\theta^{(i)})
  3. M step:更新参数,极大化Q函数:
    θ(i+1)=arg maxθQ(θ,θ(i)) \theta^{(i+1)}=\argmax_\theta Q(\theta,\theta^{(i)})
  4. 给出迭代停止的条件 一般是给出较小正数ϵ1\epsilon_1或者ϵ2\epsilon_2满足
    $
    |\theta^{(i+1)} - \theta^{(i)}|\leq \epsilon_1
    $或者
    Q(θ(i+1),θ(i))Q(θ(i),θ(i))ϵ2|Q(\theta^{(i+1)},\theta^{(i)})-Q(\theta^{(i)},\theta^{(i)})|\leq \epsilon_2的时候迭代停止。

EM算法的直观解释

EM 算法是寻找非凸函数的极值的一种有效思路。在算法中有一种对偶问题的思想,原问题的极小值转化为对偶问题的极大值,在满足KKT条件的时候,可以通过对偶问题解决原问题,这也是将非凸函数转换为凸函数的一种有效方法。和此思路类似,EM算法将原函数转换为函数下界的极大值问题,通过对下界的极大化逼近来求解对数似然函数的最大值。
李航书中指出,EM算法找到的下一个点θ(i+1)\theta^{(i+1)}使得函数B(θ,θ(i))B(\theta,\theta^{(i)})极大化,也使得Q(θ,θ(i))Q(\theta,\theta^{(i)})极大化。 由于L(θ)B(θ,θ(i))L(\theta)\geq B(\theta,\theta^{(i)}),在迭代过程中,保证每次迭代LθL\theta都是增加的,在整个过程中,L(θ)L(\theta)是不断增加的。EM算法不能保证找到全局的最优值。

用EM算法求解三硬币模型

回到最开始的问题,下面用EM算法求解一开始提出的三硬币模型。
要计算Q函数,先计算P(ZY)P(Z|Y),根据贝叶斯公式:
P(Z=1yi)=P(Z=1,yi)P(yi)=πpyi(1p)1yiπpyi(1p)1yi+(1π)qyi(1q)1yi P(Z=1|y_i)=\frac{P(Z=1,y_i)}{P(y_i)}=\frac{\pi p^{y_i}(1-p)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}}
P(Z=0yi)=P(Z=0,yi)P(yi)=(1π)qyi(1q)1yiπpyi(1p)1yi+(1π)qyi(1q)1yi P(Z=0|y_i)=\frac{P(Z=0,y_i)}{P(y_i)}=\frac{(1-\pi) q^{y_i}(1-q)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}}
所以:
ui=P(Z=1yi)=P(Z=0,yi)P(yi)=πpyi(1p)1yiπpyi(1p)1yi+(1π)qyi(1q)1yi u_{i}=P(Z=1|y_i)=\frac{P(Z=0,y_i)}{P(y_i)}=\frac{\pi p^{y_i}(1-p)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}}
1ui=P(Z=0yi)=P(Z=0,yi)P(yi)=(1π)qyi(1q)1yiπpyi(1p)1yi+(1π)qyi(1q)1yi 1-u_i=P(Z=0|y_i)=\frac{P(Z=0,y_i)}{P(y_i)}=\frac{(1-\pi) q^{y_i}(1-q)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}+(1-\pi)q^{y_i}(1-q)^{1-y_i}}
E step :计算Q函数
Q(θ,θ(i))=ZP(ZY,θ(i))lnP(Y,Zθ(i))=i=1NP(Z=0yi,θ(i))ln(πpyi(1p)1yi)+i=1NP(Z=1yi,θ(i))ln((1π)qyi(1q)1yi) Q(\theta,\theta^{(i)})=\sum_Z P(Z|Y,\theta^{(i)})\ln P(Y,Z|\theta^{(i)})\\ =\sum_{i=1}^{N}P(Z=0|y_i,\theta^{(i)})\ln\left(\pi p^{y_i}(1-p)^{1-y_i} \right)+\\ \sum_{i=1}^{N}P(Z=1|y_i,\theta^{(i)})\ln\left((1-\pi)q^{y_i}(1-q)^{1-y_i} \right)
M step
极大化Q函数,对参数求导
0=dQ(θ,θ(i))dπ=i=1Nu1pyi(1p)1yiπpyi(1p)1yi+i=1Nu2qyi(1q)1yi(1π)qyi(1q)1yi 0= \frac{\text{d}Q(\theta,\theta^{(i)})}{\text{d}\pi}= \sum_{i=1}^{N}u_1\frac{p^{y_i}(1-p)^{1-y_i}}{\pi p^{y_i}(1-p)^{1-y_i}} + \sum_{i=1}^{N}u_2\frac{-q^{y_i}(1-q)^{1-y_i}}{(1-\pi)q^{y_i}(1-q)^{1-y_i}}
推导得到
π(i+1)=1Ni=1Nui \pi^{(i+1)} = \frac{1}{N}\sum_{i=1}^{N}u_{i}
pp求导,得到
0=dQ(θ,θ(i))dp=i=1NP(Z=1yi,θ(i))(yip1yi1p) 0=\frac{\text{d}Q(\theta,\theta^{(i)})}{\text{d}p}\\ =\sum_{i=1}^{N}P(Z=1|y_i,\theta^{(i)})\left(\frac{y_i}{p}-\frac{1-y_i}{1-p}\right)
化简
i=1Nuiyi=i=1Nuip=pi=1Nui \sum_{i=1}^{N}u_i y_i = \sum_{i=1}^{N}u_i p = p\sum_{i=1}^{N}u_i
计算得到
p(i+1)=i=1Nuiyii=1Nui p^{(i+1)}=\frac{\sum_{i=1}^{N}u_i y_i}{\sum_{i=1}^{N}u_i}
同样的方法可以得到对q来说有
q(i+1)=i=1N(1ui)yii=1N(1ui) q^{(i+1)} = \frac{\sum_{i=1}^{N}(1-u_i)y_i}{\sum_{i=1}^{N}(1-u_i)}
这样就推导出θ(i+1)={π(i+1),p(i+1),q(i+1)}\theta^{(i+1)} = \{\pi^{(i+1)},p^{(i+1)},q^{(i+1)}\}

用EM算法求解高斯混合模型参数

EM算法在无监督学习中起着重要的作用,对于没有标签的数据(x1,_),(x2,_),(x3,_),,(xn,_)(x_1,\_),(x_2,\_),(x_3,\_),\dots,(x_n,\_),EM算法可以用于生成模型的无监督学习,生成模型由联合概率P(X,Y)P(X,Y)表示,可以认为无监督学习的训练数据是联合概率分布产生的数据。将X视为观测数据,Y视为隐含数据,
“高斯混合模型应用广泛,EM算法是估计高斯混合模型(Gaussian Mixture Model,GMM)的有效方法”
李航书中采用给出了一维高斯混合模型的推导,为了更具有一般性,这里给出多维度高斯混合模型的推导

高斯混合模型的定义

对于d维数据x(i)={x1,x2,x3,xd}T\mathbf{x}^{(i)}=\{x_1,x_2,x_3,\dots x_d\}^T,上标表示样本数目,i=1,2,3,4,5,Ni={1,2,3,4,5,\dots N},符合分布为
P(x)=k=1KπkN(xμk,Σk)subject tok=1Kπk=1 P(\mathbf{x})= \sum_{k=1}^{K}\pi_k \mathcal{N}(\mathbf{x}|\mu_k,\Sigma_k)\\ \text{subject to} \sum_{k=1}^{K}\pi_k=1
其中d维正态分布的表达式是:
N(xμk,Σk)=1(2π)d2Σk12exp{12(xμk)TΣk1(xμk)} \mathcal{N}(\mathbf{x}|\mu_k,\Sigma_k)=\frac{1}{ {(2\pi)}^\frac{d}{2}|\Sigma_k|^{\frac{1}{2}}}\exp\{ -\frac{1}{2}{(\mathbf{x}-\mu_k)^T\Sigma_k^{-1}(\mathbf{x}-\mu_k)}\}
模型中需要估计的参数有{πk,μk,Σk},k=1,2,3,K\{\pi_k,\mu_k,\Sigma_k\},k=1,2,3,\dots K
采用EM算法的基础是将样本x(i)\mathbf{x}^{(i)}看作观测数据,观测数据所述的成分yi{1,2,,K}y^{i}\in \{1,2,\dots,K\}看作隐含数据。那么完全数据就是(x(i),y(i))(\mathbf{x}^{(i)},y^{(i)}),其中混合模型中的N(μi,Σi)\mathcal{N}(\mu_i,\Sigma_i)可以用其他模型代替,高斯混合模型应用最广。

先试试最大似然

P(X)=n=1NP(x(n))=n=1N(k=1KπkN(x(n)μk,Σk))P(\mathbf{X})=\prod_{n=1}^{N}P(x^{(n)})=\prod_{n=1}^{N}\left(\sum_{k=1}^{K}\pi_k\mathcal{N}(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)\right)
θ={μ1,μ2,μK,Σ1,.Σ2,,ΣK}\theta=\{\mu_1,\mu_2,\dots \mu_K,\Sigma_1,.\Sigma_2,\dots,\Sigma_K\}
对数似然
L(θ)=lnP(x)=n=1Nln[k=1KπkN(x(n)μk,Σk)] L(\theta)=\ln P(\mathbf{x})=\sum_{n=1}^{N}\ln\left[\sum_{k=1}^{K}\pi_k\mathcal{N}(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)\right]
求个导数看看
dL(θ)dπk=0 \frac{dL(\theta)}{d\pi_k}=0
dL(θ)dμk=0 \frac{dL(\theta)}{d\mu_k}=0
dL(θ)dΣk=0 \frac{dL(\theta)}{d\Sigma_k}=0
TODO 老师说这里没有解析解就没有往下算了,日后有兴趣再补上

EM算法

第一步 导出完全数据的对数似然函数


znk={1第n个样本来自第k个成分0otherwisez_{nk}=\begin{cases} 1 \quad\text{第n个样本来自第k个成分}\\ 0 \quad\text{otherwise} \end{cases}
其中n=1,2,3,Nn=1,2,3,\dots Nk=1,2,3,,Kk=1,2,3,\dots,K
(注:李航书上使用的γ\gamma,含义相同)
完全数据的对数似然函数
lnP(X,Z)=lnn=1NP(x(n),zn1,zn2,,znKθ)=lnn=1Nk=1K(πkN(x(n)μk,Σk))znk=n=1Nk=1KlnπkN(x(n)μk,Σk) \ln P(\mathbf{X,\mathbf{Z}})=\ln \prod_{n=1}^{N}P(\mathbf{x}^{(n)},z_{n1},z_{n2},\dots,z_{nK}|\theta)\\ =\ln\prod_{n=1}^{N}\prod_{k=1}^{K}\left(\pi_k\mathcal{N}(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)\right)^{z_{nk}}\\ =\sum_{n=1}^{N}\sum_{k=1}^{K}\ln\pi_k\mathcal{N(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)}\\

计算Q函数

Q函数为完全对数似然函数对条件概率的期望
Q(θ,θ(i))=EP(ZX)lnP(X,Z)=n=1Nk=1KP(znkx(n),θ(i))lnπkN(x(n)μk,Σk)=n=1Nk=1Kz^nklnπkN(x(n)μk,Σk) Q(\theta,\theta^{(i)})=\mathcal{E}_{P(Z|X)}\ln P(\mathbf{X},\mathbf{Z})\\ =\sum_{n=1}^{N}\sum_{k=1}^{K}P(z_{nk}|\mathbf{x}^{(n)},\theta^{(i)})\ln\pi_k\mathcal{N(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)}\\ =\sum_{n=1}^{N}\sum_{k=1}^{K}\hat{z}_{nk}\ln\pi_k\mathcal{N(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)}
需要计算P(znkx(i),θ(i))P(z_{nk}|\mathbf{x}^{}(i),\theta^{(i)}),记为
z^nk=P(znkx(n),θ(i))=P(znk=1,x(i))P(x)=P(xnznk=1,θ(i))P(znk)k=1KP(xnznk=1,θ(i))P(znk)=πkN(x(x)μi,Σi)k=1KπkN(x(n)μk,Σk) \hat{z}_{nk} = P(z_{nk}|x^{(n)},\theta^{(i)}) \\ =\frac{P(z_{nk}=1,\mathbf{x}^{}(i))}{P(\mathbf{x})}\\ =\frac{P(\mathbf{x}^{n}|z_{nk}=1,\theta(i))P(z_{nk})}{\sum_{k=1}^{K}P(\mathbf{x}^{n}|z_{nk}=1,\theta(i))P(z_{nk})}\\ =\frac{\pi_k\mathcal{N}(\mathbf{x}^{(x)}|\mu_i,\Sigma_i)}{\sum_{k=1}^{K}\pi_k\mathcal{N}(\mathbf{x^{(n)}}|\mu_k,\Sigma_k)}

最大化Q函数

z^nk\hat{z}_{nk}在每次迭代的过程中可以当作一个常数代入,因此Q函数的形式还是比较简洁的,但是求导的难度比较大,尤其是对协方差矩阵求导,涉及到矩阵的行列式、矩阵的逆对矩阵求导,这个工作量比较大。先看简单一点的求πk(i+1)\pi_k^{(i+1)}
Q函数先写为
Q(θ,θ(i))=n=1Nk=1Kz^nk(lnπk+lnN(x(n)μk,Σk))=n=1Nk=1Kz^nk(lnπkd2ln(2π)12lnΣk12(x(n)μk)TΣk1(x(n)μk)) Q(\theta,\theta^{(i)})=\sum_{n=1}^{N}\sum_{k=1}^{K}\hat{z}_{nk}\left(\ln\pi_k+\ln\mathcal{N(\mathbf{x}^{(n)}|\mu_k,\Sigma_k)}\right)\\ =\sum_{n=1}^{N}\sum_{k=1}^{K}\hat{z}_{nk}\left(\ln\pi_k-\frac{d}{2}\ln(2\pi)-\frac{1}{2}\ln|\Sigma_k|-\frac{1}{2}(\mathbf{x}^{(n)}-\mu_k)^T\Sigma_k^{-1}(\mathbf{x}^{(n)}-\mu_k)\right)
μk\mu_kΣk\Sigma_k的估计值可以直接令导数等于0
dQ(θ,θ(i))dμk=n=1Nz^nkΣk1(x(n)μk)=0n=1Nz^nkxn=n=1Nz^nkμk \frac{dQ(\theta,\theta^{(i)})}{d\mu_k}=\sum_{n=1}^{N}\hat{z}_{nk}\Sigma_k^{-1}(\mathbf{x}^{(n)}-\mu_k)=0\\ \sum_{n=1}^{N}\hat{z}_{nk}\mathbf{x}^{n}=\sum_{n=1}^{N}\hat{z}_{nk}\mu_k\\
所以化简得到μk\mu_k的更新公式为:
μk(i+1)=n=1Nz^nkx(n)n=1Nz^nk \mu_k^{(i+1)} = \frac{\sum_{n=1}^{N}\hat{z}_{nk}\mathbf{x}^{(n)}}{\sum_{n=1}^{N}\hat{z}_{nk}}
协方差矩阵的更新公式推导需要单独整理成博客。这里先给出结果
Σk(i+1)=n=1Nz^nk(x(n)μk(i+1))(x(n)μk(i+1))Tn=1Nz^nk \Sigma_k^{(i+1)}=\frac{\sum_{n=1}^{N}\hat{z}_{nk}(\mathbf{x}^{(n)}-\mu_k^{(i+1)})(\mathbf{x}^{(n)}-\mu_k^{(i+1)})^T}{\sum_{n=1}^{N}\hat{z}_{nk}}
πk\pi_k的更新公式
πk(i+1)=n=1Nz^nkN \pi_k^{(i+1)} = \frac{\sum_{n=1}^{N}\hat{z}_{nk}}{N}

EM算法的典型应用之隐马尔可夫模型

EM算法的拓展

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!