更改

添加31字节 、 2026年7月22日 (星期三)
调整图片位置
第23行: 第23行:  
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''仿射耦合层'''(coupling)负责可逆的特征变换,每个耦合层输出后接'''批量归一化'''(batch normalization)以稳定训练;'''压缩'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''变量分解'''(factor out)负责在每个尺度末尾抽取一部分变量作为潜在编码。其中,仿射耦合层通过 空间棋盘(checkerboard)与通道级(channel-wise)两种掩码实现,二者交替使用。
 
RealNVP 把若干可逆模块按顺序堆叠,形成从数据空间到潜在空间的完整映射。其网络主体由四个功能模块组成:'''仿射耦合层'''(coupling)负责可逆的特征变换,每个耦合层输出后接'''批量归一化'''(batch normalization)以稳定训练;'''压缩'''(squeeze)负责降低空间分辨率并把信息重排到通道;'''变量分解'''(factor out)负责在每个尺度末尾抽取一部分变量作为潜在编码。其中,仿射耦合层通过 空间棋盘(checkerboard)与通道级(channel-wise)两种掩码实现,二者交替使用。
   −
[[文件:Realnvp multiscale.svg|缩略图|center|RealNVP 多尺度分层架构示意图。]]
+
[[文件:Realnvp multiscale.svg|缩略图|RealNVP 多尺度分层架构示意图。|替代=|753x753像素]]
    
如上图所示,输入图像 <math>\mathbf{x}</math> 首先进入 Scale 1。每个非末尺度内部依次经过 3 个 checkerboard 掩码的耦合层(每个耦合层输出后接批量归一化)、Squeeze 压缩块、再 3 个 channel-wise 掩码的耦合层(同样每个后接批量归一化),最后通过 Factor Out 把当前特征一分为二;末尺度则只经过 4 个 checkerboard 耦合层(同样每个后接批量归一化)就进行 Factor Out。一半结果作为 <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>,因此整体变换保持维度不变。这种分层设计的意图是:早期尺度保留高分辨率的局部细节,后期尺度处理低分辨率的全局结构,并通过逐步分解减少后续层的计算量。
 
如上图所示,输入图像 <math>\mathbf{x}</math> 首先进入 Scale 1。每个非末尺度内部依次经过 3 个 checkerboard 掩码的耦合层(每个耦合层输出后接批量归一化)、Squeeze 压缩块、再 3 个 channel-wise 掩码的耦合层(同样每个后接批量归一化),最后通过 Factor Out 把当前特征一分为二;末尺度则只经过 4 个 checkerboard 耦合层(同样每个后接批量归一化)就进行 Factor Out。一半结果作为 <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>,因此整体变换保持维度不变。这种分层设计的意图是:早期尺度保留高分辨率的局部细节,后期尺度处理低分辨率的全局结构,并通过逐步分解减少后续层的计算量。
第58行: 第58行:  
|{{EquationRef|2}}}}
 
|{{EquationRef|2}}}}
   −
[[文件:仿射耦合.png|缩略图|center|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。]]
+
[[文件:仿射耦合.png|缩略图|仿射耦合层示意图:正向(从左到右)将输入分块并变换,反向(从右到左)逐块还原。|替代=]]
    
无需对 <math>\mathbf{s}</math> 或 <math>\mathbf{t}</math> 求逆,只需按逆变换公式进行减法和除法即可。因此'''编码(求密度)和解码(采样)同样高效'''。
 
无需对 <math>\mathbf{s}</math> 或 <math>\mathbf{t}</math> 求逆,只需按逆变换公式进行减法和除法即可。因此'''编码(求密度)和解码(采样)同样高效'''。
第334行: 第334行:     
'''贡献者''':集智百科团队
 
'''贡献者''':集智百科团队
 +
<references />
50

个编辑