文章目录
- 1. EM 算法简介
- 2.EM 算法来源
- 3. EM算法的收敛性证明
- 3.1 EM算法公式
- 3.2 证明: Q ( θ ( t + 1 ) , θ ( t ) ) ≥ Q ( θ ( t ) , θ ( t ) ) Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta^{(t)},\theta^{(t)}) Q(θ(t+1),θ(t))≥Q(θ(t),θ(t))
- 3.3 证明: H ( θ ( t + 1 ) , θ ( t ) ) ≤ H ( θ ( t ) , θ ( t ) ) H(\theta^{(t+1)},\theta^{(t)})\leq H(\theta^{(t)},\theta^{(t)}) H(θ(t+1),θ(t))≤H(θ(t),θ(t))
- 4. EM 算法-再回首
- 5. EM 算法-广义EM
- 6.EM的变种
1. EM 算法简介
EM算法全称叫做Expectation-Maximum期望最大算法,它存在的意义主要就是来解决具有隐变量的混合模型的极大似然参数估计问题。对于极大似然问题来说,对于一般的模型,我们可以通过求函数的偏导来直接求解析解,但对于含有隐变量的混合模型时,因为计算量太大,所以根本没办法去求解析解,这样我们的EM算法求应运而生。EM算法通常在高斯混合模型GMM和隐马尔科夫模型HMM应用广泛。
简 单 模 型 : θ M L E = arg max θ log P ( X ∣ θ ) (1) 简单模型:\theta_{MLE}=\mathop{\arg\max}\limits_{\theta}{\log P(X|\theta)}\tag{1} 简单模型:θMLE=θargmaxlogP(X∣θ)(1)
- log p ( X ∣ θ ) {\log p(X|\theta)} logp(X∣θ):被称为对数似然函数(log-likelihood)
- X : X: X:随机变量
- θ : \theta: θ:所有的参数变量
2.EM 算法来源
2.1 EM 算法分解:(EM =E-Step + M-Step)
对于一个模型来说,我们通常希望用极大似然估计法MLE求出相关参数:
θ
M
L
E
=
log
P
(
X
∣
θ
)
(2)
\theta_{MLE}=\log P(X|\theta)\tag{2}
θMLE=logP(X∣θ)(2)
- X:表示观测数据(observed data)
- Z:表示隐藏变量(unobserved data 或 latent variable)
- (X,Z):表示 完整数据(complete data)
- θ \theta θ:表示待估计参数
我们知道EM公式可以表示为如下:(EM公式)
θ
(
t
+
1
)
=
arg
max
θ
∫
z
log
P
(
x
,
z
∣
θ
)
⋅
P
(
z
∣
x
,
θ
(
t
)
)
d
z
(3)
\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\int_{z}\log P(x,z|\theta)·P(z|x,\theta^{(t)})dz\tag{3}
θ(t+1)=θargmax∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))dz(3)
以上公式可以转换成两步进行描述E-Step和M-Step:
- E-Step:完整数据
log
P
(
x
,
z
∣
θ
)
在
服
从
分
布
Z
∼
{
P
(
z
∣
x
,
θ
(
t
)
)
}
下
的
期
望
\log P(x,z|\theta)在服从分布Z\sim \{P(z|x,\theta^{(t)})\}下的期望
logP(x,z∣θ)在服从分布Z∼{P(z∣x,θ(t))}下的期望
P ( z ∣ x , θ ( t ) ) → E Z ∼ { P ( z ∣ x , θ ( t ) ) } [ log P ( x , z ∣ θ ) ] (4) P(z|x,\theta^{(t)}) \rightarrow \mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]\tag{4} P(z∣x,θ(t))→EZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)](4) - M-Step:
选
择
一
个
θ
使
得
期
望
E
Z
∼
{
P
(
z
∣
x
,
θ
(
t
)
)
}
[
log
P
(
x
,
z
∣
θ
)
]
最
大
,
得
到
θ
(
t
+
1
)
选择一个\theta使得期望\mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]最大,得到\theta^{(t+1)}
选择一个θ使得期望EZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)]最大,得到θ(t+1)
θ ( t + 1 ) = arg max θ E Z ∼ { P ( z ∣ x , θ ( t ) ) } [ log P ( x , z ∣ θ ) ] (5) \theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]\tag{5} θ(t+1)=θargmaxEZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)](5)
上面我们只是知道了这个EM迭代算法是能满足 log P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ)逐渐变大,能得到最大值,所以具有收敛性的,但不知道这个EM算法为什么是如公式<3>样?
2.2 EM算法来源分析
由贝叶斯公式我们可得如下:
P
(
X
∣
θ
)
=
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
)
(6)
P(X|\theta)=\frac{P(x,z|\theta)}{P(z|x,\theta)}\tag{6}
P(X∣θ)=P(z∣x,θ)P(x,z∣θ)(6)
分子分母同时除以一个我们任意假设的分布
q
(
z
)
≠
0
可
得
:
q(z)≠0可得:
q(z)=0可得:
P
(
x
∣
θ
)
=
P
(
x
,
z
∣
θ
)
/
q
(
z
)
P
(
z
∣
x
,
θ
)
/
q
(
z
)
(7)
P(x|\theta)=\frac{P(x,z|\theta)/q(z)}{P(z|x,\theta)/q(z)}\tag{7}
P(x∣θ)=P(z∣x,θ)/q(z)P(x,z∣θ)/q(z)(7)
等式两边同时取对数可得:
log
P
(
x
∣
θ
)
=
log
P
(
x
,
z
∣
θ
)
q
(
z
)
−
log
P
(
z
∣
x
,
θ
)
q
(
z
)
(8)
\log P(x|\theta)=\log{\frac{P(x,z|\theta)}{q(z)}}-\log{\frac{P(z|x,\theta)}{q(z)}}\tag{8}
logP(x∣θ)=logq(z)P(x,z∣θ)−logq(z)P(z∣x,θ)(8)
等式两边同时在服从分布q(z)的情况下求其期望:
左
边
=
∫
z
q
(
z
)
⋅
log
P
(
X
∣
θ
)
d
z
=
log
P
(
X
∣
θ
)
⋅
∫
z
q
(
z
)
d
z
=
log
P
(
X
∣
θ
)
(9)
左边=\int_{z}q(z)·\log P(X|\theta)dz=\log P(X|\theta)·\int_{z}q(z)dz=\log P(X|\theta)\tag{9}
左边=∫zq(z)⋅logP(X∣θ)dz=logP(X∣θ)⋅∫zq(z)dz=logP(X∣θ)(9)
-
由期望的性质可得: ∫ z q ( z ) d z = 1 \int_{z}q(z)dz=1 ∫zq(z)dz=1
右 边 = ∫ z q ( z ) ⋅ log P ( x , z ∣ θ ) q ( z ) d z ⏟ E L B O + ( − ∫ z q ( z ) ⋅ log P ( z ∣ x , θ ) q ( z ) d z ) ⏟ K L [ q ( z ) ∣ ∣ p ( z ∣ x , θ ) ] (10) 右边=\underbrace{\int_{z}q(z)·\log{\frac{P(x,z|\theta)}{q(z)}}dz}_{ELBO}+\underbrace{(-\int_{z}q(z)·\log{\frac{P(z|x,\theta)}{q(z)}}dz)}_{KL[q(z)||p(z|x,\theta)]}\tag{10} 右边=ELBO ∫zq(z)⋅logq(z)P(x,z∣θ)dz+KL[q(z)∣∣p(z∣x,θ)] (−∫zq(z)⋅logq(z)P(z∣x,θ)dz)(10) -
我们定义: E L B O = ∫ z q ( z ) ⋅ log P ( x , z ∣ θ ) q ( z ) d z ELBO=\int_{z}q(z)·\log{\frac{P(x,z|\theta)}{q(z)}}dz ELBO=∫zq(z)⋅logq(z)P(x,z∣θ)dz(注:ELBO= evidence lower bound 证据下界)
-
我们定义: K L [ q ( z ) ∣ ∣ p ( z ∣ x , θ ) ] = − ∫ z q ( z ) ⋅ log P ( Z ∣ X , θ ) q ( z ) d z KL[q(z)||p(z|x,\theta)]=-\int_{z}q(z)·\log{\frac{P(Z|X,\theta)}{q(z)}}dz KL[q(z)∣∣p(z∣x,θ)]=−∫zq(z)⋅logq(z)P(Z∣X,θ)dz
结合左边和右边我们可知:
log P ( x ∣ θ ) = E L B O + K L [ q ( z ) ∣ ∣ p ( z ∣ x , θ ) ] (11) \log P(x|\theta)=ELBO+KL[q(z)||p(z|x,\theta)]\tag{11} logP(x∣θ)=ELBO+KL[q(z)∣∣p(z∣x,θ)](11) -
p ( z ∣ x , θ ) : 为 后 验 分 布 p o s t e r i o r p(z|x,\theta):为后验分布posterior p(z∣x,θ):为后验分布posterior
-
KL散度的性质是其值一定大于等于零的数。
所以可得如下不等式:
log P ( x ∣ θ ) ≥ E L B O , 当 且 仅 当 q ( z ) = p ( z ∣ x , θ ) 时 等 号 成 立 (12) \log P(x|\theta)\geq ELBO,当且仅当q(z)=p(z|x,\theta)时等号成立\tag{12} logP(x∣θ)≥ELBO,当且仅当q(z)=p(z∣x,θ)时等号成立(12)
重点:
EM算法的重要思想是想办法让ELBO达到最大,从而让 log P ( x ∣ θ ) \log P(x|\theta) logP(x∣θ)也不断变大。
图形解释如下:
注:假设我们由一个函数曲线 log P ( x ∣ θ ) \log P(x|\theta) logP(x∣θ),
- 1.我们先给定一个参数 θ ( t ) \theta^{(t)} θ(t),求出其 E L B O ( t ) ELBO_{(t)} ELBO(t)
- 2.在曲线 E L B O ( t ) ELBO_{(t)} ELBO(t)中再到最大值并将求到的值赋值为参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)
- 3.同理求出在给定 θ ( t + 1 ) \theta^{(t+1)} θ(t+1)条件下的 E L B O ( t + 1 ) ELBO_{(t+1)} ELBO(t+1)
- 4.在曲线 E L B O ( t + 1 ) ELBO_{(t+1)} ELBO(t+1)中再到最大值并将求到的值赋值为参数 θ ( t + 2 ) \theta^{(t+2)} θ(t+2)
- 5.如此重复步骤3.4直到找到最大的值 log P ( x ∣ θ ) \log P(x|\theta) logP(x∣θ),求得其 θ ^ \hat{\theta} θ^即可;
由于我们的目标是最大化
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ)
log
P
(
x
∣
θ
)
=
E
L
B
O
+
K
L
[
q
(
z
)
∣
∣
p
(
z
∣
x
,
θ
)
]
(13)
\log P(x|\theta)=ELBO+KL[q(z)||p(z|x,\theta)]\tag{13}
logP(x∣θ)=ELBO+KL[q(z)∣∣p(z∣x,θ)](13)
所以我们求得的最大参数
θ
^
满
足
如
下
等
式
:
\hat{\theta}满足如下等式:
θ^满足如下等式:
θ
^
=
arg
max
θ
{
E
L
B
O
}
=
arg
max
θ
{
∫
z
q
(
z
)
⋅
log
P
(
x
,
z
∣
θ
)
q
(
z
)
d
z
}
(14)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\{ELBO\}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}q(z)·\log{\frac{P(x,z|\theta)}{q(z)}}dz\}\tag{14}
θ^=θargmax{ELBO}=θargmax{∫zq(z)⋅logq(z)P(x,z∣θ)dz}(14)
因为当 KL式子中的 q ( z ) = p ( z ∣ x , θ ( t ) ) 时 , 才 满 足 log P ( x ∣ θ ) = E L B O q(z)=p(z|x,\theta^{(t)})时,才满足\log P(x|\theta)=ELBO q(z)=p(z∣x,θ(t))时,才满足logP(x∣θ)=ELBO
所以我们将式子 q ( z ) = P ( z ∣ x , θ ( t ) ) q(z)=P(z|x,\theta^{(t)}) q(z)=P(z∣x,θ(t))代入到公式<14>中可得:
θ
^
=
arg
max
θ
{
∫
z
P
(
z
∣
x
,
θ
(
t
)
)
⋅
log
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
(
t
)
)
d
z
}
(15)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}P(z|x,\theta^{(t)})·\log{\frac{P(x,z|\theta)}{P(z|x,\theta^{(t)})}}dz\}\tag{15}
θ^=θargmax{∫zP(z∣x,θ(t))⋅logP(z∣x,θ(t))P(x,z∣θ)dz}(15)
θ
^
=
arg
max
θ
{
∫
z
P
(
z
∣
x
,
θ
(
t
)
)
⋅
[
log
P
(
x
,
z
∣
θ
)
−
log
P
(
z
∣
x
,
θ
(
t
)
)
]
d
z
}
(16)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}P(z|x,\theta^{(t)})·[\log{{P(x,z|\theta)}-\log{P(z|x,\theta^{(t)})}}]dz\}\tag{16}
θ^=θargmax{∫zP(z∣x,θ(t))⋅[logP(x,z∣θ)−logP(z∣x,θ(t))]dz}(16)
- 由 于 log p ( z ∣ x , θ ( t ) ) 是 一 个 由 上 次 确 定 好 的 量 , 所 以 这 里 可 看 作 常 量 , 所 以 上 式 可 改 写 成 如 下 : 由于\log{p(z|x,\theta^{(t)})}是一个由上次确定好的量,所以这里可看作常量,所以上式可改写成如下: 由于logp(z∣x,θ(t))是一个由上次确定好的量,所以这里可看作常量,所以上式可改写成如下:
θ
^
=
arg
max
θ
{
∫
z
P
(
z
∣
x
,
θ
(
t
)
)
⋅
log
P
(
x
,
z
∣
θ
)
d
z
}
(17)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}P(z|x,\theta^{(t)})·\log{{P(x,z|\theta)}}dz\}\tag{17}
θ^=θargmax{∫zP(z∣x,θ(t))⋅logP(x,z∣θ)dz}(17)
由于此时求得的
θ
^
=
θ
(
t
+
1
)
,
所
以
得
出
E
M
公
式
如
下
:
\hat{\theta}=\theta^{(t+1)},所以得出EM公式如下:
θ^=θ(t+1),所以得出EM公式如下:
结
论
:
θ
(
t
+
1
)
=
arg
max
θ
{
∫
z
log
P
(
x
,
z
∣
θ
)
⋅
P
(
z
∣
x
,
θ
(
t
)
)
⋅
d
z
}
(18)
结论:\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}\log{{P(x,z|\theta)}·P(z|x,\theta^{(t)})·}dz\}\tag{18}
结论:θ(t+1)=θargmax{∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))⋅dz}(18)
即证毕!
2.3 EM算法来源-琴生不等式(Jensen Inequality)
琴生不等式(Jensen Inequality)就是指当我们拥有一个凸函数时,我们函数满足一些不等式的性质。
假
设
我
们
有
一
个
变
量
t
∈
[
0
,
1
]
,
那
么
在
坐
标
轴
a
,
b
中
有
一
点
c
满
足
:
c
=
b
−
(
b
−
a
)
t
=
t
a
+
(
1
−
t
)
b
假设我们有一个变量t\in[0,1],那么在坐标轴a,b中有一点c满足 : c= b-(b-a)t=ta+(1-t)b
假设我们有一个变量t∈[0,1],那么在坐标轴a,b中有一点c满足:c=b−(b−a)t=ta+(1−t)b
由图形可得:
f
(
c
)
≥
f
(
d
)
,
f
(
c
)
=
f
[
t
a
+
(
1
−
t
)
b
]
;
f
(
d
)
=
t
f
(
a
)
+
(
1
−
t
)
f
(
b
)
f(c)\geq f(d),f(c)=f[ta+(1-t)b];f(d)=tf(a)+(1-t)f(b)
f(c)≥f(d),f(c)=f[ta+(1−t)b];f(d)=tf(a)+(1−t)f(b)
f
[
t
a
+
(
1
−
t
)
b
]
≥
t
f
(
a
)
+
(
1
−
t
)
f
(
b
)
(19)
f[ta+(1-t)b]\geq tf(a)+(1-t)f(b)\tag{19}
f[ta+(1−t)b]≥tf(a)+(1−t)f(b)(19)
当c=
1
2
时
\frac{1}{2}时
21时:
f
[
a
+
b
2
]
≥
1
2
f
(
a
)
+
1
2
f
(
b
)
(20)
f[\frac{a+b}{2}]\geq \frac{1}{2}f(a)+\frac{1}{2}f(b)\tag{20}
f[2a+b]≥21f(a)+21f(b)(20)
所以可得:
f
[
E
(
x
)
]
≥
E
[
f
(
x
)
]
(21)
f[E(x)]\geq E[f(x)]\tag{21}
f[E(x)]≥E[f(x)](21)
当我们引进隐变量Z时,我们可得到如下式子:
log
P
(
x
∣
θ
)
=
log
∫
z
P
(
x
,
z
∣
θ
)
d
z
(22)
\log P(x|\theta)=\log \int_z P(x,z|\theta)dz\tag{22}
logP(x∣θ)=log∫zP(x,z∣θ)dz(22)
步骤:
∵ log P ( x ∣ θ ) = log ∫ z P ( x , z ∣ θ ) q ( z ) ⋅ q ( z ) d z = log E q ( z ) [ P ( x , z ∣ θ ) q ( z ) ] \because \log P(x|\theta)=\log \int_z \frac{P(x,z|\theta)}{q(z)}·q(z)dz=\log \mathbb{E}_{q(z)}[\frac{P(x,z|\theta)}{q(z)}] ∵logP(x∣θ)=log∫zq(z)P(x,z∣θ)⋅q(z)dz=logEq(z)[q(z)P(x,z∣θ)]
∵ 由 J e n s e n I n e q u a l i t y 不 等 式 可 得 : f [ E ( X ) ] ≥ E [ f ( x ) ] \because 由Jensen Inequality不等式可得:f[E(X)]\geq E[f(x)] ∵由JensenInequality不等式可得:f[E(X)]≥E[f(x)]
log E q ( z ) [ P ( x , z ∣ θ ) q ( z ) ] ≥ E q ( z ) [ log P ( x , z ∣ θ ) q ( z ) ] = E L B O (23) \log \mathbb{E}_{q(z)}[\frac{P(x,z|\theta)}{q(z)}]\geq \mathbb{E}_{q(z)}[\log \frac{P(x,z|\theta)}{q(z)}]=ELBO\tag{23} logEq(z)[q(z)P(x,z∣θ)]≥Eq(z)[logq(z)P(x,z∣θ)]=ELBO(23)
对于此不等式来说,由图形可得,当图形为直线时成立,即Y=C时成立,即:
P
(
x
,
z
∣
θ
)
q
(
z
)
=
c
(24)
\frac{P(x,z|\theta)}{q(z)}=c\tag{24}
q(z)P(x,z∣θ)=c(24)
∵
P
(
x
,
z
∣
θ
)
=
c
⋅
q
(
z
)
\because P(x,z|\theta)=c·q(z)
∵P(x,z∣θ)=c⋅q(z)
等式两边关于z求积分可得:
∴ ∫ z P ( x , z ∣ θ ) d z = c ∫ z q ( z ) d z = P ( x ∣ θ ) = c \therefore \int_z P(x,z|\theta) dz=c \int_z q(z) dz=P(x|\theta)=c ∴∫zP(x,z∣θ)dz=c∫zq(z)dz=P(x∣θ)=c
代入公式<23>可得:
q
(
z
)
=
P
(
x
,
z
∣
θ
)
c
=
P
(
x
,
z
∣
θ
)
P
(
x
∣
θ
)
=
P
(
z
∣
x
,
θ
)
(25)
q(z)=\frac{P(x,z|\theta)}{c}=\frac{P(x,z|\theta)}{P(x|\theta)}=P(z|x,\theta)\tag{25}
q(z)=cP(x,z∣θ)=P(x∣θ)P(x,z∣θ)=P(z∣x,θ)(25)
重点!!!我们随便给的一个分布q(z),最后为了取得等号使之得到ELBO,发现这个q(z)居然就是后验!!!我们不断的去优化ELBO的时候,使得ELBO越大,从而迭代后,使得
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ)越来越大,由于是迭代完成,所以
q
(
z
)
=
P
(
z
∣
x
,
θ
(
t
)
)
q(z)=P(z|x,\theta^{(t)})
q(z)=P(z∣x,θ(t)),这是上次迭代出来的结果,对于这次来说是一个常数C。
log
P
(
x
∣
θ
)
=
log
E
q
(
z
)
[
P
(
x
,
z
∣
θ
)
q
(
z
)
]
=
log
E
q
(
z
)
[
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
(
t
)
)
]
(26)
\log P(x|\theta)=\log \mathbb{E}_{q(z)}[\frac{P(x,z|\theta)}{q(z)}]=\log \mathbb{E}_{q(z)}[\frac{P(x,z|\theta)}{P(z|x,\theta^{(t)})}]\tag{26}
logP(x∣θ)=logEq(z)[q(z)P(x,z∣θ)]=logEq(z)[P(z∣x,θ(t))P(x,z∣θ)](26)
整理上式可得:
θ
^
=
arg
max
θ
log
P
(
x
∣
θ
)
=
arg
max
θ
{
∫
z
P
(
z
∣
x
,
θ
(
t
)
)
⋅
log
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
(
t
)
)
d
z
}
(27)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\log P(x|\theta)=\mathop{\arg\max}\limits_{\theta}\{\int_{z}P(z|x,\theta^{(t)})·\log{\frac{P(x,z|\theta)}{P(z|x,\theta^{(t)})}}dz\}\tag{27}
θ^=θargmaxlogP(x∣θ)=θargmax{∫zP(z∣x,θ(t))⋅logP(z∣x,θ(t))P(x,z∣θ)dz}(27)
由于
q
(
z
)
=
P
(
z
∣
x
,
θ
(
t
)
)
q(z)=P(z|x,\theta^{(t)})
q(z)=P(z∣x,θ(t))相对上式来说是一个常数,所以可以忽略。那么上式可变为如下:
θ
^
=
θ
(
t
+
1
)
=
arg
max
θ
{
∫
z
log
P
(
x
,
z
∣
θ
)
⋅
P
(
z
∣
x
,
θ
(
t
)
)
d
z
}
(28)
\hat{\theta}=\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\{\int_{z}\log{P(x,z|\theta)}·P(z|x,\theta^{(t)})dz\}\tag{28}
θ^=θ(t+1)=θargmax{∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))dz}(28)
证毕,公式结果跟EM公式一致!
小结:
对于EM算法来说,我们为了求
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ)最大值,对于具有隐变量的模型来说,根本没办法直接通过MLE方法求得,所以,我们想到了能够找到一个跟它差不多的相近的值ELBO代替它,通过求得ELBO的最大值来不断的逼近
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ),在找到ELBO所需的
θ
\theta
θ时,通过迭代,不断的求得更大的
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ)为止,直到求出所需最大的参数
θ
\theta
θ和
log
P
(
x
∣
θ
)
\log P(x|\theta)
logP(x∣θ)
3. EM算法的收敛性证明
3.1 EM算法公式
由简单模型的目标函数
arg
max
θ
log
P
(
X
∣
θ
)
\mathop{\arg\max}\limits_{\theta}{\log P(X|\theta)}
θargmaxlogP(X∣θ)可知,新的模型就是新增了隐变量Z,所以模型可变成如下:
θ
(
t
+
1
)
=
arg
max
θ
∫
z
log
P
(
x
,
z
∣
θ
)
⋅
P
(
z
∣
x
,
θ
(
t
)
)
d
z
(29)
\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\int_{z}\log P(x,z|\theta)·P(z|x,\theta^{(t)})dz\tag{29}
θ(t+1)=θargmax∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))dz(29)
由期望定义可得,上述公式可以看作是函数
log
P
(
x
,
z
∣
θ
)
\log P(x,z|\theta)
logP(x,z∣θ)关于分布
P
(
z
∣
x
,
θ
(
t
)
)
P(z|x,\theta^{(t)})
P(z∣x,θ(t))的期望:
θ
(
t
+
1
)
=
arg
max
θ
E
z
∼
{
z
∣
x
,
θ
(
t
)
}
log
P
(
x
,
z
∣
θ
)
(30)
\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\mathbb{E}_{z\sim \{z|x,\theta^{(t)}\}}\log P(x,z|\theta)\tag{30}
θ(t+1)=θargmaxEz∼{z∣x,θ(t)}logP(x,z∣θ)(30)
我们的目标是:
证
明
当
θ
(
t
)
→
θ
(
t
+
1
)
时
,
则
log
P
(
x
∣
θ
(
t
)
)
→
log
P
(
x
∣
θ
(
t
+
1
)
)
,
满
足
log
P
(
x
∣
θ
(
t
)
)
≤
log
P
(
x
∣
θ
(
t
+
1
)
)
证明当\theta^{(t)}\rightarrow \theta^{(t+1)}时,则\log P(x|\theta^{(t)})\rightarrow \log P(x|\theta^{(t+1)}),满足\log P(x|\theta^{(t)})\leq \log P(x|\theta^{(t+1)})
证明当θ(t)→θ(t+1)时,则logP(x∣θ(t))→logP(x∣θ(t+1)),满足logP(x∣θ(t))≤logP(x∣θ(t+1))
证明过程如下:
∵ 由 贝 叶 斯 公 式 可 得 : P ( x ∣ θ ) = P ( x , z ∣ θ ) P ( z ∣ x , θ ) \because 由贝叶斯公式可得:P(x|\theta)=\frac{P(x,z|\theta)}{P(z|x,\theta)} ∵由贝叶斯公式可得:P(x∣θ)=P(z∣x,θ)P(x,z∣θ)
∴ 两 边 取 对 数 可 得 : log P ( x ∣ θ ) = log P ( x , z ∣ θ ) − log P ( z ∣ x , θ ) \therefore 两边取对数可得: \log P(x|\theta)=\log P(x,z|\theta)-\log P(z|x,\theta) ∴两边取对数可得:logP(x∣θ)=logP(x,z∣θ)−logP(z∣x,θ)
∴ 两 边 同 时 关 于 分 布 P ( z ∣ x , θ ( t ) ) 求 期 望 可 得 : \therefore 两边同时关于分布P(z|x,\theta^{(t)})求期望可得: ∴两边同时关于分布P(z∣x,θ(t))求期望可得:
E P ( z ∣ x , θ ( t ) ) log P ( x ∣ θ ) d z = E P ( z ∣ x , θ ( t ) ) [ log P ( x , z ∣ θ ) − log P ( z ∣ x , θ ) ] \mathbb{E}_{P(z|x,\theta^{(t)})}\log P(x|\theta)dz=\mathbb{E}_{P(z|x,\theta^{(t)})}[\log P(x,z|\theta)-\log P(z|x,\theta)] EP(z∣x,θ(t))logP(x∣θ)dz=EP(z∣x,θ(t))[logP(x,z∣θ)−logP(z∣x,θ)]
∴ 左 边 = ∫ z P ( z ∣ x , θ ( t ) ) ⋅ log P ( X ∣ θ ) d z \therefore 左边=\int_{z}P(z|x,\theta^{(t)})·\log P(X|\theta)dz ∴左边=∫zP(z∣x,θ(t))⋅logP(X∣θ)dz
∵ log P ( x ∣ θ ) 与 z 无 关 , 所 以 可 以 提 到 前 面 : \because \log P(x|\theta)与z无关,所以可以提到前面: ∵logP(x∣θ)与z无关,所以可以提到前面:
左 边 = log P ( x ∣ θ ) ⋅ ∫ z P ( z ∣ x , θ ( t ) ) d z = log P ( x ∣ θ ) (31) 左边=\log P(x|\theta)·\int_{z}P(z|x,\theta^{(t)})dz=\log P(x|\theta)\tag{31} 左边=logP(x∣θ)⋅∫zP(z∣x,θ(t))dz=logP(x∣θ)(31)
右 边 = ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( x , z ∣ θ ) ] d z ⏟ Q ( θ , θ ( t ) ) − ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( z ∣ x , θ ) ] d z ⏟ H ( θ , θ ( t ) ) (32) 右边=\underbrace{\int_{z}[P(z|x,\theta^{(t)})·\log P(x,z|\theta)]dz}_{Q(\theta,\theta^{(t)})}-\underbrace{\int_{z}[P(z|x,\theta^{(t)})·\log P(z|x,\theta)]dz}_{H(\theta,\theta^{(t)})}\tag{32} 右边=Q(θ,θ(t)) ∫z[P(z∣x,θ(t))⋅logP(x,z∣θ)]dz−H(θ,θ(t)) ∫z[P(z∣x,θ(t))⋅logP(z∣x,θ)]dz(32)
- 我 们 定 义 : Q ( θ , θ ( t ) ) = ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( x , z ∣ θ ) ] d z 我们定义:Q(\theta,\theta^{(t)})=\int_{z}[P(z|x,\theta^{(t)})·\log P(x,z|\theta)]dz 我们定义:Q(θ,θ(t))=∫z[P(z∣x,θ(t))⋅logP(x,z∣θ)]dz
- 我 们 定 义 : H ( θ , θ ( t ) ) = ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( z ∣ x , θ ) ] d z 我们定义:H(\theta,\theta^{(t)})=\int_{z}[P(z|x,\theta^{(t)})·\log P(z|x,\theta)]dz 我们定义:H(θ,θ(t))=∫z[P(z∣x,θ(t))⋅logP(z∣x,θ)]dz
3.2 证明: Q ( θ ( t + 1 ) , θ ( t ) ) ≥ Q ( θ ( t ) , θ ( t ) ) Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta^{(t)},\theta^{(t)}) Q(θ(t+1),θ(t))≥Q(θ(t),θ(t))
∵ θ ( t + 1 ) = arg max θ ∫ z log P ( x , z ∣ θ ) ⋅ P ( z ∣ x , θ ( t ) ) d z = Q ( θ ( t + 1 ) , θ ) \because \theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\int_{z}\log P(x,z|\theta)·P(z|x,\theta^{(t)})dz=Q(\theta^{(t+1)},\theta) ∵θ(t+1)=θargmax∫zlogP(x,z∣θ)⋅P(z∣x,θ(t))dz=Q(θ(t+1),θ)
∴ θ ( t + 1 ) 为 函 数 Q ( θ , θ ( t ) ) 中 的 最 大 的 自 变 量 值 , Q ( θ ( t + 1 ) , θ ( t ) ) ≥ Q ( θ ( t ) , θ ( t ) ) \therefore \theta^{(t+1)}为函数Q(\theta,\theta^{(t)})中的最大的自变量值,Q(\theta^{(t+1)},\theta^{(t)})\geq Q(\theta^{(t)},\theta^{(t)}) ∴θ(t+1)为函数Q(θ,θ(t))中的最大的自变量值,Q(θ(t+1),θ(t))≥Q(θ(t),θ(t))
3.3 证明: H ( θ ( t + 1 ) , θ ( t ) ) ≤ H ( θ ( t ) , θ ( t ) ) H(\theta^{(t+1)},\theta^{(t)})\leq H(\theta^{(t)},\theta^{(t)}) H(θ(t+1),θ(t))≤H(θ(t),θ(t))
H ( θ ( t + 1 ) , θ ( t ) ) − H ( θ ( t ) , θ ( t ) ) \quad H(\theta^{(t+1)},\theta^{(t)})- H(\theta^{(t)},\theta^{(t)}) H(θ(t+1),θ(t))−H(θ(t),θ(t))
代入公式<22>定义可得:
= ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( z ∣ x , θ ( t + 1 ) ) ] d z − ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( z ∣ x , θ ( t ) ) ] d z =\int_{z}[P(z|x,\theta^{(t)})·\log P(z|x,\theta^{(t+1)})]dz-\int_{z}[P(z|x,\theta^{(t)})·\log P(z|x,\theta^{(t)})]dz =∫z[P(z∣x,θ(t))⋅logP(z∣x,θ(t+1))]dz−∫z[P(z∣x,θ(t))⋅logP(z∣x,θ(t))]dz
由于上述公式由公共项 P ( z ∣ x , θ ( t ) ) P(z|x,\theta^{(t)}) P(z∣x,θ(t)),合并可得:
= ∫ z [ P ( z ∣ x , θ ( t ) ) ⋅ log P ( z ∣ x , θ ( t + 1 ) ) ] P ( z ∣ x , θ ( t ) ) ] d z =\int_{z}[P(z|x,\theta^{(t)})·\log \frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]}dz =∫z[P(z∣x,θ(t))⋅logP(z∣x,θ(t))]P(z∣x,θ(t+1))]dz
3.3.1 KL定理证明
由于上述公式为相对熵的定义,所以上述公式可得:
= − K L ( P ( z ∣ x , θ ( t ) ) ∣ ∣ P ( z ∣ x , θ ( t + 1 ) ) ) ≤ 0 =-KL(P(z|x,\theta^{(t)})||P(z|x,\theta^{(t+1)}))\leq 0 =−KL(P(z∣x,θ(t))∣∣P(z∣x,θ(t+1)))≤0
所 以 可 得 : H ( θ ( t + 1 ) , θ ( t ) ) ≤ H ( θ ( t ) , θ ( t ) ) (33) 所以可得:H(\theta^{(t+1)},\theta^{(t)})\leq H(\theta^{(t)},\theta^{(t)})\tag{33} 所以可得:H(θ(t+1),θ(t))≤H(θ(t),θ(t))(33)
3.3.2 Jensen inequality 定理证明
由于对数函数
(
log
(
x
)
)
(\log(x))
(log(x))是凸函数,满足琴生不等式(Jensen inequality)性质:
E
[
log
(
X
)
]
≤
log
[
E
(
X
)
]
(34)
\mathbb{E}[\log(X)]\leq \log[\mathbb{E}(X)]\tag{34}
E[log(X)]≤log[E(X)](34)
则:
=
∫
z
[
P
(
z
∣
x
,
θ
(
t
)
)
⋅
log
P
(
z
∣
x
,
θ
(
t
+
1
)
)
]
P
(
z
∣
x
,
θ
(
t
)
)
]
d
z
=
E
P
(
z
∣
x
,
θ
(
t
)
)
[
log
P
(
z
∣
x
,
θ
(
t
+
1
)
)
]
P
(
z
∣
x
,
θ
(
t
)
)
]
]
=\int_{z}[P(z|x,\theta^{(t)})·\log \frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]}dz=\mathbb{E}_{P(z|x,\theta^{(t)})}[\log \frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]}]
=∫z[P(z∣x,θ(t))⋅logP(z∣x,θ(t))]P(z∣x,θ(t+1))]dz=EP(z∣x,θ(t))[logP(z∣x,θ(t))]P(z∣x,θ(t+1))]]
∵ E [ log ( X ) ] ≤ log [ E ( X ) ] \because \mathbb{E}[\log(X)]\leq \log[\mathbb{E(X)}] ∵E[log(X)]≤log[E(X)]
∴ E [ log ( P ( z ∣ x , θ ( t + 1 ) ) ] P ( z ∣ x , θ ( t ) ) ] ) ] ≤ log [ E ( P ( z ∣ x , θ ( t + 1 ) ) ] P ( z ∣ x , θ ( t ) ) ] ) ] \therefore \mathbb{E}[\log(\frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]})]\leq \log[\mathbb{E(\frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]})}] ∴E[log(P(z∣x,θ(t))]P(z∣x,θ(t+1))])]≤log[E(P(z∣x,θ(t))]P(z∣x,θ(t+1))])]
∵ log [ E ( P ( z ∣ x , θ ( t + 1 ) ) ] P ( z ∣ x , θ ( t ) ) ] ) ] = log [ ∫ z ( P ( z ∣ x , θ ( t + 1 ) ) ] P ( z ∣ x , θ ( t ) ) ] ) ⋅ P ( z ∣ x , θ ( t ) ) ] = log [ ∫ z ( P ( z ∣ x , θ ( t + 1 ) ) d z ] = log 1 = 0 \because \log[\mathbb{E(\frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]})}]=\log[\int_z(\frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]})·P(z|x,\theta^{(t)})]=\log[\int_z(P(z|x,\theta^{(t+1)})dz]=\log 1=0 ∵log[E(P(z∣x,θ(t))]P(z∣x,θ(t+1))])]=log[∫z(P(z∣x,θ(t))]P(z∣x,θ(t+1))])⋅P(z∣x,θ(t))]=log[∫z(P(z∣x,θ(t+1))dz]=log1=0
∴
∫
z
[
P
(
z
∣
x
,
θ
(
t
)
)
⋅
log
P
(
z
∣
x
,
θ
(
t
+
1
)
)
]
P
(
z
∣
x
,
θ
(
t
)
)
]
d
z
≤
0
\therefore \int_{z}[P(z|x,\theta^{(t)})·\log \frac{P(z|x,\theta^{(t+1)})]}{P(z|x,\theta^{(t)})]}dz \leq 0
∴∫z[P(z∣x,θ(t))⋅logP(z∣x,θ(t))]P(z∣x,θ(t+1))]dz≤0
证
毕
:
H
(
θ
(
t
+
1
)
,
θ
(
t
)
)
≤
H
(
θ
(
t
)
,
θ
(
t
)
)
(35)
证毕:H(\theta^{(t+1)},\theta^{(t)})\leq H(\theta^{(t)},\theta^{(t)}) \tag{35}
证毕:H(θ(t+1),θ(t))≤H(θ(t),θ(t))(35)
由公式<21>和<22>可得:
log
P
(
X
∣
θ
)
=
Q
(
θ
,
θ
(
t
)
)
−
H
(
θ
,
θ
(
t
)
)
(36)
\log P(X|\theta)=Q(\theta,\theta^{(t)})-H(\theta,\theta^{(t)})\tag{36}
logP(X∣θ)=Q(θ,θ(t))−H(θ,θ(t))(36)
我们知道随着
θ
(
t
)
→
θ
(
t
+
1
)
\theta^{(t)}\rightarrow \theta^{(t+1)}
θ(t)→θ(t+1)时可得:
所以:经过每次的迭代,似然函数在不断的增大。这就证明了我们的更新是有效的,也证明了算法是收敛的。
4. EM 算法-再回首
我们现在补充关于EM算法的相关知识点,EM-algorithm本质是一种算法,跟HMM和GMM不一样,HMM和GMM本质上是一种具体的模型;EM从类别上区分有点像GD梯度下降,我们知道GD是一种用来解决非凸问题的迭代算法,EM也是解决优化问题的迭代算法。EM主要是解决关于概率生成模型的算法。
关于这部分主要补充以下知识点:
- 从狭义的 EM 算法推广到广义的 EM 算法
- 狭义的 EM 实际上只是广义的 EM 的一个特例
- 真正的开始介绍 EM 算法
我们定义如下数据:
- X:观测量(Observed Data)-> X = { x i } i = 1 N X=\{x_i\}_{i=1}^{N} X={xi}i=1N
- Z:隐变量(Latent Data)-> Z = { z i } i = 1 N Z=\{z_i\}_{i=1}^{N} Z={zi}i=1N
- (X,Z):完整数据模型(Complete Data)
-
θ
\theta
θ:模型参数(Model Parameter)
我们的目标是得到一组参数 θ \theta θ,使得我们能求得最大的 log P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ),对于一般模型来说,我们可以直接通过MLE极大似然估计来直接求解相关参数,但是对于含有隐变量的模型来说,我们很难计算出相关参数,所以我们就用EM算法迭代求解相关参数。假定我们有一堆数据关于 θ 的 概 率 分 布 P ( X ∣ θ ) \theta 的概率分布P(X|\theta) θ的概率分布P(X∣θ),EM就是用来求这个参数 θ \theta θ的,所以EM是一个学习的问题了。
那么我们为什么非要引入一个隐变量Z呢?主要是因为,我们实际观察的输入空间 X 的分布 P(X),是非常复杂的。可能什么规律都找不出来,这时我们就想到了一个很好的解决办法。我们引入了一个隐变量 Z,这个变量中包含了我们自己的一些归纳总结,引入了内部结构。而 P ( X ) = ∫ Z P ( X , Z ) d Z P(X) = \int_Z P(X, Z)dZ P(X)=∫ZP(X,Z)dZ,实际上就是对 X 进行了分解处理,这样就曲线救国,加入自己的经验p(z)后再通过积分求出P(X|θ)
5. EM 算法-广义EM
EM算法是为了解决参数估计问题,对于一般的数据来说,我们能很简单的求出相关参数。但现实往往狠残酷,我们得到的分布P(X)一般非常的复杂,我们也不知道P(X|θ)是什么形式,所以我们用生成模型假定X有一个隐变量Z ,使得Z->X映射出来,然后我们可以假设Z是我们熟悉的分布,我们可以通过这个Z->X的结构来研究P(X|θ),最后通过贝叶斯公式来分析相关数据;
P
(
x
∣
θ
)
=
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
)
(37)
P(x|\theta)=\frac{P(x,z|\theta)}{P(z|x,\theta)}\tag{37}
P(x∣θ)=P(z∣x,θ)P(x,z∣θ)(37)
- 对于一个未知的P(X)我们可以通过引入隐变量来把问题具体化。
我们可以将原来的目标P(X|θ),分解成关于联合概率和后验概率的问题,从而将问题具体化。
θ
^
=
arg
max
θ
log
P
(
x
∣
θ
)
=
arg
max
θ
P
(
x
,
z
∣
θ
)
P
(
z
∣
x
,
θ
)
(38)
\hat{\theta}=\mathop{\arg\max}\limits_{\theta}\log P(x|\theta)=\mathop{\arg\max}\limits_{\theta}\frac{P(x,z|\theta)}{P(z|x,\theta)}\tag{38}
θ^=θargmaxlogP(x∣θ)=θargmaxP(z∣x,θ)P(x,z∣θ)(38)
现在我们来分析下目标函数,我们已经得到了目标函数可表示为如下:
log
P
(
x
∣
θ
)
=
E
L
B
O
+
K
L
[
q
∣
∣
p
]
(39)
\log P(x|\theta)=ELBO+KL[q||p]\tag{39}
logP(x∣θ)=ELBO+KL[q∣∣p](39)
- 我们定义: E L B O = ∫ z q ( z ) ⋅ log P ( x , z ∣ θ ) q ( z ) d z = E q ( z ) [ log P ( x , z ∣ θ ) q ( z ) ] ELBO=\int_{z}q(z)·\log{\frac{P(x,z|\theta)}{q(z)}}dz=\mathbb{E}_{q(z)}[\log{\frac{P(x,z|\theta)}{q(z)}}] ELBO=∫zq(z)⋅logq(z)P(x,z∣θ)dz=Eq(z)[logq(z)P(x,z∣θ)](注:ELBO= evidence lower bound 证据下界)
- 我们定义: K L [ q ∣ ∣ p ] = K L [ q ( z ) ∣ ∣ p ( z ∣ x , θ ) ] = − ∫ z q ( z ) ⋅ log P ( Z ∣ X , θ ) q ( z ) d z KL[q||p]=KL[q(z)||p(z|x,\theta)]=-\int_{z}q(z)·\log{\frac{P(Z|X,\theta)}{q(z)}}dz KL[q∣∣p]=KL[q(z)∣∣p(z∣x,θ)]=−∫zq(z)⋅logq(z)P(Z∣X,θ)dz
所以我们将复杂的P(X|θ)分解成两个部分ELBO和KL[q||p],我们定义ELBO=L(q,θ)的函数,由于KL性质为KL≥0,当q=p时满足KL=0,所以我们可以得到如下式子:
log
P
(
x
∣
θ
)
≥
L
(
q
,
θ
)
(40)
\log P(x|\theta)\geq L(q,\theta)\tag{40}
logP(x∣θ)≥L(q,θ)(40)
之前我们将EM算法分解成两步:
-
E-Step:完整数据 log P ( x , z ∣ θ ) 在 服 从 分 布 Z ∼ { P ( z ∣ x , θ ( t ) ) } 下 的 期 望 \log P(x,z|\theta)在服从分布Z\sim \{P(z|x,\theta^{(t)})\}下的期望 logP(x,z∣θ)在服从分布Z∼{P(z∣x,θ(t))}下的期望
P ( z ∣ x , θ ( t ) ) → E Z ∼ { P ( z ∣ x , θ ( t ) ) } [ log P ( x , z ∣ θ ) ] (41) P(z|x,\theta^{(t)}) \rightarrow \mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]\tag{41} P(z∣x,θ(t))→EZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)](41)
当时我们是默认为此时求得的 q ^ = P ( z ∣ x , θ ( t ) ) \hat{q}=P(z|x,\theta^{(t)}) q^=P(z∣x,θ(t)),但现实中往往是 P ( z ∣ x , θ ( t ) ) P(z|x,\theta^{(t)}) P(z∣x,θ(t))是很大概率无法求到,搞了半天,最后发现我们又卡在这个后验上了,所以我们后面就用变分推断或蒙特卡洛的方法来解决后验 P ( z ∣ x , θ ( t ) ) P(z|x,\theta^{(t)}) P(z∣x,θ(t))无法求出的问题。 -
M-Step: 选 择 一 个 θ 使 得 期 望 E Z ∼ { P ( z ∣ x , θ ( t ) ) } [ log P ( x , z ∣ θ ) ] 最 大 , 得 到 θ ( t + 1 ) 选择一个\theta使得期望\mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]最大,得到\theta^{(t+1)} 选择一个θ使得期望EZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)]最大,得到θ(t+1)
θ ( t + 1 ) = arg max θ E Z ∼ { P ( z ∣ x , θ ( t ) ) } [ log P ( x , z ∣ θ ) ] (42) \theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}\mathbb{E}_{Z\sim \{P(z|x,\theta^{(t)})\}}[\log P(x,z|\theta)]\tag{42} θ(t+1)=θargmaxEZ∼{P(z∣x,θ(t))}[logP(x,z∣θ)](42)
综上所述,在我们在E-Step的步骤中因为p无法求出,所以无法满足q=p,因此我们可以把这个问题转换成其他方式,引出广义EM
我们再分析目标函数:
log P ( x ∣ θ ) = E L B O + K L [ q ∣ ∣ p ] (43) \log P(x|\theta)=ELBO+KL[q||p]\tag{43} logP(x∣θ)=ELBO+KL[q∣∣p](43) -
当 θ 固 定 时 , log P ( x ∣ θ ) 也 固 定 , 当 K L [ q ∣ ∣ p ] 越 小 时 , E L B O 越 大 , 所 以 我 们 可 以 在 K L 中 找 到 q \theta固定时,\log P(x|\theta)也固定,当KL[q||p]越小时,ELBO越大,所以我们可以在KL中找到q θ固定时,logP(x∣θ)也固定,当KL[q∣∣p]越小时,ELBO越大,所以我们可以在KL中找到q
当 θ 固 定 时 , q ^ = arg min q K L [ q ∣ ∣ p ] = arg max q L ( q , θ ) (44) 当\theta固定时,\hat{q}=\mathop{\arg\min}\limits_{q}KL[q||p]=\mathop{\arg\max}\limits_{q}L(q,\theta)\tag{44} 当θ固定时,q^=qargminKL[q∣∣p]=qargmaxL(q,θ)(44) -
最好的q=p,但很大情况下p是无法求出的,所以我们将q的求出问题变成一个优化问题<44>。
当 q ^ 固 定 时 , θ = arg max θ L ( q ^ , θ ) (45) 当\hat{q}固定时,\theta=\mathop{\arg\max}\limits_{\theta}L(\hat{q},\theta)\tag{45} 当q^固定时,θ=θargmaxL(q^,θ)(45)
综上所述:
广义EM:
E
−
S
t
e
p
:
q
(
t
+
1
)
=
arg
max
q
L
(
q
,
θ
(
t
)
)
(46)
E-Step:q^{(t+1)}=\mathop{\arg\max}\limits_{q}L(q,\theta^{(t)})\tag{46}
E−Step:q(t+1)=qargmaxL(q,θ(t))(46)
M
−
S
t
e
p
:
θ
(
t
+
1
)
=
arg
max
θ
L
(
q
(
t
+
1
)
,
θ
)
(47)
M-Step:\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}L(q^{(t+1)},\theta)\tag{47}
M−Step:θ(t+1)=θargmaxL(q(t+1),θ)(47)
我们将
L
(
q
,
θ
)
L(q,\theta)
L(q,θ)进行变形:
L
(
q
,
θ
)
=
∫
z
q
(
z
)
⋅
log
P
(
x
,
z
∣
θ
)
q
(
z
)
d
z
=
∫
z
q
(
z
)
⋅
log
P
(
x
,
z
∣
θ
)
d
z
−
∫
z
q
(
z
)
log
q
(
z
)
d
z
L(q,\theta)=\int_{z}q(z)·\log{\frac{P(x,z|\theta)}{q(z)}}dz=\int_{z}q(z)·\log{P(x,z|\theta)}dz-\int_zq(z)\log q(z)dz
L(q,θ)=∫zq(z)⋅logq(z)P(x,z∣θ)dz=∫zq(z)⋅logP(x,z∣θ)dz−∫zq(z)logq(z)dz
= E q ( z ) [ log P ( x , z ∣ θ ) ] − E q ( z ) [ log q ( z ) ] \qquad \qquad=\mathbb{E}_{q(z)}[\log{P(x,z|\theta)}]-\mathbb{E}_{q(z)}[\log q(z)] =Eq(z)[logP(x,z∣θ)]−Eq(z)[logq(z)]
= E q ( z ) [ log P ( x , z ∣ θ ) ] + H [ q ( z ) ] \qquad \qquad=\mathbb{E}_{q(z)}[\log{P(x,z|\theta)}]+H[q(z)] =Eq(z)[logP(x,z∣θ)]+H[q(z)]
- H[q(z)]:表示为熵
E L B O = E q ( z ) [ log P ( x , z ∣ θ ) ] + H [ q ( z ) ] (48) ELBO=\mathbb{E}_{q(z)}[\log{P(x,z|\theta)}]+H[q(z)]\tag{48} ELBO=Eq(z)[logP(x,z∣θ)]+H[q(z)](48)
总结: - 对于狭义EM来说,最好的 q ( z ) = P ( z ∣ x , θ ) q(z)=P(z|x,\theta) q(z)=P(z∣x,θ),而广义的EM中为一个优化问题: q ^ = arg min q K L [ q ∣ ∣ p ] = arg max q L ( q , θ ) \hat{q}=\mathop{\arg\min}\limits_{q}KL[q||p]=\mathop{\arg\max}\limits_{q}L(q,\theta) q^=qargminKL[q∣∣p]=qargmaxL(q,θ);
- 狭 义 E M 是 求 得 arg max θ E z ∼ { z ∣ x , θ ( t ) } log P ( x , z ∣ θ ) 狭义EM是求得\mathop{\arg\max}\limits_{\theta}\mathbb{E}_{z\sim \{z|x,\theta^{(t)}\}}\log P(x,z|\theta) 狭义EM是求得θargmaxEz∼{z∣x,θ(t)}logP(x,z∣θ),而广义EM是求得 E L B O = E q ( z ) [ log P ( x , z ∣ θ ) ] + H [ q ( z ) ] ELBO=\mathbb{E}_{q(z)}[\log{P(x,z|\theta)}]+H[q(z)] ELBO=Eq(z)[logP(x,z∣θ)]+H[q(z)],相对来说,广义EM比狭义EM多了一个H[q(z)];这个很好理解,在狭义EM中,在E-Step中已经求得q,所以可以看作H[q]是一个常数,所以在转到M-Step中可以忽略。所以在忽略H[q(z)]的情况下,广义EM就变成了狭义的EM
6.EM的变种
我们知道了广义EM算法其实就是分两步。都是求最大值,所以也叫F-MM算法,它的方式是先固定一个变量A求另外一个变量值B,再固定变量B,求变量A,总之,目标是让极大似然值最大。这种思想其实就是坐标上升法。举例:SMO方法。
广义EM:
E
−
S
t
e
p
:
q
(
t
+
1
)
=
arg
max
q
L
(
q
,
θ
(
t
)
)
(49)
E-Step:q^{(t+1)}=\mathop{\arg\max}\limits_{q}L(q,\theta^{(t)})\tag{49}
E−Step:q(t+1)=qargmaxL(q,θ(t))(49)
M
−
S
t
e
p
:
θ
(
t
+
1
)
=
arg
max
θ
L
(
q
(
t
+
1
)
,
θ
)
(50)
M-Step:\theta^{(t+1)}=\mathop{\arg\max}\limits_{\theta}L(q^{(t+1)},\theta)\tag{50}
M−Step:θ(t+1)=θargmaxL(q(t+1),θ)(50)
6.1坐标上升法和梯度上升法区别
- 坐标上升法:SMO
- 梯度上升法:GD
坐标上升法的优化方向基本是恒定不变的,而梯度下降法的优化方向是随着梯度方向而
不断发生改变的EM算法看起来不错。但是,很不幸的是,问题马上又来了。因为,
现实生活中,并没有那么的容易,一切都没有我们想的那么的简单。实际上,有关 P(Z|X, θ) 的计算,
有可能会非常的复杂。所以,我们将采用变分推断 (Variable Inference) 或者马尔可夫蒙特卡罗采样
(Markov Chain Monte Carlo) 的方法来求解。结合起来以后就是,VBEM/VEM 和 MCEM。这里注
意一下,Variable Inference 和 Variable Bayes 实际上都是一种东西。