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

ViT: 用transformer架构解决视觉问题

其意义在于证明了transformer架构的通用性
结论:

  1. transformer模型可以不做改动来解决计算机视觉问题
  2. 小规模数据上略输于CNN,中等或大规模数据集上,表现相当或优于CNN
  3. 在计算效率上,训练同等精度的模型,transformer模型比卷积神经网络模型更有优势
    从模型架构上来看ViT由三部分组成:Linear Projection of Flattened Patches(Embedding层)、transformer encoder MLP(分类头)

    由于transformer模块,要求输入为token序列[num_token, token_dim]而图像数据而言,其数据格式为[H, W, C]

Patch embedding

以ViT-B/16为例,假设输入图像大小为[224,224,3] 按照16x16大小的Patch进行划分,得到14×14(196)个块,每个Patche数据shape为[16, 16, 3]线性映射到一维向量得到->[768]
在实际代码中,上述过程通过一个卷积层(核大小为1616,步长为1616)来实现,通过卷积[224, 224, 3]->[14, 14, 768]-> 再展开[196, 768]此时正好变成了一个二维矩阵,正是Transformer想要的
过程:

  1. 输入图像: [Batch_Size, 224, 224, 3]
  2. 卷积层操作: Conv2D(kernel_size=(16, 16), stride=(16, 16), padding=‘valid’, out_channels=768)
  3. 卷积输出: 经过这个 Conv2D 层后,输出的形状将是 [Batch_Size, 14, 14, 768]
  4. 展平/重塑: 最后,将 [Batch_Size, 14, 14, 768] 重塑为 [Batch_Size, 196, 768]

Transformer Encoder

然后再开头拼接一个 [CLS]token 作为图像的分类 -> [Batch_Size, 197, 768] 通过Encoder后shape不变
核心是自注意力机制,序列中的每个 Token(包括 [CLS] Token 和所有的 Patch Tokens)都可以相互关注,[CLS] Token 经过多层 Transformer Encoder 后,它会“吸收”并“聚合”来自所有图像 Patch 的信息。

MLP Head

ViT 通过 Transformer Encoder 之后,只需要取出最开头的那个 [CLS] token 对应的输出去做分类

模型种类:

归纳偏置:解释为什么在小数据量时ViT的效果不如CNN

在建模时引入人的先验经验,不是从数据中学来的;这导致ViT在小规模数据上效果不如resnet
卷积操作的归纳偏置:(每一层)

  1. 局部性
  2. 平移不变性
    ViT的归纳偏置:(仅在切分patch时,后续注意力计算是没有归纳偏置的)
  3. 切分patch时引入局部性
  4. 多个Patch用同一个线性映射层,引入了平移不变性
http://www.jsqmd.com/news/493652/

相关文章:

  • Phi-3 Forest Laboratory 开发环境搭建:Ubuntu系统保姆级部署教程
  • 卷积怎么实现?手写 CNN 才让我真正搞懂 im2col
  • 英伟达 NIM API 配置 Claude Code 完整教程(使用 CCR UI)
  • 暗黑破坏神2存档编辑器终极指南:免费开源工具让你的游戏体验更完美
  • 向量数据库存储与检索
  • 01-N8N进阶指南-利用Docker容器化部署与云服务集成实战
  • 微信小程序文件索引化管理与高效检索实践
  • Z-Image-GGUF助力CAD设计:自动生成产品概念草图与渲染图
  • SpringBoot项目在IDEA中无法启动?手把手教你修复启动类识别与依赖问题
  • 揭秘lora-scripts:如何用低资源快速微调,打造你的专属AI助手
  • 语音剪辑神器:Qwen3-ForcedAligner精准定位音频中的每个词语
  • SQL Server容器化实战:用Docker同时运行2017和2008双版本的技巧
  • 腾讯龙虾矩阵落地:企业级AI Agent快速集成最佳实践
  • Windows上安装nvm
  • 爱思唯尔返修提交LaTeX手稿生成PDF乱码问题结果
  • Realistic Vision V5.1显存优化技术解析:CPU offload机制在SD1.5模型中的应用
  • 第7章:Docker network网络管理(docker网络使用与管理)
  • Qwen3-TTS-12Hz-1.7B-VoiceDesign效果展示:中文古诗吟诵+日文俳句朗读风格对比
  • 机器人灵巧手轻量化方案:从PEEK精密注塑到核心部件的降本量产
  • 重磅首发!OpenClaw养虾宝典,189页+9大模块+100多场景:从小白到高手(附pdf完整版)
  • Arduino实战指南 -- AS608光学指纹模块的智能门禁系统搭建
  • 《B4034 [GESP202409 一级] 小杨购物》
  • Phi-3-Mini-128K入门必看:streaming=True对长文本生成体验的提升
  • FastGPT本地AI智能客服:从零搭建到生产环境部署的避坑指南
  • Live Avatar数字人生成保姆级教程:手把手教你制作企业宣传视频
  • 多种灰狼优化算法-无人机集群规划 用法: matlab运行main.m 自带三种UAV_SetUp
  • AudioSeal部署教程:多模型共存场景下AudioSeal模型缓存路径隔离与版本管理
  • EditLite:一款轻量级跨平台文本编辑器,支持算法可视化
  • YOLOv9快速上手:官方镜像实测,从环境配置到模型训练一步到位
  • Draw.io Desktop完整指南:三步打造你的专业图表绘制工作台