Transfomer编码器中自注意力机制、前馈网络层、叠加和归一组件等讲解(图文解释)

Transformer中的编码器不止一个,而是由一组N个编码器串联而成,一个编码的输出作为下一个编码器的输入,如下图所示,每一个编码器都从下方接收数据,再输出给上方,以此类推,原句中的特征会由最后一个编码器输出,编码器模块的主要功能就是提取原句中的特征

我们又可以将编码器中的结构进行细分

 

 由上图可知,每一个编码器的构造都是相同的,并且包含两个部分

1:多头注意力层

2:前馈网络层

下面我们对其进行讲解

一、自注意力机制

让我们通过一个例子来快速理解自注意力机制

a dog ate the food because it was hungry

想必大家都能看懂这句英文的意思,句中的it可以指代dog也可以指代food,我们自然是很好理解,但是对于计算机而言该如何决定呢?自注意力机制有助于解决这个问题

以上句为例,我们的模型首先需要计算出单词A的特征值,其次计算dog的特征值,以此类推,当计算每个词的特征值时,模型都需要遍历每个词与句子中其他词的关系,模型可以通过词与词之间的关系来更好的理解当前词的意思

比如当计算it的特征值时,模型会将it与句子中的其他词一一关联,以便更好的理解它的意思

如下图所示,it的特征值由它本身与句子中其他词的关系计算所得,通过关系连线,模型可以明确知道原句中it所指代的是dog而不是food,这是因为it与dog的关系更紧密,关系连线相较于其他词也更粗 

 自注意力机制首先将每个词转化为其对应的词嵌入向量,这样原句就可以由一个矩阵来表示

 矩阵X的维度为【句子长度×词嵌入向量维度】通过矩阵X,我们可以再创建三个新的矩阵,分别是

查询矩阵Q

健矩阵K

值矩阵V

为了创建他我们需要先创建另外三个权重矩阵,用X分别乘它们得到上述三个矩阵

值得注意的是,权重矩阵的初始值完全是随机的,但最优值则需要通过训练获得,我们取得的权值越优,则上述三个矩阵也越精确 

 因为每个向量的维度均为64,所以对应矩阵的维度为【句子长度×64】

自注意力机制会使该词与给定句子中的所有词联系起来,包括四个步骤,下面一一介绍

1:计算查询矩阵与键矩阵的点积,其目的是为了了解单词1与句子中的所有单词的相似度

2:第二步将查询矩阵与键矩阵除以键向量维度的平方根,这样做的目的是为了获得稳定的梯度 

3:目前所得的相似度分数尚未被归一化,我们需要使用softmax函数对其进行归一化处理,使数值分布到(0,1)之间 

 4:至此我们计算了查询矩阵与键矩阵的点积,得到了分数,然后softmax将分数归一化,自注意力机制的最后一步使计算注意力矩阵Z

 注意力矩阵就是值向量与分数加权之后求和所得到的结果

下面是自注意力机制的流程图 

 自注意力机制也被称为缩放点积注意力机制,这是因为其计算过程是先求查询矩阵与键矩阵的点积,再除以键向量维度的平方根对结果进行缩放

二、多头注意力层

多头注意力是指我们可以使用多个注意力头,而不是只用一个,也就是说我们可以利用计算注意力矩阵Z的方法,来求得多个注意力矩阵

如果某个词实际上是由其他词的值向量控制,而这个词的含义又是模糊的,那么这种控制关系是有用的,否则这种控制关系会造成误解,为了确保结果准确,我们不能依赖单一的注意力矩阵,而应该计算多个注意力矩阵,并将其结果串联起来,使用多头注意力的逻辑如下:

使用多个注意力矩阵,而非单一的注意力矩阵,可以提高注意力矩阵的准确性

三、通过位置编码来学习位置

Transformer网络并不遵循递归循环的模式,因此我们不是逐字的输入句子,而是将句子中的所有词并行的输入到神经网络中,并行输入有助于缩短训练时间,同时有利于学习长期依赖,但是这样没有保留词序,因此这里引入了一种叫做位置编码的技术,位置编码是指词在句子中的位置的编码

位置编码矩阵P的维度与输入矩阵X的维度相同,在将输入矩阵传给Transformer之前,我们将其包含位置编码,只需要将P+X即可,然后再作为输入传给神经网络,这样依赖,输入矩阵不仅有词的嵌入值,还有词在句子中的位置信息

Transformer论文的作者使用正弦函数来计算位置编码

四、前馈网络层

 前馈网络层由两个有ReLU激活函数的全连接层组成,前馈网络的参数在句子的不同位置上是相同的,但在不同的编码器模块上是不同的

五、叠加和归一组件

在编码器中还有一个重要的组成部分,即叠加和归一组件,它同时连接一个子层的输入和输出

叠加和归一组件实际上包含一个残差连接与层的归一化,层的归一化可以放置每层的值剧烈变化,从而提高了模型的训练速度

总结

编码器总结如下

1:将输入转换为输入矩阵,并将位置编码加入其中,再将结果作为输入传入底层的编码器

2:编码器1接收输入并将其送入多头注意力层,该子层运算后输入注意力矩阵

3:将注意力矩阵输入到下一个子层,即前馈网络层,前馈网络层将注意力矩阵作为输入,并计算出特征值作为输出

4:接下来,把从编码器1中得到输出作为输入,传入下一个编码器

5:编码器2进行同样的处理,再将给定输入的句子的特征值作为输出

这样可以将N个编码器一个接一个的叠加起来,从最后一个编码器得到输出将是给定输入句子的特征值,让我们把从最后一个编码器得到的特征值表示为R

我们把R作为输入传个解码器,解码器将基于这个输入生成目标句子

创作不易 觉得有帮助请点赞关注收藏~~~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图文并茂讲解CUDA, CUDA Toolkit, CUDA Driver, CUDA Runtime, nvcc之间的关系及其版本兼容性

Intorduction: 跑深度学习需要用到GPU,而CUDA就是GPU和程序(如python)之间的桥梁。CUDA的环境依赖错综复杂,环境配置成为深度学习初学者的拦路虎。 同时网上教程大多为解决某个具体环境配置报错,或者分别讲解CUDA、CUDA toolkit(CUDA工具包)、…

谈钱不丢人,但请实事求是

这是头哥侃码的第286篇原创 诺贝尔文学奖得主莫言,他曾在一次采访中说过这样一句话。 “一个人,可以被生活打败,但是不能被它打倒。” 的确,每个人都会遇见自己的人生艰难时刻,像我几个月前那样,突然从快节…

以太网之父鲍勃·梅特卡夫获2022图灵奖,76岁进入新领域再出发!

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 3 月 22 日,计算机协会 ACM 授予 鲍勃梅特卡夫(Bob Metcalfe )为 2022 年 ACM 图灵奖的获得者,以表彰以太网发明的标准化和商业化。 &…

计算机网络之TCP协议详解

系列文章目录 第一章 计算机网络之http协议详解 第二章 计算机网络之https协议详解 第三章 计算机网络之TCP协议详解 文章目录 系列文章目录前言TCP 传输控制协议TCP的封装格式三次握手四次断开/四次挥手计时器重传计时器——为了控制丢失的数据段坚持计时器——为了防止零窗口…

ROS-Noetic版本的安装(Ubuntu20.04环境)

ROS安装: 关于ROS的安装已经有很多好的博文供以参考,本文总结了一些安装过程中可能出现的报错情况已经解决方法。许多博文的教程步骤大差不差,建议是直接先按照官方步骤走,遇到问题再一步步解决。 ROS官方的参考链接: …

【机器学习】pytorch安装——环境配置(极简教程)

🥑 Welcome to Aedream同学 s blog! 🥑 文章目录 省流总结新建环境确定显卡型号安装显卡驱动安装pytorch国内镜像下载本地下载 验证安装成功 最近重新配置环境,简单记录一下。最近chatgpt等大语言模型和ai绘图火热,也为了方便很多…

淘宝天猫重组换血,原核心高管离职;Google Bard 大更新,数学和逻辑能力有所提升;K8s 1.27 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

【Redis】缓存一致性

文章目录 缓存一致性读缓存**双检加锁**策略 写缓存保障最终数据一致性解决方案先更新数据库,再更新缓存案例演示1->更新缓存异常案例演示2->并发导致 先更新缓存,再更新数据库案例演示->并发导致 先删除缓存,再更新数据库案例演示-…

Composer - 学习/实践

1.应用场景 熟练使用composer快速构建php web应用, 弄秦楚composer的基本工作原理. 2.学习/操作 文档 php三种工具pecl pear composer的区别_会飞的鱼的博客-CSDN博客_php-pear Composer 2.0 is now available! // Composer 2.0 is now available! 介绍 A multi-framework Co…

解读最佳实践:倚天 710 ARM 芯片的 Python+AI 算力优化 | 龙蜥技术

编者按:在刚刚结束的 PyCon China 2022 大会上,龙蜥社区开发者朱宏林分享了主题为《ARM 芯片的 PythonAI 算力优化》的技术演讲。本次演讲,作者将向大家介绍他们在倚天 710 ARM 芯片上开展的 PythonAI 优化工作,以及在 ARM 云平台…

解读最佳实践:倚天710 ARM芯片的 Python+AI 算力优化

编者按:在刚刚结束的 PyCon China 2022 大会上,龙蜥社区开发者朱宏林分享了主题为《ARM 芯片的 PythonAI 算力优化》的技术演讲。本次演讲,作者将向大家介绍他们在倚天 710 ARM 芯片上开展的 PythonAI 优化工作,以及在 ARM 云平台…

论文笔记:AugGPT: Leveraging ChatGPT for Text Data Augmentation

AugGPT:利用 ChatGPT 进行文本数据增强 摘要1 介绍2 相关工作2.1 数据增强2.2 小样本学习2.3 超大型语言模型2.4 ChatGPT:现在与未来 3 数据集3.1 亚马逊数据集3.2 症状数据集3.3 PubMed20k数据集 4 方法4.2 使用 ChatGPT 进行数据增强4.3 小样本文本分类…

好用的文献阅读插件(Easy Scholar、EasyPubMedicine、Sci-Hub X Now!)

目录 一、Easy Scholar 二、EasyPubMedicine 一、Easy Scholar Easy Scholar:自动显示期刊等级,帮助筛选优质论文。 安装: 点击浏览器右上角的“。。。”,选择“扩展”。 点击打开加载项 在浏览器的扩展商店中搜索“easy sch…

Zotero 6 文献管理 + 内置PDF阅读器 + 选中翻译

本来想叫《还在用知云?zotero 6内置PDF阅读器了 还带翻译插件的!》,想了想还是算了,不要做标题党,回归我朴实无华的标题吧。 如果你会用zotero只是来看翻译功能的,那你继续往下看。如果你还不会用zotero&a…

[科研神器]如何让ChatPDF帮你日读文献300篇

今天介绍一个新的工具ChatPDF,简直是读文献的绝对生产力啊。 我们要做的就是把PDF文件上传给它,让它帮你读,它会在几分钟内概述和理解整个文档你只需要提问就可以,而且支持中文。 ChatPDF的网址是:https://www.chatp…

【3款文献阅读的插件】

目录 01 easy Scholar 02 EasyPubMed 03 Sci-Hub X Now! 04 总结 重要事情说三遍:这个不涉及翻墙,这个不涉及翻墙,这个不涉及翻墙!!! 01 easy Scholar 点击下载文件,修改后缀名为zip文件&a…

文献阅读软件

文献阅读软件 上次对文献管理软件做了介绍,接下来对文献阅读及笔记整理软件进行介绍。 文献的基本格式是PDF,因此文献阅读软件的基本就是PDF阅读器,知网文献有专门的格式,没什么额外选择。因此,本文主要介绍的是PDF的…

文献阅读神器 ReadPaper

在以前我阅读文献的都是用的WPS,很多小伙伴用知云,但是今天我开始用ReadPaper了😄 推荐理由: 1.直接跳转参考文献 在一篇论文中参考文献,ReadPaper可以直接跳转阅读,不需要再去复制论文名字-搜索了。 就…

Python 带你花式过情人节

阅读文本大概需要 5 分钟。 一年 N 度的情人节又又又又又到了!有对象的人在享受着甜蜜的烦恼:今天 ta 会送我什么礼物?今天晚上去哪里度过?今天去哪里一起吃饭过节呢?啊!ta 竟然送我这么贵的礼物&#xff0…

这个情人节如何过得不一样?快来看哪个国家才是全球浪漫目的地 | 美通社头条...

美通社消息:这个情人节如何过得不一样?爱彼迎近期发布全球浪漫目的地,邀请情侣们住进令人怦然心动的房源,奔赴一场倾心已久的旅程。爱彼迎数据显示,泰国、马来西亚、菲律宾、巴西、南非等目的地,满足了情侣…