Attention Is All You Need-李沐老师

Attention Is All You Need

视频链接:
https://www.bilibili.com/video/BV1pu411o7BE?spm_id_from=333.999.0.0
github网址:
https://github.com/tensorflow/tensor2tensor

一、摘要

这篇文章提出了一个新的简单的架构,模型的名称叫做transformer。这个模型仅仅依赖于注意力机制,没有用之前的循环或者是卷积,(所提出的模型,和之前大家所了解的表现较好的模型长得不一样),该模型的并行度更好,训练的时间更少。该transformer架构能够很好的泛化到一些别的任务上。

二、论文结论部分

1、在论文的结论部分说明了,Transformer是第一个做序列转录的模型,仅仅使用注意力,把之前所有的循环程全部换成了multi-headed self-attention(该文章主要是提出了这样一个层)。

2、在机器翻译任务上Transformer能够训练的比其他的架构能够快很多,并且实际的效果比较好。

三、导言

1、在时序模型中最常用的是RNN、LSTM、GRU等。两个主流模型是语言模型和编码器和解码器的架构。

2、RNN的特点,
(1)缺点。
在RNN中,对于序列是从左往右一步一步走(对于第t个词会计算一个输出叫做h(t),也叫做他的隐藏状态,h(t)是由h(t-1)和第t个词本身决定的,这样就可以把前面的历史信息放在当下用来计算),所以难以并行。
(2)在这篇文章之前,attention已经被成功用在了编码器和解码器上了,主要是用在怎样把编码器的东西有效的传递给解码器。

3、本文新提出来的Transformer不再使用之前被大家使用的循环神经层,是纯基于注意力机制的。并行度比较高,能够在较短的时间完成更好的结果。

四、相关工作

1、首先讲到怎样使用卷积神经网络来替换循环神经网络,使得减少时序的计算。之后提高工作的问题是使用卷积神经网络对于比较长的序列难以建模。

2、提出的多头注意力机制(multi-headed attention)可以模拟卷积神经网络多输出通道的一个效果。

3、提到的自注意力机制,Transformer是第一个只依赖于自注意力来做编码器和解码器架构的模型。

五、模型架构

1、对于编码器而言(一次性可以看清整个内容),编码器会将(x1…xn)表示为(z1…zn),zt表示的是第t个词的 一个向量表示。将一些原始的输入变成机器学习可以理解的一系列的向量。

2、对于解码器而言(只能一个一个生成,自回归,你的输入又是你的输出),会拿到编码器的输出,之后会生成一个长为m的一个序列。

3、Transformer是使用了一个编码器和解码器的架构,将一些自注意力、point-wise、fully connected layers。
在这里插入图片描述
4、在编码器这里使用到了N=6的六个完全一样的层,每个layer里面包含两个sub-layer(子层),第一个sub-layer叫做multi-head self-attention,第二个sub-layer叫做simple,position-wise fully connected feed-forword network(其实就是MLP),每一个子层用了一个残差连接,最后使用一个叫做layer normalization。
公式:LayerNorm(x+Sublayer(x))(因为是残差链接故把输入和输出加在一起)
每一个层的输出维度为512,

5、在解码器这里使用到了N=6的六个完全一样的层构成的,每个层里面也是有两个一样的子层,但是不一样的在于多一个第三个子层,(会用到自回归),保证你在t时间的时候是不会看到t时间以后的那些输入,从而保证训练和预测的时候的行为的一致。

6、注意力函数是将一个query和一些key-value对映射成一个输出的一个函数,这里的所有的query、key-value、output都是一些向量,具体来说output是value的一个加权和,确保输出的维度和value的维度是一样的。对每一个value的权重是这个value对应的key和query的相似度算来的。(不同的注意力机制有不同的算法)
公式:
在这里插入图片描述7、在Transformer中怎样使用注意力机制
(1)自注意力机制中key、value、query其实使是同一个东西,输入和输出的大小其实也是一个东西。
(2)设置masked,在进行t时刻计算的时候不会考虑t以后的数据。
(3)编码器的输出key和value以及解码器的下一层输出作为query进来。

六、实验

以翻译为例进行的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Transformer模型中,MLP layers是指多层感知机层,用于将输入序列映射到更高维度的语义空间。每个MLP层由两个子层组成,一个是多头自注意力子层,另一个是全连接层。这两个子层都使用了残差连接和层归一化。每个子层的输出维度与输入维度相同,为了简化,将嵌入层和所有子层的输出维度统一为d。\[1\] Cross-attention layers是Transformer模型中的一种注意力机制,用于在编码器和解码器之间进行信息交互。在这些层中,解码器的每个位置都会对编码器的所有位置进行注意力计算,以捕捉编码器中与解码器当前位置相关的信息。这种注意力机制有助于提高模型对输入序列的理解和生成准确的输出。\[2\] Transformer layers是指Transformer模型中的编码器和解码器层的堆叠。每个Transformer层由多个MLP layers和cross-attention layers组成。这些层的堆叠使得模型能够逐渐提取和整合输入序列的信息,并生成与之对应的输出序列。通过堆叠多个Transformer层,模型可以更好地捕捉序列中的关系和语义信息,从而提高模型的性能。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* *3* [Transformer - Attention Is All You Need - 跟李沐学AI](https://blog.csdn.net/qq_xuanshuang/article/details/126912990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢地上爬的孩子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值