用中文传话游戏理解 RNN

简介:

循环神经网络(RNN)是人工神经网络中非常流行的一个版本,其可以很好地处理序列数据类型。该数据类型指的是将一组数据点以特定顺序排列,从而使相关的数据点一个挨着一个,具体的例子有:股票市场价格、音频和视频数据、DNA 序列、传感器数据、自然语言文本等等。

为了直观地了解 RNN 是如何工作的,假设我们正在玩一个很受欢迎的儿童游戏——中文传话。该游戏的目的是最后一个人能准确预测出句子中所漏掉的词语,比如「The brown dog has four _____」。

用中文传话游戏理解 RNN

中文传话游戏

玩家们需要排成一队,并且根据句子中词语的排列,每个人都会得到其中的一个词语,比如玩家 1 得到词语「the」,玩家 2 得到词语「brown」,玩家 3 得到词语「dog」,以此类推。首先,队伍中的第一个人把他听到的词语悄悄地告诉队伍中站在他身后的玩家。然后这个玩家将这个词语和自己的词语一起悄悄地告诉他身后的人。接下来,整个队伍不断重复这个过程直到最后一个玩家。最后的玩家需要预测出所漏掉的词语,并大声地把这个消息告诉整个集体。

显而易见的是,最后一个玩家可以准确地猜出漏掉的词语是「legs」。这是因为前一个玩家告诉了他这个句子的前面部分:「The brown dog has four」,所以他能够通过该语境推导出这个词语。

上文说明了 RNN 的基本原理。通过提取序列之前的信息,并结合序列当前的输入,该网络能够预测出序列的下一个输出。

RNN 的展开

由上文可知,RNN 能够通过对整个序列重复同样的过程,从而做出预测。左下图显示了循环网络的基本结构。它同时接收序列数据输入向量(x)和隐藏状态信息(a),然后使用二者去预测序列数据的输出。

用中文传话游戏理解 RNN

为了正确地将系统工作方式可视化,我们通常把 RNN 展开成与序列数据长度一致的一连串重复的单元或称之为时间步(如右上图所示)。比如我们需要处理的序列是一个有三个词语的句子时,那么其将被展开成有三个时间步的 RNN 网络,每一个时间步处理一个词语。

RNN 的设计架构

序列数据的输入和输出有各种各样的形式和长度。比如在情感分析任务中,输入通常是一串文本,而期望的输出是一个整数(1-5 的评分范围)或是单个文本(好的、坏的,积极的、消极的、中性的)。然而在语音文本任务中,输入则是声波中的一串声音信号,其输出则是一串对应的文本。

正是由于这些差异,当需要处理序列任务时,我们会针对性地设计 RNN 的输入和输出结构。一些常见的架构类型如下:

1. 多对多架构(同样的序列长度)

这是最基本的 RNN 结构,在每个时间步中输入序列的数量与输出序列的数量是一致的。一个使用该架构的应用实例是文本生成器:根据句子中前面的词语,预测下一个最有可能的词语。

用中文传话游戏理解 RNN

采用多对多 RNN 架构的文本生成器

如上图所示,文本生成器的输入是一串词语,输出则是由预测得到的下一个词所组成的一串词语:「brown dog has four legs」。

2. 多对多架构(不同序列长度)

当需要处理输入和输出序列的数量不一致时,我们便可采用多对多架构的另一种版本。而机器翻译任务就是这样的一个应用实例:输入是原文的一串词语(比如法文),而输出是译文的一串词语(比如英文)。这个架构有两个不同的模块:编码器和解码器。前者接受输入的句子,将其映射成内部状态表征,然后将其传给后者,以供其生成输出的句子。

用中文传话游戏理解 RNN

采用多对多 RNN 架构的机器翻译

在此架构中,当编码器将全部的输入序列处理完后,解码器才开始对输出的序列进行预测。这与前面提到的相同序列长度架构完全不同,在那个架构中,其每收到一个输入序列对象后,马上开始对每一个输出序列对象进行预测。

3. 多对一架构

在此架构中,RNN 在每个时间步都有一串输入,但只有在最后一个时间步输出一个单一值。情感分析任务正是此情景下的应用实例:任务的目的是对输入的语句进行分类,判断其是否有正面或负面的情感。

用中文传话游戏理解 RNN

采用多对一 RNN 架构的情感分析任务

在上图的情感分析任务中,RNN 并不是在每个时间步都有输出,而是在读完整串词语后,仅在最后一个时间步输出一个单一值:「positive」。

4. 一对多架构

此处的 RNN 在第一个时间步接受一个单一值,然后在剩余的时间步中输出一串值。基于此架构的应用通常会取得每个时间步的预测输出,并把它传递给下一层,作为该层的输入值。一个应用实例是图像标注:RNN 接受一幅图像作为输入,然后输出描述图像中所发生事情的一串词语。

用中文传话游戏理解 RNN

采用一对多架构的图像标注

上图显示了输入是一个女性跑步的表情符号,而输出则是预测得到的一串词语:「woman in blue vest running」。

结论

在这篇文章中,我们简单介绍了循环网络以及其不同类型的架构,包括相应的应用实例。


原文发布时间为:2018-05-31

本文来自云栖社区合作伙伴“雷锋网”,了解相关信息可以关注“雷锋网”。

相关文章
|
8月前
|
存储 JSON 算法
云器Lakehouse基于增量计算+实时湖仓构建小红书实验数仓生产新范式
小红书联合云器科技,基于增量计算与Iceberg数据湖构建近实时实验数仓:分钟级延迟、资源降耗64%、数据一致性达99%+,支持秒级OLAP查询与灵活扩维,实现流批一体、成本与时效双赢。
405 0
|
4月前
|
人工智能 安全 JavaScript
Claude Code动态工作流全解:自定义Harness、子智能体编排与落地实战指南
2026年Claude Code推出动态工作流(Dynamic Workflows)核心能力,支持工具在运行阶段自主生成专属执行框架Harness,针对不同任务定制子智能体协同逻辑,解决默认单智能体框架上下文污染、结论失真、中途终止等痛点。传统单对话执行模式仅适合简单编码任务,面对大型代码迁移、深度安全审计、多维度商业调研、批量简历筛选等复杂工作时极易出现智能体惰性、目标漂移、主观偏差三类问题;动态工作流通过多独立子智能体隔离上下文、对抗校验、并行拆解任务,大幅提升复杂任务完成质量,同时支持工作流脚本保存、复用、分发,适用于研发、调研、运营等多类工作场景。本文从底层原理、动静工作流差异、六大核
526 1
|
5月前
|
存储 缓存 人工智能
GLM 5.2自托管深度实战:vLLM与SGLang部署方案及成本对比
GLM 5.2作为开源大模型中的高性能代表,凭借7440亿总参数、400亿激活参数与100万tokens上下文窗口,在长文本推理、智能体任务与复杂代码生成场景表现突出。其MIT开源协议支持完全自托管,可实现数据隐私可控、成本灵活优化,但超大参数量带来极高硬件门槛,需根据量化版本匹配对应硬件,并选择vLLM、SGLang等推理框架搭建服务。本文从硬件选型、vLLM与SGLang部署、成本盈亏测算三大核心维度,提供零门槛自托管全流程实战指南,覆盖企业生产与个人调试场景,帮助精准落地与成本控制。
931 0
|
12月前
|
存储 druid BI
从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效
基于 Apache Doris 替换了早期架构中 Kylin、Druid、Clickhouse、Elasticsearch、HBase 等引擎,统一了实时分析架构,并广泛应用于广告系统、日志平台和会员报表分析等典型场景,导入性能提升 3~30 倍,机器成本整体降低 55%、部分场景下高达 85%,每年节省数百万成本,综合效能提升 3~7 倍等显著收益,本文将详尽介绍基于 Doris 架构升级及在这些场景中的应用实践。
899 0
从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效
|
10月前
|
数据采集 人工智能 并行计算
别再分不清显存和内存了!一文讲透AI算力的核心秘密
博主maoku用“厨房分工”妙喻,通俗解析内存(RAM)与显存(VRAM)的本质区别:内存是CPU的通用备料台,显存是GPU的专属猛火灶台。二者容量、带宽、用途截然不同——AI报错“CUDA out of memory”实为显存不足,加内存无效。文章厘清原理、对比参数、指导配置,助你科学选卡、高效开发。
4266 10
|
9月前
|
算法 机器人 数据处理
【路径规划】基于A-star、PRM、RRT、人工势场法实现机器人路径规划算法附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、核心痛点:机器人路径规划的核心需求与算法适配场景 机器人在室内导航、工业巡检、仓储搬运等场景中,路径规划需解决三大核心问题: 避障可靠性:精准规避静态 / 动态障碍物,无碰撞风险; 路径最优性:最短路径(能耗最低)、平滑路径(运动成本低); 实时性:复杂环境下快速生成路径
660 5
|
12月前
|
XML Android开发 数据格式
Android Jetpack Compose 从入门到精通
Jetpack Compose 是 Google 推出的现代化 Android 声明式 UI 框架,基于 Kotlin,简化传统 XML 开发。本教程系统讲解其核心概念:可组合函数、状态管理、布局系统、Modifier 修饰符、列表滚动、主题样式、导航与动画等,助你高效构建响应式、高性能应用界面,掌握从入门到高级的最佳实践与技巧。
1028 0
|
数据可视化 流计算 Python
Python创意爱心代码大全:从入门到高级的7种实现方式
本文分享了7种用Python实现爱心效果的方法,从简单的字符画到复杂的3D动画,涵盖多种技术和库。内容包括:基础字符爱心(一行代码实现)、Turtle动态绘图、Matplotlib数学函数绘图、3D旋转爱心、Pygame跳动动画、ASCII艺术终端显示以及Tkinter交互式GUI应用。每种方法各具特色,适合不同技术水平的读者学习和实践,是表达创意与心意的绝佳工具。
11744 0
|
存储 关系型数据库 MySQL
【面试】Mysql主键索引普通索引索引和唯一索引的区别是什么?
【面试】Mysql主键索引普通索引索引和唯一索引的区别是什么?
1897 0
【面试】Mysql主键索引普通索引索引和唯一索引的区别是什么?
|
运维 网络安全 数据安全/隐私保护
Nextcloud一键部署:快速搭建如企业钉钉或飞书的团队协作平台
Nextcloud Hub 是一款来自德国的完全开源的云上托管内容协作平台。团队内成员可以通过移动、桌面和 Web 界面访问、共享和编辑文档,聊天和参与视频通话以及管理邮件、日历和项目。目前,Nextcloud的产品定位是在保障数据安全下的完整协作平台,功能类似国内的企业钉钉或飞书。Nextcloud官网:[https://nextcloud.com/](https://nextcloud.com/) 。
Nextcloud一键部署:快速搭建如企业钉钉或飞书的团队协作平台

热门文章

最新文章