【机器学习300问】118、循环神经网络(RNN)的基本结构是怎样的?

将讲解循环神经网络RNN之前,我先抛出几个疑问:为什么发明循环神经网络?它的出现背景是怎样的?这些问题可以帮助我们更好的去理解RNN。下面我来逐一解答。

一、循环神经网络诞生的背景

循环神经网络(RNN)的诞生主要是为了解决传统神经网络在处理序列数据时的局限性,尤其是它们无法有效捕获和利用时间序列或序列数据中的顺序依赖信息。

(1)传统神经网络的局限性

① 独立性假设

前馈神经网络假设输入数据之间相互独立,这与实际情况下许多数据集的自然属性相悖。在自然语言和视频流等应用中,每个元素都与时间上下文紧密相关,网络需要捕捉到这些信息才能进行有效的特征提取和模式识别

② 信息传递的单向性

前馈网络的信息传递是单向的,从输入层流向输出层,中间无环路。这使得信息只能按照一个方向流动,限制了信息反馈和动态更新,不利于处理序列数据中常见的长距离依赖问题。

③ 缺乏记忆能力

前馈网络缺乏"记忆"能力,无法存储先前的输入信息,无法共享在不同时间学习到的特征,这对于时序数据的处理是一个重大缺陷。例如,当预测一句话中的下一个单词时,网络需要"记住"前面的语境。

(2)序列数据的需求增加

随着自然语言处理、语音识别、音乐生成、视频分析等领域的发展,对能够理解和生成序列数据的模型需求日益增长。这些领域的任务往往需要模型能够理解和生成基于时间或位置依赖的输出。

① 自然语言处理

语言是由词汇按特定顺序组成的,词序影响语义解析。自然语言处理任务,如机器翻译和情感分析,需要模型理解文本中词与词之间的时间先后关系。

② 语音识别与音乐生成

语音信号具有明显的时间序列特性,识别或生成语音需要模型具备处理时序信息的能力。音乐生成亦是如此,音符的顺序直接影响旋律的流畅度和和谐度。

③ 视频分析

视频数据可以看作是一系列连续的图像帧,各帧之间存在强时间关联。视频分析任务,如动作识别,需要网络能够处理这种时间序列信息。

二、循环神经网络的基本结构

那么循环神经网络是如何通过结构设计来解决上述传统前馈神经网络遇到的问题呢?下面让我们看看单层RNN的结构设计

(1)单层RNN的结构设计

① 解释RNN处理时间序列

② 结构设计

与前馈神经网络不同,RNN中的每个时间步的神经元不仅接受当前时间步的输入数据,还接受上一时间步的隐藏状态信息。这个隐藏状态可以视为网络对序列到目前为止所见信息的一种"记忆"。每次迭代都基于前一时间步的输出和当前的输入。

有时候也把RNN的网络结构折叠起来表示:
RNN循环结构的两种画法
RNN单元的解释

这种图太抽象,难以理解。可以借助动图来说明。

③ 符号解释

带符号的RNN循环结构

上图中前一个时间步得到的激活值会传递给下一个时间步。在RNN中想要预测不仅用到了还用到了之前的。但如图所示RNN在预测没有用到其之后的这是它的局限性(可以通过双向循环神经网络解决,之后写文章介绍)。

通常初始化激活值设置成零向量。其他激活值和预测值的公式如上所示。

(2)不同类型的循环神经网络

循环神经网络(RNN)因其灵活性能够适应不同类型的任务,具体可以分为以下几种常见的模式。

① 一对多

音乐生成是一个典型的一对多场景。这类任务中,网络通常从一个初始输入(如一个起始音符或音乐风格的编码)开始,然后生成一个序列输出(即后续的音符序列),形成完整的音乐作品。RNN在此过程中能够捕捉到序列内部的依赖关系,生成连贯的音乐流。

② 多对一

情感分析是多对一任务的代表。在这样的任务里,网络接收一个序列输入(如一句话或一段文本),并通过整个序列的处理,最终产生单个输出值(例如,这段文本的情感分类标签,如正面、负面或中立)。网络学习在整个输入序列中提取特征,用于做出整体判断。

③ 多对多(

命名实体识别(NER)是多对多任务的实例。在命名实体识别中,输入是一个文本序列,输出是对文本中每个单词或标记的分类(如人名、地点、组织等)。

④ 多对多(

机器翻译是多对多任务的实例。在机器翻译任务中,输入是一个语言的句子序列,输出是另一个语言的等价翻译序列,两个序列通常长度不一,要求模型既能理解输入序列的结构和语义,又能生成相应长度和语义的输出序列。

相关推荐
m0_6924571017 小时前
缺陷检测-药品成品率检测
人工智能·缺陷检测
下海fallsea18 小时前
韩国零食正在占领俄罗斯
大数据·人工智能
dulu~dulu18 小时前
机器学习试题总结
人工智能·决策树·机器学习·支持向量机·学习笔记·线性回归·集成学习
Coder_Boy_18 小时前
基于SpringAI的企业级智能教学考试:基础资源构建模块
人工智能·spring boot
北邮刘老师18 小时前
【智能体互联协议解析】AIP/ACPs如何实现“自主互联,协商互通,独立自治”
网络·人工智能·大模型·智能体·智能体互联网
Coder个人博客18 小时前
Transformers分词器模块深度分析
人工智能·自动驾驶·transformer
简简单单OnlineZuozuo18 小时前
视觉模型的偏见和捷径测试:来自真实世界实验的实用测试套件
人工智能·深度学习·安全·图像识别·banana
Coder_Boy_18 小时前
基于SpringAI的企业级智能教学考试平台模块二:核心执行模块内容
人工智能·spring boot
玄同76518 小时前
我是如何开发项目的?——从 “踩坑思维” 到 “工程化能力”:编程学习的进阶方法论(万字版)
开发语言·人工智能·经验分享·笔记·python·学习·课程设计
●VON18 小时前
影像之眼:人工智能如何重塑医学诊断的边界
人工智能·学习·von