09_期望极大法EM2_统计学习方法


EM内容较多,方便阅读,分成2个部分
上接:09_期望极大法EM1_统计学习方法

四、高斯混合模型GMM

高斯混合模型是指具有如下形式的概率分布模型:
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) (20) P(y|\theta) = \sum_{k=1}^K \alpha_k \phi(y|\theta_k) \tag{20} P(yθ)=k=1Kαkϕ(yθk)(20)

  • α k \alpha_k αk是系数, α k ≥ 0 , ∑ k = 1 K α k = 1 \alpha_k \geq 0,\sum_{k=1}^K \alpha_k= 1 αk0,k=1Kαk=1
  • ϕ ( y ∣ θ k ) \phi(y|\theta_k) ϕ(yθk)是高斯分布密度, θ k = ( μ k , σ k 2 ) \theta_k = (\mu_k,\sigma_k^2) θk=(μk,σk2)
    ϕ ( y ∣ θ k ) = 1 2 π   σ k e x p ( − ( y − μ k ) 2 2 σ k 2 ) (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算法

假设观测数据 y 1 , y 2 , ⋯   , y N y_1,y_2,\cdots ,y_N y1,y2,,yN由高斯混合模型生成,
P ( y ∣ θ ) = ∑ k = 1 K α k ϕ ( y ∣ θ k ) (22) P(y|\theta) = \sum_{k=1}^K \alpha_k \phi(y|\theta_k) \tag{22} P(yθ)=k=1Kα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)明确隐变量,写出完整数据的对数似然函数

可以设想观测数据 y j , j = 1 , 2 , ⋯   , N y_j,j=1,2,\cdots ,N yjj=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)生成观测数据 y j y_j yj。这时观测数据 y j , j = 1 , 2 , ⋯   , N y_j,j=1,2,\cdots ,N yj,j=1,2,,N,是已知的;反映观测数据 y j y_j yj来自第k个分模型的数据是未知的, k = 1 , 2 , ⋯   , K k = 1,2,\cdots ,K k=1,2,,K,以隐变量 γ j k \gamma_{jk} γjk表示,其定义如下:
γ j k = { 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
γ j k \gamma_{jk} γjk是0-1随机变量。

有了观测数据 y j y_j yj及未观测数据 γ j k \gamma_{jk} γjk,那么完全数据是
( y j , γ j 1 , γ j 2 , ⋯   , γ j K ) ,   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 = 1 N P ( y j , γ j 1 , γ j 2 , ⋯   , γ j K ∣ θ ) = ∏ j = 1 N ∏ k = 1 K [ α k ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ ϕ ( y j ∣ θ k ) ] γ j k = ∏ k = 1 K α k n k ∏ j = 1 N [ 1 2 π   σ k e x p ( − ( y − μ k ) 2 2 σ k 2 ) ] γ j k (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=1NP(yj,γj1,γj2,,γjKθ)=j=1Nk=1K[αkϕ(yjθk)]γjk=k=1Kαknkj=1N[ϕ(yjθk)]γjk=k=1Kαknkj=1N[2π  σk1exp(2σk2(yμk)2)]γjk(23)
其中, n k = ∑ j = 1 N γ j k ,   ∑ k = 1 K n k = N n_k = \sum_{j=1}^N \gamma_{jk},\space \sum_{k=1}^K n_k = N nk=j=1Nγjk, k=1Knk=N

那么,完全数据的对数似然函数为
l n P ( y , γ ∣ θ ) = ∑ k = 1 K n k l n α k + ∑ k = 1 K ∑ j = 1 N γ j k [ l n ( 1 2 π ) − l n σ k − 1 2 σ k 2 ( y j − μ 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=1Knklnαk+k=1Kj=1Nγjk[ln(2π 1)lnσk2σk21(yjμk)2](24)

(2)EM算法的E步:确定Q函数

Q ( θ , θ ( i ) ) = E [ l n P ( y , γ ∣ θ ) ∣ y , θ ( i ) ] = E { ∑ k = 1 K n k l n α k + ∑ k = 1 K ∑ j = 1 N γ j k [ l n ( 1 2 π ) − l n σ k − 1 2 σ k 2 ( y j − μ k ) 2 ] } = ∑ k = 1 K { ∑ j = 1 N ( E γ j k ) l n α k + ∑ j = 1 N ( E γ j k ) [ l n ( 1 2 π ) − l n σ k − 1 2 σ k 2 ( y j − μ 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=1Knklnαk+k=1Kj=1Nγjk[ln(2π 1)lnσk2σk21(yjμk)2]}=k=1K{j=1N(Eγjk)lnαk+j=1N(Eγjk)[ln(2π 1)lnσk2σk21(yjμk)2]}(25)
这里需要计算 E ( γ j k ∣ y , θ ) E(\gamma_{jk}|y,\theta) E(γjky,θ),记为 γ ^ j k \hat\gamma_{jk} γ^jk
γ ^ j k = E ( γ j k ∣ y , θ ) = P ( γ j k = 1 ∣ y , θ ) = P ( γ j k = 1 ∣ y j , θ ) ∑ k = 1 K P ( γ j k = 1 ∣ y j , θ ) = P ( y j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) ∑ k = 1 K P ( y j ∣ γ j k = 1 , θ ) P ( γ j k = 1 ∣ θ ) = α k ϕ ( y j ∣ θ k ) ∑ k = 1 K α k ϕ ( y j ∣ θ 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(γjky,θ)=P(γjk=1y,θ)=k=1KP(γjk=1yj,θ)P(γjk=1yj,θ)=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)
γ ^ j k \hat\gamma_{jk} γ^jk是在当前模型参数下第 j j j个观测数据来自第 k k k个分模型的概率,称为分模型 k k k对观测数据 y j y_j yj的响应度

γ ^ j k = E γ j k \hat\gamma_{jk} = E\gamma_{jk} γ^jk=Eγjk n k = ∑ j = 1 N E γ j k n_k = \sum_{j=1}^N E\gamma_{jk} nk=j=1NEγjk代入式(25)即得
Q ( θ , θ ( i ) ) = ∑ k = 1 K n k l n α k + ∑ k = 1 K ∑ j = 1 N γ ^ j k [ l n ( 1 2 π ) − l n σ k − 1 2 σ k 2 ( y j − μ 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=1Knklnαk+k=1Kj=1Nγ^jk[ln(2π 1)lnσk2σk21(yjμk)2](27)

(3)EM算法的M步

迭代的M步是求函数 Q ( θ , θ ( i ) ) Q(\theta,\theta^{(i)}) Q(θ,θ(i)) θ \theta θ的极大值,即求新一轮迭代的模型参数:
θ ( i + 1 ) = a r g   max ⁡ θ Q ( θ , θ ( i ) ) (28) \theta^{(i+1)} = arg \space \max_{\theta}Q(\theta,\theta^{(i)}) \tag{28} θ(i+1)=arg θmaxQ(θ,θ(i))(28)
μ ^ k , σ ^ k 2 \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 , σ ^ k 2 \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 = 1 K α k = 1 \sum_{k=1}^K\alpha_k = 1 k=1Kαk=1条件下求偏导数并令其为0得到的。综合,可以构造Q函数拉格朗日函数 L ( θ , α k ) = Q ( θ , θ ( i ) ) + λ ( ∑ k = 1 K α k − 1 ) L(\theta,\alpha_k) = Q(\theta,\theta^{(i)}) + \lambda(\sum_{k=1}^K\alpha_k - 1) L(θ,αk)=Q(θ,θ(i))+λ(k=1Kαk1),直接对 μ k , σ k , α k \mu_k,\sigma_k,\alpha_k μk,σkαk求偏导数并令其为0得到 μ ^ k , σ ^ k 2 , α ^ k \hat\mu_k,\hat\sigma_k^2,\hat\alpha_k μ^k,σ^k2α^k。结果如下:
μ ^ k = ∑ j = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k ,    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γ^jkj=1Nγ^jkyj,  k=1,2,,K(29)
σ ^ k 2 = ∑ j = 1 N γ ^ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k ,    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γ^jkj=1Nγ^jk(yjμk)2,  k=1,2,,K(30)
α ^ k = n k N = ∑ j = 1 N γ ^ j k N ,    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=Nj=1Nγ^jk,  k=1,2,,K(31)
重复以上E步和M步计算,直到对数似然函数值不再有明显的变化为止。

(4)GMM参数估计的EM算法流程

输入:观测数据 y 1 , y 2 , ⋯   , y N y_1,y_2,\cdots,y_N y1,y2,,yN,高斯混合模型;

输出:高斯混合模型参数。

1)取参数的初始值开始迭代

2)E步:依据当前模型参数,计算分模型k对观测数据 y j y_j yj的响应度
γ ^ j k = α k ϕ ( y j ∣ θ k ) ∑ k = 1 K α k ϕ ( y j ∣ θ 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 = 1 N γ ^ j k y j ∑ j = 1 N γ ^ j k ,    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γ^jkj=1Nγ^jkyj,  k=1,2,,K
σ ^ k 2 = ∑ j = 1 N γ ^ j k ( y j − μ k ) 2 ∑ j = 1 N γ ^ j k ,    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γ^jkj=1Nγ^jk(yjμk)2,  k=1,2,,K
α ^ k = n k N = ∑ j = 1 N γ ^ j k N ,    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=Nj=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 ~ , θ ) = E P ~ [ l n P ( 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 ~ ) = − E P ~ l n P ~ ( Z ) = − ∑ Z P ~ ( Z ) l n P ~ ( 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 ~ , θ ) = E P ~ [ l n P ( Y , Z ∣ θ ) ] + H ( P ~ ) = ∑ Z P ~ ( Z ) l n P ( Y , Z ∣ θ ) − ∑ Z P ~ ( Z ) l n P ~ ( Z ) = ∑ Z P ~ ( Z ) l n P ( Y , Z ∣ θ ) P ~ ( Z ) ≤ ∑ Z l n ( P ~ ( Z ) P ( Y , Z ∣ θ ) P ~ ( Z ) ) = ∑ Z l n P ( Y , Z ∣ θ ) = l n P ( 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~)=ZP~(Z)lnP(Y,Zθ)ZP~(Z)lnP~(Z)=ZP~(Z)lnP~(Z)P(Y,Zθ)Zln(P~(Z)P~(Z)P(Y,Zθ))=ZlnP(Y,Zθ)=lnP(Yθ)(33)
因为 ∑ Z P ~ ( Z ) = 1 \sum_Z\tilde{P}(Z) =1 ZP~(Z)=1 ( l n x ) ′ ′ = − 1 x 2 ≤ 0 (lnx)'' = -\dfrac{1}{x^2} \leq 0 (lnx)=x210,所以可以使用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)} = c P~(Z)P(Y,Zθ)=c, c c c为常数的时候等号成立。根据式(10.2)求解,可得
P ~ ( Z ) = P ( Z ∣ Y , θ ) (34) \tilde{P}(Z) = P(Z|Y,\theta) \tag{34} P~(Z)=P(ZY,θ)(34)

(3)F函数第2次求极大

当求完第1次极大值时可得
F ( P ~ , θ ) = l n P ( Y ∣ θ ) F(\tilde{P},\theta) = lnP(Y|\theta) F(P~,θ)=lnP(Yθ)

所以有
θ ( i + 1 ) = a r g max ⁡ θ   F ( P ~ , θ ) = a r g max ⁡ θ   l n P ( Y ∣ θ ) = a r g max ⁡ θ   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 + 1 i+1 i+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中,有时求 Q Q Q函数的极大化是很困难的,下面的算法2和算法3并不是求 θ ( i ) θ^{(i)} θ(i)使 Q Q Q函数达到极大的 θ θ θ,而是找一个 θ ( 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 + 1 i+1 i+1次迭代,第一步:记 θ ( i ) θ^{(i)} θ(i)为参数 θ θ θ的估计值,计算
Q ( θ , θ ( i ) ) = E Z [ l n P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z P ( Z ∣ Y , θ ( i ) ) l n P ( 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)]=ZP(ZY,θ(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) dd2)时,可采用一种特殊的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 + 1 i+1 i+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 ) ) = E Z [ l n P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z P ( Z ∣ Y , θ ( i ) ) l n P ( 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)]=ZP(ZY,θ(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,直到收敛

∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ *********************************
未完待续……

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值