EM算法用于在生成模型当中,模型的形式已知后,以最大似然的形式,优化模型参数。
对数似然目标
θ
^
=
arg max
θ
[
∑
i
=
1
I
l
o
g
[
∫
P
(
x
i
,
h
i
∣
θ
)
d
h
i
]
]
\hat \theta = \argmax _\theta \left [ \sum_{i=1}^I log \left [\int P(x_i, h_i|\theta)dh_i \right] \right ]
θ^=θargmax[i=1∑Ilog[∫P(xi,hi∣θ)dhi]]
其中
{
x
i
}
i
=
1
I
\{ x_i\}_{i=1}^I
{xi}i=1I是训练数据,
h
h
h是隐变量。
定义下界
上式不好直接求,定义下界函数
B
[
{
q
i
(
h
i
)
}
,
θ
]
=
∑
i
=
1
I
∫
q
i
(
h
i
)
log
[
P
(
x
i
,
h
i
∣
θ
)
q
i
(
h
i
)
]
d
h
i
≤
∑
i
=
1
I
log
[
∫
P
(
x
i
,
h
i
∣
θ
)
d
h
i
]
\begin{aligned} \mathcal B [\{q_i(h_i)\}, \theta ] &= \sum_{i=1}^I \int q_i(h_i) \log \left[ \frac{P(x_i, h_i | \theta)}{q_i(h_i)} \right] dh_i \\ & \leq \sum_{i=1}^I \log \left [\int P(x_i, h_i|\theta)dh_i \right] \end{aligned}
B[{qi(hi)},θ]=i=1∑I∫qi(hi)log[qi(hi)P(xi,hi∣θ)]dhi≤i=1∑Ilog[∫P(xi,hi∣θ)dhi]
优化过程
不断优化 B \mathcal B B,即优化了目标函数的下界。优化方法为
- E步(期望步):更新概率分布
{
q
i
(
h
i
)
}
i
=
1
I
\{ q_i(h_i)\}_{i=1}^I
{qi(hi)}i=1I来最大地提高下界。
在第 t + 1 t+1 t+1步,选择
q ^ i ( h i ) = P ( h i ∣ x i , θ [ t ] ) = P ( x i ∣ h i , θ [ t ] ) P ( h i ∣ θ [ t ] ) P ( x i ) \hat q_i (h_i) = P(h_i| x_i, \theta ^{[t]}) = \frac{P(x_i|h_i, \theta ^{[t]})P(h_i|\theta ^{[t]})}{P(x_i)} q^i(hi)=P(hi∣xi,θ[t])=P(xi)P(xi∣hi,θ[t])P(hi∣θ[t])
该式是最大化的正确性可由Jensen不等式保证。注意这种取法实际上达到了对数似然函数,即此时
B [ { q i ( h i ) } , θ ] = ∑ i = 1 I log [ P ( x i ∣ θ ) ] \mathcal B [\{q_i(h_i)\}, \theta]=\sum_{i=1}^I \log[P(x_i|\theta)] B[{qi(hi)},θ]=i=1∑Ilog[P(xi∣θ)] - M步(最大化步):更新参数
θ
\theta
θ来提高下界。注意到
q
^
i
(
h
i
)
\hat q_i(h_i)
q^i(hi)与
θ
\theta
θ无关,所以只需最大化下式
θ ^ [ t + 1 ] = arg max θ ∑ i = 1 I ∫ q ^ i ( h i ) log [ P ( x i , h i ∣ θ ) ] d h i = arg max θ ∑ i = 1 I [ E h ∼ q ^ i ( h i ) [ log ( P ( x i ∣ h i , θ ) ) ] + E h ∼ q ^ i ( h i ) [ log ( P ( h i ) ) ] ] (1) \begin{aligned} \hat \theta^{[t+1]} &= \argmax _\theta \sum_{i=1}^I \int \hat q_i(h_i) \log \left[ P(x_i, h_i|\theta) \right] dh_i \\ &= \argmax _\theta \sum_{i=1}^I \left [ \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(x_i| h_i, \theta))\right] + \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(h_i))\right] \right ] \end{aligned} \tag{1} θ^[t+1]=θargmaxi=1∑I∫q^i(hi)log[P(xi,hi∣θ)]dhi=θargmaxi=1∑I[Eh∼q^i(hi)[log(P(xi∣hi,θ))]+Eh∼q^i(hi)[log(P(hi))]](1)
例子解释
混合高斯模型
在混合高斯模型当中,
E
E
E步就是对每个点赋类别概率,
M
M
M步就是更新参数
{
μ
,
Σ
,
λ
}
\{ \mu, \Sigma, \lambda\}
{μ,Σ,λ}。
如果不用EM算法,直接优化
∑
i
=
1
I
log
[
P
(
x
i
∣
θ
)
]
\sum_{i=1}^I \log [P(x_i|\theta)]
∑i=1Ilog[P(xi∣θ)],则无法简单得到闭式解。
学生t分布模型
概念
- 高斯分布对奇异值太敏感,t分布不会产生如此剧烈影响。
如果
P ( x ∣ h ) = N ( x ∣ μ , Σ / h ) P ( h ) = G a m ( h ∣ ν / 2 , ν / 2 ) P(\bm x|h) = \mathcal N (\bm x|\bm\mu, \bm\Sigma/h) \\ P(h) = Gam(h| \nu / 2, \nu/2) P(x∣h)=N(x∣μ,Σ/h)P(h)=Gam(h∣ν/2,ν/2)
则 x x x的全概率分布为学生t分布:
P ( x ) = ∫ P ( x ∣ h ) P ( h ) d h = ∫ N ( x ∣ μ , Σ / h ) G a m ( h ∣ ν / 2 , ν / 2 ) d h = S t ( x ∣ μ , Σ , ν ) \begin{aligned} P(\bm x) & = \int P(\bm x|h)P(h)dh \\ &= \int \mathcal N(\bm x|\bm \mu, \bm\Sigma/h)Gam(h|\nu/2, \nu/2)dh \\ &= St(\bm x| \bm \mu, \bm \Sigma, \nu) \end{aligned} P(x)=∫P(x∣h)P(h)dh=∫N(x∣μ,Σ/h)Gam(h∣ν/2,ν/2)dh=St(x∣μ,Σ,ν)
其中 h h h是标量隐变量, G a m Gam Gam是Gamma分布。
可以理解为是 h h h选择了一族同均值的正态分布中的一个,然后在该分布上生成 x \bm x x.
也可参考之前博客中记录的,PRML对于学生t分布的解释。
EM算法求解
- E步:
q i ( h i ) = P ( h i ∣ x i , θ [ t ] ) = P ( x i ∣ h ) P ( h i ) P ( x i ∣ θ [ t ] ) = N ( x i ∣ μ , Σ / h ) G a m ( h i ∣ ν / 2 , ν / 2 ) P ( x i ∣ θ [ t ] ) = G a m ( h i ∣ ν + D 2 , ( x i − μ ) T Σ − 1 ( x i − μ ) 2 + ν 2 ) \begin{aligned} q_i(h_i) = P(h_i|\bm x_i, \bm \theta^{[t]}) &= \frac{P(\bm x_i|h)P(h_i)}{P(\bm x_i|\theta^{[t]})} \\ &= \frac{\mathcal N(\bm x_i| \mu, \Sigma/h) Gam(h_i|\nu/2, \nu/2) }{P(\bm x_i|\theta^{[t]})} \\ &= Gam(h_i| \frac{\nu + D}{2} , \frac{(\bm x_i - \mu)^T \Sigma^{-1} (\bm x_i - \bm \mu)}{2} + \frac{\nu}{2}) \end{aligned} qi(hi)=P(hi∣xi,θ[t])=P(xi∣θ[t])P(xi∣h)P(hi)=P(xi∣θ[t])N(xi∣μ,Σ/h)Gam(hi∣ν/2,ν/2)=Gam(hi∣2ν+D,2(xi−μ)TΣ−1(xi−μ)+2ν)
最后一步的证明,注意共轭性。可以参考之前的博客。 - M步:对式(1)求导,置0后得到:
μ [ t + 1 ] = ∑ i = 1 I E [ h i ] x i ∑ i = 1 I E [ h i ] Σ [ t + 1 ] = ∑ i = 1 I E [ h i ] ( x i − μ [ t + 1 ] ) ( x i − μ [ t + 1 ] ) T ∑ i = 1 I E [ h i ] \begin{aligned} \mu^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i]\bm x_i}{\sum_{i=1}^I \mathbb E[h_i]} \\ \Sigma^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i] (\bm x_i - \mu^{[t+1]})(\bm x_i - \mu^{[t+1]})^T}{\sum_{i=1}^I \mathbb E[h_i]} \end{aligned} μ[t+1]Σ[t+1]=∑i=1IE[hi]∑i=1IE[hi]xi=∑i=1IE[hi]∑i=1IE[hi](xi−μ[t+1])(xi−μ[t+1])T - 直观解释: E [ h i ] \mathbb E [h_i] E[hi]可以看作是数据的权重。对于异常值,协方差较大的高斯分布出现的概率大,也即 h i h_i hi倾向于偏小,所以权重小。这样也解释了学生t分布对于异常值的鲁棒性。
- 自由度 ν \nu ν没有闭式解,可以在代入更新后 μ , Σ \bm \mu, \bm \Sigma μ,Σ后,进行一维线性搜索最大化。
深入理解
对于下界(ELBO),如果两边对
x
x
x求关于数据分布的期望。可以进一步求得变分推断的优化目标为两个联合概率的负KL散度:
−
K
L
[
p
d
(
x
)
q
(
z
∣
x
;
θ
)
∣
∣
p
(
x
∣
z
;
θ
)
p
(
z
;
θ
)
]
-KL[p_d(x)q(z|x;\theta) || p(x|z;\theta)p(z;\theta)]
−KL[pd(x)q(z∣x;θ)∣∣p(x∣z;θ)p(z;θ)]
即
E
x
∼
p
d
log
p
(
x
)
=
−
K
L
[
p
d
(
x
)
q
(
z
∣
x
;
θ
)
∣
∣
p
(
x
,
z
;
θ
)
]
+
E
x
∼
p
d
log
p
d
(
x
)
+
E
x
∼
p
d
K
L
(
q
(
z
∣
x
)
∣
∣
p
(
z
∣
x
)
)
\mathbb E_{x\sim p_d} \log p(x) = -KL[p_d(x)q(z|x;\theta) || p(x,z;\theta)] + \mathbb E_{x\sim p_d}\log p_d(x)+\mathbb E_{x\sim p_d}KL(q(z|x)||p(z|x))
Ex∼pdlogp(x)=−KL[pd(x)q(z∣x;θ)∣∣p(x,z;θ)]+Ex∼pdlogpd(x)+Ex∼pdKL(q(z∣x)∣∣p(z∣x))
其中
p
d
p_d
pd是数据分布,
p
p
p是模型拟合的全数据分布,
q
q
q是后验辅助函数
在高斯混合模型中,我们人工设计了 p ( x ∣ z ) p(x|z) p(x∣z)和 p ( z ) p(z) p(z)。而在变分自编码器VAE中,则建模了 p ( z ) p(z) p(z),对于 p ( x ∣ z ) p(x|z) p(x∣z)和 p ( z ∣ x ) p(z|x) p(z∣x)都以神经网络去拟合,并没有显式给出具体类的 p ( x ∣ z ) p(x|z) p(x∣z)。这是VAE比EM强的地方
参考文献:
[1] Prince S J D. Computer vision: models, learning, and inference[M]. Cambridge University Press, 2012. 108-116.