直观案例
案例 a
假设有两硬币 A 和 B ,现在想要知道两枚硬币各自为正面的概率
θ
A
\color{blue}\theta_A
θA 和
θ
B
\color{blue}\theta_B
θB,
- 总共做了 5 次试验,每次随机取出 A 或 B 抛10次,并记录 A 和 B 的正反情况,现在 A 和 B 抛的总次数和正面的次数都知道,很容易估计得到:
θ
^
A
=
A正面次数
A
正
面
+
反
面
总
次
数
=
24
24
+
6
=
0.80
θ
^
B
=
B正面次数
B
正
面
+
反
面
总
次
数
=
9
9
+
11
=
0.45
{\color{blue}\hat\theta_A}=\frac{\text{A正面次数}}{A正面+反面总次数}=\frac{24}{24+6}=0.80\\[12pt]{\color{blue}\hat\theta_B}=\frac{\text{B正面次数}}{B正面+反面总次数}=\frac{9}{9+11}=0.45
θ^A=A正面+反面总次数A正面次数=24+624=0.80θ^B=B正面+反面总次数B正面次数=9+119=0.45
案例 b
与案例 a相比:现在只知道正反面的记录情况,但不知道每次试验取的是 A 还是 B (A 和 B 取出概率相等),那么现在该如何估计
θ
A
\color{blue}\theta_A
θA 和
θ
B
\color{blue}\theta_B
θB 的值呢?
EM算法:
-
1、 θ ^ A ( 0 ) = 0.60 {\color{blue}\hat\theta^{(0)}_A} = 0.60 θ^A(0)=0.60 和 θ ^ B ( 0 ) = 0.50 {\color{blue}\hat\theta^{(0)}_B} = 0.50 θ^B(0)=0.50
-
2、 第一次试验 5 正 5 反 ,那么 : A出现5H5T的概率 P A = ( θ ^ A ( 0 ) ) 5 ( 1 − θ ^ A ( 0 ) ) 5 = ( 0.60 ) 5 ( 0.40 ) 5 B出现5H5T的概率 P B = ( θ B ( 0 ) ) 5 ( 1 − θ B ( 0 ) ) 5 = ( 0.50 ) 5 ( 0.50 ) 5 第一次试验取出的是A的概率 P ( A ) = P A P A + P B = 0.45 第一次试验取出的是B的概率 P ( B ) = P B P A + P B = 0.55 \begin{aligned}&\ _{\text{ A出现5H5T的概率}}\quad P_A=({\color{blue}\hat\theta^{(0)}_A})^5(1-{\color{blue}\hat\theta^{(0)}_A})^5=(0.60)^5(0.40)^5\\&\ _{\text{ B出现5H5T的概率}}\quad P_B=({\color{blue}\theta^{(0)}_B})^5(1-{\color{blue}\theta^{(0)}_B})^5=(0.50)^5(0.50)^5\\&\ _{\text{ 第一次试验取出的是A的概率}}\quad P(A) = \frac{P_A}{P_A+P_B}=0.45\\&\ _{\text{ 第一次试验取出的是B的概率}}\quad P(B) = \frac{P_B}{P_A+P_B}=0.55\end{aligned} A出现5H5T的概率PA=(θ^A(0))5(1−θ^A(0))5=(0.60)5(0.40)5 B出现5H5T的概率PB=(θB(0))5(1−θB(0))5=(0.50)5(0.50)5 第一次试验取出的是A的概率P(A)=PA+PBPA=0.45 第一次试验取出的是B的概率P(B)=PA+PBPB=0.55所以第一次试验可以看作是 A 抛了 10 10 10次 × P ( A ) = 10 × 0.45 = 4.5 次 \times P(A)=10\times0.45=4.5次 ×P(A)=10×0.45=4.5次,其中正面为 2.25 次,反面为 2.25 次。同理,B 抛了 10 10 10次 × P ( A ) = 10 × 0.55 = 5.5 次 \times P(A)=10\times0.55=5.5次 ×P(A)=10×0.55=5.5次,其中正面为 2.75 次,反面为 2.75 次。
-
3、 同步骤 2 中一样,分别计算第二至第五次得到下表(注意:下表只保留了一位小数):
-
4、 得到上表后,与案例 a 一样:相当于 A 和 B 抛的总次数和正面的次数都已知,就可以对 θ A \color{blue}\theta_A θA 和 θ B \color{blue}\theta_B θB进行估计: θ ^ A ( 1 ) = A正面次数 A 正 面 + 反 面 总 次 数 = 21.3 21.3 + 8.6 = 0.71 θ ^ B ( 1 ) = B正面次数 B 正 面 + 反 面 总 次 数 = 11.7 11.7 + 8.4 = 0.58 {\color{blue}\hat\theta^{(1)}_A}=\frac{\text{A正面次数}}{A正面+反面总次数}=\frac{21.3}{21.3+8.6}=0.71\\[12pt]{\color{blue}\hat\theta^{(1)}_B}=\frac{\text{B正面次数}}{B正面+反面总次数}=\frac{11.7}{11.7+8.4}=0.58 θ^A(1)=A正面+反面总次数A正面次数=21.3+8.621.3=0.71θ^B(1)=B正面+反面总次数B正面次数=11.7+8.411.7=0.58
-
5、 将 θ ^ A ( 1 ) {\color{blue}\hat\theta^{(1)}_A} θ^A(1) 和 θ ^ B ( 1 ) {\color{blue}\hat\theta^{(1)}_B} θ^B(1) 作为初始值重复 1 → 4 1\to 4 1→4 ,直到迭代 t t t 次之后 θ ^ A ( t ) {\color{blue}\hat\theta^{(t)}_A} θ^A(t) 和 θ ^ B ( t ) {\color{blue}\hat\theta^{(t)}_B} θ^B(t) 趋于稳定,,即可将其作为最终估计值。本例迭代十次后 θ ^ A ( 10 ) = 0.80 {\color{blue}\hat\theta^{(10)}_A}=0.80 θ^A(10)=0.80 和 θ ^ B ( 10 ) = 0.52 {{\color{blue}\hat\theta^{(10)}_B}=0.52} θ^B(10)=0.52,与案例 a中的估计值已经较为接近了
E-step:步骤
1
→
3
1\to 3
1→3 根据模型参数
θ
A
\color{blue}\theta_A
θA 和
θ
B
\color{blue}\theta_B
θB 计算期望(隐变量分布),即 A 和 B 分布情况
M-step:步骤
4
4
4 根据 A 和 B 分布情况重新估算参数
θ
^
A
\color{blue}\hat\theta_A
θ^A 和
θ
^
B
\color{blue}\hat\theta_B
θ^B ,可作为下一次迭代输入
补充
M
−
s
t
e
p
M-step
M−step 的
M
M
M 由
M
L
E
MLE
MLE 体现,令
i
i
i 表示第
i
i
i 次抛硬币,
x
i
=
1
x_i=1
xi=1 表示第
i
i
i 次为正面
H
H
H,否则为反面
F
F
F,则每次抛硬币的概率可表示为:
p
(
x
i
,
θ
)
=
θ
x
i
(
1
−
θ
)
1
−
x
i
=
{
θ
x
i
=
1
1
−
θ
x
i
=
0
p(x_i,\theta)=\theta^{x_i}(1-\theta)^{1-x_i}=\left\{\begin{aligned}&\theta\qquad\qquad x_i=1\\ &1-\theta\qquad\; x_i = 0\\ \end{aligned}\right.
p(xi,θ)=θxi(1−θ)1−xi={θxi=11−θxi=0
每次试验
N
N
N 次,用极大似然估计出参数
θ
\theta
θ:
θ
^
=
arg max
θ
L
(
θ
)
=
arg max
θ
∏
i
=
1
N
p
(
x
i
,
θ
)
MLE
≃
arg min
θ
−
∑
i
=
1
N
log
p
(
x
i
,
θ
)
=
arg min
θ
−
∑
i
=
1
N
θ
x
i
(
1
−
θ
)
1
−
x
i
NLL
∂
L
(
θ
)
∂
θ
=
−
∑
i
=
1
N
(
x
i
θ
+
(
1
−
x
i
)
−
1
1
−
θ
)
=
0
令偏导为0
⟹
θ
^
=
∑
i
=
1
N
x
i
N
\begin{aligned} \hat\theta&=\argmax_\theta\mathcal L(\theta)=\argmax_\theta\prod^N_{i=1}p(x_i,\theta)\quad{\color{blue}\text{MLE}}\\ &\simeq \argmin_\theta-\sum^N_{i=1}\log p(x_i,\theta)=\argmin_\theta-\sum^N_{i=1}\theta^{x_i}(1-\theta)^{1-x_i}\quad{\color{blue}\text{NLL}}\\ &\frac{\partial \mathcal L(\theta)}{\partial\theta}=-\sum^N_{i=1}\left(\frac{x_i}{\theta}+(1-x_i)\frac{-1}{1-\theta}\right)=0\quad{\color{blue}\text{令偏导为0}}\\ &\qquad\qquad\qquad\Longrightarrow \color{blue}\hat\theta=\frac{\sum^N\limits_{i=1}x_i}{N} \end{aligned}
θ^=θargmaxL(θ)=θargmaxi=1∏Np(xi,θ)MLE≃θargmin−i=1∑Nlogp(xi,θ)=θargmin−i=1∑Nθxi(1−θ)1−xiNLL∂θ∂L(θ)=−i=1∑N(θxi+(1−xi)1−θ−1)=0令偏导为0⟹θ^=Ni=1∑Nxi
由此可知 案例 b 中第 4 \color{blue}4 4 步已经蕴含了极大似然的思想
EM算法
期望最大算法的目的是解决具有隐变量的混合模型的参数估计,隐变量可以是每个样本类别 z i z_i zi(如案例 b 中的 A 和 B),该变量属于位置状态。
MLE 对 p ( x ∣ θ ) p(x|\theta) p(x∣θ) 参数的估计记为: θ M L E = a r g m a x θ log p ( x ∣ θ ) \theta_{MLE}=\mathop{argmax}\limits_\theta\log p(x|\theta) θMLE=θargmaxlogp(x∣θ)。但多了一个未知隐变量不好求解,于是就要用到 EM 算法对其迭代求解: θ t + 1 = a r g m a x θ ∫ z log [ p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) ⏟ 类 似 θ ^ A ( 0 ) θ ^ A ( 0 ) d z = a r g m a x θ E z ∣ x , θ t [ log p ( x , z ∣ θ ) ] ⏞ 期望 ⏟ 期 望 最大化 \theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]\underbrace{p(z|x,\theta^t)}_{类似{\color{blue}\hat\theta^{(0)}_A}{\color{blue}\hat\theta^{(0)}_A}}dz=\underbrace{\mathop{arg{\color{blue}max}}\limits_{\theta}\overbrace{{\color{blue}\mathbb{E}}_{z|x,\theta^t}[\log p(x,z|\theta)] }^{\color{blue}\text{期望}}}_{期望\color{blue}\text{最大化}} θt+1=θargmax∫zlog[p(x,z∣θ)]类似θ^A(0)θ^A(0) p(z∣x,θt)dz=期望最大化 θargmaxEz∣x,θt[logp(x,z∣θ)] 期望
p ( z ∣ x , θ t ) p(z|x,\theta^t) p(z∣x,θt) 为隐变量概率分布(当 t = 1 t=1 t=1时,需要手动初始化其分布,与案例 b 中初始化 θ ^ A ( 0 ) {\color{blue}\hat\theta^{(0)}_A} θ^A(0) 和 θ ^ B ( 0 ) {\color{blue}\hat\theta^{(0)}_B} θ^B(0)类似),上式具体可分为两步:
- E step:给定初始参数,计算 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) 下的期望
- M step:计算得到使期望最大化的参数,新的参数可作为下一次迭代的输入
为什么迭代
怎么保证每次迭代都是朝着更好的方向?也就是需要证明:
log
p
(
x
∣
θ
t
)
≤
log
p
(
x
∣
θ
t
+
1
)
\color{blue}\log p(x|\theta^t)\le\log p(x|\theta^{t+1})
logp(x∣θt)≤logp(x∣θt+1)
证明:
log
p
(
x
∣
θ
)
=
log
p
(
z
,
x
∣
θ
)
−
log
p
(
z
∣
x
,
θ
)
\log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)
logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ),对左右两边求积分(关于概率分布
p
(
z
∣
x
,
θ
t
)
p(z|x,\theta^t)
p(z∣x,θt) 的积分):
L
e
f
t
:
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
∣
θ
)
d
z
=
log
p
(
x
∣
θ
)
∫
z
p
(
z
∣
x
,
θ
t
)
d
z
⏟
1
=
log
p
(
x
∣
θ
)
R
i
g
h
t
:
∫
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
)
=
Q
(
θ
,
θ
t
)
−
H
(
θ
,
θ
t
)
\begin{aligned} &Left:\int_zp(z|x,\theta^t)\log p(x|\theta)dz=\log p(x|\theta)\underbrace{\int_zp(z|x,\theta^t)dz}_{1}=\log p(x|\theta)\\ &Right:\underbrace{\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz}_{Q(\theta,\theta^t)}-\underbrace{\int_zp(z|x,\theta^t)\log p(z|x,\theta)dz}_{H(\theta,\theta^t)}\\ &\qquad\qquad=Q(\theta,\theta^t)-H(\theta,\theta^t) \end{aligned}
Left:∫zp(z∣x,θt)logp(x∣θ)dz=logp(x∣θ)1
∫zp(z∣x,θt)dz=logp(x∣θ)Right:Q(θ,θt)
∫zp(z∣x,θt)logp(x,z∣θ)dz−H(θ,θt)
∫zp(z∣x,θt)logp(z∣x,θ)dz=Q(θ,θt)−H(θ,θt)所以:
log
p
(
x
∣
θ
)
=
Q
(
θ
,
θ
t
)
−
H
(
θ
,
θ
t
)
\log p(x|\theta)=Q(\theta,\theta^t)-H(\theta,\theta^t)
logp(x∣θ)=Q(θ,θt)−H(θ,θt) 由于
Q
(
θ
,
θ
t
)
=
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
)
d
z
Q(\theta,\theta^t)=\int_zp(z|x,\theta^t)\log p(x,z|\theta)dz
Q(θ,θt)=∫zp(z∣x,θt)logp(x,z∣θ)dz而
θ
t
+
1
\theta^{t+1}
θt+1 本身就是由最大化
Q
(
θ
,
θ
t
)
Q(\theta,\theta^t)
Q(θ,θt) 得到:
θ
t
+
1
=
a
r
g
m
a
x
θ
∫
z
log
[
p
(
x
,
z
∣
θ
)
]
p
(
z
∣
x
,
θ
t
)
d
z
\theta^{t+1}=\mathop{argmax}\limits_{\theta}\int_z\log [p(x,z|\theta)]p(z|x,\theta^t)dz
θt+1=θargmax∫zlog[p(x,z∣θ)]p(z∣x,θt)dz所以自然有:
Q
(
θ
t
+
1
,
θ
t
)
≥
Q
(
θ
,
θ
t
)
Q(\theta^{t+1},\theta^t)\ge Q(\theta,\theta^t)
Q(θt+1,θt)≥Q(θ,θt)
θ
\theta
θ为随机变量,因此取
θ
=
θ
t
\theta=\theta^{t}
θ=θt 也是成立的:
Q
(
θ
t
+
1
,
θ
t
)
≥
Q
(
θ
t
,
θ
t
)
Q(\theta^{t+1},\theta^t)\ge Q(\theta^t,\theta^t)
Q(θt+1,θt)≥Q(θt,θt)要证
log
p
(
x
∣
θ
t
)
≤
log
p
(
x
∣
θ
t
+
1
)
\log p(x|\theta^t)\le\log p(x|\theta^{t+1})
logp(x∣θt)≤logp(x∣θt+1),需证:
H
(
θ
t
,
θ
t
)
≥
H
(
θ
t
+
1
,
θ
t
)
H(\theta^t,\theta^t)\ge H(\theta^{t+1},\theta^t)
H(θt,θt)≥H(θt+1,θt):
H
(
θ
t
+
1
,
θ
t
)
−
H
(
θ
t
,
θ
t
)
=
∫
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
=
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
z
∣
x
,
θ
t
+
1
)
p
(
z
∣
x
,
θ
t
)
=
−
K
L
(
p
(
z
∣
x
,
θ
t
)
,
p
(
z
∣
x
,
θ
t
+
1
)
)
≤
0
\begin{aligned} &H(\theta^{t+1},\theta^t)-H(\theta^{t},\theta^t)\\&=\int_zp(z|x,\theta^{t})\log p(z|x,\theta^{t+1})dz-\int_zp(z|x,\theta^t)\log p(z|x,\theta^{t})dz\\ &=\int_zp(z|x,\theta^t)\log\frac{p(z|x,\theta^{t+1})}{p(z|x,\theta^t)}\\ &=-KL(p(z|x,\theta^t),p(z|x,\theta^{t+1}))\le0 \end{aligned}
H(θt+1,θt)−H(θt,θt)=∫zp(z∣x,θt)logp(z∣x,θt+1)dz−∫zp(z∣x,θt)logp(z∣x,θt)dz=∫zp(z∣x,θt)logp(z∣x,θt)p(z∣x,θt+1)=−KL(p(z∣x,θt),p(z∣x,θt+1))≤0 综合上面的结果:
log
p
(
x
∣
θ
t
)
≤
log
p
(
x
∣
θ
t
+
1
)
\log p(x|\theta^t)\le\log p(x|\theta^{t+1})
logp(x∣θt)≤logp(x∣θt+1)根据上面的证明可知似然函数每一步都会增大。
EM 公式推导
引入关于
z
z
z 的分布
q
(
z
)
≠
0
q(z)\neq 0
q(z)=0:
log
p
(
x
∣
θ
)
=
log
p
(
z
,
x
∣
θ
)
−
log
p
(
z
∣
x
,
θ
)
=
log
p
(
z
,
x
∣
θ
)
q
(
z
)
−
log
p
(
z
∣
x
,
θ
)
q
(
z
)
\log p(x|\theta)=\log p(z,x|\theta)-\log p(z|x,\theta)=\log \frac{p(z,x|\theta)}{q(z)}-\log \frac{p(z|x,\theta)}{q(z)}
logp(x∣θ)=logp(z,x∣θ)−logp(z∣x,θ)=logq(z)p(z,x∣θ)−logq(z)p(z∣x,θ)
分别对两边求期望 E q ( z ) \mathbb{E}{q(z)} Eq(z): L e f t : ∫ z q ( z ) log p ( x ∣ θ ) d z = log p ( x ∣ θ ) R i g h t : ∫ z q ( z ) log p ( z , x ∣ θ ) q ( z ) d z − ∫ z q ( z ) log p ( z ∣ x , θ ) q ( z ) d z = E L B O − K L ( q ( z ) , p ( z ∣ x , θ ) ) \begin{aligned} &Left:\int_zq(z)\log p(x|\theta)dz=\log p(x|\theta)\\ &Right:\int_zq(z)\log \frac{p(z,x|\theta)}{q(z)}dz-\int_zq(z)\log \frac{p(z|x,\theta)}{q(z)}dz\\&\qquad\qquad=ELBO-KL(q(z),p(z|x,\theta)) \end{aligned} Left:∫zq(z)logp(x∣θ)dz=logp(x∣θ)Right:∫zq(z)logq(z)p(z,x∣θ)dz−∫zq(z)logq(z)p(z∣x,θ)dz=ELBO−KL(q(z),p(z∣x,θ))
上式中,Evidence Lower Bound(ELBO)为下界,所以 log p ( x ∣ θ ) ≥ E L B O \log p(x|\theta)\ge ELBO logp(x∣θ)≥ELBO,等于号取在 KL 散度为0是,即: q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(z∣x,θ),EM 算法的目的是将 ELBO 最大化,根据上面的证明过程,在每一步 EM 后,求得了最大的ELBO,并根据这个使 ELBO 最大的参数代入下一步中: θ ^ = a r g m a x θ E L B O = a r g m a x θ ∫ z q ( z ) log p ( x , z ∣ θ ) q ( z ) d z \hat{\theta}=\mathop{argmax}\limits_{\theta}ELBO=\mathop{argmax}\limits_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz θ^=θargmaxELBO=θargmax∫zq(z)logq(z)p(x,z∣θ)dz
由于
q
(
z
)
=
p
(
z
∣
x
,
θ
t
)
q(z)=p(z|x,\theta^t)
q(z)=p(z∣x,θt) 的时候,这一步的最大值才能取等号,所以:
θ
^
=
a
r
g
m
a
x
θ
E
L
B
O
=
a
r
g
m
a
x
θ
∫
z
q
(
z
)
log
p
(
x
,
z
∣
θ
)
q
(
z
)
d
z
=
a
r
g
m
a
x
θ
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
)
p
(
z
∣
x
,
θ
t
)
d
z
=
a
r
g
m
a
x
θ
∫
z
p
(
z
∣
x
,
θ
t
)
[
log
p
(
x
,
z
∣
θ
)
−
log
p
(
z
∣
x
,
θ
t
)
⏟
θ
无关项,可看作常数
]
d
z
=
a
r
g
m
a
x
θ
∫
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
)
\begin{aligned} \hat{\theta}&=\mathop{argmax}\limits_{\theta}ELBO=\mathop{argmax}\limits_\theta\int_zq(z)\log\frac{p(x,z|\theta)}{\color{blue}q(z)}dz\\ &=\mathop{argmax}\limits_\theta\int_zp(z|x,\theta^t)\log\frac{p(x,z|\theta)}{\color{blue}p(z|x,\theta^t)}d z\\ &=\mathop{argmax}\limits_\theta\int_zp(z|x,\theta^t)[\log{p(x,z|\theta)}-\underbrace{\log{\color{blue}p(z|x,\theta^t)}}_{\color{blue}\theta\text{无关项,可看作常数}}]d z\\ &=\color{blue}\mathop{argmax}\limits_\theta\int_z p(z|x,\theta^t)\log p(x,z|\theta) \end{aligned}
θ^=θargmaxELBO=θargmax∫zq(z)logq(z)p(x,z∣θ)dz=θargmax∫zp(z∣x,θt)logp(z∣x,θt)p(x,z∣θ)dz=θargmax∫zp(z∣x,θt)[logp(x,z∣θ)−θ无关项,可看作常数
logp(z∣x,θt)]dz=θargmax∫zp(z∣x,θt)logp(x,z∣θ)
上式就是 EM 迭代公式
由 Jensen 不等式导出 EM 公式
从 Jensen 不等式出发,也可导出 EM 公式:
log
p
(
x
∣
θ
)
=
log
∫
z
p
(
x
,
z
∣
θ
)
d
z
=
log
∫
z
p
(
x
,
z
∣
θ
)
q
(
z
)
q
(
z
)
d
z
=
log
E
q
(
z
)
[
p
(
x
,
z
∣
θ
)
q
(
z
)
]
≥
E
q
(
z
)
[
log
p
(
x
,
z
∣
θ
)
q
(
z
)
]
\begin{aligned} \log p(x|\theta)&=\log\int_zp(x,z|\theta)dz=\log\int_z\frac{p(x,z|\theta)q(z)}{q(z)}dz\\ &=\log \mathbb{E}{q(z)}\left[\frac{p(x,z|\theta)}{q(z)}\right]\ge \color{blue}{\mathbb{E}{q(z)}\left[\log\frac{p(x,z|\theta)}{q(z)}\right] } \end{aligned}
logp(x∣θ)=log∫zp(x,z∣θ)dz=log∫zq(z)p(x,z∣θ)q(z)dz=logEq(z)[q(z)p(x,z∣θ)]≥Eq(z)[logq(z)p(x,z∣θ)]
上式蓝色项就是 ELBO,等号在
p
(
x
,
z
∣
θ
)
=
C
q
(
z
)
p(x,z|\theta)=Cq(z)
p(x,z∣θ)=Cq(z) 时成立,于是:
∫
z
q
(
z
)
d
z
=
1
C
∫
z
p
(
x
,
z
∣
θ
)
d
z
=
1
C
p
(
x
∣
θ
)
=
1
⇒
q
(
z
)
=
1
p
(
x
∣
θ
)
p
(
x
,
z
∣
θ
)
=
p
(
z
∣
x
,
θ
)
\begin{aligned} \int_zq(z)dz=\frac{1}{C}\int_zp(x,z|\theta)dz=\frac{1}{C}p(x|\theta)=1\\ \Rightarrow q(z)=\frac{1}{p(x|\theta)}p(x,z|\theta)=p(z|x,\theta) \end{aligned}
∫zq(z)dz=C1∫zp(x,z∣θ)dz=C1p(x∣θ)=1⇒q(z)=p(x∣θ)1p(x,z∣θ)=p(z∣x,θ)
其中 , θ ,\theta ,θ 应该是上一次迭代得到的 θ t \theta^t θt,于是就推导得到了 EM 迭代公式
广义 EM
EM 模型解决了概率生成模型的参数估计的问题,通过引入隐变量 z z z来学习模型参数 θ \theta θ,不同的模型对 z z z 可以有不同的假设。对学习任务 p ( x ∣ θ ) p(x|\theta) p(x∣θ),就是学习任务 p ( x , z ∣ θ ) p ( z ∣ x , θ ) \frac{p(x,z|\theta)}{p(z|x,\theta)} p(z∣x,θ)p(x,z∣θ)。在这个式子中,假定了在 E 步骤中, q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(z∣x,θ),如果 p ( z ∣ x , θ ) p(z|x,\theta) p(z∣x,θ) 无法求解,那么就需要使用采样(MCMC)或者变分推断等方法来近似推断这个后验。观察 KL 散度(衡量两个分布的距离)的表达式,为了最大化 ELBO,在固定的 θ \theta θ 时,需要最小化 KL 散度,于是: q ^ ( z ) = a r g m i n q K L ( p , q ) = a r g m a x q E L B O \hat{q}(z)=\mathop{argmin}\limits_qKL(p,q)=\mathop{argmax}\limits_qELBO q^(z)=qargminKL(p,q)=qargmaxELBO
广义 EM 的基本思路:
E step: 固定模型参数的值,优化隐含数据的分布 q ^ t + 1 ( z ) = a r g m a x q ∫ z q t ( z ) log p ( x , z ∣ θ ) q t ( z ) d z , f i x e d θ \hat{q}^{t+1}(z)=\mathop{argmax}\limits_q\int_zq^t(z)\log\frac{p(x,z|\theta)}{q^t(z)}dz,\quad fixed\ \theta q^t+1(z)=qargmax∫zqt(z)logqt(z)p(x,z∣θ)dz,fixed θ
M step:固定隐含数据分布,优化模型参数的值 θ ^ = a r g m a x θ ∫ z q t + 1 ( z ) log p ( x , z ∣ θ ) q t + 1 ( z ) d z , f i x e d q ^ \hat{\theta}=\mathop{argmax}\limits_\theta \int_zq^{t+1}(z)\log\frac{p(x,z|\theta)}{q^{t+1}(z)}dz,\quad fixed\ \hat{q} θ^=θargmax∫zqt+1(z)logqt+1(z)p(x,z∣θ)dz,fixed q^
对于上面的积分: E L B O = ∫ z q ( z ) log p ( x , z ∣ θ ) q ( z ) d z = E q ( z ) [ p ( x , z ∣ θ ) ] + E n t r o p y ( q ( z ) ) ELBO=\int_zq(z)\log\frac{p(x,z|\theta)}{q(z)}dz=\mathbb{E}_{q(z)}[p(x,z|\theta)]+Entropy(q(z)) ELBO=∫zq(z)logq(z)p(x,z∣θ)dz=Eq(z)[p(x,z∣θ)]+Entropy(q(z))
EM 的推广
EM 算法类似于坐标上升法,固定部分坐标,优化其他坐标,再一遍一遍的迭代。如果在 EM 框架中,无法求解 z z z 后验概率,那么需要采用一些变种的 EM 来估算这个后验。
- 基于平均场的变分推断,VBEM/VEM
- 基于蒙特卡洛的EM,MCEM
参考文献
【1】期望最大
【2】EM算法原理总结
【3】从最大似然到EM算法浅解
【4】What is the expectation maximization algorithm?
【5】EM算法通俗实例(What is the expectation maximization algorithm?)
【6】EM算法求高斯混合模型參数预计——Python实现
【7】EM算法Python实战
【8】EM算法及其推广