归一化流:原理、应用与挑战
立即解锁
发布时间: 2025-08-31 00:05:18 阅读量: 12 订阅数: 16 AIGC 

### 归一化流:原理、应用与挑战
#### 1. 归一化流基础
归一化流是一种将基础分布(通常是正态分布)转换为新密度的方法。它的优点在于能够精确评估样本的似然性并生成新样本。然而,它存在架构上的约束,即每一层都必须是可逆的,因为需要正向变换来生成样本,反向变换来评估似然性。同时,为了评估似然性,需要高效估计雅可比行列式,这在学习密度时需要反复进行。
在归一化流中,每个权重矩阵 $\Omega$ 的绝对值必须小于 1,一种简单的方法是通过裁剪来确保权重 $\Omega$ 的绝对值较小。雅可比行列式不易直接计算,但其对数可以通过一系列技巧进行近似:
$$
\log \left|I + \frac{\partial f[h, \phi]}{\partial h}\right| = \text{trace} \left[\log \left(I + \frac{\partial f[h, \phi]}{\partial h}\right)\right] = \sum_{k = 1}^{\infty} \frac{(-1)^{k - 1}}{k} \text{trace} \left[\left(\frac{\partial f[h, \phi]}{\partial h}\right)^k\right]
$$
即使截断这个级数,计算其组成项的迹仍然计算量很大。因此,使用 Hutchinson 迹估计器进行近似。考虑一个均值为 0、方差为 $I$ 的正态随机变量 $\epsilon$,矩阵 $A$ 的迹可以估计为:
$$
\text{trace}[A] = \text{trace} \left[A E[\epsilon \epsilon^T]\right] = \text{trace} \left[E[A \epsilon \epsilon^T]\right] = E \left[\text{trace}[A \epsilon \epsilon^T]\right] = E \left[\text{trace}[\epsilon^T A \epsilon]\right] = E \left[\epsilon^T A \epsilon\right]
$$
通过从 $Pr(\epsilon)$ 中抽取样本 $\epsilon_i$,可以估计迹:
$$
\text{trace}[A] = E \left[\epsilon^T A \epsilon\right] \approx \frac{1}{I} \sum_{i = 1}^{I} \epsilon_i^T A \epsilon_i
$$
这样就可以近似泰勒展开式幂的迹并评估对数概率。
#### 2. 多尺度流
在归一化流中,潜在空间 $z$ 的大小必须与数据空间 $x$ 相同,但自然数据集通常可以用更少的潜在变量来描述。将所有变量通过整个网络是低效的,因此引出了多尺度流的概念。
在生成方向上,多尺度流将潜在向量划分为 $z = [z_1, z_2, \ldots, z_N]$。第一个分区 $z_1$ 通过一系列与 $z_1$ 维度相同的可逆层进行处理,直到某个点,$z_2$ 被追加并与第一个分区组合,如此继续,直到网络与数据 $x$ 大小相同。在归一化方向上,网络从 $x$ 的全维度开始,但当到达添加 $z_n$ 的点时,将其与基础分布进行评估。
以下是多尺度流的流程说明:
1. **生成方向**:
- 划分潜在向量 $z$ 为多个分区。
- 依次处理每个分区,逐步组合。
- 直到网络与数据 $x$ 大小相同。
2. **归一化方向**:
- 从全维度 $x$ 开始。
- 到达添加 $z_n$ 的点时,评估与基础分布。
#### 3. 归一化流的应用
归一化流有多种应用,以下介绍三种主要应用:
- **建模概率密度**:在四种生成模型中,归一化流是唯一能够计算新样本精确对数似然的模型。生成对抗网络不是概率性的,变分自编码器和扩散模型只能返回似然的下界。密度估计的一个应用是异常检测,使用归一化流模型描述干净数据集的数据分布,概率低的新样本被标记为异常值,但要注意可能存在概率高但不在典型集合中的异常值。
- **图像合成(GLOW 模型)**:GLOW 是一种归一化流模型,可创建高保真图像。其在归一化方向上的处理过程如下:
- 从包含 RGB 图像的 $256 \times 256 \times 3$ 张量开始。
- 使用耦合层将通道分为两半,对第二半应用不同的仿射变换,其参数由在另一半通道上运行的 2D 卷积神经网络计算。
- 耦合层与 1×1 卷积交替,1×1 卷积通过 LU 分解参数化以混合通道。
- 定期将分辨率减半,将每个 $2 \times 2$ 块组合成一个位置,通
0
0
复制全文
相关推荐









