为什么 Transformer 这么强?——对比 CNN 和 RNN(Version B)

📚 《从零到一造大脑:AI架构入门之旅》专栏

专栏定位:面向中学生、大学生和 AI 初学者的科普专栏,用大白话和生活化比喻带你从零理解人工智能
本系列共 42 篇,分为八大模块:

  • 📖 模块一【AI 基础概念】(3 篇):AI/ML/DL 关系、学习方式、深度之谜
  • 🧠 模块二【神经网络入门】(4 篇):神经元、权重、激活函数、MLP
  • 🏗️ 模块三【深度学习核心】(6 篇):损失函数、梯度下降、反向传播、过拟合、Batch/Epoch/LR
  • 🎯 模块四【注意力机制】(5 篇):从 Attention 到 Transformer
  • 🔬 模块五【NCT 与 CATS-NET 案例】(8 篇):真实架构演进全记录
  • 🔄 模块六【架构融合方法】(6 篇):如何设计混合架构
  • ⚙️ 模块七【参数调优实战】(6 篇):学习率、正则化、超参数搜索
  • 🚀 模块八【综合应用展望】(4 篇):未来趋势与职业规划
    本文是模块四第 5 篇,将带你对比三种主流架构。 >

👨‍💻 作者简介:NeuroConscious Research Team,一群热爱 AI 科普的研究者,专注于神经科学启发的 AI架构设计与可解释性研究。理念:“再复杂的概念,也能用大白话讲清楚”。

💻 项目地址https://github.com/wyg5208/nct.git
🌐 官网地址https://neuroconscious.link
📝 作者 CSDNhttps://blog.csdn.net/yweng18
📦 NCT PyPIhttps://pypi.org/project/neuroconscious-transformer/
欢迎 Star⭐、Fork🍴、贡献代码🤝


📌 本文核心比喻:三种交通方式——高速列车(CNN)、步行(RNN)、传送门(Transformer)
⏱️ 阅读时间:约 20 分钟
🎯 学习目标:理解三种架构的优劣,知道什么时候用什么


📝 文章摘要

本文用"三种交通方式"的比喻,对比 CNN、RNN 和 Transformer。CNN 像高速列车,沿固定路线快速前进;RNN 像步行,一步一步走,慢但灵活;Transformer 像传送门,瞬间到达任意位置。文章通过详细的对比表格和可视化,展示三种架构在并行性、长距离依赖、参数量等方面的差异。适合零基础上手,20 分钟建立架构选择的全局视角。


🎯 你需要先了解

阅读本文前,建议你:

  • ✅ 已读过前四篇(注意力系列)

  • ✅ 了解 CNN 和 RNN 的基本概念

  • ✅ 有过旅行的经历

如果还没读前文,[点这里返回](17-Transformer全家福 编码器与解码器_version_B.md)


📖 正文

一、三种交通方式的比喻

在这里插入图片描述

🚄 交通比喻

CNN = 高速列车

  • 固定路线,沿着轨道跑

  • 速度快,但只能看窗外风景

  • 适合图像处理(空间局部性)

RNN = 步行

  • 一步一步走,沿途都能看

  • 慢,但灵活

  • 适合序列处理(时间顺序)

Transformer = 传送门

  • 瞬间到达任意位置

  • 快,而且自由

  • 适合各种任务(通用性)


二、CNN:局部视野的专家

在这里插入图片描述

2.1 CNN 的工作方式

图像处理流程:



输入图像 [H, W, 3]

    │

    ↓ 卷积核扫描

┌─────────────────────┐

│  □ □ □ □ □ □ □ □  │  卷积核一次只看

│  □ □ ■ ■ ■ □ □ □  │  局部区域(如 3×3)

│  □ □ ■ ■ ■ □ □ □  │

│  □ □ ■ ■ ■ □ □ □  │

│  □ □ □ □ □ □ □ □  │

└─────────────────────┘

    │

    ↓ 逐层抽象

    │

特征图 [H', W', C']

2.2 CNN 的特点

┌────────────────────────────────────────────────────────────┐

│                       CNN 特点                              │

├────────────────────────────────────────────────────────────┤

│                                                             │

│  ✅ 优势:                                                   │

│     • 局部特征提取强(边缘、纹理)                            │

│     • 参数共享,参数量小                                     │

│     • 并行计算效率高                                         │

│     • 平移不变性                                            │

│                                                             │

│  ❌ 局限:                                                   │

│     • 只能看局部,全局依赖需要堆多层                          │

│     • 对序列建模不够好                                       │

│     • 不适合变长序列                                         │

│                                                             │

│  🎯 适用场景:                                               │

│     • 图像分类                                              │

│     • 目标检测                                              │

│     • 图像分割                                              │

│                                                             │

└────────────────────────────────────────────────────────────┘


三、RNN:序列处理的老将

在这里插入图片描述

3.1 RNN 的工作方式

序列处理流程:



输入序列 [x1, x2, x3, x4, x5]

    │

    ↓ 逐步处理

    │

h1 ← h0 + x1

    │

h2 ← h1 + x2

    │

h3 ← h2 + x3

    │

h4 ← h3 + x4

    │

h5 ← h4 + x5

    │

    ↓

输出 [h1, h2, h3, h4, h5]



特点:必须等前一步完成才能计算下一步

3.2 RNN 的特点

┌────────────────────────────────────────────────────────────┐

│                       RNN 特点                              │

├────────────────────────────────────────────────────────────┤

│                                                             │

│  ✅ 优势:                                                   │

│     • 序列建模能力强                                         │

│     • 能处理变长序列                                         │

│     • 参数量小                                              │

│     • 天然适合时序数据                                       │

│                                                             │

│  ❌ 局限:                                                   │

│     • 顺序计算,无法并行                                     │

│     • 长距离依赖困难(梯度消失)                              │

│     • 训练慢                                                │

│                                                             │

│  🎯 适用场景:                                               │

│     • 语音识别                                              │

│     • 时间序列预测                                          │

│     • 小规模 NLP                                            │

│                                                             │

└────────────────────────────────────────────────────────────┘


四、Transformer:通用架构之王

在这里插入图片描述

4.1 Transformer 的工作方式

Transformer 处理流程:



输入序列 [x1, x2, x3, x4, x5]

    │

    ↓ 并行处理

    │

┌─────────────────────────────────────────┐

│                                         │

│    x1 ←→ x2 ←→ x3 ←→ x4 ←→ x5          │

│     ↕      ↕      ↕      ↕      ↕       │

│    自注意力:所有位置同时交互            │

│                                         │

└─────────────────────────────────────────┘

    │

    ↓

输出 [y1, y2, y3, y4, y5]



特点:所有位置同时计算,可以"看到"所有其他位置

4.2 Transformer 的特点

┌────────────────────────────────────────────────────────────┐

│                    Transformer 特点                         │

├────────────────────────────────────────────────────────────┤

│                                                             │

│  ✅ 优势:                                                   │

│     • 完全并行计算                                          │

│     • 长距离依赖直接相连                                    │

│     • 灵活性强,可处理各种任务                               │

│     • 可扩展到大模型                                        │

│                                                             │

│  ❌ 局限:                                                   │

│     • 参数量大                                              │

│     • 需要大量数据                                          │

│     • 计算复杂度 O(n²)                                      │

│     • 对位置敏感(需要位置编码)                              │

│                                                             │

│  🎯 适用场景:                                               │

│     • 几乎所有 NLP 任务                                     │

│     • 图像处理(ViT)                                       │

│     • 多模态任务                                            │

│     • 大模型(GPT、BERT)                                   │

│                                                             │

└────────────────────────────────────────────────────────────┘


五、三者对比

在这里插入图片描述

5.1 全面对比表

| 特性 | CNN | RNN | Transformer |

|------|-----|-----|-------------|

| 并行性 | 高 | 低 | 高 |

| 长距离依赖 | 弱 | 中 | 强 |

| 局部特征 | 强 | 中 | 中 |

| 参数量 | 小 | 小 | 大 |

| 计算复杂度 | O(n) | O(n) | O(n²) |

| 数据需求 | 中 | 小 | 大 |

| 可扩展性 | 中 | 低 | 高 |

| 训练速度 | 快 | 慢 | 快 |

| 典型应用 | 图像 | 序列 | 通用 |

5.2 架构图对比

CNN:局部连接

┌───────────────────────────────────┐

│  Input                            │

│  ┌─┬─┬─┬─┬─┬─┬─┬─┐              │

│  │ │ │ │ │ │ │ │ │              │

│  └─┴─┴─┴─┴─┴─┴─┴─┘              │

│      ╲ │ │ ╱                     │

│       ┌───┐                      │

│       │Conv│  ← 局部感受野       │

│       └───┘                      │

└───────────────────────────────────┘



RNN:顺序连接

┌───────────────────────────────────┐

│  x1 → x2 → x3 → x4 → x5          │

│  ↓    ↓    ↓    ↓    ↓            │

│  h1 → h2 → h3 → h4 → h5          │

│  ←←←←←←←←←←←←←←←←←←              │

│       信息顺序传递                │

└───────────────────────────────────┘



Transformer:全连接

┌───────────────────────────────────┐

│  x1 ←→ x2 ←→ x3 ←→ x4 ←→ x5      │

│   ↕    ↕    ↕    ↕    ↕          │

│  所有位置直接相连                 │

│  ┌─────────────────────┐         │

│  │ Self-Attention      │         │

│  └─────────────────────┘         │

└───────────────────────────────────┘


六、如何选择架构?

6.1 决策树

你的任务是什么?

    │

    ├─ 图像相关?

    │     ├─ 分类/检测 → CNN(首选)

    │     └─ 全局理解 → ViT(Transformer 变体)

    │

    ├─ 序列相关?

    │     ├─ 数据少?→ RNN

    │     ├─ 数据多?→ Transformer

    │     └─ 实时性要求高?→ RNN(流水线)

    │

    └─ 通用/大模型?

          └─ Transformer(首选)

6.2 具体建议

┌────────────────────────────────────────────────────────────┐

│                     架构选择建议                             │

├────────────────────────────────────────────────────────────┤

│                                                             │

│  📸 图像任务:                                               │

│     • 分类:ResNet、EfficientNet(CNN)                     │

│     • 分割:U-Net(CNN + Skip)                             │

│     • 全局理解:ViT(Transformer)                          │

│                                                             │

│  📝 文本任务:                                               │

│     • 分类:BERT(Transformer)                             │

│     • 生成:GPT(Transformer)                              │

│     • 翻译:T5(Transformer)                               │

│                                                             │

│  🔊 语音任务:                                               │

│     • 识别:Conformer(CNN + Transformer)                  │

│     • 合成:Transformer                                     │

│                                                             │

│  ⏱️ 时间序列:                                               │

│     • 短序列:LSTM/GRU(RNN 变体)                          │

│     • 长序列:Transformer                                   │

│                                                             │

└────────────────────────────────────────────────────────────┘


七、Transformer 为什么统治 AI?

7.1 关键因素

2017-2024:Transformer 统治 AI 的原因



1️⃣ 并行计算

   → GPU 充分利用

   → 训练速度快

   → 可以训练大模型



2️⃣ 长距离依赖

   → 直接相连

   → 没有信息衰减

   → 效果好



3️⃣ 通用性

   → 同一架构处理多种任务

   → NLP、CV、语音、多模态

   → 减少研究成本



4️⃣ 可扩展性

   → 参数可以从几亿扩展到几千亿

   → GPT-3:1750 亿参数

   → GPT-4:更大



5️⃣ 生态成熟

   → Hugging Face

   → PyTorch

   → 大量预训练模型

7.2 发展时间线

2017:Transformer 提出

      └→ 《Attention Is All You Need》



2018:BERT 预训练模型

      └→ 刷新 NLP 记录



2019:GPT-2

      └→ 展示生成能力



2020:GPT-3

      └→ 大模型时代开启



2021:ViT

      └→ Transformer 进军 CV



2022:ChatGPT

      └→ AI 出圈



2023:GPT-4、LLaMA

      └→ 百花齐放



2024:多模态大模型

      └→ GPT-4V、Gemini


⚠️ 常见误区

⚠️ 误区警示区

❌ 误区 1:“Transformer 完全取代了 CNN/RNN”

真相

CNN 在图像领域仍是主流,RNN 在某些场景仍有价值。

例子


实时语音识别:

- RNN 可以流水线处理

- Transformer 需要等整个序列



边缘设备:

- CNN 参数少,适合部署

- Transformer 太大


❌ 误区 2:“Transformer 万能”

真相

Transformer 需要大量数据和算力,不是所有场景都适合。

不适合


- 小数据集

- 边缘设备

- 实时性要求极高

- 显存有限


💡 一句话总结

🎯 核心结论

CNN 擅长局部特征,RNN 擅长序列,Transformer 擅长全局。

根据任务、数据、算力选择合适的架构。

记忆口诀


CNN 局部跑得快,

RNN 序列记得牢。

Transformer 最强大,

数据算力不能少。


✍️ 课后作业

选择题(每题 10 分)

1. 哪种架构并行性最好?

A. CNN

B. RNN

C. Transformer ✅

D. 都一样

2. 处理图像分类任务首选?

A. RNN

B. CNN ✅

C. Transformer

D. 决策树

3. Transformer 的计算复杂度是?

A. O(n)

B. O(n log n)

C. O(n²) ✅

D. O(1)

4. RNN 的主要问题是?

A. 参数太多

B. 无法并行计算 ✅

C. 只能处理图像

D. 不需要训练

5. GPT 使用什么架构?

A. CNN

B. RNN

C. Transformer Decoder ✅

D. Transformer Encoder


📝 下一篇预告

🚀 下一篇文章

题目:期中总结:从神经元到 GPT

我们会学到:

    • 前四模块知识串联
    • 核心概念回顾
    • 迷你 GPT 实战

    • 📌 本文属《从零到一造大脑:AI架构入门之旅》专栏第四模块第五篇

      作者:NeuroConscious Research Team

      更新时间:2026 年 3 月

      版本号:V1.0-B(图文并茂版)

    Logo

    AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

    更多推荐