第8章 Attention
使用Attention,seq2seq能像我们人一样将注意力集中在必要的信息上。换言之,借助Attention,我们理解了模型时如何工作的。
我们没有办法理解神经网络内部进行了什么工作(基于何种逻辑工作),而Attention赋予了模型“人类可以理解的结构和意义”。
所谓残差连接,就是指“跨层连接”。此时,在残差连接的连接处,有两个输出被相加。因为加法在反向传播时“按原样”传播梯度,所以残差连接中的梯度可以不受任何影响地传播到前一个层。这样一来,即使加深了层,梯度也能正常传播,而不会发生梯度消失(或者梯度爆炸),学习可以顺利进行。
在时间方向上,RNN层地反向传播会出现梯度消失或梯度爆炸的问题。梯度消失可以通过LSTM、GRU等Gated RNN应对,梯度爆炸可以通过梯度裁剪应对。而对深度学习方向上的梯度消失,残差连接很有效。
回看机器翻译的历史,我们可以发现主流方法随着时代的变迁而演变。具体来说,就是从“基于规则的翻译”到“基于用例的翻译”,再到“基于统计的翻译”。现在,神经机器翻译取代了过往的计数,获得了广泛关注。
Transformer是基于Attention构成的,其中使用了Self-Attention技巧,这一点很重要。Self-Attention直译为“自己对自己的Attention”,也就是说,这是以一个时序数据为对象的Attention,旨在观察一个时序数据中每个元素与其他元素的关系。
本章我们学习了Attention的结构,并实现了Attention层。然后,我们使用Attention实现了seq2seq,并通过简单的实验,确认了Attention的出色效果。另外,我们对模型推理时的Attention的权重(概率)进行了可视化。从结果可知,具有Attention的模型以与人类相同的方式将注意力放在了必要的信息上。
本章所学的内容
1.在翻译、语音识别等将一个时序数据转换为另一个时序数据的任务中。时序数据之间常常存在对应关系;
2.Attention从数据中学习两个时序数据之间的对应关系;
3.Attention使用向量内积(方法之一)计算向量之间的相似度,并输出这个相似度的加权和向量;
4.因为Attention中使用的运算时可微分的,所以可以基于误差反向传播法进行学习;
5.通过将Attention计算出的权重(概率)可视化,可以观察输入与输出之间的对应关系;
6.在基于外部存储装置扩展神经网络的研究示例中,Attention被用来读写内存。
使用单词网络,可以计算两个单词之间的相似度。计算单词之间的相似度意味着我们可以测量单词和单词在语义上的距离。而如果没有理解单词含义,就没有办法正确完成此类任务。从这一点来看,同义词库可以说(间接)赋予了计算机理解单词含义的能力。
LSTM的记忆单元是私有存储,对其他层不可见。LSTM将必要信息记录在记忆单元中,并基于记忆单元的信息计算隐藏状态。与此相对,GRU中不需要记忆单元这样的额外存储。