Transformer(一)简述(注意力机制,NLP,CV通用模型)
目录
1.Encoder
1.1简单理解Attention
1.2.什么是self-attention
1.3.怎么计算self-attention
1.4.multi-headed(q,k,v不区分大小写)
1.5.位置信息表达
2.Decoder(待补充)
3.BERT
参考文献
1.Encoder
1.1简单理解Attention
比方说,下图中的热度图中我们希望专注于小鸟,而不关注背景信息。那么如何关注文本和图像中的重点呢。
具体而言,下面的文本为she is eating a green,用不同的颜色表示每一个单词的向量,然后对每一个向量进行重构,比方说she本来由红色向量表示,重构之后,其向量包含上下文其他向量的部分(下图只管看就是按照相关程度,颜色比重各不相同,然后重新构成一个向量),其实这一块就是算出权值,每个词对其他词的贡献,再根据这个权值整合每个词自身的向量。

1.2.什么是self-attention
如下图所示,两句话中的it根据上下文语句不同,指代前面的名词也不同,所以希望用注意力机制,来专注他们之间的关系。
自注意力机制:如下图所示,两句话中,以it为例只计算本句中每个词和自己的关系
注意力机制:如下图所示,it会计算其他句和自己的关系。
同样如下图右侧所示,以it为例,线条越深和自身关系越强

1.3.怎么计算self-attention
如下图所示,有两个文本Thinking,Machines,在进行计算时,我们要知道每一个词和自己的关系以及和其他词的关系,也就是说要计算Thinking和自身的关系,以及和Machines的关系,以及Machines和自身的关系,以及和Thinking的关系然后将其向量化表示为x1和x2。接下来为了实现注意力机制,我们提供了三个向量,q,k,v,以Thinking为例,当Thinking想要寻找和自己的关系以及和Machines的关系时,必须要知道它要查什么,所以需要一个查找对象也就是q,同样Thinking和Machines自身作为被查找的单位,当被查询时,也需要提供我有或者没有被查东西的证据,也就是k,具象化理解,可以理解为,古代官府追查杀手,必然会拿着杀手画像q,那么每家每户都要提供自己的身份信息k,证明自己是不是杀手。v后面补充。

再看一下q,k,v是咋来的,对于单词向量x1和x2用一个权重矩阵w分别得到q,k,v。

再看一下词与词之间的匹配程度如何确定,先说一个概念,内积相乘越大两者关系越近,所以当计算Thinking和自己的匹配程度时,用q1*k1=112,计算Thinking和Machines匹配程度时用q1*k2=96计算,很明显和自己的匹配程度更高。

再进一步计算
首先看softmax(Q*K/)*V,其中
这样理解,当高维Q*K的结果必然比低维相乘大,但在实际应用中,维数并不应该对结果产生影响,所以用
消除维度影响。对照下图左侧的公式,来看下图右侧,在得到112和96之后,进行维度消除操作,得到14和12,然后得到彼此的影响概率,0.88和0.12,再利用v对x重构得到z。

流程如下图所示,Q和每一个K相乘再结合相应的V最后加权得到Attention Value

1.4.multi-headed(q,k,v不区分大小写)
上面我们发现一个x只能得到一个z,现在希望一个x可以得到不同z,所以用不同的w得到不同的q,k,v。假设一个x最后得到8个不同的z,将其拼接在一起太大了,所以用全连接层再对其降维。


举个例子

1.5.位置信息表达
前面我们发现计算时会对每一个单词进行计算,所以没考虑位置因素,但在这里希望把位置因素考虑进去,位置用p表示,最后加入到重构后的z中。

2.Decoder(待补充)
前面是用encoder处理输入得到不同的组合z,这回需要对z进行输出操作。 此时decoder提供q,查询模型需要啥。k和v由输入提供。具体我们可以看下图右侧流程图,左为Encoder输入K,V。右下为decoder输入Q。


再说一下MASK机制,简单理解,此时标签出了I am a,那么对于a可以利用前三个词,但对于第四个没出的不能使用,所以要给它掩盖起来。

3.BERT
替代encoder

参考文献
1.Transformer原理精讲_哔哩哔哩_bilibili
2.67 自注意力【动手学深度学习v2】_哔哩哔哩_bilibili
3. 68 Transformer【动手学深度学习v2】_哔哩哔哩_bilibili
4.(重点)2023年AI爆火方向:基于Transformer模型的计算机视觉实战集锦【医疗图像分割、VIT算法、swintransformer、DETR目标检测...】_哔哩哔哩_bilibili
相关文章:
Transformer(一)简述(注意力机制,NLP,CV通用模型)
目录 1.Encoder 1.1简单理解Attention 1.2.什么是self-attention 1.3.怎么计算self-attention 1.4.multi-headed(q,k,v不区分大小写) 1.5.位置信息表达 2.Decoder(待补充) 3.BERT 参考文献 1.Encode…...
回归预测 | MATLAB实现BiLSTM双向长短期记忆神经网络多输入多输出预测
回归预测 | MATLAB实现BiLSTM双向长短期记忆神经网络多输入多输出预测 目录 回归预测 | MATLAB实现BiLSTM双向长短期记忆神经网络多输入多输出预测预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 MATLAB实现BiLSTM双向长短期记忆神经网络多输入多输出预测&#x…...
使用Dockker创建vwas容器时报错的解决方法
执行命令 docker run -it -d -p 13443:3443 --cap-add LINUX_IMMUTABLE secfa/docker-awvs没有详细看报错之前找了各种各样的解决办法,都无法解决。因此以后在看报错提示的时候耐心一点看关键词Error 后来才发现启动vwas时docker报了这个错: OSError: …...
【数据结构OJ题】链表分割
原题链接:https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?tpId8&&tqId11004&rp2&ru/activity/oj&qru/ta/cracking-the-coding-interview/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2…...
无感知发布
什么是无感知发布 "无感知发布"是指在软件系统或应用程序进行更新或升级时,尽可能地避免对用户或系统的正常运行产生影响或中断。这种发布方式通常采用一系列技术和策略,以确保新版本的软件可以平滑地替代旧版本,而不会造成用户的…...
C++ 虚继承
C棱形继承 在 C 中,在使用 多继承 时,如果发生了如果类 A 派生出类 B 和类 C,类 D 继承自类 B 和类 C,这时候就发生了菱形继承。 如果发生了菱形继承,这个时候类 A 中的 成员变量 和 成员函数 继承到类 D 中变成了两…...
git commit用法
git commit 是 Git 版本控制系统中的一个命令,用于将更改提交到本地存储库。以下是 git commit 的一些常见用法和选项: 基本用法: git commit -m "提交信息"使用 -m 选项可以直接在命令行中添加提交信息。 提交所有更改: git commit -a -m &q…...
【LeetCode】543.二叉树的直径
题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root [1,2,3,4,5]…...
TypeScript教程(五)条件语句,循环,函数
一、条件语句 条件语句基于不同的条件来执行不同的动作 1.if语句:只有当指定条件为true时,使用该语句来执行代码 2.if...else语句:当条件为true时执行代码,当条件为else时执行其他代码 3.if...else if...else语句:…...
vue使用jsplumb 流程图
安装jsPlumb库:在Vue项目中使用npm或yarn安装jsPlumb库。 npm install jsplumb 创建一个Vue组件:创建一个Vue组件来容纳jsPlumb的功能和呈现。 <template><div style"margin: 20px"><div style"margin: 20px">&l…...
【BASH】回顾与知识点梳理(二十八)
【BASH】回顾与知识点梳理 二十八 二十八. 例行性工作排程(crontab)28.1 什么是例行性工作排程Linux 工作排程的种类: at, cronCentOS Linux 系统上常见的例行性工作 28.2 仅执行一次的工作排程atd 的启动at 的运作方式实际运作单一工作排程at 工作的管理batch&…...
LangChain源码逐行解密之系统(二)
LangChain源码逐行解密之系统 20.2 serapi.py源码逐行剖析 我们可以看一下Google查询的例子,在LangChain中有多种实现的方式。 如图20-5所示,在utilities的serpapi.py代码文件中实现了SerpAPIWrapper。 图20- 5 utilities的serpapi.py的SerpAPIWrapper 在langchain目录的se…...
QT的设计器介绍
设计器介绍 Qt制作 UI 界面,一般可以通过UI制作工具QtDesigner和纯代码编写两种方式来实现。纯代码实现暂时在这里不阐述了在后续布局章节详细说明,QtDesigner已经继承到开发环境中,在工程中直接双击ui文件就可以直接在QtDesigner设计器中打…...
[LitCTF 2023]Ping
因为直接ping会有弹窗。这里在火狐f12,然后f1选禁用javascript,然后ping 然后输入127.0.0.1;cat /flag 得到flag, 查看其他大佬的wp ,这里还可以抓包。但是不知道为什么我这里的burp 用不了...
Spring Cloud面试突击班1
Spring Cloud面试突击班1 1.Spring Cloud 中有哪些组件,整个项目架构中我们的重点又有哪些? Spring Cloud 是一套基于Spring Boot的微服务解决方案。 Spring Cloud生态在国内主流的分为两套,一套是以奈飞开源的Spring Cloud Netfilx 20%&a…...
线上售楼vr全景看房成为企业数字化营销工具
在房地产业中,VR全景拍摄为买家提供了虚拟看房的全新体验。买家可以通过相关设备,远程参观各个楼盘的样板间和实景,感受房屋的空间布局和环境氛围,极大地提高了购房决策的准确性。对于房地产开发商和中介机构来说,VR全…...
“深入探索JVM内部机制:解密Java虚拟机原理“
标题:深入探索JVM内部机制:解密Java虚拟机原理 摘要:本文将深入探索Java虚拟机(JVM)的内部机制,揭示其工作原理和关键组成部分,包括类加载、内存管理、垃圾回收、即时编译和运行时数据区域等。…...
最长 上升子序列
大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注 不清楚蓝桥杯考什么的点点下方👇 考点秘籍 想背纯享模版的伙伴们点点下方👇 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…...
Nginx的介绍
本资料转载于传智教育-解锁你的IT职业薪未来,仅用于学习和讨论,如有侵权请联系 视频地址:04-Nginx的优点_哔哩哔哩_bilibili 资源文档:链接:https://pan.baidu.com/s/1RlFl92FdxRUqc858JSxPSQ 提取码:12…...
[杂项]奥特曼系列影视列表大全
1966年:《奥特曼》「初代奥特曼」 1967年:《奥特赛文》 1971年:《归来的奥特曼》「杰克奥特曼」 1972年:《艾斯奥特曼》 1973年:《泰罗奥特曼》 1974年:《雷欧奥特曼》 1979年动画版:《乔尼亚斯…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
