Householder Flow

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)? XpX(x),Y=f(X)f(X)YpY(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<f1(y))=FX(f1(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(f1(y))=p(f1(y))dydf1(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>f1(y))=1FX(f1(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(1FX(f1(y)))=p(f1(y))dydf1(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(f1(y))dydf1(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<f1(y),当 f f f是减函数时,不等式的解是 X > f − 1 ( y ) X>f^{-1}(y) X>f1(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} xp(x)y=f(x)yp(y)=p(x)dxdf1
如果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} yp(y)=p(x)detdxdf1(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)z0q0(z0)zKqK(zK)=q0(z0)k=1Kdetdzk1dfk1

这一系列变换就可以将一个简单的概率分布变成一个复杂的概率分布。

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(z0x)k=1Klndetdzk1dfk(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=I2v2vvT
H H H矩阵也是一个正交矩阵,所以其雅可比行列式的绝对值为1,也就是 l n ∣ d e t H ∣ = 0 ln|detH|=0 lndetH=0
我们令 f k = H k z k − 1 f_{k} = H_{k}z_{k-1} fk=Hkzk1,那么(4)式中
在这里插入图片描述
所以(4)式中只需要计算两项。

因此,后验分布 z 0 z_{0} z0通过一系列的Householder transformation(被称作Householder Flows)转化为了 z K z_{K} zK,这样 z K z_{K} zK就可以看做是由一个复杂的分布中采样出来的,可以更加灵活的建模真实的后验分布。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值