Vision Transformer 总结

这里写自定义目录标题

  • [Vision Transformer](#Vision Transformer)
    • Transformer
    • 结构
    • [相较于CNN 的优势在哪里?](#相较于CNN 的优势在哪里?)
  • [Transformer in Transformer](#Transformer in Transformer)
  • 代码实现的一些描述

Vision Transformer

Transformer

结构

ViT中最重要的部分是self-attention, 对照片做的patches, 以及position embedding。self-attention机制在之前的博客里面也有讲过,在这里主要是计算每一个patch 之间的相关性,多头的自注意力机制有些许不一样的。我个人的理解是单头的注意力机制只能计算某一个特征和另外一个特征的相关性,但是多头注意力机制可以同时处理多个特征的和另外多个特征的相关性。我感觉这里可以结合"线性分类器" 和 "CNN"的区别来理解。 线性分类器只能学习到输入数据的一个mode,比如 "一个人的看向左边",但是如果输入数据中还有:'一个人看向右边'的图片,线性分类器就无法准确的学习,但是CNN却因为很多的kernels,所以可以学习到一个物体的不同mode。 这里的self-attention 和multi-head self-attention 可以采用的同样的方式来理解。

至于patch, 我认为是将图片序列化的一个过程而已,因为Transformer本身是无法处理图片格式的数据的。所以将图片打散成小的patch更符合Transformer的输入条件。但是图像数据本身携带了位置信息的,通过这样的"序列化"过程会导致图像丢失之前的位置信息,所以position embedding 在ViT中才如此的重要。所谓position embedding 实际上是加在每一个patch上的一个小向量来表示当前patch的位置信息。

相较于CNN 的优势在哪里?

想要获得全局的信息CNN 通常需要通过堆叠深度来实现感受野的增长。因为对于CNN 来说 第N层的特征图上的一个像素点,是第N-1层的一片区域。随着层数的变多,网络的感受野也会逐渐变大,但是通常是需要较深的深度才能达到这个效果,较深深度不仅会出现计算力吃紧的问题,也是潜在出现过拟合的原因,而transformer 因为每一层都会整合patch之间的信息,他可以从第一层开始就看到全局信息,在一定程度上规避了CNN 需要非常深的深度才能获得较好全局信息的问题。

Transformer in Transformer

ViT中将图像分成patches不是最优的选择。因为patch中包含的不同比例和位置的信息不能较好的处理。所以TNT中,进一步将patch再拆分成更小的单位然后进行重组。论文中将patch称为 'visual sentance',把进一步拆分的更小单位称之为'visual words'。

文章只是使用了一个inner VIT 去进一步拆分patch而已,outer VIT 和经典VIT一致。

代码实现的一些描述

postional embedding 和 patch embedding都是使用的一层Conv2D来完成的。将位置和patch 都embed到相同的维度上。注意力机制的QKV 都是使用单独的一层MLP,多头注意力就是把输入特征维度拆分开即可。

相关推荐
墨染天姬7 小时前
【AI】端侧AIBOX可以部署哪些智能体
人工智能
AI成长日志7 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
2501_948114247 小时前
2026年大模型API聚合平台技术评测:企业级接入层的治理演进与星链4SAPI架构观察
大数据·人工智能·gpt·架构·claude
小小工匠7 小时前
LLM - awesome-design-md 从 DESIGN.md 到“可对话的设计系统”:用纯文本驱动 AI 生成一致 UI 的新范式
人工智能·ui
黎阳之光7 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
小超同学你好7 小时前
面向 LLM 的程序设计 6:Tool Calling 的完整生命周期——从定义、决策、执行到观测回注
人工智能·语言模型
智星云算力8 小时前
本地GPU与租用GPU混合部署:混合算力架构搭建指南
人工智能·架构·gpu算力·智星云·gpu租用
jinanwuhuaguo8 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
xiaozhazha_8 小时前
效率提升80%:2026年AI CRM与ERP深度集成的架构设计与实现
人工智能
枫叶林FYL8 小时前
【自然语言处理 NLP】7.2.2 安全性评估与Constitutional AI
人工智能·自然语言处理