RNN在自然语言处理和pytorch实施中的应用

< > >

作者:廖星宇


对人类来说,以前见过的东西会在他们的脑海中留下记忆。虽然记忆会逐渐消失,但人们会在被提醒之后重新找回记忆。在神经网络的研究,使模型完整的记忆开始的很早,Saratha Sathasivam 1982提出了霍普菲尔德网络,但因为它是很难实现的,在该时间没有很好的应用场景,所以渐渐遗忘。随着深度学习的兴起,人们开始重新研究递归神经网络(递归神经网络),并在序列和自然语言处理领域取得了巨大成功。

本文将从递归神经网络的基本结构入手,介绍了网络在自然语言处理和其pytorch实施中的应用。
“循环神经网络”>强>递归神经网络>强> >
第一章介绍卷积神经网络,卷积神经网络相当于人类视觉,但它没有记忆能力,只能处理特定的视觉任务,不能处理基于前一记忆的新任务。内存对于网络是必需的吗?显然,有些问题是必要的。例如,我们不能推断出电影中的下一个时间点。仅仅依靠目前的局势是不够的。传统的神经网络结构不仅依赖于当前的情况,而且依赖于过去的情况,不能很好地处理,因此基于内存的网络模型是必不可少的。
这是基于递归神经网络模型的记忆模型,即期望网络能记住出现在前面的特征,并根据推理结果的特点,以及整个网络结构的连续循环,因为神经网络的名称
网络。
回归神经网络的基本结构 > > >
递归神经网络的基本结构非常简单,即网络输出保存在存储器单元中。这个记忆单元与下一个输入一起进入神经网络。使用一个简单的两层网络作为演示,在它的基础上扩展到一个递归神经网络结构,该结构简单地用图1表示。
可以看到,当网络进入时,它将加入内存单元作为输入。该网络不仅将输出结果,而且还将结果保存到存储单元。图1是递归神经网络输入时最简单的结构图。
输入序列的顺序变化会改变网络的输出。这是因为存储单元的存在使得存储器单元在时序变化后发生变化,从而影响最终输出结果。
图1将数据点传递到网络图1中,作为数据序列中输入网络的示意图,然后整个序列如何进入网络?序列中的每个数据点依次被发送到网络,如图2所示。
< > >
图6,不同的词向量的角图6显示不同矢量矢量之间的夹角。猫和猫的夹角较小,所以它们更相似,狗和男孩的角很大,所以它们不相似。
通过这样一个简单的例子,可以看出单词嵌入对单词表示有很好的优势,但是单词如何知道如何定义它的单词嵌入呢?如果向量的维数只有5个维度,它也可以被定义。如果向量的维数是100维,你怎么知道每个维度是什么?
用神经网络可以解决问题。我们只需要定义我们想要的维度,例如,100维度。神经网络将自动更新每个单词中的元素。并介绍了嵌入式字的每个元素代表一种属性,当然,在时间维度上是比较低的,我们可以推断出每个维度属性的具体含义,但相对高的维度,我们不需要关心每个维度的一端代表什么意思,因为每个维度是属性的网络出自己的学习。只需知道向量夹角越小,它们之间的语义表达就越接近。这就像卷积网络将提取一幅非常厚的图像特征图,不需要关心网络提取的特征是什么,只需要知道抽象特征可以帮助我们对图像进行分类。
嵌入

实现



字嵌入在pytorch如何?以下是具体实现。
Word embedding in

资料全部来自网络,如果有问题可以发邮件到站长邮箱