共计 1736 个字符,预计需要花费 5 分钟才能阅读完成。
传统机器学习的局限性
在深度学习兴起之前,传统的机器学习方法在处理复杂数据时面临诸多挑战:

- 图像处理:手工设计特征(如 SIFT、HOG)难以捕捉图像的层次化信息
- 序列数据:传统时序模型(如 HMM)无法建模长距离依赖关系
- 生成任务:基于概率图模型的方法难以生成高质量复杂数据
这些局限性推动了深度学习架构的演进。下面我们按时间顺序分析三大经典架构。
1. CNN(卷积神经网络)
核心原理
CNN 通过 局部连接 和权值共享 高效处理网格结构数据:
graph LR
A[输入图像] --> B[卷积层 Convolution]
B --> C[激活层 ReLU]
C --> D[池化层 Pooling]
D --> E[全连接层 FC]
优缺点
| 优点 | 缺点 |
|---|---|
| 平移不变性 | 难以处理时序数据 |
| 参数共享降低计算量 | 全连接层参数量大 |
| 层次化特征提取 | 需要大量标注数据 |
经典结构(LeNet-5)
INPUT -> [CONV -> RELU -> POOL]x2 -> FC -> OUTPUT
PyTorch 实现
import torch.nn as nn
class SimpleCNN(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 6, 5) # 输入通道, 输出通道, 卷积核
self.pool = nn.MaxPool2d(2, 2)
self.fc1 = nn.Linear(16*5*5, 120)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = torch.flatten(x, 1)
x = F.relu(self.fc1(x))
return x
2. RNN/LSTM(循环神经网络)
核心原理
通过 循环连接 处理序列数据,LSTM 引入门控机制解决梯度消失:
graph LR
A[输入 x_t] --> B[遗忘门 f_t]
A --> C[输入门 i_t]
A --> D[输出门 o_t]
B & C --> E[细胞状态更新]
E --> D --> F[输出 h_t]
优缺点
| 优点 | 缺点 |
|---|---|
| 处理变长序列 | 训练速度慢 |
| 记忆历史信息 | 并行化困难 |
| 门控机制缓解梯度消失 | 长期依赖仍有限 |
PyTorch 实现
class SimpleLSTM(nn.Module):
def __init__(self, input_size, hidden_size):
super().__init__()
self.lstm = nn.LSTM(input_size, hidden_size)
def forward(self, x):
# x.shape: (seq_len, batch, input_size)
output, (h_n, c_n) = self.lstm(x)
return output[-1] # 返回最后时间步输出
3. GAN(生成对抗网络)
核心原理
通过 生成器 G 和 判别器 D 的对抗训练:
Generator(z) -> Fake Data
\
--> Discriminator -> Real/Fake
Real Data ------------/
优缺点
| 优点 | 缺点 |
|---|---|
| 无需显式密度估计 | 训练不稳定 |
| 生成高质量样本 | 模式崩溃问题 |
| 可生成新样本 | 评估指标复杂 |
PyTorch 实现
# 生成器
G = nn.Sequential(nn.Linear(noise_dim, 256),
nn.LeakyReLU(0.2),
nn.Linear(256, 784),
nn.Tanh() # 输出[-1,1]
)
# 判别器
D = nn.Sequential(nn.Linear(784, 256),
nn.LeakyReLU(0.2),
nn.Linear(256, 1),
nn.Sigmoid())
架构演进时间线
- 2012 年 CNN 爆发(AlexNet):解决图像空间特征提取
- 2014 年 LSTM 流行:解决 CNN 无法处理序列的问题
- 2016 年 GAN 兴起:弥补判别式模型无法生成的缺陷
常见问题与解决方案
- CNN 过拟合:添加 Dropout 层、数据增强
- RNN 梯度爆炸:梯度裁剪(gradient clipping)
- GAN 模式崩溃:改用 Wasserstein GAN 架构
延伸思考
Transformer 如何结合这些架构的优点?
- 自注意力机制:类似 CNN 的多层次特征提取
- 位置编码:替代 RNN 的时序处理能力
- 生成式预训练:继承 GAN 的创造能力
希望这篇对比能帮助初学者理解深度学习架构的演进脉络!
正文完
发表至: 未分类
近两天内
