09_期望极大法EM2_统计学习方法
文章目录
- 四、高斯混合模型GMM
- 1、GMM与Adaboost比较
- 2、GMM参数估计的EM算法
- (1)明确隐变量,写出完整数据的对数似然函数
- (2)EM算法的E步:确定Q函数
- (3)EM算法的M步
- (4)GMM参数估计的EM算法流程
- 五、EM算法的推广
- 1、F函数的极大极大算法
- (1)F函数定义
- (2)F函数第1次求极大
- (3)F函数第2次求极大
- 2、GEM算法
- (1)GEM算法1
- (2)GEM算法2
- (3)GEM算法3
EM内容较多,方便阅读,分成2个部分
上接:09_期望极大法EM1_统计学习方法
四、高斯混合模型GMM
高斯混合模型是指具有如下形式的概率分布模型:
P(y∣θ)=∑k=1Kαkϕ(y∣θk)(20)P(y|\theta) = \sum_{k=1}^K \alpha_k \phi(y|\theta_k) \tag{20}P(y∣θ)=k=1∑Kαkϕ(y∣θk)(20)
- αk\alpha_kαk是系数,αk≥0,∑k=1Kαk=1\alpha_k \geq 0,\sum_{k=1}^K \alpha_k= 1αk≥0,∑k=1Kαk=1;
- ϕ(y∣θk)\phi(y|\theta_k)ϕ(y∣θk)是高斯分布密度,θk=(μk,σk2)\theta_k = (\mu_k,\sigma_k^2)θk=(μk,σk2)
ϕ(y∣θk)=12πσkexp(−(y−μk)22σk2)(21)\phi(y|\theta_k) = \dfrac{1}{\sqrt{2\pi}\space \sigma_k}exp \left( -\dfrac{(y - \mu_k)^2}{2\sigma_k^2}\right) \tag{21}ϕ(y∣θk)=2π σk1exp(−2σk2(y−μk)2)(21)
称为第k个分模型。
1、GMM与Adaboost比较
看到式(20)首先让我想到的是Adaboost算法,因为太像了。说下异同点:
- 模型:都是加法模型,Adaboost基学习器不指定,也就是说明也可以使用高斯分布。
- 策略:Adaboost采用的是指数损失函数,而GMM采用的是对数损失函数,根据基学习函数和算法来选择较合适的就行,不是重要的区别项。
- 算法:Adaboost前向分步算法,基学习器数量M是根据终止循环条件确定的,基学习器权重系数αm\alpha_mαm之和不指定为1。GMM是采用EM算法,分模型数量K是在学习之前就指定的,分模型权重系数αk\alpha_kαk之和指定为1。Adaboost用于监督学习,GMM用于非监督学习,这是两种算法最主要的区别。
2、GMM参数估计的EM算法
假设观测数据y1,y2,⋯,yNy_1,y_2,\cdots ,y_Ny1,y2,⋯,yN由高斯混合模型生成,
P(y∣θ)=∑k=1Kαkϕ(y∣θk)(22)P(y|\theta) = \sum_{k=1}^K \alpha_k \phi(y|\theta_k) \tag{22}P(y∣θ)=k=1∑Kαkϕ(y∣θk)(22)
其中,θ=(α1,α2,⋯,αK;θ1,θ2,⋯,θK)\theta = (\alpha_1,\alpha_2,\cdots ,\alpha_K;\theta_1,\theta_2,\cdots ,\theta_K)θ=(α1,α2,⋯,αK;θ1,θ2,⋯,θK)。
(1)明确隐变量,写出完整数据的对数似然函数
可以设想观测数据yj,j=1,2,⋯,Ny_j,j=1,2,\cdots ,Nyj,j=1,2,⋯,N,是这样产生的:首先依概率αk\alpha_kαk选择第k个高斯分布分模型ϕ(y∣θk)\phi(y|\theta_k)ϕ(y∣θk);然后依第k个分模型的概率分布ϕ(y∣θk)\phi(y|\theta_k)ϕ(y∣θk)生成观测数据yjy_jyj。这时观测数据yj,j=1,2,⋯,Ny_j,j=1,2,\cdots ,Nyj,j=1,2,⋯,N,是已知的;反映观测数据yjy_jyj来自第k个分模型的数据是未知的,k=1,2,⋯,Kk = 1,2,\cdots ,Kk=1,2,⋯,K,以隐变量γjk\gamma_{jk}γjk表示,其定义如下:
γjk={1,第j个观测来自第k个分模型0,否则j=1,2,⋯,N;k=1,2,⋯,K\gamma_{jk} = \begin{cases} 1, & \text{第j个观测来自第k个分模型} \\[2ex] 0, & \text{否则} \end{cases}\\ j=1,2,\cdots ,N;k=1,2,\cdots ,K γjk=⎩⎨⎧1,0,第j个观测来自第k个分模型否则j=1,2,⋯,N;k=1,2,⋯,K
γjk\gamma_{jk}γjk是0-1随机变量。
有了观测数据yjy_jyj及未观测数据γjk\gamma_{jk}γjk,那么完全数据是
(yj,γj1,γj2,⋯,γjK),j=1,2,⋯,N(y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}),\space j=1,2,\cdots ,N(yj,γj1,γj2,⋯,γjK), j=1,2,⋯,N
于是,可以写出完全数据的似然函数:
P(y,γ∣θ)=∏j=1NP(yj,γj1,γj2,⋯,γjK∣θ)=∏j=1N∏k=1K[αkϕ(yj∣θk)]γjk=∏k=1Kαknk∏j=1N[ϕ(yj∣θk)]γjk=∏k=1Kαknk∏j=1N[12πσkexp(−(y−μk)22σk2)]γjk(23)\begin{aligned}P(y,\gamma|\theta) & = \prod_{j=1}^N P(y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}|\theta) \\ & = \prod_{j=1}^N \prod_{k=1}^K [\alpha_k \phi(y_j|\theta_k)]^{\gamma_{jk}} \\ & = \prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N [\phi(y_j|\theta_k)]^{\gamma_{jk}} \\ & = \prod_{k=1}^K \alpha_k^{n_k} \prod_{j=1}^N \left[ \dfrac{1}{\sqrt{2\pi}\space\sigma_k}exp \left( -\dfrac{(y - \mu_k)^2}{2\sigma_k^2}\right)\right]^{\gamma_{jk}} \tag{23} \end{aligned}P(y,γ∣θ)=j=1∏NP(yj,γj1,γj2,⋯,γjK∣θ)=j=1∏Nk=1∏K[αkϕ(yj∣θk)]γjk=k=1∏Kαknkj=1∏N[ϕ(yj∣θk)]γjk=k=1∏Kαknkj=1∏N[2π σk1exp(−2σk2(y−μk)2)]γjk(23)
其中,nk=∑j=1Nγjk,∑k=1Knk=Nn_k = \sum_{j=1}^N \gamma_{jk},\space \sum_{k=1}^K n_k = Nnk=∑j=1Nγjk, ∑k=1Knk=N。
那么,完全数据的对数似然函数为
lnP(y,γ∣θ)=∑k=1Knklnαk+∑k=1K∑j=1Nγjk[ln(12π)−lnσk−12σk2(yj−μk)2](24)ln P(y,\gamma|\theta) = \sum_{k=1}^K n_k ln\alpha_k + \sum_{k=1}^K\sum_{j=1}^N \gamma_{jk}\left[ ln\left( \dfrac{1}{\sqrt{2\pi}} \right)- ln\sigma_k - \dfrac{1}{2\sigma_k^2}(y_j - \mu_k)^2 \right] \tag{24}lnP(y,γ∣θ)=k=1∑Knklnαk+k=1∑Kj=1∑Nγjk[ln(2π1)−lnσk−2σk21(yj−μk)2](24)
(2)EM算法的E步:确定Q函数
Q(θ,θ(i))=E[lnP(y,γ∣θ)∣y,θ(i)]=E{∑k=1Knklnαk+∑k=1K∑j=1Nγjk[ln(12π)−lnσk−12σk2(yj−μk)2]}=∑k=1K{∑j=1N(Eγjk)lnαk+∑j=1N(Eγjk)[ln(12π)−lnσk−12σk2(yj−μk)2]}(25)\begin{aligned}Q(\theta,\theta^{(i)}) & = E[lnP(y,\gamma|\theta)|y,\theta^{(i)}] \\ & = E\left\{ \sum_{k=1}^K n_k ln\alpha_k + \sum_{k=1}^K\sum_{j=1}^N \gamma_{jk}\left[ ln\left( \dfrac{1}{\sqrt{2\pi}} \right)- ln\sigma_k - \dfrac{1}{2\sigma_k^2}(y_j - \mu_k)^2 \right]\right\} \\ & = \sum_{k=1}^K \left\{ \sum_{j=1}^N (E\gamma_{jk}) ln\alpha_k + \sum_{j=1}^N(E\gamma_{jk})\left[ ln\left( \dfrac{1}{\sqrt{2\pi}} \right)- ln\sigma_k - \dfrac{1}{2\sigma_k^2}(y_j - \mu_k)^2 \right] \right\} \tag{25} \end{aligned}Q(θ,θ(i))=E[lnP(y,γ∣θ)∣y,θ(i)]=E{k=1∑Knklnαk+k=1∑Kj=1∑Nγjk[ln(2π1)−lnσk−2σk21(yj−μk)2]}=k=1∑K{j=1∑N(Eγjk)lnαk+j=1∑N(Eγjk)[ln(2π1)−lnσk−2σk21(yj−μk)2]}(25)
这里需要计算E(γjk∣y,θ)E(\gamma_{jk}|y,\theta)E(γjk∣y,θ),记为γ^jk\hat\gamma_{jk}γ^jk。
γ^jk=E(γjk∣y,θ)=P(γjk=1∣y,θ)=P(γjk=1∣yj,θ)∑k=1KP(γjk=1∣yj,θ)=P(yj∣γjk=1,θ)P(γjk=1∣θ)∑k=1KP(yj∣γjk=1,θ)P(γjk=1∣θ)=αkϕ(yj∣θk)∑k=1Kαkϕ(yj∣θk),j=1,2,⋯,N;k=1,2,⋯,K(26)\begin{aligned} \hat\gamma_{jk} & = E(\gamma_{jk}|y,\theta) = P(\gamma_{jk} = 1|y,\theta) \\ & = \dfrac{P(\gamma_{jk} = 1|y_j,\theta)}{\sum_{k=1}^K P(\gamma_{jk} = 1|y_j,\theta)} \\ & = \dfrac{P(y_j|\gamma_{jk} = 1,\theta)P(\gamma_{jk} = 1|\theta)}{\sum_{k=1}^K P(y_j|\gamma_{jk} = 1,\theta)P(\gamma_{jk} = 1|\theta)} \\ & = \dfrac{\alpha_k \phi(y_j|\theta_k)}{\sum_{k=1}^K \alpha_k \phi(y_j|\theta_k)},\space\space j=1,2,\cdots,N;\space k=1,2,\cdots,K \tag{26} \end{aligned}γ^jk=E(γjk∣y,θ)=P(γjk=1∣y,θ)=∑k=1KP(γjk=1∣yj,θ)P(γjk=1∣yj,θ)=∑k=1KP(yj∣γjk=1,θ)P(γjk=1∣θ)P(yj∣γjk=1,θ)P(γjk=1∣θ)=∑k=1Kαkϕ(yj∣θk)αkϕ(yj∣θk), j=1,2,⋯,N; k=1,2,⋯,K(26)
γ^jk\hat\gamma_{jk}γ^jk是在当前模型参数下第jjj个观测数据来自第kkk个分模型的概率,称为分模型kkk对观测数据yjy_jyj的响应度。
将γ^jk=Eγjk\hat\gamma_{jk} = E\gamma_{jk}γ^jk=Eγjk及nk=∑j=1NEγjkn_k = \sum_{j=1}^N E\gamma_{jk}nk=∑j=1NEγjk代入式(25)即得
Q(θ,θ(i))=∑k=1Knklnαk+∑k=1K∑j=1Nγ^jk[ln(12π)−lnσk−12σk2(yj−μk)2](27)Q(\theta,\theta^{(i)}) = \sum_{k=1}^K n_k ln\alpha_k + \sum_{k=1}^K\sum_{j=1}^N \hat\gamma_{jk}\left[ ln\left( \dfrac{1}{\sqrt{2\pi}} \right)- ln\sigma_k - \dfrac{1}{2\sigma_k^2}(y_j - \mu_k)^2 \right] \tag{27}Q(θ,θ(i))=k=1∑Knklnαk+k=1∑Kj=1∑Nγ^jk[ln(2π1)−lnσk−2σk21(yj−μk)2](27)
(3)EM算法的M步
迭代的M步是求函数Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))对θ\thetaθ的极大值,即求新一轮迭代的模型参数:
θ(i+1)=argmaxθQ(θ,θ(i))(28)\theta^{(i+1)} = arg \space \max_{\theta}Q(\theta,\theta^{(i)}) \tag{28}θ(i+1)=arg θmaxQ(θ,θ(i))(28)
用μ^k,σ^k2\hat\mu_k,\hat\sigma_k^2μ^k,σ^k2及α^k,k=1,2,⋯,K\hat\alpha_k,\space k=1,2,\cdots,Kα^k, k=1,2,⋯,K,表示θ(i+1)\theta^{(i+1)}θ(i+1)的各参数。求μ^k,σ^k2\hat\mu_k,\hat\sigma_k^2μ^k,σ^k2只需将式(24)分别对μk,σk\mu_k,\sigma_kμk,σk求偏导数并令其为0,即可得到;求α^k\hat\alpha_kα^k是在∑k=1Kαk=1\sum_{k=1}^K\alpha_k = 1∑k=1Kαk=1条件下求偏导数并令其为0得到的。综合,可以构造Q函数拉格朗日函数L(θ,αk)=Q(θ,θ(i))+λ(∑k=1Kαk−1)L(\theta,\alpha_k) = Q(\theta,\theta^{(i)}) + \lambda(\sum_{k=1}^K\alpha_k - 1)L(θ,αk)=Q(θ,θ(i))+λ(∑k=1Kαk−1),直接对μk,σk,αk\mu_k,\sigma_k,\alpha_kμk,σk,αk求偏导数并令其为0得到μ^k,σ^k2,α^k\hat\mu_k,\hat\sigma_k^2,\hat\alpha_kμ^k,σ^k2,α^k。结果如下:
μ^k=∑j=1Nγ^jkyj∑j=1Nγ^jk,k=1,2,⋯,K(29)\hat\mu_k = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}y_j}{\sum_{j=1}^N\hat\gamma_{jk}},\space\space k =1,2,\cdots,K \tag{29}μ^k=∑j=1Nγ^jk∑j=1Nγ^jkyj, k=1,2,⋯,K(29)
σ^k2=∑j=1Nγ^jk(yj−μk)2∑j=1Nγ^jk,k=1,2,⋯,K(30)\hat\sigma_k^2 = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}(y_j - \mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}},\space\space k =1,2,\cdots,K \tag{30}σ^k2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μk)2, k=1,2,⋯,K(30)
α^k=nkN=∑j=1Nγ^jkN,k=1,2,⋯,K(31)\hat\alpha_k = \dfrac{n_k}{N} = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}}{N},\space\space k =1,2,\cdots,K \tag{31}α^k=Nnk=N∑j=1Nγ^jk, k=1,2,⋯,K(31)
重复以上E步和M步计算,直到对数似然函数值不再有明显的变化为止。
(4)GMM参数估计的EM算法流程
输入:观测数据y1,y2,⋯,yNy_1,y_2,\cdots,y_Ny1,y2,⋯,yN,高斯混合模型;
输出:高斯混合模型参数。
1)取参数的初始值开始迭代
2)E步:依据当前模型参数,计算分模型k对观测数据yjy_jyj的响应度
γ^jk=αkϕ(yj∣θk)∑k=1Kαkϕ(yj∣θk),j=1,2,⋯,N;k=1,2,⋯,K\hat\gamma_{jk} = \dfrac{\alpha_k \phi(y_j|\theta_k)}{\sum_{k=1}^K \alpha_k \phi(y_j|\theta_k)},\space\space j=1,2,\cdots,N;\space k=1,2,\cdots,K γ^jk=∑k=1Kαkϕ(yj∣θk)αkϕ(yj∣θk), j=1,2,⋯,N; k=1,2,⋯,K
3)M步:计算新一轮迭代的模型参数
μ^k=∑j=1Nγ^jkyj∑j=1Nγ^jk,k=1,2,⋯,K\hat\mu_k = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}y_j}{\sum_{j=1}^N\hat\gamma_{jk}},\space\space k =1,2,\cdots,K μ^k=∑j=1Nγ^jk∑j=1Nγ^jkyj, k=1,2,⋯,K
σ^k2=∑j=1Nγ^jk(yj−μk)2∑j=1Nγ^jk,k=1,2,⋯,K\hat\sigma_k^2 = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}(y_j - \mu_k)^2}{\sum_{j=1}^N\hat\gamma_{jk}},\space\space k =1,2,\cdots,K σ^k2=∑j=1Nγ^jk∑j=1Nγ^jk(yj−μk)2, k=1,2,⋯,K
α^k=nkN=∑j=1Nγ^jkN,k=1,2,⋯,K\hat\alpha_k = \dfrac{n_k}{N} = \dfrac{\sum_{j=1}^N\hat\gamma_{jk}}{N},\space\space k =1,2,\cdots,K α^k=Nnk=N∑j=1Nγ^jk, k=1,2,⋯,K
4)重复第2)和3)步,直到收敛。
这部分的总结几乎就是照搬李航统计学习方法的内容,刚开始看的时候比较生涩,另外里面的公式(9.28)和(9.29)个人感觉是略有问题,少个求和符号。仔细分析推导后感觉还是挺不错的,所以总结还是统计学习方法内容为主。前面推导EM算法的时候有介绍Andrew NG的推导过程,如果GMM按照这种思路推导也是可以的,可以参照高斯混合模型(GMM),写的非常不错,里面还有详细的的拉格朗日函数求解过程,我也是看过这篇博客后才进一步理解李航的推导过程。
五、EM算法的推广
EM算法还可以解释为F函数的极大极大算法,基于这个解释有若干变形与推广,如广义期望极大算法(GEM)。
1、F函数的极大极大算法
(1)F函数定义
F函数定义:假设隐变量数据Z的概率分布为P~(Z)\tilde{P}(Z)P~(Z),定义分布P~\tilde{P}P~与参数θ\thetaθ的函数F(P~,θ)F(\tilde{P},\theta)F(P~,θ)如下:
F(P~,θ)=EP~[lnP(Y,Z∣θ)]+H(P~)(32)F(\tilde{P},\theta) = E_{\tilde{P}}[lnP(Y,Z|\theta)] + H(\tilde{P}) \tag{32}F(P~,θ)=EP~[lnP(Y,Z∣θ)]+H(P~)(32)
称为F函数。式中H(P~)=−EP~lnP~(Z)=−∑ZP~(Z)lnP~(Z)H(\tilde{P}) = -E_{\tilde{P}}ln\tilde{P}(Z) = -\sum_{Z}\tilde{P}(Z)ln\tilde{P}(Z)H(P~)=−EP~lnP~(Z)=−∑ZP~(Z)lnP~(Z)是分布P~(Z)\tilde{P}(Z)P~(Z)的熵。
则F函数可以写作:
F(P~,θ)=EP~[lnP(Y,Z∣θ)]+H(P~)=∑ZP~(Z)lnP(Y,Z∣θ)−∑ZP~(Z)lnP~(Z)=∑ZP~(Z)lnP(Y,Z∣θ)P~(Z)≤∑Zln(P~(Z)P(Y,Z∣θ)P~(Z))=∑ZlnP(Y,Z∣θ)=lnP(Y∣θ)(33)\begin{aligned} F(\tilde{P},\theta) & = E_{\tilde{P}}[lnP(Y,Z|\theta)] + H(\tilde{P})\\ & = \sum_{Z}\tilde{P}(Z)lnP(Y,Z|\theta) -\sum_{Z}\tilde{P}(Z)ln\tilde{P}(Z) \\ & = \sum_{Z}\tilde{P}(Z)ln\dfrac{P(Y,Z|\theta)}{\tilde{P}(Z)} \\ & \leq \sum_{Z}ln\left(\tilde{P}(Z)\dfrac{P(Y,Z|\theta)}{\tilde{P}(Z)} \right) \\ & = \sum_{Z}lnP(Y,Z|\theta) \\ & = lnP(Y|\theta)\tag{33} \end{aligned}F(P~,θ)=EP~[lnP(Y,Z∣θ)]+H(P~)=Z∑P~(Z)lnP(Y,Z∣θ)−Z∑P~(Z)lnP~(Z)=Z∑P~(Z)lnP~(Z)P(Y,Z∣θ)≤Z∑ln(P~(Z)P~(Z)P(Y,Z∣θ))=Z∑lnP(Y,Z∣θ)=lnP(Y∣θ)(33)
因为∑ZP~(Z)=1\sum_Z\tilde{P}(Z) =1∑ZP~(Z)=1和(lnx)′′=−1x2≤0(lnx)'' = -\dfrac{1}{x^2} \leq 0(lnx)′′=−x21≤0,所以可以使用Jensen不等式进行上述变形。
之前的EM算法是求期望和求极大值两个步骤。现在的F函数变成了求两次极大值,实际上第一次求极大值也是求期望。把式(10.1)和式(33)的变换过程放在一起看就明了F函数定义,实际上F函数就是对数似然函数的下界。
(2)F函数第1次求极大
F第一次求极大,即使式(33)的变化过程中取得等号,根据Jensen不等式得知,当P(Y,Z∣θ)P~(Z)=c\dfrac{P(Y,Z|\theta)}{\tilde{P}(Z)} = cP~(Z)P(Y,Z∣θ)=c,ccc为常数的时候等号成立。根据式(10.2)求解,可得
P~(Z)=P(Z∣Y,θ)(34)\tilde{P}(Z) = P(Z|Y,\theta) \tag{34}P~(Z)=P(Z∣Y,θ)(34)
(3)F函数第2次求极大
当求完第1次极大值时可得
F(P~,θ)=lnP(Y∣θ)F(\tilde{P},\theta) = lnP(Y|\theta)F(P~,θ)=lnP(Y∣θ)
所以有
θ(i+1)=argmaxθF(P~,θ)=argmaxθlnP(Y∣θ)=argmaxθQ(θ,θ(i))(35)\begin{aligned} \theta^{(i+1)} = arg \max_{\theta}\space F(\tilde{P},\theta) = arg \max_{\theta}\space lnP(Y|\theta) = arg \max_{\theta}\space Q(\theta,\theta^{(i)})\tag{35} \end{aligned}θ(i+1)=argθmax F(P~,θ)=argθmax lnP(Y∣θ)=argθmax Q(θ,θ(i))(35)
第2步极大值求解和EM算法中的M步一样,个人感觉F函数的极大极大求解和EM就是完全一样,换了个马甲而已。由于第二次极大化求解有时比较困难,所以发展出了不同的GEM算法。
2、GEM算法
(1)GEM算法1
输入:观测数据,F函数;
输出:模型参数.
1)初始化参数θ(0)θ^{(0)}θ(0),开始迭代
2)第i+1i+1i+1次迭代,第一步:记θ(i)θ^{(i)}θ(i)为参数θθθ的估计值,P~(i)\tilde{P}^{(i)}P~(i)为函数P~\tilde{P}P~的估计,求P~(i+1)\tilde{P}^{(i+1)}P~(i+1)使P~\tilde{P}P~极大化F(P~,θ(i))F(\tilde{P},θ^{(i)})F(P~,θ(i))
3)第二步:求θ(i+1)θ^{(i+1)}θ(i+1)使F(P~(i+1),θ(i))F(\tilde{P}^{(i+1)},θ^{(i)})F(P~(i+1),θ(i))极大化
4)重复2和3,直到收敛
在GEM算法1中,有时求QQQ函数的极大化是很困难的,下面的算法2和算法3并不是求θ(i)θ^{(i)}θ(i)使QQQ函数达到极大的θθθ,而是找一个θ(i+1)θ^{(i+1)}θ(i+1),使得Q(θ(i+1),θ(i))>Q(θ(i),θ(i))Q(θ^{(i+1)},θ^{(i)})>Q(θ^{(i)},θ^{(i)})Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
(2)GEM算法2
输入:观测数据,Q函数;
输出:模型参数.
1)初始化参数θ(0)θ^{(0)}θ(0),开始迭代
2)第i+1i+1i+1次迭代,第一步:记θ(i)θ^{(i)}θ(i)为参数θθθ的估计值,计算
Q(θ,θ(i))=EZ[lnP(Y,Z∣θ)∣Y,θ(i)]=∑ZP(Z∣Y,θ(i))lnP(Y,Z∣θ)Q(θ,θ^{(i)})=E_Z[ln P(Y,Z|θ)|Y,θ^{(i)}]=∑_Z P(Z|Y,θ^{(i)})ln P(Y,Z|θ)Q(θ,θ(i))=EZ[lnP(Y,Z∣θ)∣Y,θ(i)]=Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ)
3)第2步:求θ(i+1)θ^{(i+1)}θ(i+1)使
Q(θ(i+1),θ(i))>Q(θ(i),θ(i))Q(θ^{(i+1)},θ^{(i)})>Q(θ^{(i)},θ^{(i)})Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
4)重复2和3,直到收敛
当参数θθθ的维度为d(d≥2)d(d \geq 2)d(d≥2)时,可采用一种特殊的GEM算法,它将EM算法的M步分解为d次条件极大化,每次只改变参数向量的一个分量,其余分量不变。
(3)GEM算法3
输入:观测数据,Q函数;
输出:模型参数.
1)初始化参数θ(0)=(θ1(0),θ2(0),...,θd(0))θ^{(0)}=(θ_1^{(0)},θ_2^{(0)},...,θ_d^{(0)})θ(0)=(θ1(0),θ2(0),...,θd(0)),开始迭代
2)第i+1i+1i+1次迭代,第1步:记θ(i)=(θ1(i),θ2(i),...,θd(i))θ^{(i)}=(θ_1^{(i)},θ_2^{(i)},...,θ_d^{(i)})θ(i)=(θ1(i),θ2(i),...,θd(i))为参数θ=(θ1,θ2,...,θd)θ=(θ_1,θ_2,...,θ_d)θ=(θ1,θ2,...,θd)的估计值,计算
Q(θ,θ(i))=EZ[lnP(Y,Z∣θ)∣Y,θ(i)]=∑ZP(Z∣Y,θ(i))lnP(Y,Z∣θ)Q(θ,θ^{(i)})=E_Z[ln P(Y,Z|θ)|Y,θ^{(i)}]=∑_Z P(Z|Y,θ^{(i)})ln P(Y,Z|θ)Q(θ,θ(i))=EZ[lnP(Y,Z∣θ)∣Y,θ(i)]=Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ)
3)第2步:进行d次条件极大化:
首先,在θ2(i),...,θk(i)θ_2^{(i)},...,θ_k^{(i)}θ2(i),...,θk(i)保持不变的条件下求使得Q(θ,θ(i))Q(θ,θ^{(i)})Q(θ,θ(i))达到极大的θ1(i+1)θ_1^{(i+1)}θ1(i+1)
然后,在θ1=θ1(i+1),θj=θj(i),j=3,4,...,kθ_1=θ_1^{(i+1)},θ_j=θ_j^{(i)},j=3,4,...,kθ1=θ1(i+1),θj=θj(i),j=3,4,...,k的条件下求使Q(θ,θ(i))Q(θ,θ^{(i)})Q(θ,θ(i))达到极大的θ2(i+1)θ_2^{(i+1)}θ2(i+1)
如此继续,经过d次条件极大化,得到θ(i+1)=(θ1(i+1),θ2(i+1),...,θd(i+1))θ^{(i+1)}=(θ_1^{(i+1)},θ_2^{(i+1)},...,θ_d^{(i+1)})θ(i+1)=(θ1(i+1),θ2(i+1),...,θd(i+1))使得
Q(θ(i+1),θ(i))>Q(θ(i),θ(i))Q(θ^{(i+1)},θ^{(i)})>Q(θ^{(i)},θ^{(i)})Q(θ(i+1),θ(i))>Q(θ(i),θ(i))
4)重复2和3,直到收敛
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗*********************************∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
未完待续……
参考资料:
- 统计学习方法——李航
- 如何感性地理解EM算法?
- 从最大似然到EM算法浅解
- EM算法学习
- 高斯混合模型(GMM)
09_期望极大法EM2_统计学习方法相关推荐
- 09_期望极大法EM1_统计学习方法
文章目录 一.EM算法的引入 1.极大似然估计 2.EM入场 二.EM算法推导 1.Jensen不等式 2.EM推导过程 (1)统计学习方法EM推导 (2)Andrew NG关于EM算法的推导 3.统 ...
- 统计学习与方法实战——统计学习方法概论
统计学习方法概论题 统计学习方法概论 实现统计学习方法的步骤 统计学习方法三要素 模型 策略 损失函数与风险函数 定义 常用损失函数 经验风险最小化(ERM)与结构风险最小化(SRM) 模型评估与模型 ...
- 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书
文章目录 机器学习百科全书目录 Pattern Recognition and Machine Learning The Elements of Statistical Learning (Secon ...
- 统计学习方法笔记 -- 概论
统计学习方法是基于训练数据构建统计模型,从而对数据进行预测和分析. 统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement l ...
- 统计学习方法笔记(九)-最大熵原理及python实现
最大熵模型 最大熵模型介绍 最大熵模型原理 代码案例 案例地址 最大熵模型介绍 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...
- 统计学习方法笔记(四)-最大熵模型原理及python实现
最大熵模型 最大熵模型 最大熵原理 最大熵模型 代码实现 案例地址 最大熵模型 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...
- 统计学习方法笔记(三)-朴素贝叶斯原理及python实现
朴素贝叶斯 条件概率 特征条件独立假设 朴素贝叶分类器 朴素贝叶斯分类算法原理 学习与分类算法 朴素贝叶斯算法原理 模型 多项式模型 高斯模型 伯努利模型 多项式模型的朴素贝叶斯分类器实现代码 高斯模 ...
- 李航-统计学习方法-笔记-1:概论
写在前面 本系列笔记主要记录<统计学习方法>中7种常用的机器学习分类算法,包括感知机,KNN,朴素贝叶斯,决策树,逻辑斯谛回归与最大熵模型,SVM,boosting. 课本还涉及到3种算法 ...
- 复现经典:《统计学习方法》第19章 马尔可夫链蒙特卡罗法
第19章 马尔可夫链蒙特卡罗法 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...
最新文章
- 快速人脸验证--MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices
- LINUX下忘记MySQL的ROOT密码后修改,以及添加访问IP。
- 仰视源代码,实现strcpy
- Zabbix配置微信报警通知
- Java并发编程高级篇(十):分离任务的执行和结果的处理
- Windows编程判断是否为该进程的父进程
- 五分钟深入 Hadoop 内核
- Linux调试分析诊断利器——strace
- 【转】解决“你没有权限访问,请与网络管理员联系”
- Atitit 软件项目系统托盘图标解决方案
- 关于机器人运动学与动力学建模的几点领悟
- 智能语言-中科院分词系统ICTCLAS(NLPIR)
- 尚学堂百战程序员python_尚学堂百战程序员:Python之数据分析库
- pr转场 18种不同风格图形元素小故障视频过渡pr视频转场模板
- GCN与图谱理论(三):图的谱分析与图傅里叶变换
- The JAVA_HOME environment variable is not defined correctly(亲测有效)
- 国内物联网平台初探(八):中移物联网开放平台OneNet
- pcl::MovingLeastSquares滑动最小二乘
- Redis删除键命令: 入门用del,老手用unlink,有何区别?
- Vue-router导航
热门文章
- 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法...
- 关于Axure RP
- 【改进】用Log4net建立日志记录
- [Android实例] 有关spinner 的item问题 谁能给解答下??
- sql 删除重复记录
- 【python】Python的基本数据类型之运算符
- Spring @RequestMapping注解示例
- mysql标记上具有语法错误_ProgrammingError:(1064,'您的SQL语法有错误;请查看与MySQL服务器版本相对应的手册以获得正确的语法...
- 计算机应用基础 东师 离线,东师1609计算机应用基础离线作业(8页)-原创力文档...
- Python 面向对象程序设计(一)