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