CNN 与 RNN:为图像和序列而生的两种经典网络
理解卷积神经网络如何用局部连接与权值共享高效处理网格数据,循环神经网络如何用隐状态处理序列,以及 LSTM 用门控解决长程记忆,最后看清它们的局限正是 Transformer 登场的原因
- 理解卷积、池化、感受野与权值共享,知道 CNN 为什么适合图像
- 理解 RNN 的隐状态递推与它处理序列的方式
- 说清 LSTM/GRU 用门控缓解长程依赖与梯度消失的思路
- 理解 CNN/RNN 的归纳偏置与局限,明白注意力机制为何后来居上
CNN:不让每个像素都连全部神经元
用全连接网络处理一张普通图片,参数量会大到不可训练,还丢掉了「相邻像素才有局部关系」的先验。卷积神经网络(CNN)换了个思路:用一个小卷积核在图像上滑动,每次只看一个局部窗口,并在整张图上共享同一套核权重。
卷积层
小窗口滑动提取局部特征(边缘→纹理→部件),权值共享、参数极少
激活
ReLU 引入非线性
池化层
下采样缩小尺寸、扩大感受野、增强平移鲁棒性
重复堆叠后展平
深层感受野覆盖全图,末端接全连接做分类
感受野指某一层的一个神经元「看得到」原图多大区域。浅层只看到局部边缘,越深层通过层层卷积与池化,感受野越大,能识别由边缘组合成的纹理、部件乃至整体。权值共享让「在左上角学到的边缘检测器」在右下角同样可用,这既减参数又带来平移不变性。
RNN:给网络加「记忆」处理序列
文本、语音、时间序列的长度可变且有先后顺序。循环神经网络(RNN)在每个时间步读入一个输入,同时维护一个隐状态 h:它把「上一步的隐状态」和「当前输入」结合,算出新的隐状态再传给下一步。于是隐状态像一条贯穿时间的记忆,理论上能携带前文信息。
t₁ 输入 + 初始隐状态 → h₁
t₂ 输入 + h₁ → h₂
t₃ 输入 + h₂ → h₃(已含前两步信息)
… 隐状态沿时间递推
但标准 RNN 的记忆很短:梯度沿时间反向传播时同样要连乘,序列一长就梯度消失,难以关联句首和句尾;而且它必须严格按顺序一步一步算,无法并行,训练很慢。
LSTM/GRU:用「门」控制记什么、忘什么
长短期记忆网络(LSTM)给隐状态增加了细胞状态和三个门:遗忘门决定丢弃哪些旧信息、输入门决定写入哪些新信息、输出门决定对外暴露什么;GRU 是它的简化版。门是可学习的 0~1 开关,让梯度有一条相对畅通的「记忆主干道」,显著缓解长程依赖问题,曾长期是机器翻译、语音的主力。
局部连接 + 权值共享
平移不变、层级感受野
可高度并行
代表:图像、二维网格数据
隐状态沿时间递推
门控缓解长程依赖
必须串行、难并行、超长仍衰减
代表(历史):文本、语音、时序
RNN 串行无法并行、长程信息要经过很多步传递仍会衰减;CNN 捕捉远距离关系要堆很多层。注意力机制让序列中任意两个位置直接交互、路径最短,且整句可并行计算。下一个模块就进入 Transformer——它不是凭空出现,正是为了解决这里指出的两个硬伤。
CNN 用「同一卷积核在整张图上滑动、共享权重」主要带来的好处是?
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
先查数据:标签是否正确、有没有特征和标签泄漏、是否做了归一化;再查损失与学习率:学习率太大震荡、太小几乎不动;接着看批量大小和优化器,最后才怀疑模型结构。一个极好用的冒烟测试是:用极少量样本训练,看损失能不能被压到接近零——能,说明整条代码链路是通的;不能,问题一定在实现里,先别谈调参。