文章目录

  • 四、高斯混合模型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π​ σk​1​exp(−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∏N​P(yj​,γj1​,γj2​,⋯,γjK​∣θ)=j=1∏N​k=1∏K​[αk​ϕ(yj​∣θk​)]γjk​=k=1∏K​αknk​​j=1∏N​[ϕ(yj​∣θk​)]γjk​=k=1∏K​αknk​​j=1∏N​[2π​ σk​1​exp(−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=1K​nk​=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∑K​nk​lnαk​+k=1∑K​j=1∑N​γjk​[ln(2π​1​)−lnσk​−2σk2​1​(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∑K​nk​lnαk​+k=1∑K​j=1∑N​γjk​[ln(2π​1​)−lnσk​−2σk2​1​(yj​−μk​)2]}=k=1∑K​{j=1∑N​(Eγjk​)lnαk​+j=1∑N​(Eγjk​)[ln(2π​1​)−lnσk​−2σk2​1​(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=1K​P(γjk​=1∣yj​,θ)P(γjk​=1∣yj​,θ)​=∑k=1K​P(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=1N​Eγ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∑K​nk​lnαk​+k=1∑K​j=1∑N​γ^​jk​[ln(2π​1​)−lnσk​−2σk2​1​(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 θmax​Q(θ,θ(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​γ^​jk​yj​​,  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​γ^​jk​yj​​,  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)=−∑Z​P~(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∑Z​P~(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_统计学习方法相关推荐

  1. 09_期望极大法EM1_统计学习方法

    文章目录 一.EM算法的引入 1.极大似然估计 2.EM入场 二.EM算法推导 1.Jensen不等式 2.EM推导过程 (1)统计学习方法EM推导 (2)Andrew NG关于EM算法的推导 3.统 ...

  2. 统计学习与方法实战——统计学习方法概论

    统计学习方法概论题 统计学习方法概论 实现统计学习方法的步骤 统计学习方法三要素 模型 策略 损失函数与风险函数 定义 常用损失函数 经验风险最小化(ERM)与结构风险最小化(SRM) 模型评估与模型 ...

  3. 【机器学习百科全书目录】PRML ESL MLAPP 西瓜书 花书 RLAI 统计学习方法 蒲公英书

    文章目录 机器学习百科全书目录 Pattern Recognition and Machine Learning The Elements of Statistical Learning (Secon ...

  4. 统计学习方法笔记 -- 概论

    统计学习方法是基于训练数据构建统计模型,从而对数据进行预测和分析.  统计学习分为,监督学习(supervised learning),非监督学习,半监督学习和强化学习(reinforcement l ...

  5. 统计学习方法笔记(九)-最大熵原理及python实现

    最大熵模型 最大熵模型介绍 最大熵模型原理 代码案例 案例地址 最大熵模型介绍 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...

  6. 统计学习方法笔记(四)-最大熵模型原理及python实现

    最大熵模型 最大熵模型 最大熵原理 最大熵模型 代码实现 案例地址 最大熵模型 最大熵模型(maximum entropy model)可以用于二分类,也可以用于多分类.其是由最大熵原理推导实现的,所 ...

  7. 统计学习方法笔记(三)-朴素贝叶斯原理及python实现

    朴素贝叶斯 条件概率 特征条件独立假设 朴素贝叶分类器 朴素贝叶斯分类算法原理 学习与分类算法 朴素贝叶斯算法原理 模型 多项式模型 高斯模型 伯努利模型 多项式模型的朴素贝叶斯分类器实现代码 高斯模 ...

  8. 李航-统计学习方法-笔记-1:概论

    写在前面 本系列笔记主要记录<统计学习方法>中7种常用的机器学习分类算法,包括感知机,KNN,朴素贝叶斯,决策树,逻辑斯谛回归与最大熵模型,SVM,boosting. 课本还涉及到3种算法 ...

  9. 复现经典:《统计学习方法》第19章 马尔可夫链蒙特卡罗法

    第19章 马尔可夫链蒙特卡罗法 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...

最新文章

  1. 快速人脸验证--MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices
  2. LINUX下忘记MySQL的ROOT密码后修改,以及添加访问IP。
  3. 仰视源代码,实现strcpy
  4. Zabbix配置微信报警通知
  5. Java并发编程高级篇(十):分离任务的执行和结果的处理
  6. Windows编程判断是否为该进程的父进程
  7. 五分钟深入 Hadoop 内核
  8. Linux调试分析诊断利器——strace
  9. 【转】解决“你没有权限访问,请与网络管理员联系”
  10. Atitit 软件项目系统托盘图标解决方案
  11. 关于机器人运动学与动力学建模的几点领悟
  12. 智能语言-中科院分词系统ICTCLAS(NLPIR)
  13. 尚学堂百战程序员python_尚学堂百战程序员:Python之数据分析库
  14. pr转场 18种不同风格图形元素小故障视频过渡pr视频转场模板
  15. GCN与图谱理论(三):图的谱分析与图傅里叶变换
  16. The JAVA_HOME environment variable is not defined correctly(亲测有效)
  17. 国内物联网平台初探(八):中移物联网开放平台OneNet
  18. pcl::MovingLeastSquares滑动最小二乘
  19. Redis删除键命令: 入门用del,老手用unlink,有何区别?
  20. Vue-router导航

热门文章

  1. 演示Thread.sleep(100)和Thread.currentThread().isInterrupted()+@Deprecated:将方法标注为废弃的方法...
  2. 关于Axure RP
  3. 【改进】用Log4net建立日志记录
  4. [Android实例] 有关spinner 的item问题 谁能给解答下??
  5. sql 删除重复记录
  6. 【python】Python的基本数据类型之运算符
  7. Spring @RequestMapping注解示例
  8. mysql标记上具有语法错误_ProgrammingError:(1064,'您的SQL语法有错误;请查看与MySQL服务器版本相对应的手册以获得正确的语法...
  9. 计算机应用基础 东师 离线,东师1609计算机应用基础离线作业(8页)-原创力文档...
  10. Python 面向对象程序设计(一)