【11】ViT论文解析:图像为什么也能像句子交给Transformer

news2026/5/3 23:17:14
ViT论文解析图像为什么也能像句子交给Transformer论文链接https://arxiv.org/abs/2010.11929论文仓库https://github.com/google-research/vision_transformer在Transformer几乎改写完自然语言处理之后视觉领域并没有立刻跟上。同一个时期里NLP 已经习惯把一句话拆成 token 序列再交给自注意力建模图像分类这边却还在沿着ResNet、EfficientNet这条卷积路线继续打磨。问题不在于大家没见过注意力而在于一张图和一句话并不像同一类对象。句子天生就是离散序列图像却是二维连续信号。局部纹理、边缘、形状和空间邻接关系都缠在一起。把卷积拿掉之后这些原本由结构直接提供的先验还能不能保住一直是个很实在的问题。ViT的冲击力就在这里。它不是在卷积网络里插入几个注意力模块也不是继续沿着“卷积做主干、注意力做增强”的路线往前推。它直接换了问题如果尽量少改动标准Transformer只把图像改写成 patch 序列再用足够大规模的数据做预训练卷积是不是就不再是视觉主干的必要前提。这里先把patch说清楚它就是把整张图切成很多固定大小的小方块。后面ViT做的第一件事就是先把这些小方块当成视觉里的“词”再把它们送进Transformer。论文最后给出的答案可以先压缩成三句话图像确实可以先切成 patch再改写成 token 序列纯Transformer确实可以直接承担图像分类主干决定胜负的关键不只是结构替换而是大规模预训练把优劣排序重新洗了一遍背景这篇论文到底在验证什么ViT的直接研究对象不是所有视觉任务也不是所有Transformer变体。它研究的是图像分类主干网络而且用的是尽量接近 NLP 标准Transformer的最小改造版本。这点很关键。作者不是想为视觉重新发明一整套复杂结构而是要测试一条更极端的路线把图像切成 patch再把 patch 像词 token 一样交给Transformer。这样做同时带来两面性好处NLP 中已经成熟的结构和实现几乎可以原封不动地拿过来风险卷积网络长期依赖的图像归纳偏置会被大量拿掉所以全文的核心矛盾并不复杂CNN的优势是局部性、平移等变性和二维邻域结构被直接写进了模型Transformer的优势是更通用、更可扩展但它默认不带这些视觉归纳偏置核心判断ViT真正证明的不是后者“也能跑”而是在大规模预训练设定下后者可以变成更优的默认路线。为什么视觉模型长期依赖CNN卷积网络长期统治视觉不只是历史惯性。视觉任务天然带着很强的结构特征。相邻像素通常比远处像素关系更强局部纹理先组成边缘再组成部件再组成整体对象。CNN正好把这种规律写进了模型结构里局部感受野、权重共享、层级特征提取这些都在替模型提前表达“图像应该怎么学”。这也是为什么在很长一段时间里视觉研究更愿意在卷积主干上做改进而不是彻底换掉主干。因为卷积给的不是一两个技巧而是一整套归纳偏置。Transformer在这件事上的立场完全不同。它不假设局部一定比全局更重要也不预设先学边缘再学形状。它更像一个通用序列建模器只负责让 token 之间相互通信至于哪些关系该被重点建模要靠数据自己学出来。下面这张解释图把两条路线的差别压缩得很直观。图 1. 左边是CNN先抓局部、逐层扩大感受野的路线右边是ViT先切 patch再把 patch 当成 token 送入Transformer的路线。这张图要看的不是“谁更先进”而是两边把什么写进了模型。CNN把局部结构先验写进了网络本身所以小数据场景通常更稳ViT把更多自由度留给数据因此对预训练规模更敏感后面的实验结果基本都在验证这件事。也正因为前面这层差异存在接下来最自然的问题就变成了如果不用卷积ViT到底是怎么把一张图送进Transformer的。方法ViT到底怎么处理一张图ViT的方法部分非常克制。它引入的新设计并不多主要只有三件事把图像切成固定大小的 patch把 patch 线性投影成 token embedding在 token 序列前面加一个class token再接标准Transformerencoder原论文总览图把这个过程画得很清楚。图 2. 原论文Figure 1。图像被切成 patch每个 patch 被线性投影后加上位置编码整个序列进入标准Transformerencoder分类结果由class token的输出给出。顺着这张图往下看论文真正想强调的是它没有给视觉重新设计一套复杂骨干而是把图像输入改写成了标准Transformer能直接接住的形式。写成更技术的形式论文给出的输入定义是输入图像为x∈RH×W×Cx \in \mathbb{R}^{H \times W \times C}x∈RH×W×Cpatch 大小为P×PP \times PP×Ppatch 数量为NHWP2N \dfrac{HW}{P^2}NP2HW​每个 patch 被展平成长度为P2CP^2CP2C的向量再通过可学习矩阵EEE投影到统一维度DDD对应的初始输入可以写成z0[xclass;xp1E;xp2E;…;xpNE]Epos z_0 [x_{\text{class}}; x_p^1E; x_p^2E; \ldots; x_p^NE] E_{\text{pos}}z0​[xclass​;xp1​E;xp2​E;…;xpN​E]Epos​这里有两个容易被低估的点。第一ViT不是把像素直接拿来做 token而是先把像素块压成 patch token。patch 化的意义不只是“形式上更像 NLP”而是把像素级别几乎不可用的注意力成本压缩成 patch 级别可训练的序列长度。第二位置编码仍然是一维、可学习的位置编码而不是特意为视觉定制的复杂二维结构。论文明确说他们没有观察到更复杂的位置编码带来显著收益。整篇论文的态度都很一致尽量少做视觉特化尽量测试标准Transformer到底能走多远。结构先搭到这里下面就要回答另一个更现实的问题这套设计为什么没有在一开始就直接赢过CNN。为什么ViT一开始打不过CNNViT最值得细读的部分不是公式而是Inductive bias那一节。作者明确指出ViT比CNN少得多的图像专属归纳偏置。CNN里局部性、二维邻域结构和平移等变性会在网络每一层持续起作用。ViT不一样。它只有两处显式用了二维图像结构一开始把图像切成 patchfine-tuning 时为了适配更高分辨率对位置编码做二维插值除此之外patch 之间的空间关系、哪些区域彼此相关、局部模式该如何被优先建模几乎都要靠数据自己学出来。这直接解释了论文里最重要的一个现象ViT并不是从一开始就压过CNN。如果只在ImageNet这种中等规模数据上训练、又没有很强的正则化ViT的准确率会比同级别ResNet低几个点。这不是失败案例而是论文结论的一部分。少了卷积写死在结构里的局部先验模型就更依赖大规模数据去把这些规律重新学回来。为什么论文还要讲hybrid和高分辨率微调论文并不是只比较“纯ViT”和“纯ResNet”。方法部分专门介绍了 hybrid architecture。hybrid 的做法是输入序列不直接来自原始图像 patch而是来自 CNN feature map。也就是说前端先让卷积提一层局部特征再把 feature map 展平并投影成Transformer所需的序列输入。这一步的意义很清楚。论文没有把问题偷换成“卷积一无是处”而是把 hybrid 当成中间参照物去回答更细的问题局部卷积前端在小预算、小模型下是否仍有帮助如果模型继续变大、数据继续变多这种帮助会不会保留下来后面的 scaling 结果表明hybrid 在较小计算预算下确实略优但这个优势会随着模型规模上升而消失。这意味着卷积前端不是完全没价值而是在大规模预训练 regime 里不再是决定性前提。微调和高分辨率处理也值得单独说清。论文的做法是预训练后移除原有预测头换成一个零初始化的D×KD \times KD×K线性层其中KKK是下游类别数fine-tuning 时通常使用比预训练更高的输入分辨率麻烦在于分辨率变大后patch 大小不变序列长度就会增加。Transformer理论上可以处理更长序列但预训练好的位置编码无法直接对齐新分辨率。论文采取的办法是对预训练位置编码做二维插值。这一步很重要因为它说明ViT并不是完全拒绝视觉结构而是把视觉归纳偏置压缩到少数必要节点而不是像CNN那样在每一层反复写入。ViT-B/16这种名字到底是什么意思ViT还有一个影响很深、但常被一笔带过的贡献它把视觉 backbone 的命名方式也带进了新的范式。图 5. 原论文Table 1。这张表给出ViT-Base、ViT-Large、ViT-Huge的层数、隐藏维度、MLP 维度、注意力头数和参数规模。这张表先回答的是“B、L、H到底差在哪”。答案是模型层数、隐藏维度、MLP 宽度和参数规模都在变大。后面/16、/32这种后缀则对应 patch 大小。所以ViT-B/16这种名字实际上同时告诉了两件事这是Base规模的模型输入会被切成16×1616 \times 1616×16的 patchpatch 越小token 数量越多信息更细但计算开销也会上升。patch 越大序列更短计算更省但输入一开始就更粗。后续很多视觉模型的设计权衡仍然围绕这条线展开。实验数据一变大为什么ViT就反超了如果只看结构ViT很容易被误读成一句过于简单的话把图像切成 patch再把Transformer套上去事情就成了。原论文最重要的实验恰恰是在反驳这种读法。图 3. 原论文Figure 3的核心部分。横轴是预训练数据集规模纵轴是迁移到ImageNet后的 Top-1 准确率。这张图先回答一个关键问题ViT到底是不是从一开始就比CNN更好。答案不是。图里从左到右分别对应更大的预训练数据规模。数据还小时BiT这类强ResNet基线并不落下风甚至更稳。可一旦预训练规模从ImageNet走向ImageNet-21k再走向JFT-300M更大的ViT变体开始明显上升并逐步压过卷积模型。核心证据ViT的成功不是单靠结构更换直接得到的而是“patch token 化 大规模预训练”共同成立的结果。少了后半句这篇论文就会被误讲成一次简单的架构替换。为什么scaling study说明ViT不是偶然涨点如果说Figure 3说明了“数据规模会改写胜负关系”那么Figure 5和Table 6说明的是这种变化不是单点偶然而是出现在更系统的 scaling 研究里。论文在JFT-300M上做了一次受控 scaling study模型池包括7 个ResNet6 个Vision Transformer5 个 hybrid作者把迁移性能对照总预训练计算量来画得到Figure 5。图 4. 原论文Figure 5。图里比较的不是单一精度而是不同架构在总预训练计算量下的迁移表现。这张图先看左下角小模型或较小预算下hybrid 和ResNet仍然有竞争力。再往右上看ViT的点越来越靠前。这个趋势说明它不是只靠“多喂一点算力”碰巧赢了某个 benchmark而是扩展曲线本身开始更占优。论文从Figure 5和Table 6提炼出的三个结论可以直接保留性能/计算权衡ViT在 performance/compute trade-off 上整体压过ResNethybrid 的位置小预算下略优但随着模型规模变大这个差距会消失扩展趋势在论文尝试的范围里ViT的扩展曲线还没有明显饱和其中第一点最关键。作者的表述非常直接为了达到相同的平均迁移性能ViT大约只需要2-4×2\text{-}4\times2-4×更少的计算。这才让ViT不再只是“某个大模型跑出了更高分数”而更像是一条值得继续扩展的新路线。除了分数更高论文还补了什么证据ViT没有停在“分数更高”这里。论文还尝试解释模型到底学到了什么、代价又是否真的不可接受。在Inspecting Vision Transformer那一节里作者观察到第一层 patch 投影学到的基函数看起来是合理的局部结构表示位置编码的相似性会反映图像内的距离关系一些 attention head 在很浅层就已经能整合全图信息另一些 head 在低层保持较小的 attention distance更像在做局部处理这些观察不能单独证明模型已经“真正理解了视觉结构”但足以说明去掉卷积之后模型并没有完全失去局部感而是在训练后自己学出了局部和全局两种不同尺度的行为模式。效率部分论文在附录里还给出了经验计算成本分析。图 6. 原论文Figure 12。左图比较推理速度右图比较同设备上能容纳的最大 batch size。这张图给出的结论是速度在相近模型级别上ViT的实际推理速度和类似规模的ResNet可以接近内存大模型下ViT在每核可容纳 batch size 上更占优也就是更省内存这里的边界也要说清。论文并没有说“自注意力从此完全没有分辨率成本”理论上的双二次增长仍然存在它只是在说明在论文考察的模型规模和分辨率范围里ViT并没有表现出直觉上那么不可接受的效率问题。结论与边界哪些结论已经成立哪些还不能下如果把ViT的结论压缩成最严格的版本论文已经证明的是纯Transformer可以直接用于图像分类主干当预训练规模足够大时缺少卷积归纳偏置不再构成决定性障碍在大规模预训练设定下ViT在迁移性能与计算成本权衡上可以优于强CNN基线hybrid 前端在小预算下有帮助但不是大规模 regime 里的必要条件论文没有直接证明的是Transformer在所有视觉任务上都会天然优于CNN纯Transformer在小数据场景下同样更优patch token 化是视觉建模的最终形式更高分辨率和更长序列下的效率问题已经彻底解决边界提醒这两个列表必须分开。否则就会把这篇论文从一次严谨的 regime 验证误讲成“卷积时代结束”的口号。ViT为什么成了后续视觉大模型的起点如果只把ViT看成“图像分类精度更高了一些”这篇论文的重要性就被说轻了。它留下的是一条之后不断被复用的主线图像可以先被 token 化视觉主干可以直接使用Transformer大规模预训练会明显改变视觉模型的优劣排序后续多模态模型可以直接继承这套视觉编码方式这条线后来一路走到了CLIP、BLIP-2、LLaVA、InternVL这些视觉语言模型里。很多人今天说“视觉塔”时脑子里默认对应的其实已经是某种ViT变体而不是传统ResNet。历史位置ViT的位置更像一个分界点。它没有终结卷积也没有把视觉问题一次性彻底解决但它证明了另一件此前并不显然的事图像也可以像句子那样先变成 token再交给统一的序列模型去学。最后只记住三件事ViT把图像改写成了 patch token 序列预训练规模一变大胜负关系开始倒向Transformer它把视觉 backbone 从卷积范式推向了统一的 token 序列范式

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…