美文网首页
注意力机制摘抄

注意力机制摘抄

作者: 卷卷卷子 | 来源:发表于2017-11-03 14:50 被阅读0次

    11.2

    为什么要加入attention?

    1.序列输入时,随着序列的不断增长,原始根据时间步的方式的表现越来越差,这是由于原始的这种时间步模型设计的结构有缺陷,即所有的上下文输入信息都被限制到固定长度,整个模型的能力都同样受到限制,我们暂且把这种原始的模型称为简单的编解码器模型。

    2.编解码器的结构无法解释,也就导致了其无法设计。

    基于人类视觉注意力机制,神经网络中的注意力机制非常松散。人类的视觉注意力得到了很好的研究,虽然存在着不同的模式,但它们基本上都是以“低分辨率”感知周围的图像,以“高分辨率”的方式集中在图像的某个区域,然后随着时间的推移调整焦点。

    假设我i们可以将所有关于潜在的非常长的句子的信息编码成单个向量似乎有些不合理。已知经常性神经网络在处理这种远程依赖性方面存在问题。在理论上,像LSTM这样的架构应该能够处理这个问题,但在实践中,远程依赖仍然是有问题的。例如,研究人员已经发现,反转源序列(向后馈送到编码器中)产生明显更好的结果,因为他缩短了从解码器到编码器相关部分的路径。类似的,两次输入输入序列也似乎有助于网络更好地记住事物。

    使用注意力机制,我们不再尝试将完整的源语句编码为固定长度的向量。相反,我们允许解码器在输出生成的每个步骤“参加”到源句子的不同部分。重要的是,我们让模型基于输入句子以及迄今为止所产生的内容,学习了要注意的内容。

    y是我们由解码器产生的翻译词,x是我们的源语句。每个解码器输出字y_t现在取决于所有输入状态的加权组合,而不仅仅是最后一个状态。a的权重定义为每个输出应考虑每个输入状态的多少。所以,如果a_{3,2}是一个大数字,这意味着解码器在产生目标句子的第三个单词时,对源语句中的第二个状态给予了很大的挂住。a通常被归一化为总和为1(因此他们是输入状态的分布)。

    关注的一大优点在于它使我们能够解释和可视化模型正在做什么。例如,通过在翻译句子时可视化注意力矩阵a,我们可以了解模型的翻译方式。

    神经网络中的注意力机制大体是基于从人类视觉中发现的注意机制。对人类视觉注意力的研究较为透彻,目前存在几个不同模型,但归根结底,它们在本质上都是能够聚焦于图像中【高分辨率】的特定区域,同时又可以感知到周围的【低分辨率】区域,然后不断的调整焦点。

    注意力机制在神经网络中的使用由来已久,特别是在图像识别中。例如,Hugo Larochelle和Geoffrey E. Hinton于2010年发表的论文《Examples include Learning to combine foveal glimpses with a third-order Boltzmann machine》,以及Misha Denil2011年的论文《Learning where to Attend with Deep Architectures for Image Tracking》。但直到最近,外界才将注意机制应用在一些递归神经网络架构(尤其是用于自然语言处理,对于视觉的应用也在增加)上。

    注意力机制的代价:如果我们更仔细地观察注意机制的方程,我们会发现它是有代价的。我们需要结合每个输入和输出的单词来计算注意值。如果你输入50个词,输出50个词,那么注意值将会是2500。事实上,这是反直觉的。人类的注意力是节省计算资源的。当我们专注于一件事时,会忽略许多其他事。在我们决定关注什么之前,必须确定每一个细节。直觉上等效输出一个翻译的单词,要通过所有内在记忆中的文本来决定下一步生成什么单词,这似乎是一种浪费,完全不是人类所擅长的事情。事实上,他更类似于记忆的使用,而不是注意,这在我看来有点用词不当。然而,这并不影响注意机制变得流行,而且在许多任务中表现良好。

    另一种注意机制的方法是使用强化学习来预测一个需要专注的近似位置。这听起来更像人类的注意力,这就是视觉注意递归模型所完成的事情。然而,强化学习模型不能用反向传播进行首尾相连的训练,因此它们并不能广泛应用于NLP问题中。

    超越机器翻译的注意机制:使用注意机制来解决图像描述生成问题。他们用卷积神经网络来【编码】图像,然后用带有注意机制的递归神经网络来生成描述。通过将注意权重可视化。

    用带有注意机制的递归神经网络生成句子分析树。将注意矩阵可视化,可以让我们洞悉神经网络是如何生成这个分析树的。

    使用RNN来阅读文本和(合成的)问题,然后输出答案。通过将注意矩阵可视化,我们能看到,当神经网络试图寻找答案时,他在【看】什么。

    注意力=(模糊的)记忆?:注意机制所解决的基本问题是允许神经网络参考输入序列,而不是专注于将所有信息编码为固定长度的向量。正如我上面提到的,我认为注意力有点用词不当。换句话说,注意机制是简单的让神经网络使用其内部记忆(编码器的隐状态)。在这个解释中,不是选择去【关注】什么,而是让神经网络选择从记忆中检索什么。不同于传统的记忆,这里的记忆访问机制更加灵活,这意味着神经网络根据所有记忆的位置赋予其相应的权重,而不是从单个离散位置得出某个值。让记忆的访问更具灵活性,有助于我们用反向传播对神经网络进行首尾相连的训练(虽然有非模糊的方法,即使用抽样方法来代替反向传播进行梯度计算。)

    记忆机制有更长的历史。标准递归神经网络的隐状态就是一种内部记忆。梯度消失问题使RNNs无法从远程依赖性中进行学习。长短时记忆模型通过使用允许明确记忆删除和更新改善了上述情况。

    形成更加复杂记忆结构的趋势仍在继续。。。。可以使神经网络先多次读取相同的输入序列,然后再进行输出,每一个步骤都更新记忆内容。例如,通过对输入内容进行多次推理从而回答某个问题。但是,当神经网络参数的权重以一种特定方式联系在一起时,端对端记忆网络中的记忆机制等同于注意机制,这在记忆中创造了多重跃点(因为它试图从多个句子中集成信息)。

    在论文《神经图灵机》中使用了和记忆机制类似的形式,但有着更加复杂的访问类型,后者既使用了基于内容的访问,又使用了基于位置的访问,从而使神经网络可以学习访问模式来执行简单的计算机程序,例如排序算法。

    相关文章

      网友评论

          本文标题:注意力机制摘抄

          本文链接:https://www.haomeiwen.com/subject/zncapxtx.html