VIT论文笔记
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。
VIT论文笔记的更多相关文章
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)
Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文, ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- Deep Learning论文笔记之(八)Deep Learning最新综述
Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- Deep Learning论文笔记之(六)Multi-Stage多级架构分析
Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些 ...
- Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型
看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 论文笔记(2):A fast learning algorithm for deep belief nets.
论文笔记(2):A fast learning algorithm for deep belief nets. 这几天继续学习一篇论文,Hinton的A Fast Learning Algorithm ...
- 论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN
论文笔记:Towards Diverse and Natural Image Descriptions via a Conditional GAN ICCV 2017 Paper: http://op ...
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
随机推荐
- Python自动化操作sqlite数据库
你好,我是悦创. 原文首发:https://bornforthis.cn/column/pyauto/ 1. 什么是数据库 数据库是"按照数据结构来组织.存储和管理数据的仓库",是 ...
- VS2019注册码
Visual Studio 2019 Enterprise BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional NYWVH-HT ...
- [BUUCTF]洞拐洞拐洞洞拐
[BUUCTF] 洞拐洞拐洞洞拐 问题链接:https://buuoj.cn/challenges#洞拐洞拐洞洞拐 问题附件是一张图片. 一. 图片分析 查看图片,发现是由有规律的黑白像素构成的PNG ...
- angular--路由导航三种方法
- BUG日记之-----Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway.
在使用swagger进行测试的时候调用弹窗 解决办法: 在启动类添加@EnableSwagger2注解
- ffmpeg拉取rtsp视频流
公司项目需要提供实时显示网络摄像头实时视频. void RTSPFFmpeg::rtsp_open(const char *url) { AVFormatContext* format_ctx = a ...
- 软工综合实践课设——员工招聘系统(参考BOSS直聘);Pyhton实现
应用背景: 随着科学技术的发展,岗位数量越来越多,特别是每逢毕业季找工作的人数也很多,如果人们找工作或者企业招人靠纯手工的话,费时费力,仅仅是筛选简历和费劲,并且员工找工作投简历可能得需要克服时间和空 ...
- 华为云MRS支持lakeformation能力,打造一站式湖仓,释放数据价值
摘要:对云端用户而言,业务价值发现是最重要的,华为MRS支持LakeFormation后,成功降低了数据应用的成本,帮助客户落地"存"与"算"的管理,加快推进了 ...
- Java + SikuliX 基于图像实现自动化测试
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/6d2908e8.html 你好,我是测试蔡坨坨. 由于目前大多数GUI工具均需要依赖于程序类型进行特征属性识别,例如:Sel ...
- ES6块级作用域let声明和const声明以及与var之间的区别
一.ES6块级作用域 let 声明 块级声明用于声明在指定作用域之外无法访问的变量,存在于: ①函数内部 ②块内(字符{和}之间的区域) 禁止重声明 (1)如果在作用域由已经存在某个标识,再用let声 ...