循环神经网络(RNN)

经常性神经网络(RNN)是一种深度学习网络结构,它利用过去的信息来提高网络在当前和未来输入方面的性能。rnn的独特之处在于网络包含隐藏状态和循环。这种循环结构允许网络在隐藏状态下存储过去的信息,并对序列进行操作。

经常性神经网络的这些特征使它们非常适合解决各种问题,这些问题与不同长度的顺序数据(例如:)

展开RNN的单个单元格,显示信息如何通过网络进行数据序列。输入由小区的隐藏状态作用以产生输出,并且隐藏状态将传递到下次步骤。

RNN如何知道如何将过去的信息应用于当前输入?网络具有两组权重,一个用于隐藏状态向量,一个用于输入。在培训期间,网络了解输入和隐藏状态的权重。实现时,输出基于当前输入,以及基于先前输入的隐藏状态。

LSTM.

在实践中,简单的RNN遇到了学习长期依赖的问题。RNN通常通过BackProjagation训练,在那里他们可以体验'消失'或'爆炸'渐变问题。这些问题导致网络权重变得非常小或非常大,限制了学习长期关系的有效性。

克服这一问题的一种特殊类型的递归神经网络是长期短期记忆(LSTM)网络。LSTM网络使用额外的门来控制隐藏小区中的信息,使其成为输出和下一个隐藏状态。这允许网络更有效地学习数据中的长期关系。LSTMS是一种常用的RNN类型。

RNN(左)和LSTM网络的比较(右)

马铃薯草®具有一套完整的功能和功能,可以用文本、图像、信号和时间序列数据训练和实现LSTM网络。下一节将探索rnn的应用和使用MATLAB的一些例子。

RNNS的应用

自然语言处理

语言是自然顺序的,文本的长度是不同的。这使得rnn成为解决这一领域问题的一个很好的工具,因为它们可以学会将单词放在句子中的上下文中。一个例子包括情绪分析,一种对单词和短语的含义进行分类的方法。机器翻译或使用算法在语言之间翻译,是另一个常见应用程序。单词首先需要从文本数据转换为数字序列。一种有效的做法是一个单词嵌入层。单词嵌入将单词映射到数字向量中。的例子下面使用单词嵌入训练一个单词情感分类器,用MATLAB的词云函数显示结果。

MATLAB的情绪分析结果。Word云显示培训过程的结果,因此分类器可以确定新文本组的情绪。

在另一个分类器的例子, MATLAB使用rnn对文本数据进行分类,确定制造故障类型。MATLAB也用于机器翻译的例子训练网络理解罗马数字。

信号分类

信号是自然顺序数据的另一示例,因为它们通常随时间从传感器收集。自动对信号进行分类是有用的,因为这可以降低大型数据集所需的手动时间或实时允许分类。原始信号数据可以馈入深网络或预处理以专注于诸如频率分量的其他特征。特征提取可以大大提高网络性能,如电动心脏信号的例子.下面是一个例子使用RNN中的原始信号数据。

使用MATLAB中的LSTM对传感器数据进行分类。

视频分析

RNNS适用于视频,因为视频本质上是一系列图像。类似于使用信号,它有助于在将序列送入RNN之前进行特征提取。在这方面例子,佩带的googlenet模型(a卷积神经网络)用于在每个帧上进行特征提取。您可以在下面看到网络架构。

使用LSTM对视频进行分类的基本架构。