手撕Vision Transformer -- Day1 -- 基础原理

手撕Vision Transformer -- Day1 -- 基础原理

目录

  • [手撕Vision Transformer -- Day1 -- 基础原理](#手撕Vision Transformer -- Day1 -- 基础原理)
  • [Vision Transformer (ViT) 模型原理](#Vision Transformer (ViT) 模型原理)
    • [1. Vit 网络结构图](#1. Vit 网络结构图)
    • [2. 背景](#2. 背景)
    • [3. 模型架构](#3. 模型架构)
      • [3.1 图像切块(Patch Embedding)](#3.1 图像切块(Patch Embedding))
      • [3.2 添加位置编码(Positional Encoding)](#3.2 添加位置编码(Positional Encoding))
      • [3.3 Transformer编码器(Transformer Encoder)](#3.3 Transformer编码器(Transformer Encoder))
      • [3.4 分类头(Classification Head)](#3.4 分类头(Classification Head))
    • [4. ViT的优势](#4. ViT的优势)
    • [5. ViT的缺点](#5. ViT的缺点)
    • [6. 总结](#6. 总结)
    • 参考

Vision Transformer (ViT) 模型原理

1. Vit 网络结构图


Vit 网络结构

2. 背景

ViT(Vision Transformer)是2020年由Google提出的一种新型图像分类模型,成功地将Transformer架构应用于计算机视觉任务,挑战了传统的卷积神经网络(CNN)。ViT的核心思想是将图像分割成小块(patch),并将这些patch视为一维的序列输入Transformer模型。

3. 模型架构

ViT模型主要包括以下几个步骤:

3.1 图像切块(Patch Embedding)

  • 图像分块 :将输入图像分成固定大小的patches。假设输入图像大小为 ( H × W × C H \times W \times C H×W×C )(H为高度,W为宽度,C为通道数),将图像划分为 ( P × P P \times P P×P ) 大小的patches。
  • Flatten :每个patch的像素值被展平成一维向量,形状为 ( ( P × P × C P \times P \times C P×P×C) )。
  • 线性映射:这些一维向量通过一个线性层映射到一个固定的维度 ( D ),即生成一个 ( D ) 维的嵌入向量。

3.2 添加位置编码(Positional Encoding)

  • 由于Transformer 模型没有像CNN那样的局部感知机制,因此必须为每个patch添加位置信息。
  • 位置编码 :为每个patch的嵌入向量添加一个固定的、学习到 的位置编码,使得模型能够区分不同位置的patch(我们采取的可学习的参数)。

3.3 Transformer编码器(Transformer Encoder)

  • ViT使用标准的Transformer编码器结构,包含多个自注意力层和前馈神经网络层。
    • 自注意力机制(Self-Attention):每个patch嵌入向量通过自注意力机制与其他patch的嵌入向量进行交互,以捕捉全局信息。
    • 前馈神经网络:自注意力层的输出经过前馈神经网络(Feed-Forward Network,FFN)进行非线性变换。
    • 层归一化和残差连接:每个Transformer层使用层归一化(Layer Normalization)和残差连接(Residual Connection)。

3.4 分类头(Classification Head)

  • 在经过多个Transformer编码器层后,取出**CLS** token(分类标记)对应的输出作为图像的表示。
  • 最后,经过一个全连接层(FC layer)进行分类。

4. ViT的优势

  • 全局感知:ViT能够通过自注意力机制捕捉图像中全局的依赖关系,而不是像CNN那样依赖局部感知。
  • Transformer的优势:Transformer架构在自然语言处理(NLP)中表现优异,ViT将其应用到计算机视觉任务中,能够显著提高性能。

5. ViT的缺点

  • 数据依赖性:ViT的性能依赖于大规模的训练数据集,通常需要预训练的模型和大量的计算资源。
  • 计算成本:Transformer模型的自注意力计算复杂度为 ( O(N^2) ),其中 ( N ) 是patch的数量,这使得ViT在处理大尺寸图像时的计算开销较大。

6. 总结

ViT通过将图像切分成小块并将其输入到Transformer中,成功地克服了传统CNN的局限,带来了较为显著的性能提升。尽管ViT在数据和计算资源上有较高要求,但它为视觉任务的研究提供了一个新的思路,展示了Transformer在图像处理上的巨大潜力。

参考

视频讲解:【Sora重要技术】复现ViT(Vision Transformer)模型_哔哩哔哩_bilibili

相关推荐
优化Henry1 分钟前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
小蒋学算法5 分钟前
算法-交替删除操作后最后剩下的整数-跟着灵茶山艾府学算法
数据结构·算法
天一生水water10 分钟前
变分模态分解(VMD)的教程
人工智能
xiaomu0012318 分钟前
高湿环境床垫湿度管理技术框架:湿度阈值、排湿结构与材料选型
经验分享·学习·学习方法
荆棘鸟智能19 分钟前
林业遥感长势评估怎么做?从NDVI时序分析到LiDAR蓄积量回归
人工智能·算法·智慧林业
代码方舟28 分钟前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
Yan-英杰28 分钟前
2026年数据采集服务怎么选?4大主流平台(亮数据 Bright Data、Apify、ScrapingBee、Zyte)深度对比
人工智能·神经网络·microsoft·机器学习·ai开发工具
xiaoqi019533 分钟前
机器学习因子分析实战:从量化特征到可视化决策
人工智能·python·机器学习
代码AI弗森40 分钟前
Twilio 与 OpenAI 合作调研:从验证码客户到实时语音分发层
人工智能
m0_5873830043 分钟前
深度解析24小时自助健身房系统开发:从架构设计到落地部署
人工智能·小程序·数据挖掘·系统架构·需求分析