当前位置: 首页 > news >正文

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。然后,在钩子函数中判…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...