本文为 AI 研习社编译的技术博客,原标题 :
State of the Art in Domain Adaptation (CVPR in Review IV)
作者 | Sergey Nikolenko、Anastasia Gaydashenko
翻译 | 老赵 校对 | 酱番梨
整理 | 菠萝妹
原文链接:
https://medium.com/neuromation-io-blog/state-of-the-art-in-domain-adaptation-cvpr-in-review-iv-21ac05f935b9
领域适应的最新进展(CVPR 回顾 -4)
我们已经分三期关于CVPR 2018(计算机视觉和模式识别)会议:第一部分专门讨论计算机视觉的GAN,第二部分涉及关于识别人类(姿势估计和跟踪)的论文,第三部分涉及合成数据。 今天,我们深入探讨最近一直在兴起的深度学习领域的细节:领域适应。 对于这个NeuroNugget,我很高兴为您呈现我的共同作者Anastasia Gaydashenko,他已离开Neuromation并继续加入思科...但他的研究继续存在,这就是其中之一。
什么是领域适应?
最近研究中有几个具体趋势(包括CVPR 2018),其中一个是领域适应。 由于这个领域与合成数据密切相关,因此我们在Neuromation对我们非常感兴趣,但这个主题在本身也越来越受欢迎和重要。
让我们从头开始。 我们已经讨论了构成现代计算机视觉基础的最常见任务:图像分类,对象和姿势检测,实例和语义分割,对象跟踪等。 由于深度卷积神经架构和大量标记数据,这些问题得到了相当成功的解决。
但是,正如我们在上一部分中所讨论的那样,总是存在一个巨大的挑战:对于监督学习,你总是需要找到或创建标记数据集。 几乎所有关于某些奇特的现有技术模型的论文都会提到数据集的一些问题,除非他们使用每个人通常比较的少数标准“ vanilla ”数据集之一。 因此,收集标记数据与设计网络本身一样重要。 这些数据集应该足够可靠和多样化,以便研究人员能够使用它们来开发和评估新颖的架构。
我们已经多次谈到手动数据收集既昂贵又耗时,往往非常耗费精力。 有时甚至不可能手动标记数据(例如,如何标记深度估计,评估图像上的点到相机的距离的问题?)。 当然,许多标准问题已经具有可自由或容易获得的大型标记数据集。 但首先,这些易于标记的数据可以(并且确实)将研究偏向于可用的特定领域,其次,你自己的问题永远不会完全相同,标准数据集通常根本不符合您的要求:它们将包含不同的类别,会有不同的偏置,等等。
使用现有数据集,甚至是没有专门针对你的特定问题的合成数据生成器的主要问题是,当生成数据并且已经标记时,我们仍然面临域转移的问题:我们如何使用一种数据准备网络应对不同种类? 对于整个合成数据领域来说,这个问题也很突出:无论你制作数据是否真实,它仍然无法与现实世界的照片完全区分开来。 这里的主要潜在挑战称为域移位:基本上,目标域中的数据分布(例如,真实图像)与源域中的数据分布(例如,合成图像)不同。 设计能够应对这种转变的模型正是称为域适应的问题。
让我们看看人们现在如何处理这个问题,考虑一下CVPR 2018中的一些论文,比之前的“CVPR in Review”分期付款稍微详细一些。
Pedro Pinheiro的这项工作(见pdf)来自ElementAI,这是一家蒙特利尔公司,于2016年由Yoshua Bengio共同创立。 它涉及一种基于对抗性网络的域适应方法,我们之前提到的那种方式(参见本文,第二部分即将推出)。
对无监督领域自适应的最简单的对抗方法是尝试提取跨域保持相同的特征的网络。 为了实现这一点,网络试图使它们与网络的单独部分(鉴别器(下图中的“光盘”)无法区分。 但与此同时,这些功能应该代表源域,以便网络能够对对象进行分类:
通过这种方式,网络必须提取能够同时实现两个目标的特征:(1)足够的信息,“类”网络(通常非常简单)可以分类,(2)独立于域,以便 “光盘”网络(通常与特征提取器本身一样复杂,或更多)无法真正区分。 请注意,我们不必为目标域提供任何标签,仅针对源域,通常更容易(再次考虑源域的合成数据)。
在Pinheiro的论文中,通过用基于相似性的部分替换分类器部分来改进这种方法。 判别部分保持不变,分类部分现在比较图像与一组原型的嵌入; 所有这些表述都是以端到端的方式共同学习的:
基本上,我们要求一个网络g从标记的源域和另一个网络f中提取特征,以从未标记的目标域中提取具有相似但不同的数据分布的特征。 不同之处在于现在f和g是不同的(我们在上图中有相同的f),并且分类现在是不同的:我们训练模型以区分目标原型和所有其他原型,而不是训练分类器。 为了标记来自目标域的图像,我们将图像的嵌入与来自源域的原型图像的嵌入进行比较,分配其最近邻的标签:
本文表明,所提出的基于相似性的分类方法对于两个数据集之间的域移位更加稳健。
在Murez等人的这项工作中(完整的pdf)。来自加州大学圣地亚哥分校和HRL实验室,主要的想法实际上相当简单,但实施是新颖和有趣的。 该工作涉及比分类更复杂的任务,即图像分割(参见我们之前的帖子),其广泛用于自动驾驶,医学成像和许多其他领域。 那么他们所谈论的这种“形象翻译”是什么?
让我们从常规翻译开始。 想象一下,我们有两个不同语言的大型文本语料库,比如英语和法语,我们不知道哪些短语对应哪个。 它们甚至可能略有不同,可能缺少其他语言语料库中的相应翻译。 就像来自合成域和真实域的图片一样。 现在,为了得到一个机器翻译模型,我们将一个短语从英语翻译成法语,并试图将所得短语的嵌入与原始法语语料库中的短语嵌入区分开来。 然后检查我们没有失去太多的方法是尝试将这个短语翻译成英语; 现在,即使原始语料库完全不对齐,我们也知道我们在寻找什么:答案就是原始句子。
现在让我们看看图像到图像的转换,实际上,它非常相似。 基本上,领域自适应技术旨在通过找到从源数据分布到目标分布的映射来解决域移位问题。 或者,域X和Y都可以映射到共享域Z,其中分布是对齐的; 这是本文中使用的方法。 这种嵌入必须是域不可知的(独立于域),因此我们希望最大化嵌入源和目标图像的分布之间的相似性。
例如,假设X是晴天驾驶场景的领域,Y是下雨天驾驶场景的领域。 虽然“晴天”和“下雨”是源域和目标域的特征,但实际上它们对于注释任务(例如,道路的语义分段)几乎没有任何意义,并且它们不应该影响注释。 在处理诸如结构化噪声之类的特征时,我们希望找到对这种变化不变的潜在空间Z. 换句话说,域Z不应包含特定于域的特征,即与域无关。
在这种情况下,我们还希望从目标域恢复图像的注释。 因此,我们还需要添加从共享嵌入空间到标签的映射。 它可能是图像级标签,如分类问题中的类或像素级标签,如语义分段:
基本上,这就是整个想法。 现在,要从目标域获取图像的注释,我们只需要将其嵌入到共享空间Z中并从C恢复其注释。这是该方法的基本思想,但可以通过这些思想进一步改进本文提出。
具体而言,实现成功的无监督领域适应需要三个主要工具:
域无关特征提取,这意味着从对抗性鉴别器网络判断,从两个域提取的特征的分布应该是难以区分的
特定域的重建,这意味着我们应该能够将嵌入解码回源域和目标域,也就是说,我们应该能够学习如下所示的函数gX和gY:
循环一致性,以确保正确学习映射,也就是说,我们应该能够回到我们开始的循环,如下所示:
在这项工作中提出的框架的重点是确保这些属性具有损失函数和对抗结构。 我们不会深入研究架构的细节,因为它们可能会针对其他领域和问题进行更改。
但是让我们来看看结果。在帖子的最后,我们将对三篇关于领域适应的论文进行详细比较,但现在让我们看一个例子。 本文使用了两个数据集:来自侠盗猎车手5的合成数据集和带有城市图片的真实世界城市景观数据集。 这是两张示例图片:
以下是真实世界图像的分割结果(上图B):
在这张图片中,E是地面真实分割,C是没有领域适应的结果,只需通过训练合成GTA5数据集,D是领域适应的结果。 它确实看起来更好,并且数字(交叉联合度量)确实证实了这一点。
本文由Hong等人撰写(完整的pdf)提出了标准鉴别器 - 分段器架构的另一种修改。 从第一次看到架构,我们甚至可能没有注意到任何差异:
但实际上这种架构非常有趣:它将GAN集成到完全卷积网络(FCN)中。 我们在之前的NeuroNugget帖子中讨论了FCN; 它是用于分割问题的网络体系结构,它通过反卷积层提供特征来返回图片中每个像素的标签。
在此模型中,GAN用于缓解源域和目标域之间的差距。 例如,前一篇论文通过中间特征空间对齐两个域,从而隐含地假定两个域具有相同的决策函数。 这种方法放松了这个假设:在这里我们学习来自两个域的特征图之间的残差,因为生成器学会产生类似于真实图像中的特征以欺骗鉴别器; 之后,更新FCN参数以适应GAN所做的更改。
同样,我们将显示下面结果的数字比较,但这里是数据集中的一些示例:
值得注意的是,在这项工作中,作者还提供了与我们在合成数据效率研究中所做的非常类似的事情:他们已经测量了结果的准确性(再次通过交叉结合测量)取决于部分 数据集中的合成图像:
这项工作由Sankaranarayanan等人完成(完整的pdf)介绍了基于GAN的基本方法的另一种修改,它使嵌入在学习的特征空间中更接近。 这一次,让我们从图片开始,然后解释它:
基础网络的结构类似于预先训练的模型,如VGG-16,分为两部分:F表示的嵌入和C表示的逐像素分类器。C的输出是标签的映射上采样到与F的输入相同的大小。生成器网络G将学习的嵌入作为输入并重建RGB图像。 鉴别器网络D在给定输入的情况下执行两个不同的任务:它以域一致的方式将输入分类为真实或伪造,并且还执行类似于网络C的像素标记任务(这仅适用于源数据,因为目标数据在训练期间没有任何标签)。
因此,这项工作的主要贡献是采用生成模型来对齐特征空间中的源和目标分布的技术。 为此,作者首先通过训练网络的重建部分,将使用CNN获得的中间特征表示投影到图像空间,然后通过强制网络学习特征使得源特征产生类似目标的图像来强加域对齐约束。 当传递给重建模块时,反之亦然。
听起来很复杂, 那么,让我们看看所有这些方法实际上是如何比较的。
我们选择这三篇论文进行深入研究,因为它们的结果实际上是可比较的! 所有这三篇论文都使用了GTA5的域适应作为源(合成)数据集和Cityscapes作为目标数据集,因此我们可以简单地比较这些数字。
Cityscapes数据集包含19个城市户外场景的特征,如 “road”, “wall”, “person”, “car” 等。所有这三篇论文实际上都包含表格,其中的结果按类别进行细分。
Murez等人,图像到图像的翻译:
Hong等人,条件GAN:
Sankaranarayanan等人,GAN in FCN:
平均结果分别为31.8,44.5,37.1,因此看起来图像到图像的方法是最不成功的,条件GAN是赢家。 为清楚起见,我们还要比较每种方法的前3个最不可区分的类别(即最佳和最差结果)。
最明显的是,按照相同的模型顺序:
road (85.3), car (76.7), veg (72.0)
road (89.2), veg (77.9), car (77.8)
road (88.0), car (80.4), veg (78.7)
但是最糟糕的课程情况则不同:
train (0.3), bike (0.6), rider (3.3)
train (0.0), fence (10.9), wall (13.5)
train (0.9), t sign (11.6), pole (16.7)
再次, “train” 类似乎构成了一种不可逾越的挑战(可能在训练集中没有那么多集合),但其他人都是不同的。 因此,让我们比较所有基于“自行车”, “bike”, “rider”, “fence”, “wall”, “t sign”, 和“pole” 类的模型。 现在他们的分数将非常明显:
你可以从这些结果中得出不同的结论。 但是我们个人觉得真正令人兴奋的主要结果是,对于这样一个复杂的任务可以提出许多不同的方法,在同一个会议上产生不同的论文(因此作者不能互相追随,这些结果独立出现)是 完全可以相互比较,研究人员毫不犹豫地发布这些可比较的数字,而不是一些舒适的自我开发的指标,这将证明他们无可置疑的至高无上的地位方式去嘻嘻嘻现代机器学习。
最后,让我们以更轻松的方式完成,还有一篇关于合成数据的有趣论文。
在这项工作中,PhilippKrähenbühl(完整的pdf)为流行的Microsoft DirectX渲染API创建了一个包装器,并在游戏运行时为游戏添加了专门的代码。 这使得DirectX引擎能够实时生成地面实况标签,例如分段,语义标记,深度估计,光流,内在图像分解和实例跟踪! 这听起来非常酷,因为现在,研究人员不仅可以手动标记数据或创建专用合成数据引擎,而且可以整天玩视频游戏! 您需要做的就是找到合适的3D游戏:
我们完成了CVPR 2018的第四部分。感谢你的关注 - 敬请关注。
Sergey Nikolenko
Chief Research Officer, Neuromation
Anastasia Gaydashenko
former Research Intern at Neuromation, currently Machine Learning Intern at Cisco
想要继续查看该篇文章相关链接和参考文献?
长按链接点击打开或点击【CVPR 2018摘要:第四部分】:
http://ai.yanxishe.com/page/TextTranslation/1196
查看 CVPR 2018摘要 系列更多文章,请点击:雷锋网雷锋网雷锋网
AI研习社每日更新精彩内容,观看更多精彩内容: