论文全名 PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION TRANSFER
https://github.com/szagoruyko/attention-transfer
https://arxiv.org/pdf/1612.03928.pdf
介绍
已经证明注意力在用人工智能网络的许多任务如计算机视觉和自然语言处理上有很重要的作用。本文展示了通过给CNN定义合适的注意力,我们可以通过强迫student CNN模仿teacher CNN的注意力图极大的提升student CNN的性能。最后,我们提出了几个新颖的注意力迁移方法,在多个数据集和卷积网络上都有稳定的提升。
为了研究这些问题,首先需要正确定义一个网络的注意力。我们考虑注意力作为一个空间图,它把网络为了输出决策(例如图像分类)而对输入中最感兴趣的区域进行编码,这个图可以定义为能够捕获低层,中层,高层的表示信息的各个网络层。具体而言,在本文中,我们定义了两种空间注意力图:基于激活(activation-based)的空间图和基于梯度(gradient-based)的空间图。我们探索了这些注意力图在不同数据集和网络结构上的变化,展示了其中蕴含的信息可以极大地帮助提升卷积网络的性能。最后,我们提出了一个从teacher到student网络迁移注意力的新方法(图1)。
本文将knowledge定义为anttention map,student模仿teacher的attention map。
与《A gift from knowledge distillation》是同一类的文章,只不过它是迁移的学习的过程,本文迁移的是注意力机制,都是迁移方式上的改进。本文和《FitNets》也是一类的,FitNets迁移的是一个中间隐含层的输出,这个迁移的是attention map,且没有引入新的参数。另外不同的是attention map不需要FitNet使用的conv regressor尺度匹配,因为可以直接对attention map进行插值resize。
我们工作的贡献在于:
- 提出了让注意力作为从一个网络到另一个网络的知识迁移机制
- 提出了同时使用基于激活和基于梯度的空间特征图
- 实验证明了我们的方法在多个不同的数据集和深度网络中有极大的提升,包括残差网络和非残差网络
- 展示了基于激活的注意力迁移比激活迁移有更好的提升,可以和知识蒸馏结合在一起
ACTIVATION-BASED ATTENTION TRANSFER
考虑一个CNN层和对应的激活张量A∈RC×H×W,c个通道,每个维度是H×W。基于激活的映射函数F把这个3维张量作为输入,输出一个2维空间特征图:
F : R C × H × W → R H × W F : R^{C×H×W}→R^{H×W} F:RC×H×W→RH×W
三种求attention map的方法:即三种把一个(C, H, W)映射成一个(H, W)的attention map方式
- sum of absolute values: F s u m ( A ) = ∑ i = 1 C ∣ A i ∣ F_{sum}(A)=\sum_{i=1}^{C}\left|A_{i}\right| Fsum(A)=∑i=1C∣Ai∣
- sum of absolute values raised to the power of p (where p > 1): F s u m p ( A ) = ∑ i = 1 C ∣ A i ∣ p F_{\mathrm{sum}}^{p}(A)=\sum_{i=1}^{C}\left|A_{i}\right|^{p} Fsump(A)=∑i=1C∣Ai∣p
- max of absolute values raised to the power of p(where p>1): F m a x p ( A ) = m a x i = 1 , C ∣ A i ∣ p F_{\mathrm{max}}^{p}(A)=max_{i=1,C}\left|A_{i}\right|^{p} Fmaxp