【理论推导】流模型 Flow-based Model

数学前置

Jacobian矩阵:给定函数 f : R n × R m f: \R^{n}\times \R^m f:Rn×Rm,该函数的所有一阶偏导数组成的矩阵 J J J 称为 Jacobian 矩阵
J = [ ∂ f 1 ∂ x 1 . . . ∂ f 1 ∂ x n . . . . . . . . . ∂ f m ∂ x 1 . . . ∂ f m ∂ x n ] m × n J = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & ... & \frac{\partial f_1}{\partial x_n}\\ ... & ... & ...\\ \frac{\partial f_m}{\partial x_1} & ... & \frac{\partial f_m}{\partial x_n} \end{bmatrix}_{m\times n} J= x1f1...x1fm.........xnf1...xnfm m×n
m = n m = n m=n,可以定义关于方阵 J J J 的行列式
det ( J ) = ∑ j 1 , . . . , j n ( − 1 ) τ ( j 1 . . . j n ) a 1 , j 1 . . . a n , j n \text{det}(J) = \sum_{j_1,...,j_n}(-1)^{\tau(j_1...j_n)} a_{1,j_1}...a_{n,j_n} det(J)=j1,...,jn(1)τ(j1...jn)a1,j1...an,jn
其中 j 1 . . . j n j_1...j_n j1...jn 1... n 1...n 1...n 的一个排列, τ ( ⋅ ) \tau(\cdot) τ() 表示置换中逆序对的个数/从初始排列 ( 1 , . . . , n ) (1,...,n) (1,...,n)交换得到该排列的次数,从含义角度来讲,行列式可以看作是有向面积/体积向 n n n 维空间的一个推广,例如对于 n = 2 n=2 n=2 时,行列式的绝对值即为向量 ( a 1 , 1 , a 1 , 2 ) (a_{1,1},a_{1,2}) (a1,1,a1,2) 与向量 ( a 2 , 1 , a 2 , 2 ) (a_{2,1}, a_{2,2}) (a2,1,a2,2) 张成的平行四边形的面积

变量变换定理:给定随机变量 z z z 及其概率密度函数 π ( z ) \pi(z) π(z),对于新变量 x x x,若存在双射函数 f f f,满足 x = f ( z ) x = f(z) x=f(z) z = f − 1 ( x ) z=f^{-1}(x) z=f1(x),那么对于新变量 x x x 的概率密度函数 p ( x ) p(x) p(x),由于 ∫ z ∈ R π ( z ) d z = ∫ x ∈ R p ( x ) d x = 1 \int_{z\in \R} \pi(z) dz = \int_{x\in \R} p(x) dx = 1 zRπ(z)dz=xRp(x)dx=1,有如下性质
p ( x ) ∣ d x ∣ = π ( z ) ∣ d z ∣ p ( x ) = π ( z ) ∣ d z ∣ ∣ d x ∣ = π ( f − 1 ( x ) ) ∣ d f − 1 d x ∣ p(x)|dx| = \pi(z)|dz| \\ p(x) = \pi(z)\frac{|dz|}{|dx|} = \pi(f^{-1}(x)) \left|\frac{d f^{-1}}{dx}\right| p(x)dx=π(z)dzp(x)=π(z)dxdz=π(f1(x)) dxdf1
扩展到向量上,对于 f : R n → R n f:\R^n\rightarrow \R^n f:RnRn,有
p ( x ) = π ( f − 1 ( x ) ) ∣ det ( J f − 1 ) ∣ p(x) = \pi(f^{-1}(x))|\text{det}(J_{f^{-1}})| p(x)=π(f1(x))det(Jf1)

Flow-based Model

假定真实数据分布 q q q,数据集中每个数据点 x i x_i xi 可以看作是一个采样 x ∼ q ( x ) x\sim q(x) xq(x),我们希望使用模型 f θ ( ⋅ ) f_{\theta}(\cdot) fθ() 建模真实数据分布 q q q,使得对于已知分布 z ∼ π ( z ) z\sim\pi(z) zπ(z),可以通过 f θ ( z ) f_\theta(z) fθ(z) 将其变换到拟合出的真实数据分布 p θ p_\theta pθ 上,训练目标即为最小化KL散度 KL ( q ( x ) ∣ ∣ p θ ( x ) ) \text{KL}(q(x)||p_{\theta(x)}) KL(q(x)∣∣pθ(x)),等价于最大化对数似然函数
arg ⁡ max ⁡ θ ∑ i = 1 N log ⁡ p θ ( x ( i ) ) \arg \max_\theta \sum_{i=1}^N \log p_\theta(x^{(i)}) argθmaxi=1Nlogpθ(x(i))
其中 x ( i ) x^{(i)} x(i) 为从真实数据分布 q q q 中的 N N N 次采样,利用变量变换定理,可得
log ⁡ p θ ( x ( i ) ) = log ⁡ π ( f ( − 1 ) ( x ( i ) ) ) + log ⁡ ∣ det ( J f − 1 ) ∣ \log p_\theta(x^{(i)}) = \log \pi(f^{(-1)}(x^{(i)}))+\log |\text{det}(J_{f^{-1}})| logpθ(x(i))=logπ(f(1)(x(i)))+logdet(Jf1)
在训练过程中,我们只需要利用 f ( − 1 ) f^{(-1)} f(1),而在推理过程中,我们使用 f f f 进行生成,因此对 f f f 约束为: f f f 网络是可逆的。这对网络结构要求比较严格,在实现时,通常要求 f f f 的输入输出是相同维度的来保证 f f f 的可逆性。注意到,如果 f f f 可以表示为若干映射的叠加 f = f 1 ∘ f 2 ∘ . . . f K f = f_1\circ f_2\circ ... f_K f=f1f2...fK,那么有
log ⁡ p θ ( x ( i ) ) = log ⁡ π ( f ( − 1 ) ( x ( i ) ) ) + ∑ k = 1 K log ⁡ ∣ det ( J f k − 1 ) ∣ \log p_\theta(x^{(i)}) = \log \pi(f^{(-1)}(x^{(i)}))+\sum_{k=1}^{K}\log |\text{det}(J_{f_k^{-1}})| logpθ(x(i))=logπ(f(1)(x(i)))+k=1Klogdet(Jfk1)
在这里插入图片描述

RealNVP

在这里插入图片描述
整体思路是,固定特征的一部分,利用该部分预测一个针对其他部分的仿射变换的参数,这里 s ( ⋅ ) , t ( ⋅ ) s(\cdot), t(\cdot) s(),t() 两部分没有约束,这是因为
在这里插入图片描述
在计算行列式的时候,由于空子矩阵的存在,因此 s , t s,t s,t 并不影响最终的行列式的值。堆叠该变换时,可以交替设置恒等映射的特征维度,以此来建模全体维度的变换

GLOW

GLOW对RealNVP进行进一步的扩展,使用可逆的 1 × 1 1\times1 1×1的卷积来建模跨通道的特征依赖,避免对通道进行重排,简化架构
在这里插入图片描述

参考资料

DENSITY ESTIMATION USING REAL NVP
Glow: Generative Flow with Invertible 1×1 Convolutions
Flow-based Deep Generative Models
Flow-based Generative Model

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值