【WRN】Wide Residual Networks (2016) 全文翻译

作者

Sergey Zagoruyko:sergey.zagoruyko@enpc.fr
Nikos Komodakis:nikos.komodakis@enpc.fr
(Université Paris-Est, École des Ponts
ParisTech
Paris, France)

摘要

深度残差网络被证明能够扩展到数千层,并且仍然具有改进的性能。然而,每一个网络的训练精度几乎提高了一倍,这使得每一个网络的训练精度提高了一倍。针对这些问题,本文对ResNet块的结构进行了详细的实验研究,在此基础上提出了一种减小剩余网络深度和增加剩余网络宽度的新结构。我们称这种网络结构为广域剩余网络(WRNs),并表明这些网络结构远远优于它们常用的薄的和非常深的对应物。例如,我们证明,即使是一个简单的16层深宽残差网络,其精度和效率都优于所有以前的深度残差网络,包括千层深度网络,在CIFAR、SVHN、COCO上取得了最新的成果,并对ImageNet进行了重大改进。我们的代码和模型可在https://github.com/szagoruyko/wide-residual-networks

1. 引言

在过去的几年里,卷积神经网络的层数逐渐增加,从AlexNet[16]、VGG[26]、Inception[30]到残差[11]网络,这与许多图像识别任务的改进相对应。近年来,一些研究发现了深层网络的优越性[3,22]。然而,深层神经网络的训练有几个困难,包括梯度的爆炸/消失和退化。人们提出了各种技术来训练更深层的神经网络,例如设计良好的初始化策略[1,12]、更好的优化器[29]、跳过连接[19,23]、知识转移[4,24]和分层训练[25]。
最新的残差网络[11]在ImageNet和COCO 2015竞赛中取得了巨大成功,并在多个基准测试中实现了最新水平,包括ImageNet和CIFAR上的对象分类、PASCAL VOC和MS COCO上的目标检测和分割。与初始体系结构相比,它们表现出更好的泛化能力,这意味着这些特征可以在迁移学习中得到更有效的利用。此外,后续工作表明,剩余链路加速了深层网络的收敛[31]。最近的后续工作探索了剩余网络中激活的顺序,提出了剩余块中的身份映射[13],并改进了非常深网络的训练。通过使用高速公路网[28],可以成功地训练非常深的网络[28],这是在剩余网络之前提出的一种体系结构。残差网和公路网的本质区别在于,在后一种情况下,残差链路被选通,并学习这些门的权值。
因此,到目前为止,剩余网络的研究主要集中在ResNet块内部的激活顺序和剩余网络的深度。在这项工作中,我们试图进行一项超越上述观点的实验研究。通过这样做,我们的目标是探索一组更丰富的ResNet块网络架构,并彻底检查除了激活顺序之外的其他几个不同方面是如何影响性能的。正如我们在下面解释的那样,这种对体系结构的探索导致了关于剩余网络的新的有趣的发现,具有非常重要的实际意义。
残差网络中的宽度与深度对比。 在机器学习中,浅网络与深网络的问题已经讨论了很长时间[2,18],并指出电路复杂性理论文献表明,浅层电路比深层电路需要指数级更多的元件。残余网络的作者试图使其尽可能薄,以增加其深度和参数较少,甚至引入了“瓶颈”块,使ResNet块更薄。
然而,我们注意到,具有身份映射的剩余块允许训练非常深的网络,同时也是剩余网络的一个弱点。当梯度在网络中流动时,没有什么可以强迫它通过剩余的块权重,并且它可以避免在训练过程中学习任何东西,所以可能只有少数块学习有用的表示,或者许多块共享很少的信息,对最终目标的贡献很小。在这个问题中,28被表述为“减少重用”。[14]的作者试图通过在训练过程中随机地禁用剩余块的思想来解决这个问题。这种方法可以看作是一种特殊的丢失情况[27],其中每个残差块都有一个单位标量权重,在这个权重上应用了dropout。这种方法的有效性证明了上述假设。
基于上述观察结果,我们的工作建立在[13]的基础上,试图回答深度残差网络应该有多宽的问题,并解决培训问题。在这种情况下,我们表明,与增加深度相比,ResNet块的扩展(如果处理得当)提供了一种更有效的方法来改善剩余网络的性能。特别是,我们提出了比[13]有显著改进的更广泛的深层剩余网络,层数减少了50倍,速度提高了2倍以上。我们称其为广域剩余网络。例如,我们的宽16层深网络具有与1000层薄深网络相同的精度和相当数量的参数,尽管训练速度快了几倍。因此,这类实验似乎表明深部剩余网络的主要能量在剩余块体中,深度的影响是补充的。我们注意到,我们可以训练出更好的宽残差网络,其参数是原来的两倍(甚至更多),这意味着要通过增加薄网络的深度来进一步提高性能,在这种情况下需要添加数千层。

图1. 论文中使用的各种残余块。批标准化和ReLU在每个卷积之前(为清楚起见,省略)

在ResNet块中使用dropout。 Dropout在[27]中首先被引入,后来被[16,26]等许多成功的架构所采用,它主要应用于具有大量参数的顶层,以防止特征的协同适应和过度拟合。然后,它主要被批量标准化[15]所取代,这是一种通过将神经网络激活归一化为具有特定分布来减少内部协变量偏移的技术。它也是一个正则化器,作者实验表明,批量归一化的网络比有丢失的网络具有更好的精度。在我们的例子中,由于残差块的扩大导致参数个数的增加,我们研究了辍学对正则化训练和防止过度拟合的影响。以前,在[13]中研究了剩余网络中的丢失,在块的标识部分插入了dropout,作者展示了这种情况的负面影响。相反,我们认为在卷积层之间应该插入dropout。在宽残差网络上的实验结果表明,这导致了一致的增益,甚至产生了新的最新结果(例如,具有丢失的16层深宽残差网络在SVHN上的误差为1.64%)。
总之,这项工作的贡献如下:

  • 我们提出了一个详细的实验研究残余网络结构,彻底检查了几个重要方面的ResNet块结构。
  • 我们为ResNet块提出了一种新的扩展架构,允许剩余网络具有显著提高的性能。
  • 我们提出了一种新的方法来利用深度残差网络中的辍学现象,以便对其进行适当的正则化,防止训练过程中的过度拟合。
  • 最后,我们展示了我们提出的ResNet架构在多个数据集上取得了最新的结果,显著提高了残差网络的精度和速度。
2. 宽度残差网络

具有标识映射的残差块可以用以下公式表示:
x l + 1 = x l + F ( x l , W l ) x_{l+1}= x_l+F(x_l,W_l) xl+1=xl+F(xl,Wl)
其中, x l + 1 x_{l+1} xl+1 x l x_l xl是网络中第 l l l个单元的输入和输出, F F F是残差函数, W l W_l Wl是块的参数。残差网络由按顺序叠加的残差块组成。
基本- 具有两个连续的3×3卷积,具有批处理标准化和ReLU前卷积:conv3×3-conv3×3图1(a)
瓶颈- 一个3×3卷积被降维和扩展1×1卷积层包围:conv1×1-conv3×3-conv1×1图1(b)

表1. 宽残差网络的结构。网络宽度由系数k决定。原始体系结构[13]相当于k=1。卷积组显示在括号中,其中N是组中的块数,由conv3和conv4组中的第一层执行下采样。最后的分类层被省略为间隙。在所示的特定示例中,网络使用类型为B(3,3)的ResNet块

与[13]中的原始架构[11]相比,剩余块中批处理规范化、激活和卷积的顺序从conv BN ReLU更改为BN-ReLU-conv。由于后者的训练速度更快,效果更好,因此我们不考虑原始版本。此外,所谓的“瓶颈”块最初用于降低块的计算成本,以增加层的数量。由于我们想研究加宽的影响以及“瓶颈”被用来使网络变薄,我们不考虑它,而是关注“基本”残余结构。
基本上有三种简单的方法来增加剩余块的表示能力:

  • 为每个块添加更多的卷积层
  • 通过添加更多的卷积平面来加宽
  • 增加卷积层中的滤波器尺寸

由于小型过滤器在包括[26,31]在内的多个工程中被证明是非常有效的,我们不考虑使用大于3×3的过滤器。我们还引入两个因子,加深因子l和加宽因子k,其中l是块中卷积的数量,k乘以卷积层中的特征数,因此基线«basic»块对应于l=2,k=1。图1(a)和1©分别显示了«basic»和«basic wide»块的示意示例。
我们的剩余网络的一般结构如表1所示:它由一个初始卷积层conv1组成,接着是3组剩余块conv2、conv3和conv4(每个大小为N),然后是平均池和最终分类层。在我们的所有实验中,conv1的大小是固定的,而引入的加宽因子k缩放了三组conv2-4中剩余块的宽度(例如,原始的“基本”架构相当于k=1)。我们想研究残差块的表现力的影响,为此,我们对«基本»架构进行了几次修改并进行了测试,这些修改将在下面的小节中详细介绍。

2.1 残差块中卷积的类型

设B(M)表示剩余块结构,其中M是块中卷积层的核大小的列表。例如,B(3,1)表示具有3×3和1×1卷积层的残差块(我们总是假设空间核是正方形的)。请注意,由于我们没有考虑前面解释的«瓶颈»块,特征平面的数量在整个块中始终保持不变。我们想回答的问题是«基本»残差架构的3×3卷积层各有多重要,以及它们是否可以被计算成本较低的1×1层甚至1×1和3×3卷积层的组合(例如B(1,3)或B(1,3))所取代。这可以增加或减少块的表示力。因此,我们对以下组合进行了实验(注意最后一个组合,即B(3,1,1)与网络[20]体系结构中的有效网络相似):
1B(3,3)- 原始«基本»块
2B(3,1,3)- 额外1×1层
3B(1,3,1)- 具有相同维数的下降卷积,«拉直»瓶颈
4B(1,3)- 网络处处有交替的1×1-3×3卷积
5B(3,1)- 与前一个块相似的想法
6B(3,1,1)- 网络样式块中的网络

2.2 每个残差块的卷积层数

我们还用块加深因子 l l l来测试它对性能的影响。必须在具有相同数量参数的网络之间进行比较,因此在这种情况下,我们需要构建具有不同 l l l d d d的网络(其中 d d d表示块的总数),同时确保网络复杂性大致保持不变。这意味着,例如,当 l l l增大时, d d d应该减小。

2.3 残差块宽度

除上述修改外,我们还对块体的加宽因子k进行了实验。当参数个数随l(深化因子)和d(ResNet块数)线性增加时,参数个数和计算复杂度在k中是二次方的,由于GPU在大型张量上的并行计算效率更高,因此我们对最佳d/k比感兴趣。
更广泛的剩余网络的一个论据是,与[13]相比,剩余网络之前的几乎所有架构,包括最成功的初始[30]和VGG[26]都要宽得多。例如,剩余网络WRN-22-8和WRN-16-10(关于这个符号的解释见下一段)在宽度、深度和参数数量上与VGG架构非常相似。
我们进一步将k=1的原始残差网络称为“薄”网络,将k>1的网络称为“宽”网络。在本文的其余部分中,我们使用以下符号:WRN-n-k表示具有卷积层总数n和加宽因子k的残差网络(例如,具有40层且k=2倍于原始层的网络将被表示为WRN-40-2)。此外,如果适用,我们附加块类型,例如WRN-40-2-B(3,3)。

表2. k=2和不同块类型的剩余网络在CIFAR-10上的测试误差(%,5次运行的中值)。时间列测量一个训练epoch

表3. WRN-40-2(2.2M)CIFAR-10在不同l下的试验误差(%,5次试验的中值)

2.4 残差块中的Dropout

随着参数的增加,我们想研究正则化的方法。残差网络已经有了批量标准化,提供了一个正则化的效果,但是它需要大量的数据扩充,这是我们想要避免的,而且这并不总是可能的。如图1(d)所示,在ReLU之后,我们在卷积之间的每个残差块中添加一个dropout层,以扰动下一个残差块中的批标准化并防止其过度拟合。在非常深的残差网络中,这应该有助于处理减少的特征重用问题,在不同的残差块中强制学习。

3. 实验结果

在实验中,我们选择了著名的CIFAR-10、CIFAR-100、SVHN和ImageNet图像分类数据集。CIFAR-10和CIFAR-100数据集[17]由从10个和100个等级中提取的32×32个彩色图像组成,这些图像分为50000个列车图像和10000个测试图像。对于数据增强,我们做水平翻转,并从每边4个像素填充的图像中随机裁剪,用原始图像的反射填充缺失的像素。我们没有使用[9]中提出的重数据扩充。SVHN是谷歌街景房屋编号图片的一个数据集,包含大约60万个数字图像,来自一个明显更困难的现实世界问题。在SVHN上的实验中,我们不做任何图像预处理,除了将图像除以255以提供[0,1]范围内的图像作为输入。除了ImageNet之外,我们所有的实验都是基于[13]架构的预激活残差块,我们使用它作为基线。对于ImageNet,我们发现在少于100层的网络中使用预激活不会产生任何显著的差异,因此我们决定在本例中使用原始的ResNet架构。除非另有说明,对于CIFAR,我们遵循[8]的图像预处理和ZCA白化。然而,对于一些CIFAR实验,我们使用简单的mean/std标准化,这样我们就可以直接与[13]和其他使用这种预处理的ResNet相关工作进行比较。
在下文中,我们描述了我们对不同ResNet块结构的发现,并分析了我们提出的宽剩余网络的性能。我们注意到,对于与“块中卷积的类型”和“每个块的卷积数”相关的所有实验,为了加快训练速度,我们使用k=2和与[13]相比减少的深度。

块中卷积的类型

我们首先使用具有不同块类型B的经过训练的网络报告结果(报告的结果在CIFAR-10上)。我们将WRN-40-2用于块B(1,3,1)、B(3,1)、B(1,3)和B(3,1,1),因为这些块只有一个3×3卷积。为了保持参数数目的可比性,我们训练了其他具有较少层数的网络:WRN-28-2-B(3,3)和WRN-22-2-B(3,1,3)。我们在表2中提供了测试结果,包括平均5次测试的准确度和每个训练阶段的时间。B(3,3)块的精度与B(3,1,3)非常接近,参数少,层数少。B(3,1,3)比其他方法快一点。
基于上述结果,具有可比较数量参数的块得到的结果或多或少是相同的。由于这个事实,我们将注意力限制在仅具有3×3卷积的WRNs上,以便与其他方法保持一致。

每个块的卷积数

接下来,我们继续进行与改变加深因子l(表示每个块的卷积层数)有关的实验。我们在表3中给出了指示性结果,在这个例子中,我们使用3×3卷积的WRN-40-2,训练了几个具有不同加深因子l∈[1,2,3,4],相同数量参数(2.2×106)和相同卷积层数的网络。
可以注意到,B(3,3)的性能最好,而B(3,3,3)和B(3,3,3,3)的性能最差。我们推测这可能是由于在最后两种情况下,由于剩余连接数的减少,优化难度增加。此外,B(3)的情况更糟。结论是B(3,3)在每个块的卷积数方面是最优的。因此,在剩下的实验中,我们只考虑具有B(3,3)型块的宽残差网络。

残差块的宽度

当我们试图增加加宽参数k时,我们必须减少总层数。为了找到一个最佳的比率,我们用k从2到12,深度从16到40进行了实验。结果见表4。可以看出,当宽度增加1到12倍时,所有具有40、22和16层的网络都能看到一致的增益。另一方面,当保持相同的固定加宽系数k=8或k=10并将深度从16变为28时,会有一致的改善,但是当我们进一步将深度增加到40时,精度会降低(例如,WRN-40-8的精度会降低到WRN-22-8)。
我们在表5中显示了其他结果,在表5中,我们比较了细残差网络和宽残差网络。可以观察到,wide WRN-40-4比thin ResNet-1001更好,因为它在CIFAR-10和CIFAR-100上都获得了更好的精度。然而,有趣的是,这些网络具有可比较数量的参数,8.9×106和10.2×106,这表明在这个水平上,深度与宽度相比没有增加正则化效应。正如我们在基准点上进一步显示的那样,WRN-40-4的训练速度是原来的8倍,因此很明显原始的薄残差网络的深宽比远远不是最优的。
此外,wide WRN-28-10在CIFAR-10上的性能优于thin ResNet-1001 0.92%(在训练期间具有相同的小批量大小),而在CIFAR-100上,wide WRN-28-10比thin ResNet-1001高出3.46%,层数少36倍(见表5)。我们注意到,ResNet-1001的结果为4.64%,批次大小为64,而我们在所有实验中使用的批次大小为128(即,表5中报告的所有其他结果的批次大小为128)。这些网络的训练曲线如图2所示。

表4. CIFAR-10和CIFAR-100上各种广域网的测试误差(%)(ZCA预处理)

尽管之前有观点认为深度会产生正则化效果,而宽度会导致网络过度拟合,但我们成功地用比ResNet-1001多几倍的参数训练网络。例如,wide WRN-28-10(表5)和wide WRN-40-10(表9)的参数分别是ResNet-1001的3.6倍和5倍,而且两者的表现都明显优于ResNet-1001。

表5. 不同方法对CIFAR-10和CIFAR-100进行中等数据增强(翻转/平移)和平均值/标准差归一化的测试误差。这些结果我们不用辍学。在第二列中,k是一个加宽因子。[13]的结果显示为小批量128(与我们一样),64在括号内。我们的结果是通过计算5次以上的中位数得到的

总的来说,我们观察到CIFAR平均值/std预处理能够以更好的精度训练更广泛和更深入的网络,使用WRN-40-10和56×106参数在CIFAR-100上实现了18.3%(表9),比ResNet-1001提高了4.4%,并在该数据集上建立了一个新的最新结果。
总结一下:

  • 拓宽范围不断提高不同深度残余网络的性能;
  • 增加深度和宽度有助于直到参数的数量变得太多,需要更强的正则化;
  • 在残差网络中,由于具有相同数量参数的宽网络可以学习相同或更好的表示,因此在残差网络中似乎没有从非常高的深度产生正则化效应。此外,宽网络可以使用比瘦网络大2倍或更多倍的参数来成功学习,这就需要将瘦网络的深度翻一番,这使得训练它们的成本不可行。


图2. CIFAR-10和CIFAR-100上薄和宽残差网络的训练曲线。实线表示测试误差(右侧y轴),虚线表示训练损失(y轴在左侧)

残差块中的Dropout

我们训练网络,在所有数据集的卷积之间插入一个残差块。我们使用交叉验证来确定退出概率值,CIFAR为0.3,SVHN为0.4。而且,与没有辍学的基线网络相比,我们不必增加训练时段的数量。
与WRN-28-10相比,丢失使CIFAR-10和CIFAR-100上的测试误差分别降低了0.11%和0.4%(超过5次运行和平均/std预处理的中值),并且与其他RESNET相比也有改进(表6)。据我们所知,这是CIFAR-100的第一个接近20%误差的结果,甚至优于大数据量扩充的方法。在CIFAR-10上,WRN-16-4的精度只有轻微的下降,我们推测这是由于相对较少的参数。
我们注意到在第一次学习率下降后,当损失和验证误差突然上升并在高值上振荡,直到下一次学习率下降时,残差网络训练会产生干扰效应。我们发现它是由重量衰减引起的,但是降低它会导致精度的显著下降。有趣的是,在大多数情况下,辍学部分地消除了这种影响,见图2、3。
辍学对SVHN的影响更为明显。这可能是因为我们没有进行任何数据扩充和批量标准化过度拟合,所以dropout增加了正则化效果。这方面的证据可以在图3中的训练曲线上找到,其中没有脱落的损失下降到非常低的值。结果见表6。我们观察到在薄网络和宽网络上使用dropout的显著改进。在随机深度下,Thin 50层深度网络甚至优于Thin 152层深层网络[14]。此外,我们还对WRN-16-8进行了SVHN Dropout 训练(表9),在SVHN上达到了1.54%,这是我们所知的最好的公开结果。没有Dropout率为1.81%。
总的来说,尽管有人主张结合批量规范化,但dropout显示出它是一种有效的薄网络和宽网络正则化技术。它可以用来进一步改善加宽的结果,同时也可以作为它的补充。

表6. 残余块中脱落的影响(平均值/标准预处理,CIFAR数字基于5次运行的中值)

图3. SVHN的训练曲线。左边:窄而宽的网络,右边:辍学的影响。实线表示测试误差(右侧y轴),虚线表示训练损失(y轴在左侧)

ImageNet和COCO实验

对于ImageNet,我们首先使用非瓶颈ResNet-18和ResNet-34进行实验,尝试将它们的宽度从1.0逐渐增加到3.0。结果见表7。增加宽度会逐渐提高两个网络的精度,并且具有可比较数量参数的网络可以获得相似的结果,尽管深度不同。尽管这些网络有大量的参数,但是瓶颈网络却比它们好,这可能是因为瓶颈结构更适合于ImageNet分类任务,或者是因为这个更复杂的任务需要更深层的网络。为了验证这一点,我们采用ResNet-50,并试图通过增加内部3×3层的宽度使其变宽。随着加宽系数为2.0,WRN-50-2-瓶颈的性能优于ResNet-152,其层数减少了3倍,而且速度明显更快。WRN-50-2-瓶颈只比性能最好的预激活ResNet-200稍微差一点,几乎快2倍,尽管参数稍多(表8)。一般来说,我们发现,与CIFAR不同,ImageNet网络在相同深度需要更大的宽度才能达到相同的精度。然而,很明显,由于计算上的原因,没有必要使用超过50层的残差网络。
我们没有试图训练更大的瓶颈网络,因为这需要8-GPU机器。

表7. ILSVRC-2012各种加宽因子的非瓶颈再网验证误差(单作物)。具有可比数量的参数的网络可以获得相似的精度,尽管其层数减少了2倍

表8. ILSVRC-2012瓶颈再网络验证误差(单作物)。更快的WRN-50-2-瓶颈比ResNet-152少3倍层,并且接近ResNet-200之前的水平

我们还使用WRN-34-2参与了COCO 2016目标检测挑战赛,使用了MultiPathNet[32]和LocNet[7]的组合。尽管只有34层,但该模型实现了最先进的单模型性能,甚至优于基于ResNet-152和Inception-v4的模型。
最后,在表9中,我们总结了各种常用数据集的最佳WRN结果。

表9. 各种数据集的最佳WRN性能,单次运行结果。COCO模型基于WRN-34-2(更广泛的basicblock),使用基于VGG-16的吸引集方案,并具有LocNet风格的本地化部分。据我们所知,这些是CIFAR-10、CIFAR-100、SVHN和COCO(使用非集成模型)的最佳结果

计算效率

具有小核数的细剩余网络和深残差网络由于其序列结构而与GPU计算的本质背道而驰。增加宽度有助于以更优化的方式有效地平衡计算,因此,正如我们的基准测试所显示的那样,宽网络的效率是瘦网络的数倍。我们使用cudnv5和Titan X来测量多个网络的前向和后向更新时间(minibatch size 32),结果如图4所示。我们显示,我们最好的CIFAR宽WRN-28-10比thin ResNet-1001快1.6倍。此外,wide WRN-40-4的精度与ResNet-1001大致相同,它的速度是ResNet-1001的8倍。

图4. 对于宽网络和瘦网络(x轴表示网络深度和加宽系数),每批大小为32的小批量向前+向后更新的时间。条旁的数字表示CIFAR-10上的测试错误,时间(毫秒)。测试时间是这些基准的一部分。请注意,例如,宽WRN-40-4比瘦ResNet-1001快8倍,同时具有大致相同的精度

实现细节

在我们所有的实验中,我们使用了具有Nesterov动量和交叉熵损失的SGD。初始学习率设置为0.1,权重衰减为0.0005,阻尼为0,动量为0.9,minibatch size设置为128。在CIFAR上,学习率在60、120和160个时期下降了0.2,我们总共训练了200个时期。在SVHN上,初始学习率设为0.01,我们在80和120个周期将其降低0.1,总共训练160个周期。我们的实现基于Torch[6]。我们使用[21]来减少所有网络的内存占用。我们使用的ImageNet实验fb.resnet.torch实施[10]。我们的代码和模型可在https://github.com/szagoruyko/wide-residual-networks。

4. 结论

我们研究了剩余网络的宽度,以及在剩余结构中使用丢失。基于这项研究,我们提出了一个宽残差网络体系结构,它提供了几种常用基准数据集(包括CIFAR-10、CIFAR-100、SVHN和COCO)的最新结果,并对ImageNet进行了重大改进。我们证明了只有16层的广域网络在CIFAR上的性能明显优于1000层的深层网络,而在ImageNet上,50层网络的性能也优于152层网络,从而表明剩余网络的主要功能是在剩余块中,而不是在如前所述的极端深度。此外,宽残差网络的训练速度要快好几倍。我们认为这些有趣的发现将有助于深层神经网络研究的进一步进展。

5. 致谢

我们感谢初创公司VisionLabs和Eugenio culuciello让我们访问他们的集群,没有他们ImageNet实验就不可能了。我们也感谢亚当·勒勒和萨姆·格罗斯的有益讨论。欧盟项目FP7-ICT-611145 ROBOSPECT支持的工作。

参考文献



已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页