更改

跳到导航 跳到搜索
添加163字节 、 2026年8月19日 (星期三)
1. 表述严谨化:先验项改为"促使编码后的分布整体逼近标准高斯"。 2. 内部自洽:多尺度架构的四处描述统一为"非末尺度抽一半、末尺度全部抽出";删去重复的"一分为二";层数表述统一为"同一掩码 3 层、末尺度 4 层"。 3. 去重:删除应用小节中与后文重复的"采样快于自回归模型"一句。 4. 图注:NIS+ 图注注明图中 φ、φ† 与正文 ψ_α、ψ_α⁻¹ 的对应。 5. 异常检测:拆开纯似然判据与重建误差,后者归入 AE-FLOW 语境。
第19行: 第19行:  
RealNVP 是一类[[标准化流]]:它将一系列可逆映射 <math>f_1, \dots, f_n</math> 复合为整体变换 <math>f = f_n \circ \cdots \circ f_1</math>,从而将数据 <math>\mathbf{x}</math> 映射到标准正态分布 <math>\mathbf{z} = f(\mathbf{x}) \sim \mathcal{N}(0, \mathbf{I})</math>。由于可逆性,生成样本时只需从正态分布采样 <math>\mathbf{z}</math>,再通过逆映射 <math>\mathbf{x} = f^{-1}(\mathbf{z})</math> 还原为数据。每一层变换的[[雅可比行列式]]都能高效解析计算,因此整体[[对数似然]] <math>\log p_X(\mathbf{x})</math> 可直接求出,无需借助变分下界或对抗训练。
 
RealNVP 是一类[[标准化流]]:它将一系列可逆映射 <math>f_1, \dots, f_n</math> 复合为整体变换 <math>f = f_n \circ \cdots \circ f_1</math>,从而将数据 <math>\mathbf{x}</math> 映射到标准正态分布 <math>\mathbf{z} = f(\mathbf{x}) \sim \mathcal{N}(0, \mathbf{I})</math>。由于可逆性,生成样本时只需从正态分布采样 <math>\mathbf{z}</math>,再通过逆映射 <math>\mathbf{x} = f^{-1}(\mathbf{z})</math> 还原为数据。每一层变换的[[雅可比行列式]]都能高效解析计算,因此整体[[对数似然]] <math>\log p_X(\mathbf{x})</math> 可直接求出,无需借助变分下界或对抗训练。
   −
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''[[仿射耦合层]]'''(affine coupling layer)负责可逆的特征变换,每个耦合层输出后接'''[[批量归一化]]'''(batch normalization)以稳定训练;'''[[压缩]]'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''[[变量分解]]'''(factor out)负责在每个尺度末尾抽取一部分变量作为潜在变量。其中,仿射耦合层通过空间[[棋盘掩码]](checkerboard masking)与[[通道级掩码]](channel-wise masking)实现,二者交替使用。
+
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''[[仿射耦合层]]'''(affine coupling layer)负责可逆的特征变换,每个耦合层输出后接'''[[批量归一化]]'''(batch normalization)以稳定训练;'''[[压缩]]'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''[[变量分解]]'''(factor out)负责在每个尺度末尾抽取变量作为潜在变量。其中,仿射耦合层通过空间[[棋盘掩码]](checkerboard masking)与[[通道级掩码]](channel-wise masking)实现,二者交替使用。
 
​
 
​
−
RealNVP 的多尺度架构如下图所示。输入图像 <math>\mathbf{x}</math> 首先进入第 1 尺度。每个非末尺度内部依次经过 3 个空间棋盘掩码的耦合层(每个耦合层输出后接批量[[归一化]])、压缩块、再 3 个通道级掩码的耦合层(同样每个后接批量归一化),最后通过变量分解把当前特征一分为二;末尺度则只经过 4 个空间棋盘掩码耦合层(同样每个后接批量归一化),随后把全部变量抽出作为 <math>\mathbf{z}^{(L)}</math>,不再保留传递变量。非末尺度的变量分解则把当前特征一分为二:一半作为 <math>\mathbf{z}^{(i)}</math> 抽出,另一半 <math>\mathbf{h}^{(i)}</math> 继续传入下一尺度。最终把每个 <math>\mathbf{z}^{(i)}</math> 展平为向量后按顺序拼接成完整潜在变量 <math>\mathbf{z}</math>。虽然各 <math>\mathbf{z}^{(i)}</math> 的展平长度不同(依次为 <math>HWC/2, HWC/4, \dots, HWC/2^{L-1}</math>),但它们的总和恰好等于输入维度 <math>HWC</math>,因此整体变换保持维度不变。这种分层设计的意图是:早期尺度保留高分辨率的局部细节,后期尺度处理低分辨率的全局结构,并通过逐步分解减少后续层的计算量。
+
RealNVP 的多尺度架构如下图所示。输入图像 <math>\mathbf{x}</math> 首先进入第 1 尺度。每个非末尺度内部依次经过 3 个空间棋盘掩码的耦合层(每个耦合层输出后接批量[[归一化]])、压缩块、再 3 个通道级掩码的耦合层(同样每个后接批量归一化),最后进行变量分解;末尺度则只经过 4 个空间棋盘掩码耦合层(同样每个后接批量归一化),随后把全部变量抽出作为 <math>\mathbf{z}^{(L)}</math>,不再保留传递变量。非末尺度的变量分解把当前特征一分为二:一半作为 <math>\mathbf{z}^{(i)}</math> 抽出,另一半 <math>\mathbf{h}^{(i)}</math> 继续传入下一尺度。最终把每个 <math>\mathbf{z}^{(i)}</math> 展平为向量后按顺序拼接成完整潜在变量 <math>\mathbf{z}</math>。虽然各 <math>\mathbf{z}^{(i)}</math> 的展平长度不同(依次为 <math>HWC/2, HWC/4, \dots, HWC/2^{L-1}</math>),但它们的总和恰好等于输入维度 <math>HWC</math>,因此整体变换保持维度不变。这种分层设计的意图是:早期尺度保留高分辨率的局部细节,后期尺度处理低分辨率的全局结构,并通过逐步分解减少后续层的计算量。
 
​
 
​
 
正向流程可概括为:
 
正向流程可概括为:
第34行: 第34行:  
== [[仿射耦合层]]:可逆的"条件变形" ==
 
== [[仿射耦合层]]:可逆的"条件变形" ==
 
​
 
​
−
下图给出了仿射耦合层的前向流程。图中的耦合层块即仿射耦合层,它是 RealNVP 的基本可逆变换单元。[[文件:仿射耦合.png|缩略图|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。|替代=|626x626px|居中]]{{NumBlk|:|
+
下图给出了仿射耦合层的前向流程。图中的耦合层块即仿射耦合层,它是 RealNVP 的基本可逆变换单元。[[文件:仿射耦合.png|缩略图|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。|替代=|626x626px]]{{NumBlk|:|
 
<math>
 
<math>
 
\begin{cases}
 
\begin{cases}
第61行: 第61行:  
* '''[[通道级掩码]]'''(channel-wise masking):将前一半通道设为被动,后一半为主动。这通常在"压缩"操作后使用,因为此时空间分辨率已降低,通道间的语义分工更明确。
 
* '''[[通道级掩码]]'''(channel-wise masking):将前一半通道设为被动,后一半为主动。这通常在"压缩"操作后使用,因为此时空间分辨率已降低,通道间的语义分工更明确。
 
​
 
​
−
通过交替堆叠使用不同掩码的耦合层,每个维度都能在不同层中分别充当被动与主动变量,信息得以充分混合。原论文的多尺度架构中,每个阶段固定使用 3 个耦合层<ref name="Dinh2017" />。
+
通过交替堆叠使用不同掩码的耦合层,每个维度都能在不同层中分别充当被动与主动变量,信息得以充分混合。原论文的多尺度架构中,每个尺度内同一掩码的耦合层固定为 3 层(末尺度为 4 层)<ref name="Dinh2017" />。
 
​
 
​
   第71行: 第71行:  
'''压缩''':将空间上每个 <math>2\times2</math> 的小块在[[通道方向]]上重排,将 <math>s\times s\times c</math> 重排为 <math>s/2 \times s/2 \times 4c</math>。[[空间分辨率]]减半,通道数四倍——信息被重新排列,但没有丢失。
 
'''压缩''':将空间上每个 <math>2\times2</math> 的小块在[[通道方向]]上重排,将 <math>s\times s\times c</math> 重排为 <math>s/2 \times s/2 \times 4c</math>。[[空间分辨率]]减半,通道数四倍——信息被重新排列,但没有丢失。
 
​
 
​
−
'''变量分解''':在每个尺度结束时,将当前表示的一半维度提取为潜在变量 <math>\mathbf{z}^{(i)}</math>,剩下的一半 <math>\mathbf{h}^{(i)}</math> 继续进入下一尺度。最终所有 <math>\mathbf{z}^{(i)}</math> 展平后拼接成完整的潜在变量 <math>\mathbf{z}</math>,其总维度与输入维度相等。
+
'''变量分解''':在每个非末尺度结束时,将当前表示的一半维度提取为潜在变量 <math>\mathbf{z}^{(i)}</math>,剩下的一半 <math>\mathbf{h}^{(i)}</math> 继续进入下一尺度;末尺度则将全部变量提取为 <math>\mathbf{z}^{(L)}</math>。最终所有 <math>\mathbf{z}^{(i)}</math> 展平后拼接成完整的潜在变量 <math>\mathbf{z}</math>,其总维度与输入维度相等。
 
​
 
​
 
该设计具有以下优势:
 
该设计具有以下优势:
第181行: 第181行:  
​
 
​
 
损失函数包含两项:
 
损失函数包含两项:
−
* '''先验项''' <math>\log p_Z(f(\mathbf{x}))</math>:促使编码后的 <math>\mathbf{z}</math> 聚集在标准正态分布中心附近,相当于对潜在空间的正则化。
+
* '''先验项''' <math>\log p_Z(f(\mathbf{x}))</math>:促使编码后的分布整体逼近标准高斯,相当于对潜在空间的正则化。
 
* '''行列式项''':促使模型在数据密集的区域扩张体积、在稀疏区域收缩体积——这与[[信息论]]中将码空间分配给高概率事件的原则一致。
 
* '''行列式项''':促使模型在数据密集的区域扩张体积、在稀疏区域收缩体积——这与[[信息论]]中将码空间分配给高概率事件的原则一致。
 
​
 
​
第192行: 第192行:  
== 自然图像密度估计与生成 ==
 
== 自然图像密度估计与生成 ==
 
​
 
​
−
RealNVP 最直接的应用场景是连续高维数据的密度估计与无条件生成<ref name="Dinh2017" />。在图像生成任务中,模型一次性学习整个图像的联合分布,然后直接从标准高斯分布采样并通过逆映射得到新图像。由于采样过程不依赖逐像素的顺序解码,生成速度显著高于自回归模型。
+
RealNVP 最直接的应用场景是连续高维数据的密度估计与无条件生成<ref name="Dinh2017" />。在图像生成任务中,模型一次性学习整个图像的联合分布,然后直接从标准高斯分布采样并通过逆映射得到新图像。
 
​
 
​
 
在 CelebA 人脸生成任务中,RealNVP 能够生成全局连贯、五官清晰的人脸样本(见下图)。与变分自编码器(Variational Autoencoder,VAE)相比,RealNVP 不依赖固定的重建损失(如均方误差(Mean Squared Error,MSE)),因此不会过度平滑高频细节;与 PixelRNN 等自回归模型相比,RealNVP 的采样在维度上完全并行,速度更快。
 
在 CelebA 人脸生成任务中,RealNVP 能够生成全局连贯、五官清晰的人脸样本(见下图)。与变分自编码器(Variational Autoencoder,VAE)相比,RealNVP 不依赖固定的重建损失(如均方误差(Mean Squared Error,MSE)),因此不会过度平滑高频细节;与 PixelRNN 等自回归模型相比,RealNVP 的采样在维度上完全并行,速度更快。
第198行: 第198行:  
== 异常检测 ==
 
== 异常检测 ==
 
​
 
​
−
RealNVP 能够给出数据的精确似然,这使它天然适合无监督异常检测:在仅含正常样本的数据上训练流模型,测试时似然较低或重建误差较大的样本即被视为异常。医学影像领域尤其典型——正常扫描数量庞大,而病变样本稀少且难以标注。
+
RealNVP 能够给出数据的精确似然,这使它天然适合无监督异常检测:在仅含正常样本的数据上训练流模型,测试时将似然显著低于正常水平的样本判为异常。也可以把流与重建类模型结合起来,综合似然与重建误差构造异常分数——下文的 AE-FLOW 即属此类。医学影像领域尤其典型——正常扫描数量庞大,而病变样本稀少且难以标注。
 
​
 
​
 
AE-FLOW 将自编码器与以 RealNVP 仿射耦合层为核心的标准化流瓶颈相结合,在胸部 X 光、光学相干断层扫描、皮肤镜与脑部核磁共振等多种医学影像数据上检测异常。模型同时利用重建误差与流模型给出的负对数似然构造异常分数:正常样本能被准确重建并获得较高似然,而病变区域会产生高重建残差与低似然<ref name="AEFLOW2023">{{cite journal|author1=Zhao Y.|author2=Ding Q.|author3=Zhang X.|title=AE-FLOW: Autoencoders with Normalizing Flows for Medical Images Anomaly Detection|journal=International Conference on Learning Representations (ICLR)|year=2023|url=https://openreview.net/forum?id=9OmCr1q54Z}}</ref>。
 
AE-FLOW 将自编码器与以 RealNVP 仿射耦合层为核心的标准化流瓶颈相结合,在胸部 X 光、光学相干断层扫描、皮肤镜与脑部核磁共振等多种医学影像数据上检测异常。模型同时利用重建误差与流模型给出的负对数似然构造异常分数:正常样本能被准确重建并获得较高似然,而病变区域会产生高重建残差与低似然<ref name="AEFLOW2023">{{cite journal|author1=Zhao Y.|author2=Ding Q.|author3=Zhang X.|title=AE-FLOW: Autoencoders with Normalizing Flows for Medical Images Anomaly Detection|journal=International Conference on Learning Representations (ICLR)|year=2023|url=https://openreview.net/forum?id=9OmCr1q54Z}}</ref>。
第226行: 第226行:  
解码时,将宏观预测 <math>\hat{\mathbf{y}}_{t+1}</math> 与 <math>p-q</math> 维标准高斯噪声拼接,通过逆 INN <math>\psi_\alpha^{-1}</math> 重构微观状态。由于 RealNVP 的编码器与解码器只是方向反转,'''参数完全共享'''——相较于使用独立编码器和解码器的方案,参数量减少一半,如下图所示。
 
解码时,将宏观预测 <math>\hat{\mathbf{y}}_{t+1}</math> 与 <math>p-q</math> 维标准高斯噪声拼接,通过逆 INN <math>\psi_\alpha^{-1}</math> 重构微观状态。由于 RealNVP 的编码器与解码器只是方向反转,'''参数完全共享'''——相较于使用独立编码器和解码器的方案,参数量减少一半,如下图所示。
 
​
 
​
−
[[文件:NIS+odd.png|缩略图|NIS/NIS+ 框架架构:RealNVP 的可逆神经网络(INN)实现编码器 φ 与解码器 φ†,信息丢弃与 EI 最大化在宏观动力学空间完成。|替代=|812x812px|居中]]
+
[[文件:NIS+odd.png|缩略图|NIS/NIS+ 框架架构:RealNVP 的可逆神经网络(INN)实现编码器与解码器(图中记作 φ 与 φ†,分别对应正文中的 <math>\psi_\alpha</math> 与 <math>\psi_\alpha^{-1}</math>),信息丢弃与 EI 最大化在宏观动力学空间完成。|替代=|812x812px|居中]]
 
​
 
​
 
NIS 论文给出选用 RealNVP 的三点依据<ref name="NIS2022">{{cite journal|author1=Zhang J.|author2=Liu K.|title=Neural Information Squeezer for Causal Emergence|journal=Entropy|year=2022|volume=25|issue=1|page=26}}</ref>:
 
NIS 论文给出选用 RealNVP 的三点依据<ref name="NIS2022">{{cite journal|author1=Zhang J.|author2=Liu K.|title=Neural Information Squeezer for Causal Emergence|journal=Entropy|year=2022|volume=25|issue=1|page=26}}</ref>:
第255行: 第255行:  
* '''对分布外样本过度自信''':上文的异常检测应用依赖"异常样本的似然更低"这一假设,但后续研究发现这一假设未必成立:例如在 CIFAR-10 上训练的 RealNVP,会给截然不同的 SVHN 街景数字图像赋予'''更高'''的似然<ref name="Nalisnick2019">{{cite journal|author1=Nalisnick E.|author2=Matsukawa A.|author3=Teh Y. W.|author4=Gorur D.|author5=Lakshminarayanan B.|title=Do Deep Generative Models Know What They Don't Know?|journal=International Conference on Learning Representations (ICLR)|year=2019|url=https://arxiv.org/abs/1810.09136}}</ref>。似然高低与"是否属于训练分布"并不直接对应,因此基于似然的异常检测需要额外的校准手段。
 
* '''对分布外样本过度自信''':上文的异常检测应用依赖"异常样本的似然更低"这一假设,但后续研究发现这一假设未必成立:例如在 CIFAR-10 上训练的 RealNVP,会给截然不同的 SVHN 街景数字图像赋予'''更高'''的似然<ref name="Nalisnick2019">{{cite journal|author1=Nalisnick E.|author2=Matsukawa A.|author3=Teh Y. W.|author4=Gorur D.|author5=Lakshminarayanan B.|title=Do Deep Generative Models Know What They Don't Know?|journal=International Conference on Learning Representations (ICLR)|year=2019|url=https://arxiv.org/abs/1810.09136}}</ref>。似然高低与"是否属于训练分布"并不直接对应,因此基于似然的异常检测需要额外的校准手段。
 
​
 
​
−
== 与相关框架的关系 ==
+
= 与相关框架的关系 =
 
​
 
​
 
RealNVP 在标准化流的发展中处于承上启下的位置:
 
RealNVP 在标准化流的发展中处于承上启下的位置:
第287行: 第287行:  
|}
 
|}
 
​
 
​
−
  −
​
  −
   
= 署名 =
 
= 署名 =
 
​
 
​
50

个编辑

导航菜单