首先说明一点,该文章的一些具体的细节写得不太清楚,加上本人才疏学浅,也缺少相应的解读资料,所以以下看法仅代表我个人的观点,如有错误,还请指正。
原文:https://download.csdn.net/download/Megurine_Luka_/15908619(侵删)
近期阅读论文《Attentional Neural Fields for Crowd Counting》,在走了许多弯路之后,终于对文章有了一点点了解。
虽说文章题目带有“条件随机场”,但感觉跟条件随机场的关系并不是很大,也没有用条件随机场的学习算法来更新参数,就是单纯建了个模。不懂条件随机场应该也能看。
整个网络的结构如上图所示,f6到f1是经过一层层残差网络(具体结构文章没写)处理的特征图,每经过一层残差网络,图像的尺度缩小一半,不过通道数不变。接着,将它们赋值给h1到h6,通过迭代,进行不同尺度间的特征融合,最终,迭代六次之后(目测),h6的值为特征图。
模型通过最大化下面这个函数的值完成特征融合。其中,M表示不同尺度图像像素间的注意力,而A表示自注意力。
下面几个式子是详细解释,其中i,j表示特征图中像素的下标,s则表示当前需要更新第几个尺度的特征图:
我觉得这一部分的目的在于,融合结果尽量要与原本的特征图f贴近,不能相差太大。
其中m应该是不同尺度间的注意力权值,文章认为这个值也应该越大越好。两个数值比较接近的像素,它们之间的注意力权重m势必会比较大,而利用这个函数更新特征图h,则会使两个接近的像素更趋于接近。
自注意力机制也是同样的道理。
另外,a,m将会通过如下方式计算:
最后是迭代更新问题。由于要求式(2)的最大值,将这个函数对hi求导,得到:
由于是求极大值,令这个导数为0,得到:
也就是迭代更新的式子。
还有一个问题,那就是每张特征图的像素很多,而如果计算像素间两两联系,实现这样的计算量不太现实,作者说要使用平均场推断。我感觉直接对像素采样的话应该能解决这个问题,不太明白作者为什么要这样做。