卷积自编码器(ConvAE)中的解码器主要负责逆转编码器的压缩过程。编码器将输入图像转换为低维潜在表示。解码器必须接收这种紧凑表示,并将其扩展回原始图像尺寸,旨在尽可能忠实地重建输入。这种扩展的一个主要方面是提高特征图的空间分辨率,这个过程通常称为上采样。在上一节中,我们讨论了转置卷积层(通常称为 Conv2DTranspose,或有时不太准确地称为反卷积层)。这些层是实现可学习上采样的一种有效方式。它们不仅仅是增大尺寸;它们的权重经过训练,能以最有利于重建任务的方式生成更高分辨率的特征图。尽管转置卷积非常有效,但它们并非在解码器中增加空间维度的唯一方法。简单、不可学习的插值方法也常被使用,通常与标准卷积层结合使用。我们来看看一些常见的上采样技术。最近邻上采样最近邻上采样是增大特征图尺寸的最简单方法之一。要按因子 $N$ 进行上采样(例如,$N=2$表示高度和宽度都翻倍),输入特征图中的每个像素(或特征值)会被简单地复制,以填充输出特征图中的一个 $N \times N$ 块。想象一个单一的像素值。如果我们按因子2进行上采样,这个单一像素值将成为上采样图中一个2x2的相同值块。机制: 复制现有像素值以扩展图像。优点: 计算成本非常低,实现起来也很直接。缺点: 这种方法会导致输出图像出现块状或像素化外观,因为它不引入任何新信息,也不在复制的像素之间创建平滑过渡。双线性和双三次插值相较于最近邻上采样,双线性插值提供了一种更平滑的上采样方式。上采样时,高分辨率图中新像素的值是根据输入特征图中四个最近的像素值(2x2邻域)的加权平均计算的。权重由新像素与这些邻居的距离决定。机制: 基于输入中四个最接近像素值的线性插值来计算新像素值。优点: 产生比最近邻插值更平滑的结果,减少块状感。缺点: 尽管更平滑,但有时可能会模糊锐利的边缘或精细细节,因为它本质上是一个平均过程。它也是一个固定操作,意味着其行为在训练期间不会被学习。双三次插值是一种更高级的技术,它考虑了16个像素的更大邻域(一个4x4网格),并使用更复杂的多元函数来计算插值。它通常产生更平滑的结果,并比双线性插值更好地保留细节,但计算量更大。大多数深度学习框架都提供了实现这些插值方法的层,通常命名为 UpSampling2D,你可以在其中指定上采样因子和插值方法(例如,'nearest'或'bilinear')。“上采样然后卷积”模式解码器中一种常见的架构模式是使用基于插值的上采样层(如最近邻或双线性)后接一个标准卷积层(Conv2D)。这种方法将空间放大(由固定上采样方法处理)与特征变换(由可学习卷积层处理)分开。这种“上采样然后卷积”策略可以作为使用单个转置卷积层的替代方案。转置卷积: 将上采样和卷积结合到一个单一的可学习操作中。上采样 + 卷积: 首先执行固定上采样,然后应用标准卷积。卷积层学习优化上采样后的特征,并可能减少由简单上采样方法引入的混叠或其他伪影。一些实践者更喜欢“上采样然后卷积”方法,因为它有时有助于减轻“棋盘状伪影”,这些伪影在转置卷积配置不当(例如,核大小和步幅选择)时偶尔会出现。digraph G { rankdir=TB; graph [fontname="sans-serif", fontsize=10]; node [shape=box, style="filled", fontname="sans-serif", fontsize=10]; edge [fontname="sans-serif", fontsize=9]; subgraph cluster_transposed_conv { label = "选项 1: 转置卷积"; style="filled"; color="#e9ecef"; bgcolor="#f8f9fa"; tc_input [label="低分辨率特征图\n(例如,16x16x64)", fillcolor="#ffc9c9"]; tc_layer [label="Conv2DTranspose\n(核,步幅)\n(可学习上采样)", fillcolor="#ffa8a8", shape=Mrecord]; tc_output [label="高分辨率特征图\n(例如,32x32x32)", fillcolor="#ffc9c9"]; tc_input -> tc_layer [label="增加 H, W\n学习变换"]; tc_layer -> tc_output; } subgraph cluster_upsample_conv { label = "选项 2: 上采样 + 卷积"; style="filled"; color="#e9ecef"; bgcolor="#f8f9fa"; uc_input [label="低分辨率特征图\n(例如,16x16x64)", fillcolor="#b2f2bb"]; uc_upsample [label="UpSampling2D\n(例如,双线性,尺寸=(2,2))\n(固定上采样)", fillcolor="#8ce99a", shape=Mrecord]; uc_conv [label="Conv2D\n(核,步幅='same')\n(可学习变换)", fillcolor="#69db7c", shape=Mrecord]; uc_output [label="高分辨率特征图\n(例如,32x32x32)", fillcolor="#b2f2bb"]; uc_input -> uc_upsample [label="增加 H, W"]; uc_upsample -> uc_conv [label="学习变换\n(H, W 不变)"]; uc_conv -> uc_output; } }解码器中提高特征图分辨率的两种常见策略。选项1使用单个可学习的转置卷积。选项2使用固定的插值上采样,然后是可学习的标准卷积。选择上采样策略转置卷积与基于插值的上采样(通常后接标准卷积)之间的选择取决于几个因素:重建质量: 转置卷积是可学习的,有潜力生成更高质量的重建,因为它们能够调整其上采样行为。然而,如果设计不当,它们也可能引入特定的伪影,例如棋盘格效应。插值后接卷积有时能产生更平滑的结果或避免此类伪影。模型复杂度和参数: 转置卷积为模型增加可学习参数。使用固定上采样并随后进行卷积也会通过卷积增加参数,但上采样步骤本身是无参数的。计算成本: 计算开销各不相同。简单的最近邻上采样速度非常快。转置卷积涉及类似标准卷积的矩阵乘法。伪影控制: 如前所述,有时会选择“上采样然后卷积”模式,以更好地控制某些转置卷积配置可能产生的棋盘格伪影。实践中,这两种方法都被广泛使用,最佳选择通常需要凭经验判断。许多成功的ConvAE架构在其解码器中使用了转置卷积,因为它们表现力强。然而,理解基于插值的上采样和“上采样然后卷积”模式,为你设计高效解码器架构提供了有价值的替代方案,尤其是在针对特定图像特性或计算限制进行微调时。在构建ConvAE时,你通常会在解码器中,用对应的上采样操作来镜像编码器的下采样操作,逐步增加空间维度,同时减少特征通道数,直到达到目标输出形状(与原始输入图像匹配)。