循环注意力卷积神经网络——RA-CNN(论文笔记)

一、前言

本文是对论文《Look Closer to See Better:Recurrent Attention Convolutional Neural Network for Fine-Grained Image Recognition》的学习梳理总结,主要参考文献为论文原文——《Look Closer to See Better:Recurrent Attention Convolutional Neural Network for Fine-Grained Image Recognition》,以及一篇博客——《论文阅读笔记 | (CVPR 2017 Oral) Look Closer to See Better:RA-CNN》

二、本文拟解决的问题

识别纹理细密的物体类别(比如鸟类)是很困难的,这是因为判别区域定位(discriminative region localization)和细粒度特征学习(fine-grained feature learning)是很具有挑战性的。现有方法主要都是单独地来解决这些挑战性问题,然而却忽略了区域检测(region detection)和细粒度特征学习(fine-grained feature learning)之间的相互关联性,而且它们可以互相强化。
本文利用这种相互关联性提出一种新的模型,来更好地处理细粒度图像识别的问题。

三、解决问题的方法

本文提出了一种全新的网络模型——循环注意力卷积神经网络(RA-CNN),用互相强化的方式对判别区域注意力(discriminative region attention)和基于区域的特征表征(region-based feature representation)进行递归学习。
在每一尺度规模(scale)上进行的学习都包含一个分类子网络(classification sub-network)和一个注意力建议子网络(attention proposal sub-network——APN)。APN 从完整图像开始,通过把先期预测作为参考,由粗到细迭代地生成区域注意力(region attention),同时精调器尺度网络(finer scale network)以循环的方式从先前的尺度规格输入一个放大的注意区域(amplified attended region)。
RA-CNN 通过尺度内分类损失(intra-scale classification loss)和尺度间排序损失(inter-scale ranking loss)进行优化,以相互学习精准的区域注意力(region attention)和细粒度表征(fine-grained representation)。RA-CNN 并不需要边界框(bounding box)或边界部分的标注(part annotations),而且可以进行端到端的训练。
下面是对RA-CNN模型的进一步讲解:

四、RA-CNN

RA-CNN
fig. RA-CNN结构框架
输入图像从上到下按粗糙的完整大小的图像精炼后的区域注意力图像排列。
不同的网络分类模块(蓝色部分) 通过同一尺度的标注预测 Y(s) 和真实 Y∗之间的分类损失 Lcl 进行优化;注意力建议(红色部分) 通过相邻尺度的 p (s) t 和 p (s+1) t 之间的成对排序损失 Lrank(pairwise ranking loss Lrank)进行优化。
其中 p (s) t 和 p (s+1) t 表示预测在正确类别的概率,s 代表尺度。APN 是注意力建议网络,fc 代表全连接层,softmax 层通过 fc 层与类别条目(category entry)匹配,然后进行 softmax 操作。+代表「剪裁(crop)」和「放大(zoom in)」

每个scale网络有2个输出

  1. 分类
    p(X) = f(Wc* X)
    Wc: (b1)或(b2)或(b3)网络的参数,也就是一些卷积层、池化层和激活层的集合,用来从输入图像中提取特征.
    Wc* X: 就是最后提取到的特征.
    f()函数: 就是fully-connected层和softmax层,用来将学习到的特征映射成类别概率,也就是p(X).

  2. 区域检测
    [tx, ty, tl] = g(Wc* X)
    这里假设检测出来的区域都是正方形,即tx和ty表示区域的中心点坐标,tl表示正方形区域边长的一半.
    g()函数: 也就是APN网络,可以用两个fully-connected层实现,其中最后一个fully-connected层的输出channel是3,分别对应tx、ty、tl。

损失loss

对应于每个scale中的两个子网络——分类子网络注意力建议子网络(APN),损失loss包含两部分,用于对两个子网络的参数进行训练:
在这里插入图片描述

  1. intra-scale classification loss
    在这里插入图片描述
    其中,Y(s) 表示预测的类别概率,Y* 表示真实类别标签
  2. inter-scale pairwise ranking loss
    在这里插入图片描述
    -pt(s): 正确分类标签对应的预测概率值。
    从Lrank损失函数可以看出,当更后面的scale网络的pt大于相邻的前面的scale网络的pt时,损失较小。即通过训练减少损失值,使得后面的scale网络预测更准。
    由此可以看出,模型能够通过训练找到正确的注意力推荐框,并不训练人工进行标注。因此APN子网络的学习是无监督的

于是这样的网络就可以得到输入图像X的不同scale特征,用{F1, F2, … FN}表示。
-N: scale的数量
-Fi: 第i个scale的分类子网络全连接层输出,文中称Fi为“descriptor”

融合不同scale网络的输出结果:
把每个分类子网络的最后的全连接层堆叠起来,然后将它们连接到一个全连接层,随后通过softmax层,进行分类。

训练步骤

  1. 初始化分类子网络: 用预训练的VGG-Net初始化分类子网络中卷积层和全连接层的参数;
  2. 初始化APN: 查找分类子网络的最后一层卷积层(conv5_4 in VGG-19)具有最高响应值(highest response)的区域,用该区域的中心点坐标和原图边长的一半来初始化(tx,ty,tl);
  3. 固定APN的参数,训练分类子网络直至Lcls收敛;随后固定分类子网络的参数,训练APN网络直至Lrank收敛。这个训练过程是迭代交替进行的,直到两个网络的损失收敛。

相关实验部分见论文,此处省略。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本初-ben

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值