最大似然
你知道一个分布,但是不知道分布的具体参数,比如你知道学校男生身高分布服从高斯分布,但是你不知道其参数,即
θ
=
[
u
,
σ
]
\theta=[u,\sigma]
θ=[u,σ]。这是就可以使用最大似然来求解参数。
首先需要从该分布中采样获取数据,比如你获取了
N
N
N个数据,就可以得到其似然函数,如下:
L
(
θ
)
=
L
(
x
1
,
…
,
x
n
;
θ
)
=
∏
i
=
1
N
p
(
x
i
;
θ
)
L(\theta)=L(x_1,\dots,x_n;\theta)=\prod_{i=1}^Np(x_i;\theta)
L(θ)=L(x1,…,xn;θ)=i=1∏Np(xi;θ)
其中,每次采样获得的
x
i
x_i
xi都是独立同分布服从
N
(
u
,
σ
)
N(u,\sigma)
N(u,σ),所以似然函数可以理解为采样获得这组数据的概率。
为了求得参数
θ
^
\hat{\theta}
θ^,我们只要求:
θ
^
=
arg
max
θ
log
L
(
θ
)
\hat{\theta}=\arg\max_\theta\log L(\theta)
θ^=argθmaxlogL(θ)
那为什么
θ
^
\hat{\theta}
θ^就是我们所需要的参数呢,这个就是最大似然的思想:采样得到的数据客观来讲就是概率最大数据。举个最简单的例子,从装有8个黑球和2个红球的袋子中随机取出一个球,在没看到这个球的颜色前,要你猜一个你肯定会猜是黑色的。如果还是不理解可以参考下面的链接。
EM算法
EM算法是在最大似然的基础上的,就刚刚学校男生身高的例子中,如果给你采样的数据中有男生也有女生,明显男生女生身高服从不同的分布,那如何来求出我们所需要的
θ
\theta
θ呢?这边我们需要引入隐变量
Z
Z
Z。同样我们还是要最大化似然函数,为了方便我们记似然函数为:
L
(
θ
)
=
p
(
X
∣
θ
)
L(\theta)=p(X|\theta)
L(θ)=p(X∣θ)
这个和上面的似然函数的表达式是等价的,
X
X
X就是我们采样得到的数据。
算法推导一
目标:
θ
^
=
arg
max
θ
log
p
(
X
∣
θ
)
\hat{\theta}=\arg\max_\theta\log p(X|\theta)
θ^=argθmaxlogp(X∣θ)
log
p
(
X
∣
θ
)
=
log
p
(
X
,
Z
∣
θ
)
−
log
p
(
Z
∣
X
,
θ
)
=
log
p
(
X
,
Z
∣
θ
)
q
(
Z
)
−
log
p
(
Z
∣
X
,
θ
)
q
(
Z
)
(
引
入
概
率
密
度
q
(
Z
)
不
为
0
)
\begin{aligned} \log p(X|\theta)&=\log p(X,Z|\theta)-\log p(Z|X,\theta) \\ &=\log \frac{p(X,Z|\theta)}{q(Z)}-\log \frac{p(Z|X,\theta)}{q(Z)}(引入概率密度q(Z)不为0) \end{aligned}
logp(X∣θ)=logp(X,Z∣θ)−logp(Z∣X,θ)=logq(Z)p(X,Z∣θ)−logq(Z)p(Z∣X,θ)(引入概率密度q(Z)不为0)
等号两边都乘以
q
(
Z
)
q(Z)
q(Z),然后对
Z
Z
Z积分,得到:
log
p
(
X
∣
θ
)
=
E
L
B
O
+
K
L
(
q
∣
∣
p
)
\log p(X|\theta)=ELBO+KL(q||p)
logp(X∣θ)=ELBO+KL(q∣∣p)
K
L
(
q
∣
∣
p
)
=
∫
Z
q
(
Z
)
log
p
(
Z
∣
X
,
θ
)
q
(
Z
)
d
Z
≥
0
KL(q||p)=\int_Zq(Z)\log \frac{p(Z|X,\theta)}{q(Z)}dZ\ge0
KL(q∣∣p)=∫Zq(Z)logq(Z)p(Z∣X,θ)dZ≥0,可以用jensen不等式证明。
补充jensen不等式:
如果 f ( x ) f(x) f(x)为凸函数,则 E [ f ( x ) ] ≥ f ( E [ x ] ) E[f(x)]\ge f(E[x]) E[f(x)]≥f(E[x]),凹函数则相反。上式等号成立时, p ( Z ∣ X , θ ) q ( Z ) \frac{p(Z|X,\theta)}{q(Z)} q(Z)p(Z∣X,θ)取常数,即 p ( Z ∣ X , θ ) q ( Z ) = c \frac{p(Z|X,\theta)}{q(Z)}=c q(Z)p(Z∣X,θ)=c, ∫ Z p ( Z ∣ X , θ ) d Z = c ∫ Z q ( Z ) d Z ⇒ c = 1 \int_Zp(Z|X,\theta)dZ=c\int_Zq(Z)dZ\Rightarrow c=1 ∫Zp(Z∣X,θ)dZ=c∫Zq(Z)dZ⇒c=1,所以得 q ( Z ) = p ( Z ∣ X , θ ( t ) ) q(Z)=p(Z|X,\theta^{(t)}) q(Z)=p(Z∣X,θ(t))。
我们取
q
(
Z
)
=
p
(
Z
∣
X
,
θ
(
t
)
)
q(Z)=p(Z|X,\theta^{(t)})
q(Z)=p(Z∣X,θ(t)),EM算法为迭代算法,
θ
(
t
)
\theta^{(t)}
θ(t)为上一轮得到的
θ
^
\hat{\theta}
θ^。
那么我们要求使得
log
p
(
X
∣
θ
)
\log p(X|\theta)
logp(X∣θ)最大的
θ
\theta
θ值,而ELBO是其下届,我们只要不断最大化下届即可,如下式:
θ
^
=
arg
max
θ
E
L
B
O
=
arg
max
θ
∫
Z
p
(
Z
∣
X
,
θ
(
t
)
)
log
p
(
X
,
Z
∣
θ
)
p
(
Z
∣
X
,
θ
(
t
)
)
d
Z
=
arg
max
θ
∫
Z
p
(
Z
∣
X
,
θ
(
t
)
)
log
p
(
X
,
Z
∣
θ
)
d
Z
\begin{aligned} \hat{\theta}&=\arg\max_\theta ELBO\\ &=\arg\max_\theta\int_Zp(Z|X,\theta^{(t)})\log\frac{p(X,Z|\theta)}{p(Z|X,\theta^{(t)})}dZ\\ &=\arg\max_\theta\int_Zp(Z|X,\theta^{(t)})\log p(X,Z|\theta)dZ \end{aligned}
θ^=argθmaxELBO=argθmax∫Zp(Z∣X,θ(t))logp(Z∣X,θ(t))p(X,Z∣θ)dZ=argθmax∫Zp(Z∣X,θ(t))logp(X,Z∣θ)dZ
最后的EM算法总结为:
E-step:
q
(
Z
)
=
p
(
Z
∣
X
,
θ
(
t
)
)
q(Z)=p(Z|X,\theta^{(t)})
q(Z)=p(Z∣X,θ(t))
M-step:
θ
^
=
arg
max
θ
∫
Z
p
(
Z
∣
X
,
θ
(
t
)
)
log
p
(
X
,
Z
∣
θ
)
d
Z
\hat{\theta}=\arg\max_\theta\int_Zp(Z|X,\theta^{(t)})\log p(X,Z|\theta)dZ
θ^=argmaxθ∫Zp(Z∣X,θ(t))logp(X,Z∣θ)dZ
循环E-step,M-step,直到参数
θ
\theta
θ收敛。
算法推导二
目标函数还是一样的,但是处理方式不同,如下:
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
)
]
(
使
用
j
e
n
s
e
n
不
等
式
)
≥
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 E_{q(Z)}[\frac{p(X,Z|\theta)}{q(Z)}](使用jensen不等式)\\ &\ge E_{q(Z)}[\log\frac{p(X,Z|\theta)}{q(Z)}] \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∣θ)](使用jensen不等式)≥Eq(Z)[logq(Z)p(X,Z∣θ)]
等号成立时,
p
(
X
,
Z
∣
θ
(
t
)
)
=
c
q
(
Z
)
p(X,Z|\theta^{(t)})=cq(Z)
p(X,Z∣θ(t))=cq(Z),两边对
Z
Z
Z积分得:
∫
Z
p
(
X
,
Z
∣
θ
(
t
)
)
d
Z
=
c
∫
Z
q
(
Z
)
d
Z
⇒
c
=
p
(
X
∣
θ
(
t
)
)
q
(
Z
)
=
p
(
X
,
Z
∣
θ
(
t
)
)
c
=
p
(
X
,
Z
∣
θ
(
t
)
)
p
(
X
∣
θ
(
t
)
)
=
p
(
Z
∣
X
,
θ
(
t
)
)
\begin{aligned} &\int_Z p(X,Z|\theta^{(t)})dZ=c\int_Zq(Z)dZ\\ &\Rightarrow c=p(X|\theta^{(t)})\\ &q(Z)=\frac{p(X,Z|\theta^{(t)})}{c}=\frac{p(X,Z|\theta^{(t)})}{p(X|\theta^{(t)})}=p(Z|X,\theta^{(t)}) \end{aligned}
∫Zp(X,Z∣θ(t))dZ=c∫Zq(Z)dZ⇒c=p(X∣θ(t))q(Z)=cp(X,Z∣θ(t))=p(X∣θ(t))p(X,Z∣θ(t))=p(Z∣X,θ(t))
结论和上面一致。
参考:
https://blog.csdn.net/zouxy09/article/details/8537620
https://www.bilibili.com/video/av31906558/?p=1