注:部分转载于https://www.jianshu.com/p/d5c968e0e194(博主:月牙眼的楼下小黑)
发表于:ICLR 2018 (Poster)
代码地址:https://github.com/SaoYan/LearnToPayAttention
论文类型:注意力机制用于分类网络
摘要:提出一种注意力生成机制,使用全局特征(global feature)为不同尺度上的特征图(local feature)生成Attention Map, 强制网络仅使用不同尺度的Local feature结合对应的Attention Map进行最终分类,并使得不同scale的Attention map关注图像不同的区域,互相补充。
亮点:
- 全局特征被视作一种Query, 直接影响Attention maps的生成
- 不同scale的Attention map关注图像不同的区域,互相补充
- 强制网络仅使用local features进行分类
- 使用了不同尺度上的特征进行融合
模型概览:
流程概述:
如上图所示,L: [L1、L2、L3]
分别为VGG网络中不同尺度下的中间特征输出(local feature,原属于VGG网络的最终分类层FC-2, 10
被移除,全连接层FC-1, 512
的输出G
即被视作全局特征 (global feature),Attention Estimator
接收Ln
和G
作为输入,计算出Attention map, Attention map作用于Ln
的每一个channel得到 Weighted local feature L'n
。各个scale下的L'n
进行concat之后得到L':[L'1、L'2、L'3]
,最后将L'
送入全连接层分类器FC-2, 10
进行最终分类。
关键操作和细节:
- Attention map 具体如何计算得到?
论文中提出了两种方法通过L和G来计算Attention map
:
1.有参法(parameterised)
:将两个张量逐元素相加后,再经过一个线性映射(1x1的卷积)学习Attention map, 下式中u即代表学习到的线性映射
2.点乘法(dot-product-based)
:将两个张量直接做点乘得到Attention map
- Attention Estimator 的输入为维度不一定相同的
G
和L
/不同的中间输出特征G
之间维度不同,如何处理?
使用映射函数(project function),将特征映射到相同维度(相同通道数),具体的操作即为使用1x1的卷积对特征进行升/降维,论文源码将中间层输出特征都映射为和全局特征维度一致。
思想:
1.利用Attention map来确认和寻找那些有效支持CNN模型做出选择的区域(这和CAM的想法类似),这个方法的一个重要前提假设是:施加更多的关注在图像的显著性区域上,同时减轻对那些不相关或者易混淆区域的关注
是对分类有益的;对图像更集中和简洁的使用更有助于数据分布发生变化时网络的鲁棒性
。
2.本文中Attention map其实是local feature和global feature间的compatibility
的表现形式,两类特征的compatibility(兼容性)
由上文提到的有参法或者点乘法得到。每个compatibility
作为中间特征的注意力权重。
3.通过强制使用中间特征输出的集合进行分类,强制使得网络去学习解决当前任务的特定的Attention模式。
实验:
作者分别在分类任务、细粒度图像分类任务、弱监督分割任务、对抗样本攻击、跨领域图像分类任务上进行了实验,均取得了不错的结果。
- 细粒度图像分类:作者在鸟类数据集上进行实验,不同scale的Attention区域关注鸟的不同身体部位。
- 弱监督分割任务:不同特征图的Attention map关注目标的不同区域,互相补充,多张Attention map能够更精准、更完整地覆盖目标区域。
- 对抗样本攻击:模型对对抗样本的鲁棒性更强了。
- 跨领域图像分类:模型特征提取能力更易迁移。
除此之外,作者还对生成Attention map的两种方法进行了实验分析,分析了两种方法的不同。
如上图所示,先利用一幅
target image
的 global vector 和 local feature map 产生 attention map (第三、六列), 然后再选取另一张图片作为 query image
, 利用 query image
的 global vector 和 target image 的 local feature map 产生 attention map( 第四、七列) , 比较两个attention map 的异同(第五、八列)。
- 对于
点乘法
产生Attention map来说,global feature直接影响Attention map的生成,会使得网络关注和query image
中目标相同类别的目标区域; - 而对于
有参法
来说,global feature对Attention map几乎没有影响,作者得出的结论是有参法学习到的映射函数的权重u
能够去学习目标为中心的高阶特征,这些特征能够较好地进行从训练数据泛化到验证数据,因为它们的类别相似;还有一个原因就是global feature
和local feature
在数值量级上差距过大。
一些启示:
一开始看到这篇论文并没有觉得非常solid或者有什么insight,在仔细阅读完整篇论文之后有所改观。作者不仅仅是使用不同尺度的中间特征来进行分类,而是以global feature
作为一种Query
来控制中间特征需要关注的区域。
还有一个值得注意的点:作者提到全局特征和局部特征数值量级差距过大,这需要我在实验中被进一步证实,如果属实,那在对中间特征和全局特征进行融合或者拼接时应该考虑进行归一化操作。