当前位置:   article > 正文

2022李宏毅机器学习深度学习学习笔记第十九周_hidden states

hidden states


前言

本文以机器翻译为例子介绍了传统的机器翻译与含有attention技术的机器翻译的不同,介绍注意力机制;最后举例说明注意力机制的具体过程。


一、注意力机制 attention mechanism介绍

注意力机制(Attention Mechanism)的本质是:对于给定目标,通过生成一个权重系数对输入进行加权求和,来识别输入中哪些特征对于目标是重要的,哪些特征是不重要的。

传统的机器翻译是由encoder和decoder两个板块组成。其中Encoder和Decoder都是一个RNN,也可以是LSTM。encoder的工作原理和RNN类似,将词向量输入到Encoder中之后,我们将最后一个hidden state的输出结果作为encoder的输出,称之为context。Context可以理解成是encoder对当前输入句子的理解。之后将context输入进decoder中,然后每一个decoder中的hidden state的输出就是decoder 所预测的当前位子的单词。从encoder到decoder的过程中,encoder中的第一个hidden state 是随机初始化的且在encoder中我们只在乎它的最后一个hidden state的输出,但是在decoder中,它的初始hidden state 是encoder的输出,且我们关心每一个decoder中的hidden state 的输出。

Attention需要encoder中所有的hidden states的信息都传入decoder中,若encoder中有N个hidden states,则需要将这N个hidden states 的信息全部给decoder。将所有信息传入decoder之前,我们需要为N个hidden states 分别设置一个权重,之后将每一个hidden state 根据设置权重加权求和,再将所有加权求和之后的 hidden states 输入到decoder中。

二、手推注意力机制

在没有注意力机制前,机器翻译的模型如下图,编码器最后一个时间点输出的hidden state作为解码器的初始hidden state,解码器中上一个时间节点的输出会当作下一个时间的输入,循环下去,直到eos结束 。
在这里插入图片描述
当句子较长的时候,就要在sequence to sequence 的模型上加attention机制。attention的输入是编码器的三个hidden state和解码器的当前hidden state,输出是context vector,context vector告诉解码器对齐的词是什么。
attention的解刨图:
在这里插入图片描述
attention的输入有两部分,编码器的所有hidden state和 解码器的当前hidden state,把h0’复制三份和编码器的所有hidden state连起来和要更新的weight矩阵相乘,得到1x3的矩阵energy,放进softmax得到attention,attention乘以编码器的hidden state得到context vector。context vector和本身解码器的输入连起来作为新的输入,输入LSTM 。
举例:
在这里插入图片描述
中文词汇量只有五个字,需要翻译的英语的词汇量也只有五个,三个数字代表一个词向量,比如0.3923、-0.2236、-0.3195代表我字。
编码器:
在这里插入图片描述
初始的hidden state和cell state都是随机生成的,x1代表“我”的词向量,x2为“很”,x3为“好”,第一个时间点LSTM的输入为x1,h0,c0,生成h1,c1,h1,c1又作为下一个节点的输入,与x2生成h2,c2,h2,c2作为输入生成h3,c3;h3作为解码器的输入h0’ ,h0’,h1,h2,h3作为attention输入。
把h0’,h1,h2,h3四个数如下图所示连起来,然后和alignment weight矩阵相乘得到energy,energy进入softmax得到attention,attention用来衡量哪个编码器的hidden state最重要,例子中最重要的是第三个字,attention和encoder state相乘得到context vector。在这里插入图片描述
把context vector和 BOS放进LSTM得到hidden state h0’, h0’放进linear layer成为一个七类分类任务,找到数字最大的词“very”。再用very和h1,h2,h3,h1’放进LSTM中进行计算,计算过程与计算第一个词类似,以此类推。

在这里插入图片描述


总结

本次学习通过手推注意力机制,对注意力机制有了进一步的了解。注意力机制就是在某时刻将注意力放在某些事物上,而忽略另外的一些事物。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/351193
推荐阅读
相关标签
  

闽ICP备14008679号