卷积神经网络的一个有趣的失败和CoordConv解

卷积神经网络的一个有趣的失败和CoordConv解

优步在许多领域使用卷积神经网络,这些领域可能涉及坐标转换,从设计自动驾驶汽车到自动化街道标志检测,以构建地图,并最大限度地提高优步市场的空间运动效率。

在深度学习中,很少有想法能像卷积一样受到如此大的影响。几乎所有最先进的机器视觉结果都使用卷积层堆栈作为基本构建块。由于这样的架构很普遍,我们应该期望它们擅长于简单的任务,比如在一个小图像中绘制单个像素,对吧?

令人惊讶的是,卷积通常很难完成看似微不足道的任务。在我们的论文中,卷积神经网络的一个有趣的失败和CoordConv解,我们揭示并分析了卷积神经网络(cnn)在两种不同类型之间转换空间表示的通用无能:(i, j)中的坐标。笛卡儿空间和单热像素空间中的坐标。这很令人惊讶,因为任务看起来很简单,而且它可能很重要,因为这样的坐标变换似乎是解决许多常见任务所必需的,比如检测图像中的对象,训练图像的生成模型,以及从像素训练强化学习(RL)代理。事实证明,这些任务可能一直都微妙地受到这种卷积失败的影响,正如我们在使用我们提出的解决方案(称为CoordConv的层)时在多个领域演示的性能改进所表明的那样。

我们的研究结果总结在下面的视频中:

第一个发现:监督渲染对cnn来说很难

让我们考虑一个简单的任务监督呈现其中,我们将(i, j)位置作为网络的输入,并要求网络生成以该位置为中心绘制正方形的64×64图像,如图1a所示。你会使用什么类型的网络来解决这个任务?

我们可以采用许多人采用的方法雷竞技是骗人的作品生成图片用一堆反褶积(转置卷积)层绘制正方形。为了测试这个想法,我们在64×64画布上创建了一个由随机放置的9×9正方形组成的数据集,如图1b所示。枚举所有可能的完全可见的正方形会得到一个总共有3136个示例的数据集。为了评估模型的泛化效果,我们定义了两个训练/测试分割:a统一的分割,其中所有可能的中心位置被随机分为80% / 20%的训练集和测试集象限分割,其中,画布被分为四个象限:以前三个象限为中心的正方形放在火车集中,最后一个象限的正方形放在测试集中。数据集的两个分割的分布如图1c所示:

图1。(a)监督渲染任务要求网络绘制给定位置(i, j)的正方形。(b)示例数据点和(c)统一和象限分割的列车与测试集的可视化。

我们假设cnn可以简单地解决这个任务,因为这个任务非常简单(整个数据集可能只需要两行Python代码就可以生成,如我们的论文),而且由于数据集太小,我们可以很容易地对模型进行过度参数化。但事实证明,cnn的表现出奇地差。即使模型的参数多达1M,训练时间超过90分钟(图2b),也无法在均匀分割上获得超过0.83的测试IOU,在象限分割上获得超过0.36的测试IOU(图2a)。

图2。(a)在统一和象限分割上对监督呈现任务的训练和测试IOU。没有一款车型的欠条达到1.0。(b)训练一个较好的模型需要90分钟才能获得0.8的IOU。

简化任务和二次发现:监督坐标分类对于cnn来说是困难的

那么为什么监督呈现如此之难呢?为了更全面地理解这一点,有必要再深入一些。毕竟,如果在直接监督下进行训练是如此困难,那么当我们切换到无监督学习时,它只会变得更具挑战性,例如,在由学习鉴别器提供的损失相同的数据上训练生成对抗网络(GAN)。

让我们把问题缩小范围,找出使问题具有挑战性的因素。现在我们要求网络只绘制一个像素(而不是9×9正方形)。可以想象,如果给出了这个单像素任务的解决方案,进一步的反卷积网络可以很容易地将这样的像素扩展成一个更大的正方形,这是我们通过实验验证的直觉。我们由此得出监督坐标分类任务(图3a),其中数据集由(i, j)对坐标和单个对应像素激活的图像组成,如下图3b所示:

图3。(a)监督坐标分类任务要求网络绘制给定(i, j)位置的单个像素。(b)示例数据点和(c)列车与测试分段的可视化。

我们再次尝试了许多具有不同超参数的网络,并观察到尽管一些网络可以记住训练集,但没有一个网络超过86%的测试准确率(图4a)。这还需要一个多小时的训练。

图4。(a)统一和象限分割上监督坐标分类任务的训练与测试精度。尽管一些模型记住了训练集,但没有一个模型在测试集上的准确率高于86%,以便更容易地均匀分割。这意味着卷积甚至不能泛化一个像素。(b)训练到86%的准确率需要一个多小时。

我们期望卷积能完美地工作,但它不是。为什么不呢?为了弄清楚网络实际上在做什么,我们选择训练过的最好的网络并检查它的预测。

我们要求网络绘制一张只有一个像素的图像(在one-hot表示中值为1)。要查看发生了什么,让我们放大目标像素周围的小区域。在图5中,目标像素以红色高亮显示,我们显示了模型的softmax预测以及logits。第一个像素(最上面一行)在训练集中,所以正如预期的那样,模型得到了正确的结果,尽管一些概率泄漏到了目标像素之外。右边的下一个像素(中间行)在测试集中,并且模型几乎是正确的,而邻近的像素捕获了几乎同样多的概率。再看右边的像素(底部一行),可以看出模型是完全错误的。这是令人惊讶的,因为作为80/20分割的结果,几乎所有的测试像素都被训练像素包围。

图5。在几个相邻像素上建模预测。网络过拟合火车的准确率是完美的,而测试的准确率是86%,这更令人惊讶,因为大多数测试像素几乎完全被火车像素包围。此外,网络甚至明显难以拟合训练集,有很大的概率泄漏到目标像素之外。

反转方向和第三个发现:监督回归对cnn来说也很难

那么,对于网络来说,为什么在给定位置的情况下突出显示一个像素如此困难呢?是因为将信息从小空间扩展到大空间非常困难吗?相反的方向会更容易吗?如果我们训练一个卷积网络,将图像信息分解成标量坐标,更类似于普通的图像分类呢?

事实证明,这个有监督的回归任务的效果同样很差。在图10中,左边的圆点表示正确的像素坐标,中间的圆点表示模型的预测。忽略一些细节,该模型在测试集上表现不佳,并且明显难以预测训练集。

简而言之,方向并不重要。

这个看似简单的坐标变换任务导致了两个方向的卷积问题:从笛卡尔(i, j)空间到单热像素空间,或者从笛卡尔(i, j)空间到单热像素空间。即使在监督下训练,当只有一个像素被绘制,当周围都是训练示例时,卷积仍然无法学习笛卡尔空间和像素空间之间的平滑函数。此外,性能最好的卷积模型非常庞大,充其量只能勉强工作,并且需要很长时间来训练。

解决方案:CoordConv

事实证明,有一个简单的解决办法。

卷积是等变的,这意味着当每个滤波器应用于输入以生成输出时,它不知道每个滤波器在哪里。我们可以通过让滤波器知道它们的位置来帮助卷积。我们通过向输入添加两个通道来实现这一点——一个是i坐标,另一个是j坐标。我们将结果层称为CoordConv,如下图6所示:

图6。卷积层和协同卷积层的比较。CoordConv层将填充坐标信息的额外通道作为输入,这里是i和j坐标。

提出的CoordConv层是对标准卷积层的简单扩展,其中卷积以坐标为条件。允许卷积滤波器查看坐标破坏了翻译等效方差,这似乎是一个坏主意。平移等价难道不是卷积的显著优势吗?

我们认为卷积的成功得益于三个重要因素:它使用相对较少的学习参数,在现代gpu上计算速度很快,并且它学习的函数是平移等变的。

CoordConv层保留了前两个属性——少参数和高效计算——以及它的等变程度。如果坐标的权重学会变为零,CoordConv的行为就像标准卷积。另一方面,如果翻译依赖对下游任务有用,那么它也有能力学习翻译依赖。但我们会看到,最终证明是在卷积中。

CoordConv与一系列现有的想法有关,比如局部连接层,组合模式生成网络,嵌入的位置用于语言建模。(查看我们的论文更多关于这个概念的讨论)。

CoordConv解决了以前的监督任务

首先,让我们回顾一下前面的任务,看看CoordConv的表现如何。

如图7和图8所示,CoordConv模型在有监督坐标分类和有监督渲染任务中,在训练集和测试集的分割上都获得了完美的训练和测试性能。此外,CoordConv模型的参数少了10-100倍,训练只需几秒钟,而不是表现最好的标准cnn所需的一个多小时(快150倍)。

图7。CoordConv快速地在监督坐标分类任务的两个分割上获得了完美的性能。
图8。许多CoordConv模型在监督渲染任务的两个部分上都能快速获得完美的性能。

为了更仔细地检查,下面的图9显示了绘制相邻像素时常规反褶积与CoordConv的比较:

图9。如前所述,反褶积在监督坐标分类任务上很困难,而CoordConv获得了100%的训练和测试精度。解决方案显然更简单。

当使用卷积绘制像素时,我们观察到伪影和过拟合。使用CoordConv,性能对于我们的训练集和测试集都是完美的。反之亦然。尽管卷积在回归坐标时遇到了麻烦,但CoordConv对函数进行了很好的建模,如下图10所示:

图10。卷积很难对监督回归任务建模,而CoordConv对它建模得很好。

CoordConv在很多领域都有帮助

在这一点上,我们已经展示了卷积解决一个玩具问题的失败,并且我们提出了CoordConv层的形式的修复。我们很自然地想知道:这个问题只是玩具问题的特有问题,还是我们发现了一个潜伏在其他任务中的核心问题,从内部阻碍了表现?为了回答这个问题,我们将CoordConv层插入到接受各种任务训练的网络中。下面是我们发现的一个总结,我们的论文中有进一步的细节。

对象检测

因为对象检测模型在笛卡尔空间中查看像素空间和输出边界框,所以它们似乎很适合CoordConv。我们发现我们的直觉得到了证实:在一个简单的问题上,检测分散在画布上的MNIST数字,我们发现了a的借据Faster-RCNN使用CoordConv时,网络性能提高了约24%。

图像分类

在所有视觉任务中,当使用CoordConv而不是卷积时,我们可能期望图像分类显示出最小的性能变化,因为分类更多地是关于什么是在像比吗在哪里它是。事实上,当我们在ResNet-50的底部添加一个CoordConv层并在ImageNet上训练时,我们只发现了微小的改进。

生成模型

在像GANs和变分自动编码器(vae)这样的生成式模型中,像素是由潜能绘制的,在理想的情况下,这可能会编码高级概念,如位置。直观地说,CoordConv在这里可能会有所帮助。使用一个简单的形状数据集Sort-of-CLEVR,我们训练GANs和vae,并显示在潜伏期之间的插值。

以生成彩色形状为例。图11所示的插补视频展示了CoordConv如何提高生成模型的性能,插补内容包括普通GAN(左)和CoordConv GAN(右)。

对于生成模型,我们使用潜在空间中点之间的插值来研究CoordConv的影响,这是一种用于评估生成模型泛化效果的常用方法。

图11。用普通卷积GAN(左)和CoordConv GAN(右)在潜空间中行走。在普通的GAN中,我们观察到与画布捆绑在一起的视觉工件,以及少量物体的淡入和淡出。使用CoordConv GAN,对象是连贯的,运动更流畅。

对于左边的普通GAN,动画一开始看起来很好。但当我们仔细观察动画时,我们注意到并不是所有东西都在移动;视觉工件被绑定到画布上,实际上一些物体只是简单地出现和消失。当我们将CoordConv同时放入生成器和鉴别器时,运动更加流畅。我们看到物体保持一致,平稳移动,而不是瞬间移动。

我们在训练vae时注意到类似的模式。使用卷积,我们可以观察到图像中部分物体的渐入渐出,但使用CoordConv,物体的移动更加平滑。

图12。在潜空间中与普通卷积VAE(左)和CoordConv VAE(右)再次行走。在普通的VAE对象淡入淡出,而CoordConv VAE让他们平滑地移动。

当使用更大的GANs绘制大尺度场景理解(LSUN)卧室场景时,通过卷积,我们再次观察到冻结的物体逐渐消失。使用CoordConv,我们可以看到平滑的几何变换,包括平移和变形。

图13。第三次在潜空间中行走,使用普通卷积GAN(左)和CoordConv GAN(右)在LSUN卧室数据集上训练。通过卷积,我们再次观察到冻结的物体渐入渐出。使用CoordConv,我们可以看到平滑的几何变换,包括平移和变形。

强化学习

RL是一个有趣的领域,CoordConv可能会有所帮助。我们训练了一些特工玩雅达利游戏,比如吃豆人游戏.我们认为,如果卷积滤波器可以同时识别吃豆人女士并提取她在迷宫中的位置,那么它可能有助于学习更好的政策。

我们尝试将CoordConv添加到我们自己的实现分布式优先体验重玩(Ape-X),但CoordConv并没有立即提高性能。我们也尝试过A2C这是一种流行的策略梯度方法,而CoordConv通常是有用的。这可能反映了学习显式策略和学习Q函数之间的差异。在我们尝试的9个游戏中,有6个使用CoordConv的A2C比标准卷积训练得更快或最终得分更好。不出所料,我们注意到吃豆人女士的分数有所提高。在两款游戏中,CoordConv表现相似,在其中一款游戏中表现略差。总的来说,这些结果表明CoordConv可能在RL中有用。

图14。结果使用A2C在Atari游戏上训练。在9个游戏中,(a)在6个游戏中CoordConv优于卷积,(b)在2个游戏中表现相似,(c)在1个游戏中它略差。

下一个步骤

在这件艺术品中在ccle中,我们已经演示了cnn在建模坐标转换任务时的奇怪无能,并且我们引入了CoordConv层形式的简单修复。我们的研究结果建议包含这些层可以在广泛的应用程序中提高性能。未来的工作将进一步评估CoordConv在大规模数据集中的优势,探索其在检测、语言任务、视频预测和应用中的影响空间变压器网络,以及先进的生成模型。

我们很好奇你是否觉得我们的研究对你的工作有用。雷竞技是骗人的如果你想试试的话,看看我们的论文并使用CoordConv层(参见第S8节的示例代码)作为卷积的替代品。让我们知道你的发现!

订阅我们的通讯以跟上优步工程公司的最新创新。

评论
前一篇文章 在Uber,用数据科学和机器学习转变财务预测
下一篇文章 利用度量计算提高优步地图的质量
罗赞刘
Rosanne是一名高级研究科学家,也是雷竞技是骗人的Uber AI的创始成员之一。她在西北大学获得计算机科学博士学位,在那里她使用神经网络来帮助发现新材料。她目前正在多个领域工作,其中机器学习和神经网络是神秘的。她试图在业余时间写作。
乔尔·雷曼
Joel Lehman之前是哥本哈根IT大学的助理教授,主要研究神经网络、进化算法和强化学习。雷竞技是骗人的
皮耶罗Molino
皮耶罗是斯坦福大学朦胧研究小组的研雷竞技是骗人的究人员。他是Uber AI的前创始成员,在那里他创建了Ludwig,参与了应用项目(COTA, Uber Eats的图形学习,Uber的对话系统),并发表了关于NLP,对话,可视化,图形学习,强化学习和计算机视觉的研究。雷竞技是骗人的
菲利普·彼得罗夫斯基·萨奇
Felipe Petroski Such是一名研究科雷竞技是骗人的学家,专注于深度神经进化、强化学习和高性能计算。在加入Uber AI实验室之前,他获得了RIT的学士/硕士学位,在那里他开发了用于图形应用程序和ICR的深度学习架构,以及使用fpga的硬件加速。
埃里克·弗兰克
在加入Uber AI实验室担任研究员之前,Eric为Kite和Ro雷竞技是骗人的cket Research发明了面向AI的玩具。他还是罗切斯特大学的研究助理雷竞技是骗人的,业余时间从事艺术创作。
亚历克斯能够
Alex Sergeev是机器学习平台团队的深度学习工程师。
杰森Yosinski
杰森·约辛斯基(Jason Yosinski)是优步人工智能实验室的创始成员,并领导着深度集体研究小组。雷竞技是骗人的他以在理解神经网络建模、表示和训练方面的贡献而闻名。在加入优步之前,杰森在加州理工学院从事机器人研究,与人共同创立了两家网络公司,并在洛杉矶的中学启动了一个机器人项目,目前该项目为500多名学生服务。他在康奈尔创意机器实验室、蒙特利尔大学、喷气推进实验室和谷歌DeepMind完成了博士学位。他是美国宇航局空间技术研究奖学金的获得者,与人合著了50多篇论文和专利,是Uber收购的几何智雷竞技是骗人的能公司的机器学习副总裁。他的作品被NPR、BBC、Wired、《经济学人》、《科学》和《纽约时报》报道。在他的空闲时间,杰森喜欢烹饪,阅读,滑翔伞,假装他是一个艺术家。