ACNet: 特别的想法,腾讯提出结合注意力卷积的二叉神经树进行细粒度分类 | CVPR 2020
论文提出了结合注意力卷积的二叉神经树进行弱监督的细粒度分类,在树结构的边上结合了注意力卷积操作,在每个节点使用路由函数来定义从根节点到叶子节点的计算路径,结合所有叶子节点的预测值进行最终的预测,论文的创意和效果来看都十分不错
来源:晓飞的算法工程笔记 公众号
论文: Attention Convolutional Binary Neural Tree for Fine-Grained Visual Categorization

Introduction

细粒度分类(Fine-Grained Visual Categorization, FGVC)是图片分类的一个分支,由于类别间的相似性非常大,一般人比较难区分,所以是个很有研究意义的领域。受神经树研究的启发,论文设计了结合注意力卷积的二叉神经树结构(attention convolutional binary neural tree architecture, ACNet)用于弱监督的细粒度分类,论文的主要贡献如下:
- 提出结合注意力卷积的二叉神经树结构ACNet用于细粒度分类,在树结构的边上结合了注意力卷积操作,在每个节点使用路由函数从而定义从根节点到叶子节点的计算路径,类似于神经网络。这样的结构让算法有类似于神经网络的表达能力,以及能够从粗到细的层级进行特征学习,不同的分支专注于不同的局部区域,最后结合所有叶子节点的预测值进行最终的预测
- 添加attention transformer模块来加强网络获取关键特征进行准确分类
- 在三个数据集CUB-200-2011、Stanford Cars和Aircraft上达到了SOTA
Attention Convolutional Binary Neural Tree

ACNet包含4个模块,分别是主干网络(backbone network)、分支路由(branch routing)、attention transformer和标签预测(label prediction),如图2所示。将ACNet定义为$(\mathbb{T},\mathbb{O})$,$\mathbb{T}$为树状拓扑结构,$\mathbb{O}$为树边的操作集。论文使用满二叉树$\mathbb{T}={\mathcal{V},\mathcal{E}}$,$\mathcal{V}={v_1,...,v_n }$为节点,$\mathcal{E}={e_1,...,e_k }$为边,对于树深$h$,共$n=2h-1$节点,$k=2h-2$边。每个节点为路由模块,决定下一个计算节点,边采用attention transformer进行操作。另外,满二叉树$\mathbb{T}$采用了非对称结构,例如左边使用两个transformer模块,右边使用一个transformer模块,这样有利于提取不同尺寸的特征
Architecture
Backbone network module
由于细粒度类别的关键特征都是高度局部的,需要使用相对较小的感受域来提取特征,因此主干网络使用截断的VGG-16网络,输入改为$448\times 448$
Branch routing module
分支路由用来决定子节点的选择,结构如图2b所示,$k$-th层的$i$-th路由模块$\mathcal{R}_i^k(\cdot)$由$1\times 1$卷积和global context block组成

global context block的大概结构如上图a所示,来自GCNet的论文中。在context modeling和fusion步骤使用了simplified NL block,在transform步骤使用了SE block,这个模块能够很好地结合上下文信息来提取特征,最后使用global average pooling、element-wise square-root、L2正则化以及sigmoid激活的全连接层输出标量$[0,1]$
假设分支路由模块$R_i^k(x_j)$输出样本$x_j\in X$到右边节点的概率为$\phi_i^k(x_j)\in [0,1]$,则输出到左边节点的概率为$1 - \phi_i^k(x_j)$,概率越大的节点对最终结果的影响越大
Attention transformer

Attention transformer模块用于加强网络获取关键特征的能力,在$3\times 3$卷积后面插入结构如图2c所示的attention模块,该模块的旁路输出一个大小为$\mathbb{R}^{C\times 1\times 1}$的channel attention map对输入特征进行加权
Label prediction
对于ACNet的每个叶子节点,用标签预测模块$\mathcal{P}i$来预测目标$x_j$的类别,$r_i^k(x_j)$为目标$x_j$从根节点到k层第i个节点的累计概率,预测模块由$1\times 1$卷积层、max pooling层、L2归一化层、全连接层和softmax层组成,通过求和所有的叶子节点的预测结果和路径累计概率的乘积得到最终的预测$\mathcal{C}(x_j)={\sum}{i=1}{2{h-1}}\mathcal{P}_i(x_j)r_i^h(x_j)$

最终的预测结果$\mathcal{C}(x_j)$的各项和为1,论文对其进行了证明,有兴趣的可以去看看,主要基于叶子节点的累计概率和为1,各叶子节点的预测结果和也为1
Training
Data augmentation
在训练阶段,使用裁剪和翻转操作进行数据增强,首先将图片缩放至短边512像素,然后随机裁剪到$448\times 448$,随机进行翻转
Loss function

ACNet的损失函数由两部分组成,分别为叶子节点预测产生的损失以及最终结果产生的损失。$h$为树高,$y*$为GT,$L(\mathcal{P}_i(x_j),y)$为最终预测结果的负对数似然损失,$L(\mathcal{P}(x_j),y^)$为第$i$个叶子预测结果的负对数似然损失
Optimization
主干网络使用在ILSVRC上预训练的模型,使用"xavier"进行所有卷积层的随机初始化,整个训练过程包含两阶段,第一阶段固定主干网络训练60周期,第二阶段则使用小学习率对整个网络进行200周期的fine-tune
Experiments
训练共需要512G内存,8张V100,下面的实验主要跟弱监督的细粒度算法进行对比,即不需要额外的标注的细粒度算法
CUB-200-2011 Dataset

Stanford Cars Dataset

Aircraft Dataset

Ablation Study

Effectiveness of the tree architecture

如图5所示,使用树状结构能够显著提升准确率,使用Grad-CAM产生heatmap来对叶子节点对应的响应区域进行可视化,发现不同的叶子节点关注的特征区域各不一样
Height of the tree

Asymmetrical architecture of the tree

论文对比左右路径的attention transformer数的对称性对识别的影响
Effectiveness of the attention transformer module
如图5所示,attention transformer模块能够有效地提升模型的准确率
Components in the branch routing module


论文发现不同的分支路由模块关注的特征区域也不一样,图6的可视化结果分别为图2的R1、R2和R3节点使用Grad-CAM得到的响应区域
CONCLUSION
论文提出了结合注意力卷积的二叉神经树进行弱监督的细粒度分类,在树结构的边上结合了注意力卷积操作,在每个节点使用路由函数来定义从根节点到叶子节点的计算路径,结合所有叶子节点的预测值进行最终的预测,论文的创意和效果来看都十分不错
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

ACNet: 特别的想法,腾讯提出结合注意力卷积的二叉神经树进行细粒度分类 | CVPR 2020的更多相关文章
- 腾讯推出超强少样本目标检测算法,公开千类少样本检测训练集FSOD | CVPR 2020
论文提出了新的少样本目标检测算法,创新点包括Attention-RPN.多关系检测器以及对比训练策略,另外还构建了包含1000类的少样本检测数据集FSOD,在FSOD上训练得到的论文模型能够直接迁移到 ...
- ACM MM | 中山大学等提出HSE:基于层次语义嵌入模型的精细化物体分类
细粒度识别一般需要模型识别非常精细的子类别,它基本上就是同时使用图像全局信息和局部信息的分类任务.在本论文中,研究者们提出了一种新型层次语义框架,其自顶向下地由全局图像关注局部特征或更具判别性的区域. ...
- CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020
为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture searc ...
- 增量学习不只有finetune,三星AI提出增量式少样本目标检测算法ONCE | CVPR 2020
论文提出增量式少样本目标检测算法ONCE,与主流的少样本目标检测算法不太一样,目前很多性能高的方法大都基于比对的方式进行有目标的检测,并且需要大量的数据进行模型训练再应用到新类中,要检测所有的类别则需 ...
- 商汤提出解偶检测中分类和定位分支的新方法TSD,COCO 51.2mAP | CVPR 2020
目前很多研究表明目标检测中的分类分支和定位分支存在较大的偏差,论文从sibling head改造入手,跳出常规的优化方向,提出TSD方法解决混合任务带来的内在冲突,从主干的proposal中学习不同的 ...
- 旷世提出类别正则化的域自适应目标检测模型,缓解场景多样的痛点 | CVPR 2020
论文基于DA Faster R-CNN系列提出类别正则化框架,充分利用多标签分类的弱定位能力以及图片级预测和实例级预测的类一致性,从实验结果来看,类该方法能够很好地提升DA Faster R-CNN系 ...
- 我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer
前言 怎样的契机? 实际上,目前毕业已经两年时间了,在大学时就已经开始关注字节跳动的发展.一开始,我是电气自动化专业的,大二清楚目标之后就转计算机了,大四进了一家小型的互联网公司实习,具体就不说哪家了 ...
- [转]腾讯研发类笔试面试试题(C++方向)
https://blog.csdn.net/Xiongchao99/article/details/73381280 1.C和C++的特点与区别? 答:(1)C语言特点:1.作为一种面向过程的结构化 ...
- zz Must read
http://www.opengpu.org/forum.php?mod=viewthread&tid=965&extra=page%3D1 游戏引擎剖析(Game Engine An ...
随机推荐
- IOS 手动添加第三方库报错问题
当不想使用CocoaPods来管理和使用第三方库的时候,就需要手动添加和配置这些第三方库,难免会出现一些问题,主要问题汇总如下: 1.AFNetworking.NKNetWork.ZxingObjC等 ...
- spring 事务源码赏析(二)
我们在spring 事务源码赏析(一) 中分析了spring事务是如何找到目标方法,并如何将事务的逻辑织入到我们的业务逻辑中.本篇我们将会看到spring事务的核心实现: 1.事务传播机制的实现 2. ...
- Git之旅
ithub安装,我选择的是windows下的版本. git配置用户信息 安装完成后,还需要最后一步设置,在命令行输入: $git config --global user.name "You ...
- MATLAB 概率论题
1. 用模拟仿真的方法求解 clc clear tic n=0; N=100000; for ii=1:N b='MAXAM'; %字符串格式 a=randperm(5); % b=[b(a(1)), ...
- MetaQNN : 与Google同场竞技,MIT提出基于Q-Learning的神经网络搜索 | ICLR 2017
论文提出MetaQNN,基于Q-Learning的神经网络架构搜索,将优化视觉缩小到单层上,相对于Google Brain的NAS方法着眼与整个网络进行优化,虽然准确率差了2-3%,但搜索过程要简单地 ...
- Integer类的进制之间转换的方法
一.两个通用方法 1.public static String toString(int i,int radix) (1)作用 将十进制的数转化成指定进制数的字符串形式:radix参数指进制数: (2 ...
- 使用错误代码对象进行C++错误处理
原文发表于codeproject,由本人翻译整理分享于此. 前言 我已经使用了本文描述的代码和机制近20年了,到目前为止,我还没有找到更好的方法来处理大型C++项目中的错误.最初的想法是从一篇文章(D ...
- 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api
最近要开发一款抢购秒杀的小工具,需要同步系统时间,这里分享两个时间服务器接口api给大家: 1.淘宝时间服务器时间接口 http://api.m.taobao.com/rest/api3.do?api ...
- 1046 Shortest Distance (20分)
The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed t ...
- 浅谈动态规划(Dynamic Programming)
利用Leetcode#198打劫家舍 浅谈动态规划 Origin:https://leetcode-cn.com/problems/house-robber/ 题目本身不难,就是一个动态规划的问题.在 ...