最近在看注意力模型相关的论文,看了很多文章,MACNN,RACNN等等,最近看的这篇FCANs感觉公式上比较难理解,所以在这里做一下论文记录。(不会对论文进行翻译,会简要的介绍一下)。
首先,是论文的普遍套路吧,介绍了图片的细粒度识别的挑战,当前人们做出的一些成就,提出的各种模型结构,取得的效果和忽视的细节以及作者的改进。
我们可以比较轻松的定位到鸟的各个部位(RACNN和MACNN都有用软硬注意力模型来定位的介绍,感兴趣的可以去看一下)和车的品牌定位,但是却很难区分食物的区别(论文举了这个例子,但是不知道他们提出的模型结构能否正确的区分这两道菜呢?不得而知了。。)
如上图的一个网络结构图。作者给出了训练和测试的各个阶段的模型图(特征提取,注意力,分类)。其中,我们可以用很多网络结构进行图像特征的提取(VGG,ResNet)。在训练中,对原始图像以不同的尺度进行特征提取,且在整个网络结构中会复用这个特征信息(就是说在后面的两个子网络中肯定会用到这个原始的特征信息),很多论文中对这个的解释是重用特征信息(类似于那种特征提取时的链式卷积求和)。在注意力网络中,采用两种卷积模式,3x3大小,64个卷积核,和3x3大小,1个卷积核的卷积层,第二个卷积层就生成了一个单通道的置信度映射,所以整个注意力网络是生成了两个不同维度的新的特征信息映射。在分类网络上,对特征进行裁剪,然后在最原始的特征映射和注意力模型产生的两个特征映射上进行分类。
我始终认为,损失函数,优化函数能够告诉我们网络能够取得好的效果的原因在哪,毕竟网络设计的道理很难直观的表示出来。所以我花了很大的时间去研究这个网络的损失函数和各个符号的意义。
符号的意义:首先作者介绍了论文中采用的一个思想:MDP(马尔可夫决策树)。简单的说就是一个状态,动作,奖励的一个组合。在FCANs中,动作代表了注意力区域的定位,进行完这个动作后,会观察输入的图像与你裁剪出的注意力关注区域,然后通过使用这个关注的区域进行分类,通过分类的性能来赋予这个动作的奖励。(接下来会用很大的笔墨去介绍论文用到的各种符号,大家可以对照论文来看)。
输入图像image用x来表示,特征提取网络用φ表示,网络中的所有参数用θf(上下标没办法实现,到时候可以结合论文看一下,都是按照顺序来的,f:feature)表示。φ(x; θf)就代表卷积操作提取的特征映射图。注意力模型的locations随着时间(1,2,3,…,T)一直在变化,每一时刻的定位组成了{l1,l2,l3,…,lT},其中的每个元素服从π(lt|φ; θlt),π代表一个选择标准(基本上选择峰值响应区域,l:locations),注意力模型的参数θl ={θlt}t=1…T。有了关注的区域,那么每一时刻,就会有一个分类组件去裁剪这部分区域lt,将这块区域作为新的一个特征φ(lt),并且进行分类,分类网络的参数 θc ={θct}t=1…T,c:classification。给出置信度st,而St就是所有时刻t下的所有预测置信度的均值。
公式上我做了一些笔记,正方体框起来的相当于一个定语,不需要求解,只是作为一个前提条件,我们要求的还是sT。求哪种情况下的sT呢?求的是在t时刻下,参数θct的情况下,裁剪出区域是lt的情况下,进行分类得到的置信度——sT。
下面进行我认为最重要的优化函数的理解。
总的优化函数是最大化J(θ),论文中等同于最大化R(θf,θl)-L(θf,θc)。R(θf,θl),f(feature)代表特征提取网络的参数,l(locations)代表注意力定位网络的参数,那么大概意思就是让特征定位的更准确(值更大)。L(θf,θc),f(feature)代表特征提取网络的参数,c(classification)代表分类网络的参数,那么大概意思就是让特征提取使得分类的更准确(值更小),那么就是最大化二者的误差。
N代表N个训练样本,T代表T个时刻,这个就代表分类的误差 average cross-entropy classification loss,θf,θc代表参数,不用理会。
平均期望奖励,这就牵扯到了上文提到的马尔可夫决策树(MDP),内层的函数的求解公式如下给出
就是对于你的注意力网络按照选择标准π选出的区域l,进行了这种选择的动作就会产生一个奖惩的值r,每一个时刻,每个样本的奖惩r之和就是我们要求的,而奖励与否直观上是和我分类的效果是挂钩的。经过这个选择,裁剪,我分类精度提高了,那么就给一个正的奖励,反之就给一个负的奖励(惩罚)。
文中提到了,一个普遍都能想到的一个奖惩策略是
t=T代表走完特征提取,注意力定位,分类的各个时间点之后的意思。那么就是在真实标签yn等于你预测出的概率最大值的y,那么奖励r=1,反之r=0。但是这样会出现训练的时候混淆了注意力网络所选区域在不同时间点的影响关系,会导致收敛的很慢,很困难。所以论文采用了一个贪心策略。
三种情况。1)、在第一时刻,若预测等于真实值,奖励r=1;2)、在之后的每一时刻,如果预测等于真实值并且后一次的分类损失小于前一次的分类损失的情况下,奖励r=1;3)、否则r=0。这样网络会收敛得很快。
利用MDPs训练注意力网络的前后传播如上图所示。
为了让计算注意力网络中的奖惩的反向传播更简单,所以作者又提出了下面一个方法来让反向传播更简单。
同样的我们也可以看到,特征提取网络的参数在整个网络中都是可以共享的,可复用的,而注意力网络的参数和分类网络的参数在各自的网络中是单独使用且不断变化的。
来源:CSDN
作者:zsd_studying
链接:https://blog.csdn.net/zsd_studying/article/details/84943598