细腻度图像分类相比普通的图像分类具有更大的挑战,因为在细腻度图像类别中类间差异往往只聚焦于很小的一个区域。比如在下图海鸥的3个品种中,差异仅仅体现在喙与脚;而在人类活动识别(human activity recognition)中的弹奏乐器与拿着乐器也仅仅体现在手和嘴上。针对这一类分类任务可采用强监督的学习方式,即根据下图中额外的bounding box信息去学习相应的模型;然而,一方面强监督的学习框架需要额外的标注信息;另一方面人为标定的区域(region)不一定是最适合模型分类的区域。因此基于非监督(注意这里的非监督指不需要bounding box信息,但是在模型学习中仍需要图像的label信息)的细腻度图像分类模型在现实世界中更加通用与有效。在CVPR2017中一篇oral论文Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition,提出了一个很有效的非监督学习模型, 能取得和采用类似bounding box标注的算法效果。

总的来说,该论文基于注意力机制的网络模型不断聚焦到最具辨别性的区域实现图像的分类,如下图,由粗尺度的啄木鸟原始图像聚焦到了更具辨别性的头部区域;如此反复聚焦到更细的尺度,使得模型类似于循环神经网络的流程。因此文中提出的模型叫Recurrent Attention Convolutional Neural Network (RA-CNN)。下面详细阐述模型的网络结构。

RA-CNN结构如下图所示:

可以看出,RA-CNN由上到下用了3个尺度并且越来越精细,尺度间构成循环,即上层的输出作为当层的输入。RA-CNN主要包含两部分:每一个尺度上的卷积网络和相邻尺度间的注意力提取网络(APN, Attention Proposal Network)。在每一个尺度中,使用了堆叠的卷积层等,最后接上全连接层于softmax层,输出每一个类别的概率;这个是很好理解的,文中采用的网络结构是VGG的网络结构。
APN实质是一个包含2个全连接层的网络,它的输入是卷积网络中的最后一层卷积层,输出是一个正方形区域( tx,ty,tl t x , t y , t l t_x,t_y,t_l),其中 tx,ty t x , t y t_x,t_y表示该区域的中心坐标, tl t l t_l表示该区域边长的一半。那么该辨别的正方形区域的左上坐标(top-left)和右下坐标(bottom-right)就可表示为

有了APN的区域输出,我们就聚焦了一个辨别区域 [tx,ty,tl] [ t x , t y , t l ] [t_x,t_y,t_l],那么从上一个尺度的图像中截取此辨别区域 [tx,ty,tl] [ t x , t y , t l ] [t_x,t_y,t_l]的图像数据为:

Xatt=X⊙M(tx,ty,tl) X a t t = X ⊙ M ( t x , t y , t l )

X_{att}=X \odot M(t_x,t_y,t_l)

其中 ⊙ ⊙ \odot为矩阵的对应元素相乘操作符,而 M(.) M ( . ) M(.)表示一个掩模矩阵(attention
mask)。文中进一步指出,为了进行网络结构的学习,作者针对这里的crop操作采用了近似的连续函数boxcar function,即

M(tx,ty,tl)=[h(x−tx(tl))−h(x−tx(br))]×[h(y−ty(tl))−h(y−ty(br))] M ( t x , t y , t l ) = [ h ( x − t x ( t l ) ) − h ( x − t x ( b r ) ) ] × [ h ( y − t y ( t l ) ) − h ( y − t y ( b r ) ) ]

M(t_x,t_y,t_l)=[h(x-t_{x(tl)})-h(x-t_{x(br)})]\times [h(y-t_{y(tl)})-h(y-t_{y(br)})]

其中 h(x)=1/(1+exp{−kx}) h ( x ) = 1 / ( 1 + exp ⁡ { − k x } ) h(x)=1/(1+\exp\{-kx\})为logistic函数,当 k k k足够大时,h(x)" role="presentation" style="position: relative;">h(x)h(x)h(x)类似于一个阶跃函数(step fuction);式中的 tx(tl),tx(br),tx(tl),tx(br) t x ( t l ) , t x ( b r ) , t x ( t l ) , t x ( b r ) t_{x(tl)},t_{x(br)},t_{x(tl)},t_{x(br)}为截取区域的左上,右下坐标。例如,假设截取正方形区域中心为 (150,150) ( 150 , 150 ) (150,150),半边长为50, k=1000 k = 1000 k=1000,那么M所产生的三维曲面如下图。从图中可以看出在截取区域内的值为1,边界区域0.5,其它区域为0。那么生成的M掩模矩阵能很好的进行截取区域的近似。并且该boxcar function为连续函数,使得在BP算法中计算梯度成为可能。

这里为了进一步有效的提取区域的特征,作者对截取区域进行了双线性插值放大。然后,再输入到卷积网络中。以上就是APN的实现细节,而其损失函数采用了成对的排序损失(pairwise ranking loss),即使得当前尺度的卷积网络的概率输出大于上一尺度的概率输出。直白的理解就是,通过APN后,获取了图像的辨别区域;那么预测的图像正确类别的输出概率会随着尺度的加深越来越大。最终,总的损失包含卷积网络的各尺度的输出损失和各个APN的成对排序损失,定为:

L(X)=∑s=13lcls(Ys,Y∗)+∑s=12lrank(Pst,Ps+1t) L ( X ) = ∑ s = 1 3 l c l s ( Y s , Y ∗ ) + ∑ s = 1 2 l r a n k ( P t s , P t s + 1 )

L(X)=\sum_{s=1}^3 l_{cls}(Y^s,Y^*)+\sum_{s=1}^2 l_{rank}(P_t^s,P_t^{s+1})

其中 lcls l c l s l_{cls}为卷积网络损失,即为常见的交叉熵损失函数; lrank l r a n k l_{rank}为成对排序损失,具体定义为

lrank(Pst,Ps+1t)=max(0,Pst−Ps+1t+margin) l r a n k ( P t s , P t s + 1 ) = m a x ( 0 , P t s − P t s + 1 + m a r g i n )

l_{rank}(P_t^s,P_t^{s+1})=max(0, P_t^s-P_t^{s+1}+margin)

这样的损失函数设计使得在训练过程中,以粗尺度的概率输出作为参考,并强制细尺度得到更好的输出以不断的聚焦到最具辨别性的区域。
整个网络的训练采用交替的训练策略,步骤如下:

  • 初始化:直接从ImageNet训练的VGG的参数初始化卷积网络;
  • 预训练APN:在卷积网络的最后一个卷积层里选取响应最大的区域作为APN的输出区域,其中该输出区域的大小初始化为原始图像的一半。这样有了区域 [tx,ty,tl] [ t x , t y , t l ] [t_x,t_y,t_l],我们就可以预训练图中的2个APN网络( d1,d2 d 1 , d 2 d_1,d_2);
  • 交替训练:固定APN的参数,训练卷积网络;固定卷积网络的参数,训练APN;直到两者的 loss 不再变化。注意,在参数 tl t l t_l的更新中,作者加入了约束,即当前尺度的 tl t l t_l大小不得小于上一尺度的 1/3 1 / 3 1/3,以保证截取区域的结构完整性。其中,截取操作采用了具有连续性质的 boxcar 函数,成对排序损失 lrank l r a n k l_{rank}对参数 [tx,ty,tl] [ t x , t y , t l ] [t_x,t_y,t_l]的求导是很容易的;有了 lrank l r a n k l_{rank}对参数 [tx,ty,tl] [ t x , t y , t l ] [t_x,t_y,t_l]的梯度,再往回传,即就是更新APN网络中2个全连接层的权重参数。

该论文采用通过尺度内分类损失(intra-scale classification loss)和尺度间排序损失(inter-scale ranking loss)进行优化,以相互学习精准的区域注意力和细粒度表征。最后的实验结果表面RA-CNN 并不需要边界框或边界部分的标注,即可达到和采用类似bounding box标注的算法效果,并且可以进行端到端的训练。

基于注意力机制的细腻度图像分类相关推荐

  1. 【文献阅读笔记】之基于注意力机制的深度学习路面裂缝检测

    中文,计算机辅助设计与图形学学报,第 32 卷 第 8 期,2020 年 8 月. DOI: 10.3724/SP.J.1089.2020.18059 摘要: 为实现自动准确地检测路面裂缝, 提升路面 ...

  2. 关于ATIS以及基于注意力机制的递归神经网络模型 的学习记录

    关于ATIS以及基于注意力机制的递归神经网络模型 的学习记录 此为本人学习的类笔记,主要内容为借助Google翻译机译的论文WHAT IS LEFT TO BE UNDERSTOOD IN ATIS? ...

  3. Nat.Commun.|使用基于注意力机制的多标签神经网络预测并解释12种RNA修饰

    今天介绍来自西交利物浦大学和福建医科大学的Zitao Song, Daiyun Huang等人六月份发表在Nature Communication的文章"Attention-based mu ...

  4. 基于注意力机制的图卷积网络预测药物-疾病关联

    BIB | 基于注意力机制的图卷积网络预测药物-疾病关联 智能生信 人工智能×生物医药 ​关注 科学求真 赢 10 万奖金 · 院士面对面 9 人赞同了该文章 今天给大家介绍华中农业大学章文教授团队在 ...

  5. 可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)

    可视化神经机器翻译模型(基于注意力机制的Seq2seq模型)   序列到序列模型是深度学习模型,在机器翻译.文本摘要和图像字幕等任务中取得了很大的成功.谷歌翻译在2016年底开始在生产中使用这样的模型 ...

  6. ciaodvd数据集的简单介绍_基于注意力机制的规范化矩阵分解推荐算法

    随着互联网技术的发展以及智能手机的普及, 信息超载问题也亟待解决.推荐系统[作为解决信息超载问题的有效工具, 已被成功应用于各个领域, 包括电子商务.电影.音乐和基于位置的服务等[.推荐系统通过分析用 ...

  7. 论文浅尝 | 用于学习知识图谱嵌入的一种基于注意力机制的新型异构 GNN 框架HRAN...

    笔记整理 | 李爽,天津大学 链接:http://hfbix45521e79b0484907sowxo0fubpp9b6xwx.fiiz.eds.tju.edu.cn/stamp/stamp.jsp? ...

  8. 论文浅尝 | ​ADRL:一个基于注意力机制的知识图谱深度强化学习框架

    论文笔记整理:谭亦鸣,东南大学博士. 来源:Knowledge-Based Systems 197 (2020) 105910 链接:https://www.sciencedirect.com/sci ...

  9. 《Effective Approaches to Attention-based Neural Machine Translation》—— 基于注意力机制的有效神经机器翻译方法

    目录 <Effective Approaches to Attention-based Neural Machine Translation> 一.论文结构总览 二.论文背景知识 2.1 ...

最新文章

  1. 科研费4年翻3倍,全球科研队伍突破8000人,滴滴致力打造出行领域核心技术
  2. 网络协议 19 - RPC 协议:远在天边近在眼前
  3. 学习和在生产环节使用d语言的三个条件
  4. 浅析C#中的套接字编程
  5. Servlet获得Http请求,GET/POST
  6. PWN-PRACTICE-CTFSHOW-8
  7. 容器编排技术 -- Kubernetes kubectl rollout undo 命令详解
  8. 招博士生 | 澳门科技大学人工智能课题组
  9. 10款概念手机,哪款是你的最爱
  10. 使用PS2EXE将PowerShell脚本编译为可执行程序
  11. vue3 echarts地图(各省的json数据跟china.json)
  12. hadoop面试题汇总
  13. 【Nokia5800xm软件资源】
  14. 推荐一个好组件Javascript文本比较工具
  15. 街头篮球服务器未响应,我的生涯我做主 《街头篮球》生涯联赛FAQ
  16. signal信号捕捉
  17. Sublime Text 3 使用心得(转)
  18. HTML5开发 页游/手游动画及游戏系列教程(Game Tutorial):(一)物体动起来吧
  19. 官方蓝牙4.0基本概念
  20. RichEdit读取rtf格式

热门文章

  1. 如何用Python打电话来播放一段语音
  2. springboot 使用 @Scheduled注解定时任务, 方法传参解决办法
  3. 灰色预测GM(1,N)代码
  4. 2017蓝桥杯等差素数(C++B组)
  5. 《近匠》RealSense:几行代码,为游戏添增实感交互
  6. ArkTS-HarmonyOS应用开发video体验分享
  7. 模式识别-期末复习简答题(87个知识点、问题集锦|已完结)
  8. PonyORM教程1 连接,声明和查询
  9. 解锁新姿势-使用TensorRT部署pytorch模型
  10. 服务器 虚拟磁盘,虚拟磁盘技术