Normalizing Flows
符号定义#
- $\mathbb{R}^d$表示数据空间,其中数据点$x=(x^1,\cdots,x^d)\in\mathbb{R}^d$
- 概率密度路径$p:[0,1]\times \mathbb{R}^d\rightarrow \mathbb{R}_{\ge 0}$是一个时变概率密度函数,且$\int p_t(x)dx=1$
- 时变向量场$v:[0,1]\times \mathbb{R}^d\rightarrow \mathbb{R}^d$,可用以构造微分同胚映射,该映射称为流
- 流$\phi:[0,1]\times \mathbb{R}^d\rightarrow \mathbb{R}^d$,通过常微分方程定义:$$\frac{d}{dt}\phi_t(x)=v_t(\phi_t(x)) \tag{1}$$
连续归一化流(Continuous Normalizing Flows)定义#
Chen et al.(2018)提出使用神经网络对向量场$v_t$进行建模,即重参数化为$v_t(x;\theta)$,其中$\theta\in \mathbb{R}^p$是可学习的参数。连续归一化流模型CNFs即得到了流$\phi_t$的深度参数化模型。
CNF通过pushforward euqations将简单的先验密度$p_0$重塑为更复杂的密度$p_1$,即
$$p_t=[\phi_t]_\star (p_0),t\in [0,1] \tag{2}$$
式中,pushforward算子定义为
$$[\phi_t]_\star(p_0)=p_0(\phi_t^{-1}(x))\det\left|\frac{\partial \phi_t^{-1}}{\partial x}(x)\right| \tag{3}$$
连续性方程:检验向量场$v_t$是否生成概率路径$p_t$#
连续性方程是检验向量场$v_t$是否生成概率路径$p_t$的方法之一。连续性方程具体可以表达为:
$$\frac{d}{dt}p_t(x)+\text{div}(p_t(x)v_t(x))=0 \tag{4}$$
式中,$\text{div}=\sum_{i=1}^{d}\frac{\partial}{\partial x^i}$。