美文网首页
论文阅读_ViT

论文阅读_ViT

作者: xieyan0811 | 来源:发表于2023-04-09 13:10 被阅读0次

    论文信息

    name_en: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
    name_ch: 将16x16的块看作词:用Transformers实现大规模图像识别
    paper_addr: http://arxiv.org/abs/2010.11929
    doi: 10.48550/arXiv.2010.11929
    date_read: 2023-04-08
    date_publish: 2021-06-03
    tags: ['深度学习','计算机视觉']
    author: Alexey Dosovitskiy
    citation: 14053
    code: https://github.com/google-research/vision_transformer
    other src: ViT论文逐段精读:https://www.bilibili.com/video/BV15P4y137jb/?spm_id_from=333.999.0.0
    type: 略读

    读后感

    ViT是Vision Transformer的缩写,是2020年Google团队提出的将Transformer应用在图像分类的模型。ViT将输入图片分为多个patch,再将每个patch投影为固定长度的向量送入Transformer,后续encoder的操作和原始Transformer中完全相同。

    ViT虽然不是第一篇将transformer应用在视觉任务的论文,但是因为其模型“简单”且效果好,可扩展性强(scalable,模型越大效果越好),成为了transformer在CV领域应用的里程碑著作。

    在不修改优化Transformer的基础上,通过将切块的图片像word一样转入Transformer模型,并使用类似BERT的结构处理分类问题,在大数据集训练后效果好于已有模型。后面的很多模型都基于该模型为基础调优,可以说它奠定了视觉大模型的基础。

    方法

    图-1示例将图切成9个16x16大小的块,然后用线性映射成Patch Embedding;由于图片有上下左右的顺序,又加了Position Embedding(与BERT方法一致);另外,前面还加了一个星的token,它类似于BERT对分类的处理,最终也是通过这个token来完成分类任务。

    比如:图片是224x224x3,拆成14x14块,每块:16x16x3=768,经过映射(768x768)后输出也是768(可以设置),结果就是:每句9个单词,每个单词用768维表示(Patch Embedding)。

    公式如下:

    Z0为第一层,E为映射到嵌入空间,Epos为位置嵌入,Xclass为类别token;Zt为后n层;MSA是多头注意力;MLP是全连接层。ViT没有用太多归纳偏置(先验知识),所以在中小数据集中效果不如CNN。

    实验

    结果证明ViT比另两个模型训练快且效果好:

    数据越多,模型效果越好,扩展性更好;数据少里ViT更容易过拟合,效果不如ResNet。

    对比不同资源占用,证明ViT更节约资源:

    从左图可以看到,ViT和CNN学到了类似的图像表征;
    从中间图可以看到,虽然使用了一维的position,但是明显学到了上下左右的位置信息;
    从右图可以看到,根据注意力权重计算图像空间中集成信息的平均距离(类似于 CNN 中的感受野大小),在低层的注意力距离一直很小,即注意力相对局部化,注意力距离随着网络深度的增加而增加,高层的关系更概括抽象。

    相关文章

      网友评论

          本文标题:论文阅读_ViT

          本文链接:https://www.haomeiwen.com/subject/ntebddtx.html