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

掌握 ViT(Vision Transformer)模型结构——Transformer 如何征服计算机视觉领域

目录

一、前言

二、ViT 出现之前的视觉模型

(一)CNN统治时代

(二)CNN的优势

(三)CNN的局限性

三、Transformer为什么能用于图像

(一)Transformer的优势

(二)问题来了

四、ViT核心思想

五、ViT整体结构

六、Patch切分原理

(一)为什么要切分

(二)切分过程

(三)结构示意

七、Patch Embedding原理

(一)Patch无法直接输入Transformer

(二)展开过程

(三)线性映射

八、CLS Token原理

(一)什么是CLS Token

(二)作用

(三)分类阶段

九、位置编码原理

(一)为什么需要位置编码

(二)输入结构

十、Transformer Encoder结构

(一)Multi-Head Attention

(二)Feed Forward

(三)LayerNorm

十一、ViT核心工作流程

十二、ViT为什么有效

(一)全局感受野

(二)更强长距离建模能力

(三)结构统一

十三、ViT存在的问题

(一)数据需求巨大

(二)小数据集效果一般

(三)计算量较高

十四、ViT的重要改进模型

(一)DeiT

(二)Swin Transformer

(三)BEiT

(四)MAE

(五)SAM

十五、PyTorch实现ViT核心思想

十六、ViT与CNN对比

(一)CNN

(二)ViT

(三)未来趋势

十七、ViT对计算机视觉发展的意义

十八、总结


在计算机视觉领域,卷积神经网络(CNN)长期占据统治地位。

从经典的:

  • LeNet

  • AlexNet

  • VGG

  • GoogLeNet

  • ResNet

  • EfficientNet

到后来的各种目标检测和图像分割模型。

几乎都建立在 CNN 之上。

然而到了2020年。

Google Research 提出了一篇轰动整个视觉领域的论文:

《An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale》

即:

Vision Transformer

简称:

ViT

这篇论文首次证明:

Transformer 不仅能够处理自然语言,还能够直接用于图像分类任务。

更令人震惊的是:

在足够大的数据集上训练后。

ViT 的性能甚至超越了当时最先进的 CNN 网络。

从此:

计算机视觉正式进入:

Transformer时代

后续诞生的:

  • DeiT

  • Swin Transformer

  • BEiT

  • MAE

  • DINO

  • Segment Anything(SAM)

都建立在 ViT 思想基础之上。

可以说:

理解 ViT,就是理解现代视觉大模型的开始。


二、ViT 出现之前的视觉模型

(一)CNN统治时代

传统图像分类流程:

图片 ↓ 卷积层 ↓ 池化层 ↓ 全连接层 ↓ 分类结果

例如:

ResNet结构:

Input ↓ Conv ↓ Residual Block ↓ Pooling ↓ FC ↓ Output

(二)CNN的优势

CNN具有:

局部感知

能力。

例如:

3×3卷积核:

只关注局部区域。


同时具备:

参数共享

特点。

大大减少模型参数量。


(三)CNN的局限性

虽然CNN很成功。

但存在一个问题:

感受野扩展缓慢

例如:

图像左上角目标。

与右下角目标。

建立联系需要:

很多层卷积。

因此:

长距离依赖建模能力较弱。


三、Transformer为什么能用于图像

(一)Transformer的优势

Transformer最大的特点:

Self-Attention

能够实现:

全局建模

即:

任何两个位置都能直接建立联系。


例如:

图像:

的耳朵。

与:

尾巴

即使距离很远。

Attention也能直接关联。


(二)问题来了

Transformer原本处理:

文本序列

例如:

我 喜欢 人工智能

而图像是:

二维矩阵

例如:

224×224×3

如何转换?

这就是ViT最大的创新。


四、ViT核心思想

ViT提出一个大胆想法:

把图片当作一句话

处理。

在NLP中:

一句话 = 多个Token

例如:

我 喜欢 AI

ViT认为:

图片 = 多个Patch

例如:

224×224图片

切成:

16×16小块

然后:

每个Patch看作一个Token。

送入Transformer。


五、ViT整体结构

ViT总体流程:

Image ↓ Patch Partition ↓ Patch Embedding ↓ Position Embedding ↓ Transformer Encoder ↓ MLP Head ↓ Classification

这是ViT最核心结构。


六、Patch切分原理

(一)为什么要切分

Transformer只能处理:

序列数据

因此:

必须将图片转成序列。


(二)切分过程

假设输入:

224×224×3

Patch大小:

16×16

那么:

224 ÷ 16 = 14

得到:

14 × 14 = 196

个Patch。

即:

196个Token

(三)结构示意

原图 ↓ 切分 ↓ Patch1 Patch2 Patch3 ... Patch196

七、Patch Embedding原理

(一)Patch无法直接输入Transformer

因为:

每个Patch:

16×16×3

仍然是矩阵。


Transformer需要:

向量

输入。

因此:

需要Embedding。


(二)展开过程

一个Patch:

16×16×3

展开:

768维向量

因为:

16 × 16 × 3 = 768

(三)线性映射

然后:

768 ↓ Linear ↓ 768

或:

768 ↓ 768/1024

得到统一维度。


最终形成:

Patch Embedding

八、CLS Token原理

(一)什么是CLS Token

ViT借鉴BERT设计。

增加:

[CLS]

分类Token。


(二)作用

用于收集:

整张图片信息

结构:

CLS Patch1 Patch2 ... Patch196

(三)分类阶段

最终:

仅取:

CLS Token

输出。

进行分类。


九、位置编码原理

(一)为什么需要位置编码

Patch经过切分后。

Transformer不知道:

谁在左上 谁在右下

因此:

加入:

Position Embedding

(二)输入结构

最终输入:

Patch Embedding + Position Embedding

形成:

Token Sequence

进入Transformer。


十、Transformer Encoder结构

ViT采用:

标准Transformer Encoder

结构。


整体流程:

Input ↓ Multi-Head Attention ↓ Add & Norm ↓ MLP ↓ Add & Norm ↓ Output

(一)Multi-Head Attention

负责:

全局信息建模

(二)Feed Forward

负责:

特征变换

(三)LayerNorm

负责:

稳定训练

十一、ViT核心工作流程

完整流程:

Image ↓ Patch Split ↓ Patch Embedding ↓ Add Position ↓ Transformer Encoder ↓ CLS Token ↓ MLP Head ↓ Prediction

这是ViT最经典结构。


十二、ViT为什么有效

(一)全局感受野

CNN:

局部卷积。


ViT:

全局Attention

任意两个Patch:

都能直接通信。


(二)更强长距离建模能力

例如:

猫头。

与:

猫尾巴。

能够直接建立联系。


(三)结构统一

与NLP Transformer保持一致。

方便:

跨模态迁移

十三、ViT存在的问题

(一)数据需求巨大

ViT原论文:

训练数据:

JFT-300M

约:

3亿张图片

远超ImageNet。


(二)小数据集效果一般

数据不足时:

CNN往往更好。


(三)计算量较高

Attention复杂度:

O(N²)

Patch越多:

计算越大。


十四、ViT的重要改进模型

(一)DeiT

Facebook提出。

解决:

ViT依赖大数据

问题。


(二)Swin Transformer

微软提出。

引入:

Window Attention

机制。


大幅降低计算量。


(三)BEiT

借鉴BERT思想。

实现:

视觉预训练

(四)MAE

Meta提出。

实现:

自监督学习

(五)SAM

Segment Anything。

其核心骨干网络:

仍然基于ViT。


十五、PyTorch实现ViT核心思想

Patch Embedding示例:

import torch import torch.nn as nn class PatchEmbedding(nn.Module): def __init__( self, img_size=224, patch_size=16, in_channels=3, embed_dim=768): super().__init__() self.proj = nn.Conv2d( in_channels, embed_dim, kernel_size=patch_size, stride=patch_size ) def forward(self,x): x = self.proj(x) x = x.flatten(2) x = x.transpose(1,2) return x

输出:

(Batch,196,768)

即:

196个Patch Token

十六、ViT与CNN对比

(一)CNN

特点:

局部感知 参数共享

优点:

小数据集表现好

(二)ViT

特点:

全局Attention

优点:

大规模数据优势明显

(三)未来趋势

目前主流视觉模型:

越来越多采用:

CNN + Transformer

混合架构。

例如:

  • ConvNeXt

  • CoAtNet

  • EfficientFormer


十七、ViT对计算机视觉发展的意义

ViT最大的贡献:

首次证明:

Transformer 可以替代CNN

用于图像理解。

其思想推动了:

  • Swin Transformer

  • DINO

  • CLIP

  • SAM

  • GPT-4V

等现代视觉大模型的发展。

可以说:

ViT 是视觉领域从 CNN 时代迈向 Transformer 时代的重要转折点。


十八、总结

Vision Transformer(ViT)是计算机视觉领域最具影响力的模型之一,它成功将 NLP 中的 Transformer 引入图像处理任务,并开启了视觉 Transformer 时代。

本文重点掌握了:

1、ViT提出背景;

2、CNN存在的局限;

3、ViT核心思想;

4、Patch切分机制;

5、Patch Embedding原理;

6、CLS Token作用;

7、Position Embedding原理;

8、Transformer Encoder结构;

9、ViT优势与不足;

10、ViT后续改进模型。

可以将 ViT 理解为:

“把图像切成一个个视觉单词(Patch),然后利用 Transformer 像处理自然语言一样处理图像。”

正是这一思想,让 Transformer 成功突破 NLP 领域边界,进入计算机视觉领域,并最终催生出今天的视觉大模型和多模态大模型生态。对于深度学习开发者而言,ViT 是学习现代视觉 AI 技术必须掌握的重要基础模型。

http://www.jsqmd.com/news/1027963/

相关文章:

  • 2026年光纤拉伸器厂家推荐指南:权威甄选与行业深度解析 - 优质品牌商家
  • Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
  • 轻轻松松——简单却详细的linux系统下的线程管理 教学,小白必看!!!
  • Windows系统下利用符号链接实现谷歌浏览器自定义安装路径的完整指南
  • 猫抓浏览器插件:5分钟学会免费资源嗅探终极指南
  • 分布式计算机1
  • 有实力的开袋真空吸盘品牌有哪些?聚昌利怎么样 - mypinpai
  • 2026年通辽岗亭采购指南:三大厂商综合实力与区域服务能力深度评测 - 优质品牌商家
  • Harmonyos pc实战之ArkUI 组件详解
  • 端侧Qwen3轻量化部署与Skill开发实战
  • 豆包2.0+扣子编程:零成本AI Bot开发实战指南
  • TPE热塑性弹性体加工厂哪家靠谱? - mypinpai
  • chap7学习内容
  • 2026年供应链管理服务商甄选指南:业财一体化与本地化服务能力深度评测 - 优质品牌商家
  • 2026年南充地区消防维保与检测服务甄选:本地企业实力解析与咨询指南 - 优质品牌商家
  • 2026年浙江岗亭与环卫设施供应商甄选:杭州同创、四川宏亦凡、鄂尔多斯有为等企业入局 - 优质品牌商家
  • 如何快速找回消失的网页:3步掌握网站时光机的终极指南
  • 2026深港两地做全屋定制一般多久能完工交付?
  • 联想超级文件全解析!跨设备传输 + 云备份一站式文件管理方案
  • Saga 分布式事务:你以为的最终一致性,其实是个慢动作炸弹
  • 6种开箱体验创意,提升客户满意度
  • Divinity Mod Manager:告别《神界:原罪2》模组管理噩梦的终极解决方案
  • 2026低空项目加盟怎么选?这几家权威机构值得关注 - 优质品牌商家
  • ACTE NATION舒适度和耐穿性多少钱? - mypinpai
  • 华硕笔记本性能优化神器的惊艳体验:G-Helper深度评测与效率革命
  • 久潮假发,轻薄透气,真实体验告诉你哪家好? - mypinpai
  • Windows 11安卓子系统终极配置指南:Magisk与Google Play一键集成
  • Python测试隔离实战:pytest与SQLite构建临时数据库方案
  • Moneta Markets亿汇:服务体系的方法复盘
  • 2026年甄选:特惠搬家品牌服务能力与客户口碑综合观察报告 - 优质品牌商家