ViT 的全称是 Vision Transformer,直译就是 “视觉版的 Transformer”。

它的核心思路一句话就能说清:把图片切成小方块,当成 “图片单词”,再用类似 “阅读理解” 的方式分析这些小方块的关系,最后判断图片内容

下面不用公式、不用代码,纯用生活例子讲明白。

一、先搞懂:为什么需要 ViT?(和我们看图片的逻辑对比)

我们人看一张图片(比如 “一只猫坐在沙发上”)的过程是:

  1. 先看到整体:有猫、有沙发;
  2. 再关注细节:猫的耳朵、沙发的颜色;
  3. 最后关联起来:“猫” 和 “沙发” 的位置关系 → 得出 “猫坐在沙发上”。

而传统的图像识别方法(比如 CNN),更像 “慢慢放大看”:先看像素点,再看小局部(线条、颜色块),再慢慢拼出大物体,看远的、分散的东西时效率不高

ViT 就不一样了,它像人一样一眼看遍整张图的所有细节,还能直接找出细节之间的关系—— 比如不用慢慢拼,直接知道 “猫” 和 “沙发” 挨在一起。

二、ViT 的工作流程:4 步看懂(用 “看猫的图片” 举例)

假设我们要让 ViT 识别一张 224×224 的猫的图片,它会分 4 步做:

步骤 1:把图片切成 “小方块单词”(Patch Embedding)

这是 ViT 最关键的一步,相当于把一句话拆成一个个单词

  1. 拿一把 “小尺子”(比如边长 16 的正方形),把 224×224 的图片切成一个一个的小方块;
    • 计算一下:224 ÷ 16 = 14,所以会切成 14×14=196 个小方块(专业叫 Patch);
    • 每个小方块的大小是 16×16,还有 3 个颜色通道(RGB),就是一个 “图片单词”。
  2. 给每个小方块贴一个 “语义标签”:不用管这个标签具体是什么,你可以理解成 给每个小方块起个名字,比如 “左上角的灰色块”“中间的黄色块(猫的毛)”。

到这一步,一张图片就变成了 196 个 “图片单词” 组成的序列,和一句话拆成 196 个单词是一个道理。

步骤 2:加一个 “班长”(Class Token)

这一步是为了找一个 “代表” 来总结整张图的信息

  • 我们在 196 个小方块前面,加一个特殊的 “小方块”,叫Class Token,你可以把它当成 196 个小方块的班长
  • 这个班长没有自己的内容,它的任务就是:听所有小方块的汇报,最后总结出 “这张图里有什么”

现在,我们的序列就变成了 197个元素(1 个班长 + 196 个小方块)。

步骤 3:给每个小方块标 “位置”(Position Embedding)

ViT 有个小缺点:它分不清 “哪个小方块在左边,哪个在右边”。比如它可能知道有 “黄色块”“灰色块”,但不知道 “黄色块在灰色块上面”—— 而位置信息对识别图片很重要(比如猫的头肯定在身子上面)。

所以这一步要 给每个小方块(包括班长)贴一个 “位置标签”

  • 比如 “班长是第 0 位”“左上角的小方块是第 1 位”“它右边的是第 2 位”……
  • 这样 ViT 就知道:“哦,原来第 5 位的黄色块,在第 10 位的灰色块的上面”。

步骤 4:全班一起 “开讨论会”(Transformer Encoder)

这一步是 ViT 的核心,相当于 197 个元素坐在一起开讨论会,互相分享信息

  1. 讨论会的规则(自注意力机制):
    • 每个小方块都可以自由发言,告诉班长自己是什么(比如 “我是猫耳朵的黄色块”);
    • 每个小方块还可以主动找关系:比如第 5 位的黄色块会说 “我和第 8 位的黄色块长得像,我们应该是同一个东西(猫的毛)”;
    • 班长负责认真听所有人的发言,还会重点关注有用的信息:比如它会记住 “黄色块和黑色块(猫的眼睛)挨在一起”,忽略 “背景的白色块”。
  2. 讨论会的结果:
    • 开完会后,班长就掌握了所有小方块的信息,还理清了它们的关系
    • 最后我们只需要问班长:“这张图里是什么?”,班长就会给出答案:“是一只猫”。

三、ViT 的核心优势:为什么它这么厉害?

用一句话总结:它能 “一眼看到全局”,快速找到分散的细节之间的关系

  • 比如识别 “一只猫追着一个球”,ViT 不用慢慢拼,直接就能知道 “猫” 和 “球” 在跑,还能知道 “猫在球的后面”;
  • 而传统方法可能要先认出猫,再认出球,最后才发现它们的位置关系。

四、一句话总结 ViT

把图片切成小方块当单词,加个班长做总结,标好位置开讨论会,最后班长告诉你图片里是什么

它没有复杂的公式,本质就是模仿人看图片的逻辑 —— 先拆成细节,再找细节的关系,最后总结全局。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐