循环神经网络RNN

循环神经网络(RNN)是一种处理序列数据的深度学习模型,其特点是能记忆序列信息并影响后续输出。RNN通过隐藏层节点间的连接,将历史信息传递给后续时刻。与传统神经网络相比,RNN的关键在于隐藏层的状态不仅取决于当前输入,还与之前的状态有关。在模型构建中,RNN可采用单一全连接层结构或LSTM结构,其中LSTM通过门控机制处理长期依赖问题。训练时,RNN可以展开成多层前馈网络,使用反向传播算法。RNN的应用包括序列预测,如时序数据的预测。
摘要由CSDN通过智能技术生成

输入与输出
输入:序列上不同时刻的数据依次传入,每一时刻必须有输入
输出:对序列下一时刻的预测;对当前时刻信息的处理结果,每一时刻不一定要有输出。

用途:处理和预测序列数据。
当前输出与之前的信息有关,体现在网络结构上就是,就是会记忆之前的信息,并利用之前的信息影响后面节点的输出,即隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括隐藏层上一刻的输出。

对比

对比 全连接神经网络FNN 卷积神经网络CNN 循环神经网络RNN
网络结构 层与层之间节点全部连接,每层之间的节点无连接 层与层之间节点部分连接,每层之间的节点无连接 每层之间的节点有连接
参数共享 在不同的空间位置共享参数 在不同的时间位置共享参数
损失函数 ---- 每一时刻都有输出,总损失为所有时刻的损失函数的总和

理解
每一时刻对于模块A来说,读取输入 x t x_t xt以及上一刻的隐藏状态 h t − 1 h_{t-1} ht1,得到输出 o t o_t ot,并且更新隐藏层的状态为 h t h_t ht o t o_t ot h t h_t ht o t o_t ot= h t h_t ht)都由 x t x_t xt h t − 1 h_{t-1} ht1共同决定, h t − 1 h_{t-1} ht1浓缩前面序列 x 0 x_0 x0 x 1 x_1 x1、… x t − 1 x_{t-1} xt1的信息,用于作为输出 o t o_t ot的参考。
注意1:在不同时刻,模块A的运算和变量是相同的,RNN可看做统一神经网络结构(循环体)被无限复制的结果,能够使用有限的参数处理任意长度的序列。
注意2:序列长度可以无限延长、但是 h h h状态维度有限,不可能将序列的全部信息保存下来,因此模型必须学习只保留与后面任务 o t o_t ot o t + 1 o_{t+1} ot+1…相关的最重要的信息

模型构建
如何设计循环体的网络结构是循环神经网络解决实际问题的关键

循环体结构:

a) 最简单的——使用单层全连接神经网络作为循环体,单一tanh循环体结构
循环神经网络的状态通过一个向量表示,向量维度称之为隐藏层的大小 n n n,
输入包含两部分:当前时刻的输入样本维度为 x x x,上一刻的状态维度为 n n n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值