Multi-Scale Densenet续作?搞定Transformer降采样,清华联合华为开源动态ViT!

作者丨小马
编辑丨极市平台

先验知识

Transformer最近在CV领域展现出了不错的效果,Vision Transformer(ViT)的大致流程可分为两步:

1)因为Self-Attention(SA)的计算复杂度是和输入特征的大小呈平方关系的,所以如果直接将224x224的图片输入到Transformer中,会导致计算量的“爆炸”。因此,ViT的第一步是将图片转换成更小的token(比如16x16),然后将这些token进行flatten后输入到Transformer中。

2)利用Transformer进行视觉特征的提取并分类。

在第一步中,图片转换成token的操作相当于是一个降采样的操作,降采样的倍数越大(获得的token越少),损失的信息越大,ViT的计算速度也就越快。降采样的倍数越小(获得的token越多),损失的信息越小,ViT的计算速度也就越慢。在以前的ViT中,没有考虑图片的内容,将所有图片都转换成固定大小的token,就会导致对于“简单图片”,这样的“降采样”过于精细,造成计算资源的浪费;对于“复杂”图片,这样的降采样细粒度不足,造成精度的损失。因此,本文作者就提出了动态的ViT来解决这个问题。

Noting:感兴趣的同学可以再去看看黄高老师的Multi-scale DenseNet[1],我个人觉得,这篇文章的Motivation和Multi-scale DenseNet很像。

Multi-scale DenseNet的Motivation这样的:对于分类网络的测试而言,有些输入图像是网络容易分类的(也就是简单样本,通常是主体比较明确,背景比较清晰),有些输入图像是网络难分类的(也就是困难样本,通常是主体被遮挡会很小,背景比较复杂)。以softmax输出为例,假设一个2分类的例子,如果一张图像属于两个类的概率分别是0.01和0.99,和一张图像属于两个类的概率分别是0.51和0.49,显然相比之下前者更容易分类。那么从这个点出发,作者就想到了能不能对于简单图像仅采用浅层的速度较快(对应到这篇文章就是用更少的token)的网络来分类,而对于难分类图像再采用深层的(对应到这篇文章就是更多的token)速度慢一点的网络来分类。

1. 论文和代码地址

Not All Images are Worth 16x16 Words: Dynamic Vision Transformers with Adaptive Sequence Length

论文地址:https://arxiv.org/abs/2105.15075

代码地址:https://github.com/blackfeather-wang/Dynamic-Vision-Transformer

2. Motivation

首先作者做了一个实验(Table1),用14x14的token能达到76.7%的准确率;用4x4的token就能达到60.8%的准确率,这说明ImageNet中很多的图片用4x4的token就能识别准确了(也就是有很多图片都是简单样本)。用14x14token计算量是4x4的token计算量的8.5倍,因此全部图片都用14x14的token在计算上其实是一种浪费。

因此,作者就提出了先用少的token进行预测,如果置信度能够大于某一个阈值,就直接输出结果;否则就用更多的token进行预测,如果置信度能够大于某一个阈值,就直接输出结果…一直循环,直到最后一层ViT(用最多的token进行预测)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值