1. 神经网络发展历程回顾
在深入探讨循环神经网络(RNN)之前,让我们先回顾一下深度学习发展历程中几个里程碑式的神经网络架构。这些经典模型不仅在当时取得了突破性成果,它们的设计理念至今仍在影响着现代神经网络的发展。
1.1 AlexNet:深度学习的黎明
2012年,AlexNet在ImageNet竞赛中一战成名,将top-5错误率从26%降至15.3%,开启了深度学习的新时代。这个由Alex Krizhevsky等人设计的网络有几个革命性的创新:
架构细节解析:
- 输入层:接受224×224×3的RGB图像
- 卷积层配置:
- CONV1:96个11×11滤波器,步长4,无填充 → 输出55×55×96
- 最大池化层:3×3窗口,步长2 → 输出27×27×96
- CONV2:256个5×5滤波器,填充2 → 保持27×27×256
- 全连接层:
- FC6和FC7各有4096个神经元
- FC8输出1000类的分类得分
关键技术突破:
- ReLU激活函数:相比传统的sigmoid/tanh,ReLU大幅缓解了梯度消失问题,使深层网络训练成为可能
- 数据增强:随机裁剪、水平翻转等操作使训练样本更丰富
- Dropout技术:以0.5的概率随机失活神经元,有效防止过拟合
- 多GPU并行:受限于当时硬件,网络被拆分到两个GPU上训练
实际训练技巧:学习率初始设为0.01,当验证准确率停滞时手动降低10倍,配合0.9的动量和5e-4的L2正则化。这种学习率调度策略至今仍被广泛使用。
1.2 VGGNet:深度与规整之美
牛津大学Visual Geometry Group提出的VGGNet以其极简优雅的设计闻名。它的核心思想是:使用更小的卷积核(3×3)堆叠更深网络,同时保持其他超参数一致。
关键设计原则:
- 所有卷积层使用3×3滤波器,步长1,填充1(保持空间分辨率)
- 所有池化层使用2×2窗口,步长2(空间下采样)
- 每经过池化层,通道数翻倍
配置对比:
| 配置 | 层数 | Top-5错误率 |
|---|---|---|
| A | 11 | 11.2% |
| B | 13 | 10.4% |
| D | 16 | 9.3% |
| E | 19 | 7.3% |
VGGNet的规整结构使其易于理解和实现,但全连接层的大量参数(约1.38亿)也带来了计算开销。实际应用中,通常会去掉全连接层,仅保留卷积部分作为特征提取器。
1.3 GoogleNet:Inception的智慧
GoogleNet的核心创新是Inception模块,它通过并行多尺度卷积实现了高效的特征提取。与VGGNet单纯增加深度不同,GoogleNet更注重网络的"宽度"。
Inception模块设计:
plaintext复制输入
├─1×1卷积(降维)
├─1×1卷积→3×3卷积
├─1×1卷积→5×5卷积
└─3×3最大池化→1×1卷积
所有输出通道拼接
这种设计带来了三个优势:
- 参数效率:通过1×1卷积先降维,大幅减少计算量
- 多尺度感知:同时捕获局部和全局特征
- 深度监督:添加辅助分类器帮助梯度传播
性能对比:
- 参数数量:仅500万(AlexNet的1/12)
- 计算量:15亿次乘加(AlexNet的2倍)
- Top-5错误率:6.67%(AlexNet的15.4%)
1.4 ResNet:深度网络的突破
当网络深度超过20层时,传统CNN会出现性能下降的问题。ResNet通过残差连接(residual connection)解决了这一难题,使训练超过100层的网络成为可能。
残差学习原理:
传统网络直接学习目标函数H(x),而ResNet学习残差F(x)=H(x)-x,最终输出为F(x)+x。这种设计使得:
- 梯度可以直接通过恒等映射传播,缓解梯度消失
- 网络可以自动选择使用残差块或跳过连接
- 极深的网络也能稳定训练
架构演进:
| 版本 | 层数 | Top-5错误率
