因果理论在视觉常识特征学习中的应用

背景

文章提到,事实上,人类通过探索物理世界,自然而然地在无人监督的情况下学习常识,我们希望机器也能这样模仿。一个成功的例子便是NLP中词向量的学习,例如,一个词的表示XX能够通过预测它的上下文词语YY,P(YX)P(Y|X)来学习到。
然而,在视觉任务中,这一情形却有不同。原因是一旦一张图像形成,图像之中的各种物体为何构成这个上下文情景是不得而知的,这将导致“观察偏差”,举例,如果键盘(keyboard)和鼠标(mouse)被观察到与桌子(table)出现的频率比其他物体要高,那么网络在学习过程中可能会错误地认为keyboard和mouse是table的属性而非属于computer。
因此,判断两个物体的联系,不能仅仅通过共现概率P(YX)P(Y|X)来简单处理。

idea

因果理论在视觉常识特征学习中的应用

判断物体X、Y的关联关系,需要人为施加一定的“因果干预”,即P(Ydo(X))P(Y|do(X))。怎么执行这个dodo操作是论文的一个重点。简单来说,就是借助一些场景之外的物体加入的情况下,计算X、Y之间的联系。其中,所有能够加入到场景之中的物体zz构成了混淆因子字典ZZ。以COCO数据集为例,共有80个labels,每个类别标签被表示成d维向量,故字典大小为Z=[z1,z2,...,zN]Z=[z_1,z_2,...,z_N],shape N*d (N=80)。
混淆因子集合ZZ对X、Y关联关系的影响的示意图如下。
因果理论在视觉常识特征学习中的应用
加入因子zz的影响后有
P(YX)=zP(YX,z)P(zX) P(Y|X) = \sum_zP(Y|X,z)P(z|X)
又因为这里添加进来的混淆因子z对X的干扰都是独立的,上述公式可写成
P=(Ydo(X))=zP(YX,z)P(z)P=(Y|do(X)) = \sum_zP(Y|X,z)P(z)
通过上面两个等式的对比,能够发现使用dodo操作和不用dodo操作的差异。因此我们或许可以得知这样的信息的存在,例如P(persondo(toilet))>P(persontoilet)P(person|do(toilet))>P(person|toilet)可能是因为,使得P(ztoilet)>P(z)P(z|toilet)>P(z)成立的混淆因子zz的数量(相应的类标签数量)比P(ztoilet)<P(z)P(z|toilet)<P(z)zz数量要少。

Architecture

论文提出的实现P(Ydo(X))P(Y|do(X))的模块名为 VCRCNNVC \quad R-CNN
每两个RoIRoI组成一对X、Y送到这个模块中。以下图为例
因果理论在视觉常识特征学习中的应用
整个模块包含一个自预测器(Self-Predictor)和一个上下文预测器(Context Predictor)。如图,自预测器用于预测区域X的类别,此处是希望有因果干预介入的情况下仍希望保持模型的分类能力;上下文预测是在有混淆因子zz的情况下,预测区域Y的类别。
通过这么一个操作,来提高模型的鲁棒性,减少图像场景中带来的观测BiasBias

总结

VC R-CNN从因果干预的角度出发,在一定程度上弥补了现如今很多特征及方法只依赖correlation、context所带来的bias的缺陷。VC R-CNN提取的特征可以用作基本特征(bottom-up特征)的一个补充,提高模型的鲁棒性。