Uber:卷积网络有缺陷,该缺陷限制了它的性能提升

卷积神经网络如今的应用已十分广泛,卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。但是uber的工程师们最近表示,卷积网络在坐标变换上的缺陷限制了它的性能提升,而uber开发的CoordConv结构正好可以解决这一问题。以下是论智带来的编译:

 
Uber在很多设计坐标变换的领域都使用了卷积神经网络,从设计自动驾驶工具到自动信号灯监测和建造地图等等,这些工具都大大提升了空间移动效率。
 
在深度学习中,很少能有像卷积影响深远的成果。几乎机器视觉中所有先进成果都用了堆叠的卷积层作为基本搭建模块。由于这种结构的广泛应用,我们期待它们能应用于一些简单任务,例如在小尺寸图画上绘画单一像素。
 
但令人惊讶的是,卷积结构似乎很难处理看上去很平常琐碎的任务。在我们的论文——An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution中,我们研究并分析了卷积神经网络的一种常见缺陷,即它无法将空间表示转换成笛卡尔空间中的坐标和one-hot像素空间中的坐标。这很意外,因为这些任务似乎很简单,并且此类坐标的转换也是解决常见问题的必备方法,例如图像中的物体检测、训练生成模型、训练强化学习智能体等等,所以也很重要。经过研究我们发现,这些任务已经多多少少受到卷积结构的限制。所以为了提升性能,我们提出了一种名为CoordConv的解决方案,在多个领域进行了成果展示。
 
发现一:CNN很难做到监督式渲染
 
我们先从一个简单的监督式渲染开始,假设我们向一个网络中输入(i, j)坐标,要求它输出一个64×64的图像,并在坐标处画一个正方形,如图1a所示。你会用哪种网络进行这一问题呢?
 
我们可以借鉴很多用于图片生成的方法,用反卷积层画正方形。为了测试这种方法,我们创建了一个数据集,其中在64×64的画布上随机放置了一些9×9的方块,如图1b所示。将数据集中方块所有可能的位置列出后,总共有3136个样本。为了评估模型生成的表现,我们将样本分为两组训练/测试数据集:一组是将数据集中80%坐标用于训练,20%用于测试。另一组中将画布从中分为四个象限,坐标位于前三个象限的用于训练,第四象限的坐标用于测试。两组数据的分布如1c所示。
Uber:卷积网络有缺陷,该缺陷限制了它的性能提升
                                                                                          图1
 
我们设想CNN能完成这个任务,因为它很简单(整个数据集可能用两行Python就能表示出来了),并且数据集很小,我们能轻易地用模型进行参数设定。但结果恰恰相反,CNN表现得极差。即使有1M的参数、训练了90分钟(图2b),模型在第一个数据集上也没达到0.83的IOU分数,在第二个数据集上甚至都没超过0.36(图2a)。
Uber:卷积网络有缺陷,该缺陷限制了它的性能提升
                                                                                          图2
 
简化任务以及发现二:监督式坐标分类对CNN也很困难
 
所以为什么监督式渲染对CNN这么难?我们需要深入挖掘一下原因。的确,如果在直接的监督条件下渲染训练都这么困难,在无监督下会更有挑战性。
 
我们先看一下是什么让这个问题变得困难。现在我们让网络简单地绘制一个像素,而不是9×9的方块。可以想象,如果这个任务能解决,那么之后的反卷积网络就可以轻易地将单一像素扩展成更大的方块。于是我们开始了监督式坐标分类任务(如图3a)其中的数据集包括成对的(i, j)坐标,并且有单一对应像素的图像,如图3b:
Uber:卷积网络有缺陷,该缺陷限制了它的性能提升