视觉中的attention
可以看到最近的各种cv会议论文中都用到了各种各样的attention技术,那么在视觉中的attention到底是怎么样的呢?接下来,我们首先对attention做一个介绍,接着,并分析LCLR 2018的learn to pay attention 这篇论文让大家有一个更好的了解
什么是attention?
attention中文翻译也就是注意力,在神经网络中表示为“注意力机制”,一个好的attention机制可以让神经网络更好的注意到他特征图像的一部分,当然也是更为重要的部分,这有帮助网络预测结果。通常我们说的attention map其实就是一个矩阵,它里面数值的大小代表着图片中对应位置的重要程度。越大则代表越重要,在热力图中用红色来显示。
在 Grad-CAM 这篇论文中,他训练了一个分类网络,并将网络中的层进行可视化输出,如下图所示,在分类为狗时,网络的注意力会主要集中在狗的那一块位置上,这块位置在网络中的数值也会比较大,热力图中也很好的展现了。通常,attention分为“soft attention"和”hard attention",他们的区别如下,
由图中可以看出,soft attention相当于是给图像的每一部分加一个权重,因此,soft attention map的数值都在[0,1]这个范围中,与图片相乘就可以让网络重点关注某部分特征,减少其他部分的干扰。而hard attention则相当于图片裁剪,只保留重要的部分,其他部分直接去除,反映在hard attention map中就是矩阵的范围只属于0或者1。
说了这么多,大家对attention肯定有了一个初步的映像,不过在GRAD-CAM中,它是在已经训练好的网络上进行输出,查看神经网络的学习过程,但现在,我们需要的是一个可以训练的attention来帮助我们提高模型的性能。在神经网络中,如果想学习一个attention map,那他数学是怎么表示的呢?
对于一张图片输入,是网络中某一层的输出,,带包输出z的网络,这样我们就得到了一张特征图z ,那如何在这张特征图上做attention呢?首选,我们需要得到一张与z对应的attention map ,这个特征图可以用这个网络去学习,接下来,我们再将学习到的特征z 与 attention map a进行 点乘,就可以更好的关注注意力中标注的区域。
在接下来,有了对attention一个了解后,我们来分析learn to pay attention这篇论文。
…待续