在之前《深度学*:卷积神经网络(CNN)》介绍的CNN网络结构中,层与层之间是有连接的,但是每层之间的节点是没有连接的。这种结构适合图像识别,但不适用于阵列数据建模。例如,句子前后的单词是相关的,因此预测句子中的下一个单词通常需要使用前一个单词。
RNN(循环神经元网络)是一种对序列数据进行建模的神经网络。也就是说,序列的当前输出也与先前的输出相关。
RNN结构
RNN的基本结构如上图所示。箭头右侧是左侧网络的扩展示例。如果你向RNN 模型输入一个包含10 个单词的句子,它会按照如上所示的扩展方法扩展为10 层神经网络,其中每个单词对应一层。
与其他每层使用不同参数的深度学*网络结构相比,RNN模型在每一步共享(U,V,W)参数,这大大减少了需要学*的参数数量,并将同一组参数拟合到不同的输入。
Seq2Seq
针对自然语言处理(NLP)任务,研究人员在2014年提出了基于RNN模型的Seq2Seq结构[1]。这解决了序列之间长度不等的问题。 Seq2Seq结构也称为Encoder-Decoder结构,因为它由两部分组成:编码器和解码器。
编码器用于对序列信息进行编码,将任意长度的序列信息编码成向量c。解码器就是解码器。解码器获得上下文信息向量c后,对信息进行解码并将其作为序列输出。存在多种编码器-解码器结构。下图展示了一些常用的结构。主要区别在于解码器不同。
编码器-解码器结构
RNN Encoder-Decoder 在实际应用中,主要解决序列间问题,即文章问题从“短语/句子/段落/文章”到“短语/句子/段落/文章”。因此,Seq2Seq可用于机器翻译、对话系统、自动摘要等。
由于RNN 模型是在序列数据上进行训练的,因此可以将它们理解为类似于人类记住之前发生的事情的方式,以便能够记住此类数据。然而,由于RNN的设计结构,RNN对附近的序列因子有更多的记忆,而对远距离的序列因子有更少的记忆。为了解决这个问题,设计了一种新的循环神经网络结构。
LSTM
由于RNN的网络结构,输入受到层层权重参数和激活函数的影响,因此在传输过程中很容易造成梯度消失和梯度爆炸问题,之前的记忆会呈指数级遗忘。是。问题在于,很长的结构很难传达信息。这种长期依赖问题是自然语言处理等场景中需要解决的问题。
为了解决这个问题,研究人员设计了LSTM(Long Short Term Memory Networks),也称为长期记忆网络。
RNN基本网络结构
LSTM网络结构
与传统的RNN 相比,LSTM 增加了三个门控制器:输入门、输出门和遗忘门。三个门控制器的结构相同,由一个sigmoid函数(图中标记为)和一个内积运算(图中标记为x)组成。
LSTM通过添加长期记忆单元Ct来存储长期记忆信息。
长期记忆单元
在每个时刻,遗忘门都用来控制上一时刻记忆的遗忘程度。
在每个时刻,输入门用于控制新内存写入长期内存的程度。 Tanh函数的取值范围是[-1,1]。
长期记忆单元的全局更新是由遗忘门和输入门的共同作用产生的。
显示短期记忆更新的图表。这代表了一个输出门,控制短期记忆如何受到长期记忆的影响。
LSTM对基础RNN的优化具体体现在门控制器增加了对不同时间点权重的控制,以及通过连接层间权重来减少梯度消失的影响。这也和CNN中跳层连接的思想非常相似。
GRU(Gated Recurrent Unit)
GRU 是一种LSTM,它将遗忘门和输入门组合成单个更新门,并且还具有重置门。重置门决定了新的输入信息如何与先前的记忆相结合,更新门定义了当前时间步保存了多少先前的记忆。
一般来说,标准LSTM 和GRU 之间的差异并不显着。 GRU的结构比GRU少了一个门,在训练数据较大时可以节省大量时间。
RNN变种
研究人员在基本RNN 的基础上设计了新的RNN 变体,包括双向循环神经网络、注意力机制和深度循环网络。
双向RNN
在某些自然语言处理场景中,时间t 的输出可能不仅取决于先前的上下文,还取决于后面的上下文。例如,如果我们想预测句子中缺失的单词,我们希望能够通过查看周围的上下文来做到这一点。
如图所示,双向RNN有两个隐藏层RNN,输出结果是根据这两层隐藏层输出计算的。
深度双向RNN
深度双向RNN与双向RNN非常相似,对应于叠加多层双向RNN,增强了模型的拟合能力,但需要更多的努力来收敛模型,需要较长的训练时间和训练数据。
注意力机制
注意力机制可以提高基于RNN的编码器-解码器模型的有效性。由于其优异的有效性,注意力机制被广泛应用于机器翻译、语音识别、图像标注等领域。
关于注意力机制的想法,可以参考这篇代表性论文《Recurrent Models of Visual Attention》。人们在观察图像时,往往会根据需要将注意力集中在图像的特定部分。此外,人类将根据之前观察到的图像来学*在查看未来图像时将注意力集中在哪里。这部分经验可以集成到模型中,让模型学*有助于做出预测的重要因素。
在自然语言处理中,注意力机制为每个单词分配不同的权重,使得训练神经网络模型更加灵活。
[1] 使用RNN 编码器/解码器学*短语表达式进行统计机器翻译。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。