10.变分推断
引入
? 机器学习可以分为两大派,即频率派和贝叶斯学派,从频率角度看,机器学习模型是一个优化问题,从贝叶斯角度来看,模型的求解是一个积分问题
P
(
θ
∣
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
P
(
X
)
=
P
(
X
∣
θ
)
P
(
θ
)
∫
θ
P
(
X
∣
θ
)
P
(
θ
)
d
θ
P(\theta|X)=\frac{P(X|\theta)P(\theta)}{P(X)}=\frac{P(X|\theta)P(\theta)}{\int_\theta{P(X|\theta)P(\theta)d\theta}}
P(θ∣X)=P(X)P(X∣θ)P(θ)?=∫θ?P(X∣θ)P(θ)dθP(X∣θ)P(θ)? 贝叶斯角度的推断过程,有N个样本X,对于新的样本
x
^
\hat{x}
x^,要求
P
(
x
^
∣
X
)
P(\hat{x}|X)
P(x^∣X) KaTeX parse error: No such environment: align* at position 8: \begin{?a?l?i?g?n?*?}? P(\hat{x}|X)&=… 如果新样本和数据集独立,那么推断就是概率分布依参数后验分布的期望。
我们看到,推断问题的中心是参数后验分布的求解,推断分为:
-
精确推断 -
近似推断-参数空间无法精确求解 -
-
确定性近似-如变分推断 -
随机近似-如 MCMC,MH,Gibbs
基于平均场假设的变分推断
Data : X
latent variable + parameter : Z,
Z
i
Z_i
Zi?为Z的第
i
i
i维特征,回顾EM中的推导
log
?
P
(
X
)
=
log
?
P
(
X
,
Z
)
?
log
?
P
(
Z
∣
X
)
=
log
?
P
(
X
,
Z
)
q
(
Z
)
?
log
?
P
(
Z
∣
X
)
q
(
Z
)
\log{P(X)}=\log{P(X,Z)}-\log{P(Z|X)}=\log\frac{P(X,Z)}{q(Z)}-\log\frac{P(Z|X)}{q(Z)}
logP(X)=logP(X,Z)?logP(Z∣X)=logq(Z)P(X,Z)??logq(Z)P(Z∣X)? 左右两边分别积分 KaTeX parse error: No such environment: align* at position 8: \begin{?a?l?i?g?n?*?}? &left:\int_Zq(… 其中
L
(
q
)
L(q)
L(q)?称为变分,我们的目标是寻找
q
(
Z
)
q(Z)
q(Z)?,让他近似于P(Z|X),他们越接近,KL(q,p)就越接近0,因为P(X)是不变的,最小化KL等同于最大化ELBO,所以问题转化为我们要找到使L(q)去最大值的q
q
^
=
a
r
g
m
a
x
q
L
(
q
)
\hat{q}=\mathop{argmax}_qL(q)
q^?=argmaxq?L(q) 假设Z可以划分为M个独立的组,由平均场理论
q
(
Z
)
=
∏
i
=
1
M
q
i
(
Z
i
)
q(Z)=\prod_{i=1}^Mq_i(Z_i)
q(Z)=i=1∏M?qi?(Zi?) 对于变分推断,我们固定其他项,关注其中的某一项,将上式子带入
L
(
q
)
=
∫
Z
q
(
Z
)
l
o
g
P
(
X
,
Z
)
d
Z
?
∫
Z
q
(
Z
)
l
o
g
q
(
Z
)
d
Z
L(q)=\int_Zq(Z)logP(X,Z)dZ-\int_Zq(Z)logq(Z)dZ
L(q)=∫Z?q(Z)logP(X,Z)dZ?∫Z?q(Z)logq(Z)dZ中,第一项可以改写为 KaTeX parse error: No such environment: align* at position 8: \begin{?a?l?i?g?n?*?}? \int_Zq(Z)logP… 对于第二项 KaTeX parse error: No such environment: align* at position 8: \begin{?a?l?i?g?n?*?}? \int_Zq(Z)logq… 将求和符号展开,对其中的第j项 KaTeX parse error: No such environment: align* at position 8: \begin{?a?l?i?g?n?*?}? &\int_{Z_1,Z_2… 于是第二项写为
∑
i
=
1
M
∫
z
i
q
i
(
Z
i
)
l
o
g
q
i
(
Z
i
)
d
Z
i
\sum_{i=1}^M\int_{z_i}q_i(Z_i)logq_i(Z_i)dZ_i
i=1∑M?∫zi??qi?(Zi?)logqi?(Zi?)dZi? 当我们只关心其中第j项时,上式改写为
∫
Z
j
q
j
(
Z
j
)
l
o
g
q
j
(
Z
j
)
d
Z
j
+
c
o
n
s
t
\int_{Z_j}q_j(Z_j)logq_j(Z_j)dZ_j+const
∫Zj??qj?(Zj?)logqj?(Zj?)dZj?+const
令
l
o
g
p
^
(
X
,
Z
j
)
=
E
∏
i
≠
j
q
i
(
Z
i
)
[
l
o
g
(
X
,
Z
)
]
log\hat{p}(X,Z_j)=E_{\prod_{i\neq{j}}q_i(Z_i)}[log(X,Z)]
logp^?(X,Zj?)=E∏i?=j?qi?(Zi?)?[log(X,Z)],原式等于
?
∫
Z
j
q
j
(
Z
j
)
l
o
g
q
j
(
Z
j
)
p
^
(
X
,
Z
j
)
d
Z
j
-\int_{Z_j}q_j(Z_j)log\frac{q_j(Z_j)}{\hat{p}(X,Z_j)}d_{Z_j}
?∫Zj??qj?(Zj?)logp^?(X,Zj?)qj?(Zj?)?dZj?? 于是最大的
q
j
(
Z
j
)
=
p
^
(
X
,
Z
j
)
q_j(Z_j)=\hat{p}(X,Z_j)
qj?(Zj?)=p^?(X,Zj?)才能得到最大值。我们看到,对每一个
q
j
q_j
qj? ,都是固定其余的
q
q
q,求这个值,于是可以使用坐标上升的方法进行迭代求解,上面的推导针对单个样本,但是对数据集也是适用的。
基于平均场假设的变分推断存在一些问题:
-
假设太强,Z 非常复杂的情况下,假设不适用 -
期望中的积分,可能无法计算 -
完整链接:https://blog.csdn.net/qq_27388259/article/details/112001400
|