本章目录

把一张图片摊平成长向量后,当然可以交给 MLP。但图像变大时,全连接参数会迅速增加,而且图像中的局部结构与重复模式没有被显式利用。卷积神经网络(convolutional neural network,CNN)通过局部连接和共享卷积核提取特征,再进行分类。本章最重要的计算是三件事:输出有多大、参数有多少、卷积与池化具体算出了什么。[NN4 pp.2–10]

1. 为什么图像不适合只靠大规模全连接

一张 的 RGB 图像有 个输入数值。如果第一隐藏层有 个全连接神经元,则连接权重有 个,再加 个偏置。换成 的图片,第一层就有 个连接权重。课件这组数字只计算连接权重;若题目问“含偏置的可学习参数”,答案应再加 。[NN4 pp.2–4]

CNN 的关键不是把每一个像素都连到每一个神经元,而是用小窗口观察局部区域,并把同一套卷积核权重用于不同位置。一个滤波器(filter / kernel)在每个位置产生一个响应;全部位置的响应组成一张特征图(feature map),多个滤波器形成多个输出通道。这里的通道深度和网络有多少层是不同概念。[NN4 pp.5–11]

2. 卷积计算需要记住的五个量

对本课讨论的普通二维卷积,记输入空间尺寸为 ,输入通道数为 ;卷积核空间尺寸为 ;每一侧对称补零为 ;步幅为 ;滤波器数为 。每个滤波器覆盖全部输入通道,因此单个滤波器尺寸为 。[NN4 pp.8、11–14]

无空洞、按标准有效窗口计算时:

完整输出为 。课件用方形情形写作 ;上式补出向下取整,表示只计算窗口完全落入补零后输入的起始位置。若题目另外规定输出对齐或 padding 方式,应按题目约定计算。[NN4 pp.12–14;向下取整为标准窗口计数的展开]

步幅 stride 控制每次移动多少格;padding 在边缘补零。对于奇数核、步幅 ,取 可以保持空间尺寸。例如 。但不能简单记成“有 padding 就一定尺寸不变”,步幅及补零数量都必须一起检查。[NN4 pp.12–14;保持尺寸条件由公式推出]

含每个输出通道一个偏置时,参数数目为:

参数数目不乘输出位置数量,因为同一滤波器在各位置共享权重;计算量则仍与输出位置数量相关。“参数少”与“计算量小”有关,但不是同一个计数问题。[基于 NN4 pp.8–11 的共享滤波器结构推导]

算例1:尺寸、偏置和共享权重一次算清(教学例)

输入为 ,使用 16 个 滤波器,步幅 、补零 。

第一步,算空间大小:

第二步,输出通道等于滤波器数量,故完整输出为 。

第三步,一个滤波器有 个连接权重,再加一个偏置;16 个滤波器共有 个参数。虽然输出含 个数值,参数仍是 个,不能把两者混淆。[基于 NN4 pp.8–14 的教学例]

若改为不补零、步幅 ,输出空间为 ,完整输出为 ,参数仍为 。改变滑动位置数量不会改变核里的参数数量。[同例变式]

3. 卷积核真正做了什么

在每个位置,把窗口和滤波器对应元素相乘再求和,多通道时还需要对通道求和,最后加偏置。下面采用课件所描述的“滑动点积”约定,即不翻转卷积核;数学上常称互相关(cross-correlation),深度学习中通常也称卷积。若一道信号处理题明确要求数学卷积,则应先检查是否需要翻核,不能默默混用。[NN4 pp.8–11;术语区分为运算约定说明]

算例2:手算一张特征图(教学例)

输入与卷积核如下,步幅 、无补零、偏置 :

输出尺寸为 。左上角窗口的响应为 ;向右移动一格,响应为 ;再向右,响应为 。逐行滑动得到:

若随后应用 ReLU,,则:

卷积先产生带正负号的线性响应,ReLU 再把负值置零。二者是不同步骤,不能在点积尚未求和时把各个负乘积提前删掉。[卷积依据 NN4 pp.8–11;ReLU 依据 NN2 p.11;数值为教学例]

4. 池化:压缩空间,不混合通道

池化(pooling)在小窗口内取最大值、平均值或总和,用于下采样。常见最大池化、平均池化本身没有要训练的权重,通常逐通道独立操作,不改变通道数量。窗口可以重叠,也可以不重叠;是否重叠取决于窗口大小和步幅。[NN4 pp.15–16]

算例3:同一输入的 max 与 average pooling

给定一张特征图:

使用 窗口、步幅 、不补零。左上窗口为 ,最大值是 ,平均值是 ;右上窗口为 ,最大值 、平均值 。对下方两个窗口同样计算:

两者都由 缩小到 ,但保留的信息不同:max 关注窗口内最强响应,average 关注平均水平。不能在题目没有说明时随意互换。[NN4 pp.15–16;矩阵为教学例]

5. 串起整张网络,再算参数

flatten 只是把特征图排成向量;全连接层再用矩阵进行映射。如果池化后尺寸为 ,flatten 后长度为 ,连接到 个输出的含偏置参数数为 。因此 CNN 并不自动保证整个网络参数很少,末端的大型全连接层仍可能占主要部分。[NN4 pp.18–19、26;参数计数为推导]

算例4:一条可完整核对的分类流水线(教学例)

采用以下结构:

层 配置 输出形状 含偏置参数
输入 RGB 图像 0
卷积1 ,16核, 1216
池化1 max, 0
卷积2 ,32核, 4640
池化2 max, 0
flatten 展平 0
全连接 10 个输出 20490

第二卷积层每个核跨越 16 个输入通道,故参数为 。最后全连接层为 。总参数为 。可以看到,最后一层已经占总参数的大部分。此例只用于尺寸和参数练习,不是对该模型分类准确率的保证。[基于 NN4 pp.8–19 的教学设计]

课程还介绍 LeNet、AlexNet、VGG 和 ResNet。复习时应抓住每种结构的代表性思想:LeNet 展示卷积与下采样交替;AlexNet 讨论 ReLU、max pooling 与 dropout;VGG 使用重复的小卷积核;ResNet 引入恒等捷径连接。经典模型有多个版本,参数数目不应脱离课件所指版本来背。[NN4 pp.20–29]

普通 max/average pooling 没有可学习参数,但 NN4 p.21 对历史 LeNet 下采样层的描述包含可训练缩放与偏置;这与本章算例采用的普通 max pooling 不是同一运算。遇到历史架构计参数题,应以题目具体定义为准。[NN4 pp.15–16、21]

6. CNN 仍然用梯度训练

卷积核也是参数,训练仍依赖梯度下降。NN4 以小批量平均梯度、动量和权重衰减说明 CNN 的更新:

这里 是当前小批量平均梯度, 为动量系数, 为衰减系数。课件 AlexNet 示例使用批量大小 、、;它们是课件案例配置,并非所有 CNN 的固定标准。[NN4 p.30]

例如某个标量权重为 ,上次增量为 ,本批平均梯度为 ,学习率 ,则:

更新后 。虽然当前梯度项要求减小权重,累积动量仍可使这一小步整体为正;判断更新方向必须看全部项。[依据 NN4 p.30 的教学例]

7. 迁移学习:转移什么,何时转移,怎样转移

迁移学习(transfer learning)把源任务中学到的表示用于目标任务。CNN 的较早层常提取边缘、颜色等较通用特征,较后层往往更贴近源任务类别。固定特征提取(fixed feature extractor)冻结骨干网络,只训练新的分类器;微调(fine-tuning)除了替换分类头,也更新部分或全部预训练层。[NN4 pp.31–36]

课件用目标数据量与源目标相似性组成四种情况:

目标数据 与源任务关系 课内建议的起点 核心理由
少 相似 冻结特征网络,训练新分类器 特征较相关,控制过拟合
少 差异较大 尝试较早层特征,再训练分类器 后层可能过于源任务专用
多 相似 可微调更多层或全网络 数据较充足,允许适应目标任务
多 差异较大 比较预训练初始化后微调与从头训练 数据支持更大幅度调整

这是 NN4 给出的经验起点,不是四条必然最优的定理。是否发生负迁移(negative transfer),应在目标任务的独立评价数据上比较;不能只因“用了预训练模型”就断言效果更好。[NN4 pp.33–39]

一个具体的参数练习:若冻结后的特征向量长度是 ,目标任务有五类,新线性分类头需要 个参数。若只训练这个头,可训练参数数目是 ,但模型内部仍保存着冻结骨干的参数;“冻结”不表示这些参数从模型中消失。[基于 NN4 p.35 固定特征提取方案的教学例]

8. 与课内练习及考试复习的连接

当前给定的 Tutorial-NN1–3 分别围绕分类概念、阈值网络和感知机训练,没有独立 CNN tutorial。不能把本章自设矩阵误写成原 tutorial 题。本章对应的真实课内计算练习是 NN4 pp.21–23 的 LeNet 尺寸链:

再到 84 和 10 维全连接输出。读者应能逐层解释每次变化。[NN4 pp.21–23;TN1–TN3]

复习时可把题目分成四类能力:手算滑动点积与池化;逐层追踪形状;区分连接权重、偏置、输出元素与可训练参数;根据数据量与任务相似性解释迁移策略。是否为某一年的正式考题,以本系列考试章节对原卷的逐题核对为准;本章不据课件存在就推断“必考”。[依据 NN4 课程内容整理的复习路径]

9. 自测与答案

题1。 输入 ,8 个 核,步幅1、不补零,输出与参数数目是多少?

答案: 输出 ;参数 。

题2。 输入 ,使用 的普通 max pooling,输出与参数是多少?

答案: 输出 ,可学习参数为0。

题3。 输入通道从3增加到6,卷积核空间尺寸与滤波器数不变,输出通道会加倍吗?

答案: 不会,输出通道仍等于滤波器数;每个核的输入深度加倍,连接权重数加倍,偏置数量不变。

题4。 五分类头接收512维冻结特征,为什么“只训练2565个参数”不等于“整个网络只有2565个参数”?

答案: 冻结骨干的参数仍用于前向计算,只是不在该阶段更新。

本章资料

  • NN4:EE4285-NN4.pdf,CNN 与迁移学习主资料。
  • NN2:EE4285-NN2.pdf,ReLU 定义见 PDF p.11。
  • TN1–TN3:Tutorial-NN1.pdf、Tutorial-NN2.pdf、Tutorial-NN3.pdf,用于界定课内练习范围。