transformer和vit学习笔记

以下记录自己对transformer的学习笔记,可能自己看得懂【久了自己也忘了看不懂】,别人看起来有点乱。以后再优化文档~

小伙伴请直接去看学习资源:

Transformer的理解T-1_哔哩哔哩_bilibili

  • 首先,时序处理:一些模型的出现。

NLP方面继续:

GPT2 -> GPT3 -> GPT4,  chatGPT

图像方面:

分类:VIT  Swin Transformer,  TNT(TRM in TRM)

检测:DERT等基于trm的目标检测模型;

分割:VisTR等基于trm的图像分割模型(A Survey of Visual Transformers)

预训练模型进阶【大一统,CV大模型初步】:MAE -> SAM(segment anything)

  1. Transformer

Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in neural information processing systems, 2017, 30.   ( 谷歌 NIPS 2017)

Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常深的深度,充分发掘DNN模型的特性,但是模型本身很简洁,提升模型准确率。

  1. Inputs:比如一句话,四个词语!
  2. Input Embedding: 四个词语,每个embedding成512维! X:4*512   [x1,x2,x3,x4] 分别:1*512
  3. Positional Encoding: 位置编码 【一句话中每个词之间有一种相对位置,同一个词不同位置,让每一个位置都有不同的编码,才更有意义 最终用:Final Embedding.】

pos:第几个位置,i:第几个编码维度,d-model:同embedding一致的总维度,如512

奇数维度sin,偶数维度cos 公式:第几个位置的第几维度,得到一个position值】

纵坐标:位置, 横坐标:维度

对于Multi-Head Attention:

Q(query),K(key),V(value): 每一个词语的每一个q k v都是1*512  来源:

q1 = x1*Wq = [1 512] * [512 512] = [1 512]     k1和v1同理!【第2-4个词同理】

QKT = [4 512]*[512 4] = [4 4]  根号dk为常熟,负责缩减值。

 *V = [4 4] * [4*512] = [4 512]  因此,最终self-attation值还是4*512 = X:4*512

值得一提的是当有多个句子,每个句子有不同的数量的词语,计算中矩阵需要进行补充掩码!

比如5个有的只有3个。不够的掩码到5个

有的是Q-padding, 有的是K-padding 【常用】 三个句子3个词4个词5个词最终都是5*512!

对于多头注意力的体现?

假如Q K V  4*512  分层成4*256与 4*256 【图中是三份,这里两份】

 每个4*256分别计算自己的四个样本词的自注意力,最后它们再concat合并起来!

对于:Masked Multi-head attention

不同于encoder中,对输入数据X的自注意力计算,decoder中是需要逐个预测output的输出的,因此第一次保留第一个词语开始符<sos>,掩盖住后面的,第二次保留前两个词语,掩盖住后边的,知道最后得到结束符<eos>,预测结束。

这里的mask方式是对V构造上三角掩盖:

补充句子长度一致q-padding或者k-padding,掩掉句子长度

这里decoder是每次预测结果掩盖后边句子,是把QKT掩盖构造的上三角矩阵,再乘V!

对于结构中剩余模块:多头注意力后的短接,归一化,前馈神经网络,最后线性层+softmax等等。最终输出Output Probability比如:4*C的矩阵,C是类别数量。

Visual Transformer

Dosovitskiy A , Beyer L , Kolesnikov A ,et al.An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale[C]//International Conference on Learning Representations.2021.   (谷歌)

问题:transformer 从NLP到 CV???

  复杂度高,且每个像素值作为一个token并不合理!!!

>>> 思路:

图片分块固定大小,线性嵌入特征+位置编码特征,喂给TRM的encoder~

增加可扩展的分类token

优点:有局部,合起来也有全局!

vit中TRM与TRM原论文有点结构上的变化:norm提前了,而且没有PAD掩码【猜测是样本图resize统一,分割出来的token是一样的】

具体的如下步骤:

一些VIT的细节解释:

首先,输出特征怎么利用:

一般可以两种⽅式,⼀种是使⽤【CLS】token,另⼀种就是对所有tokens的输出做⼀个平均

最后选择加一个分类用的token-0:因为计算中也会和每一个算自注意力【不用每个token的高阶encoder输出再合并特征接全连接层了,用token0的也行,隐藏着特征带有全图全局信息了的了】

一些计算过程:

P:图片块分辨率,H*W/P*P = N数量,图分成了N块 【要看论文,一开始博主讲的P2块】

C:每块图通道,比如3,

D:维度,比如 512  【代码中:一块图P*P*3->conv+fc->D维embedding】

E:输入特征【N*D】比如 N=9块,这里9*512  Epos:位置编码特征,维度保持一致D!【这里是10*512】

Z0:VIT里边的patch+position的综合embedding了【加Xclass的token-0】

MSA:多头注意力,LN:norm   加后边的Zl-1残差机制

MLP一行同理1  以上在图中也可以loop循环堆叠。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Two-factor authentication (2FA) is required for your GitHub account解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【基于电商履约场景的 DDD 实战】DDD业务建模第二部分:履约的战术设计(梳理整个战术设计流程图)

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

Java笔记 --- 二、Stream流

二、Stream流 结合Lambda表达式&#xff0c;简化集合、数组的操作 获取Stream流对象 单列集合获取Stream流 双列集合获取Stream流 数组获取Stream流 一堆零散的数据获取Stream流 Stream流的静态方法of的形参是一个可变参数&#xff0c;可以传递零散数据&#xff0c;也可以传递…

【Python】02快速上手爬虫案例二:搞定验证码

文章目录 前言1、不要相信什么验证码的库2、以古诗文网为例&#xff0c;获取验证码1&#xff09;code_result.py2&#xff09;gsw.py 前言 提示&#xff1a;以古诗文网为例&#xff0c;获取验证码&#xff1a; 登录&#xff1a;https://so.gushiwen.cn/user/login.aspx 1、不…

【C++】类与对象(一)

前言 类与对象&#xff08;一&#xff09; 文章目录 一、面向对象和面向过程的对比二、类的引入2.1 C中的结构体2.2 类2.3 类定义方法2.4 修饰限定符2.5 封装2.6 类的实例化2.7 类对象的大小 三、this指针3.1 this 指针的使用 一、面向对象和面向过程的对比 面向过程编程是将程…

【Docker】nacos集群搭建Nginx负载均衡

目录 一、mysql安装与基操 1.1 数据准备 1.2 创建mysql与数据表 二、Nacos集群部署 2.1 创建nacos及配置 2.2 创建Nginx容器 一、mysql安装与基操 1.1 数据准备 拉取mysql docker pull mysql:5.7(版本) 定义挂载目录 mkdir -p /mysql/{conf,data,script} 配置my.c…

【排序4】探秘归并排序:提高程序效率的必备技巧

&#x1f60a;归并排序 &#x1f38a;1、基本思想&#x1f38a;2、代码示例&#x1f38a;3、非递归实现&#x1f38a;4、归并排序的性能分析&#x1f38a;5、归并排序的优缺点&#x1f38a;6、归并排序的应用场景&#x1f38a;7、总结 &#x1f38a;1、基本思想 归并排序&…

(笔记总结)C/C++语言的常用库函数(持续记录,积累量变)

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

【vue3源码】vue源码探索之旅:项目介绍

简言 记录下我眼中的vue源码项目。 gitHubvue3项目仓库 项目要求: vue版本 3.4.15nodeV18.12.0以上使用pnpm包管理器vitest测试框架Vue3 vue3是渐进式JavaScript框架,易学易用,性能出色,适用场景丰富的 Web 前端框架。 Vue 是一个框架,也是一个生态。其功能覆盖了大部分…

Spark运行架构以及容错机制

Spark运行架构以及容错机制 1. Spark的角色区分1.1 Driver1.2 Excuter 2. Spark-Cluster模式的任务提交流程2.1 Spark On Yarn的任务提交流程2.1.1 yarn相关概念2.1.2 任务提交流程 2.2 Spark On K8S的任务提交流程2.2.1 k8s相关概念2.2.2 任务提交流程 3. Spark-Cluster模式的…

HBase入门:运行机制

文章目录 HBase 系统架构客户端ZooKeeper 服务器Master 主服务器Region 服务器 Region 服务器工作原理用户读写数据的过程缓存的刷新StoreFile合并 Store 的工作原理HLog 的工作原理 HBase 系统架构 HBase 的系统架构包括客户端、ZooKeeper 服务器、Master 主服务器、Region服…

Linux文本三剑客---grep

grep&#xff08;从文本或字符串种过滤特定内容。&#xff09; 格式&#xff1a;Usage: grep [OPTION]... PATTERNS [FILE]... 常用选项&#xff1a; -E 等价于 egrep 扩展正则 -i 忽略大小写 -w 匹配单词 -o 仅显示匹配内容 -r 递归匹配 -c 统计匹配的行数 -v 取反 -n 行号 -A…

vue2 事件总线

原图下载&#xff1a;https://download.csdn.net/download/weixin_47401101/88788636

如何在Shopee平台上进行宠物类目的选品丨shopee宠物选品

在Shopee平台上进行宠物类目的选品是一个重要的任务&#xff0c;它直接关系到卖家的销售业绩和市场竞争力。为了成功选择适合的宠物用品&#xff0c;在选品过程中&#xff0c;卖家可以遵循以下策略&#xff1a; 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#…

ZYNQ AC7020C的“点LED”实验

一、创建 Vivado 工程 1、启动 Vivado 2、在 Vivado 开发环境里点击“Create New Project”&#xff0c;创建一个新的工程 3、弹出一个建立新工程的向导&#xff0c;点击“Next” 4、在弹出的对话框中输入工程名和工程存放的目录。需要注意工程路径“Project location”不能有…

瑞丽杂志引领潮流,VOSS眼镜概念店开启奢华新纪元!

近日&#xff0c;由《瑞丽》杂志社举办的2023第4届瑞丽轻奢品牌大赛&#xff0c;以“轻奢•悦藏”为主题的大赛已圆满结束&#xff0c;VOSS眼镜荣获&#xff1a;2023瑞丽轻奢品牌大赛「轻奢时尚风格奖」&#xff0c;作为眼镜行业唯一获此奖项的品牌&#xff0c;VOSS眼镜对此表示…

C++初阶入门之命名空间和缺省参数的详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.命名空间 2.1命名冲突的例子 2.2解决方案 2.3命…

QT发生弹出警告窗口

QTC开发程序弹出警告窗口&#xff0c;如上图 实施代码&#xff1a; #include <QMessageBox> int main() {// 在发生错误的地方QMessageBox::critical(nullptr, "错误", "发生了一个错误&#xff0c;请检查您的操作。");}上面的文字可以更改&#x…

(2024,预训练和微调扩散,图编码器,图特征与CLIP特征对齐)场景图到图像合成:集成 CLIP 指导与扩散模型中的场景图条件

Scene Graph to Image Synthesis- Integrating CLIP Guidance with Graph Conditioning in Diffusion Models 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 方法 3.1 扩…

配置ARP安全综合功能示例

组网图形 ARP安全简介 ARP&#xff08;Address Resolution Protocol&#xff09;安全是针对ARP攻击的一种安全特性&#xff0c;它通过一系列对ARP表项学习和ARP报文处理的限制、检查等措施来保证网络设备的安全性。ARP安全特性不仅能够防范针对ARP协议的攻击&#xff0c;还可以…