位置: IT常识 - 正文

Vision Transformer 模型详解

编辑:rootadmin
Vision Transformer 模型详解 目录前言模型结构实验总结Question Summary前言

推荐整理分享Vision Transformer 模型详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

虽然说transformer已经是NLP领域的一个标准:BERT模型、GPT3或者是T5模型,但是当年

Vision transformer 提出时用transformer来做CV还是很有限的; 在视觉领域,自注意力要么是跟

卷积神经网络一起使用,要么用来把某一些卷积神经网络中的卷积替换成自注意力,但是还是保持

整体的结构不变; ViT是2020年Google团队提出的将Transformer应用在图像分类的模型,因为其

模型“简单”且效果好,可扩展性强(scalable,模型越大效果越好),成为了transformer在CV领域

应用的里程碑著作,也引爆了后续相关研究。

模型结构

作者将transformer结构去除掉decoder部分后经过改进将其运用到视觉领域。vision transformer模型结构主要包括三部分:

patch embeding 部分transformer encoder部分MLP head部分。

整个模型结构可以分为五个步骤进行:

1、将图片切分成多个patch。

2、将得到的patches经过一个线性映射层后得到多个token embedding。

3、将得到的多个token embedding concat一个额外的CLS token,然后和位置编码相加,构成完整的encoder模块的输入。

4、 将相加后的结果传入Transformer Encoder模块。

5、Transformer Encoder 模块的输出经过MLP Head 模块做分类输出。

Transformer Block:

Layer Norm层:标准归一化,为了更好的收敛。MHA层:多头自注意力机制输入和输出做残差连接Layer NormMLP层: Linear + GRLU +Linear +Dropout

L个Transformer Block 构成一个完整的Transformer Encoder模块。经过Transformer Block 后维度不变。

实验

Vision Transformer 模型详解

给出的最佳模型在ImageNet1K上能够达到88.55%的准确率(先在Google自家的JFT数据集上进行了预训练),说明Transformer在CV领域确实是有效的。 用vision transformer 模型和卷积神经网络(resnet)做了对比,实验发现在中小数据集上,

卷积神经网络的效果比vit模型的效果要好(原因在Question Summary)。随着数据及规模的增大,

ViT模型的效果要逐渐优于卷积神经网络的效果。

用vision transformer 模型和卷积神经网络(resnet)以及Hybrid结构(混合结构)做了对比,

结果相同,同时Hybrid结构在中小型数据集上也能够达到能好的性能(毕竟结合了卷积神经网络和

Transformer的优点),但随着数据集的增大,发现Transform的结构要比Hybrid结构性能优秀。 作者还做了关于自注意力机制的实验,从实验结果我们可以看出,模型可以很好的利用自注意力机制学习到图片的特征。 做了关于CLS Token和GAP以及关于不同维度的消融实验。ViT模型最后利用CLS Token做分类预

测,而卷积神经网络则是利用GAP(全局平均池化),从实验结果可以看出,CLS Token 可以和

GAP 达到同样的效果,但是要求不同的学习率。

总结

如果在足够多的数据上做预训练,也可以不需要卷积神经网路,直接使用标准的Transformer也能够

把视觉问题解决的很好;尤其是当在大规模的数据上面做预训练然后迁移到中小型数据集上面使用的

时候,Vision Transformer能够获得跟最好的卷积神经网络相媲美的结果。

Question Summary

在中小型数据集上,ViT模型不如卷积神经网络的原因:

卷积神经网络存在归纳偏置:locality 和translation equivariance。有了归纳偏置后,就有了先验知识,可以利用较少的数据去学习一个比较好的模型,而transformer没有先验知识,所以需要数据自己学习,所以在大数据集上的性能比中小数据集上。

位置编码:

如果不标注位置,在Transform看来图片就是一样的,所以需要加上位置编码。

CLS Token:

在NLP的分类任务中,被看作一个全局的对句子的理解,在这里可以看作一个图像的整体特征。

MLP Head:

一个通用的分类头,最后用交叉熵函数进行模型的训练。

论文:原论文链接 代码:pytorch代码

本文链接地址:https://www.jiuchutong.com/zhishi/294588.html 转载请保留说明!

上一篇:vue:聊天对话框的实现(vue聊天系统)

下一篇:【uni-app】小程序实现微信授权登陆(附流程图)(unigui 小程序)

  • 只报税不做账有什么后果?
  • 工程款给付协议
  • 固定资产可以一次性摊销吗
  • 每个月结转损益都有什么科目
  • 什么样的个体需要纳税
  • 大病医疗可以抵扣吗
  • 购进的库存商品转自用需要开发票吗
  • 企业所得税年报补报
  • 医院收到工会的钱怎么办
  • 采购退回的分录
  • 公司购买办公用品计入什么科目
  • 税收滞纳金算不算所得税
  • 营业外收入税前列支
  • 滴滴打车税收问题
  • 集团内部拆借资金
  • 发票分票怎么处理违章
  • 库存现金出现负数怎么跟客户沟通
  • 总账每个月都要结账吗
  • windows11开始菜单怎么居中
  • 购买预付卡如何记账
  • echarts获取不到宽和高
  • fpx是什么文件
  • PHP:mcrypt_enc_is_block_algorithm()的用法_Mcrypt函数
  • 企业发生的与日常经营活动无直接关系的各项利得
  • gridview用法
  • 北极野生动物
  • iframe写法
  • phpsession和cookie
  • 出租车发票能不能多开
  • 保姆级官方yolov7的训练自己的数据集以及项目部署
  • 怎么编制资金平衡表格
  • 图像处理入门
  • trace 命令用法
  • journal.tmp
  • btrfs 读取
  • 大屏制作教程视频
  • 商誉 减值
  • 一般人财务报表季报还是月报
  • 计提工资扣社保的凭证
  • 上个月的票这个月作废后报增值税需不需要交费?
  • Sqlite数据库里插入数据的条数上限是500
  • 母公司吸收合并全资子公司
  • 小规模纳税人防水工程专用发票税率是多少
  • 接受捐赠的固定资产进项税额可以抵扣吗
  • 没有计提坏账准备的情况下,应收账款的计税基础
  • 房地产行业增值税预缴
  • 计算结转本月未交增值税
  • 资本公积的意思是
  • 坏账准备的核算公式
  • 认缴的注册资金怎么做账
  • 其他应付款的核算项目是什么
  • 总分类账与明细分类账的关系
  • 什么是固定资产?其特征有哪些
  • 无法在你的位置安装windows
  • fedora os
  • win7 win8.1双系统安装教程
  • 硬盘安装64位win8.1/win8或win7操作系统图文教程
  • 系统分区引导修复
  • win10怎么关闭防火系统
  • linux安装有几种方法
  • linux yum命令详解
  • 格式化不干净
  • 虚拟光驱uiso
  • 2016年微软股价
  • ubuntu20.04安装配置
  • Win7系统怎么打开蓝牙
  • win7开机自动弹出注册表编辑器怎么办
  • win7系统迁移到另一磁盘
  • [置顶]游戏名 TentacleLocker
  • 微信小程序商品列表代码
  • win7 android studio
  • 单页图片和文字怎么设置
  • 蓝牙协议栈包括
  • javascript高级程序设计最新版
  • node.js和ajax的顺序
  • 我国是多久取消税收的
  • 深圳少儿电子医保卡怎么用
  • 税控盘开票资料怎么导出几年前的开票信息
  • 查国税发票验证码怎么查
  • 怎样在网上税务局个人发票能开10万以上?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设