CS231n Lecture 9: 图像检测、分割、可视化

CS231n Lecture 9: 图像检测、分割、可视化

Sun Mar 01 2026
3968 words · 14 minutes

CS231n Lecture 9: 检测、分割、可视化与理解

引言

在计算机视觉的宏大版图中,图像分类仅仅是理解视觉世界的第一步。当我们希望模型不仅能识别“这是什么”,还能精确指出“它在哪里”、“它的轮廓如何”甚至“它在做什么”时,我们就进入了目标检测、语义分割和实例分割等更复杂的任务领域。与此同时,随着 Transformer1 架构在视觉领域的成功应用(ViT2),我们也需要重新审视这些传统任务在新架构下的表现形式。此外,理解深度神经网络内部究竟学到了什么,通过可视化手段打开黑盒,也是构建可信赖 AI 系统的关键环节。本次讲座将深入探讨这些核心任务及其背后的技术演进。

序列处理的三种范式回顾

在深入具体任务之前,我们首先回顾一下处理序列数据的三种主要方式,这有助于理解 Transformer 为何能在视觉任务中占据重要地位。循环神经网络(RNN3)通过时间维度递归更新隐藏状态,理论上适合长序列,计算复杂度为 O(N)O(N),但其串行计算的本质导致无法并行化,限制了训练效率。卷积神经网络(CNN4)作用于多维网格,虽然可以通过堆叠层来扩大感受野,但处理长序列时需要极深的网络,且感受野的增长是有限的。

相比之下,自注意力机制(Self-Attention5)将序列视为向量的集合。它的核心优势在于每个输出直接依赖于所有输入,拥有全局感受野,且计算过程高度并行化,仅涉及几次矩阵乘法。尽管其计算复杂度为 O(N2)O(N^2),在处理极长序列时显得昂贵,但其强大的建模能力和并行效率使其成为现代序列建模的首选。这种特性也被成功迁移到了视觉领域,形成了 Vision Transformer6 (ViT)。

Vision Transformer (ViT):将图像视为序列

Vision Transformer 的核心思想非常直观:将图像视为一系列补丁(patches)的序列。对于一张 224×224×3224 \times 224 \times 3 的输入图像,我们将其划分为 NN 个固定大小的补丁,例如 16×16×316 \times 16 \times 3。每个补丁随后被展平并通过一个线性投影层映射为 DD 维向量。这些向量构成了 Transformer 编码器的输入序列。

由于 Transformer 本身不具备感知位置信息的能力,我们必须为每个补丁嵌入位置编码。在 ViT 中,这些位置编码通常是可学习的 DD 维向量,直接加到补丁嵌入向量上。为了执行分类任务,ViT 引入了一个特殊的可学习分类令牌(classification token, [CLS]),它被添加到序列的开头。经过多层 Transformer 编码器处理后,[CLS] 令牌的输出向量被送入一个线性分类头,生成最终的类别预测分数。另一种变体则是对所有补丁的输出向量进行全局平均池化,再通过线性层进行分类。值得注意的是,在图像任务中,自注意力层不需要掩码机制,因为每个图像补丁都可以关注到其他所有补丁,这与自然语言处理中的自回归生成任务截然不同。

Transformer 架构的现代演进

自 2017 年原始 Transformer 提出以来,其核心架构虽未发生根本性变化,但在细节上经历了一系列重要的改进,这些改进显著提升了模型的训练稳定性和性能。

首先是归一化位置的调整。原始的 Transformer 采用“后归一化”(Post-Norm),即在残差连接之后进行层归一化(Layer Normalization)。然而,这种做法在某些情况下会导致梯度消失,使得模型难以学习恒等映射。现代架构普遍转向“前归一化”(Pre-Norm),将归一化层移至残差分支内部,即在自注意力和前馈网络之前进行归一化。这种改动虽然看似微小,却极大地增强了深层网络的训练稳定性。

其次是归一化方法的革新。传统的层归一化涉及计算均值和方差,而均方根归一化(RMSNorm7)去除了均值中心化步骤,仅利用均方根进行缩放。公式表达为 yi=xiRMS(x)γiy_i = \frac{x_i}{\text{RMS}(x)} \cdot \gamma_i,其中 RMS(x)=ϵ+1Nxi2\text{RMS}(x) = \sqrt{\epsilon + \frac{1}{N}\sum x_i^2}。实验表明,RMSNorm 在保持性能的同时能略微提升训练速度及稳定性。

在前馈网络(MLP)结构上,SwiGLU8 激活函数逐渐取代了传统的 ReLU 或 GeLU。经典的 MLP 结构为 Y=σ(XW1)W2Y = \sigma(XW_1)W_2,而 SwiGLU 引入了门控机制,形式为 Y=(σ(XW1)XW2)W3Y = (\sigma(XW_1) \odot XW_2)W_3。这种结构通过增加一个并行的线性变换路径并与激活路径相乘,显著提升了模型的表达能力。为了保持参数量不变,通常会将中间层维度调整为原来的 2/32/3 倍左右。

最后,混合专家模型(Mixture of Experts, MoE9)成为了扩展模型规模的关键技术。MoE 在每个 Transformer 块中维护 EE 个独立的 MLP 专家网络。对于每个输入令牌,通过路由机制仅选择其中活跃的 AA 个专家(A<EA < E)进行计算。这种稀疏激活策略使得模型参数量可以随专家数量 EE 线性增长,而计算成本仅随活跃专家数 AA 增加。目前最先进的大语言模型几乎都采用了 MoE 架构,实现了万亿级参数规模下的高效推理。

语义分割:像素级的分类

语义分割的目标是为图像中的每个像素分配一个语义类别标签,而不区分同一类别的不同实例。早期的尝试采用滑动窗口策略,即提取以每个像素为中心的图像块,利用 CNN 分类中心像素的类别。然而,这种方法存在严重的计算冗余,因为相邻窗口的特征大量重叠且未被共享,导致效率极低。

全卷积网络(Fully Convolutional Networks, FCN10)提出了更高效的解决方案。其核心思想是设计一个完全由卷积层组成的网络,去除全连接层,从而允许输入任意尺寸的图像并输出相应尺寸的特征图。为了兼顾感受野和空间分辨率,FCN 采用了编码器 - 解码器结构:编码器部分通过池化或步长卷积进行下采样,提取高层语义特征;解码器部分则通过上采样操作恢复空间分辨率。

上采样操作主要有几种实现方式。最简单的是最近邻插值或“床钉式”(Bed of Nails)填充,但这些方法不可学习。最大反池化(Max Unpooling)利用前向传播时最大池化的位置索引来恢复特征图,保留了部分空间结构信息。更为常用的是转置卷积(Transposed Convolution),也称为反卷积。它可以被视为一种可学习的上采样层,通过将输入元素作为卷积核的权重,在输出特征图上生成重叠的感受野并求和,从而实现从低分辨率到高分辨率的映射。

U-Net11 是这一领域的经典架构,其特点是跳跃连接(Skip Connections)。它将编码器阶段的高分辨率特征图与解码器阶段的上采样特征图进行拼接。这种设计不仅恢复了丢失的空间细节,还将浅层的定位信息与深层的语义信息有效融合,显著提升了分割边界的准确性。

目标检测:定位与分类的结合

目标检测任务要求模型不仅识别图像中的物体类别,还要预测其位置,通常用边界框(Bounding Box)表示。对于单目标检测,问题可以转化为多任务学习:一个分支输出类别概率(分类任务),另一个分支输出边界框坐标(回归任务),总损失为两者之和。

然而,多目标检测面临输出数量不固定的挑战。早期的 R-CNN12 系列算法采用了两阶段策略。第一阶段生成区域提议(Region Proposals),最初使用选择性搜索(Selective Search)等传统算法,后来演变为区域提议网络(RPN13)。R-CNN 对每个提议区域独立运行 CNN 提取特征,效率低下。Fast R-CNN14 对此进行了改进,先将整张图像通过 CNN 提取特征图,然后在特征图上裁剪出对应提议区域的特征(RoI Pooling15),大大减少了计算量。Faster R-CNN16 进一步将区域提议生成过程也神经网络化,通过 RPN 直接从特征图中预测锚框(Anchor Boxes)是否包含物体及其修正量,实现了端到端的训练。

在两阶段检测器中,RoI Align17 取代了 RoI Pooling 成为主流。RoI Pooling 在进行特征裁剪时会将坐标量化取整,导致特征与原始图像之间的错位,这对像素级任务(如实例分割)尤为不利。RoI Align 通过双线性插值直接采样非整数坐标点的特征值,避免了量化误差,保证了特征的空间对齐。

单阶段检测器(如 YOLO18、SSD19)则摒弃了区域提议步骤,直接将图像划分为网格,在每个网格单元上直接预测多个边界框及其类别概率。这类方法速度极快,适合实时应用,但在小目标检测和精度上略逊于两阶段方法。近年来,基于 Transformer 的检测器(如 DETR20)崭露头角,它利用 Transformer 的集合预测特性,直接输出一组边界框,通过二分图匹配(Bipartite Matching)与真实框对应,简化了检测流程,无需锚框和非极大值抑制(NMS21)后处理。

实例分割:区分个体的精细划分

实例分割结合了目标检测和语义分割的特点,不仅要识别每个像素的类别,还要区分同一类别的不同个体。Mask R-CNN22 是这一任务的里程碑式工作。它在 Faster R-CNN 的基础上增加了一个并行的分支,用于预测每个 RoI 的二值掩码(Mask)。具体来说,对于每个候选区域,网络除了输出类别和边界框外,还通过一个小型的全卷积网络预测一个 28×2828 \times 28 的掩码。得益于 RoI Align 的精确特征对齐,Mask R-CNN 能够生成高质量的实例分割结果,并可扩展至人体姿态估计等任务。

模型可视化与理解

理解深度神经网络的决策依据对于调试模型和建立信任至关重要。可视化技术主要分为两类:一是观察网络学到的特征表示,二是分析输入图像中哪些像素对决策贡献最大。

对于卷积层滤波器的可视化,可以直接观察第一层卷积核,它们通常呈现出边缘、颜色斑点等基础纹理特征。随着层数加深,特征变得抽象,难以直接解读。此时,可以通过反向传播技术生成显著性图(Saliency Maps)。具体做法是计算类别得分关于输入像素的梯度,梯度的绝对值反映了该像素对分类结果的影响程度。为了获得更清晰的图像,引导反向传播(Guided Backprop)技术仅在反向传播过程中传递正梯度,过滤掉噪声,从而突出显示与目标类别高度相关的图像区域。

类激活映射(CAM23)及其变体 Grad-CAM24 提供了另一种视角。CAM 利用全局平均池化层后的权重,将最后一层卷积特征图加权求和,生成热力图。然而,CAM 仅适用于特定结构的网络。Grad-CAM 对此进行了推广,它计算类别得分关于任意卷积层特征的梯度,并对梯度进行全局平均池化得到通道权重,再与特征图加权组合。这种方法无需修改网络结构,即可生成高分辨率的定位热力图,直观展示模型“关注”的图像区域。对于 Vision Transformer,类似的可视化方法也被应用于分析注意力图,揭示不同图像补丁之间的关联强度。

总结

从基础的图像分类到复杂的检测与分割,计算机视觉任务正朝着更精细、更全面的方向发展。Transformer 架构的引入为视觉任务带来了新的范式,而传统卷积网络在检测与分割领域的演进也展示了强大的生命力。无论是两阶段的 Faster R-CNN 还是单阶段的 YOLO,亦或是基于集合预测的 DETR,都在速度与精度之间寻找最佳平衡。同时,可视化工具的进步让我们能够更深入地洞察模型内部机制,为构建更高效、更可靠的视觉系统提供了坚实基础。未来,随着视频理解等时序任务的兴起,这些技术将进一步融合,推动人工智能在动态视觉场景中的应用。

脚注

  1. Transformer 是以自注意力机制为核心的深度学习架构,最早发表于 2017 年。

  2. ViT 是 Vision Transformer 的缩写。

  3. RNN(Recurrent Neural Network)是循环神经网络,适合序列建模。

  4. CNN(Convolutional Neural Network)是卷积神经网络,常用于图像任务。

  5. Self-Attention(自注意力)通过序列内部元素两两交互建模全局依赖。

  6. Vision Transformer(ViT)是将图像切分为 patch 序列并用 Transformer 编码的视觉模型。

  7. RMSNorm 是只基于均方根进行归一化的归一化方法。

  8. SwiGLU 是一种带门控结构的激活/前馈模块变体,常用于现代大模型。

  9. MoE(Mixture of Experts)通过稀疏路由激活部分专家网络以扩展模型容量。

  10. FCN(Fully Convolutional Network)是全卷积网络,常用于语义分割。

  11. U-Net 是经典编码器-解码器分割网络,特点是跳跃连接。

  12. R-CNN 是早期两阶段检测框架,先提候选区域再分类回归。

  13. RPN(Region Proposal Network)是用于生成候选框的区域建议网络。

  14. Fast R-CNN 在共享特征图上做 RoI 特征提取,提升了 R-CNN 效率。

  15. RoI Pooling 将候选区域映射并池化到固定尺寸特征。

  16. Faster R-CNN 是两阶段目标检测器,引入 RPN 生成候选区域。

  17. RoI Align 通过插值采样避免量化误差,提升定位精度。

  18. YOLO(You Only Look Once)是代表性的单阶段实时检测系列。

  19. SSD(Single Shot MultiBox Detector)是经典单阶段目标检测方法。

  20. DETR(DEtection TRansformer)将目标检测建模为集合预测问题。

  21. NMS(Non-Maximum Suppression)用于去除重叠冗余检测框。

  22. Mask R-CNN 在 Faster R-CNN 基础上增加实例分割分支。

  23. CAM(Class Activation Mapping)用于可视化模型关注区域。

  24. Grad-CAM 用类别梯度对特征图加权生成可解释热力图。


Thanks for reading!

CS231n Lecture 9: 图像检测、分割、可视化

Sun Mar 01 2026
3968 words · 14 minutes

评论