递归神经网络(RNN)

一个轮回神经网络(RNN)是一个深度学习网络结构,利用过去的信息来提高网络的性能在当前和未来的输入。RNNs与众不同的是,网络包含一个隐藏的状态和循环。循环结构允许网络存储过去的信息隐藏的状态和操作序列。

复发性神经网络的这些特性使其非常适合解决各种各样的问题和连续可变长度的数据,例如:

展开一个RNN的单个细胞,显示信息如何通过网络传递的数据序列。输入是由隐藏状态的细胞产生的输出,和隐藏的状态传递给下一个时间步。

RNN如何知道如何应用过去的信息对当前输入?网络有两组权重,一个隐藏的状态向量和一个用于输入。在培训过程中,网络学习权重的输入和隐藏的状态。实现时,输出是基于当前的输入,以及隐藏的状态,这是基于以前的输入。

LSTM

在实践中,简单RNNs经验学习的问题长期依赖。RNNs通常通过反向传播训练,在那里他们可以体验‘消失’或‘爆炸’梯度问题。这些问题导致网络权重变得很小或很大,限制了学习的有效性的长期关系。

一种特殊类型的递归神经网络,克服了这个问题长时间的短期记忆(LSTM)网络。LSTM网络使用额外的盖茨来控制哪些信息隐藏的细胞使其输出和下一个隐藏的状态。这使得网络更有效地学习数据的长期关系。LSTMs普遍实现RNN的类型。

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

MATLAB®有全套的特性和功能训练和实施LSTM网络文本、图像、信号,时间序列数据。下一个部分将探索RNNs和一些例子使用MATLAB的应用程序。

应用RNNs

自然语言处理

语言是自然顺序,不同长度的文本片段。这使得RNNs一个很棒的工具来解决问题在这一领域,因为他们可以学会一些单词一个句子中去。一个例子包括情绪分析的方法,分类词汇和短语的意义。机器翻译,或者使用一个算法语言之间的翻译,是另一种常见的应用程序。单词首先需要从文本数据转换成数字序列。一个有效的方法字嵌入层。字嵌入的词汇映射到数值向量。的例子使用以下单词嵌入一个字情绪分类器训练,显示结果与MATLAB wordcloud函数。

情绪在MATLAB分析结果。这个词云显示训练过程的结果分类器可以确定新文本组的情绪。

在另一个分类器的例子,MATLAB使用RNNs对文本数据进行分类来确定生产故障的类型。MATLAB中使用机器翻译的例子训练一个网络了解罗马数字。

信号分类

信号自然顺序数据的另一个例子,因为他们经常收集的传感器。自动分类是很有用的信号,因为这可以减少手动或允许大型数据集分类所需时间。原始信号数据代入深网络或预处理可以专注于其他频率成分等特性。特征提取可以极大地提高网络性能,如一个例子与电气信号。下面是一个例子在一个RNN使用原始信号数据。

在MATLAB LSTM分类的传感器数据。

视频分析

RNNs适合视频,因为视频本质上是一个序列的图像。类似于处理信号,它有助于做特征提取之前喂到RNN序列。在这个例子,pretrained GoogleNet模型(a卷积神经网络在每一帧)用于特征提取。你可以看到下面的网络体系结构。

基本架构与LSTM视频分类。