第五部分(下):全卷积网络与语义分割

在掌握了边界框级别的目标检测之后,课程进一步深入到了像素级别的图像理解任务——语义分割。以下是该模块的核心内容总结:

一、 语义分割简介

  • 任务目标: 判定图像中每一个像素所属的类别,使同类目标的像素拥有相同的标签(即像素级分类)。

  • 特性: 语义分割只区分目标的“类别”(例如:哪些像素属于猫,哪些属于狗),而不区分同类别的具体“个体”(如果不把相互重叠的两只猫区分为两个不同实体,就是语义分割;如果需要区分,则属于“实例分割”的任务范畴)。

二、 全卷积网络(FCN, Fully Convolutional Networks)核心思想

FCN 是深度学习在语义分割领域的开山鼻祖模型:

  • 全连接层的“卷积化”: 传统的 CNN(如 VGG、AlexNet)在提取特征后,通常会将其展平(Flatten)并接入全连接层输出一个分类向量。FCN 创新性地摒弃了全连接层,将其全部替换为卷积层(通常是 $1 \times 1$ 卷积)

  • 保留空间结构: 去除全连接层带来两大优势:

    1. 网络可以接受任意大小的图像输入,不再受限于固定尺寸。

    2. 彻底保留了图像原本的二维空间维度信息,使得网络可以输出一张“热力图(Heatmap)”,从而实现像素级的端到端预测。

三、 上采样与转置卷积

由于在卷积神经网络前向传播的过程中经历了多次池化(Pooling)操作,深层特征图的空间尺寸被大幅压缩(例如变成原图的 1/32)。

  • 上采样(Upsampling): 为了将压缩后的特征图恢复到与原输入图像完全相同的尺寸以进行像素级比对,FCN 引入了上采样操作。

  • 转置卷积(Transposed Convolution / Deconvolution): FCN 没有使用简单的双线性插值进行上采样,而是采用了强大的转置卷积。相比于传统插值,转置卷积包含可学习的参数,它会随整个网络一同训练更新,从而能够更加智能、精细地恢复出图像的像素细节和结构。

四、 跳跃连接(Skip Connections)

直接对最深层、尺寸最小的特征图进行大幅度的上采样(如直接放大32倍),会导致分割出的目标边缘十分模糊,因为随着网络层数变深,细粒度的空间细节信息已严重丢失。

  • 融合特征: 为了解决这一问题,FCN 引入了跳跃连接结构。它将浅层特征(细节保留好但语义分类信息弱)深层特征(语义分类极强但空间细节丢失)进行逐像素的相加融合。

  • 演化结构: 借由跳跃连接,FCN 衍生出了三种经典的结构:

    • FCN-32s: 直接对最深层特征进行 32 倍上采样(效果最粗糙)。

    • FCN-16s: 结合了上一层池化后的特征进行融合,再进行 16 倍上采样。

    • FCN-8s: 进一步结合了更浅一层池化后的特征进行融合。FCN-8s 结合了最丰富的浅层细节信息,因此对于物体边缘轮廓的分割表现最为优异。

五、 语义分割的评价指标:mIoU

  • 交并比(IoU,Intersection over Union): 在分割任务中,IoU 是衡量模型好坏的基础指标。它指的是模型预测出的分割区域与真实人工标注区域(Ground Truth)的交集面积除以并集面积

  • mIoU(平均交并比): 实际任务通常有多个类别,对图像中所有类别的 IoU 值求平均即为 mIoU。mIoU 是当前衡量图像分割算法优劣最核心、最普适的标准。

第六部分:Transformer 模型

随着自然语言处理(NLP)和深度学习的不断发展,传统的 RNN 和 CNN 在处理长序列数据和并行计算方面遇到了瓶颈。本周课程我们学习了具有划时代意义的 Transformer 模型(源自 Google 2017 年的著名论文《Attention Is All You Need》),它彻底抛弃了循环和卷积结构,完全基于注意力机制来实现序列到序列(Seq2Seq)的转换。

一、 Transformer 概述

  • 诞生背景: 传统的 RNN(如 LSTM)在处理序列时必须按时间步顺序进行,无法并行计算,效率低下;且在处理超长序列时依然存在遗忘问题。

  • 核心思想: “注意力机制就是你需要的一切”。Transformer 完全依赖自注意力机制(Self-Attention)来捕捉输入序列中各个词汇之间的全局依赖关系。

  • 优势: 1. 具备极强的并行计算能力,大幅缩短了训练时间。 2. 能够更好地捕捉长距离依赖信息。

二、 输入部分(Input)

由于 Transformer 抛弃了 RNN 的顺序结构,网络本身无法感知词汇在句子中的位置顺序。为了解决这个问题,输入层做了如下设计:

  1. Word Embedding(词嵌入): 将输入的词汇映射成连续的稠密向量表示。

  2. Positional Encoding(位置编码): * 为了让模型理解序列的顺序信息,必须在输入的词嵌入向量中加入位置信息。

    通常利用不同频率的正弦和余弦函数来生成位置向量,并将其与词嵌入向量相加,作为模型最终的输入。

三、 编码器部分(Encoder)

编码器由 $N$(通常为 6)个完全相同的层(Layer)堆叠而成。每一层主要包含两个子层:

  1. Multi-Head Self-Attention(多头自注意力机制):

    • 核心是通过 Q(Query,查询)、K(Key,键)、V(Value,值) 三个矩阵来计算注意力分数。

    • 多头(Multi-Head): 将 Q、K、V 映射到多个不同的子空间中分别计算注意力,然后再拼接起来。这使得模型能够从不同的表示子空间里联合关注信息(例如同时关注语法和语义)。

  2. Feed Forward Network(前馈神经网络):

    • 对每个位置的向量进行两次线性变换,并在中间使用 ReLU 激活函数(即逐位置的前馈网络)。

  3. Add & Norm(残差连接与层归一化):

    • 残差连接(Add): 将输入直接与子层的输出相加,缓解了深层网络的梯度消失问题。

    • 层归一化(Layer Normalization): 在隐藏层的维度上进行归一化,加速模型收敛并提升稳定性。

    • 每个子层的输出公式均为:LayerNorm(x + Sublayer(x))

四、 解码器部分(Decoder)

解码器同样由 $N$ 个相同的层堆叠而成,但比编码器多了一个关键的子层:

  1. Masked Multi-Head Attention(掩码多头自注意力):

    • 与编码器不同,解码器在预测第 $t$ 个词时,不应该“看到” $t$ 时刻之后的词汇。因此加入了掩码(Mask)机制,将未来时刻的注意力分数设为极小值(负无穷),确保预测仅依赖已知的输出。

  2. Encoder-Decoder Attention(交叉注意力机制):

    • 这是连接编码器和解码器的桥梁。

    • 此时的 Q 来自解码器的上一层输出,而 K 和 V 则来自编码器的最终输出。这使得解码器在生成每个词时,都能“关注”到原输入序列中最相关的部分。

  3. 前馈神经网络与 Add & Norm: 与编码器结构一致。

五、 输出与网络训练(Output & Training)

  1. 输出部分:

    • 解码器的最终输出会经过一个线性变换层(Linear)和一个 Softmax 层

    • Softmax 将输出转换为一个概率分布,概率最大的词汇即为模型预测的下一个词。

  2. 训练条件与评估结果:

    • 硬件支持: 论文原模型在 8 个 NVIDIA P100 GPU 上进行了训练。基础模型训练了 12 小时,大模型(Big)训练了 3.5 天。

    • 评价指标: 采用 BLEU 分数(机器翻译的常用指标,衡量机器翻译结果与人工参考译文的相似度)。

    • 卓越表现: 在 WMT 2014 英德(EN-DE)和英法(EN-FR)翻译任务上,Transformer (Big) 分别取得了 28.4 和 41.0 的 BLEU 分数,不仅刷新了之前的最高记录,其训练成本(FLOPs)也远低于先前的 GNMT 等模型。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐