RNN
一.RNN介绍
在学习LSTM之前,得先学习RNN。RNN实际上就是一个带有记忆的时间序列的预测模型。RNN的基本结构包括输入层、隐藏层和输出层。在RNN中,输入序列被分成多个时间步,每一个时间步都对应于序列中的一个元素。每个时间步更新一个隐藏状态(Hidden State),该状态不仅接收当前时间步的输入,还结合了前一个时间步的隐藏状态。这种循环结构让RNN能够对序列中的时间依赖性建模。(时间步(time step)是指在处理时序数据或模拟动态系统过程中,对时间进行离散化后的一个个单位间隔。在这个间隔内,系统状态被认为是相对稳定的,而在不同时间步之间,系统状态可能会发生变化。)
前馈神经网络(CNN,全连接网络)的流程是前向传播、反向传播和参数更新,存在以下不足:
- 无法处理时序数据:
时序数据长度一般不固定,而前馈神经网络要求输入是固定长度的特征向量。输入可以是来自一个样本的不同部分,比如病情预测中,输入可以是患者的各项检查指标,如体温、血压、血液检测中的各项指标等,这些指标组成一个一维向量。在处理多个样本时,可以多个GPU批量处理。总之输入的要是一个非序列数据,前馈神经网络本身不处理序列的顺序关系,输入的特征x之间是独立且无序的。
- 缺少记忆:前馈神经网络没有机制去记忆和处理之前的输入数据,因此无法处理像语言、股票走势或天气预报等 序列化、时间依赖性强的数据
针对前馈神经网络上述问题,RNN引入以下机制:
- 不同时间步的隐藏层之间是相连的
- 在时刻t,隐藏层的输入包括两部分,当前时刻的输入xt和上一个时间步隐藏层的输出
。
通过这两条机制,模型能够记忆之前的输入数据,捕捉序列的上下文信息。
二.模型结构
由三个基本部分组成:输入、输出、隐藏层(其中包含循环)。
t时刻的记忆又叫t时刻的隐变量或隐藏状态,并且随着时间步的增加,这个隐藏状态会不断更新。
W是在不同的时间步 隐藏层之间递归的权重。在RNN中,不同时间步使用相同的W,为了保证信息能够传递下去。U和W都在隐藏层神经元上,V在输出层神经元上。参数的尺寸如下:
RNN与传统神经网络的区别
- 数据处理方式:传统神经网络,如多层感知机(MLP),是“前馈式”的,数据只在输入到输出间流动,并且没有时间依赖性。而RNN是一种“循环式”的结构,能够处理具有顺序或时间依赖的数据,并且可以在序列中的每个时间步共享参数。
- 参数共享:在RNN中,所有时间步都共享同一个权重矩阵,这使得它在处理序列时更加高效,能够利用更少的参数捕获序列关系。相比之下,传统神经网络的参数是独立的,与时间步无关。
- 记忆功能:RNN通过隐藏状态能够在时间步之间“记忆”信息,这使得它在处理像自然语言或时间序列数据时能够保持上下文。传统神经网络不具备这种记忆能力,因此无法处理依赖于时间顺序的信息。
- 应用场景:RNN特别适合用于序列数据,如文本、语音、视频和时间序列预测等任务,而传统神经网络更适用于独立的数据输入,如图像分类等任务.
三.RNN分类
3.1 N to N结构
输入序列和输出序列长度一样,即一个输入x对应一个输出y。常用于视频帧分类、词性标注等
公式可以表示为:
3.2 N to 1结构
整个输入序列被压缩成一个固定的输出,通常用来处理那些输入序列产生一个整体的输出的场景。例如序列分类(一段文本→判断积极or消极)、时间序列预测(给定过去10天的股价,预测第11天的股价)、异常检测(根据历史数据输出一个二分类结果)
公式可以表示为:
3.3 1 to N结构
1 to N 结构RNN,表示一个输入数据对应输出一个序列的模型,输入位置有两种形式,适用于图生文任务:
- 只在首个时刻输入
- 在每个时刻均输入
3.4 N to M结构RNN模型(encoder-decoder、seq2seq)
N to M:输入及输出序列不等长的结构,将两个不等长的RNN进行组合。输入与输出序列不等长的结构。N和M分别为输入序列长度及输出序列长度,该结构我们采用一个N to 1结构作为encoder,一个1 to M结构作为decoder来实现。一个编码器一个解码器。
依据解码器的不同有两种:
第一种:
主要实现原理为在encoder和decoder之间,增加了一个上下文向量c,向量c中包含着输入系列的语义信息和序列化信息。在上图中,c作为decoder的输入数据。此外,c还可以作为decoder的隐层初始变量,如下所示第二种:
此外,还有第三种结构:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY