更改

添加8字节 、 2026年7月23日 (星期四)
小
调整图片位置
第21行: 第21行:  
= 算法框架 =
 
= 算法框架 =
   −
[[文件:Realnvp multiscale.svg|缩略图|RealNVP 多尺度分层架构示意图。BN 为批量归一化(Batch Normalization)操作的简写。|替代=|753x753像素]]
+
[[文件:Realnvp multiscale.svg|缩略图|RealNVP 多尺度分层架构示意图。BN 为批量归一化(Batch Normalization)操作的简写。|替代=|552x552px]]
    
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''仿射耦合层'''(coupling)负责可逆的特征变换,每个耦合层输出后接'''批量归一化'''(batch normalization)以稳定训练;'''压缩'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''变量分解'''(factor out)负责在每个尺度末尾抽取一部分变量作为潜在编码。其中,仿射耦合层通过 空间棋盘(checkerboard)与通道级(channel-wise)两种掩码实现,二者交替使用。
 
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''仿射耦合层'''(coupling)负责可逆的特征变换,每个耦合层输出后接'''批量归一化'''(batch normalization)以稳定训练;'''压缩'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''变量分解'''(factor out)负责在每个尺度末尾抽取一部分变量作为潜在编码。其中,仿射耦合层通过 空间棋盘(checkerboard)与通道级(channel-wise)两种掩码实现,二者交替使用。
第37行: 第37行:  
== 仿射耦合层:可逆的"条件变形" ==
 
== 仿射耦合层:可逆的"条件变形" ==
   −
图中的 '''Coupling''' 块即仿射耦合层,它是 RealNVP 的基本可逆变换单元。
+
图中的 '''Coupling''' 块即仿射耦合层,它是 RealNVP 的基本可逆变换单元。[[文件:仿射耦合.png|缩略图|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。|替代=|344x344像素]]{{NumBlk|:|
−
 
  −
{{NumBlk|:|
   
<math>
 
<math>
 
\begin{cases}
 
\begin{cases}
第46行: 第44行:  
\end{cases}
 
\end{cases}
 
</math>
 
</math>
−
|{{EquationRef|1}}}}[[文件:仿射耦合.png|缩略图|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。|替代=]]这里 <math>\mathbf{s}</math>(scale,缩放)和 <math>\mathbf{t}</math>(translation,平移)是两个深度神经网络(通常是 CNN)。<math>\odot</math> 为逐元素乘积。由于 <math>\mathbf{s}</math> 和 <math>\mathbf{t}</math> 的输入只来自不变的那一半,输出只作用在可变的那一半,整个变换的雅可比矩阵是下三角块结构,行列式即为对角线元素的乘积——计算复杂度从 <math>O(D^3)</math> 降到 <math>O(D)</math>。此外,逆变换为:
+
|{{EquationRef|1}}}}这里 <math>\mathbf{s}</math>(scale,缩放)和 <math>\mathbf{t}</math>(translation,平移)是两个深度神经网络(通常是 CNN)。<math>\odot</math> 为逐元素乘积。由于 <math>\mathbf{s}</math> 和 <math>\mathbf{t}</math> 的输入只来自不变的那一半,输出只作用在可变的那一半,整个变换的雅可比矩阵是下三角块结构,行列式即为对角线元素的乘积——计算复杂度从 <math>O(D^3)</math> 降到 <math>O(D)</math>。此外,逆变换为:
    
{{NumBlk|:|
 
{{NumBlk|:|
50

个编辑