2022.8.28 第二十一次周报

目录

前言

注意力机制Attention Mechanism

手推Attention Mechanism​​​​​​​

假想机翻任务

初始化

翻译步骤

总结


前言

本周我们深入了解注意力机制,从底层逻辑到数学推导,让我们一步步了解什么是注意力机制。

注意力机制Attention Mechanism

注意力机制是机器学习中的一种数据处理方法,广泛应用在自然语言处理、图像识别及语音识别等各种不同类型的机器学习任务中。

扫描二维码关注公众号,回复: 14683631 查看本文章

注意力这个词本来是属于人类才有的动作。也就是说,注意力机制可以看做是一种仿生,是机器通过对人类阅读、听说中的注意力行为进行模拟。那为何要对注意力进行仿生,按理说,计算机理应拥有无限的记忆力和注意力。这是因为,人脑在进行阅读任务、读图任务时,并不是严格的解码过程,而是接近于一种模式识别。大脑会自动忽略低可能、低价值的信息。

人们在阅读、交流的过程中,本身就存在着信息的舍弃。虽然每段文字可能字号、粗细都相同,但注意力却不是那样均衡地分配给每一个词。如果计算机不能模拟人类的注意力状态,就可能让无关的信息对处理结果造成干扰,最后导致处理结果偏离实际的应用场景。

例如,聊天场景中,用户输入了错别字,导致了歧义。如果是人工场景,就很容易忽略错别字的影响,理解文字的本来含义。又或者,同样的句子,在不同语境中含义发生变化,导致机器翻译在段落和文章的翻译上,似是而非,语言不通顺。这些干扰,都让人工智能显得像是“人工智障”,逻辑硬伤导致无法执行较为复杂的任务。

为了让计算机更加适应人类交流场景,必须教会计算机选择遗忘和关联上下文,这种机制就是所谓的注意力机制。

严格来说,注意力机制更像是一种方法论。没有严格的数学定义,而是根据具体任务目标,对关注的方向和加权模型进行调整。简单的理解就是,在神经网络的隐藏层,增加注意力机制的加权。使不符合注意力模型的内容弱化或者遗忘。

手推Attention Mechanism

假想机翻任务

初始化

假设原语言的词汇量就只有五个字“我”、“很”、“好”、“不”、“你”,别的字不存在。需要翻译的目标语言的英语的词汇量也只有五个'I'、'am'、‘fine'、‘you’、‘very’,再加上Begin of sequence(BOS)和End of sequence(EOS) 就算七个词汇量,别的都不存在。然后随机给这些词生成了词向量,三个数字代表一个词。如下图所示。

翻译步骤

第一步:我们先过一遍编码器,初始hidden state和cell state 都是随机生成的。x1,x2,x3分别是”我”、“很”、“好”的词向量。

第二步:第一个时间节点LSTM输入为x1,h0,c0生成了hidden state h1,cell state c1;                                    然后h1,c1,x2是下一个时间节点的输入, 生成了hidden state h2,cell state c2;                                然后h2,c2,x3是下一个时间节点的输入, 生成了hidden state h3,cell state c3。

第三步:然后再拿着h3进入解码器,h3就变成了解码器h0',拿着h1,h2,h3和h0'进入attention黑盒子。

第四步:把这四个hidden state如下图一样粘起来,然后和alignment weights矩阵相乘,得到energy这组数字。

第五步: 然后energy进入softmax就得到attention,用来衡量哪一个编码器的hidden state是最重要的。(最大的就是最重要的)

 

第六步:然后用hidden state 和attention矩阵相乘,得到我们想要的context vector。

 

第七步:把算出来的context vector 和 Begin of sequence这个词向量粘起来,放进LSTM得到hidden state h1'。 

 第八步:把h1'放进layer 成为一个七类(这是因为我们要翻译的英文单词总共有七个)分类任务,找到数字最大的那个,就是翻译出的词。

第九步:翻译出的词的词向量顶替了BOS的位置,然后用h1',h1,h2,h3进入黑盒子,以此类推。

总结

这一周我们学习了注意力机制相关内容,从“是什么”到“做什么”再到“怎么做”,层层递进。通过本周的学习,让我们对Attention Mechanism有了更深入的了解。

猜你喜欢

转载自blog.csdn.net/weixin_43971717/article/details/126565089