TensorFlow 循环神经网络RNN

本文介绍了循环神经网络RNN的基本概念和工作原理,强调其在处理序列数据时的记忆能力。此外,详细阐述了LSTM网络的结构和功能,特别是其在解决长期依赖问题上的优势。LSTM通过遗忘门、输入门和输出门来控制信息流,以有效地学习和保持长期信息。最后提到了层叠RNN网络的应用。
摘要由CSDN通过智能技术生成

1.RNN

现实世界中,很多元素都是相互连接的,比如股票随时间的变化,小明说:我喜欢旅游,其中最喜欢的地方是云南,每当放假时我经常去______旅游.这里填空,人应该都知道是填“云南”。因为我们是根据上下文的内容推断出来的,但机器要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:像人一样拥有记忆的能力。因此,他的输出就依赖于当前的输入和记忆。

循环神经网络是指一个随着时间的推移,重复发生的结构。在自然语言处理(NLP),语音图像等多个领域均有非常广泛的应用。RNN网络和其他网络最大的不同就在于RNN能够实现某种“记忆功能”,是进行时间序列分析时最好的选择。如同人类能够凭借自己过往的记忆更好地认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。

 

2.RNN的网络结构及原理

 

在上图网络结构中,对于矩形块 A 的那部分,通过输入Xt t时刻的特征向量),它会输出一个结果(t时刻的特征向量),它会输出一个结果t时刻的特征向量),它会输出一个结果 ht(t时刻的状态或者输出)。

RNN 可以被看做是同一神经网络的多次复制,每个神经网络模块会把消息传递给下一个。所以,如果我们将这个循环展开:

LSTM 网络

长短期记忆网络(Long Short Term Memory networks) - 通常叫做 “LSTMs” —— 是 RNN 中一个特殊的类型。由Hochreiter & Schmidhuber (1997)提出,广受欢迎,之后也得到了很多人们的改进调整。LSTMs 被广泛地用于解决各类问题,并都取得了非常棒的效果。

明确来说,设计 LSTMs 主要是为了避免前面提到的 长时期依赖 (long-term dependency )的问题。它们的本质就是能够记住很长时期内的信息,而且非常轻松就能做到。

所有循环神经网络结构都是由完全相同结构的(神经网络)模块进行复制而成的。在普通的RNNs 中,这个模块结构非常简单,比如仅是一个单一的 tanh 层。

LSTMs 也有类似的结构(译者注:唯一的区别就是中间部分)。但是它们不再只是用一个单一的 tanh 层,而是用了四个相互作用的层。

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取 ht-1和Xt ,输出一个在 0到 1之间的数值给每个在细胞状态 Ct-1中的数字。1 表示“完全保留”, 0表示“完全舍弃”。

下一步是决定让多少新的信息加入到 cell 状态 中来。实现这个需要包括两个 步骤:首先,一个叫做“input gate layer ”的 sigmoid 层决定哪些信息需要更新;一个 tanh 层生成一个向量,也就是备选的用来更新的内容,Ct 。在下一步,我们把这两部分联合起来,对 cell 的状态进行一个更新。

 

更新 cell 状态了, 即把 Ct-1 更新为 Ct。 从结构图中应该能一目了然, 首先我们把旧的状态 Ct-1和 ft 相乘,把一些不想保留的信息忘掉。然后加上相乘, 把一些不想保留的信息忘掉。然后加上相乘,把一些不想保留的信息忘掉。然后加上 it * Ct。这部分信息就是我们要添加的新内容。

 

最后,我们需要来决定输出什么值了。这个输出主要是依赖于 cell 的状态Ct,但是又不仅仅依赖于 Ct ,而是需要经过一个过滤的处理。首先,我们还是使用一个sigmoid层来(计算出)决定,而是需要经过一个过滤的处理。首先,我们还是使用一个 sigmoid 层来(计算出)决定,而是需要经过一个过滤的处理。首先,我们还是使用一个sigmoid层来(计算出)决定 Ct 中的哪部分信息会被输出。接着,我们把中的哪部分信息会被输出。接着,我们把中的哪部分信息会被输出。接着,我们把 Ct 通过一个 tanh 层(把数值都归到 -1 和 1 之间),然后把 tanh 层的输出和 sigmoid 层计算出来的权重相乘,这样就得到了最后输出的结果。

层叠RNN网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值