本文是《Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition》的论文阅读笔记
(菜鸟一枚,见解不对希望大家轻喷)
原文下载
代码地址
每次看文章三个问题。
Q1:本文解决什么问题?
以前的方法分开独立解决辨别区域定位和细粒度特征学习,本文采用区域检测和细粒度特征学习之间的关联性使得两者之间相互强化。
Q2:本文通过什么模型/理论/方法来解决这个问题?
1.循环注意力卷积神经网络(recurrent attention convolutional neural network,RA-CNN)
2.注意力建议子网络(attention proposal sub-network,APN)
3.尺度内分类损失(intra-scale classification loss)和尺度间排序损失(inter-scale ranking loss)
Q3:本文的结果
在鸟类、犬类和汽车数据上表现较好,相对准确率分别提高了3.3%、3.7%、3.8%。
核心想法
由粗尺度到细尺度
以上图为例,原文的中心思想就是,通过注意力网络将啄木鸟从粗尺度放大到细尺度,从这个高度局部区域观察到非常细微的视觉差异。
实现方法
注意建议网络(APN)
受RPN(RegionProposal Network)启发,端到端训练。
对于输入图像X,第一个任务生成细粒度类别的概率分布p。
Wc表示整体参数,*表示一系列卷积、池化和激活操作,f(.)表示全连接层将关联特征映射到可与类别条目匹配的特征向量,并包含一个softmax层进一步将特征向量转换为概率。
第二个任务为下一个更细尺度预测一个注意力区域的含有三个参数正方形边框坐标。
tx,ty表示正方形中心的x,y像素点,tl表示正方形边长的一半。
通过一个方脉冲函数实现裁剪操作使之可以反向传播,通过注意区域定位到左上坐标和又下坐标。
在图上进一步表示为
计算注意力区域掩模表达式为
h(.)是指数为k的logistic函数
裁剪的结果为
同样⊙表示同位元素相乘。
裁剪后自适应放大:对Xatt做线性映射,可理解为上采样过过程。
循环注意力卷积神经网络(RA-CNN)
蓝色部分表示不同的分类网络模块,红色部分表示注意建议网络。
损失函数
在每个尺度s上,通过分类损失Lcls优化预测Y(s)和真实Y*之间的标签。在相邻的尺度s和s+1之间,通过成对排序损失优化标签t对应正确分类的概率P(s)t和P(s+1)t。
这样设计在训练时使得更拿惊喜的网络往更具判别区域逼近,提高预测的置信度。
多尺度联合表示
将多个尺度特征结合起来,在计算分类结果。
实验结果