Vision Transformer核心技术:图像块嵌入与Transformer架构【程序员必学收藏】

前言

Vision Transformer (VIT)是将图像转换为向量表征最常用的技术之一,这些向量表征可被语言模型用于理解视觉输入。

我们主要探讨两种方法:(1) 将图像块展平 (2) 使用卷积滤波器生成图像块嵌入作为Transformer模型的输入。视觉Transformer与其他Transformer架构的核心区别在于输入处理方式——一旦图像块嵌入被送入Transformer,其处理流程就与其他模态(如语言或音频)再无差异。

ViT方法的核心在于将图像视作序列化数据的概念,但如何将二维图像转化为Transformer能够理解的一维序列呢?

VIT处理流程

下图展示了VIT通用的输入输出流程:输入是由图像块嵌入组成的矩阵,每个嵌入代表图像的一个局部区域;输出同样是图像块嵌入矩阵,但此时的嵌入已包含上下文语义信息——每个图像块都能感知其他图像块的语义含义。而CLS标记作为特殊向量,可一次性捕捉整张图像的全局信息。

图 1:ViT 图像块嵌入到 Transformer 输入与输出

我们首先将图像转换为图像块嵌入(patch embeddings),这可以通过常规方法或使用卷积层来实现。以下分章节进行详细讨论。

常规实现

首先,我们讨论常规方法。将图像划分为固定大小的图像块网格。块的尺寸是一个超参数。例如,如下图2所示的12x12图像可被划分为九个4x4的块。块的数量取决于图像尺寸(12x12)和块大小(4x4),即 N = width × height / p²。

图 2:如何为 vit 创建图像块嵌入。

每个图像块会通过展开其像素值被“展平”为一维向量。对于彩色图像,每个块包含所有三个RGB通道的信息,这些信息也会被一并展平。图2展示了从图像块网格到线性嵌入序列的转换过程。因此展平后的图像块仅表示像素信息。为了学习像素信息背后的概念或含义,每个展平后的块会与块嵌入矩阵(patch_size×dimension)相乘。最终生成的块嵌入便对先前展平的块具备了概念层面的理解。

  • 位置嵌入

为保留原本会丢失的空间信息,ViT会为每个块嵌入添加位置嵌入。这能让模型识别出某个图像块是来自原图的左上角、中心还是其他位置。上图2通过“图像块嵌入+位置嵌入”步骤展示了这一过程。

位置嵌入是一个为每个位置单独学习的简单向量。将位置嵌入矩阵与块嵌入矩阵相加后,就得到了Transformer的实际输入。若没有位置嵌入,模型在需要理解图像元素间空间关系的任务中会表现不佳。

  • CLS Token

上图2中有一个不太显眼却特别有趣的细节:在序列开头添加了一个特殊的蓝色[CLS] Token标记。CLS Token标记代表完整图像,而其他Tokens则对应各个图像块。通过自注意力机制,CLS Token会汇集所有图像块的信息。由于它存储的是整张图像的综合信息而非单个图像块的信息,其最终状态通常被用于图像分类任务。

那么其他嵌入是否也通过自注意力机制捕获了所有嵌入的信息?确实如此。但不同的是,其他输出向量还额外存储了其对应图像块的专属信息。因此CLS向量与其他向量的差异并不悬殊,主要区别在于每个非CLS向量都会更偏向自身对应的图像块信息。

使用卷积层实现

我们当然也可以通过卷积滤波器生成图像块嵌入。下图详细演示了该过程的实现原理!需要说明的是,卷积神经网络中的输出通道数即特征图数量,每个特征图负责编码输入图像的特定信息。而输出通道的尺寸则决定了序列长度,输出通道的数量将代表每个图像块嵌入的隐藏维度。原论文采用非重叠式处理方案:

  • 非重叠块

计算成本更低且实现简单,但可能导致块间信息断裂与上下文缺失。原始ViT实现采用此方案。

  • 重叠块

会增加计算成本,但通过信息共享能提升性能,减少块间不连续性。对于捕获复杂特征至关重要。

图 3:使用卷积创建图像块嵌入。

当stride=3、卷积核尺寸kernel_size=3时,每个卷积核位置会严格按卷积核尺寸偏移,这意味着该配置下相邻块之间不存在重叠。

在上图3示例中,我们获得3x3尺寸的特征图,这意味着序列长度将为9,对应9个图像块。我们选择两个滤波器,产生两个输出通道(即feature maps)。因此这9个块中每个块的隐藏维度为2。这仅为示例,实际应用中会采用更高维度以捕获更多信息!我们通过nn.Flatten(2)将这些特征图展平,该操作会从第2个维度开始合并所有维度(本例中将张量从(1,2,3,3)重塑为(1,2,9)),随后调整维度顺序为(1,9,2)。

接着按前述方法添加CLS标记,得到新形状(1,10,2)。这意味着我们获得了10个维度为2的嵌入向量,其中9个对应图像块,1个代表完整图像(CLS标记),此时该矩阵即可作为Transformer模块的输入。

一旦我们有了输入图像块,后续的处理就与其他任何 Transformer 相同了。

图像块大小的影响

在两种方法中,我们都将输入图像划分为更小的块。每个块旨在捕获该特定块中存在的图像信息。如果我们选择较大的图像块,我们的块嵌入会变得不那么细粒度(它存储了图像更大区域的信息)。然而,我们得到的块嵌入数量更少,这对Transformer来说计算效率更高。这是因为注意力层会将每个输入块与其他所有块进行比较,所以比较次数是n²。使用较大的块大小,我们会得到一个更小的n。

何时需要更小的图像块尺寸?

当我们想要捕获细粒度信息时,这一点很重要,例如输入图像中的小文本。

如果我们不使用图像块而是单独使用每个像素会怎样?

确实有可能将每个像素视为单独的标记(token)。Pixel Transformers (PiT) 模型分析了这种方法。目标是减少依赖图像块的 Vision Transformers (ViT) 中固有的局部归纳偏置(locality inductive bias)。通过处理单个像素,模型被迫从头开始学习空间关系,这可能导致更灵活的表示。事实上,作者能够证明将每个像素视为一个标记可以提高图像分类性能!然而,单独处理每个像素会极大地增加序列长度,由于自注意力机制的二次方复杂度,导致计算成本更高。例如,一个 32x32 的图像有 1024 个像素,而一个 224x224 的图像已经有 50176 个像素。增加的序列长度也会增加内存需求,这使得训练此类模型变得具有挑战性。

06

CNN 与 ViT 中的归纳偏置

归纳偏置是模型在看到任何数据之前所拥有的“先验知识”或“假设”。

以下是归纳偏置的重要性以及它与 CNN 和 ViT 的关系:

  • 泛化能力:

归纳偏置有助于模型泛化到新的、未见过的数据。通过对数据中的潜在模式做出假设,模型即使在没有见过特定模式的情况下也能做出预测。

  • 学习效率:

良好的归纳偏置可以显著减少达到特定性能水平所需的训练数据量。如果模型的假设与数据的真实结构很好地匹配,它就可以更快、更有效地学习。

  • 权衡:

强烈的归纳偏置与灵活性之间存在权衡。强烈的偏置可以在符合假设的数据上获得良好的性能,但在违反假设的数据上性能会很差。较弱的偏置允许模型学习更复杂的模式,但可能需要更多数据才能有效训练。

与 CNN 相比,Vision Transformers (ViT) 具有显著更少的图像归纳偏置。CNN 在结构上通过以下方式理解图像:

  • 局部性:

每个层都关注图像的小局部区域。其理念是相邻的像素比距离较远的像素更相关。

  • 二维邻域结构:

它们显式地处理以二维网格(如图像)排列的数据。

  • 平移等变性:

如果移动输入图像,输出特征图也会移动相同的量。这意味着 CNN 能够自动识别模式,而无需考虑它们在图像中的位置。

总结

由于图像块嵌入,我们在 ViT 中确实具有一定的局部性。ViT 中的多层感知机(MLP)层具有局部性和平移等变性,但其核心的自注意力层则在整个图像范围内进行全局操作。这使得 ViT 在处理不同类型的数据时更加灵活和适应性强,但也意味着它们可能需要更多的训练数据才能达到与卷积神经网络(CNN)相当的性能水平。ViT 需要从零开始学习二维结构和空间关系,因为其位置嵌入在训练初期是随机初始化的。这也表明 ViT 对数据的需求量更大。

最后

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值