首页 > 自考资讯 > 高考百科

深度学习:循环神经网络(RNN)(rnn循环神经网络实例)

小条 2024-10-30

在之前《深度学*:卷积神经网络(CNN)》介绍的CNN网络结构中,层与层之间是有连接的,但是每层之间的节点是没有连接的。这种结构适合图像识别,但不适用于阵列数据建模。例如,句子前后的单词是相关的,因此预测句子中的下一个单词通常需要使用前一个单词。

RNN(循环神经元网络)是一种对序列数据进行建模的神经网络。也就是说,序列的当前输出也与先前的输出相关。

RNN结构

597053a5a5e04402929ee5c82259ca50~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=Sp2Ez8LhXzwSFAqqsKYYvYGUfh4%3DRNN的基本结构如上图所示。箭头右侧是左侧网络的扩展示例。如果你向RNN 模型输入一个包含10 个单词的句子,它会按照如上所示的扩展方法扩展为10 层神经网络,其中每个单词对应一层。

与其他每层使用不同参数的深度学*网络结构相比,RNN模型在每一步共享(U,V,W)参数,这大大减少了需要学*的参数数量,并将同一组参数拟合到不同的输入。

Seq2Seq

针对自然语言处理(NLP)任务,研究人员在2014年提出了基于RNN模型的Seq2Seq结构[1]。这解决了序列之间长度不等的问题。 Seq2Seq结构也称为Encoder-Decoder结构,因为它由两部分组成:编码器和解码器。

编码器用于对序列信息进行编码,将任意长度的序列信息编码成向量c。解码器就是解码器。解码器获得上下文信息向量c后,对信息进行解码并将其作为序列输出。存在多种编码器-解码器结构。下图展示了一些常用的结构。主要区别在于解码器不同。

489ac478fad14c53988b4ee08ed763f3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=GZ6dx1z7wk1RpAVaKG7UWL%2FbKmk%3D编码器-解码器结构

57b3823da17a426f9fdf9db315cbf660~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=kXD51I4P9m8i2EnsgYtlptSLjlY%3D 893533740f0a42f78b2bdea85c0c4c01~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=tlLhaWJ%2Bqbaplf5oypIrr%2FlSSb0%3DRNN Encoder-Decoder 在实际应用中,主要解决序列间问题,即文章问题从“短语/句子/段落/文章”到“短语/句子/段落/文章”。因此,Seq2Seq可用于机器翻译、对话系统、自动摘要等。

由于RNN 模型是在序列数据上进行训练的,因此可以将它们理解为类似于人类记住之前发生的事情的方式,以便能够记住此类数据。然而,由于RNN的设计结构,RNN对附近的序列因子有更多的记忆,而对远距离的序列因子有更少的记忆。为了解决这个问题,设计了一种新的循环神经网络结构。

LSTM

由于RNN的网络结构,输入受到层层权重参数和激活函数的影响,因此在传输过程中很容易造成梯度消失和梯度爆炸问题,之前的记忆会呈指数级遗忘。是。问题在于,很长的结构很难传达信息。这种长期依赖问题是自然语言处理等场景中需要解决的问题。

为了解决这个问题,研究人员设计了LSTM(Long Short Term Memory Networks),也称为长期记忆网络。

018457dcdc10496e9c265c8869156574~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=dyxb0e99m1Q1qXDjTh0JMp%2Bjfac%3DRNN基本网络结构

2515d03710334e89ae49ff13ca6f1685~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=i%2BlnNfob%2B67LXKVXiX%2Fwpw%2FBKgU%3DLSTM网络结构

与传统的RNN 相比,LSTM 增加了三个门控制器:输入门、输出门和遗忘门。三个门控制器的结构相同,由一个sigmoid函数(图中标记为)和一个内积运算(图中标记为x)组成。

f35b00bfbf3c4642b98b2273bdd1a3ad~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=bOlPdBtdQ2rLqd1NXs9bU%2FMnES4%3DLSTM通过添加长期记忆单元Ct来存储长期记忆信息。

9c4df784a24a44cf93a408c5395e1115~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=NOaFm1%2FstaTYYdaGcFx%2Bl9SA5mQ%3D 长期记忆单元

在每个时刻,遗忘门都用来控制上一时刻记忆的遗忘程度。

f33de39d3274447a829c47b29c177d74~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=Q2RuhzitdD7R1G9XMop3FWw5Ua8%3D 在每个时刻,输入门用于控制新内存写入长期内存的程度。 Tanh函数的取值范围是[-1,1]。

29ba2ce8c46a4aefbe9e7a3f2193389c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=rCtIT9hk8M56sbdj7GXvAKd3wPI%3D 978f710542ed4263a10f933f73d5191c~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=bsByPukc5KaW4agFTQS2b9ZXwkA%3D 长期记忆单元的全局更新是由遗忘门和输入门的共同作用产生的。

e0065698ba6a40659b6a2d2838aac31e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=PZVeFsv7x5uDHv4PadpS1X82gj8%3D 显示短期记忆更新的图表。这代表了一个输出门,控制短期记忆如何受到长期记忆的影响。

3a5b5683e6594458bc89aff0b11e691f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=YxN0dBQvzdX3CJg7uFCsfIcBumc%3D LSTM对基础RNN的优化具体体现在门控制器增加了对不同时间点权重的控制,以及通过连接层间权重来减少梯度消失的影响。这也和CNN中跳层连接的思想非常相似。

GRU(Gated Recurrent Unit)

GRU 是一种LSTM,它将遗忘门和输入门组合成单个更新门,并且还具有重置门。重置门决定了新的输入信息如何与先前的记忆相结合,更新门定义了当前时间步保存了多少先前的记忆。

fcb29e73df8d4085b8f8e398a5984034~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=3Mn82NFLqR1VNrf2eW4a7dHlxrg%3D 一般来说,标准LSTM 和GRU 之间的差异并不显着。 GRU的结构比GRU少了一个门,在训练数据较大时可以节省大量时间。

RNN变种

研究人员在基本RNN 的基础上设计了新的RNN 变体,包括双向循环神经网络、注意力机制和深度循环网络。

双向RNN

在某些自然语言处理场景中,时间t 的输出可能不仅取决于先前的上下文,还取决于后面的上下文。例如,如果我们想预测句子中缺失的单词,我们希望能够通过查看周围的上下文来做到这一点。

如图所示,双向RNN有两个隐藏层RNN,输出结果是根据这两层隐藏层输出计算的。

5bd06e72ab5f4c4f93b92bd77a4ebd08~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=WJWrrKPwcUjHEnV9XCbJb2ozICU%3D

深度双向RNN

深度双向RNN与双向RNN非常相似,对应于叠加多层双向RNN,增强了模型的拟合能力,但需要更多的努力来收敛模型,需要较长的训练时间和训练数据。

e295e51446eb4ecaa37d4af492c6ef08~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1730874251&x-signature=iYuccaihNvzNtDSNKHGL%2FsnQYDI%3D

注意力机制

注意力机制可以提高基于RNN的编码器-解码器模型的有效性。由于其优异的有效性,注意力机制被广泛应用于机器翻译、语音识别、图像标注等领域。

关于注意力机制的想法,可以参考这篇代表性论文《Recurrent Models of Visual Attention》。人们在观察图像时,往往会根据需要将注意力集中在图像的特定部分。此外,人类将根据之前观察到的图像来学*在查看未来图像时将注意力集中在哪里。这部分经验可以集成到模型中,让模型学*有助于做出预测的重要因素。

在自然语言处理中,注意力机制为每个单词分配不同的权重,使得训练神经网络模型更加灵活。

[1] 使用RNN 编码器/解码器学*短语表达式进行统计机器翻译。

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢