深入理解深度学习——Transformer:基础知识

分类目录:《深入理解深度学习》总目录

相关文章:


作为当下最先进的深度学习架构之一,Transformer被广泛应用于自然语言处理领域。它不单替代了以前流行的循环神经网络(recurrent neural network, RNN)和长短期记忆(long short-term memory, LSTM)网络,并且以它为基础衍生出了诸如BERT、GPT-3、T5等知名架构。

循环神经网络和长短期记忆网络已经广泛应用于时序任务,比如文本预测、机器翻译、文章生成等。然而,它们面临的一大问题就是如何记录长期依赖。为了解决这个问题,一个名为Transformer的新架构应运而生。从那以后,Transformer被应用到多个自然语言处理方向,到目前为止还未有新的架构能够将其替代。可以说,它的出现是自然语言处理领域的突破,并为新的革命性架构(BERT、GPT-3、T5等)打下了理论基础。

Transformer完全依赖于注意力机制,并摒弃了循环。它使用的是一种特殊的注意力机制,称为自注意力(self-attention)。在《深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)》文章中,我们比较了卷积神经网络(CNN)、循环神经网络(RNN)和自注意力(self-attention)。值得注意的是,自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使用自注意力来设计深度架构是很有吸引力的。对比之前仍然依赖循环神经网络实现输入表示的自注意力模型,Transformer模型完全基于注意力机制,没有任何卷积层或循环神经网络层。尽管Transformer最初是应用于在文本数据上的序列到序列学习,但现在已经推广到各种现代的深度学习中,例如语言、视觉、语音和强化学习领域。

Transformer作为“编码器—解码器”架构的一个实例,其整体架构图在下图中展示。正如所见到的,Transformer是由编码器和解码器组成的。与《深入理解深度学习——注意力机制(Attention Mechanism):Bahdanau注意力》中基于Bahdanau注意力实现的序列到序列的学习相比,Transformer的编码器和解码器是基于自注意力的模块叠加而成的,源(输入)序列和目标(输出)序列的嵌入(Embedding)表示将加上位置编码(Positional Encoding),再分别输入到编码器和解码器中。
Transformer架构
上图概述了Transformer的架构。从宏观角度来看,Transformer的编码器是由多个相同的层叠加而成的,每个层都有两个子层。第一个子层是多头自注意力(Multi-head Self-attention)汇聚;第二个子层是基于位置的前馈网络(Positionwise Feed-forward Network)。具体来说,在计算编码器的自注意力时,查询、键和值都来自前一个编码器层的输出。受残差网络的启发,每个子层都采用了残差连接(Residual Connection)。在Transformer中,对于序列中任何位置的任何输入 x ∈ R d x \in R^d xRd都要求满足 Sublayer ( x ) ∈ R d \text{Sublayer}(x) \in R^d Sublayer(x)Rd,以便残差连接满足 x + Sublayer ( x ) ∈ R d x + \text{Sublayer}(x) \in R^d x+Sublayer(x)Rd。在残差连接的加法计算之后,紧接着应用层规范化(Layer Normalization)。因此,输入序列对应的每个位置,Transformer编码器都将输出一个 d d d维表示向量。

Transformer解码器也是由多个相同的层叠加而成的,并且层中使用了残差连接和层规范化。除了编码器中描述的两个子层之外,解码器还在这两个子层之间插入了第三个子层,称为“编码器—解码器”注意力(Encoder-decoder Attention)层。在“编码器—解码器”注意力中,查询来自前一个解码器层的输出,而键和值来自整个编码器的输出。在解码器自注意力中,查询、键和值都来自上一个解码器层的输出。但是,解码器中的每个位置只能考虑该位置之前的所有位置。这种掩蔽(Masked)注意力保留了自回归(Auto-regressive)属性,确保预测仅依赖于已生成的输出词元。

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/28796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从 Google 删库,到蚂蚁跑路,Care 与 Fear 点燃的 Flare

Bytebase 第一次完成融资后写了一篇文章,主要讲了从行业层面做 Bytebase 的逻辑。一年过去了,这一年我们所处的开源/infra/数据库/企业服务赛道从热点归于平静,尤其在国内,又习惯性地反应过度,直接降到冰点。但从全球来…

Apache RocketMQ RCE漏洞复现(CVE-2023-33246)

RocketMQ RocketMQ是阿里巴巴在2012年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量堆积、顺序收发等特点。它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景的必备基础设施。 漏洞概述 在其5.1.0版…

基于Servlet+mysql+jsp学生宿舍信息管理系统

基于Servletmysqljsp学生宿舍信息管理系统 一、系统介绍二、功能展示1.用户登陆2.学生-主页面3.学生-缺勤记录4.学生-修改密码5.宿舍管理员-主页面6.宿舍管理员-学生查看7.宿舍管理员-缺勤记录8.系统管理员-宿舍管理员管理9.系统管理员-学生管理10.系统管理员-宿舍楼管理11.系统…

5大趋势与10大应用场景!未来的智能工厂要这么建...

在经济下行压力、人口红利消失、消费结构升级、疫情冲击等多种因素推动下,制造企业加快转型步伐,工厂正向高效化、智能化、绿色化方向跃迁升级,不断涌现出技术创新、应用领先、成效显著的智能工厂。 近日,中国信息通信研究院发布…

外观模式(十三)

每天都是全新的一天,感谢今日努力的自己。 上一章简单介绍了组合模式(十二), 如果没有看过, 请观看上一章 一. 外观模式 引用 菜鸟教程里面的外观模式介绍: https://www.runoob.com/design-pattern/facade-pattern.html 外观模式(Facade Pattern&…

OpenCV 项目开发实战--用 (C++ / Python)实现伪着色

文末附相关测试代码下载链接 在本教程中,我们将首先展示一种使用 OpenCV 的预定义颜色图对灰度图像进行伪彩色/伪彩色 的简单方法。如果您更愿意使用自己的颜色图,我们还将展示一种定义自定义颜色图的方法。 行星和太空中其他物体的灰度图像通常是伪彩色的,以显示细…

Vue中如何进行滚动吸顶与侧边栏固定

Vue中如何进行滚动吸顶与侧边栏固定 在Vue应用程序中,当需要实现滚动吸顶和侧边栏固定效果时,我们可以使用一些技术来实现。这些技术包括CSS和JavaScript,可以帮助我们实现各种各样的滚动效果。 如何实现滚动吸顶? 滚动吸顶是指…

[Halcon3D] 3D鞋点胶的点云边界提取

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…

JavaWeb之JSP

文章目录 JSP的基本介绍JSP的本质JSP的三种语法JSP头部的page指令language属性contentType属性image.pngpageEncoding属性import属性autoFlush属性 - 给out输出流使用buffer属性 - 给out输出流使用errorPage属性isErrorPage属性session属性extends属性 JSP中的常用脚本声明脚本…

什么是oa系统,什么是工单系统,有啥区别?

什么是oa系统,什么是工单系统,有啥区别? 一、OA系统与工单系统介绍 1、什么是OA系统 OA系统全称为Office Automation,即办公自动化系统。它是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息…

Python抓取商品详情方法的几种方法比较

抓取商品详情的方法有很多种,以下是其中几种常见的方法及其优缺点: 1.使用requests库发送HTTP请求,然后解析HTML或JSON格式的数据: 优点:这种方法可以抓取几乎所有网站上的数据,支持GET和POST请求&#xff…

佩戴比较舒适的蓝牙耳机有哪些?值得入手的蓝牙耳机分享

​对于年轻人来说,耳机使用场景丰富,时尚追求度高,喜好的音乐类型也是多种多样,需求侧重也不尽相同。下面我来推荐几款相当不错的蓝牙耳机给大家,总会有喜欢那款! 一、南卡OE蓝牙耳机 佩戴舒适度打分&…

界面开发框架Qt新手入门指南 - 使用Calendar组件创建日历(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文中的CalendarWi…

快速傅里叶变换python实现

img { margin: auto; display: block } 一、前言 我想认真写好快速傅里叶变换(Fast Fourier Transform,FFT),所以这篇文章会由浅到细,由窄到宽的讲解,但是傅里叶变换对于寻常人并不是很容易理解的,所以对于基础不牢的人…

RK3588平台开发系列讲解(USB篇)USB Device端口组合配置过程

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、configfs二、configfs 配置过程2.1、使能相关的宏2.2、挂载configfs2.3、创建名为g1的usb复合设备2.4、配置PID和VID2.5、创建并配置strings子目录2.6、创建configuration和字符串2.7、创建functions2.8、将functi…

【C#】并行编程实战:任务并行性(上)

在 .NET 的初始版本中,我们只能依赖线程(线程可以直接创建或者使用 ThreadPool 类创建)。ThreadPool 类提供了一个托管抽象层,但是开发人员仍然需要依靠 Thread 类来进行更好的控制。而 Thread 类维护困难,且不可托管&…

【半监督图像分割 2023 CVPR】UniMatch

【半监督图像分割 2023 CVPR】UniMatch 论文题目:Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation 中文题目:重新审视半监督语义分割中的强弱一致性 论文链接:https://arxiv.org/abs/2208.09910 论文代码&a…

功能测试常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的,这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求,密码不符合要求(格式上的要求) ④ 密码符合要求,…

大数据时代——生活、工作与思维的重大变革

最近读了维克托迈尔 – 舍恩伯格的《大数据时代》,觉得有不少收获,让我这个大数据的小白第一次理解了大数据。 作者是大数据的元老级先驱。 放一张帅照,膜拜下。 不过这本书我本人不推荐从头读一遍,因为书中的核心理念并不是特…

Mini热风枪 制作过程

首先引个流吧 立创开源广场:https://oshwhub.com/abby_qi/mini-re-feng-qiang 哔哩哔哩: 实物图 然后说一下硬件的选型和图 风扇:3010无刷风扇 额定电压3.7V(其实这个风扇还有其他额定电压的,比如9V12V,…