【论文阅读】Attention is all your need

1. 前言

再读Attention开创论文,看看会不会对视觉开发有启发。

2. 摘要

作者是谷歌的一个组,提出了Transformer(变形金刚),本质上是一种与RNN和CNN同等级的特征提取方式,在这篇文章中,用Multi-head-self-attention代替了之前的recurrent层,在文本翻译的上面去的了很好的成果。目前在图片和视频上也有应用。

3. 主要优化点

传统的RNN并行度较差,且是时序向前的,如果处理时序较长,很久之前的信息可能在传递过程中权重已经非常低了。
Attention的计算机制并行度非常高,而且对于时序的追踪或者sequence length长度内的追踪是可以调节的。

4. Transformer模型

整个Transformer模型分成了Encoder和Decoder两部分,其中decoder一部分输入来自Encoder,另一部输入来自上次的输出。
在这里插入图片描述

4.1 Encoder部分

Encoder的输入有Input Embedding和Positional Encoding,后面再补充解释这两部分。
Encoder整个模型有两部分(重复几次),一部分是Muliti-Head Attention,一部分是FeedForward(这里是多层感知机),两部分都有残差结构和Norm处理,这里的Norm是LayerNorm。

  • 什么是LayerNorm?

下图一图就可以说明
在这里插入图片描述

  • 为什么要用layer norm?

对于句子这些不定长度的识别,不同长度的句子就是一堆batch,如果按照batch方向去切,你会发现不同长度有不同的补0位数,虽然补0不参与计算,但是由于句子长度不断的变化,这样batch normalization出来的结果会非常不稳定。但是feature方向去切,其实只是对一句话或者一个样本进行normalization,这样就会相对稳定一些。

在这里插入图片描述

  • Attention到底做了什么?

作者其实做了三个向量,Q(query),K(Keys), V(Value),向量长度为dk,Q和K通过点积或者余弦相关求出相关系数,通过softmax得到归一化的概率分布,将这个归一化系数与V相乘,最终得到的就是attention。当然实际计算的时候,我们不可能只算一个样本,我们会把所有的样本压缩在一起。我们假设有n个Q,m个K,Q的矩阵维度就是n * dk,K的矩阵维度m * dk。二者相乘得到一个n * m的矩阵,每一行都是一个Query,对行求softmax,得到归一化的概率。V的矩阵维度为m * dv,最后得到的attention矩阵就是n * dv
在这里插入图片描述

在这里插入图片描述

  • 为什么要用多头的Attention?

我们发现我们刚刚的处理其实是没有什么可以学习的地方,基本就是数据的处理过程。多头的Attention其实有点类似卷积处理过程中的下采样操作,通过增加channel,来减少特征层大小。这样其实就提供了一个可以学习的参数h,但实际上这个一般是自己设置的超参数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值