共计 1804 个字符,预计需要花费 5 分钟才能阅读完成。
背景介绍
卷积神经网络(CNN)和 Transformer 是深度学习中两种最重要的架构,分别主导了计算机视觉和自然语言处理领域。CNN 通过局部感受野和权值共享高效处理图像数据,而 Transformer 则利用自注意力机制捕捉长距离依赖关系。理解它们的结构差异对于模型选型和优化至关重要。
模型结构对比
CNN 的层级结构
- 输入层:接收原始图像数据(如 224x224x3 的张量)
- 卷积层:通过滤波器提取局部特征
- 参数说明:kernel_size=(3,3), strides=1, padding=’same’
- 激活层:引入非线性(常用 ReLU)
- 池化层:降低空间维度(最大池化或平均池化)
- 全连接层:最终分类输出
数据流向:输入→[CONV→ReLU→POOL]×N→FC→Softmax

Transformer 架构
- 输入嵌入层:将 token 转换为向量
- 位置编码:注入序列位置信息
- 编码器堆叠:
- 多头自注意力机制(查询 - 键 - 值计算)
- 前馈神经网络(FFN)
- 解码器结构:
- 带掩码的多头注意力
- 编码器 - 解码器注意力层
核心公式:$\text{Attention}(Q,K,V)=\text{softmax}(\frac{QK^T}{\sqrt{d_k}})V$
可视化实现
CNN 结构绘制(使用 Matplotlib)
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
def draw_cnn_layer(ax, layer_name, x, y, width, height, color):
ax.add_patch(Rectangle((x,y), width, height, fill=True, color=color))
ax.text(x+width/2, y+height/2, layer_name,
ha='center', va='center', color='white')
fig, ax = plt.subplots(figsize=(10,6))
# 绘制输入层
draw_cnn_layer(ax, 'Input\n224x224x3', 0.2, 1, 1, 4, 'navy')
# 绘制卷积层
draw_cnn_layer(ax, 'Conv1\n3x3/64', 1.5, 1.5, 1, 3, 'darkgreen')
# 连接箭头
ax.arrow(1.2, 3, 0.3, 0, head_width=0.2, head_length=0.1, fc='k')
plt.axis('off')
plt.show()
Transformer 结构绘制(使用 Graphviz)
from graphviz import Digraph
dot = Digraph(comment='Transformer')
# 添加节点
dot.node('A', 'Input Embedding')
dot.node('B', 'Positional Encoding')
dot.node('C', 'Multi-Head Attention')
dot.node('D', 'Add & Norm')
# 构建连接
dot.edges(['AB', 'BC', 'CD'])
dot.render('transformer.gv', view=True)
性能考量
- 计算复杂度:
- CNN:$O(k^2 \cdot c_{in} \cdot c_{out} \cdot h \cdot w)$
- Transformer:$O(n^2 \cdot d)$(n 为序列长度)
- 内存占用:
- CNN 参数量通常小于同规模 Transformer
- 自注意力机制需要存储注意力矩阵
- 任务表现:
- 图像任务:CNN 仍占优势(ViT 需要大量数据)
- NLP 任务:Transformer 全面领先
避坑指南
- 常见错误:
- CNN 中忘记在卷积后加 ReLU 激活
- Transformer 位置编码未正确实现正弦函数
- 调试技巧:
- 使用
model.summary()检查各层输出维度 - 可视化注意力权重分析模型聚焦区域
- 超参数建议:
- CNN 初始学习率设为 0.001(Adam 优化器)
- Transformer 注意力的 head 数通常设为 8
总结与思考
- 选型建议:
- 数据量少时优先选择 CNN
- 处理长序列依赖选择 Transformer
- 实践建议:
- 在自己的数据集上尝试可视化层间特征
- 混合架构(如 CNN+Transformer)可能获得更好效果
- 扩展阅读:
- 《Attention Is All You Need》原始论文
- ResNet、ViT 等衍生模型研究
正文完
发表至: 未分类
近一天内
