计算机视觉中的Transformer
几十年来,理论物理学家一直在努力提出一个宏大的统一理论。通过统一,指的是将被认为是完全不同的两个或多个想法结合起来,将它们的不同方面证明为同一基础现象。一个例子是在19世纪之前,电和磁被看作是无关的现象,但电磁学理论成功地解释了它们,或以某种方式将这两种看似不同的现象统一起来。每当物理学家成功地将一组看似无关的东西统一起来,他们都会得到一个更强大的理论,可以解释更多内容,并且用更少的方法来实现。
我们在谈论计算机视觉时,为什么要谈论物理学呢?在人工智能领域也有类似的“统一”目标。在自然语言处理(NLP)领域,主导的建模架构是Transformer,而在计算机视觉领域,主要是卷积神经网络。然而,近年来情况发生了变化。NLP和CV能否通过基于Transformer的架构实现统一?让我们来看看!
什么是Transformer?
它有两个部分,前馈网络和自注意力。我们不会详细介绍自注意力,但在高层次上,它会将每个令牌与每个其他令牌进行比较,从而将运行时间提高到O(n**2)。总体目标是将n个令牌嵌入输入,并返回n个上下文丰富的嵌入。这个想法进一步形成了广泛使用的多头自注意力(MHSA),其在不同的输入令牌部分上并行使用了多组Q、K和V矩阵。然后在传递到MLP之前将产生的集合连接起来。这种技术非常有效,因为不同的头可以关注令牌之间的短程和长程关系,或者语义和句法关系。
您可能会问,如果这么好用,为什么我们不尝试用MHSA层替换卷积层,看看它是否做得更好?
这正是他们在这篇名为“Bottleneck Transformers for Visual Recognition”的论文中所做的。直接从论文的摘要中提取:“仅通过在ResNet的最后三个瓶颈块中将空间卷积替换为全局自注意,而不进行其他更改,我们的方法在实例分割和物体检测上显著改进了基线,同时减少了参数,延迟的开销最小。”这是多么惊人的事情啊!

唯一的区别是将3 × 3卷积层替换为MHSA
这可以通过直观地解释来解释,即左上角的感受野和右下角的感受野可能只在堆叠多个卷积层之后才能进行交互。在后期之前,没有全局交互。仅仅堆叠越来越多的层并不是真正需要的,而是需要一种明确的机制来建模全局依赖性,这就是MHSA在这里引入的新变化。
在NLP任务中,建模长程依赖性至关重要,我们很久以来都已经意识到了这一点,但是视觉领域一直只使用卷积,因为我们具有(附近像素比远处像素更重要)的局部性和平移不变性偏见。似乎在架构的某个地方,包含全局交互可以产生奇迹。BoTNET论文谈到了它是一个以CNN为基础的架构,在骨干部分中使用了自注意力。DETR模型(目标检测模型)具有基于CNN的骨干和顶部的变换块。但是,是否可以完全使用Transformer而不使用卷积来构建视觉系统呢?让我们来看看!
ViT
Google发表了一篇名为“一个图像值16x16个单词”的论文,在论文中,出现了一个视觉架构,里面没有一个卷积。一个256x256的图像有成千上万个像素,将每个像素制作成一个令牌,然后在自我关注步骤中使用,这在二次时间内根本不可行。因此,作者采取了将图像分成补丁并将它们通过线性层传递的方法,从而创建出每个补丁的扁平化嵌入,并在后续的变换步骤中使用它们。
从某种意义上说,Transformers缺乏CNN在图像类型数据设计中具有的归纳偏见。它们在将每个令牌与每个其他令牌进行比较方面非常通用,并且没有关于附近像素的任何信息。因此,位置嵌入被添加到线性投影中。即使在这些嵌入中,作者还表明更详细的二维嵌入与一维嵌入没有真正的收益,这显示了这种架构随着时间的推移学习位置的准确性。

ViT架构,如原始论文所示
论文链接:https://arxiv.org/pdf/2101.11605.pdf
· END ·
HAPPY LIFE

本文仅供学习交流使用,如有侵权请联系作者删除
相关文章:
计算机视觉中的Transformer
几十年来,理论物理学家一直在努力提出一个宏大的统一理论。通过统一,指的是将被认为是完全不同的两个或多个想法结合起来,将它们的不同方面证明为同一基础现象。一个例子是在19世纪之前,电和磁被看作是无关的现象,但电…...
UVA-1601 万圣节后的早晨 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 以三个点的当前位置作为状态,广度优先遍历,找到终点即为最短次数。 注意: 一次可以移动多个点,但是每个点只能移动一步。在同一次中…...
nacos 403错误
403错误 2023-08-12 18:04:55,418 [main] ERROR [com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder:106] [trace,span,parent] - get data from Nacos error,dataId:gateway-server.yaml, com.alibaba.nacos.api.exception.NacosException: <html><body&…...
Python遥感图像处理应用篇(三十四):GDAL+Scikit-image+GLCM计算遥感图像纹理特征
1.运行环境 GDAL 3.4.2,Scikit-image最新版本0.19.3,numpy1.21.5 GDAL主要用于实现图像的读取和保存,Scikit-image和numpy对图像进行各种计算处理。 在调试好之前,由于numpy版本(1.16.6)低的问题,运行提示如下错误,更新为1.21.5版本之后就可以正常运行了,在此记录一…...
solr迁移到另一个solr中(docker单机)
背景介绍 solr数据迁移,或者版本升级,需要用到迁移,此处记录一下迁移方法以及过程中遇到的问题。我这边使用的是docker环境,非docker部署的应该也是一样的。 solr部署教程 准备工作 ● solrA 版本: 8.11.2 (已有so…...
谁能讲清楚Spark之Spark系统架构
### 整体架构概述 Spark与Hadoop MapReduce的结构类似,Spark也采用Master-Worker结构。如果一个Spark集群由4个节点组成,即1个Master节点和3个Worker节点,那么在部署Standalone版本后,Spark部署的系统架构图如图2.1所示。简单来说,Master节点负责管理应用和任务,…...
力扣:59. 螺旋矩阵 II(Python3)
题目: 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全…...
【electron】electron项目创建的方式:
文章目录 【1】npm init quick-start/electron(推荐)【2】 克隆仓库,快速启动【3】 通过脚手架搭建项目【4】 手动创建项目 【Electron官网】https://www.electronjs.org/zh/docs/latest/api/app 【1】npm init quick-start/electron…...
Vim学习(一)——基本命令与三种模式
写在前面, 致敬 8月3日,Vim创始人Bram Moolenaar去世,在此向老爷子致敬!感谢他为这个世界带来的优秀编辑器Vim。 基本介绍 Vim全称叫Vi IMproved. 而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据&am…...
unity新输入系统的简单使用(New InputSystem)
1、在包管理器 unity注册表中下载安装InputSystem 2、给玩家添加组件PlayerInput,点击CreatAction,创建一个InputAct InputAct,这是玩家的输入文件,在里面可以设置玩家输入 3、使用 例如玩家控制角色移动 在InputAct中,默认已经设置好了移…...
Redis——特性介绍与应用场景
Redis特性介绍 In-memory data structrues 众所周知,MySQL是一种关系型数据库,其通过表的结构存储数据,就类似于建立了一个excel表格来存储数据。但是像视频这类数据并不适合存储在关系型数据库中,因此存在非关系型数据库——通…...
网络:路由
1. 路由器 路由器工作在三层,每个接口都处于不用的网段中,即不同的广播域。但大多情况下,两台路由器直接相连的接口是同一个广播域,即一个网段。 路由器具有判断网络地址和选择路径的功能,能在多网络互联的环境中&…...
利用三维内容编辑器制作VR交互课件,简单好用易上手
随着虚拟现实技术的不断发展,越来越多的教育机构开始尝试将其应用于教育教学中。然而,要实现这一目标并不容易,需要专业的技术支持和开发团队。 为了解决这一问题,广州华锐互动研发了三维内容编辑器,它是一种基于虚拟现…...
中国首款量子计算机操作系统本源司南 PilotOS正式上线
中国安徽省量子计算工程研究中心近日宣布,中国国产量子计算机操作系统本源司南 PilotOS 客户端正式上线。 如果把量子芯片比喻成人的“心脏”,那么量子计算机操作系统就相当于人的“大脑”,量子计算应用软件则是人的“四肢”。 据安徽省量子…...
基层社会治理平台建设方案[113页PPT]
导读:原文《基层社会治理平台建设方案[113页PPT]》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 完整版领取方式 完整版领取方式: 如需获取完…...
认识vite
一.了解vite的不同版本的更新 vite1版本是基于vue项目的,无法跨框架使用vite2可以跨框架(vue2,vue3,react)vite3模板变更;vite cli优化;import.meta.glob API变化;其他vite4主版本主…...
华为运动健康,十年创新天地宽
我听一位朋友讲过这样一个故事。某天早上,急诊科的医生迎来了一位患者,患者进来后直接说:“大夫,我房颤了。” 这位医生非常诧异,因为心脏房颤确实非常危急,但很多时候并没有明显的生理体征,患者…...
深度学习(37)—— 图神经网络GNN(2)
深度学习(37)—— 图神经网络GNN(2) 这一期主要是一些简单示例,针对不同的情况,使用的数据都是torch_geometric的内置数据集 文章目录 深度学习(37)—— 图神经网络GNN(…...
Unity游戏源码分享-乐节奏休闲游戏源码 guitar hero 支持mobile
Unity游戏源码分享-乐节奏休闲游戏源码 guitar hero 支持mobile 完整版下载地址:https://download.csdn.net/download/Highning0007/88198766...
VS Code配置Prettier格式化Apex
先决条件 安装nodejs和npm安装vs code安装salesforce extension pack 配置Prettier Apex 创建本地Salesforce项目 (Standard) command shift p -> SFDX: Create Project with Manifest -> Standard 打开terminal运行npm init生成package.json文件 安装prettier ap…...
第三章:生活中的数据现象
上一章节我们为大家揭开了“数据分析师”的神秘面纱,文章结尾我们聊到了一个很有意思的观点:买菜虽然用不到微积分,但如果你懂一点数据逻辑,你就能立刻知道某一价格的菜到底是买贵了,还是捡了便宜。 很多人觉得&#x…...
告别复杂建模!3D Face HRN人脸重建模型一键部署与使用全攻略
告别复杂建模!3D Face HRN人脸重建模型一键部署与使用全攻略 1. 从照片到3D模型:这个AI能做什么? 想象一下这样的场景:你手头只有一张普通的证件照,但需要在3D软件中快速创建一个逼真的人脸模型。传统方法可能需要数…...
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法 Q-Learning 是无模型、基于价值迭代的经典强化学习算法,核心就是让智能体通过不断试错,记住每个状态下做什么动作收益最大,最终学到最优决策策略。一、先搞懂:Q-Lea…...
OpenUtau终极免费开源音乐合成神器:零基础打造专属虚拟歌手完整指南
OpenUtau终极免费开源音乐合成神器:零基础打造专属虚拟歌手完整指南 【免费下载链接】OpenUtau Open singing synthesis platform / Open source UTAU successor 项目地址: https://gitcode.com/gh_mirrors/op/OpenUtau 你是否曾梦想创作属于自己的虚拟歌手歌…...
G-Helper:重新定义华硕笔记本性能控制的轻量级革命
G-Helper:重新定义华硕笔记本性能控制的轻量级革命 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar,…...
为什么你的Android手机越用越慢?Rust编写的Universal Android Debloater深度解析
为什么你的Android手机越用越慢?Rust编写的Universal Android Debloater深度解析 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and ba…...
从MATLAB到FPGA:手把手教你用Verilog在Vivado里实现SVPWM(附死区时间配置)
从MATLAB到FPGA:SVPWM算法在Vivado中的Verilog实现全解析 在电机控制领域,空间矢量脉宽调制(SVPWM)技术因其电压利用率高、谐波含量低等优势,已成为变频驱动系统的核心算法。对于已经掌握MATLAB仿真的工程师而言&#…...
如何将LTspice仿真数据高效导入MATLAB?实用技巧与自动化处理指南
如何将LTspice仿真数据高效导入MATLAB?实用技巧与自动化处理指南 【免费下载链接】ltspice2matlab LTspice2Matlab - Import LTspice data into MATLAB 项目地址: https://gitcode.com/gh_mirrors/lt/ltspice2matlab 作为一名电子工程师或科研工作者…...
告别网盘限速:2025年免费解锁八大网盘全速下载终极指南
告别网盘限速:2025年免费解锁八大网盘全速下载终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...
VisDrone2019数据集太难搞?用YOLOv5m训练无人机检测模型,我踩过的坑都帮你填平了
VisDrone2019数据集实战:YOLOv5m训练避坑全指南 第一次打开VisDrone2019数据集压缩包时,我被2.6万张无人机航拍图像震撼到了——这可能是目前最复杂的无人机视角目标检测基准。但当我真正开始用YOLOv5m训练时,才发现数据集规模只是第一个挑战…...
