VIT 论文精读 | transformer架构引入CV的开创性工作

这篇具有很好参考价值的文章主要介绍了VIT 论文精读 | transformer架构引入CV的开创性工作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

目录

1. 背景

2. 方法

2.1 怎么把2D图像变成1D序列输入到transformer中

像素?

先提取特征图?

打成多个patch

2.2 transformer和卷积网络比较

2.3 结构

2.4 cls Vs 全局平均池化

2.5 位置编码

3 实验


1. 背景

VIT是基于transformer的在图像分类大放异彩的变体,transformer是VIT的亲爹,可以和resnet相媲美

VIT指出混合卷积网络是不必要的,纯transformer的结构也可以在图像分类里面取得特别好的结果

开启了一个新的天地

2. 方法

2.1 怎么把2D图像变成1D序列输入到transformer中

但想要在视觉领域迁移应用transformer,一个最重要的问题是怎么去把2D图像变成1D序列输入到transformer中

回忆一下transformer,他本质是对输入的序列元素之间做互动,得到注意力图,然后利用自注意力图去做加权平均输出

因为两两都要做互动,所以这个计算复杂度是很大的,

而硬件能计算的序列长度大概是几百几千。比如在经典自然语言的transformer Bert中是512长度。

像素?

所以如果我们直接把图像里的每一个像素点当作一个序列元素的话,会导致序列特别长,比如一张224*224=50176的序列长度,是Bert的500倍。

先提取特征图?

之前也有一些在CV领域的transformer工作,但他们为了降低这种复杂度,是引入了卷积等操作提取特征图,再把特征图拉长为序列输入,或者只在图片的一小片区域做自注意力。

但是作者觉得NLP在自然领域的可扩展性很强,他们也想在CV领域做同样的事情,想尽可能少的改动网络结构,但是老问题回来了,序列太长怎么办?

打成多个patch

把一个图片打成很多个patch

比如对于一张图片224*224 打成16 * 16大小的patch,每一个patch展成序列的长度就是196 ,把他当作一个单词,作为序列的元素输入transformer

2.2 transformer和卷积网络比较

transformer和卷积网络相比,缺少一定的归纳偏置,一种先验知识

(1)locality 假设相邻区域会有相邻特征,靠的越近的东西相关性越强

(2)平移不变性。无论是先做平移还是先做卷积都是一样的。

所以有了这两个假设,我们可以把卷积核看作一个模板,不管一个物体移到哪里,遇到同样的卷积核都会有相同的输出。

有了先验信息,卷积网络就需要较少的数据去学习。但是transformer没有这样的先验信息,所以就需要更大的数据集才能达到比较好的效果

总结来看

transformer需要较大的数据集,才能取得和CNN相媲美的结果

2.3 结构

VIT 论文精读 | transformer架构引入CV的开创性工作,读论文,transformer,深度学习,人工智能

借鉴Bert的输出,VIT加一个特殊cls Token 和其他的patch做交互进而输出分类信息,我们相信cls Token可以学习到整张图片的信息,可以看做一个整体特征,因而我们只需要根据cls Token的信息 做最后的Mlp输出即可

我们举一个例子,把VIT的前向过程走一编

(1)假设我们输入图片X维度为 224×224×3 (长,宽,通道)

(2)将一张图片打成多个图像块(patch)

如果我们使用16×16的图像块大小(patch_size),可以得到多少图像块呢?

意味着有196个图像块,也就是196个token

此时每一个token维度 16×16×3=768

到此我们就把原来的一张图片 224×224×3 变成了 196×768了

(3)经过线性投射层

输入维度是(2)中我们算出来的768

输出维度可以调整,论文中还是768

所以最后经过线性投射层投射之后输出还是为196×768

(4)和特殊cls token合并

合并后输出为197×768

(5)加上位置编码信息

直接加

输出还是为197×768

2.4 cls Vs 全局平均池化

不一定非得用这里的cls Token,也可以做全局平均池化

但是得好好调参,否则全局平均池化效果就不如cls Token

2.5 位置编码

位置编码可以是1d 的

也可以是2d的

或者是相对位置编码

在本篇文章差异不大

读完这篇文章,应该明白

 

transformer对比卷积的优势,劣势?

VIT结构中,如果输入图像是224*224,打成16 *16的patch,头个数12,分析他每一层的形状是什么样子的?文章来源地址https://www.toymoban.com/news/detail-670174.html

3 实验

VIT 论文精读 | transformer架构引入CV的开创性工作,读论文,transformer,深度学习,人工智能

灰色的线条是Resnet 从下到上有一个范围

如Resnet50到Resnet152这样一个范围

彩色的圆点是VIT

从左到右数据集依次增大

在数据集较小的情况下卷积Resnet要优于vit 中等数据集情况下,Renet和vit差不多,大规模数据集vit更好

读完这篇文章,应该明白

transformer对比卷积的优势,劣势?

VIT结构中,如果输入图像是224*224,打成16 *16的patch,头个数12,分析他每一层的形状是什么样子的?

到了这里,关于VIT 论文精读 | transformer架构引入CV的开创性工作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开创性的区块链操作系统项目——生物识别与机器学习

    一起来认识Locus Software的软件系统工程师 Marcus Souza。他凭借天生的开放且好奇的心态,并且通过OpenCV不断的测试区块链操作系统,以探索它能实现什么。他一直在寻找如何能够提升发挥区块链操作系统到极致的方法,同时,他创建了一系列测试实例。在这个测试过程中,他似

    2024年01月19日
    浏览(54)
  • 开创性的区块链操作系统项目——去中心化的战舰游戏

    卓有成效的开发人员 Lachezar 说,他开始使用区块链的时候很容易。Cartesi 提供了很多开发文档,他能够通过实际开发他的去中心化应用程序来获得大部分区块链知识,而不用先学复杂的 Solidity。Blockchain OS为 Lachezar 等开发人员提供了 Linux 操作系统:可以在其上运行的框架、语

    2024年02月02日
    浏览(50)
  • Transformer(二)(VIT,TNT)(基于视觉CV)

    目录 1.视觉中的Attention  2.VIT框架(图像分类,不需要decoder) 2.1整体框架 2.2.CNN和Transformer遇到的问题 2.3.1CNN 2.3.2Transformer 2.3.3二者对比 2.4.公式理解 3TNT 参考文献       对于人类而言看到一幅图可以立即区分背景和主体,我们希望计算机也可以清楚区分背景和主体,这样就可

    2024年02月13日
    浏览(37)
  • CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇

    🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:CV攻城狮入门VIT(vision transformer)之旅——近年超火的Transformer你再不了解就晚了! 🍊近期目标:写好专栏的每一篇文章 🍊支持小苏:点赞👍🏼、收藏⭐、留言📩   ​  在上一篇,我已经详细为大家

    2024年02月02日
    浏览(55)
  • 论文阅读 Vision Transformer - VIT

    通过将图像切成patch线形层编码成token特征编码的方法,用transformer的encoder来做图像分类 解决问题: transformer输入限制: 由于自注意力+backbone,算法复杂度为o(n²),token长度一般要512才足够运算 解决:a) 将图片转为token输入 b) 将特征图转为token输入 c)√ 切patch转为token输入 tra

    2024年02月01日
    浏览(40)
  • ViT(Version Transformer)原始论文解读

    paper:2010.11929.pdf (arxiv.org) code:google-research/vision_transformer (github.com) 期刊/会议:ICLR 2020 虽然Transformer体系结构已经成为自然语言处理任务的事实上的标准,但它在计算机视觉方面的应用仍然有限。在视觉上,注意力要么与卷积网络结合应用,要么用于替换卷积网络的某些组件

    2024年02月15日
    浏览(41)
  • 《Vision Transformer (ViT)》论文精度,并解析ViT模型结构以及代码实现

    《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》 论文共有22页,表格和图像很多,网络模型结构解释的很清楚,并且用四个公式展示了模型的计算过程;本文章对其进行精度,并对源码进行剖析,希望读者可以耐心读下去。 论文地址:https://arxiv.org/abs/2010.11929 源

    2024年02月05日
    浏览(39)
  • Transformer模型原理—论文精读

    今天来看一下Transformer模型,由Google团队提出,论文名为《Attention Is All You Need》。论文地址。 正如标题所说的,注意力是你所需要的一切,该模型摒弃了传统的RNN和CNN结构,网络结构几乎由Attention机制构成,该论文的亮点在于提出了 Multi-head attention 机制,其又包含了 self-a

    2024年02月08日
    浏览(58)
  • Vision Transformer(ViT)论文解读与代码实践(Pytorch)

    Vision Transformer(ViT)是一种基于Transformer架构的神经网络模型,用于处理计算机视觉任务。传统的计算机视觉模型如卷积神经网络(CNN)在处理图像任务时取得了很大的成功,但CNN存在一些局限,例如对于长距离依赖的建模能力较弱。ViT通过引入Transformer的注意力机制来解决这

    2024年02月07日
    浏览(40)
  • AI绘画与CV多模态能力的起源:从VAE、扩散模型DDPM、DETR到ViT/MAE/Swin transformer

    2018年我写过一篇博客,叫:《一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD》,该文相当于梳理了2019年之前CV领域的典型视觉模型,比如 2014 R-CNN 2015 Fast R-CNN、Faster R-CNN 2016 YOLO、SSD 2017 Mask R-CNN、YOLOv2 2018 YOLOv3 随着2019 CenterNet的发布,特别是2020发布的DETR(End-to-End

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包