RNN如何知道如何将过去的信息应用于当前输入?该网络有两组权重,一组用于隐藏状态向量,另一组用于输入。在训练期间,网络学习输入和隐藏状态的权重。实现时,输出基于当前输入以及基于先前输入的隐藏状态。
LSTM
在实践中,简单的RNN在学习长期依赖关系时遇到问题。RNN通常通过反向传播进行训练,在反向传播中,它们可能遇到“消失”或“爆炸”梯度问题。这些问题导致网络权重变得非常小或非常大,从而限制了学习的有效性e长期关系。
克服这个问题的一种特殊的递归神经网络是长短记忆(LSTM)网络。LSTM网络使用额外的门来控制隐藏单元中的哪些信息进入输出和下一个隐藏状态。这使网络能够更有效地了解数据中的长期关系。LSTM是一种常见的RNN实现类型。
MATLAB®具有一套完整的特性和功能来训练和实现带有文本、图像、信号和时间序列数据的LSTM网络。下一节将探索rnn的应用和使用MATLAB的一些示例。
RNN的应用
自然语言处理
语言是自然顺序的,文本的长度也各不相同。这使得rnn成为解决这一领域问题的伟大工具,因为它们可以学习在句子中上下文化单词。一个例子包括情绪分析,一种对单词和短语的含义进行分类的方法。机器翻译,或使用算法在语言之间进行翻译,是另一种常见的应用。单词首先需要从文本数据转换为数字序列。一种有效的方法是单词嵌入层。单词嵌入将单词映射成数字向量。的例子下面使用单词嵌入来训练单词情感分类器,使用MATLAB wordcloud函数显示结果。