概述
最大似然
你知道一个分布,但是不知道分布的具体参数,比如你知道学校男生身高分布服从高斯分布,但是你不知道其参数,即
θ
=
[
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}=argmax_thetalog 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}=argmax_thetalog 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)}dZge0
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=cint_Zq(Z)dZRightarrow 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}&=argmax_theta ELBO\ &=argmax_thetaint_Zp(Z|X,theta^{(t)})logfrac{p(X,Z|theta)}{p(Z|X,theta^{(t)})}dZ\ &=argmax_thetaint_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}=argmax_thetaint_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_Zfrac{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)}[logfrac{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=cint_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
最后
以上就是寂寞小松鼠为你收集整理的最大似然和EM算法最大似然EM算法的全部内容,希望文章能够帮你解决最大似然和EM算法最大似然EM算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复