深度学习5 RNN与LSTM
Posted 狂奔的CD
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习5 RNN与LSTM相关的知识,希望对你有一定的参考价值。
文章目录
前言
正文
参考:https://blog.csdn.net/shakehands2012/article/details/109241628
RNN 循环神经网络
模型结构
全称: Recurrent Neural Networks
是一种特殊的神经网路结构,其本身是包含循环的网络,允许信息在神经元之间传递,如下图所示:
Xt 作为输入层,经过A神经网络层,输出ht, 同时将信号传给下一层的自己,换种表达方式
相当于RNN在时间序列上把自己复制了很多遍,每个模型都对应一个时刻的输入,并且当前时刻的输出还作为下一时刻的模型的输入信号。
细化结构如下:
RNN的局限性
RNN利用了神经网络的“内部循环”来保留时间序列的上下文信息,可以使用过去的信号数据来推测对当前信号的理解,这是非常重要的进步,并且理论上RNN可以保留过去任意时刻的信息。
但在实际使用时,信息的传递往往会因为时间间隔太长而逐渐衰减,传递一段时刻以后其信息的作用效果就大大降低了。因此,普通RNN对于信息的长期依赖问题没有很好的处理办法。
为了克服这个问题,Hochreiter等人在1997年改进了RNN,提出了一种特殊的RNN模型——LSTM网络,可以学习长期依赖信息,在后面的20多年被改良和得到了广泛的应用,并且取得了极大的成功。
LSTM 长短期记忆网络
全称:Long Short Term Memory
模型结构
为了优化RNN的问题,将原来的一个神经网络层,优化为4个
黄色方块:表示一个神经网络层(Neural Network Layer);
粉色圆圈:表示按位操作或逐点操作(pointwise operation),例如向量加和、向量乘积等;
单箭头:表示信号传递(向量传递);
合流箭头:表示两个信号的连接(向量拼接);
分流箭头:表示信号被复制后传递到2个不同的地方。
LSTM的思想
LSTM的关键是细胞状态(直译:cell state),表示为 Ct ,用来保存当前LSTM的状态信息并传递到下一时刻的LSTM中,也就是RNN中那根“自循环”的箭头。当前的LSTM接收来自上一个时刻的细胞状态 Ct-1 ,并与当前LSTM接收的信号输入 xt 共同作用产生当前LSTM的细胞状态 Ct
其中
代表sigmoid神经网络层,其函数曲线如下
神经网络层可以将输入信号转换为 0 到 1 之间的数值,用来描述有多少量的输入信号可以通过。 0 表示“不允许任何量通过”, 1表示“允许所有量通过”。
遗忘门、记忆门和输出门
LSTM主要包括三个不同的门结构:遗忘门、记忆门和输出门。这三个门用来控制LSTM的信息保留和传递,最终反映到细胞状态 和输出信号。
1) 遗忘门 forget gate
遗忘门的作用就是用来“忘记”信息的。在LSTM的使用过程中,有一些信息不是必要的,因此遗忘门的作用就是用来选择这些信息并“忘记”它们。遗忘门决定了细胞状态 Ct-1中的哪些信息将被遗忘
- 记忆门
记忆门中有两个神经网络层。
其中,Sigmoid神经网络层的作用很明显,跟遗忘门一样,它接收 ht-1 和 xt 作为输入,然后输出一个 0 到 1 之间的数值 it 来决定哪些信息需要被更新;
Tanh神经网络层的作用是将输入的 ht-1 和 xt 整合,然后通过一个tanh神经网络层来创建一个新的状态候选向量 Ct~ , Ct~ 的值范围在 -1 到 1之间
- 更新细胞状态
4)输出门
文中还提到其他变体,这里先不研究
以上是关于深度学习5 RNN与LSTM的主要内容,如果未能解决你的问题,请参考以下文章
长短期记忆网络 LSTM 深层循环神经网络 Deep RNN 双向循环神经网络 Bidirectional RNN 动手学深度学习v2
长短期记忆网络 LSTM 深层循环神经网络 Deep RNN 双向循环神经网络 Bidirectional RNN 动手学深度学习v2
深度学习与图神经网络核心技术实践应用高级研修班-Day2循环神经网络(RNN)
深度学习原理与框架-递归神经网络-RNN网络基本框架(代码?) 1.rnn.LSTMCell(生成单层LSTM) 2.rnn.DropoutWrapper(对rnn进行dropout操作) 3.tf.