想象你是城市广播台的总编辑。白天,记者们从各个街区赶回编辑部,把零散见闻汇总成几条核心快讯——这就像普通卷积,把周围信息汇拢到一个点上。可到了晚上,你要让全城每条街角都听到这些快讯——没法回去重新采访了,只能架起大喇叭广播:把每一条核心快讯从编辑部向四面八方扩散,让喇叭声在街口重叠、叠加,最终铺满整座城市。转置卷积做的正是这件事。深度学习模型在卷积中不断“下采样”,把图像压成很小的特征图;转置卷积则反向“上采样”,把浓缩信息扩散回高分辨率输出。它是图像分割、GAN 生成器和超分辨率重建的核心组件。下面我们就用这套“广播系统”的视角,把它从原理到实践彻底讲透。

岗位关联

转置卷积是生成式 AI 与视觉模型的“还原之手”。掌握它能帮你驾驭图像分割、GAN 生成和超分重建,是通往高级视觉工程师的必修课。

目录
  1. 可视化演示
  2. 转置卷积原理
  3. 与卷积的关系
  4. 计算流程
  5. 反卷积误区
  6. 棋盘效应
  7. 应用场景
  8. 参数配置
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示转置卷积如何将低分辨率特征图上采样为高分辨率输出,以及棋盘效应的产生与消除机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

转置卷积上采样过程 输入特征图经转置卷积操作扩展到更大尺寸的输出特征图 核滑块在输入上滑动,每个位置生成stride×stride的输出区域 输出尺寸 = (input-1)×stride + kernel - 2×padding out = (in-1)×s + k - 2p stride=2时输出尺寸约为输入的2倍。

转置卷积原理

编辑部只有 3×3 共 9 条核心快讯,但全城有 5×5 共 25 个街区需要覆盖。你不可能凭空编造消息,只能让每条快讯通过一个大喇叭阵列向外广播,在街口交汇处自然叠加。转置卷积的前向传播,就是这样一个“一点向多点广播”的过程。

在深度学习里,这种需求叫“上采样”。卷积网络的前半段(编码器)不断下采样,把 512×512 的图像压缩成 16×16 甚至更小的特征图,换来更抽象、更全局的语义;但图像分割、生成图片这类任务,最终必须输出和原图一样大的结果。于是后半段(解码器)需要把浓缩的特征图重新放大——转置卷积就是为此设计的可学习上采样器。

前向传播的具体姿势:对于输入特征图的每个位置,把它与整个卷积核逐元素相乘,再把乘积“撒”到输出图中以某个位置为中心的一块区域;所有输入点都撒完后,重叠处相加,就得到高分辨率输出。卷积核大小决定每个点的“广播半径”。和双线性插值不同,转置卷积的核是训练学出来的,能为当前任务定制最合适的放大模式,参数同样走标准反向传播更新。

套用例子:in=3、stride=2、padding=1、kernel=3,算出 out=(3-1)×2-2+3=5。9 条快讯精确广播到 25 个街区——不多不少,刚好像是城市图纸上画好的网格。

out=(in−1)×stride−2×padding+kernel\displaystyle out = (in - 1) \times stride - 2 \times padding + kernel
这个公式给出了广播后地图尺寸:输入边长、步长、填充、核大小四者唯一决定输出边长。
  1. 输入间隔数in - 1 是相邻输入格点之间的间隔数目,广播的“骨架”由这些间隔撑起。
    in−1\displaystyle in - 1
  2. 乘步长展开每个间隔被步长 stride 放大,间隔总数变为 (in-1)×stride,点与点拉开距离。
    (in−1)×stride\displaystyle (in - 1) \times stride
  3. 扣掉两侧填充填充 padding 会在边界各去掉一圈(上下左右共 2×padding),对应广播布局的收边。
    −2×padding\displaystyle - 2 \times padding
  4. 加上核尺寸每个输入点本身还要占 kernel 宽度的“喇叭功率半径”,最后整体加上 kernel 补全边界。
    +kernel\displaystyle + kernel

与卷积的关系

广播和采访其实是同一套信息网络的两种流向。记者采访把街区声音收进编辑部(卷积),广播把编辑部声音散到街区(转置卷积)。同一组城市道路,方向相反而已。

“转置”二字正是来自数学视角:普通卷积可以写成矩阵乘 y = Wx,其中 W 由卷积核的滑动位置展开得到;转置卷积做的事,是把同一个 W 换成它的转置矩阵 W^T,让信息沿着相反方向流动,即 x' = W^T y。这也是它名字里“转置”的由来。注意,这并不代表两个层共享一份参数,只是数学结构对应。

更深刻的关系在前向/反向互换:在反向传播中,普通卷积层对输入求梯度时,运算形式恰好是转置卷积;反之,转置卷积层的梯度传播又形如普通卷积。因此编码器-解码器结构里,转置卷积作为解码器与前面的卷积编码器天然“对上暗号”,实现端到端训练。理解这一点,就能明白为什么上采样通常直接上转置卷积,而不是手动设计插值规则。

回到广播比喻:采访和广播用的是同一套麦克风和线路,只是信号流向相反。转置卷积不是把已播出的声音“完美回收”,而是用同一套线路把编辑部的消息再散出去一遍——方向对了,意义完全不同。

y=Wx(卷积)x′=W⊤y(转置卷积)\displaystyle \mathbf{y} = W\mathbf{x} \quad(\text{卷积})\qquad \mathbf{x}' = W^{\top}\mathbf{y} \quad(\text{转置卷积})
两个式子共用同一个矩阵 W:一个向前汇总,一个向后扩散。
  1. 卷积是矩阵乘把图像拉成向量 x,卷积过程等价于 W 与 x 相乘得到输出向量 y。
    y=Wx\displaystyle \mathbf{y} = W\mathbf{x}
  2. 转置矩阵W 的转置 W^T 把行与列互换,维度方向逆转。
    W⊤\displaystyle W^{\top}
  3. 反向流动用 W^T 乘 y,得到转置卷积的输出 x',尺寸方向与之前相反(小图变大图)。
    x′=W⊤y\displaystyle \mathbf{x}' = W^{\top}\mathbf{y}

计算流程

假设每只喇叭的“功率分布”就是卷积核:正中间最响,四周递减。要给全城铺广播,你要做三件事:定间隔(步长)、定边距(填充)、定功率半径(核大小)。三者决定每个源点把声音撒到哪些街区。

计算的套路可以总结为“画布-撒点-累加”:先把输出画布清零;然后遍历每一个输入点,用它的值乘上卷积核的每个权重,把得到的“贡献”加到输出画布上对应的位置;多个源点覆盖到同一格时,数值自然相加。坐标换算是:某个输入点把核内 (di,dj) 位置的权重撒到输出坐标 p = i×stride − padding + di 处。

重叠加分是转置卷积“可学习”的关键:同一输出格可能收到来自相邻几个源点的贡献,梯度会顺着这些路径同时回传,让网络学会如何协调相邻喇叭的声量。这种“重叠训练”让转置卷积不同于简单的插值法——插值法权重固定,而转置卷积每个重叠区域的权重都是学出来的。

城市广播里,街角的音量是各只喇叭贡献的代数和;转置卷积里,输出格的数值是各条到达路径贡献的和。谁的路径多,谁就更“亮”——这正是后面棋盘效应的伏笔。

acc[p][q]=∑i,jx[i][j]⋅k[p−i⋅s+pad][q−j⋅s+pad]\displaystyle \text{acc}[p][q] = \sum_{i,j} x[i][j] \cdot k[p - i \cdot s + \text{pad}][q - j \cdot s + \text{pad}]
输出每格的数值 = 所有能“够得着”它的输入点在对应核权重处的贡献之和。
  1. 遍历全部输入点外层求和遍历特征图每个位置 (i,j),每个点都是一次独立广播。
    ∑i,jx[i][j]\displaystyle \sum_{i,j} x[i][j]
  2. 核内坐标换算输出坐标 p 减去输入点按步长展开的坐标 i×s,再加上填充 pad,得到核内的偏移下标。
    p−i⋅s+pad\displaystyle p - i \cdot s + \text{pad}
  3. 加权贡献用这个偏移下标取出核权重,乘上输入值,得到该路径的贡献。
    ⋅k[p−i⋅s+pad]\displaystyle \cdot k[p - i \cdot s + \text{pad}]
  4. 累加求和把所有能“够到”同一格点的路径贡献相加,得到最终输出值。
    acc[p][q]=∑(⋯ )\displaystyle \text{acc}[p][q] = \sum(\cdots)

反卷积误区

广播 ≠ 原声还原。你可以把录音播遍全城,但没人能单凭广播声完美重构当年采访现场的每一个细节——声音在压缩、传输中丢失了。转置卷积也一样:它只是“反方向的广播”,不是数学意义上的“反卷积”。

名字的锅来自早期深度学习框架(如 Caffe),把转置卷积层直接命名为 deconvolution(反卷积),社区沿用至今,造成巨大混淆。真正的反卷积是卷积的逆运算:如果 y = Wx,逆运算要解出 x = W^{-1}y。问题是 W 往往不可逆(信息已经丢了),逆矩阵根本不存在;而转置卷积用的是 W^T,这个矩阵永远存在,任何时候都能算。

两者在工程上的任务也不同:真正反卷积常用于信号复原(图像去模糊、反卷积光学畸变),强调恢复原始信号,一般不是用来做上采样的;转置卷积则是有学习参数的上采样层,目标是让下游任务损失最小,而不是还原什么“原图”。所以看到“反卷积”三个字,先翻译成“转置卷积”,再判断作者是否真的在讲逆运算。

所以下次听到“反卷积”别急着当成能还原一切的魔法。它更像城市广播台的录音带:可以随时播放、扩散到全城,但没法变回当年话筒前的原声。名字唬人,本质不同。

x=W−1y  (真正的反卷积)x′=W⊤y  (转置卷积)\displaystyle \mathbf{x} = W^{-1}\mathbf{y}\ \ (\text{真正的反卷积})\qquad\mathbf{x}' = W^{\top}\mathbf{y}\ \ (\text{转置卷积})
逆矩阵做不到的事,转置矩阵可以做到:W^{-1} 可能不存在,但 W^T 永远存在。
  1. 逆矩阵W^{-1} 是 W 的逆,要求 W 方阵且可逆,卷积矩阵通常不满足。
    W−1\displaystyle W^{-1}
  2. 真实反卷积x = W^{-1}y,精确恢复原输入,是最强也最难实现的“原声重现”。
    x=W−1y\displaystyle \mathbf{x} = W^{-1}\mathbf{y}
  3. 转置矩阵W^T 只是把矩阵行与列互换,任何矩阵都有转置,因此计算永远可行。
    W⊤\displaystyle W^{\top}

棋盘效应

如果广播台把喇叭摆得乱七八糟——有的街口四只喇叭叠在一起震耳欲聋,有的街口只有一只喇叭声音发闷——整座城市就会出现一阵响一阵轻的“棋盘纹”。转置卷积的棋盘效应,就是这种不均匀覆盖在图像上的投影。

成因很具体:当卷积核大小不能被步长整除时(经典组合 kernel=3、stride=2),不同输出格被命中的次数不一样多。有的位置被 1 个输入点命中,有的被 2 个、4 个;训练一阵后,这种周期性差异会固化成明暗相间的棋盘纹理,尤其出现在颜色均匀的区域。

消除方法有三板斧:一是让核大小是步长的整数倍(如 kernel=4、stride=2,或 kernel=2、stride=2),保证每个输出格被命中的次数一致;二是“先升采样、后卷积”——用最近邻或双线性插值先放大,再做普通卷积,多一层平滑;三是改用 PixelShuffle 这类把通道重排成空间的算子。实践中最省事的是第一招:把 3×3 换成 4×4。

治理喇叭布局和治理棋盘效应是同一个道理:让每只喇叭的覆盖范围与摆放间距互相配合,音量才能均匀。参数一调,条纹自然消失。

kernel mod stride=0⇒各输出格被命中的次数一致\displaystyle kernel \bmod stride = 0 \quad\Rightarrow\quad \text{各输出格被命中的次数一致}
把“核大小能被步长整除”作为设计约束之一,能从根本上避免重叠次数不均。
  1. 取余运算kernel mod stride 表示核大小除以步长的余数,余数为 0 说明整除。
    kernel mod stride\displaystyle kernel \bmod stride
  2. 整除条件余数为 0 时,每个输出格接收的贡献次数一致,无周期性起伏。
    =0\displaystyle = 0
  3. 结论均匀重叠 ⇒ 无棋盘纹,这是消除伪影的代数判据。
    ⇒均匀重叠\displaystyle \Rightarrow \text{均匀重叠}

应用场景

广播系统最大的价值在于实战。城市安防需要把分散的监控画面拼成一张“总图”(图像分割);电视台要做整编节目(生成式模型);档案馆要翻新高糊老照片(超分辨率)。三种任务背后,都是转置卷积在负责“把小图放大成大图”。

图像分割:U-Net 这类编码器-解码器结构,编码器把 512×512 的 CT 影像压到 16×16 的特征图,解码器再用多层转置卷积逐步放大回 512×512,最后对每个像素做类别预测。GAN 生成器:以 StyleGAN、DCGAN 为代表,生成器从 100 维随机噪声出发,先得到一个 4×4 特征图,再用多层 stride=2 的转置卷积一层层翻倍到 64×64、128×128 直到 256×256。超分辨率:把 96×96 的低清帧放大 4 倍到 384×384,需要两级 stride=2 的转置卷积接力完成。

这些任务里有一个共同的数学事实:总上采样倍率等于各层步长的乘积。设计网络时只要算好这个乘积,就能精确控制最终输出尺寸,保证与标签图对齐。这也是“倍率”思维的核心。

GAN 生成器里 6 次 stride=2 的翻倍,就像电视台用六级中继站把信号从 4×4 的演播室 2 倍、2 倍地接力到 256×256 的千家万户——每级只放大一点点,整体却能翻 64 倍,稳定又可控。

r=∏l=1Lsl\displaystyle r = \prod_{l=1}^{L} s_l
总放大倍数 = 每一层步长连乘,L 为上采样层数,s_l 为第 l 层的步长。
  1. 逐层放大每一层转置卷积都有自己的步长 s_l,决定该层放大几倍。
    sl\displaystyle s_l
  2. 连乘从第 1 层到第 L 层把所有步长乘起来。
    ∏l=1L\displaystyle \prod_{l=1}^{L}
  3. 总倍率乘积 r 就是整条解码路径的净放大倍数,输出 = 输入 × r。
    r=∏l=1Lsl\displaystyle r = \prod_{l=1}^{L} s_l

参数配置

布置一套广播系统,最核心的旋钮有三个:喇叭功率半径(核大小)、喇叭间距(步长)、场地边距(填充)。旋钮拧对了,全城音效均匀;拧错了,不是覆盖不到边角,就是棋盘纹满屏。

实践中的常用配方:想让分辨率翻倍,选 stride=2;为保证均匀重叠并精确翻倍,配置 kernel=4、padding=1——代入公式 out=(in−1)×2−2×1+4 = 2×in,正好两倍。想让尺寸不变(同分辨率特征变换),用 kernel=3、stride=1、padding=1,out 保持不变。想放大非整数倍则要混合不同步长,工程上很少这么做,一般直接选整数倍。初始化技巧:用双线性插值核初始化转置卷积权重,能让早期输出相位对齐、收敛更快,之后再让梯度自由调整。

一句话原则:步长定倍率、核大小配步长、填充补对齐。只要满足 kernel − 2×padding = stride,输出就正好是输入的 stride 倍——这是绝大多数上采样任务的“标准答案”。

就像广播工程师调试时先定间距、再挑功率、最后留边距,配置转置卷积也是同一个流程。把“核−2填充=步长”这个等式记牢,任何翻倍上采样的需求都能一把调对。

out=(in−1)×2−2×1+4=2×in\displaystyle out = (in - 1) \times 2 - 2 \times 1 + 4 = 2 \times in
代入 stride=2、padding=1、kernel=4,化简后输出边长为输入的两倍,正是翻倍上采样的黄金配比。
  1. 代入参数把 s=2、p=1、k=4 代入输出尺寸公式。
    out=(in−1)×2−2×1+4\displaystyle out = (in - 1) \times 2 - 2 \times 1 + 4
  2. 展开括号(in−1)×2 = 2×in − 2。
    2×in−2−2+4\displaystyle 2 \times in - 2 - 2 + 4
  3. 合并常数−2 −2 +4 = 0,最终 out = 2×in。
    out=2×in\displaystyle out = 2 \times in

AI 应用场景

医学影像分割:把病灶从 CT 图中“圈”出来

阶段:模型推理(编码器-解码器全流程)

解决的问题:医生手动勾勒肿瘤边界耗时且主观性强。传统方法依赖灰度阈值与边缘检测,对边界模糊的病灶效果差。U-Net 用编码器逐层下采样浓缩语义,再用多层转置卷积把 16×16 特征图上采样回 512×512,实现逐像素分类,端到端训练、一次推理输出整张分割图。

具体案例:某三甲医院影像科部署 ResNet-UNet 做肝脏肿瘤分割:编码器输出 16×16 特征图,解码器使用 5 层 stride=2、kernel=4、padding=1 的转置卷积逐步翻倍,最终恢复原图尺寸,Dice 系数从传统方法的 0.82 提升到 0.91,单张 CT 处理时间从 12 分钟降到 8 秒。

GAN 人脸生成:从噪声“画”出高清人像

阶段:模型训练 + 生成推理

解决的问题:直接让生成器从随机噪声一步生成 256×256 高清人像几乎无法训练——参数空间太大、梯度不稳定。渐进式生成方案用转置卷积逐层翻倍:每层只负责把小图放大两倍,6 层接力后自然得到高清输出,训练稳定且质量高。

具体案例:StyleGAN 把 512 维风格向量映射为 4×4 特征图,经 6 层转置卷积(每层 stride=2、kernel=4、padding=1,输出 8×8→16×16→…→256×256)逐步生成逼真的人脸;相比直接全连接生成,训练收敛速度提升约 3 倍,生成图的 FID 从 18.6 降至 8.2。

超分辨率重建:让模糊监控画面“翻新”

阶段:模型推理(后处理增强)

解决的问题:监控视频分辨率低、人脸难以辨认。传统双线性/双三次插值只会“平滑变糊”,无法补出高频细节。超分网络用两级转置卷积把 96×96 低清帧放大 4 倍到 384×384,并用感知损失约束,让重建结果在锐利度与自然度上远超插值。

具体案例:ESRGAN 类模型在安防场景中部署:输入 96×96 画面,第一级 stride=2 翻到 192×192,第二级再翻到 384×384(总倍率 r=2×2=4),PSNR 较双三次插值提升约 1.5dB,人脸关键点检测准确率从 68% 升至 87%。

Python 演示

python40 行
import numpy as np  def transposed_conv2d(x, kernel, stride=2, padding=1):    """手动实现转置卷积: 画布清零-撒点-累加"""    in_h, in_w = x.shape    k_h, k_w = kernel.shape    out_h = (in_h - 1) * stride - 2 * padding + k_h    out_w = (in_w - 1) * stride - 2 * padding + k_w    out = np.zeros((out_h, out_w))    for i in range(in_h):        for j in range(in_w):            for di in range(k_h):                for dj in range(k_w):                    oi = i * stride - padding + di                    oj = j * stride - padding + dj                    if 0 <= oi < out_h and 0 <= oj < out_w:                        out[oi, oj] += x[i, j] * kernel[di, dj]    return out  if __name__ == "__main__":    x = np.array([[1, 0], [2, 1]], dtype=float)    kernel = np.ones((4, 4), dtype=float)    y = transposed_conv2d(x, kernel, stride=2, padding=1)    print("输入 2x2:\n", x)    print("转置卷积输出 4x4:\n", y)    print("输出尺寸:", y.shape)     # 与 PyTorch 官方实现对比(如已安装)    try:        import torch        import torch.nn.functional as F        xt = torch.tensor(x).view(1, 1, 2, 2)        kt = torch.tensor(kernel).view(1, 1, 4, 4)        yt = F.conv_transpose2d(xt, kt, stride=2, padding=1)        print("PyTorch 输出:\n", yt[0, 0].numpy())        print("结果完全一致:", np.allclose(y, yt[0, 0].numpy()))    except ImportError:        print("未安装 PyTorch, 跳过对比检查")
目的:不依赖任何深度学习框架,用三重循环实现转置卷积的“画布清零-撒点-累加”过程,并与 PyTorch 的 conv_transpose2d 结果对比验证正确性。
  1. out_h = (in_h - 1) * stride - 2 * padding + k_h用尺寸公式先算出输出画布的高与宽,这是后续所有坐标计算的“地图边界”。
  2. out = np.zeros((out_h, out_w))把全城广播画布清零,等待各源点把贡献撒上来。
  3. oi = i * stride - padding + di坐标换算:输入点在步长展开后,核内偏移命中的输出位置。
  4. out[oi, oj] += x[i, j] * kernel[di, dj]核心累加:输入值乘以核权重后叠加,重叠区域自然相加。
  5. F.conv_transpose2d(xt, kt, stride=2, padding=1)PyTorch 官方转置卷积,验证手写实现的正确性。

常见误区

误区转置卷积就是反卷积,能把下采样丢掉的细节原样变回来,输入输出像解压文件一样无损。

正解转置卷积 ≠ 真正的反卷积。它对应的是矩阵 W^T 而不是 W^{-1};下采样时信息已经丢失,W 不可逆,任何运算都无法无损还原。它只是用可学习参数把特征图放大,目标是让下游任务更好,而不是恢复原始信号。就像广播无法还原采访现场的原声。

为何常见:“反卷积”这个译名自带“逆操作”的暗示,加上很多教程把它画成卷积的镜像,初学者容易望文生义。

误区上采样到多大我直接设个输出尺寸参数就行,转置卷积会自动适配。

正解转置卷积的输出尺寸没有任何自由度,由输入、步长、填充、核大小四者唯一确定:out=(in−1)×s−2p+k。想得到目标尺寸,只能反推这四个参数(比如 s=2、k=4、p=1 得到两倍)。尺寸配不对,输出与标签图对不齐,训练直接失败。

为何常见:平时用 nn.Upsample 习惯了“指定目标尺寸”的思维,忽略了转置卷积是带滑动规则的运算层。

误区生成的图像有棋盘格子,肯定是我哪里写了个 bug,或者学习率太高造成的。

正解棋盘效应是转置卷积重叠不均匀带来的系统性伪影:当核大小不能被步长整除时,输出格被命中的次数呈周期性变化(1、2、4 次交替),表现为明暗条纹。改学习率、加正则都没用;正确做法是让核整除步长,或改“先插值再卷积”/PixelShuffle。

为何常见:伪影形态像随机噪声,人们习惯归因于训练不稳定,而它其实是网络结构层面的确定性问题。

误区转置卷积和卷积是两个独立的层,一个管下采样一个管上采样,互不相干。

正解两者数学上互为转置映射:卷积是 y=Wx,转置卷积是 x'=W^T y;转置卷积的前向恰好等于普通卷积的梯度反向传播。虽然不共享参数,但结构密切相关,这解释了为什么编码器-解码器架构能端到端良好训练。

为何常见:从直觉上看“缩小”和“放大”确实方向相反,初学者很少意识到背后的矩阵转置关系。

误区上采样就得用转置卷积,别的都不算数。

正解上采样还有双线性/最近邻插值、PixelShuffle(亚像素卷积)等方案。转置卷积可学习、表达力强,但参数多且有棋盘效应风险;插值法零参数、无伪影但不可学习。实际工程常混用:先用插值放大、再用卷积精修,或用 PixelShuffle 做高效上采样。

为何常见:教程大多以转置卷积为例讲解上采样,导致读者误以为它是唯一解。

面试题

Q1. 转置卷积在深度学习中最主要的用途是?

单选题 · easy

  • A.对特征图做下采样压缩尺寸
  • B.把低分辨率特征图上采样放大← 正确答案
  • C.提取图像的边缘与纹理特征
  • D.对输入做随机丢弃与数据增强

答案:B。转置卷积的核心作用是上采样,把低分辨率特征图放大成高分辨率输出,就像广播台把编辑部快讯扩散到全城。A 是池化/卷积的职责,C 是特征提取类的操作,D 是正则化手段,都与上采样无关。

Q2. 输入特征图 5×5,转置卷积 kernel=3、stride=2、padding=1,输出尺寸是多少?

单选题 · mid

  • A.输出为 7×7 大小
  • B.输出为 9×9 大小← 正确答案
  • C.输出为 10×10 大小
  • D.输出为 11×11 大小

答案:B。套用尺寸公式 out=(in−1)×stride−2×padding+kernel,代入得 (5−1)×2−2×1+3=9。只有 B 正确。这提醒我们转置卷积的输出尺寸并非随意设定,而是由公式唯一确定。

Q3. 关于转置卷积与真正反卷积(deconvolution)的关系,正确的是?

单选题 · mid

  • A.两者是同一操作的两种叫法
  • B.真反卷积需矩阵可逆,转置总存在← 正确答案
  • C.转置卷积能无损还原下采样前的图
  • D.反卷积用 W^T,转置卷积用 W^{-1}

答案:B。真正反卷积要求 W^{-1} 存在,而转置卷积用的是 W^T,任何矩阵都有转置,因此总可计算。A 混淆了工程俗名与数学定义;C 错误,信息在下采样时已丢失;D 把两个矩阵用反了。

Q4. 下列属于转置卷积消除棋盘效应常用方法的是?

多选题 · mid

  • A.让核大小能被步长整除← 正确答案
  • B.先插值上采样再做普通卷积← 正确答案
  • C.把学习率调大并加正则化
  • D.改用 PixelShuffle 上采样← 正确答案

答案:ABD。棋盘效应源于重叠次数不均。A 能保证均匀重叠,B 把上采样与卷积解耦,D 用通道重排实现均匀上采样,都是有效手段。C 只是训练技巧,无法改变结构性的不均匀覆盖。

Q5. “转置卷积”名称中的“转置”指的是?

单选题 · easy

  • A.将输入图像旋转九十度再卷积
  • B.把卷积矩阵换成它的转置矩阵← 正确答案
  • C.把卷积核做一百八十度翻转
  • D.交换卷积层输入输出的通道数

答案:B。转置卷积的数学本质是把普通卷积对应的矩阵 W 换成 W^T,让信号沿相反方向流动。与图像旋转、核翻转、通道交换都无关,选 B。

Q6. 输入 3×3,kernel=4、stride=2、padding=1 的转置卷积输出为?

单选题 · hard

  • A.输出尺寸为 4×4
  • B.输出尺寸为 5×5
  • C.输出尺寸为 6×6← 正确答案
  • D.输出尺寸为 8×8

答案:C。代入公式 out=(in−1)×s−2p+k=(3−1)×2−2×1+4=6。这个 k=4、s=2、p=1 的配比正好是“翻倍上采样”的黄金组合,GAN 生成器里逐层放大用的就是它。

Q7. 关于转置卷积与普通卷积的数学关系,正确的有?

多选题 · hard

  • A.转置卷积前向等于卷积梯度的反向方向← 正确答案
  • B.两者在训练中必须共享同一份权重
  • C.编码器卷积与解码器转置卷积常成对出现← 正确答案
  • D.转置卷积参数无法用反向传播更新

答案:AC。普通卷积对输入求梯度时,运算形式恰好是转置卷积,故 A 正确;编码器-解码器架构常用卷积下采样、转置卷积上采样,C 正确。B 错误,两者参数独立学习,只是数学结构对应;D 错误,转置卷积参数同样走反向传播更新。

Q8. GAN 生成器想把 4×4 特征图翻倍到 8×8,常用配比是?

单选题 · mid

  • A.stride=2,kernel=3,padding=1
  • B.stride=2,kernel=4,padding=1← 正确答案
  • C.stride=1,kernel=3,padding=1
  • D.stride=3,kernel=4,padding=2

答案:B。代入检验:B 得 out=(4−1)×2−2×1+4=8,正好翻倍。A 得 7,C 保持 4 不变,D 得 9,都不满足翻倍需求。这就是“核−2填充=步长”黄金配比的实际应用。

Q9. 图像分割的编码器-解码器结构中,解码器恢复分辨率通常用?

单选题 · easy

  • A.最大池化层与丢弃层组合
  • B.转置卷积等可学习上采样层← 正确答案
  • C.全连接层做特征拼接融合
  • D.批归一化层做尺度缩放

答案:B。解码器的职责是把编码器压缩的特征图恢复到原图尺寸,转置卷积这类可学习上采样层是标配。池化负责缩小,全连接负责分类,批归一化负责稳定训练,三者都不能放大空间分辨率。

Q10. 关于棋盘效应的成因与影响,正确的理解有?

多选题 · extreme

  • A.核大小不整除步长时各输出格命中次数不均← 正确答案
  • B.只有权重初始化为零时才会出现此现象
  • C.不均匀重叠会在输出上形成周期性明暗条纹← 正确答案
  • D.提高输入分辨率即可从根源上消除棋盘效应

答案:AC。棋盘效应的根源是核大小与步长不整除导致重叠次数周期性变化,A 正确;这种不均匀重叠会固化为明暗相间的条纹,C 正确。B 错误,它与初始化无关;D 错误,提高分辨率只是放大尺度,并不能改变重叠模式。