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。
二、考点
- ★★★ 参数量
:别漏偏置、别漏通道数。 - ★★★ 输出尺寸:卷积和池化连着算。
- ★★ 权重共享的作用;池化取最大值且无参数。
- ★★ 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(四角和中心)。