| 第240行: |
第240行: |
| | == 优势 == | | == 优势 == |
| | | | |
| − | * '''精确似然''':RealNVP 能直接算出任意数据点的精确概率密度——不像 VAE 只能优化似然的一个下界,也不像生成对抗网络(Generative Adversarial Network,GAN)完全不给密度。因此异常检测、贝叶斯推断等需要显式概率值的任务可以直接使用它<ref name="Papamakarios2021" />。 | + | * '''[[精确似然]]''':RealNVP 能直接算出任意数据点的精确概率密度——不像 VAE 只能优化似然的一个下界,也不像[[生成对抗网络]](Generative Adversarial Network,GAN)完全不给密度。因此[[异常检测]]、[[贝叶斯推断]]等需要显式概率值的任务可以直接使用它<ref name="Papamakarios2021" />。 |
| − | * '''并行采样与推断''':自回归模型必须逐像素按顺序生成,而 RealNVP 编码和解码时所有维度同时计算,生成一张图像只需一次前向传播,采样速度快得多。 | + | * '''并行采样与推断''':[[自回归模型]]必须逐像素按顺序生成,而 RealNVP 编码和解码时所有维度同时计算,生成一张图像只需一次前向传播,采样速度快得多。 |
| − | * '''语义潜在空间''':由于潜在分布是简单的标准高斯、且映射光滑可逆,在潜在空间中做插值等简单操作,就对应图像上有语义的连续变化(如人脸姿态、表情的渐变),适合表示学习与属性操控<ref name="Dinh2017" />。 | + | * '''语义[[潜在空间]]''':由于潜在分布是简单的标准高斯、且映射光滑可逆,在潜在空间中做插值等简单操作,就对应图像上有语义的连续变化(如人脸姿态、表情的渐变),适合表示学习与属性操控<ref name="Dinh2017" />。 |
| − | * '''架构灵活''':耦合层只要求 <math>\mathbf{s}</math>、<math>\mathbf{t}</math> 两个网络给出缩放和平移量,对它们的内部结构没有任何限制,可以是任意深度的卷积神经网络(Convolutional Neural Network,CNN)或残差网络(Residual Network,ResNet)。提升表达能力可以直接借用主流的深层网络设计,而无须改动可逆框架本身。 | + | * '''架构灵活''':[[耦合层]]只要求 <math>\mathbf{s}</math>、<math>\mathbf{t}</math> 两个网络给出缩放和平移量,对它们的内部结构没有任何限制,可以是任意深度的[[卷积神经网络]](Convolutional Neural Network,CNN)或[[残差网络]](Residual Network,ResNet)。提升表达能力可以直接借用主流的深层网络设计,而无须改动可逆框架本身。 |
| | * '''综合多种模型特性''':RealNVP 同时具备了此前难以兼得的能力——自回归模型的精确似然、VAE 的一步采样,以及不依赖固定重建损失的生成质量。 | | * '''综合多种模型特性''':RealNVP 同时具备了此前难以兼得的能力——自回归模型的精确似然、VAE 的一步采样,以及不依赖固定重建损失的生成质量。 |
| | | | |
| | == 局限 == | | == 局限 == |
| | | | |
| − | * '''似然性能未达最优''':RealNVP 对数据分布的拟合精度仍略逊于 PixelRNN 等自回归模型<ref name="Dinh2017" />。在以拟合精度为核心的任务(如密度估计、数据压缩)上,这是它的相对劣势——尽管它以并行采样换来了远快于对手的生成速度。 | + | * '''似然性能未达最优''':RealNVP 对数据分布的拟合精度仍略逊于 PixelRNN 等自回归模型<ref name="Dinh2017" />。在以拟合精度为核心的任务(如[[密度估计]]、[[数据压缩]])上,这是它的相对劣势——尽管它以并行采样换来了远快于对手的生成速度。 |
| − | * '''维度保持约束''':可逆变换要求输入与输出同维,因此 RealNVP 不能像自编码器那样把高维图像压缩成低维向量——潜在变量的总维度始终与输入相同。多尺度架构中的变量分解并不改变这一点,它只是让后续层处理更小的特征图,并把潜在变量分配到不同尺度。 | + | * '''维度保持约束''':可逆变换要求输入与输出同维,因此 RealNVP 不能像自编码器那样把高维图像压缩成低维向量——潜在变量的总维度始终与输入相同。[[多尺度架构]]中的变量分解并不改变这一点,它只是让后续层处理更小的特征图,并把潜在变量分配到不同尺度。 |
| − | * '''仿射耦合的表达力上限''':仿射耦合每层只对一半变量做"缩放加平移",函数形式较为简单,拟合复杂分布往往需要堆叠很多层。后续工作把变换换成更灵活的函数形式——如 Flow++ 的 Logistic 混合 CDF 耦合<ref name="FlowPlusPlus2019">{{cite journal|author1=Ho J.|author2=Chen X.|author3=Srinivas A.|author4=Duan Y.|author5=Abbeel P.|title=Flow++: Improving Flow-Based Generative Models with Variational Dequantization and Architecture Design|journal=ICML|year=2019}}</ref>、Neural Spline Flows 的有理二次样条耦合<ref name="NSF2019">{{cite journal|author1=Durkan C.|author2=Bekasov A.|author3=Murray I.|author4=Papamakarios G.|title=Neural Spline Flows|journal=Advances in Neural Information Processing Systems (NeurIPS)|year=2019|volume=32|url=https://arxiv.org/abs/1906.04032}}</ref>——用更少的层数即可达到更强的拟合能力。 | + | * '''[[仿射耦合]]的表达力上限''':仿射耦合每层只对一半变量做"缩放加平移",函数形式较为简单,拟合复杂分布往往需要堆叠很多层。后续工作把变换换成更灵活的函数形式——如 Flow++ 的 Logistic 混合 CDF 耦合<ref name="FlowPlusPlus2019">{{cite journal|author1=Ho J.|author2=Chen X.|author3=Srinivas A.|author4=Duan Y.|author5=Abbeel P.|title=Flow++: Improving Flow-Based Generative Models with Variational Dequantization and Architecture Design|journal=ICML|year=2019}}</ref>、Neural Spline Flows 的[[有理二次样条耦合]]<ref name="NSF2019">{{cite journal|author1=Durkan C.|author2=Bekasov A.|author3=Murray I.|author4=Papamakarios G.|title=Neural Spline Flows|journal=Advances in Neural Information Processing Systems (NeurIPS)|year=2019|volume=32|url=https://arxiv.org/abs/1906.04032}}</ref>——用更少的层数即可达到更强的拟合能力。 |
| − | * '''均匀去量化的次优性''':像素是 0–255 的离散整数,而 RealNVP 建模的是连续分布。RealNVP 的做法是给像素加上均匀噪声,把离散数据"抹平"成连续的——但这相当于让模型拟合一个被噪声模糊过的分布,与真实分布存在偏差。Flow++ 提出的变分去量化让噪声分布本身也由模型学习,缓解了这一问题<ref name="FlowPlusPlus2019" />。 | + | * '''[[均匀去量化]]的次优性''':像素是 0–255 的离散整数,而 RealNVP 建模的是连续分布。RealNVP 的做法是给像素加上均匀噪声,把离散数据"抹平"成连续的——但这相当于让模型拟合一个被噪声模糊过的分布,与真实分布存在偏差。Flow++ 提出的[[变分去量化]]让噪声分布本身也由模型学习,缓解了这一问题<ref name="FlowPlusPlus2019" />。 |
| | * '''分区固定性''':掩码决定哪一半变量被变换,而这一划分在训练前就已固定、训练中不再改变;若某层的划分不理想,只能靠后续层弥补。Glow(Generative Flow with Invertible 1×1 Convolutions)改用可学习的可逆 <math>1\times1</math> 卷积,让模型自己学会如何重排变量,划分更灵活,生成效果也更好<ref name="Glow2018">{{cite journal|author1=Kingma D. P.|author2=Dhariwal P.|title=Glow: Generative Flow with Invertible 1×1 Convolutions|journal=NeurIPS|year=2018}}</ref>。 | | * '''分区固定性''':掩码决定哪一半变量被变换,而这一划分在训练前就已固定、训练中不再改变;若某层的划分不理想,只能靠后续层弥补。Glow(Generative Flow with Invertible 1×1 Convolutions)改用可学习的可逆 <math>1\times1</math> 卷积,让模型自己学会如何重排变量,划分更灵活,生成效果也更好<ref name="Glow2018">{{cite journal|author1=Kingma D. P.|author2=Dhariwal P.|title=Glow: Generative Flow with Invertible 1×1 Convolutions|journal=NeurIPS|year=2018}}</ref>。 |
| − | * '''训练显存开销大''':标准反向传播需要保存每个耦合层的激活值,层数一多显存占用显著上升;RevNet 的可逆残差结构正是为省去这部分存储而提出的<ref name="RevNet2017">{{cite journal|author1=Gomez A. N.|author2=Ren M.|author3=Urtasun R.|author4=Grosse R. B.|title=The Reversible Residual Network: Backpropagation Without Storing Activations|journal=NeurIPS|year=2017|url=https://arxiv.org/abs/1707.04585}}</ref>。 | + | * '''训练显存开销大''':标准反向传播需要保存每个耦合层的激活值,层数一多显存占用显著上升;RevNet 的[[可逆残差结构]]正是为省去这部分存储而提出的<ref name="RevNet2017">{{cite journal|author1=Gomez A. N.|author2=Ren M.|author3=Urtasun R.|author4=Grosse R. B.|title=The Reversible Residual Network: Backpropagation Without Storing Activations|journal=NeurIPS|year=2017|url=https://arxiv.org/abs/1707.04585}}</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>。似然高低与"是否属于训练分布"并不直接对应,因此基于似然的异常检测需要额外的校准手段。 | | * '''对分布外样本过度自信''':上文的异常检测应用依赖"异常样本的似然更低"这一假设,但后续研究发现这一假设未必成立:例如在 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>。似然高低与"是否属于训练分布"并不直接对应,因此基于似然的异常检测需要额外的校准手段。 |
| | | | |
| | + | |
| | = 与相关框架的关系 = | | = 与相关框架的关系 = |
| | | | |