当前位置:   article > 正文

Attention如何在Encoder-Decoder循环神经网络中见效(原理篇)_循环神经网络 encoder-decoder

循环神经网络 encoder-decoder

   转眼间来到了二年级下学期,马上就要面临找工作的巨大压力。起风了,唯有努力生存~愿努力可以有所成效。

    这一篇想要讲一讲Attention机制。文章框架主要翻译自How Does Attention Work in Encoder-Decoder Recurrent Neural Networks,也参考了一些笔者觉得比较不错的博客。


    Attention(注意力机制)是为了提高Encoder-Decoder RNN在机器翻译中的性能而开发的一种机制。

    在本教程中,您将发现Encoder-Decoder模型的注意力机制。

    完成本教程后,您将知道:

  • 机器翻译的Encoder-Decoder模型和注意力机制。
  • 如何逐步实施注意里机制。
  • 注意力机制的应用程序和扩展。

让我们开始吧。

0 教程概述

    本教程分为四个部分;它们是:

  1. Encoder-Decoder模型
  2. 注意力模型(Attention)
  3. Attention工作实例
  4. Attention的扩展

 1 Encoder-Decoder模型

    两篇论文介绍了循环神经网络的Encoder-Decoder模型。两者都开发了一种技术来解决机器翻译中输入序列长度与输出序列不同的序列到序列的本质。

    Ilya Sutskever等人在使用LSTMs的论文“Sequence to Sequence Learning with Neural Networks” 中就是这样做的。

    Kyunghyun Cho等人在 “Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation“一文中就做到了这一点。这项工作,和一些相同的作者(Bahdanau, Cho和Bengio)后来开发了他们的特定模型来开发一个注意力模型。因此,我们将快速浏览一下本文所描述的Encoder-Decoder模型。

    从高层次上讲,该模型由两个子模型组成:Encoder和Decoder。

  • Encoder:负责单步执行输入时间步骤,并将整个序列编码为一个固定长度的向量,称为上下文向量。
  • Decoder:负责在读取上下文向量的同时逐步执行输出时间步长。

图1 Encoder-Decoder循环神经网络模型

    提出了一种新的神经网络结构,该结构能够将变长序列编码为定长向量表示,并将给定的定长向量表示解码为变长序列。

— Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation, 2014.

    该模型的关键是整个模型,包括Encoder和Decoder,是端到端的训练,而不是单独训练元素。该模型具有通用性,可以采用不同的RNN模型作为Encoder和Decoder。   

    作者没有使用流行的长短时记忆(LSTM)神经网络,而是开发并使用了他们自己的简单类型的神经网络,后来被称为门控递归单元(GRU)。

    此外,与Sutskever等人的模型不同,Decoder从上一个时间步长的输出被作为输入输入解码下一个输出时间步。您可以在上面的图像中看到这一点,其中输出y2使用上下文向量(C)、解码y1传递的隐藏状态以及输出y1。

    …y(t)和h(i)也取决于y(t - 1)和输入序列的总结c。

— Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation, 2014 

     为更加直观地解释,这里老鼠屎引用一下完全图解RNN、RNN变体、Seq2Seq、Attention机制里面的解释:

    RNN最重要的一个变种:N vs M。这种结构又叫Encoder-Decoder模型,也可以称之为Seq2Seq模型。

    原始的N vs N RNN要求序列等长,然而我们遇到的大部分问题序列都是不等长的,如机器翻译中,源语言和目标语言的句子往往并没有相同的长度。为此,Encoder-Decoder结构先将输入数据编码成一个上下文向量c,拿到c之后,就用另一个RNN网络对其进行解码,这部分RNN网络被称为Decoder。具体做法就是将c当做之前的初始状态h0输入到Decoder中:

图2 Encoder-Decoder循环神经网络模型其他表示方式

    所以,在老鼠屎的理解当中,Encoder-Decoder是解决输入和输出不等长的问题(这里不一定完全正确,欢迎大神勘误)。

2 注意力机制

2.1 注意力机制的引入

     老鼠屎认为,引入注意力机制有两个原因:   

  1. 这里插一点老鼠屎自己的理解。如图2所示,在Encoder-Decoder结构中,Encoder把所有的输入序列都编码成一个统一的语义特征c再解码,这使得不论是生成y1,y2还是y3,其输入对生成某个目标yi来说影响力都是相同的&#
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/348420
推荐阅读
相关标签
  

闽ICP备14008679号