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

news2024/11/17 13:28:44

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

image.png

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

image.png

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

1:多头注意力层

2:前馈网络层

下面我们对其进行讲解

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

a dog ate the food because it was hungry

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

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

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

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

image.png

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

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

查询矩阵Q

健矩阵K

值矩阵V

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

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

image.png

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

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

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

image.png

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

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

image.png

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

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

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

image.png

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

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

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

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

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

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

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

image.png

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

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

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

总结
编码器总结如下
1:将输入转换为输入矩阵,并将位置编码加入其中,再将结果作为输入传入底层的编码器
2:编码器1接收输入并将其送入多头注意力层,该子层运算后输入注意力矩阵
3:将注意力矩阵输入到下一个子层,即前馈网络层,前馈网络层将注意力矩阵作为输入,并计算出特征值作为输出
4:接下来,把从编码器1中得到输出作为输入,传入下一个编码器
5:编码器2进行同样的处理,再将给定输入的句子的特征值作为输出

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

我们把R作为输入传个解码器,解码器将基于这个输入生成目标句子
————————————————
版权声明:本文为CSDN博主「showswoller」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jiebaoshayebuhui/article/details/129764952

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx网络服务——主配置文件-nginx.conf

Nginx网络服务——主配置文件-nginx.conf 一、全局配置的六个模块简介二、nginx配置文件的详解1.全局配置模块2.I/O 事件配置3.HTTP 配置4.Web 服务的监听配置5.其他设置 三、访问状态统计与控制1.访问状态统计2.基于授权的访问控制3.基于客户端的访问控制 一、全局配置的六个模…

6个音效素材库,自媒体必备~

视频剪辑、自媒体必备的6个音效素材网站,再也不用担心找不到声音素材了,赶紧收藏起来,一定对你非常有用~ 菜鸟图库 https://www.sucai999.com/audio.html?vNTYxMjky ​ 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、…

Termius使用[分屏同时操作]

免费版可用ssh,tftp连接服务器,界面美观操作简洁 一 安装 官网 进入官网,登陆后进入个人页面,下载对应系统软件 安装完成后,在应用中登陆账号后即可开始使用 二 基本操作 [只针对ssh连接服务器操作] 2.1 连接服务…

MySQL_11 用户管理和权限管理

目录 一、用户管理 1.用户介绍 : 2.操作指令 : 3.代码演示 : 二、权限管理 1.MySQL常见权限汇总 : 2.相关指令 : 3.代码演示 : 一、用户管理 1.用户介绍 : MySQL中的用户都存储在系统数据库mysql中的user表中,如下图所示 : user表中&#xff0c…

银行从业——法律法规——金融基础知识

第二章 金融基础知识 第二节 货币政策 【 知识点1】 货币政策目标 制定和实施货币政策, 首先必须明确货币政策最终要达到的目的, 即货币政策的最终目标。中央银行通过货币政策工具操作直接引起操作目标的变动,操作目标的变动又通过一定的途…

深度:解密数据之力,奏响制造业智能升级的狂想曲!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 在21世纪的今天,我们正在经历着一个伟大的变革,一个由数字技术引领的产业革命——智能制造。在这场变革中,大数据、人工智能、5G专网、工业物联网和智能机器人等尖端技术,正如…

Grounded Language-Image Pre-training(论文翻译)

文章目录 Grounded Language-Image Pre-training摘要1.介绍2.相关工作3.方法3.1统一构建3.2.语言感知深度融合3.3.使用可扩展的语义丰富数据进行预训练 4.迁移到既定的基准4.1.COCO上的zero-shot和监督迁移学习4.2.LVIS上的zero-shot 迁移学习4.3.Flickr30K实体上的 phrase gro…

Redis核心数据结构-01

1、String String 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。 常用命令:get、set、incr、decr、mget等。 应用场景:String是最常用的一种数据类型,普通的key/ value 存储都可以归为此类&…

MongoDB复杂分组聚合查询

目录 1 聚合查询1.1 MongoDB的聚合查询 2 聚合管道方法2.1 聚合流程2.1.1 详细流程 2.2 聚合语法2.2.1 参数说明2.2.2 注意事项 2.3 常用聚合管道2.3.1 与mysql聚合类比 3 使用示例3.1 统计所有数据3.2 对所有城市人数求合3.3 对城市缩写相同的城市人数求合3.4 state重复的城市…

【笔试强训选择题】Day20.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

Splunk Enterprise 9.0.5 (macOS, Linux, Windows) 发布 - 机器数据管理和分析

Splunk Enterprise 9.0.5 (macOS, Linux, Windows) - 机器数据管理和分析 请访问原文链接:https://sysin.org/blog/splunk-9/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 混合世界的数据平台 快速、大规模地从…

模块的加载机制

4.1优先从缓存中加载 模块在第一次加载后会被缓存。这也意味着多次调用require()不会导致模块的代码被执行多次 注意:不论是内置模块、用户自定义模块、还是第三方模块,它们都会优先从缓存中加载,从而提高模块的加载效率 4.2内置模块的加载…

【服务器】本地搭建PHP简单Imagewheel私人图床系统

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

Install Harbor 2.8 on Centos

目录 Node & System/Software Lists Architecture Overview of Harbor Install Harbor 2.8 Harbor Installation Prerequisites Install Docker and Docker Compose Install Harbor Pull and Push image from Harbor Reference documentation Node & System/S…

每日一道面试题之java 中 IO 流分为几种?

IO流是什么? 流是数据在数据源(文件)和程序(内存)之间经历的路径。 这样解释似乎是很抽象不易理解的,因此我们拿生活中的例子来说,我们可以把流看成流动的自来水,打开水阀,自来水就会通过水管从水源流到各个用户家中…

华为OD机试真题 Java 实现【求最小公倍数】【牛客练习题】

一、题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。 数据范围:1≤a,b≤100000 。 二、输入描述 输入两个正整数A和B。 三、输出描述 输出A和B的最小公倍数。 四、解…

卓望数码前端一面

卓望数码前端一面 原文网址:https://www.nowcoder.com/discuss/409361218459234304?sourceSSRsearch 1.css中flex布局有哪些常见的属性 display:flex 首先让一个容器为flex布局应该写 display:flex flex-direction flex有两个关键的轴,分别是主轴…

chatgpt赋能python:Python列表倒序排序

Python列表倒序排序 Python是一种高级编程语言,被广泛用于各种领域的应用程序开发中,包括数据科学和机器学习。Python语言自带许多强大的编程工具,其中列表是其中最基础的数据结构之一。它可以让程序员整理和管理大量的数据,在实…

7.Nginx优化

文章目录 Nginx优化Nginx隐藏版本号修改Nginx的用户和组用户配置Nginx网页缓存时间日志分割配置Nginx连接超时、连接保持修改Nginx的进程数配置Nginx网页压缩设置防盗链 Nginx优化 Nginx隐藏版本号 隐藏Nginx版本号,避免安全漏洞泄漏Nginx隐藏版本号的方法 修改配…

天气预报信息获取程序--可以使用

一、优化了,输入城市代码,获取城市信息 # codingutf-8 import requests import re import csv import datetimeclass WeatherForecast(object):def __init__(self,city_code,start_year,end_year,end_month):self.city_codecity_codeself.start_yearsta…