文章目录
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=1∑Kα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 αk≥0,∑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=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)明确隐变量,写出完整数据的对数似然函数
可以设想观测数据
y
j
,
j
=
1
,
2
,
⋯
,
N
y_j,j=1,2,\cdots ,N
yj,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)生成观测数据
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=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)
其中,
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=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
[
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=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
(
γ
j
k
∣
y
,
θ
)
E(\gamma_{jk}|y,\theta)
E(γjk∣y,θ),记为
γ
^
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(γ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)
γ
^
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=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
)
=
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αk−1),直接对
μ
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γ^jk∑j=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γ^jk∑j=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=N∑j=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γ^jk∑j=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γ^jk∑j=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=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
~
,
θ
)
=
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~)=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)
因为
∑
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)′′=−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)} = 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(Z∣Y,θ)(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)]=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
+
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)]=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,直到收敛
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
∗
*********************************
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
未完待续……
参考资料: