第七讲 · 深度神经网络:CNN 与 Transformer

Views: --

上半部分默认特征已经准备好了,再讨论怎样分类;从这一讲开始,模型要直接面对图像像素,同时学习特征和决策规则。这正是经典模式识别与现代机器视觉的分界线。

一、为什么不能直接使用全连接网络

一张 100×100100\times100 的 RGB 图像有 30,00030,000 个输入。如果第一隐藏层有 1000 个神经元,仅这一层就需要约三千万个权重。分辨率继续提高,参数量会迅速失控。

更关键的是,全连接网络忽略了图像的三个结构事实:

  1. 一个局部特征通常只需要看附近像素;
  2. 同一种特征可能出现在不同位置;
  3. 适度降低分辨率后,物体类别通常不会改变。

CNN 分别用局部连接、权重共享和下采样利用这三个事实。

二、卷积层究竟在做什么

卷积核是一个很小的参数矩阵。它在图像上滑动,每到一个位置就与对应局部区域做内积,得到特征图中的一个值。深度学习框架通常实际计算的是不翻转卷积核的互相关,但习惯上仍称为卷积。

对二维输入 XX 和卷积核 KK,输出可以写为

Y(i,j)=mnX(i+m,j+n)K(m,n).Y(i,j)=\sum_m\sum_n X(i+m,j+n)K(m,n).

卷积核里的数字不是人工规定的边缘模板,而是训练中通过反向传播学出来的网络参数。

1. 多通道与多卷积核

RGB 输入有 3 个通道,因此一个卷积核也必须在深度方向覆盖 3 个通道。一个卷积核产生一张输出特征图,使用 CoutC_{out} 个卷积核就会得到 CoutC_{out} 个输出通道。

2. 步长与填充

设输入大小为 H×WH\times W,卷积核大小为 Kh×KwK_h\times K_w,填充为 PP,步长为 SS,则输出高度为

Hout=H+2PKhS+1.H_{out}=\left\lfloor\frac{H+2P-K_h}{S}\right\rfloor+1.

宽度同理。步长越大,卷积核跳得越远;零填充可以控制边缘信息和输出尺寸。

3. 感受野

第一层卷积只看很小的局部区域,堆叠多层后,一个高层神经元间接依赖的原图范围会越来越大。这个范围称为感受野。因此浅层容易学到边缘、纹理,高层逐渐组合出部件和完整物体。

典型 CNN 从卷积和采样逐步得到全局分类结果

三、池化、激活与完整 CNN

最大池化在每个小窗口中保留最大值,平均池化则保留平均值。它们都能降低特征图尺寸、扩大后续层的有效感受野,并让特征对小幅位置变化更稳健。

一个典型分类 CNN 可以写成:

图像[卷积ReLU池化]×n全连接层类别概率.\text{图像} \rightarrow [\text{卷积}\rightarrow\text{ReLU}\rightarrow\text{池化}]\times n \rightarrow \text{全连接层} \rightarrow \text{类别概率}.
  • 卷积层负责提取局部到全局的层次特征;
  • ReLU f(x)=max(0,x)f(x)=\max(0,x) 提供非线性;
  • 池化负责下采样;
  • 全连接层汇总全局信息并完成分类。

此外,课件还涉及两种卷积变体:

  • 转置卷积:把低分辨率特征映射到高分辨率,常用于分割和生成模型的上采样;
  • 空洞卷积:在卷积核元素之间插入空隙,在不显著增加参数的情况下扩大感受野。

四、Transformer 为什么从序列问题开始

Transformer 最初解决序列到序列任务。在它之前,RNN 按时间顺序更新隐藏状态:

ht=fW(ht1,xt).h_t=f_W(h_{t-1},x_t).

同一组参数在每个时间步复用。它能处理变长序列,却有两个明显问题:

  • 后一步必须等待前一步,难以并行;
  • 远距离信息要穿过很长的状态链,容易遗忘或梯度衰减。

LSTM 用门控结构缓解长期依赖,但仍然保留顺序计算。Seq2Seq 又把整段输入压进一个固定长度上下文向量,长序列时容易形成信息瓶颈。

五、Attention:不要只看最后一个状态

Attention 的想法是:生成每个输出时,动态查看所有输入位置,而不是只依赖单个压缩向量。

其基本过程是:

  1. 用当前查询与每个输入表示计算匹配分数;
  2. 对分数做 softmax,得到和为 1 的注意力权重;
  3. 用权重对所有 Value 加权求和。

因此,不同输出可以关注输入中的不同部分。

六、Self-Attention 的 Q、K、V

Self-Attention 让同一序列内部的 token 彼此查找信息。给定输入矩阵 XX

Q=XWQ,K=XWK,V=XWV.Q=XW_Q,\qquad K=XW_K,\qquad V=XW_V.

缩放点积注意力为

Attention(Q,K,V)=softmax(QKTdk)V.\operatorname{Attention}(Q,K,V) =\operatorname{softmax}\left(\frac{QK^{\mathsf T}}{\sqrt{d_k}}\right)V.

可以把三者分别理解成:

  • Query:我正在寻找什么;
  • Key:我能够用什么身份被匹配;
  • Value:匹配成功后真正取走的信息。

除以 dk\sqrt{d_k} 是为了防止维度较大时点积绝对值过大,使 softmax 过早饱和。

七、多头注意力与位置信息

单个注意力头只能在一个表示子空间中建立关系。多头注意力并行计算多组 Q/K/VQ/K/V,再拼接结果:

MultiHead(Q,K,V)=Concat(head1,,headh)WO.\operatorname{MultiHead}(Q,K,V) =\operatorname{Concat}(head_1,\dots,head_h)W_O.

不同头可以分别学习局部邻近、长距离依赖或不同语义关系。

Self-Attention 本身对输入顺序不敏感,因此必须额外加入位置编码。Transformer Block 通常由多头自注意力、前馈网络、残差连接和 LayerNorm 构成。

八、CNN 与 Transformer 的区别

维度CNNTransformer
先验局部连接、权重共享较少结构先验
信息范围通过堆层逐渐扩大感受野单层即可建立全局关系
计算特点对图像非常高效标准注意力随 token 数量平方增长
数据需求中小数据集也容易训练通常更依赖大规模预训练
表示方式层次化特征图token 序列及其关系

它们不是简单的替代关系:现代视觉模型经常同时借用 CNN 的局部性和 Transformer 的全局建模能力。

本讲速记

  • CNN 的三根支柱:局部连接、权重共享、下采样。
  • 多层卷积通过扩大感受野,把低级局部特征组合成高级语义。
  • Attention 是对 Value 的加权求和,权重来自 Query 与 Key 的匹配。
  • Self-Attention 的核心公式是 softmax(QKT/dk)V\operatorname{softmax}(QK^{\mathsf T}/\sqrt{d_k})V
  • Transformer 能并行并直接建立长距离关系,但需要位置编码,标准注意力计算量较大。

评论