COMP5318 Week 08 卷积神经网络与循环神经网络讲课总结

COMP5318 W08 考点速成:CNN、RNN 与 LSTM

用时约 12 分钟。必考:卷积层参数量、输出尺寸、权重共享、池化、RNN 隐藏状态、LSTM 的动机。对应 PE1 Q20–Q22,PE2 Q20–Q22。

一、知识点

1. CNN

flowchart LR
  I["输入<br/>28×28×1"] --> C1["Conv 32@3×3<br/>26×26×32"] --> P1["MaxPool 2×2<br/>13×13×32"]
  P1 --> C2["Conv 64@3×3<br/>11×11×64"] --> P2["MaxPool 2×2<br/>5×5×64"]
  P2 --> F["Flatten 1600"] --> O["Dense 10 + softmax"]
  • 为什么不用 MLP 处理图像:丢失空间结构、对平移敏感、参数爆炸。
  • 结构:INPUT → [CONV → ReLU → POOL] × n → FC(最后一层 softmax)。用反向传播训练。
  • 卷积:滤波器在图上滑动,对应元素相乘再求和,得到特征图。滤波器 = 特征检测器,权重由训练学出。
  • 权重共享:同一个滤波器在所有位置复用 → 参数少、对平移鲁棒。
  • 多通道:滤波器深度 = 输入通道数;各通道卷积结果相加再加偏置,得到一张 2 维特征图。

输出边长卷积层参数

( 输入边长, 滤波器边长, 填充, 步长; 个滤波器, 个输入通道, 是偏置。参数量与图像宽高无关。)

  • 步长越大特征图越小;填充补 0,大小是超参数。
  • 池化:max(取窗口最大值)/ average(取平均);没有可训练权重;作用是减少参数(2×2 减 75%)、防过拟合、提高平移鲁棒性。
  • FC 层:先 flatten,把特征组合成各类概率。
  • 经典架构:LeNet-5(2 conv、2 pool、3 FC)、AlexNet(2012,5 conv)、VGG(全用 3×3 卷积、更深)、GoogLeNet(Inception 模块、无 FC、约 500 万参数)。

2. RNN

flowchart LR
  h0(("h₀")) --> h1["h₁"] --> h2["h₂"] --> h3["h₃"]
  x1["x₁"] --> h1
  x2["x₂"] --> h2
  x3["x₃"] --> h3
  h1 --> y1["y₁"]
  h2 --> y2["y₂"]
  h3 --> y3["y₃"]
  N["每一步用同一组 W_xh、W_hh、W_hy"]
  • 处理序列(长度可变、有长距离依赖);有反馈连接(有环)→ 有记忆。
  • 简单 RNN(Elman):

  • 隐藏状态把信息带到下一步;展开后各时间步共享同一组权重(只有 3 个矩阵)。
  • 训练用 BPTT(沿时间反向传播)。
  • 形式:一对多(图像描述)、多对一(情感分析)、多对多(机器翻译、视频逐帧标注)。
  • 缺陷:梯度每步都乘 → 梯度消失(或爆炸)→ 长程依赖学不好。

3. LSTM

flowchart LR
  In["h_{t−1}, x_t"] --> F["遗忘门 f:丢什么"]
  In --> I["输入门 i + 候选 C̃:存什么"]
  In --> O["输出门 o:输出什么"]
  Cp["C_{t−1}"] -->|"× f"| C["C_t = f⊙C_{t−1} + i⊙C̃"]
  F --> C
  I --> C
  C -->|"tanh × o"| H["h_t"]
  O --> H
  • 三个门(sigmoid,0 = 关、1 = 开):遗忘门(丢什么)、输入门(存什么)、输出门(输出什么);外加 1 个 tanh 候选层,共 4 个全连接层。
  • 两种状态:长期 、短期 。

  • 是加法更新,梯度不用反复乘 → 有助于长程依赖,但不保证完美记忆。其他:GRU。

二、考点

  1. ★★★ 参数量 :别漏偏置、别漏通道数。
  2. ★★★ 输出尺寸:卷积和池化连着算。
  3. ★★ 权重共享的作用;池化取最大值且无参数。
  4. ★★ RNN 靠隐藏状态传递信息、权重跨时间共享;LSTM 用门控缓解梯度消失。

三、题目

Q1(PE1 Q22) 卷积层有 4 个 3×3 滤波器,输入 2 个通道,每个滤波器跨越两个通道并有 1 个偏置。可训练参数多少?

每个滤波器 ,共 76。72 是忘了偏置,40 是漏了通道。

Q2(PE2 Q22) 18×18 输入 → 3×3 卷积(步长 1,无填充)→ 2×2 最大池化(步长 2)。最终空间尺寸?

卷积 ;池化 → 8×8。

Q3(PE1 Q20) 一个学到的滤波器能在图像很多位置检测同一种边缘,靠什么设计用很少的参数做到?

滤波器权重在各空间位置共享。

Q4(PE2 Q20) 标准 2×2 最大池化从每个窗口传出什么?

窗口内的最大激活值;池化本身没有可训练权重。

Q5(PE1 Q21) 简单 RNN 中,什么把较早时间步的信息带到下一步?

循环的隐藏状态。循环权重在各时间步共享,不是每个位置一套。

Q6(PE2 Q21) 某些长序列任务为什么用 LSTM 而不用简单 RNN?

门控的状态更新调节存、留、输出什么,有助于长时间保持信息和梯度传递(不保证完美记忆)。

Q7(自拟) 7×7 图像、3×3 滤波器、无填充,步长 1 和步长 2 的输出尺寸?

步长 1: 5×5;步长 2: 3×3。

Q8(自拟) MNIST 灰度图上 Conv2D(32, 3×3) 和接着的 Conv2D(64, 3×3) 各有多少参数?

第一层 320;第二层输入 32 通道, 18,496。

Q9(自拟) 3×3 滤波器 作用在图像块 上,输出?

对应相乘求和: 4(四角和中心)。