RNN 的分类介绍
1 课程概览
本课讲解 RNN 的分类,需背诵。分类有两个角度:①按输入输出角度划分(N vs N、N vs 1、1 vs N、N vs M);②按内部结构划分(传统 RNN、LSTM、Bi-LSTM、GRU、Bi-GRU)。其中 N vs M 是最常见的类型。
2 核心概念与定义
- N vs N:输入 N 个,输出 N 个(一一对应)。
- N vs 1:输入 N 个,输出 1 个(情感分类、意图识别)。
- 1 vs N:输入 1 个,输出 N 个(看图说话)。
- N vs M:输入 N 个,输出 M 个(翻译、文本生成、摘要)。
- LSTM(Long Short-Term Memory):长短期记忆网络,含遗忘门、输入门、细胞状态、输出门。
- Bi-LSTM(Bidirectional LSTM):双向 LSTM,从前往后和从后往前各做一次,结果合并。
- GRU(Gated Recurrent Unit):门控循环单元,含重置门、更新门,简化版 LSTM。
3 模型与算法详解
分类一:按输入输出角度
| 类型 | 输入 | 输出 | 应用场景 |
|---|---|---|---|
| N vs N | N 个 | N 个 | 写诗、写对联、固定场景表达 |
| N vs 1 | N 个 | 1 个 | 情感分类、意图识别 |
| 1 vs N | 1 个 | N 个 | 看图说话 |
| N vs M | N 个 | M 个 | 翻译、语音转换、文本生成、摘要 |
N vs M 是最常见的类型,如 Seq2Seq 英译法案例。
分类二:按内部结构
| 模型 | 结构 | 特点 |
|---|---|---|
| 传统 RNN | 词嵌入层 + 循环网络层 + 输出层 | 结构简单 |
| LSTM | 遗忘门 + 输入门 + 细胞状态 + 输出门 | 解决长依赖问题 |
| Bi-LSTM | 双向 LSTM | 从前往后 + 从后往前,结果合并 |
| GRU | 重置门 + 更新门 | 简化版 LSTM,门更少 |
| Bi-GRU | 双向 GRU | 双向处理 |
LSTM 门结构
| 门 | 作用 |
|---|---|
| 遗忘门 | 决定丢弃哪些信息 |
| 输入门 | 决定添加哪些新信息 |
| 细胞状态 | 记忆单元,传递信息 |
| 输出门 | 决定输出哪些信息 |
Bi-LSTM 双向处理
正向:我爱你 → LSTM → 结果1
反向:你爱我 → LSTM → 结果2
合并:结果1 + 结果2 → 最终结果
- 优势:更好地理解语义
- 劣势:运算量增加
GRU 门结构
| 门 | 作用 |
|---|---|
| 重置门 | 控制如何将新输入与之前的记忆合并 |
| 更新门 | 决定保留多少之前的信息 |
GRU 是 LSTM 的简化版,门更少,效率更高。
4 数学原理与推导
本课为分类介绍,无数学推导。
5 代码示例
本课为概念介绍,具体代码实现见后续课程。
import torch.nn as nn
# 传统 RNN
rnn = nn.RNN(input_size=100, hidden_size=20)
# LSTM
lstm = nn.LSTM(input_size=100, hidden_size=20)
# GRU
gru = nn.GRU(input_size=100, hidden_size=20)
# Bi-LSTM(双向)
bilstm = nn.LSTM(input_size=100, hidden_size=20, bidirectional=True)
6 重难点与易错提醒
- ❗重点:RNN 分类需背诵——按输入输出(4种)和按内部结构(5种)。
- ❗重点:N vs M 是最常见的类型,如翻译、文本生成、摘要。
- ⚠️易错:Bi-LSTM 不是两个 LSTM,而是一个 LSTM 从两个方向处理。
- 💡深入理解:GRU 是 LSTM 的简化版,门更少,效率更高。
- 💡深入理解:双向处理能更好地理解语义,但运算量增加。
7 课堂问答精选
Q1:RNN 按输入输出分为哪几种?
A:四种:①N vs N(写诗、对联);②N vs 1(情感分类、意图识别);③1 vs N(看图说话);④N vs M(翻译、文本生成、摘要)。其中 N vs M 最常见。
Q2:RNN 按内部结构分为哪几种?
A:五种:①传统 RNN;②LSTM(遗忘门、输入门、细胞状态、输出门);③Bi-LSTM(双向 LSTM);④GRU(重置门、更新门);⑤Bi-GRU(双向 GRU)。
Q3:Bi-LSTM 是什么?
A:双向 LSTM,从前往后做一次 LSTM,从后往前做一次 LSTM,结果合并。优势是更好地理解语义,劣势是运算量增加。
Q4:GRU 和 LSTM 有什么区别?
A:GRU 是 LSTM 的简化版,只有重置门和更新门(LSTM 有 4 个门)。GRU 在保证效率的情况下减少门的操作,效率更高。
8 本课小结
- 按输入输出:N vs N、N vs 1、1 vs N、N vs M(最常见)。
- 按内部结构:传统 RNN、LSTM、Bi-LSTM、GRU、Bi-GRU。
- LSTM:遗忘门 + 输入门 + 细胞状态 + 输出门。
- GRU:重置门 + 更新门(简化版 LSTM)。
- 双向:从前往后 + 从后往前,结果合并。
9 延伸思考
- LSTM 如何解决 RNN 的梯度消失问题?
- Bi-LSTM 相比 LSTM 有什么优势?