Vision Transformer (ViT)、Swin Transformer 和 Focal Transformer

news/2024/9/22 17:42:40/

 1. Vision Transformer (ViT)

Vision Transformer详解-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/qq_37541097/article/details/118242600?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522F8BBAFBF-A4A1-4D38-9C0F-9A43B56AF6DB%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=F8BBAFBF-A4A1-4D38-9C0F-9A43B56AF6DB&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~hot_rank-1-118242600-null-null.142%5Ev100%5Econtrol&utm_term=Vision%20Transformer&spm=1018.2226.3001.4187

ViT 是最早将 Transformer 应用于图像任务的模型,最先由 Google 提出。它采用了与 NLP 中 Transformer 类似的结构,但做了一些调整以适应图像数据。

主要特点:
  • Patch Embedding:ViT 将输入图像分割为固定大小的非重叠小块(patch),例如 16×16,然后将每个 patch 展开为一个向量,类似于 NLP 中的词嵌入。
  • Positional Encoding:由于 Transformer 没有卷积层,因此缺乏对图像中空间信息的直接感知,ViT 使用位置编码来保留图像的空间信息。
  • 全局注意力机制:ViT 的注意力机制是全局的,允许任意两个 patch 之间进行信息交换,但由于每个 patch 都参与到计算中,所以当图像尺寸较大时,计算成本非常高。
优点:
  • 全局信息捕捉能力强:全局注意力机制使 ViT 能够很好地捕捉到图像中的长距离依赖关系。
  • 适合大规模数据:ViT 在大规模数据集(如 ImageNet-21k)上训练时表现优异,能够充分利用数据。
缺点:
  • 对数据需求较高:ViT 在小规模数据集上表现较差,因为其需要大量数据才能学到有效的表示。
  • 计算成本高:全局注意力机制带来了较高的计算和内存开销。

2. Swin Transformer

Swin-Transformer网络结构详解_swin transformer-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/qq_37541097/article/details/121119988?ops_request_misc=%257B%2522request%255Fid%2522%253A%25223B8A1942-84DA-4C42-ACEC-D87B5803F3AE%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=3B8A1942-84DA-4C42-ACEC-D87B5803F3AE&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-121119988-null-null.142%5Ev100%5Econtrol&utm_term=Swin%20Transformer&spm=1018.2226.3001.4187

主要特点:
  • 层级结构:Swin Transformer 通过构建分层的特征图结构(类似于 CNN 的金字塔结构),从而可以捕捉到不同尺度的特征。其输入从高分辨率开始,逐步降低分辨率,增加通道数,类似于 ResNet 等卷积神经网络。
  • 滑动窗口注意力机制:为了降低全局注意力的计算开销,Swin Transformer 在每一层仅在局部的滑动窗口内计算自注意力。每个窗口内的 patch 之间进行注意力计算,窗口大小固定。
  • 跨窗口交互:在后续的层次中,通过移位窗口机制,可以让不同窗口之间也进行交互,提升全局信息的融合能力。
优点:
  • 高效的局部注意力机制:滑动窗口和移位窗口机制大大降低了计算复杂度,使得 Swin Transformer 在计算上更加高效。
  • 强大的特征层次化表示:通过构建层级结构,Swin Transformer 在处理不同尺度的物体时表现更好。
  • 良好的泛化能力:Swin Transformer 在多个视觉任务(如图像分类、目标检测、语义分割)中表现出色。
缺点:
  • 注意力依然局限于局部:虽然 Swin Transformer 引入了跨窗口交互机制,但在某一层中,注意力机制依然主要局限于局部范围,全局信息的捕捉依赖于深层网络。

 3. Focal Transformer

Focal Transformer 是一种在 Swin Transformer 的基础上进一步改进的模型,它通过引入多尺度的注意力机制来更好地捕捉全局和局部信息。这种方法在注意力计算时结合了细粒度的局部信息和粗粒度的全局信息,旨在平衡精度和效率。

主要特点:
  • 多尺度注意力:Focal Transformer 的注意力机制融合了不同尺度的信息。在小范围内(局部),使用高分辨率的细粒度注意力;在较大范围内(全局),使用低分辨率的粗粒度注意力。这种设计使得模型既能关注到局部的细节,又能捕捉到全局的长距离依赖。
  • 渐进式注意力范围:Focal Transformer 不仅局限于固定窗口,还通过多个层次逐渐扩大注意力范围,确保模型能够从局部信息逐步扩展到全局信息。
  • 灵活的层次化结构:与 Swin Transformer 类似,Focal Transformer 也构建了一个层次化的结构,通过逐层降低分辨率、增加通道数来捕捉多尺度特征。
优点:
  • 平衡局部和全局信息:通过多尺度注意力机制,Focal Transformer 在保持局部细节的同时,能更有效地捕捉全局信息。
  • 计算效率较高:虽然引入了多尺度注意力,但这种机制比全局注意力的计算效率更高,能够在较大的特征图上运行得更快。
  • 表现更稳定:Focal Transformer 在小型和大型数据集上都有不错的表现,不像 ViT 需要极大规模的数据集来进行训练。
缺点:
  • 架构相对复杂:与 ViT 或 Swin Transformer 相比,Focal Transformer 的多尺度注意力设计引入了更多复杂的计算模块,难以直接适用于极端高效的模型设计。

http://www.ppmy.cn/news/1528935.html

相关文章

GPT1-GPT3论文理解

GPT1-GPT3论文理解 视频参考:https://www.bilibili.com/video/BV1AF411b7xQ/?spm_id_from333.788&vd_sourcecdb0bc0dda1dccea0b8dc91485ef3e74 1 历史 2017.6 Transformer 2018.6 GPT 2018.10 BERT 2019.2 GPT-2 2020…

RPC远程调用的序列化框架

序列化框架对比: 一、Java Serialiazer 字段serialVersionUID的作用是为了在序列化时保持版本的兼容性,即版本升级时反序列化仍保持对象的唯一性。 //序列化 ByteArrayOutputStream bout new ByteArrayOutputStream(); ObjectOutoutStream out new O…

SpinalHDL之结构(三)

本文作为SpinalHDL学习笔记第六十三篇,介绍SpinalHDL的函数(Function)。 目录: 1.简介(Introduction) 2.RGA到灰度(RGB to grey) 3.Valid和Ready负载总线(Valid Ready Payload bus) ⼀、简介(Introduction) ⽤Scala函数产⽣硬件的⽅式与VHDL/Verilog…

计算机人工智能前沿进展-大语言模型方向-2024-09-21

计算机人工智能前沿进展-大语言模型方向-2024-09-21 1. AIvril: AI-Driven RTL Generation With Verification In-The-Loop Authors: Mubashir ul Islam, Humza Sami, Pierre-Emmanuel Gaillardon, and Valerio Tenace AIVRIL: 人工智能驱动的RTL生成与验证内循环 摘要 本…

响应式CSS 媒体查询——WEB开发系列39

CSS媒体查询(Media Queries)是响应式设计中的核心技术之一,帮助我们在不同设备上展示不同的样式。通过媒体查询,开发者可以检测用户设备的特性,如屏幕宽度、高度、分辨率、方向等,针对性地调整网页布局。 一…

Go语言的垃圾回收(GC)机制的迭代和优化历史

Go语言的垃圾回收(GC)机制自Go语言发布以来经历了多次重要的迭代和优化,以提高性能和减少程序运行时的停顿时间。 以下是一些关键的版本和相应的GC优化: Go版本GC耗时情况主要改进点Go 1.0-1.4可能达到几百毫秒至秒级使用简单的标…

第一章 HTTP

目录 一、HTTP简介 1.1. 概述 1.2. HTTP与TCP的区别 二、HTTP迭代版本 三、HTTP请求头 四、HTTP响应 五、请求头中的请求方式 一、HTTP简介 1.1. 概述 超文本传输协议(Hypertext Transfer Protocol,HTTP),用于在客户端和服…

ERP进销存管理系统的业务全流程 Axure高保真原型源文件分享

这是一套ERP进销存管理系统的业务全流程Axure高保真原型设计文档。 原型预览地址:https://ppndif.axshare.com 产品意义: 提高工作效率: 电子记账替代手工记账,减少工作负担和人为错误。 实时查看库存情况,减少盘点时…