Transformer1.0-预热
一.Encoder
encoder:译为编码器,负责将输入序列压缩成指定长度的向量,这个向量就可以堪称是这个序列的语义。然后可进行编码或特征提取等操作
在transformer中encoder由6个相同的层组成,每个层包含
- Multi-Head Self-Attention
- Position-Wise Feed-Forward Network
Transformer中的Encoder可以看作多个Block组成,其中每个Block的输出由自注意力机制+残差链接+layerNorm+FC+残差链接+layerNorm组成
图片来源:Transformer 中 Encoder 结构解读_by 弘毅_transformer encoder_mingqian_chu的博客-CSDN博客
二.Decoder
Decoder:译为解码器,负责根据Encoder部分输出的向量c来做解码工作(推荐先看 三.注意力机制 再回头看二.Decoder)
2.1Transformer的Decoder
在Transformer中的Decoder由6个相同层组成,其中每个层包含
- Multi-Head Self-Attention
- Multi-Head Context-Attention
- Position-Wise Feed-Forward Network
2.2Transformer中Encoder与Decoder区别
1.第一级中: 将self attention 模块改成了 masked self-attention, 用于只考虑解码器的当前输入和当前输入的左侧部分, 不考虑右侧部分; ( 注意,第一级decoder的key, query, value均来自前一层decoder的输出,但加入了Mask操作,即我们只能attend到前面已经翻译过的输出的词语,因为翻译过程我们当前还并不知道下一个输出词语,这是我们之后才会推测到的。)
2.第二级中,引入了 Cross attention 交叉注意力模块: 在 masked self-attention 和 F C FCFC 全连接层 之间加入;
Cross attention 交叉注意力模块的输入 Q,K,V 不是来自同一个模块: 而是来自K , V K,VK,V 来自编码器的输出, Q QQ解码器的输出
2.3Masked self attention
只需考虑输入向量本身和输入向量只爱按的向量,即左侧向量。在求相关性分数时,q,k,v也只会考虑输入 向量的左侧向量部分
- 输出向量b1,只考虑输入向量a1(k1)
- 输出向量b2,只考虑输入向量a2(k2)和a2之前的输入向量a1(k1)
- 输出向量b3,只考虑输入向量a3(k3)和a3之前输入的向量a2(k2),a1(k
2.3Cross attetion
Cross attetion模块又成为交叉注意力模块,之所以叫做交叉,是因为向量q,k,v不是来自同一个模块,而是将来自解码器的输出向量q与来自编码器的输出向量k,v运算。
q与v相乘得到注意力得分α1'
注意力得分α1'再与v相乘求和得到向量v
2.4Transformer训练过程
- Encoder将输入数据转换为向量,同时会输入一个启动标志向量Start
- Masked self attention:解码器之前的输出,作为当前解码器的输入。并且在训练过程中,真是标签也会输入到解码器中,得到输出向量q
- Cross attention:将向量q与来自编码器的输出向量k,v运算,得到向量v
- 将向量v输入到feed-forward全连接层
三.注意力机制-attention
3.1注意力机制-attention
注意力机制:注意力机制来源于人对外部信息的处理能力。由于人每一时刻接收的信息都是庞大且复杂的,因此人在处理信息的时候,会将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤。
对于计算机而言,对数据赋予权重,越重要的地方或者越相关的地方就赋予的权重越高
可以理解成,当我们看人的时候要看脸,看书的时候看书名等等
3.2Query&key&Value q,k,v
Query 查询 | 查询的范围 | 自主提示 | 主观意识的特征向量 |
Key 键 | 被比对的项 | 非自主提示 | 物体的突出特征信息向量 |
Value | 物体本身的特征详细,与key成对出现 |
注意力机制是通过Query与Key的注意力汇聚,实现对Value的注意力权重分配,生成最终的输出结果(给定一个Query,计算Query与Key的相关性, 然后根据Query与Key的相关性找到最合适的Value)
Query可以理解为在搜素时输入的关键字(外套),然后系统会根据这个关键则取查找一系列的Key (商品名称),最后得到相应的value(xx牌衣服)
q,k,v每个属性虽然在不同的空间,但他们是具有一定的潜在关系,可以通过某种变换,使得三者属性在一个相近的空间中
3.3注意力机制计算
- 阶段一:计算q,k两者之间的相关性或相似性,得到注意力得分
MLP网络请见:全连接神经网络(MLP)_mlp网络_awigu的博客-CSDN博客
- 阶段二:对注意力得分进行缩放scale (除以维度的根号),然后使用softmax函数进行归一化,还可以更加突出权重
- 阶段三:根据权重系数是对v进行加权求和,得到Attention Value
四.自注意力机制-Self-Attention
4.1自注意力机制-Self-Attention
自注意力机制是注意力机制的一种,解决神经网络接收的输入是很多大小不一的向量,并且不同向量之间又一定的关系,但实际训练的时候无法发挥这些输入之间的关系导致模型训练结果效果极差(机器翻译序列到序列,语义分析等),针对全连接神经网络对于多个相关的输入无法建立起相关性问题,可以通过自注意力机制解决,实际上让机器注意到整个输入中不同部分之间的相关性。
自注意力机制减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性,且q,k,v都来自同一个x,通过x在x内部找关键点。
4.2自注意力机制计算
- 得到q,k,v
对于每个输入乘上相应的权重矩阵W,得到相应的矩阵q,k,v
- 计算相关性
利用得到的q,k计算两个向量之间的相关性,一般用点积计算,即α=q·k ,矩阵形式为A=K^T·Q
- Scale+softmax
将上一步得到的相似度除以d^1/2,再进行softmax归一化
- Matmul
使用权重矩阵与v相乘,计算加权求和
4.3自注意力机制缺点
自注意力机制的原理是筛选重要信息,过滤不重要信息,这就导致其有效信息的抓取能力会比CNN小一些。这是因为自注意力机制相比CNN,无法利用图像本身具有的尺度,平移不变性,以及图像的特征局部性(图片上相邻的区域有相似的特征,即同一物体的信息往往都集中在局部)这些先验知识,只能通过大量数据进行学习。这就导致自注意力机制只有在大数据的基础上才能有效地建立准确的全局关系,而在小数据的情况下,其效果不如CNN。 另外,自注意力机制虽然考虑了所有的输入向量,但没有考虑到向量的位置信息。
五.多头注意力机制-Multi-Head Self-Attention
5.1多头注意力机制-Multi-Head Self-Attention
多头注意力机制:用独立学习得到的h组(一般为8)不同的线性投影来变换q,k,v,然后这h组变换后的q,k,v并行的送到注意力汇聚中,最后将这个h个注意力汇聚的输出拼接到一起,并通过另一个可以学习的线性投影进行变化,一产生最终输出。
5.2多头注意力机制计算
- 定义多组W,生成多组Q,K,V
- 定义h组参数,对应h组W,再分布进行Self-Attention,得到Z0-Z7
- 将多组输出拼接后乘W0降维
图片来源:注意力机制到底在做什么,Q/K/V怎么来的?一文读懂Attention注意力机制 - 知乎
六.通道注意力机制-Channel Attention
6.1通道注意力机制-Channel Attention
通道注意力是显示再模型不同通道之间的相关性。通过网络学习的方式来自动获取到每个特征通道的重要程度,最后再为每个通道赋予不同的权重系数,从而来强化重要的特征抑制非重要的特征。
其目的在于让输入的图像更有意义,通过网络计算出输入图像各个通道的重要性(权重),从而提高特征表示的能力
6.2常用注意力机制
- SENet
- ECA
- CBAM
七.空间注意力机制-Spatial Attention
不是图像中所有的区域对任务的贡献都是同样重要的,只有任务相关的区域才是需要关心的,比如分类任务的主体,空间注意力模型就是寻找网络中最重要的部位进行处理。空间注意力旨在提升关键区域的特征表达,本质上是将原始图片中的空间信息通过空间转换模块,变换到另一个空间中并保留关键信息,为每个位置生成权重掩膜(mask)并加权输出,从而增强感兴趣的特定目标区域同时弱化不相关的背景区域。
相关文章:

Transformer1.0-预热
一.Encoder encoder:译为编码器,负责将输入序列压缩成指定长度的向量,这个向量就可以堪称是这个序列的语义。然后可进行编码或特征提取等操作 在transformer中encoder由6个相同的层组成,每个层包含 Multi-Head Self-AttentionPosition-Wise …...

【探索Linux】—— 强大的命令行工具 P.2(Linux下基本指令)
前言 前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C的一些知识,也相信大家都掌握的不错,今天博主将会新开一个Linux专题,带领大家继续学习有关Linux的内容。今天第一篇文章博主首先带领大家了解一下…...
供应链售后服务自动化,利用软件机器人将数据整合提升效率
随着供应链管理的不断发展,售后服务的重要性也日益凸显。良好的售后服务不仅可以提高客户满意度,还能增强品牌形象和忠诚度。然而,传统的供应链售后服务往往存在繁琐的操作、低效率和易出错的问题。为了解决这一挑战,越来越多的企…...
VIM浅谈
VIM 1. 文件1.1 管理多个文件 仅以此篇纪念VIM作者Bram Moolenaar。 1. 文件 刚刚使用VIM,很多小伙伴疑惑的就是如何退出VIM,一顿乱按结果修改了文件,q又退不出去,还需要保存。这是因为文件是保存在磁盘里的,使用Vim…...

《深度探索c++对象模型》第六章笔记
非原创,在学习 6 执行期语意学(Runtime Semantics) 有这样一个简单的案例: if (yy xx.getValue()) {// ... } 其中,xx和yy的定义为: X xx; Y yy; class Y定义为: class Y { public:Y();~Y();bool operator(con…...

wolfSSL5.6.3 虚拟机ubuntu下编译运行记录(踩坑填坑)
网上相关教程很多(包括wolfSSL提供的手册上也是如此大而化之的描述),大多类似如下步骤: ./configure //如果有特殊的要求的话可以在后面接上对应的语句,比如安装目录、打开或关闭哪些功能等等 make make install 然后结束,大体…...

JAVA SE -- 第十六天
(全部来自“韩顺平教育”) IO流 一、文件 是保存数据的地方 2、文件流 文件在程序中是以流的形式来操作 流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据…...

基于EIoT能源物联网的工厂智能照明系统应用改造-安科瑞黄安南
【摘要】:随着物联网技术的发展,许多场所针对照明合理应用物联网照明系统,照明作为工厂的重要能耗之一,工厂的照明智能化控制,如何优化控制、提高能源的利用率,达到节约能源的目的。将互联网的技术应用到工…...
docker-compose启动tomcat服务
docker-compose启动tomcat服务 编写docker-compose.yaml文件 version: "3.1" services:tomcat: restart: always image: tomcat:8.0.52 container_name: tomcat ports:- 8082:8080 environment:TZ: Asia/Shanghai volumes:- /usr/local/webapps/:/usr/local/t…...

10.多线程
文章目录 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?10.2线程有哪些基本状态? 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么? 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程…...
【有关数据库的编码格式和导出备份】
问题1:前端页面可以正常插入数据到数据库mysql中,但是却显示不了数据库中的数据内容? 分析:通过尝试,当数据插入的全部都是英文时,可以正常显示数据,但是出现中文时,则连带着全部数…...

直播招聘小程序解决方案
项目开发愿景 介绍工作拿佣金,Boss直播现真身。做为直播招聘的新平台,让求职和招聘变得更简单!企业发布招聘视频,展现公司环境与实力,开通会员可以直播招聘、在线面试功能;求职者刷视频可以刷到工作…...

HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt
HadoopWEB页面上传文件报错Couldn’t upload the file course_info.txt 右键F2检查发现:文件上传PUT操作的IP地址是节点IP别名识别不到导致 解决方法:在WEB页面访问浏览器所在机器上面配置hosts映射地址(注意:配置的是浏览器访问的地址不是hadoop节点所在…...

面试热题(倒数第k个结点)
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表…...

EVE-NG MPLS 静态 LSP
1 拓扑 2 配置步骤 2.1 配置接口IP 和路由 LER1 interface GigabitEthernet1/0ip address 10.1.1.1 255.255.255.0quitinterface GigabitEthernet2/0ip address 11.1.1.1 255.255.255.0quitip route-static 21.1.1.0 24 10.1.1.2VPC1 ip 11.1.1.100/24 11.1.1.1 配置完成后…...

华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展
洞悉全球汽车产业格局,前瞻业界未来趋势。2023年7月27日-30日,时隔三年,重聚武汉国际博览中心,2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会,掀起行业热点新高…...
华为OD机试真题【开心消消乐】
1、题目描述 【开心消消乐】 给定一个N行M列的二维矩阵,矩阵中每个位置的数字取值为0或1。矩阵示例如: 1100 0001 0011 1111 现需要将矩阵中所有的1进行反转为0,规则如下: 1) 当点击一个1时,该1便被反转为…...
txt去重
目录 txt去重 让我解释一下代码的逻辑: for a in [a.strip(\n) for a in list(f_read)]: txt去重 f_read open(r./1.txt, r, encodingutf-8) f_write open(r./2.txt, w,encodingutf-8) data set() for a in [a.strip(\n) for a in list(f_read)]:if a not in …...
系统集成测试与验收
功能性测试:测试系统应提供的每一个功能和安全性限制,检查系统是否已 正常实现所有功能。 连通性测试:测试网络上任意站点间是否能够相互传输数据,测试各个终端 能否登录中心服务器,并访问数据库,对数据库…...
ElementPlus文件上传 ,在上传前钩子中判断文件是否为图片
在ElementPlus中,可以使用beforeUpload属性来指定上传文件之前的钩子函数,在该函数中可以对文件进行判断并进行相关操作。 首先,在data中定义一个isImage变量来记录文件是否为图片,初始值为false。然后,在钩子函数中判…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...