当前位置: 首页 > 科技观察

能识别人和鱼的人工智能能识别美人鱼吗?阿里CVPR论文因果推理方法解答

时间:2023-03-20 02:15:48 科技观察

学过人像和鱼像的AI,第一次看到人鱼像会有什么反应?人脸鱼身,它很熟悉,但从未见过的东西,它却无法想象。近日,阿里巴巴达摩院将因果推理方法引入计算机视觉领域,试图克服机器学习方法的不足,让AI去想象它从未见过的事物。相关论文已被计算机视觉顶级会议CVPR2021收录。论文链接:https://arxiv.org/pdf/2103.00887.pdf代码链接:https://github.com/yue-zhongqi/gcm-cf计算机视觉(CV,ComputerVision)是研究如何制造机器“看”AI的科学是让AI通过将非结构化的图像和视频数据表达成结构化的特征来理解视觉信息。深度学习出现后,AI在CV领域的诸多任务上展现了超越人类的能力。但是,相对于人类的视觉理解,AI仍然是一个非常“低维”的存在。人类很容易通过人和鱼的形象想象出美人鱼,但AI却极有可能随机将美人鱼归入“人”或“鱼”的范畴。因为他们缺乏“想象”的高级认知能力。现阶段机器学习技术的本质是通过观察数据进行拟合,这导致AI只能识别自己学到的东西,遇到超出训练数据的对象往往容易陷入“人工智障”。图灵奖获得者、因果算法创始人朱迪·珀尔认为,人类的想象力来自我们具有因果推理能力的大脑。人类善于问“为什么”,也就是寻求事物的因果关系。有了这个认知系统,我们就可以用“小数据”来处理现实世界中无限的“大任务”。然而,AI只能用“大数据”来处理“小任务”。如果AI能够学会因果推理,有望打破“智商天花板”,甚至产生强大的人工智能。因果推理理论极大地启发了研究人员,其与机器学习的结合越来越受到关注。在工业界,达摩院城市大脑实验室率先将因果推理方法引入CV领域,利用因果推理模型赋能机器学习模型,让视觉AI更加智能。今年,团队与南洋理工大学合作了《反事实的零次和开集识别》(CounterfactualZero-ShotandOpen-SetVisualRecognition)等三篇使用因果推理方法的论文,均被CVPR2021收录。左边是现有方法的AI“想象”结果,中间是达摩院论文提出的算法核心,右边是基于达摩院框架的想象结果。左右图中,红色代表训练集中的样本,蓝色是AI未见过类别的样本,绿色是AI对未见过类别的想象。零样本学习是指让机器对看不见的对象类别进行分类。开放集识别需要机器将看不见的对象类别标记为“未知”。这两项任务都依赖于想象力。《反事实的零次和开集识别》提出了一种基于反事实的算法框架,通过将样本特征(例如物体的姿态)和类别特征(例如是否有羽毛)解耦,然后根据样本特征生成反事实。在流行的数据集上,该算法的准确度比现有的最先进方法高出2.2%到4.3%。论文作者岳中奇指出,AI认知智能的演进才刚刚开始,行业的探索还处于早期阶段。未来,他们将继续完善和优化相关算法。根据城市大脑实验室的说法,数据驱动的机器学习模型普遍面临着数据不平衡的问题。“以城市为例,其信息呈长尾分布。与海量的正常信息相比,交通事故、车辆违章、突发灾害等异常信息发生的概率很小,样本稀缺,虽然可以通过增加稀有样本的数量来部分解决问题,但成本高、效率低。基于自研算法,只有使用正常的信息样本,才能让AI实现无偏的异常检测结果。一旦发生紧急情况,比如某车与某行人发生异常互动,城市大脑不必装懂或视而不见,而是可以实时识别并反馈信息。“未来,这项技术有望应用于城市基础视觉算法系统的优化,极少数样本城市异常事件感知能力的优化,甚至多模态语义搜索、智能图形生成和CVPR是计算机视觉领域的三大顶级会议之一,CVPR2021会议将于6月19日-25日在线举行,今年会议收录论文1663篇,录用率27%。阿里巴巴集团入选论文41篇,是2020年的2.6倍。下面,《反事实的零次和开集识别》论文的第一作者岳中奇对他们的论文进行分析。《反事实的零次和开集识别》论文分析在现有的零样本学习和开放集识别中,seen和unseen类别之间的识别率严重失衡。我们发现这种失衡是由于unseen类别样本的扭曲想象。据此,我们提出了一个反事实框架,实现了ste通过基于样本特征的反事实生成保真度对评估数据集进行快速改进。这项工作的主要优势在于我们提出的GCM-CF是用于已见/未见类别的二元分类器,任何监督学习(已见类别)和零样本学习算法都可以在二元分类(未见类别)之后应用;我们提出的反事实生成框架适用于各种生成模型,例如基于VAE、GAN或Flow的模型;我们为两组概念之间的解耦提供了一个易于实现的算法接口接下来,我将具体介绍我们针对的任务,提出的框架和相应的算法。零时学习和开集识别很多人都知道羚羊和貘这两种动物(如上图所示),那么鼻子长得像貘的羚羊长什么样子呢?也许你可以想象出一种类似于图片右侧的动物(它叫做高鼻羚羊)。在上面的过程中,我们在做零样本学习(Zero-ShotLearning,ZSL):虽然我们没有见过高鼻羚羊,但是我们可以通过现有的关于羚羊和貘的知识来想象这种看不见的羚羊。类别的出现相当于认识了动物。事实上,这种将已有知识概括为未见过事物的能力是人们能够快速学习的重要原因。让我们看另一个路牌示例。我们很容易认出,左边的两个路牌很熟悉,见过,而右边的是一个很陌生的路牌,从来没有见过。人类可以很容易地完成这样的开集识别(Open-SetRecognition,OSR),因为我们不仅熟悉我们所见过的样本,而且还具有识别未知世界的能力,从而知道所见之间的边界和看不见的。在机器学习中,这两个任务的定义如上图所示。零样本学习训练集提供了一组S个类别。对于上面的图片,除了每张图片的类别标签之外,每个类别还有一个额外的属性(attribute)来描述这个类的特征(比如有翅膀,圆脸等)。测试时有两种设置:在ConventionalZSL下,unseen类别U(S∩U=?)的所有图片,测试时也会给出U类别的denselabel。而在GeneralizedZSL中,测试集有来自S和U的图像。开放集识别的训练集与普通的监督学习没有区别,只是在测试时会有未见过类别的样本。除了正确识别见过的类之外,分类器还将未见过的类标记为“未知”。现有的ZSL和OSR的主要方法都是基于生成的。例如在ZSL中,利用未见类别的属性特征生成图像,然后在图像空间中进行比较。但是生成模型自然会偏向seen训练集,扭曲对unseen类别的想象(这其实是因为属性特征的纠缠,这里不做详细展开,可以参考论文)。例如,我在训练时看到了大象的长鼻子,但当我想象从未见过的貘的长鼻子时,我会把它想象成大象的鼻子。左图显示了这种扭曲:红色是训练集中的样本,蓝色是ground-truthunseencategory的样本,绿色是现有方法对unseencategory的想象,已经脱离样本空间,既不像已见类也不像未见类(绿色点偏离蓝色和红色点)。这解释了为什么已见类和未见类的识别率不平衡:用绿色和红色样本(黑色虚线)学习的分类器牺牲了未见类的召回率来提高已见类的召回率。反事实生成框架那么如何在想象时保持保真度呢?让我们想想人们是如何想象的:当我们想象一个远古生物长什么样子时,我们会根据它的化石骨架(左);在想象动画世界中的场景时,我们会参考现实世界(右)。这些想象的本质其实是一种反事实推理。给定这样一个化石(事实),如果它还活着会是什么样子(反事实)?给定现实世界中的某个场景,如果这个场景来到动画世界会是什么样子?通过建立在事实的基石上,我们的想象力变得合理而不是幻想。那么是否有可能在ZSL和OSR中使用反事实来产生似是而非的想象?我们首先为这两个任务构建了一个基于因果关系的生成模型GenerativeCausalModel(GCM)。我们假设观察到的图片X是由样本特征Z(与类别无关,比如物体的姿态等)和类别特征Y(比如羽毛、圆脸等)生成的。现有的基于生成的方法实际上是学习P(X|Z,Y),然后将Y的值设置为某一类的特征(比如ZSL中的denselabel),将Z设置为高斯噪声来生成那里这个类的样本很多。反事实生成与现有生成模型最大的区别在于它是根据特定的样本特征Z=z(事实)而不是高斯噪声生成的。具体过程如上图所示。对于一张图片x,我们通过encoderz(?)得到图片的样本特征Z=z(x)(比如前视、行走等),基于这个样本特征Z(fact)与不同的类别featuresY(counterfact),我们可以生成不同类别的反事实图片x?(正视、遛猫、羊和鸡等)。凭直觉我们知道,因为反事实生成的猫、羊、鸡的图片不像x,所以x一定不属于这三类。这种直觉实际上得到了理论的支持——称为反事实一致性规则。通俗的解释是,当反事实与事实重合时,结果就是事实结果。例如,事实是我昨天吃了冰淇淋拉肚子了,那么反事实问题“如果我昨天吃了冰淇淋会怎样?”的答案。是腹泻。那么如何通过一致性规则来解决ZSL和OSR呢?GCM-CF算法我们的GCM-CF算法流程如上图所示。它本质上是一个二元分类器,根据一致性规则来判断一个样本是否属于已经见过的类。在训练期间,我们学习GCM。测试时,对于每个样本X=x,我们使用上一节介绍的步骤生成反事实:使用这个样本自身的Z=z(x),将不同的类别特征放在一起Y=y,然后使用P(X|Z=z(x),Y=y)生成x?。这样生成的样本可以被证明是“CounterfactualFaithful”的,即在样本空间中,那么我们可以利用样本空间中的度量来比较x和生成的x?,并使用一致性规则来判断x是否属于已见或未见类别。具体到任务上,在ZSL中,我们利用unseencategory(图中的Y_U)的属性来生成counterfactualsamples,然后利用训练集的样本(seenclasses)和生成的样本(unseenclasses)训练出一个线性分类器,在对输入样本X=x进行分类后,我们取已见类和未见类的前K个概率的平均值。如果unseenclass的平均值很小,我们认为样本X=x不像unseenclass(不一致),将这个样本标记为属于seenclass,使用seenclass中的样本上面使用监督学习分类器进行分类(这其实是基于一致性规则的转置推理,详见论文);反之,如果一致,则标记为seenclass,然后用任何ConventionalZSL算法进行分类。在OSR中,由于没有unseencategories的信息,我们使用seencategory的one-hotlabel(图中的Y_S)作为Y来生成counterfactualsamples。如果x和生成的样本在欧几里德距离下很远(不一致),则认为x属于未见过的类,标记为“未知”,否则,可以使用监督学习分类器。可以看出,算法的核心要求是生成保真度样本,以便利用一致性规则进行推理。这个性质可以用反事实忠实定理来保证,简单地说:保真度生成的充分必要条件是样本特征和类别特征之间的解耦(disentangle)。我们通过三个loss来实现:β-VAEloss:这个loss需要encode得到的Z=z(x),和样本本身的Y=y,可以重构样本X=x,编码后的Z必须与各向同性高斯分布非常一致。这样,通过使Z的分布独立于Y来实现解耦;Contrastiveloss:在counterfactual生成的样本中,x只像自己类别特征生成的样本,与其他类别特征生成的样本相距甚远。这避免了生成模型只使用Z中的信息生成而忽略了Y,从而进一步将Y的信息与Z解耦;GAN损失:这种损失直接要求判别器认为反事实生成的样本是真实的。充分必要条件,用保真度进一步解耦。实验在介绍实验之前,值得注意的是ZSL常用的ProposedSplit官方数据集存在数据泄露bug,导致某些方法在seencategory(S)中表现特别高。去年官网发布了ProposedSplitV2来解决这个bug。我们以下的实验都在修改后的数据集上运行。缓解seen和unseen类别识别率的不平衡下面的tsne展示了counterfactualgeneration的结果。可以看出,生成的unseenSee类别的样本确实是保真的(中间的蓝点),得到的决策边界(黑线)也是平衡的。ZSL常用的4个数据集也体现了这一点。我们的方法极大地提高了未见类别(U)的准确性,从而提高了整体准确性H(调和均值)并达到SOTA的性能。.现有的方法其实对不平衡有一个简单的解决方法,就是直接调整seen类别的logits。通过改变调整范围,我们可以得到一条seencategory和unseencategory的曲线。您可以看到我们的方法(红线)在每个调整级别都更高,表明它以简单调整无法从根本上减少失衡的方式。seen/unseencategories的强大分类器我们的方法可以应用于任何常规的ZSL算法,我们测试了基于推理的RelationNet,以及基于不同生成网络的三种基于生成的方法,发现加上我们的方法得到了改进和超越使用当前最先进的TF-VAEGAN作为可见/不可见分类器的性能。强大的开放集分类器我们在几个常用的数据集上进行了开放集识别实验(使用F1指标),并取得了SOTA性能。因为在开集识别中未见过的类别数量是未知的,所以一个好的分类器必须是小数和大数都好的。在右侧面板中,我们将F1分数与未见类别的数量(从少到多)作图,我们的方法(蓝色)在每种情况下都是最好的,并且在未见类别测试中,在许多情况下(在蓝色曲线),F1基本不下降,体现出很强的鲁棒性。结论这项工作是我们对解缠表示的一点点探索和摸索。我们将所有难以实现的因子全解缠放宽为两组概念(样本特征和类别特征)之间的解缠,并利用解缠带来的忠实属性使我们提出的反事实生成框架成为可能。这也从一个方面反映出,去耦是进行因果推理的重要前提。当区分不同的概念时(例如解耦表示),我们可以根据它们之间的因果关系进行推理,并得到稳健、稳定和可推广的结论。我也看到了一些对脱钩的悲观和疑虑。确实,目前连解耦的定义都没有定论,更不用说方法、评估等了。但这些困难也是可以预见的:解耦是帮助机器跨越一个层次,从学习观察数据的规律到探究这些数据的原因---就像人们很容易知道太阳每天都会升起的定律是的,但是却需要几千年的时间才能理解太阳为什么会升起。我们也鼓励大家多关注和探索脱钩领域。也许你会带来下一个突破。