【论文阅读】Distract Your Attention: Multi-head Cross Attention Network for FacialExpression Recognition

【论文阅读】Distract Your Attention: Multi-head Cross Attention Network for FacialExpression Recognition_第1张图片

为了学习高质量的注意力特征,DAN网络分为三个部分:特征聚类网络(FCN)、多头交叉注意网络(MAN)和注意融合网络(AFN)。

第一部分:特征聚类网络(FCN)

FCN以Resnet为主干网络,同时引入了一个affinity loss。具体地说,在每一个train epoch中,我们都鼓励特征更接近它们所属的类别中心。同时,为了保持良好的可分性,将不同类别的中心分开。affinity loss的公式如下:

其中M代表样本数量,x_{i}^{'}代表Resnet的输出,y_{i}代表类别,c_{y_{i}}代表类别y_{i}的中心特征向量,\sigma _{c}^{2}代表各类别的中心特征向量之间的方差之和(通过代码看出来的)。

第二部分:多头交叉注意网络(MAN)

多头交叉注意网络是多个相互独立的 “ 空间注意单元和通道注意单元 ” 的组合。作者通过做实验,最后确定4个头的效果最好。这部分的网络结构如下图所示,一目了然。MAN的输出为4个一维特征向量。

【论文阅读】Distract Your Attention: Multi-head Cross Attention Network for FacialExpression Recognition_第2张图片

第三部分:注意融合网络(AFN)

如果让网络自己去训练这4个分支,那么这4个分支很有可能关注的是同一个区域,为了让不同的分支关注不同的区域,并将各个分支的特征信息融合,作者设计了注意融合网络(AFN)。首先,AFN通过应用log softmax函数来缩放注意力图,以强调最感兴趣的区域(就是一个scale操作),然后,作者提出了分区损失的概念,指导各个注意力分支分别关注不同的关键区域,避免重叠。最后,将4个分支的输出结果合并为一个,计算分类结果。

log softmax的表达式如下,e^{vi}为各个head的输出:

【论文阅读】Distract Your Attention: Multi-head Cross Attention Network for FacialExpression Recognition_第3张图片

partition loss(分区损失)的表达式如下,其中C代表一维特征向量(也就是各个分支输出结果)的长度,\sigma _{ij}^{2}代表4个分支输出结果(输出一维特征向量)之间的方差和,h代表分支的数量(默认为4)。这部分要想看懂怎么实现的,得去看代码,文中写的和代码写的有一点出入。

最后附上loss计算公式:

【论文阅读】Distract Your Attention: Multi-head Cross Attention Network for FacialExpression Recognition_第4张图片

你可能感兴趣的:(深度学习,人工智能)