笔记:注意力

The Application of Two-level Attention Models in Deep Convolutional Neural Network for Fine-grained Image Classification(两级注意力模型在深度卷积神经中的应用细粒度图像分类网络)

细粒度分类具有挑战性,因为类别只能通过细微的和局部的差异来区分。姿势、比例或旋转的差异通常会使问题更加困难。大多数细粒度分类系统遵循寻找前景对象或对象部分(在哪里)的管道,以提取鉴别特征(什么)。
本文提出将视觉注意应用于深度神经网络的细粒度分类任务。
我们的管道集成了三种类型的关注:

the bottom-up attention that propose candidate patches,提出候选补丁的自底向上的关注

the object-level top-down attention that selects relevant patches to a certain object,选择特定对象相关补丁的对象级自顶向下的关注

and the part-level top-down attention that localizes discriminative part,以及定位有区别的部分的部分级自顶向下的关注。
我们结合这些注意来训练特定领域的深网,然后使用它来改进什么和哪里的方面。重要的是,我们避免使用昂贵的注释,如边界框或端到端部件信息。薄弱的监管约束使我们的工作更易于推广。
在ILSVRC2012数据集和CUB200 2011数据集的子集上验证了该方法的有效性。

  • 在ILSVRC2012 1K类别上预先训练的卷积神经网络(CNN)转换为FilterNet。FilterNet选择与基本级别类别相关的补丁,从而处理对象级别的关注。选定的补丁驱动另一个CNN训练成一个领域分类器,称为DomainNet。
  • 在DomainNet内部隐藏表示中观察集群模式。神经元群对不同的部分表现出高度的敏感性。因此,我们选择相应的滤波器作为部分检测器来实现部分级注意。

 Object-Level Attention Model

 

  • patch selection using object-level attention

       直接利用在目标数据集上预训练好的CNN模型作为filter。我们利用具体类别的父类别来作为判断依据,比如吉娃娃,是狗所以留下。根据是不是狗来判断要不要留下patches。这里会生成一个score表,我们设定一个阈值来决定是否要选择patches。通过这方法,多视角,多维度的特征得以保留,并且有效去除噪声。(过滤掉背景patches)

  • Training a DomainNet

       用FilterNet选择出来的patches被用来训练新的CNN。
我们从一张图像中提取出很多的patch,相当于做的data augmentation,类似随机裁剪,但是我们的patch具有更高的confidence。有两个好处:1.DomainNet是一个号的细粒度的图像分类器;2. 它生成的内部特征允许我们构建部分检测器。

  • Classification using object-level attention

       在test阶段,也可以用上面的方法来提取confidence比较高的patches。为了预测test数据的label,我们把刚才生成的selected patches输入DomainNet进行前向计算,然后计算softmax输出分类分布的所有patches的均值。最后我们根据这个均值得到最后的预测结果。
       这个方法包含一个超参数:confidence的阈值。这个会影响selected patches的质量和数量。在实验中,设置此值维0.9,因为这个数值能够提供最好的val准确率还有test时的表现。


Part-Level Attention Model

  • Building the part detector

        DPD和Part-RCNN研究表明特定的有判别力的局部特征对于细粒度的图片分类很有用。由于DomainNet的隐层包含了很多的特征信息,比如所有的神经网络节点能够反映鸟的头部特征,其他的反映身体特征。这些特征确实能够代表或者说为他们的类别站台。

图3从概念上展示了这个步骤执行的内容。本质上,对相似矩阵S进行谱聚类,将中间层滤波器划分为k组,其中S(i, j)表示DomainNet中两个中间层滤波器Fi和Fj权值的余弦相似度。在实验中,我们的网络本质上与AlexNet[12]相同,我们从第4个卷积层中选取神经元,k值设为3。每个簇充当一个部件检测器

当使用聚类滤波器从区域建议中检测部件时,步骤是:

1)将patch建议变形到conv4滤波器输入图像的接受域大小。resize图片大小
2)将patch转发给conv4,对每个过滤器产生激活评分。
3)将一个聚类中的滤波器得分相加,得到聚类得分。
4)选择每个聚类得分最高的补丁作为部分补丁。

  •  Building the part-based classifier

由part detector选择的patches,然后包装回输入大小的DomainNet生成激活。将不同部位的激活与原始图像连接起来,然后训练一个SVM作为基于部位的分类器

该方法包含多个超参数,如检测滤波器层:conv4,簇数:3。
我们遵循标准实践,保留10%的网格搜索训练数据的验证集来确定这些数字。
结果表明,conv4优于conv3或conv5;设置k >3时,没有带来更好的准确性。
为了验证每个部分的效果,我们从每个聚类一次修剪一个特征。注意到一个聚类不可避免地会引入负面效应,因此我们在训练分类器时没有使用该部分的特征;
目测显示,该簇是带有噪声模式的滤波器聚集的地方。这些选择可以根据数据集改变。


The Complete Pipelin

object-level和part-level方法各有千秋。他们的功能和优势是不同的,主要是因为他们的接受的patch不同。

1、使用selective serch产生的patches,这些patch驱动了DomainNet。

2、part-level分类器专门对那些包含有判别力的局部特征进行处理。尽管有的patch被两个分类器同时使用,他们代表不同的特征,因此能够潜在的互补。

3、最后我们利用下面的公式将两个模型的结果结合在一起。


object_score是按object attention选择的patch平均的softmax值,part_score是是SVM产生的决策值。α使用验证的方法来确定,在实验中,设置为0.5。选择分数最高的final score作为预测结果。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值