Householder Flow
变分自动编码器(VAE)是可扩展的、强大的生成模型。然而,变分后验的选择决定了VAE的可操作性和灵活性。一般来说,潜变量是用一个对角协方差矩阵的正态分布建模的。这可以提高计算效率,但通常不能灵活地匹配真实的后验分布。丰富变分后验分布的一种方法是应用正则化流,即normalizing flows。这种操作是对潜变量的简单后验分布做一系列可逆变换,将其变为复杂,灵活的后验分布。Householder Flow就是normalizing flows中的一种。
数学原理
1. 随机变量的函数的概率密度
已知
X
∼
p
X
(
x
)
,
Y
=
f
(
X
)
,
f
(
X
)
是
可
逆
函
数
,
求
Y
的
概
率
密
度
函
数
p
Y
(
y
)
?
X \sim p_{X}(x), Y = f(X),f(X)是可逆函数,求Y的概率密度函数p_{Y}(y)?
X∼pX(x),Y=f(X),f(X)是可逆函数,求Y的概率密度函数pY(y)?
连续型随机变量的概率分布函数的形式是
F
X
(
x
)
=
p
(
X
<
x
)
=
∫
−
∞
x
p
(
t
)
d
t
F_{X}(x) = p(X<x)=\int_{-\infty}^{x}p(t)dt
FX(x)=p(X<x)=∫−∞xp(t)dt
假如
f
(
x
)
f(x)
f(x)为增函数:
F
Y
(
y
)
=
p
(
Y
<
y
)
=
p
(
f
(
X
)
<
y
)
=
p
(
X
<
f
−
1
(
y
)
)
=
F
X
(
f
−
1
(
y
)
)
F_{Y}(y) =p(Y<y)=p(f(X)<y)=p(X<f^{-1}(y)) \\ = F_{X}(f^{-1}(y))
FY(y)=p(Y<y)=p(f(X)<y)=p(X<f−1(y))=FX(f−1(y))
p
Y
(
y
)
=
d
F
Y
(
y
)
d
y
=
d
F
X
(
f
−
1
(
y
)
)
d
y
=
p
(
f
−
1
(
y
)
)
d
f
−
1
(
y
)
d
y
也
可
以
写
成
:
p
Y
(
y
)
=
p
(
x
)
d
x
d
y
p_{Y}(y) = {dF_{Y}(y) \over dy} = {dF_{X}(f^{-1}(y)) \over dy} =p(f^{-1}(y)){df^{-1}(y) \over dy} \\ 也可以写成: \\ p_{Y}(y) = p(x){dx \over dy}
pY(y)=dydFY(y)=dydFX(f−1(y))=p(f−1(y))dydf−1(y)也可以写成:pY(y)=p(x)dydx
假如
f
(
x
)
f(x)
f(x)为减函数:
F
Y
(
y
)
=
p
(
Y
<
y
)
=
p
(
f
(
X
)
<
y
)
=
p
(
X
>
f
−
1
(
y
)
)
=
1
−
F
X
(
f
−
1
(
y
)
)
F_{Y}(y) =p(Y<y)=p(f(X)<y)=p(X>f^{-1}(y)) \\ =1- F_{X}(f^{-1}(y))
FY(y)=p(Y<y)=p(f(X)<y)=p(X>f−1(y))=1−FX(f−1(y))
p
Y
(
y
)
=
d
F
Y
(
y
)
d
y
=
d
(
1
−
F
X
(
f
−
1
(
y
)
)
)
d
y
=
−
p
(
f
−
1
(
y
)
)
d
f
−
1
(
y
)
d
y
也
可
以
写
成
:
p
Y
(
y
)
=
−
p
(
x
)
d
x
d
y
p_{Y}(y) = {dF_{Y}(y) \over dy} = {d(1-F_{X}(f^{-1}(y))) \over dy} =-p(f^{-1}(y)){df^{-1}(y) \over dy} \\ 也可以写成: \\ p_{Y}(y) = -p(x){dx \over dy}
pY(y)=dydFY(y)=dyd(1−FX(f−1(y)))=−p(f−1(y))dydf−1(y)也可以写成:pY(y)=−p(x)dydx
所以综上:
p
Y
(
y
)
=
p
(
f
−
1
(
y
)
)
∣
d
f
−
1
(
y
)
d
y
∣
或
者
p
(
x
)
∣
d
x
d
y
∣
(1)
\tag{1} p_Y(y)=p(f^{-1}(y))|{df^{-1}(y) \over dy}| 或者p(x)|{dx \over dy}|
pY(y)=p(f−1(y))∣dydf−1(y)∣或者p(x)∣dydx∣(1)
上面括号内部用到了求解不等式的方法, f ( X ) < y f(X)<y f(X)<y就相当于解不等式,当 f f f是增函数时,不等式的解是 X < f − 1 ( y ) X<f^{-1}(y) X<f−1(y),当 f f f是减函数时,不等式的解是 X > f − 1 ( y ) X>f^{-1}(y) X>f−1(y),不理解的同学可以用一元一次不等式手动理解一下。
2. Normalization flow
对(1)式变形
p
(
y
)
=
p
(
x
)
∣
d
x
d
y
∣
=
p
(
x
)
∣
d
x
d
f
(
x
)
∣
=
p
(
x
)
∣
d
f
(
x
)
d
x
∣
−
1
p(y)=p(x)|{dx \over dy}| = p(x)|{dx \over df(x)}|=p(x)|{df(x) \over dx}|^{-1}
p(y)=p(x)∣dydx∣=p(x)∣df(x)dx∣=p(x)∣dxdf(x)∣−1
所以有下式成立:
x
∼
p
(
x
)
y
=
f
(
x
)
y
∼
p
(
y
)
=
p
(
x
)
∣
d
f
d
x
∣
−
1
x \sim p(x) \\ y = f(x) \\ y \sim p(y)=p(x)|{df \over dx}|^{-1}
x∼p(x)y=f(x)y∼p(y)=p(x)∣dxdf∣−1
如果x是一个高维向量,那么就变成下式:
y
∼
p
(
y
)
=
p
(
x
)
∣
d
e
t
d
f
d
x
∣
−
1
(2)
\tag{2} y \sim p(y)=p(x)|det{df \over dx}|^{-1}
y∼p(y)=p(x)∣detdxdf∣−1(2)
∣ d e t d f d x ∣ |det{df \over dx}| ∣detdxdf∣是雅克比行列式的绝对值。
如果我们施加的一系列的
f
k
,
k
∈
[
1
,
K
]
f_{k}, k \in [1, K]
fk,k∈[1,K],那么就得到一个归一化流(normalizing flows):
z
K
=
f
K
∗
.
.
.
∗
f
1
(
z
0
)
,
z
0
∽
q
0
(
z
0
)
z
K
∽
q
K
(
z
K
)
=
q
0
(
z
0
)
∏
k
=
1
K
∣
d
e
t
d
f
k
d
z
k
−
1
∣
−
1
z_{K} = f_{K}*...*f_{1}(z_{0}),z_{0} \backsim q_{0}(z_{0}) \\ z_{K} \backsim q_{K}(z_{K}) = q_{0}(z_{0}) \prod_{k=1}^{K}|det{df_{k} \over dz_{k-1}}|^{-1}
zK=fK∗...∗f1(z0),z0∽q0(z0)zK∽qK(zK)=q0(z0)k=1∏K∣detdzk−1dfk∣−1
这一系列变换就可以将一个简单的概率分布变成一个复杂的概率分布。
3. LOTUS
LOTUS全称是law of unconscious statistician,具体规则就是:
E
q
K
(
z
K
)
[
h
(
z
K
)
]
=
E
q
0
(
z
0
)
[
h
(
f
K
∗
.
.
.
∗
f
1
(
z
0
)
)
]
E_{q_K(z_{K})}[h(z_{K})]=E_{q_{0}(z_0)}[h( f_{K}*...*f_{1}(z_{0}))]
EqK(zK)[h(zK)]=Eq0(z0)[h(fK∗...∗f1(z0))]
也就是在关于 h ( z K ) h(z_{K}) h(zK)求 q K ( z K ) q_{K}(z_K) qK(zK)的期望时,可以转为求 q 0 ( z 0 ) q_0(z_0) q0(z0)的期望。
ELBO
通过normalizing flows,我们可以将变分后验变为如下:
l
n
q
K
(
z
K
)
=
l
n
q
0
(
z
0
∣
x
)
−
∑
k
=
1
K
l
n
∣
d
e
t
d
f
k
d
z
k
−
1
∣
(3)
\tag{3}lnq_{K}(z_{K}) = lnq_{0}(z_{0}|x) -\sum_{k=1}^{K}ln|det{df_{k} \over dz_{k-1}}|
lnqK(zK)=lnq0(z0∣x)−k=1∑Kln∣detdzk−1dfk∣(3)
VAE中的变分下界有两种形式:
或者:
第二种形式可以由第一种得到,我们看第一种形式,结合前面提到的LOTUS规则将变分下界(ELBO)变为:
Householder transformation
假设
v
v
v是一个与超平面正交的向量(Householder vector),那么Householder matrix
H
H
H定义如下:
H
=
I
−
2
v
v
T
∣
v
∣
2
H = I-2{vv^{T} \over |v|^{2}}
H=I−2∣v∣2vvT
H
H
H矩阵也是一个正交矩阵,所以其雅可比行列式的绝对值为1,也就是
l
n
∣
d
e
t
H
∣
=
0
ln|detH|=0
ln∣detH∣=0。
我们令
f
k
=
H
k
z
k
−
1
f_{k} = H_{k}z_{k-1}
fk=Hkzk−1,那么(4)式中
所以(4)式中只需要计算两项。
因此,后验分布 z 0 z_{0} z0通过一系列的Householder transformation(被称作Householder Flows)转化为了 z K z_{K} zK,这样 z K z_{K} zK就可以看做是由一个复杂的分布中采样出来的,可以更加灵活的建模真实的后验分布。