前言

本文将因果推理中的反事实理论和注意力学习相结合,因果推理近几年和视觉任务结合的比较紧密,因此这篇文章也算是挺前卫的了,通篇读来,其切入角度、可解释性、简洁性、推理时效等,觉得还是非常可借鉴的,因此整理一番同大家一道学习。

代码:GitHub - raoyongming/CAL: [ICCV 2021] Counterfactual Attention Learning for Fine-Grained Visual Categorization and Re-identification

背景

目前的注意力学习机制大多是基于弱监督,使用似然估计监督注意力的学习,通过最终的预测计算损失函数,并通过反向传播修正学习过程。但是这种模式忽略了数据内在的偏差,如果注意力是因,预测是果,那按照这种模式学习到的因果关系可靠吗

            

举一个和文中所述的例子,现有一个鸟类数据集,鹰这一类别的图像大部分都有天空,这显然采集到的数据内部是有偏的(背景太单一),模型很可能把天空作为一个可辨识不同类别的特征来学习,只要有天空的特征就把很可能把目标归为鹰,那么当来了一个同样有天空做背景的秃鹫(最右侧图像),模型也很可能将其分类为鹰。这个例子说明了数据中存在的偏差,误导了注意力的学习,导致模型学习不到正确的因果关系

因此,文章提出了基于反事实的注意力质量评估方法,来鼓励模型学习有效的、关键的视觉模式。同时,这种方法做到了可插拔,可以应用到更多的视觉任务中。

方法

结合反事实机制,注意力学习的整体网络结构如图1所示。

整个流程包括建立因果图和反事实干预两部分内容。

建立因果图

要使用反事实,需要先建立因果图,图1左下侧是建模的因果图,特征映射 X 是注意力映射 A 和推理结果Y的Parent,X 和 A 、X 和 Y 以及 A 和 Y 之间存在因果关联关系。 

反事实干预

因果图建立后,随机产生一组和模型学习到的注意力映射 A观测值)形状一致的伪注意力映射 \bar{A},相当于此时 X 和 A 之间没有了因果关联关系(虚线箭头所示),对应的推理结果 Y 和 \bar{Y} 相减,便是学习到的注意力映射所带来的Affect,即 X\rightarrow A 带来的收益,这个值越大越好。通过这种机制,可以鼓励模型去学习关键的、能区分不同类别的特征映射。

推理阶段

推理阶段没有了伪注意力生成流程,相当于推理阶段没有任何附加成本。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐