Transformer、多头注意力机制学习笔记:Attention is All You Need.

本文深入探讨了注意力机制的原理,从人类视觉注意力出发,解释了encoder-decoder框架下的注意力模型,详细阐述了软注意力的计算过程。接着介绍了多头注意力和自注意力机制,特别是self-attention如何捕获句子内部的长距离依赖。Transformer模型架构的解析,包括位置编码、残差连接、层归一化、位置前馈网络以及encoder-decoder attention和masked multi-head attention,揭示了其在机器翻译任务中的应用。

文章目录

 


 


相关参考连接:

https://blog.youkuaiyun.com/hpulfc/article/details/80448570

https://blog.youkuaiyun.com/weixin_42398658/article/details/90804173

https://blog.youkuaiyun.com/jesseyule/article/details/101633159

论文讲解:

https://www.jianshu.com/p/25fc600de9fb

https://www.cnblogs.com/robert-dlut/p/8638283.html

https://www.icode9.com/content-4-619546.html

目录

文章目录

 

一、注意力机制的原理

1.1.背景——人类视觉注意力

1. 2. encoder——decoder框架 

1.3.注意力机制

 1.3.1 基于encoder-decoder的注意力机制

1.3.2 注意力机制的原理-基于encodr-decoder的软注意力

二、多头注意力

2.1 自注意力机制(self-attention模型)

2.1.1 概念简介

2.2.2 优点

2.2.3 计算过程

2.2 多头注意力(Multi-Head attention)

三、机器翻译(transformer)模型架构 

3.1位置编码(positional encoding)

3.2 Add&Norm(Residual connection和layer-normalization)

3.2.1 残差连接(Residual connection)

3.2.2 层归一化(layer-normalization)

3.3 位置前馈方向网络( position-wise feed forward)

3.4 encoder-decoder attention

3.5 Masked Multi-Head Attention

总结


一、注意力机制的原理

1.1.背景——人类视觉注意力

                                               

                                                                         图1

    视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。

    这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。

    图1形象化展示了人类在看到一副图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于图1所示的场景,人们会把注意力更多投入到人的脸部,文本的标题以及文章首句等位置。

1. 2. encoder——decoder框架 

  要了解深度学习中的注意力模型,就不得不先谈Encoder-Decoder框架,因为目前大多数注意力模型附着在Encoder-Decoder框架下,当然,其实注意力模型可以看作一种通用的思想,本身并不依赖于特定框架,这点需要注意。

    Encoder-Decoder框架可以看作是一种深度学习领域的研究模式,应用场景异常广泛。图2是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示。encoder常用RNN。

                                        

                                          图2 抽象的文本处理领域的Encoder-Decoder框架

 也可以理解为翻译模型:输入源语句source,生成目标语句target(和源语句可以是同一种语言也可以是不同种语言),生成过程如下:

输入和输出:

                                   

(1)经过encoder编码生成中间语义表示C: 

                                             

(2)decoder通过C和之前已经生成的历史信息y_{1}...y_{i}生成y_{i+1}

                                       

                                        

1.3.注意力机制

 1.3.1 基于encoder-decoder的注意力机制

     上文翻译语句中,生成每一个翻译单词时,对输入的每个单词依赖程度相同,短的句子还好,对于比较长的句子,所有单词的语义完全通过固定的中间向量C来表示,会丢失很多细节。

     注意力模型采用变化的C_{i}来分配生成单词对源句子中每个单词的依赖程度。

     假设encoder和decoder都用RNN模型来实现,如下图3,则有:

                                   

                                             图3 RNN作为具体模型的Encoder-Decoder框架

 

   (1)  生成每个单词的隐藏状态:     h_{}_{i}=f_{w}(h_{i-1},x_{i})

   (2)中间语义表示C_{i},含有目标单词对每个源单词的依赖程度,用概率a_{ij}表示,C_{i}通常为源单词隐藏状态*依赖程度之和(加权平均和)                                      

      附:每个C_{i}a_{ij}的生成,以“Tom chase Jerry”->“汤姆追逐杰瑞”为例。

     对于采用RNN的Decoder来说,在时刻i,如果要生成yi单词,我们是可以知道Target在生成Yi之前的时刻i-1时,隐层节点i-1时刻的输出值H_{i-1}的,而我们的目的是要计算生成Yi时输入句子中的单词“Tom”、“Chase”、“Jerry”对Yi来

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值