首页 > 其他分享 >VIT论文笔记

VIT论文笔记

时间:2022-11-05 19:56:47浏览次数:45  
标签:bf 特征 论文 笔记 times 池化 VIT 图像 patch

VIT

An image is worth 16x16 words: transformers for image recognition at scale 将transformer首次应用在视觉任务中,并取得了超过CNN方法的性能。

标准的transformer接收一维的向量序列如 \((x_1, x_2, ..., x_N), x_i \in R^{D}\)。为了处理2D图像,将图像 \(X\in R^{H \times W \times C}\) 拆分成若干个小patch \({\bf x}_p \in R^{P \times P \times C}\),并将patch展平 \({\bf x}_p \in R^{P^2 C}\),其中patch的数量 \(N=HW/P^2\)。裁剪展平的图像块patch的维度是 \(P^2C\),一般经过线性投影变换将其映射为统一的维度D,参考公式1

类似于BERT的 class token,本文将一个可学习的embedding放置在表示过的图像块特征序列的首位(\({\bf z}_0^0 ={\bf z}_{cls}\)),这样有N+1 个Embedding token,经过transformer编码后得到的首位特征(\({\bf z}_L^0\)) 作为图像特征

为了将图像拆分序列后仍保留图像块间的位置信息,在图像块patch embedding基础上添加可以训练的位置特征,本文采用可学习的1维位置表示position embedding。因为对比了其它2D 位置表示没有达到更好的性能,故而就采用了1D 位置表示方式。

transformer编码包含了多头自注意MSA模块, MLP模块,归一化LN模块,每个模块后都有residual连接。公式表达上述过程如下:

\({\bf z}_0=[{\bf z}_{cls}; {\bf x}_p^1 \bf E; ...; {\bf x}_p^N \bf E]+{\bf E}_{pos}\), \({\bf E} \in R^{(P^2C) \times D},{\bf E}_{pos} \in R^{(N+1) \times D}\)

Token Labeling

常规图像分类任务是,经过backbone表示为一个向量\(x\in R^d\),再通过一个分类器得到在各个类别上的概率值,取概率值最大的类别作为该图片预测的类别。往往上述backbone若干layers,通常是将中间的feature map \(x\in R^{h \times w \times d}\) 经过某种池化得到最终的一维向量。而Token Label则是对池化前的feature map预测每个空间特征点的类别信息,而预测用的分类器仍使用原分类器。这种得到池化前的特征图各个空间点对应特征图片级语义类别的方法,叫做Token Labeling。

以ImageNet训练为例,除了图片本身的类别信息外;使用预训练的模型可以预测ImageNet数据池化前的特征图的各个空间点特征的语义类别,可以辅助训练分类任务(图片中目标物可能未占据整张图片,而池化前的特征图空间点特征也对应一个图片中局部区域)

上述表述是按照CNN思路,对于Transformer亦是如此,基于Transformer也是将图像拆分为若干的patch再生成Token。

标签:bf,特征,论文,笔记,times,池化,VIT,图像,patch
From: https://www.cnblogs.com/wolfling/p/16860943.html

相关文章

  • JAVAI学习笔记
    文件流什么是文件流?数据从一个地方流到另一个地方可读流(Readable):外部设备(磁盘,网卡,显卡,打印机等等)--->>>内存可写流(Writeable):内存--->>>外部设备(磁......
  • 学习笔记——自增长的键值问题、批处理
    2022-11-05 一、自增长的键值问题1、说明:将在数据库表单中添加数据的自增长的字段返回给用户2、使用方式:在预编译语句中,除了要传入sql语句外,还要传入一个参......
  • PyTorch笔记:Modules官方文档
    来自https://pytorch.org/docs/stable/notes/modules.htmlASimpleCustomModuleimporttorchfromtorchimportnnclassMyLinear(nn.Module):def__init__(se......
  • 数字逻辑笔记 全加器全减器8421BCD转余3
    二进制全加器全减器十进制加法8421BCD转余3码......
  • 学习笔记
    JavaScript学习BOM操作BOM是浏览器对象模型(BrowserObjectModel)。它使JavaScript有能力与浏览器进行“对话”。alert():警告弹窗confirm():确定弹窗prompt():提示弹框......
  • shell-函数学习笔记二
    shell函数的定义#方法一functionname{command...command}#方法二name(){command...command}函数的调用直接使用函数名调用,可以将函数......
  • Thinkphp6笔记十九:加载自定义配置
    适用场景:加载自己的某些配置1.创建配置文件app/config/test.php或者app/admin/test.php<?phpreturn['rule'=>['alibaba'=>[],'ebay'=>[],......
  • 学习笔记——元数据、blob类型的元素
    2022-11-04一、元数据1、元数据的说明:元数据就是指描述数据的数据,例如:数据有多少列、数据的列名称等。2、使用的代码:1ResultSetMetaDatametaData=rs.getMeta......
  • 《Unix/Linux系统编程》第十二章学习笔记 20201209戴骏
    第十二章、块设备I/O和缓冲区管理知识点归纳一、块设备I/O缓冲区I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程试图读取(dev,blk......
  • 学习笔记-Windows 基础服务搭建
    Windows基础服务搭建磁盘管理例1新建两个10G的硬盘,名称为A-10-1、A-10-2,挂载到主机;新建镜像卷,使用所有空间,驱动器号为D.1.开始——管理工具——计算机......