当前位置: 首页 > news >正文

Vision Transformer(ViT)

Vision Transformer(ViT)是一种将​​Transformer模型​​应用于计算机视觉任务的创新方法,由Google Research团队在2020年提出。它打破了传统卷积神经网络(CNN)在图像处理中的主导地位,通过全局注意力机制直接建模图像块(patches)之间的关系,尤其在大规模数据集上表现出色。


​ViT的核心思想​

  1. ​图像分块处理​
    将输入图像分割为固定大小的​​图像块​​(如16x16像素),每个块展平后通过线性变换映射为嵌入向量(Embedding)。

    例如​​:一张224x224的图片,分割为16x16的块后,得到14x14=196个块。
  2. ​位置编码​
    为每个块添加​​位置嵌入​​(Position Embedding),以保留图像的空间信息(Transformer本身不感知位置)。

  3. ​Transformer编码器​
    将处理后的序列输入标准的Transformer编码器,通过​​多头自注意力机制​​(Multi-Head Self-Attention)捕捉全局依赖关系。

  4. ​分类头​
    使用特殊的​​[CLS]标记​​(类似BERT)或全局平均池化生成图像表示,最终通过全连接层分类。


​ViT的工作流程​

  1. ​输入处理​

    • 输入图像:(H, W, C) → 分割为N个块 → 每个块展平为(P²·C)维向量(P为块大小)。
    • 线性投影:将每个块映射为D维嵌入向量 → 得到序列(N+1, D)+1为[CLS]标记)。
    • 添加位置编码:为每个块分配位置信息。
  2. ​Transformer编码​

    通过多个Transformer层(如12层)处理序列,每层包含:
    • ​前馈网络(FFN)​​:非线性变换。
    • ​多头自注意力​​:计算块间相关性。
  3. ​分类输出​

    取[CLS]标记对应的输出向量 → 全连接层 → 类别概率。

​ViT vs. CNN:关键区别​

特性ViTCNN
​感受野​全局(自注意力)局部(卷积核逐步扩大)
​归纳偏置​无空间先验(需位置编码)局部性、平移不变性
​数据需求​需大规模数据(如JFT-300M)中小规模数据即可
​计算效率​高分辨率图像计算成本高适合高分辨率(池化降低维度)

​ViT的优缺点​

✅ ​​优点​​:

  • ​全局建模能力​​:自注意力机制捕捉长距离依赖。
  • ​可扩展性​​:模型深度和宽度易扩展(如ViT-Huge)。
  • ​统一架构​​:与NLP共享Transformer,便于多模态任务。

❌ ​​缺点​​:

  • ​数据依赖性强​​:小数据集上易过拟合,需预训练(如ImageNet-21k)。
  • ​计算资源消耗大​​:高分辨率图像处理成本高。
  • ​细节丢失​​:分块可能忽略局部纹理(可通过小尺寸块缓解)。

​ViT的变体与改进​

  1. ​DeiT​​(Data-efficient ViT)
    通过知识蒸馏(使用CNN作为教师模型)减少数据依赖。

  2. ​Swin Transformer​
    引入​​层级结构​​和​​滑动窗口注意力​​,提升分辨率适应性和计算效率。

  3. ​MAE​​(Masked Autoencoder)
    借鉴BERT的掩码建模,通过重建掩码图像块进行自监督预训练。


​应用场景​

  • ​图像分类​​(如ImageNet)
  • ​目标检测​​(如DETR)
  • ​图像生成​​(如ViT-GAN)
  • ​医学图像分析​​(如病理切片分类)

​代码示例(PyTorch)​

import torch
from torchvision.models import vit_b_16# 加载预训练ViT模型(ImageNet-21k预训练)
model = vit_b_16(pretrained=True)# 输入处理:224x224图像 → 分为16x16块
x = torch.randn(1, 3, 224, 224)
output = model(x)  # 输出类别概率

​总结​

ViT通过​​纯Transformer架构​​实现了图像的高效全局建模,推动了视觉与语言模型的统一。尽管对数据量和计算资源要求较高,但其在​​大规模任务​​和​​多模态学习​​(如CLIP)中的潜力使其成为计算机视觉领域的重要里程碑。

相关文章:

  • 小程序多线程实战
  • Excel里面怎样批量去掉字串包含的标点符号
  • Kotlin 内联函数深度解析:从源码到实践优化
  • 基于 Q-learning 的城市场景无人机三维路径规划算法研究,可以自定义地图,提供完整MATLAB代码
  • Best Video下载器——抖音视频去水印工具
  • AI日报 · 2025年5月10日|OpenAI“Stargate”超级数据中心项目掀起美国各州争夺战
  • 致远A8V5-9.0安装包(包含信创版)【附百度网盘链接】
  • 【ML-Agents】ML-Agents示例项目导入unity报错解决
  • 关于汇编语言与程序设计——单总线温度采集与显示的应用
  • 解决 SQL Server 2008 导入 Excel 表卡在“正在初始化数据流”问题
  • 前端取经路——现代API探索:沙僧的通灵法术
  • Axure疑难杂症:统计分析页面引入Echarts示例动态效果
  • Dia浏览器:AI驱动浏览网页,究竟怎么样?(含注册申请体验流程)
  • VUE CLI - 使用VUE脚手架创建前端项目工程
  • Linux——MySQL约束与查询
  • AI 助力,轻松进行双语学术论文翻译!
  • null 的安全操作 vs 危险操作
  • 第7次课 栈A
  • VScode密钥(公钥,私钥)实现免密登录【很细,很全,附带一些没免密登录成功的一些解决方法】
  • [架构之美]Spring Boot集成MyBatis-Plus高效开发(十七)
  • 被取消总统候选人资格,金文洙:将采取政治法律措施讨回公道
  • 中国一重集团有限公司副总经理陆文俊被查
  • 习近平向中国人民解放军仪仗队致意
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 印度外交秘书:“朱砂行动”不针对军事设施,无意升级事态
  • 外交部答澎湃:美方攻击抹黑中加关系与合作的卑劣图谋不会得逞