EM算法
无隐变量下,极大似然函数为:
L
(
θ
)
=
∏
i
P
(
x
i
;
θ
)
L(\theta) = \prod_iP\left(x^{i};\theta\right)
L(θ)=i∏P(xi;θ)
含隐变量时候,变为:
L
(
θ
,
z
)
=
∏
i
∑
j
P
(
x
i
,
z
i
;
θ
)
L(\theta,z)=\prod_i\sum_jP(x^{i},z^{i};\theta)
L(θ,z)=i∏j∑P(xi,zi;θ)
取对数似然:
l
n
L
(
θ
,
z
)
=
∑
i
[
l
o
g
(
∑
j
P
(
x
i
,
z
j
;
θ
)
)
]
lnL(\theta,z)=\sum_i\left[log\left(\sum_jP(x^{i},z^{j};\theta)\right)\right]
lnL(θ,z)=i∑[log(j∑P(xi,zj;θ))]
其中,极大化该似然函数的主要困难是包含未观测数据和包含和的对数,因此不寻找其解析解,转为寻找其数值解。
EM算法的数值解法
思想:寻找一个 θ ′ \theta ' θ′,使 L ( θ ′ ) > L ( θ ) L(\theta ')>L(\theta) L(θ′)>L(θ),使其逐步达到极大值
设对于每个x_i,存在一个未知概率分布函数
Q
i
(
z
(
j
)
)
Q_i(z^{(j)})
Qi(z(j)),其满足概率分布函数的特性,即:
∑
j
Q
i
(
z
j
)
=
1
Q
i
(
z
j
)
∈
[
0
,
1
]
\sum_jQ_i(z^{j})=1\\ Q_i(z^j) \in [0,1]
j∑Qi(zj)=1Qi(zj)∈[0,1]
引入:随机变量
Y
Y
Y的期望
E
(
Y
)
E(Y)
E(Y)
E
(
Y
)
=
∑
y
∈
Y
(
P
(
y
)
∗
y
)
E(Y) = \sum_{y \in Y} \left(P(y)*y\right)
E(Y)=y∈Y∑(P(y)∗y)
其中,y是随机变量Y的一个取值,P(y)是这个取值发生的概率。
引入:Jensen不等式
l
o
g
(
E
(
Y
)
)
≥
E
(
l
o
g
(
y
)
)
log(E(Y)) \geq E(log(y))
log(E(Y))≥E(log(y))
此时,令 P ( x i , z j ; θ ) Q i ( z j ) \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} Qi(zj)P(xi,zj;θ)为分布 Q i Q_i Qi的一个样本, Q i ( z j ) Q_i(z^j) Qi(zj)为这个样本的概率,可以得到
log ( E ( P ( x i , z j ; θ ) Q i ( z j ) ) ) ≥ E ( log ( P ( x i , z j ; θ ) Q i ( z j ) ) ) = ∑ j [ Q i ( z j ) log ( P ( x i , z j ; θ ) Q i ( z j ) ) ] \log\left(E\left( \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} \right)\right) \geq E\left(\log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)} \right)\right) \\= \sum_j\left[Q_i(z^j)\log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\right)\right] log(E(Qi(zj)P(xi,zj;θ)))≥E(log(Qi(zj)P(xi,zj;θ)))=j∑[Qi(zj)log(Qi(zj)P(xi,zj;θ))]
上面的推导过程结束后,可以直接应用于含隐函数的极大似然函数:
l n L ( θ ) = ∑ i log ∑ j P ( x i , z j ; θ ) = ∑ i log ∑ j Q i ( z j ) P ( x i , z j ; θ ) Q i ( z j ) ≥ ∑ i { ∑ j [ Q i ( z j ) log ( P ( x i , z j ; θ ) Q i ( z j ) ) ] } (1) lnL(\theta) = \sum_i \log\sum_jP(x^i,z^j;\theta)\\ =\sum_i \log\sum_jQ_i(z^j)\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\\ \geq\sum_i\left\{\sum_j\left[ Q_i(z^j) \log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\right) \right]\right\} \tag{1} lnL(θ)=i∑logj∑P(xi,zj;θ)=i∑logj∑Qi(zj)Qi(zj)P(xi,zj;θ)≥i∑{j∑[Qi(zj)log(Qi(zj)P(xi,zj;θ))]}(1)
公式 (1) 实际上构建了对数似然函数的下界,而这个下界是存在优化手段的,因此通过优化该下界,我们可以让最后的 L ( θ ) L(\theta) L(θ)不断增大。而在什么情况下优化这个下界,一定可以增大原本的 L ( θ ) L(\theta) L(θ)呢?答案就是等式成立的时候。
引入:Jensen不等式成立条件:当随机变量是常数的时候,Jensen不等式取等号。
即,当
P ( x i , z j ; θ ) Q i ( z j ) = c (2) \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} = c \tag{2} Qi(zj)P(xi,zj;θ)=c(2)
时,上式的推导可以取等号。
下面来通过 式(2) 求位置的概率分布 Q i Q_i Qi
P
(
x
i
,
z
j
;
θ
)
=
c
Q
i
(
z
j
)
P(x^i,z^j;\theta) = cQ_i(z^j)\\
P(xi,zj;θ)=cQi(zj)
同时对所有的隐变量z(用 j 来遍历) 求和,另外注意
∑
j
Q
i
(
z
j
)
=
1
\sum_jQ_i(z^{j})=1
∑jQi(zj)=1,得:
∑ j P ( x i , z j ; θ ) = c ∑ j Q i ( z j ) = c \sum_jP(x^i,z^j;\theta) = c\sum_jQ_i(z^j) = c j∑P(xi,zj;θ)=cj∑Qi(zj)=c
所以
c
=
∑
j
P
(
x
i
,
z
j
;
θ
)
c=\sum_jP(x^i,z^j;\theta)
c=∑jP(xi,zj;θ),注意该式其实是求
x
x
x的边缘分布,因此
c
=
∑
j
P
(
x
i
,
z
j
;
θ
)
=
P
(
x
i
;
θ
)
c=\sum_jP(x^i,z^j;\theta)=P(x^i;\theta)
c=j∑P(xi,zj;θ)=P(xi;θ)
将上式代回 式(2),可得
Q
i
(
z
j
)
=
P
(
x
i
,
z
j
;
θ
)
∑
j
P
(
x
i
,
z
j
;
θ
)
=
P
(
x
i
,
z
j
;
θ
)
P
(
x
i
;
θ
)
=
P
(
z
j
∣
x
i
;
θ
)
Q_i(z^j) = \frac{P(x^i,z^j;\theta)}{\sum_jP(x^i,z^j;\theta)} = \frac{P(x^i,z^j;\theta)}{P(x^i;\theta)} \\ = P(z^j|x^i;\theta)
Qi(zj)=∑jP(xi,zj;θ)P(xi,zj;θ)=P(xi;θ)P(xi,zj;θ)=P(zj∣xi;θ)
可以得到 Q i Q_i Qi最终是一个条件概率,也即在上式中取 Q i ( z j ) = P ( z j ∣ x i ; θ ) Q_i(z^j) = P(z^{j}|x^i;\theta) Qi(zj)=P(zj∣xi;θ)时,我们就找到了极大似然函数的下界。
同时注意到 Q Q Q函数拥有明确的含义:在由参数 θ \theta θ确定的概率分布下的 x i x^i xi的 z j z^j zj的条件概率。如果有看过 人人都懂EM算法 这篇博客的例子的同学,应该能够明白其含义
对于两百个男女混搭的同学,先随便假设一个参数,然后判断在这个参数条件下某个同学各自属于男女的概率,然后再各自使用极大似然估计优化参数。
上面一段话中的加粗部份,就是求 Q i Q_i Qi函数所做的事情,即EM算法中的E步。
在求解完成后,我们来进行下一步,M步
原优化目标为:
θ
,
z
=
a
r
g
m
a
x
θ
,
z
l
n
L
(
θ
,
z
)
\theta,z = argmax_{\theta,z} lnL(\theta,z)
θ,z=argmaxθ,zlnL(θ,z)
现优化目标(M步)变成了:
θ
=
a
r
g
m
a
x
θ
∑
i
∑
j
Q
i
(
z
j
)
l
o
g
P
(
x
i
,
z
j
;
θ
)
Q
i
(
z
j
)
\theta = argmax_{\theta}\sum_i\sum_jQ_i(z^j)log\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}
θ=argmaxθi∑j∑Qi(zj)logQi(zj)P(xi,zj;θ)
这一步的优化如何完成,此时就是用一些数值解法了,如梯度下降法,拟牛顿法等,这里要提的是,EM算法那只能求得极大值,无法求得最大值。
《统计学习方法》中,李航的公式貌似有一些错误,另外很多博客上其所用的符号感觉并不友好,相比较而言,使用 ";“来表示其后的参数是相关参数比用竖杠”|"表示更好,因为竖杠很容易会被当做条件概率,cs229中的笔记也是这样表示的。
EM算法对我而言,一方面是体会到了一种思想,另一方面则是对数学期望的彻底理解。
参考文献
李航《统计学习方法》
人人都懂EM算法
cs229-note8