深度学习:手撕 RNN(2)-RNN 的常见模型架构

本文首次发表于知乎,欢迎关注作者。

。有了 这个 RNN 模块后,就像搭积木一样,以 RNN 为基本单元,根据不同的任务或者需求,可以构建不同的模型架构。本节介绍的所有结构,在实际使用时均可以用 RNN 的变体 LSTM,GRU 等作为基本单元,方便起见,本小节我们以 RNN 为基本单元进行说明。我们来认识下 RNN 一些常见的模型架构。

1. bidirectional RNN(双向 RNN)

当我们可以获得一条完整的输入序列时,即每个时刻的输入数据都可以同时获得。我们不仅可以利用 RNN 从左到右的进行计算,同时也可以从右到左进行计算。如图 1-1 所示,用 2 个不同 Cell 分别捕捉来自不同方向的 memory(信息)。

先对图片和公式中的符号集中说明,需要时方便查看:

2. Deep RNN(多层 RNN)

前文我们介绍的 RNN,是数据在时间维度上的变换。不论时间维度多长,只有一个 RNN 模块, 即只有一组待学习参数 (W,U),属于单层 RNN。deep RNN 也叫做多层 RNN,顾名思义它由多个 RNN 级联组成,是输入数据在空间维度上变换。如图 1-2, 这是 L 层的 RNN 架构。每一层是一个单独的 RNN,共有 L 个 RNN。

3. Many to One(多对一)

在 RNN 的结构中,并不是每个时刻都要输出,根据任务需求的不同,我们可以自行决定,什么时候输出。比如我们在做情感分类任务时,一句话有多个文字,但只在最后时刻有个输出,表示 positive 或者 negtive。"多对一"的结构可以完成这个任务,如图 1-3 所示, 有多个输入,最后时刻的隐状态 <math xmlns="http://www.w3.org/1998/Math/MathML"> h T h_T </math>hT,包含了整句话的信息,然后将 <math xmlns="http://www.w3.org/1998/Math/MathML"> h T h_T </math>hT经过变换后输出这句话的情感状态。需要额外注意,图 1-3 只是一个结构示意图,图中蓝框不仅仅可以代表单个 RNN,有时候也可以代表 biRNN 模块或者 DeepRNN 模块。

4. One to Many (一对多)

顾名思义"One to Many"是只有一个时刻的输入,具有多个时刻输出的结构。如图 1-4 所示,比如我们要描绘一张图片的内容时,用一个 CNN 模型将图片映射为一个高维表示,记作 x1 并作为 RNN 的输入,然后不断输出对图片的描述。

5. Many to Many (多对多)

从 Encode 和 Decode 的架构看,"Many to Many"有两种不同的结构。一种是 Encode 和 Decode 分别用不同的模块,即参数不一样;另外一种是 Encode 和 Decode 共用同一个模块,即共用一组参数。如图 1-5 是 Encode 和 Decode 不同模块的结构,常用于翻译任务中。这种结构可以看成是"Manyto One"结构和"One to Many"结构的组合。

如图 1-6 是 Encode 和 Decode 属于相同模块的结构, 常用于"Language Modeling"。

6. 结语

本文以基础的 RNN 模块为基本单元,先介绍双向 RNN 和 DeepRNN 的原理,然后介绍一些应用更加灵活和广泛的架构,如"Many to One","One to Many","Many to Many"。下一节将要从直观上理解 RNN 的两个问题:信息形变和梯度消失/爆炸。文中难免存在理解不正确,或者描述不清的地方。欢迎留言讨论。

7. 团队介绍

「三翼鸟数字化技术平台-智慧设计团队」 依托实体建模技术与人工智能技术打造面向家电的智能设计平台,为海尔特色的成套家电和智慧场景提供可视可触的虚拟现实体验。智慧设计团队提供全链路设计,涵盖概念化设计、深化设计、智能仿真、快速报价、模拟施工、快速出图、交易交付、设备检修等关键环节,为全屋家电设计提供一站式解决方案。

相关推荐
编程小白_正在努力中8 小时前
神经网络深度解析:从神经元到深度学习的进化之路
人工智能·深度学习·神经网络·机器学习
无风听海8 小时前
神经网络之经验风险最小化
人工智能·深度学习·神经网络
H***997610 小时前
月之暗面公开强化学习训练加速方法:训练速度暴涨97%,长尾延迟狂降93%
人工智能·深度学习·机器学习
FL162386312912 小时前
无人机视角航拍河道漂浮物垃圾识别分割数据集labelme格式256张1类别
深度学习
青瓷程序设计14 小时前
昆虫识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
人工智能·python·深度学习
小殊小殊14 小时前
DeepSeek为什么这么慢?
人工智能·深度学习
Coding茶水间16 小时前
基于深度学习的路面坑洞检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
哥布林学者17 小时前
吴恩达深度学习课程三: 结构化机器学习项目 第二周:误差分析与学习方法(一)误差分析与快速迭代
深度学习·ai
CoovallyAIHub17 小时前
如何在手机上轻松识别多种鸟类?我们发现了更简单的秘密……
深度学习·算法·计算机视觉
CoovallyAIHub18 小时前
抛弃LLM!MIT用纯视觉方法破解ARC难题,性能接近人类水平
深度学习·算法·计算机视觉