赞
踩
转眼间来到了二年级下学期,马上就要面临找工作的巨大压力。起风了,唯有努力生存~愿努力可以有所成效。
这一篇想要讲一讲Attention机制。文章框架主要翻译自How Does Attention Work in Encoder-Decoder Recurrent Neural Networks,也参考了一些笔者觉得比较不错的博客。
Attention(注意力机制)是为了提高Encoder-Decoder RNN在机器翻译中的性能而开发的一种机制。
在本教程中,您将发现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。
图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是解决输入和输出不等长的问题(这里不一定完全正确,欢迎大神勘误)。
老鼠屎认为,引入注意力机制有两个原因:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。