精读笔记02_ViT 📅 发布时间:2026/7/8 9:40:38 👁️ 浏览次数: 【3D点云暑期学习】精读笔记(2)ViT — An Image is Worth 16x16 Words研0暑期进组学习 · 3D点云多模态方向 · 论文精读系列第 2 篇论文信息标题An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale作者Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, et al.发表venueICLR 2021阅读日期2026年6月写在前面如果说 Transformer2017证明了注意力机制可以做序列建模那么 ViT2020就证明了图像也可以变成序列用同一套 Transformer 来处理。这篇论文打破了一个根深蒂固的信念——CV 必须用 CNN。在 ViT 之前所有人都认为卷积的局部性和平移等变性是视觉任务的必需品。ViT 说不只要数据够多纯 Transformer 也能做得更好。为什么这篇论文对我的 3D 点云主线至关重要因为 CLIP 的图像编码器用的是 ViTUni3D 的 3D 编码器直接用 2D 预训练的 ViT 初始化。理解 ViT就是理解后续所有多模态模型的视觉骨架。一、关于 Patch Embedding图像块嵌入1.1 为什么要进行 Patch Embedding两个原因1Transformer 天生吃的是 1D 序列比如句子里的单词。Patch Embedding 就是把 2D 的图像强行转化成 1D 的视觉句子其中每个 Patch 等价于一个视觉单词。2解决计算量爆炸问题如果以每个像素作为一个 Token224×224 就有50,176个 Token自注意力机制复杂度 O(N²)根本算不动。切成 16×16 后Token 数骤降为196个计算量变得可以接受。1.2 如何做 Patch Embedding输入图像 x ∈ R^{H×W×C}H 为高度W 为宽度C 为通道数彩色图像为 3。以 224×224 图像为例切成 16×16 的 patch。第一步切分Patches将图像分成互不重叠的 N 个小块。每个小块的空间尺寸是 P×P这里 P16。224/1614所以横竖各有 14 个格子总共 N 14×14 196个 Patch。第二步展平Flattening把每个小 Patch 里面的所有像素值拉平成一个一维向量。每个 Patch 原本是 16×16×3 768个数值。拉平后得到 196 个长度为 768 的向量。公式表达为x_p ∈ R^{N×(P²·C)}在这里就是 R^{196×768}。第三步线性投影Linear Projection使用一个可训练的权重矩阵 E维度为 (P²·C)×D即 768×D将每个 768 维的原始像素向量乘以这个矩阵映射成一个 D 维的嵌入向量。这个 D 就是 Transformer 整个网络内部使用的恒定隐向量维度比如 ViT-Base 中 D768。最终输出196 个 D 维向量这些就是 Patch Embeddings图像块嵌入也就是送入 Transformer 的 Token。224×224 图像 ↓ 切分成 16×16 的 Patch 14×14 196 个 Patch ↓ 每个 Patch 展平 196 个 768 维向量 ↓ 线性投影 (768→D) 196 个 D 维 Token → 送入 Transformer1.3 这样做的缺陷是什么做完 Patch Embedding 后原本 2D 的空间结构哪个 patch 在左上哪个在右下被彻底抹平了序列中所有的 patch 都是平权的。为了弥补这一点论文紧接着会加上 Position Embeddings位置嵌入。这也是论文强调的关键点ViT 几乎没有 CNN 那样的局部性和平移等变性先验。它把空间结构完全交给位置编码去学习而 Patch Embedding 本身只负责把像素变成向量。二、可学习的 1D 位置编码2.1 为什么是 1D论文明确指出他们试过更复杂的 2D 感知编码分别学横坐标和纵坐标但发现性能没有显著提升所以为了简洁和高效直接选用了 NLP 中最通用的 1D 编码。2.2 为什么是可学习的Learnable在原始的 NLP Transformer 中位置编码有两种做法固定的正弦波Sinusoidal不需要训练用数学公式生成可学习的Learnable像神经网络的权重一样通过梯度下降学出来ViT 选择了后者。这些位置向量不是人为设定好的数学公式而是随着 JFT-300M 等大数据集的预训练通过梯度下降慢慢学出来的。好处模型可以根据数据分布自由地调整位置向量之间的距离感和方向感比死板的固定公式更加灵活。2.3 它是怎么加上去的关键机制一定要注意代码实现中的细节Position Embedding 是**“加”**在 Patch Embedding 上的而不是拼接。公式为z 0 [ x c l a s s ; x p 1 E ; … ; x p N E ] E p o s z_0 [x_{class}; x_p^1 E; \dots ; x_p^N E] E_{pos}z0[xclass;xp1E;…;xpNE]Epos这意味着每个 Patch 的最终输入向量 图像像素映射来的语义特征该位置的空间坐标特征。因为两者维度都是 D比如 768 维直接相加后Transformer 的每一层就都能同时利用这个 Patch 是什么内容和这个 Patch 在哪这两种信息了。2.4 惊人的发现1D 编码自学出了 2D 布局研究者计算了 196 个位置编码之间的余弦相似度越相似说明编码越接近。结果发现虽然我们只给了它一维的序号0~195但模型硬是自学出了二维的空间拓扑结构邻近性物理位置上越近的 Patch它们的位置编码余弦相似度越高左上角附近的几个格子颜色很接近。行列结构同一行或同一列的 Patch位置编码呈现出明显的规律性甚至隐隐约约有类似正弦波的周期性结构。结论1D 可学习位置编码完全有能力隐含地表征 2D 图像的空间布局不需要人工去设计复杂的 2D 编码。这从侧面说明了 Transformer 的强大——给它最简单的输入它能自己悟出结构。三、为何 ViT 需要在大数据预训练后表现更好这是 ViT 最常被讨论的问题为什么在小数据集上 ViT 打不过 CNN但在大数据上却反超3.1 CNN 自带的归纳偏置Inductive Bias归纳偏置可以理解为模型自带的、不用学就会的先验知识。CNN 有两个强大的归纳偏置归纳偏置含义作用局部性Locality卷积核默认只关注相邻区域如 3×3 的邻居天生认为像素挨得近就是有关系平移等变性Translation Equivariance一个特征无论在图片哪个位置同一个卷积核都能识别猫耳朵在左上角或右下角都能被检测到这些先验极其强大意味着 CNN 哪怕只给 100 万张图ImageNet也能很快学会识别物体因为它不需要去学空间是什么——它天生就知道。3.2 ViT 缺乏归纳偏置ViT 只在切分 Patch 和微调插值位置编码时用到了 2D 结构。在真正的 Transformer 层中自注意力是全局的第一个 Patch 可以直接和最后一个 Patch 计算相似度。ViT 一开始并不知道相邻很重要。MLP 是局部的但只作用于单个 Token。位置编码是加进去的不是天生的虽然加了 1D 可学习位置编码但这些编码最初只是随机的数字模型必须从头去背诵哪几个编码代表上下、哪几个代表左右。3.3 小数据ViT 不如 CNN如果只给 ViT 喂 100 万张图ImageNet它的泛化能力很差。因为它会把大量的算力浪费在猜测空间拓扑结构上而不是去学物体长什么样。论文原话“在没有强正则化的情况下ViT 比同等大小的 ResNet 低几个百分点。”3.4 大数据ViT 超越 CNN当见过 3 亿张千奇百怪的图片后JFT-300M发生了质变从背诵到理解空间ViT 不再需要去猜测空间关系了。它通过海量数据硬生生地在注意力权重中悟出了 2D 拓扑结构。容量Capacity优势释放ViT 的 Transformer 架构比 CNN 拥有更大的模型容量和更灵活的感受野。CNN 的局部性是一种强制约束——在小数据时是福音但在大数据时成了枷锁。它永远看不到全局的长程依赖。而 ViT 在大数据下不仅学会了局部纹理还能轻松捕捉到远距离像素之间的关联比如狗的鼻子和狗的尾巴之间的关系这是 CNN 很难做到的。一句话总结CNN 的归纳偏置是一种提前透支——用先验换数据效率ViT 用数据换自由度——大数据下自由度的优势碾压了先验的便利。四、模型架构解析论文 Figure 1ViT 模型概览。将图像切分为固定大小的 Patch线性嵌入后加位置编码送入标准 Transformer Encoder。分类时使用可学习的 [CLS] Token。4.1 数据流原始图像 (224×224×3) ↓ 切分 展平 196 个 Patch (每个 768 维) ↓ 线性投影 196 个 D 维 Token ↓ 前面拼接 [CLS] Token 197 个 D 维 Token (1 CLS 196 Patch) ↓ 位置编码 197 个 D 维 Token (含位置信息) ↓ Transformer Encoder × L (如 12 层) 197 个 D 维输出 Token ↓ 取 [CLS] Token 的输出 1 个 D 维全局特征 ↓ MLP Head 分类结果4.2 关键设计决策设计选择理由Patch 大小16×16平衡计算量与信息保留196 个 Token位置编码1D 可学习2D 无显著提升选最简方案[CLS] Token借鉴 BERT汇聚全局信息用于分类归一化顺序Pre-Norm先 LayerNorm 再 Attention训练更稳定架构仅 Encoder分类任务不需要 Decoder五、实验亮点预训练数据JFT-300M3 亿张图、ImageNet-21k1400 万张、ImageNet-1k130 万张主要结果ViT-H/14 在 ImageNet-21k 上达到 88.55% Top-1 准确率超越所有 CNN关键发现数据规模 vs 性能曲线显示ViT 在大数据下性能饱和更慢潜力更大小数据下 ViT 不如 ResNet迁移学习大规模预训练后ViT 在 CIFAR-100、VTAB 等 5 个下游任务上均达 SOTA六、个人思考局限性数据饥渴需要海量数据预训练才能发挥优势对数据量有限的研究场景不友好计算成本高大规模预训练需要大量 TPU/GPU 资源Patch 粒度固定16×16 的 Patch 大小是预设的对细粒度识别如密集场景可能信息损失与 3D 点云主线的联系ViT 对我的 3D 主线有直接且关键的意义CLIP 的图像编码器就是 ViT第二周精读理解 ViT 的 Patch Embedding 和 CLS Token才能理解 CLIP 如何编码图像Uni3D 直接用 ViT 做 3D 编码器第六周精读用 2D 预训练的 ViT 初始化把 3D 点云当成序列输入——这是 2D 知识迁移到 3D 的核心思路点云与图像的本质相似性点云是 3D 空间中的无序点集图像是 2D 空间中的像素阵列。ViT 证明了把空间数据序列化后用 Transformer 处理是可行的这为 PointNet → Transformer 的演进提供了理论依据特别值得注意的是ViT 的 Patch Embedding 思路把连续空间切分成离散 Token与 PointNet 的逐点编码把每个 3D 点作为一个 Token在哲学上是相通的。后续的 Point-Bind 正是沿着这条路走的。可改进点可以探索动态 Patch 大小类似动态分辨率在不同区域用不同粒度3D 点云能否借鉴 Patch Embedding把点云分簇后每簇作为一个 Token这与 PointNet 的分组策略有异曲同工之妙本周系列博文精读笔记(1)Attention Is All You Need精读笔记(2)ViT ← 当前对比学习(1)Transformer vs ViT 架构对比周报(1)第一周学习总结上一篇精读笔记(1)Attention Is All You Need下一篇对比学习(1)Transformer vs ViT 架构对比
STM32与ISOM8710构建高速安全隔离通信系统 1. 高压安全隔离的核心需求与挑战在工业自动化、电力电子和医疗设备等领域,高压电路与低压控制系统的安全隔离是确保设备可靠运行和人员安全的关键技术。传统的光耦隔离方案虽然成熟,但在高速数据传输、抗干扰能力和体积方面存在明显局限。ISOM8710作为德… 2026/7/8 9:40:38
基于ADS127L11和MK60DN512VLQ10的高精度数据采集系统设计 1. 项目概述:高精度模拟信号采集系统设计在工业测量、医疗设备和科学仪器等领域,我们经常需要将微弱的模拟信号转换为高精度的数字信号。这次我要分享的是一个基于ADS127L11 ADC和MK60DN512VLQ10 MCU的高性能数据采集系统设计方案。这个组合特别适合需要… 2026/7/8 9:34:28
AI Research OS:将Obsidian笔记转化为智能体长期记忆系统 🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你正在使用 Obsidian 管理个人知识库,却苦于笔记内容无法被 AI 智能体直接理解和调用,那么今天要介绍的 … 2026/7/8 9:34:28
小红书批量下载终极指南:5种高效内容采集方法全解析 小红书批量下载终极指南:5种高效内容采集方法全解析 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&#… 2026/7/8 11:03:59
ClassFinal 加密原理与安全边界:3 种潜在破解路径与防御策略分析 ClassFinal 加密原理与安全边界:3 种潜在破解路径与防御策略分析在当今数字化时代,保护Java应用程序的知识产权变得尤为重要。ClassFinal作为一款专业的Java字节码加密工具,为开发者提供了一种有效防止反编译的解决方案。本文将深入探讨Class… 2026/7/8 11:01:58
ADP5350与PIC18F85J10在工业嵌入式系统中的电源管理方案 1. 为什么选择ADP5350与PIC18F85J10组合 在工业级嵌入式系统中,电源管理单元(PMIC)的选择往往决定了整个系统的稳定性和续航能力。ADP5350这颗来自ADI的高集成度PMIC芯片,配合Microchip的PIC18F85J10单片机,形成了一个… 2026/7/8 10:59:53
【JAVA毕设源码分享】基于springboot高校教室设备故障报修信息管理系统的设计与实现(程序+文档+代码讲解+一条龙定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/8 10:59:53
Linux环境变量与数组变量学习笔记 Linux环境变量、PATH、Bash启动文件及数组变量知识体系详解一、整体知识框架整套知识点分为四大模块:局部与全局环境变量体系、PATH核心环境变量、Bash Shell启动配置文件、Shell数组变量。局部变量仅限当前会话使用,全局环境变量可被子进程继承… 2026/7/8 10:57:48
RStudio新手实战指南:四大面板、项目机制与高效快捷键 1. RStudio基本操作:从零开始的IDE实战指南RStudio不是R语言本身,而是运行R语言最主流、最成熟的集成开发环境(IDE)。很多人刚接触时容易混淆——R是编程语言,像汉语;RStudio是写汉语的Word语法检查器自动翻… 2026/7/8 10:55:45
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58