经常性神经网络(RNN)

一个轮回神经网络(RNN)是一种深入学习网络结构,它使用过去的信息来提高网络对当前和未来输入的性能。是什么让RNN唯一的是网络包含隐藏状态和循环。循环结构允许网络存储隐藏状态的过去信息并在序列上运行。

递归神经网络的这些特性使其非常适合于解决具有不同长度序列数据的各种问题,如:

展开RNN的单个单元,显示数据序列的信息如何在网络中移动。输入由单元的隐藏状态作用产生输出,并将隐藏状态传递到下一个时间步骤。

RNN如何知道如何将过去的信息应用到当前的输入?网络有两组权值,一组权值用于隐藏状态向量,另一组权值用于输入。在训练过程中,网络学习输入和隐藏状态的权值。当实现时,输出基于当前输入,以及基于先前输入的隐藏状态。

LSTM

在实践中,简单的rnn在学习长期依赖时遇到了问题。rnn通常通过反向传播进行训练,在这种情况下,它们可以经历“消失”或“爆炸”梯度问题。这些问题导致网络权重要么变得非常小,要么变得非常大,限制了学习长期关系的有效性。

一种克服这个问题的特殊类型的经常性神经网络是长时间的短期记忆(LSTM)网络。LSTM网络使用额外的门来控制隐藏单元中的信息输出和下一个隐藏状态。这使得网络能够更有效地了解数据中的长期关系。lstm是RNN的一种常用实现类型。

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

MATLAB®拥有完整的功能和功能,可以使用文本,图像,信号和时间序列数据培训和实现LSTM网络。下一节将探讨RNN和一些示例的应用程序使用MATLAB。

应用RNNs

自然语言处理

语言是自然顺序的,文本的长度变化。这使得RNN是一个很好的工具来解决这一领域的问题,因为它们可以学会在句子中的语境中展示文字。一个例子包括情绪分析,一种对单词和短语的意义进行分类的方法。机器翻译,或使用算法在语言之间进行翻译,是另一个常见的应用。单词首先需要从文本数据转换为数字序列。一个有效的方法是字嵌入层。Word Embeddings地图单词转为数字向量。当例子下面使用Word Embeddings培训一个词情绪分类器,并使用MATLAB WordCloud功能显示结果。

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

在另一个人分类器示例,Matlab使用RNN来对文本数据进行分类以确定制造失败的类型。matlab也用于一个机器翻译例培训网络以了解罗马数字。

信号分类

信号是自然顺序数据的另一个例子,因为它们通常是随着时间的推移从传感器收集的。它有助于对信号进行自动分类,因为这可以减少对大数据集所需的手动时间,或允许实时分类。原始信号数据可以被送入深度网络,或者经过预处理以聚焦于频率成分等其他特征。特征提取可以极大地提高网络性能例如心脏电信号.以下是An.例子在RNN中使用原始信号数据。

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

视频分析

rnn适用于视频,因为视频本质上是图像序列。与处理信号类似,它有助于在将序列输入RNN之前进行特征提取。在这个例子,一个预先训练过的google网络模型卷积神经网络)用于每帧的特征提取。您可以看到下面的网络架构。

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