【文献阅读】[ViT]An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale(2020)

  • google团队
  • 主要关注问题
    • 去除CV对于CNN的依赖,使用纯Tranformer,尽量做少的修改,直接应用于图片任务
    • transformer应用于CV领域的难处
      • 复杂度过大:图片输入224*224,输入序列长度50176,相当于bert序列长度100倍
  • 主要工作:通过将图像分割成patches,将Transformer运用到CV领域,结果显示在小规模的数据量下,效果不如resnet,但是在大规模数据量(14M-300M)时取得优异结果。
  • 模型框架

  • 具体实现
    • ViT
      • 将图片划分为patch——相当于 bert中的word
        • 抽16*16的patch,224/16=14,输入就变成了14*14=196序列长度
        • 也就是原本图片是224*224*3 分成了196个patch,每个patch是16*16*3=768
      • 经过一个线性投射层(其实是个全连接层768*768),成功将一个2D图片变成一个1D的序列
      • 加上嵌入(特殊字符cls和位置编码信息)197*768
      • 然后通过transformer编码器
      • 最后有一个MLP分类头,其中用的是tanh作为一个激活函数
      • 位置编码对结果影响不大
    • CNN+Transformer
      • CNN有更多针对图像的归纳偏置,vit就没太用,所以在中小规模上不如CNN
      • 两者的混合思想就是:原始输入图片不需要先分patch,而是先过一个CNN,然后再过transformer
    • 微调
      • 图片尺寸增大怎样微调?使用2D信息做微调,但效果可能打折扣,是vit的一个局限性
  • 实验结果
    • 模型效果方面主要与resnet做了比较,再中小型数据规模下效果远不如resnet,因为vit没有使用图像特有的归纳偏置特性

    • 模型训练资源方面又做了一些实验,论证vit比cnn便宜
    • 最后还有关于自注意力这个机制在vit中做图像处理时到底有没有起作用?
      • 自注意力在nlp中起很大作用是因为它可以关注长距离,比如说第一个词与最后一个词
      • 使用最后一层output token折射回去原来的图(?怎么做:是在原始图片的基础上,根据权重,将权重大的像素点显示出来,权重小的可以不显示),与原始图片做对比,可以看到模型确实注意到了跟最后分类有关的区域,所以说明自注意力有起到作用。

    • 自监督(重要)
      • 使用类似bert的完形填空方式做自监督训练,效果相比最好的有监督训练方法差4%。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值