简介
细粒度分类问题通常是很困难的,这是因为判别区域定位和细粒度特征学习是很具有挑战性的。现有方法常常忽略了区域检测和细粒度特征学习之间的相互关联性,而且它们可以互相强化。本篇论文提出了一个全新的循环注意力卷积神经网络(RA-CNN),用互相强化的方式对判别区域注意力和基于区域的特征表征进行递归学习。整个网络分为3个尺度,各尺度子网络的结构相同,参数不同。上一子网络的卷积特征经过注意力建议网络(APN)得到区域注意力,注意力区域缩放之后继续作为下一子网络的输入,递归执行,最终将三个子网络的卷积特征进行融合,融合之后的特征经过全连接层和softmax层实现分类。网络的损失函数由两部分组成:尺度内分类损失和尺度间排序损失,尺度间排序损失作为训练APN的监督信息,可以保证网络在无人工标注的条件下自学习到有判别力的区域注意力。APN网络的学习是依靠数据驱动的,这一点和faster-rcnn中的RPN稍有不同。
网络结构
蓝色区域为分类子网络,红色为注意力建议子网络。分类子网络特征提取部分采用VGG-19,区域建议子网络的输出为(tx,ty,tl),表示注意力建议区域的中心坐标和长度的一半。
RA_CNN
训练策略
训练分为3步:
- 使用在Imagenet上预训练过的相同的VGG网络初始化分类子网络
- 在原图像上搜索最后一个卷积层响应值最高的区域,以同样的方式在其他尺度获得一个更小的区域,用这些选择的区域预训练区域建议网络(APN)
- 迭代训练分类子网络和区域建议子网络,首先固定APN网络,在三个尺度优化softmax损失,直到收敛。然后固定分类子网络的参数,优化排序损失(ranking loss)。两部分的学习过程是迭代的,直到两种损失都不再改变。
其中,样本损失函数定义如下:
loss function
尺度间排序损失定义如下:
rank loss