视觉Transformer(ViT)

视觉Transformer

Transformer 已成功应用于计算机视觉领域,并在许多任务中表现出色。在视觉领域判别任务最常见的选择是视觉 Transformer(Vision Transformer,简称 ViT)(Dosovitskiy et al., 2020)。在使用 Transformer 时,需要决定如何将输入图像转换为 token,最简单的选择是将每个像素作为一个 token 并按照线性投影进行转换。由于Transformer的复杂度随 token 数量平方增长,所以需要限制 token 数量。

最常见的分词方法是将图像分割成一组大小相同的小块,然后通过线性变换映射为 token。假设图像的尺寸为 x ∈ R H × W × C \boldsymbol{x} \in \mathbb{R}^{H \times W \times C} x∈RH×W×C,其中 H H H和 W W W分别指的是图像的高度和宽度(以像素为单位), C C C是通道数(R、G、B 三种颜色的通道数通常为 3)。每幅图像被分割成大小为 P × P P \times P P×P的非重叠小块( P = 16 P = 16 P=16是常见的选择),然后"平铺"成一维向量,这样就得到了图像尺寸的另一种表示 x p ∈ R N × ( P 2 C ) \boldsymbol{x}_p \in \mathbb{R}^{N \times (P^2C)} xp∈RN×(P2C),其中 N = H W / P 2 N = HW / P^2 N=HW/P2是一幅图像的小块总数。用于分类任务的视觉 Transformer 的架构如图所示。

另一种分词方法是将图像输入一个小型卷积神经网络。这样就可以对图像进行采样,从而得到数量可控的 token,每个 token 由一个网络输出表示。例如,一个典型的 ResNet18 编码器将在高度和宽度两个维度对图像进行 8 倍的下采样,所得的 token 数量是像素数量的 1 / 64 1/64 1/64。

Transformer 模型本身不感知顺序或空间位置,因此需要额外添加位置信息。需要一种在 token 中编码位置信息的方法。可以使用固定的正弦/余弦位置编码,对图像小块的二维位置信息进行编码。但在实践中,这一般不会提高性能。在 ViT 中,通常为每个 patch 添加一个可学习的位置嵌入向量。与用于自然语言的 Transformer 不同,视觉 Transformer 通常将固定数量的 token 作为输入,从而避免了可学习的位置编码无法泛化到不同大小的输入的问题。

视觉 Transformer 的架构设计与卷积神经网络截然不同。虽然卷积神经网络中会产生强先验假设(如局部性、平移不变性),但视觉 Transformer 中唯一的二维归纳偏置是用于 token 化输入的小块造成的。因此,视觉 Transformer 通常比卷积神经网络需要更多的训练数据,来学习图像的空间结构。由于对输入的结构没有很强的假设,视觉 Transformer 通常能够达到更高的精度。这再次说明了归纳偏置与训练数据规模之间需要权衡(Sutton, 2019)。

相关推荐
美酒没故事°20 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
云烟成雨TD20 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
简简单单做算法20 小时前
基于GA遗传优化的Transformer-LSTM网络模型的时间序列预测算法matlab性能仿真
深度学习·matlab·lstm·transformer·时间序列预测·ga遗传优化·电池剩余寿命预测
AI攻城狮20 小时前
用 Obsidian CLI + LLM 构建本地 RAG:让你的笔记真正「活」起来
人工智能·云原生·aigc
鸿乃江边鸟20 小时前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
lpfasd12320 小时前
基于Cloudflare生态的应用部署与开发全解
人工智能·agent·cloudflare
俞凡20 小时前
DevOps 2.0:智能体如何接管故障修复和基础设施维护
人工智能
comedate20 小时前
[OpenClaw] GLM 5 关于电影 - 人工智能 - 的思考
人工智能·电影评价
财迅通Ai20 小时前
6000万吨产能承压 卫星化学迎来战略窗口期
大数据·人工智能·物联网·卫星化学
liliangcsdn20 小时前
Agent Memory智能体记忆系统的示例分析
数据库·人工智能·全文检索