EM算法是处理有隐变量的情况下使用的方法
函数g(x)的数学期望可以表示为:
EM算法思想:
1:先给定一个初始的
θ
\theta
θ求出f(x)函数的期望Ef(x),
2:然后再求出使得期望最大化的新的
θ
\theta
θ值
步骤:
-
建立对数目标似然函数
L ( θ ) = ∑ i = 1 log p ( x ∣ θ ) L(\theta)=\sum_{i=1}\log p(x|\theta) L(θ)=∑i=1logp(x∣θ)
这里 表 示 样 本 x 服 从 概 率 为 p ( x ) 的 某 种 分 布 , θ 为 分 布 的 参 数 表示样本x服从概率为p(x)的某种分布,\theta为分布的参数 表示样本x服从概率为p(x)的某种分布,θ为分布的参数 -
当目标函数不能直接求解,依赖于隐含变量时,我们引入隐含变量,目标函数变为:
L ( θ ) = ∑ i = 1 log ∑ z p ( x , z ∣ θ ) L(\theta)=\displaystyle \sum_{i=1} \log \sum_z p(x,z|\theta) L(θ)=i=1∑logz∑p(x,z∣θ) -
分子分母同时乘以z的分布 Q ( z ) Q(z) Q(z),构造Jensen不等式
L ( θ ) = ∑ i = 1 log ∑ z Q ( z ) p ( x , z ∣ θ ) Q ( z ) L(\theta)=\displaystyle \sum_{i=1} \log \sum_z Q(z) \frac{p(x,z| \theta)}{Q(z)} L(θ)=i=1∑logz∑Q(z)Q(z)p(x,z∣θ) -
应用Jensen不等式:因为log函数是凹函数,所以有 f ( E x ) ≥ E f ( x ) f(Ex)\geq Ef(x) f(Ex)≥Ef(x) :
L ( θ ) = ∑ i = 1 log ∑ z Q ( z ) p ( x , z ∣ θ ) Q ( z ) ≥ ∑ i = 1 ∑ z Q ( z ) log p ( x , z ∣ θ ) Q ( z ) L(\theta)=\displaystyle \sum_{i=1} \log \sum_z Q(z) \frac{p(x,z| \theta)}{Q(z)} \geq \displaystyle \sum_{i=1} \sum_z Q(z)\log \frac{p(x,z| \theta)}{Q(z)} L(θ)=i=1∑logz∑Q(z)Q(z)p(x,z∣θ)≥i=1∑z∑Q(z)logQ(z)p(x,z∣θ)
也就是说 E f ( x ) 是 f ( E x ) 的 下 界 函 数 Ef(x)是f(Ex)的下界函数 Ef(x)是f(Ex)的下界函数, -
如果能够取到两边相等,要求 p ( x , z ∣ θ ) Q ( z ) = C \displaystyle \frac{p(x,z| \theta)}{Q(z)}=C Q(z)p(x,z∣θ)=C,也就是 Q ( z ) = 1 C p ( x , z ∣ θ ) Q(z)=\displaystyle\frac{1}{C}p(x,z| \theta) Q(z)=C1p(x,z∣θ),两边对 z 求 积 分 有 z求积分有 z求积分有
∫ z Q ( z ) d z = ∫ z 1 C p ( x , z ∣ θ ) d z \int_z Q(z)dz=\int_z \displaystyle\frac{1}{C}p(x,z| \theta)dz ∫zQ(z)dz=∫zC1p(x,z∣θ)dz,
整理有:
1 = 1 C ∫ z p ( x , z ∣ θ ) d z = 1 C p ( x ∣ θ ) 1=\displaystyle\frac{1}{C}\int_z p(x,z| \theta)dz=\displaystyle\frac{1}{C}p(x| \theta) 1=C1∫zp(x,z∣θ)dz=C1p(x∣θ)
C = p ( x ∣ θ ) C=p(x| \theta) C=p(x∣θ)
带入原不等式函数有
p ( x , z ∣ θ ) Q ( z ) = C \displaystyle \frac{p(x,z| \theta)}{Q(z)}=C Q(z)p(x,z∣θ)=C
p ( x , z ∣ θ ) Q ( z ) = p ( x ∣ θ ) \displaystyle \frac{p(x,z| \theta)}{Q(z)}=p(x| \theta) Q(z)p(x,z∣θ)=p(x∣θ)
p ( x , z ∣ θ ) p ( x ∣ θ ) = Q ( z ) \displaystyle \frac{p(x,z| \theta)}{p(x| \theta)}=Q(z) p(x∣θ)p(x,z∣θ)=Q(z)
p ( z ∣ x , θ ) = Q ( z ) , 可 以 看 出 Q ( z ) 等 于 后 验 \displaystyle p(z |x,\theta)=Q(z) ,可以看出Q(z)等于后验 p(z∣x,θ)=Q(z),可以看出Q(z)等于后验
EM算法步骤:
r
e
p
e
a
t
u
n
t
i
l
收
敛
:
{
repeat \ until 收敛:\{
repeat until收敛:{
{
\{
{
E
步
骤
:
Q
z
=
p
(
z
∣
x
,
θ
t
)
E 步骤:Q_z =p(z |x,\theta^t)
E步骤:Qz=p(z∣x,θt)
M
步
骤
:
θ
t
+
1
=
a
r
g
m
a
x
∑
i
=
1
∑
z
Q
(
z
)
log
p
(
x
,
z
∣
θ
t
+
1
)
Q
(
z
)
M 步骤:\theta^{t+1} =argmax\displaystyle \sum_{i=1} \sum_z Q(z)\log \frac{p(x,z| \theta^{t+1})}{Q(z)}
M步骤:θt+1=argmaxi=1∑z∑Q(z)logQ(z)p(x,z∣θt+1)
θ
t
+
1
=
a
r
g
m
a
x
∑
i
=
1
∑
z
Q
(
z
)
(
log
p
(
x
,
z
∣
θ
t
+
1
)
−
log
Q
(
z
)
)
\theta^{t+1} =argmax\displaystyle \sum_{i=1} \sum_z Q(z)(\log p(x,z| \theta^{t+1})-\log Q(z))
θt+1=argmaxi=1∑z∑Q(z)(logp(x,z∣θt+1)−logQ(z))
因为
Q
(
Z
)
对
于
求
θ
t
+
1
无
关
,
所
以
原
式
可
以
写
做
:
Q(Z)对于求\theta^{t+1}无关,所以原式可以写做:
Q(Z)对于求θt+1无关,所以原式可以写做:
θ
t
+
1
=
a
r
g
m
a
x
∑
i
=
1
∑
z
Q
(
z
)
log
p
(
x
,
z
∣
θ
t
+
1
)
\theta^{t+1} =argmax\displaystyle \sum_{i=1} \sum_z Q(z)\log p(x,z| \theta^{t+1})
θt+1=argmaxi=1∑z∑Q(z)logp(x,z∣θt+1)
θ
t
+
1
=
a
r
g
m
a
x
∑
i
=
1
∑
z
p
(
z
∣
x
,
θ
t
)
log
p
(
x
,
z
∣
θ
t
+
1
)
\theta^{t+1} =argmax\displaystyle \sum_{i=1} \sum_z p(z |x,\theta^t)\log p(x,z| \theta^{t+1})
θt+1=argmaxi=1∑z∑p(z∣x,θt)logp(x,z∣θt+1)
}
\}
}