【论文阅读】ViT阅读笔记

文章探讨了Transformer模型在图像识别领域的应用,提出VisionTransformer(ViT)直接处理图片并分割为16*16的patch。通过预训练和微调,ViT在大规模数据集上展现出优秀性能,挑战了CNN的传统主导地位。尽管在中小型数据集上可能不如ResNet,但在大型数据集中,ViT的扩展性更优,为CV和NLP的统一以及多模态研究开辟新途径。
摘要由CSDN通过智能技术生成

标题

一张图片可以等价于16*16的单词

transformer可以做大规模的图像识别

摘要

虽然现在transformer在nlp上得到广泛运用,但在cv上还没有运用

一般都是cnn+attention

现在用transformer用cv的效果特别好

引言

nlp的主流方式:先做预训练,再做微调

bert里支持512的序列长度

首先要把一个2d的图片,变成一个序列的集合

在视觉阶段,卷积神经网络还是占主导地位的

有些工作会把cnn和attention一起用

有些工作只用attention

有些工作用特征图作为transformer输入的方式

本工作使用一个标准的transformer直接应用于图片

vision transformer把一个图片分成很多patch,一个patch是16*16

14*14 patch = 196

对于视觉,使用有监督的方式去训练

核心:用这么简洁的框架,transformer也能在cv上得到很好的效果

viT在大规模的数据集上预训练后,可以获得更好的效果

这样就可以把cv问题和nlp问题大一统

结论

我们没有使用归纳偏置,而是直接把他看作一个序列化模型输入

效果很好且相对便宜

挖了一个新坑:如何用vision transformer来做cv

目标检测,图像分割

把cv和nlp大一统,然后也推动了多模态的工作

相关工作

自从transformer以后,感觉已经变成了nlp任务上最好的方法

BERT和GPT

自注意力的工作

在像素层面用transformer是不现实的

可以用sparse transformer,轴注意力

这些自注意力在任务上的表现上都是不错的

cnn+注意力的工作

imageGPT和我们的工作很相近

Method

把一张图打成patch

把patch转化成一个序列

patch embedding和position embedding

经过transformer以后,进mlp head

如何把一张图片,变成一系列的token

1414 得到196个patch,每个patch的维度是16 * 16 * 3 = 768

对图片进行预处理和对输出进行后处理是很关键的

消融实验用不同的位置编码:1d位置编码,2d位置编码,相对位置编码

vision transformer和cnn比要少很多归纳偏置

实验

在不同大小的数据集上做了预训练

能在大多数数据集上取得比较好的结果

数据集:ImageNet

三种模型:base, large, huge

vision transformer在中小型数据集上,效果不如resnet,因为没有用到一些先验知识和归纳偏置

在大的数据集上,用viT可以给到更好的结果,他的扩展能力更好一些

做了一些可视化,分析viT内部的表征

masked patch prediction

对比学习、自监督、无监督

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值