【理论学习】Vision-Transformer

文章目录

  • 1. self-attention理论
    • 1.1. Attention(Q,K,V)的实现
  • 2. Multi-head Self-Attention理论
  • 3. Positional Encoding
  • 4. Vision Transformer


声明:本篇文章是我再b站观看博主霹雳吧啦Wz的视频后,做的一篇笔记,推荐大家看完视频在来简单浏览该文章。文章如有不妥之处,欢迎大家指出。

1. self-attention理论

vit-transformer中最核心的理论就是self-attention理论。对下图从右→左看,依次是vit-transformer总体框架多头注意力机制(Multi-Head Attention)单个注意力头机制(我自己的取得名字,方便理解)。

在这里插入图片描述
从上图可以看出:vit-transformer总体框架的核心部分就是多头注意力机制,而多头注意力机制正是由多个单头注意力机制组成。这样是不是就很好理解了,也就是说只要把单头注意力机制搞懂,这个模型也就理解了七八十。


1.1. Attention(Q,K,V)的实现

在这里插入图片描述
如上图所示,假设有两个输入 x i ( i = 1 , 2 , . . . ) x_i(i=1,2,...) xi(i=1,2,...),把 x i x_i xi看做信息的输入,经过Embedding层 f ( x ) f(x) f(x)得到特征信息 a i a_i ai,然后通过权重矩阵 W q 、 W k 、 W v W^q、W^k、W^v WqWkWv(权重矩阵在代码实现中是一个Linear层)得到各自的 q i 、 k i 、 v i q^i、k^i、v^i qikivi

q:query和k去匹配
v:从a中提取的信息
右下角是将 a 1 a_1 a1 a 2 a_2 a2(可能还有 a 3 a_3 a3 a 4 a_4 a4、…)并行化,和矩阵 W q W^q Wq W k W^k Wk$W^v$相乘得到相应q、k、v。


在这里插入图片描述
首先, q i q^i qi k j k^j kj 进行点乘, d d d k k k 的维度。

(例如: 因为 k k k 里面有两个元素,所以 d d d =2,如上图所示 q 1 q^1 q1 k 1 k^1 k1
点乘等于3,然后除以√2,最后结果等于2.12)。

q i q^i qi k j k^j kj 点乘得到的输出 a i , j a_{i,j} ai,j 经过softmax层得到 a ^ i , j \widehat{a}_{i,j} a i,j a ^ i , j \widehat{a}_{i,j} a i,j对应 v m v^m vm 的权重大小。

在这里插入图片描述


v m v^m vm参与运算过程:
在这里插入图片描述
a ^ \widehat{a} a v v v 相乘得到 b i b_i bi,即 A t t e n t i o n ( Q , K , V ) Attention(Q,K,V) Attention(Q,K,V)。到这里实现公式: A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})V Attention(Q,K,V)=softmax(dk QKT)V

上述过程可简化为:
输入a序列和b序列,简化结构如下:
在这里插入图片描述


2. Multi-head Self-Attention理论

根据 h e a d head head个数,均分 q 、 k 、 v q、k、v qkv,如下:
在这里插入图片描述


q 、 k 、 v q、k、v qkv 第二个上标为1的定义为 h e a d 1 head1 head1 ,第二个上标为2的定义为 h e a d 2 head2 head2

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


上述过程可简化为:
输入a序列和b序列,简化结构如下:

在这里插入图片描述

3. Positional Encoding

在这里插入图片描述


在这里插入图片描述


4. Vision Transformer

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


  1. Vision Transformer网络结构(以ViT-B/16为例):

在这里插入图片描述

  1. Hybrid模型
    (1) R50的卷积层采用的stdConv2d不是传统的Conv2d
    (2) 将所有的BatchNorm层替换成GroupNorm层
    (3) 把stage4中的3个Block移至stage3中

在这里插入图片描述

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

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

相关文章

react仿照antd progress实现可自定义颜色的直角矩形进度条

可传颜色、带滑块的直角进度条 很歹毒的UI设计&#xff08;真的很丑&#xff09; 实现&#xff1a; class RankProgress extends React.Component {render() {const { percent, progressColor } this.props;return (<div className{styles.progress}><div classNam…

git 使用

参考 https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93 文件的状态变化周期 文章目录 git 基础检查当前文件状态、查看已暂存和未暂存的修改暂存前后的变化跟踪新文件提交更新移除文件移动文件、重命名操作查看提交历史撤消…

从零开始构建基于YOLOv5的目标检测系统

本博文从零开始搭建基于YOLOv5模型的目标检测系统&#xff08;具体系统参考本博主的其他博客&#xff09;&#xff0c;手把手保姆级完成环境的搭建。 &#xff08;1&#xff09;首先Windows R输入cmd命令后打开命令窗口&#xff0c;进入项目目录&#xff0c;本博文以野生动物…

百度的新想象力在哪?

理解中国大模型&#xff0c;百度是一个窗口。这个窗口的特殊性不仅在于变化本身&#xff0c;而是在于百度本身就是那个窗口。 作者|皮爷 出品|产业家 沿着首钢园北区向西北步行10分钟&#xff0c;就能看到一个高约90米的大跳台&#xff0c;在工业园钢铁痕迹的印衬下&#…

Cannot use object of type __PHP_Incomplete_Class as array

场景&#xff1a;将项目复制 出来一份后&#xff0c;修改控制器&#xff0c;打开后就报错 解决&#xff1a;将runtime 清除后就正常了

TikTok Shop新结算政策:卖家选择权加强,电商市场蓄势待发

据悉&#xff0c;从2023年11月1日开始&#xff0c;TikTok Shop将根据卖家的店铺表现来应用3种不同类型的结算期&#xff0c;其中&#xff0c;标准结算期&#xff1a;资金交收期为8个日历日&#xff1b;快速结算期&#xff1a;资金交收期为3个日历日&#xff1b;延长结算期&…

企业数字化转型时,会遇到的5大挑战

企业数字化转型时&#xff0c;会遇到的5大挑战添加链接描述 数字化转型已然是当今商业战略的一大基石&#xff0c;根据Gartner的《2023年度董事会调查》显示&#xff0c;有89%的企业将数字业务视为其增长的核心。但该研究的另一项统计数据也显示&#xff1a;在这些企业中&…

KingBase库模式表空间和客户端认证(kylin)

库、模式、表空间 数据库 数据库基集簇与数据库实例 KES集簇是由单个KES实例管理的数据库的集合KES集簇中的库使用相同的全局配置文件和监听端口、共享相关的进程和内存结构同一数据库集簇中的进程、相关的内存结构统称为实例 数据库 数据库是一个长期存储在计算机内的、有…

AI猫咪穿搭也太萌了!用AI写出好故事的22条诀窍;吴恩达AI新课预告;2024年十大战略技术趋势 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f525; 可口可乐与好利来跨界联名&#xff0c;推出与AI共创的新品巧克力 继「酱香拿铁」后又有一款跨界合作让人眼前一亮——可口可乐与好利来…

通用音乐播放器蜂鸣器AX301开发板verilog,视频/代码

名称&#xff1a;通用音乐播放器代码&#xff0c;蜂鸣器播放音乐 软件&#xff1a;Quartus 语言&#xff1a;Verilog 代码说明&#xff1a;本代码为音乐播放器通用代码&#xff0c;只需修改管脚即可适配其他开发板 代码功能&#xff1a; 设计一个音乐播放器&#xff0c;使用…

解决一则诡异的javascript函数不执行的问题

有个vue 音乐播放器项目&#xff0c;由于之前腾讯的搜索接口没法用了&#xff0c;于是改成了别家的搜索接口。 但是由于返回数据结构不一样&#xff0c;代码重构的工作量还是挺大的&#xff1a;包括数据请求&#xff0c;数据处理&#xff0c;dom渲染&#xff0c;处理逻辑都进行…

Elasticsearch:什么是余弦相似度?

余弦相似度是数据科学、文本分析和机器学习领域的基本概念。 如果你想知道什么是余弦相似度或者它如何在现实世界的应用程序中使用&#xff0c;那么你来对地方了。 本指南旨在让你深入了解相似性是什么、其数学基础、优点及其在不同领域的各种应用。读完本指南后&#xff0c;你…

PHP 变量

变量 变量的声明、使用、释放 变量定义 形式 $ 变量名;严格区分大小写 $name; $Name; $NAME //三个变量不是同一个变量字母、数字、下划线组成&#xff0c;不能以数字开头&#xff0c;不能包含其他字符(空白字符、特殊字符) 驼峰式命名法、下划线式命名法 $first_name; $fi…

在 Visual Studio Code (VS Code) 中设置

在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下&#xff1a; 打开 Visual Studio Code。 在顶部菜单栏中&#xff0c;点击 "File"&#xff08;文件&#xff09; > "Preferences"&#xff08;首选项&#xff09; > "Settings…

IP协议(上)

目录 一、初步认识IP协议 二、认识IP地址 三、协议报头格式 1.报头和有效载荷分离 2.20字节的固定数据 四、网段划分 1.一个小例子 2.认识IP地址的划分 3.数据的传输过程 4.特殊的IP地址 5.通信运营商 &#xff08;1&#xff09;通信运营商的作用 &#xff08;2&a…

如何利用考培系统进行个性化学习和评估

考培系统作为一种现代化的学习和评估工具&#xff0c;可以为学生提供个性化的学习和评估服务。它利用先进的技术和算法&#xff0c;根据学生的学习情况和需求&#xff0c;为其量身定制学习计划&#xff0c;并提供相应的评估反馈。 1. 个性化学习 考培系统通过分析学生的学习情…

javaEE - 2(11000字详解多线程)

一&#xff1a;多线程带来的的风险-线程安全 线程安全的概念&#xff1a;如果多线程环境下代码运行的结果是符合我们预期的&#xff0c;即在单线程环境应该的结果&#xff0c;则说这个程序是线程安全的。 当多个线程同时访问共享资源时&#xff0c;就会产生线程安全的风险&am…

【AIGC核心技术剖析】扩大富有表现力的人体姿势和形状估计SMPLer-X模型

富有表现力的人体姿势和形状估计 (EHPS) 将身体、手和面部运动捕捉与众多应用结合起来。尽管取得了令人鼓舞的进展,但当前最先进的方法仍然在很大程度上依赖于有限的训练数据集。在这项工作中,我们研究了将 EHPS 扩展到第一个通用基础模型(称为 SMPLer-X),以 ViT-Huge 作为…

【译】快速开始 Compose 跨平台项目

原文&#xff1a; Compose Multiplatform application 作者&#xff1a;JetBrains 注意 Compose Multiplatform 中的 iOS 部分目前处于 Alpha 状态。以后可能会有不兼容的更改&#xff0c;届时也许需要手动进行迁移。 你可以使用这个模板来开发同时支持桌面、安卓和 iOS 的跨平…

GitHub验证的2FA

一、 起因&#xff1a; GitHub需要双重身份验证 (2FA) 是登录网站或应用时使用的额外保护层。启用 2FA 时&#xff0c;必须使用您的用户名和密码登录&#xff0c;并提供另一种只有您知道或可以访问的身份验证形式。 二、解决&#xff1a; 2.1 这里使用chrome的身份验证插件进…