当前位置:首页 > 神经网络 > 正文

rnn神经网络结构图怎么画

深入析递归神经网络–RNN简介(1)循环神经网络(RNN)作为一种流行的模型,在自然语言处理(NLP)任务中显示出巨大的潜力。 尽管RNN最近很受欢迎,但充分解释其工作原理和实现方式的资源却相当有限。
在本教程中,我们将实现一个基于RNN的语言模型。 语言模型的应用场景主要包括两个方面:一是对任意句子进行评分,评估其在现实世界中出现的概率,从而帮助我们衡量语法和语义的准确性,常用于机器翻译系统中;就是生成新的文本,比如通过莎士比亚作品上训练语言模型,可以生成类似风格的文本。
假设您对基本神经网络有一定的了解。 如果不熟悉,建议先学习神经网络的基础知识,比如无环网络背后的思想和实现方法。
RNN的核心思想是利用顺序信息。 与传统神经网络不同,RNN假设输入(和输出)之间存在依赖性。 例如,当预测句子中的下一个单词时,了解前一个单词很重要。 RNN之所以称为递归,是因为它们对序列的每个元素执行相同的任务,并且依赖于先前计算的结果。
RNN具有“记忆”功能,可以捕获迄今为止的计算信息。 理论上,RNN可以使用任意度序列中的信息,但实际上它们仅限于回顾固定数量的步骤。 下面是一个典型的RNN的例子:
循环神经网络涉及的计算的展开时间及其前向计算
通过展开,我们将RNN变成了完整的网络。 例如,对于5个单词的句子,网络将扩展为5层神经网络,每层对应一个单词。 RNN中的计算公式如下:
关于RNN应用,这里有一些常见的例子:
语言建模和文本生成:根据给定的单词序列,预测以下概率词是句子概率的度量,是机器翻译的重要输入。
语音识别:根据输入的声学信号序列预测语音片段及其概率。
生成图像描述:与卷积神经网络结合,用于生成未标记图像的描述,效果良好。
训练RNN与训练传统神经网络类似,使用反向传播算法。 由于参数在所有时间步上共享,因此每个输出的梯度不仅取决于当前时间步的计算,还取决于前一个时间步的计算。 这称为随时间反向传播(BPTT)。
然而,由于梯度缺失/爆炸的问题,使用BPTT训练的普通RNN很难学习期依赖关系。 有几种机可以解决这个问题,例如LSTM网络。
除了LSTM之外,研究员还开发了其他更复杂类型的RNN,例如双向RNN、深度(双向)RNN等,以解决原始RNN模型的缺点。
我希望这篇文章能帮助您了解RNN及其应用。 在下一篇文章中,我们将使用Python和Theano实现第一个版本的RNN语言模型。