论文地址:CVPR2017https://arxiv.org/pdf/1703.04044.pdf
源码地址:https://github.com/gustavla/self-supervision
Abstract
调查和改进自监督,代替ImageNet预训练,重点是自动化着色作为代理任务。与其他传统的无监督的学习方法相比,自监督的训练更有利于利用未标记的数据。我们在这个基础上,在多个环境中评估自监督网络的能力。在VOC分割和分类任务中,我们提出了不使用ImageNet标签进行预处理表示的方法中的最新技术。
我们首先通过着色对自监督进行了深入的分析,得出结论:损失的形成,训练细节和网络架构在其有效性方面发挥重要作用。通过重新思考ImageNet预训练进一步扩大了这一调查,提出了以下问题:需要多少训练数据?需要多少个标签?fine-tuning后feature有多大改变?我们将这些问题与自我监督联系起来,表明:通过着色提供了与ImageNet预训类似的强大监控信号。
1.Introduction
深度前向传播网络的成功在于有更多训练数据。 更多数据的可用性通常可以提高模型复杂性。 然而,这种昂贵和容易出错的人工标注的数据的需要是严重的限制,降低了为新领域建立模型的能力,以及注释特别昂贵的域(例如,图像分割)。 但是,我们可以获得大量的未标注的视觉数据,这基本上是免费的。 我们设法与使用标签数据的结果更接近,但自监督的最终长期目标可能是完全取代监督的预训练。
无监督的学习方法,如通过最小化重建误差训练,在图像合成中已经取得了更多的成功[19]。 半监督学习,联合有监督和无监督的损失,达到了较好的效果。 然而,最近的工作倾向于组合(无监督的预训练,有监督微调)[4,5]。 这样就减少了人力负担,并且在模型性能上付出了代价。
最近,自监督已经成为无监督学习的新形式[4,39]。自我监督是一种通过将每个输入样本分成两部分,预测各部分之间的关联,从而对未标记数据使用鉴别损失的方法。 我们主要研究自监督的着色[20,42],其中每个图像被分解为其强度(intensity)和颜色(color),使用前者预测后者。
论文的主要创新是:
在不使用ImageNet标签的方法中,VOC 2007分类和VOC 2012分割的最先进的结果。
第一次通过着色(Colorization)深入分析自监督。 我们研究损失,网络架构和训练细节的影响,结果显示影响训练结果的重要方面有很多。
对ImageNet预训练的各种规划(构想)进行实证研究,以及如何与自监督相比较。
2.Related work
在我们的工作中,为下游监督任务取代基于分类的预训练首先要考虑的是网络的初始化。 初始化以促进层间激活的网络均匀,更容易和更快地收敛[6,9]。 然而,统一的规模只有在广泛的数据假设的情况下才能进行统计预测,所以通过观察实际数据的激活和正规化,这一想法可以进一步进行[23]。 使用一些训练数据来初始化权重会使初始化和无监督预训练之间的界限模糊。 例如,使用层次k-means聚类[3,19]被认为是无监督的预训练。
近来自监督特征学习的方法已经有几种形式,大致分为在视觉数据中利用时间或空间结构的方法:
时间:存在使用相邻视频帧之间的相关性作为学习信号的各种各样的方法。一种方法是尝试预测未来帧,这是一种类似于语言建模的任务,并且经常使用基于RNN和LSTM的类似技术[36,33]。也可以训练在时间上接近的帧被认为是相似的嵌入.(使用pairs[25,14,15]或三元组[38])。另一种使用三元组损失的方法呈现三帧并尝试预测它们是否被正确排序[24]。 Pathak等人[30]通过预测基于光流的显着性来学习通用表示。 Owens等人[29],有些从时间类别中分离出来的,在单个视频帧上运行,以预测来自整个剪辑的音频的统计摘要。第一个基于视频的自我监督方法是基于独立成分分析(ICA)[37,10]。最近的后续工作将其推广到非线性设置[11]。
空间: 在单帧输入上运行的方法通常使用空间维度来分割样本进行自监督。 给出了一对图像的patch,Doerch等人 [4]通过预测两个patch具有的八个可能的空间组合中的哪一个来训练表示。 Noroozi&Favaro [28]进一步通过解决一个3乘3拼图来学习表示。 修复任务(删除一些像素,然后预测它们)用于Pathak等人的表示学习。[31]。 还使用双向生成广告网络(BiGAN)来学习表示[5]。 这不是我们通常认为是自我监督,但它也类似地对未标记的数据构成监督学习任务(实际与合成),以驱动表示学习.
着色: 一般来说,以前的两个类别沿着空间 - 时间线分割输入样本,或者预测一个给定另一个或预测线本身。 自动着色则不同,因为它要求预测与输入中心相同像素上的颜色,而不会丢弃任何空间信息,这更适合语义分割的任务。通过着色进行表示学习在所有PASCAL任务中呈现结果,并显示着色作为自我监督的前沿。 我们将语义分割任务从50.2%提高了近10个百分点至60.0%。
3. Colorization as the target task
训练自动着色器,以便将灰度照片转换为彩色照片。 最近的方法训练深度卷积神经网络来预测颜色[12]或颜色分布[20,42]。 后一种方法是从直方图预测中实例化一种颜色,以产生最终结果。 为了获得最佳的着色结果,这些网络将使用基于分类的网络进行初始化,以便利用其高级特征,从而更好地预测颜色。 在本节中,我们将介绍如何训练色彩,并考虑其对学习表现的影响。
3.1 Training
我们的实验使用公开源代码来训练着色网络。 对于下游任务(分割任务),我们使用TensorFlow ,并提供测试代码以及经过训练的模型。
Loss:考虑L * a * b颜色值的回归损失以及色彩/色度直方图的KL发散损失[20]。 对于后者,直方图是从围绕每个目标像素的7×7窗口计算的。 我们评估他们学习表达的能力,而不考虑他们进行着色的能力。 在我们的比较中,我们确保损失的规模相似,以使其有效的学习。
Hypercolumn:网络使用稀疏训练的超级列。 这意味着对于每个图像,只计算一个小样本的超列。 这减少了内存需求,并允许我们训练更大的图像。 请注意,超列可用于着色预训练,也可用于作为下游任务进行segmentation。 由于Hypercolumn training可能会破坏残差训练,因此我们不会对ResNet 着色器使用Hypercolumn训练。
数据集: 我们通过将ImageNet [34]的1.3M与Places205 [45]的2.4M相结合,对3.7M的未标记图像进行训练。 数据集包含一些灰度图像,但是我们并没有对它们进行排序,因为没有办法区分一个合法的消色差图像和一个去饱和的图像。
训练: 所有的训练都是用标准随机梯度下降,动量设为0.9。 着色网络使用Xavier初始化,并通过批量归一化进行训练,无需重新调整参数[13]。 每次处理图像时,都会随机镜像图像,并随机缩放图像,使最短边在352和600之间。最后,提取352×352 patch,然后通过网络进行补充。 在我们的比较研究中,我们训练使用3个epochs的着色损失(在初始学习率上花费2个epochs)。 在我们长时间运行的实验中,我们训练了大约10个epochs。 对于最好的ResNet模型,我们训练了更长的时间(35个epochs),尽管较小的输入(224x224); 我们发现,在下游训练中,较大的输入分辨率更为重要。
4. Colorization as a proxy task
我们将重点放在使用视觉表示的着色网络,我们描述如何帮助改进分类和分割的结果。
4.1 Training
通过着色从网络的初始化权重来训练下游任务。 注意
Early stopping: 小样本训练容易过度拟合。 我们发现,防止这种情况的最有效方法是仔细验证学习率。 不同初始化的模型(随机,着色,分类)需要不同的Early stopping。 找到一种适用于所有这些设置的方法是我们研究的关键。 我们将训练数据分成90/10,只训练了90%; 其余用于监控过拟合。 每次当10%的验证分数(而不是替代项损失)停止改善时,学习率就会下降。 完成两次后,训练结束。 对于我们的实验(表1),使用100%的数据重新训练,并确定交叉验证的学习率。
感受野:以前的语义分割工作已经表明了扩大感受野的重要性[26,41]。 实现这一点的一个方法是使用扩张卷积[41,39],然而这重新定义了过滤器,因此需要重新训练。 相反,我们在网络顶部增加了两个附加块(步长2的2×2最大池,3×3卷积与1,024个特征),每个块以160个像素扩展感受野。 我们训练448×448输入图像,以充分扩大的感受野。
Hypercolumn: 注意,当下游任务是语义分割时使用超级列表是一个单独的设计选择,不需要在着色预训练期间与Hypercolumn的使用相结合。 在任何一种情况下,后期超级参数权重都不会重复使用。 对于ResNet,我们使用完整Hypercolumn的一个子集。
批量归一化(BN):从零开始训练的模型使用无参数批量归一化。 然而,对于下游训练,我们将均值和方差吸收到权重和偏差中,并且不进行批量归一化(除了ResNet,在我们的经验中有帮助)。 对于没有经过批处理规范训练并且跨层次规模不均衡的网络(例如ImageNet预训练的VGG-16),我们重新平衡网络,使每一层的激活都具有单位差异[20]。
Padding填充: 对于我们的ImageNet预训练实验,我们观察到从分类网络到完全卷积网络可能会引起由于每个层的零填充引起的边缘效应。 原来的VGG-16没有出现问题,导致我们怀疑这可能是由于引入批量归一化。 对于新训练的网络,尽管接收领域越来越多地挂在图像的边缘,激活增加了接近边缘,减少了语义信息的数量。 然而,它不能对下游任务提供可测量的改进,这意味着网络可以在微调阶段纠正这一点。
color: 由于着色网络的领域是灰度图,除非另有说明,否则我们的下游实验操作在灰度输入。 当重新引入着色时,我们将conv1_1中的灰度滤波器转换为RGB(复制到所有三个通道,除以3),并让它们在下游任务上进行微调。
5 Results
我们首先在两个已建立的PASCAL VOC基准测试中提供结果,然后在第6节中通过对不同设计选择和预训练范例的调查进行研究
5.1 PASCAL
VOC 2012语义分割:我们训练标准的分割数据(10,582个样本)并在验证集上进行测试(1,449个样本)。 使用具有扩展视野(FOV)的ResNet-152模型,我们实现了60.0%mIU(参见表1),这是该基准测试中报告的最高结果,不使用有监督的预训练。 值得注意的是,这个值远远高于基于AlexNet的FCN [22](48.0%),甚至略高于基于VGG-16的FCN(59.4%),这两种方法都在ImageNet上训练过。
VOC 2007分类:我们在训练集上训练(5,011个样本)并在测试集上进行测试(4,952个样本)。 我们使用与[5]中的10种作物相同的训练程序。 当没有使用ImageNet标签时,我们在77.3%mAP(参见表1)的结果是最先进的。
6 Experiments
我们提供了广泛的实验,除了VOC 2012语义分割之外,我们还使用了我们构建的两个分类数据集:
ImNt-100K/ ImNt-10K: 类似于具有1000个类的ImageNet分类,除了我们将训练数据分别设为100个样本/类和10个样本/类。此外,所有图像都被转换为灰度级。 我们使用224×224的single center crops在ImageNet上进行测试,结果很容易与完整的ImageNet训练进行比较。 对于Tab4中的预训练实验,我们还使用这些数据集来了解它们能够用整个ImageNet数据集替代表示学习的程度。
6.1 Loss
如表2所示,在L * a * b空间中对颜色进行回归,得到比在色调/色度中(52.9%)低5个点的结果(48.0%)。这表明损失的选择对于表征学习至关重要。直方图预测旨在解决颜色不确定性的问题。然而,他们通过使用直方图预测中的汇总统计来实例化图像的方式意味着在某种程度上重新引入了这个问题。由于我们不关心实例化图像,因此我们不会受到这种惩罚,因此使用基于直方图预测的损失可以看到更大的改进。我们在色调/色度空间中预测单独直方图的选择也产生了一个有趣的发现,如图5所示,似乎有非语义滤波器响应输入具有高色度和低色度,明显适应色度预测。
6.2. Network architecture
对网络架构影响的调查一直是最近自监督工作的一个被忽视的方面,它只关注AlexNet。我们首次详细研究了使用其他网络。这些结果显示在表3中。
由于我们的重点是小样本数据集和较小的网络可能提供正规化效果,因此模型复杂性的增加得到回报并不完全是显而易见的。以ImNt-100k为例,其中AlexNet,VGG-16和ResNet-152在从头开始训练时表现相似(39.1%,43.2%,42.5%)。然而,使用着色预训练时的百分点改善遵循明显的趋势(+ 9.1,+ 15.8,+ 20.6)。这表明,即使在小样本制度下,自监督也使我们能够从更高的模型复杂性中受益。将其与k-means初始化[20]进行比较,在增加模型复杂度时没有显示任何改进(表1)。
从头开始训练ResNet用于语义分割是表中的异常值。这是唯一一个从头开始训练残差网络和超柱的实验;这可能是一个破坏性的组合。
6.3 Training time and learning rate
图4中表明,对于下游任务的良好性能来说,降低预训练期间的学习率是至关重要的。 这个结果对我们来说并不明显,因为低学习率的训练后期可能过于特定于任务,不会使特征具有普遍性。
此外,我们通过证明训练时间的三倍(10个epochs,37M样本)改善了VOC 2012分割中52.9%至56.0%mIU的结果,显示了训练时间的重要性。 我们的ResNet-152(60.0%mIU)在单个GPU上训练了4个月。
6.4. Latent representation(潜在的表示)
次要任务的良好结果只能证明我们的自监督网络有可能被塑造成有用的表示。我们调查通过着色学习的表示是立即有用还是只保留潜在的表示。如果是后者,我们的表示与良好的初始化方案有何不同?
首先,我们可以对功能进行可视化,以了解颜色化网络如何将输入组织到功能中。我们假设我们将找到预测颜色的特征,因为我们知道着色网络能够以良好的准确度预测颜色。在图5中,我们可以看到来自网络最高层的顶级激活,实际上我们找到了特定于颜色的特征。然而,我们还发现了语义特征,它们将高级对象组合在一起,具有很好的类内变化(颜色,光照,姿势等)。这是值得注意的,因为没有使用标记数据来训练网络。物体的概念纯粹是通过它们共同的颜色和视觉属性而出现的(与[45]比较)。特定于对象的功能应该具有很高的任务通用性,对下游任务非常有用。对象和颜色特有的特征(图5中的右下象限)可以分为两类:第一类是当对象通常具有单峰颜色分布时(例如红砖,棕色木);第二种是当网络已经学习了具有多模式颜色分布的对象的颜色子类别(例如白色衣服,黄色车辆)。这些应该都具有很高的任务通用性,因为任务特定层很容易将几个颜色子类合并为对象的颜色不变的概念。
那么微调时功能会有多大变化?我们在图2中前后可视化顶部激活,并在图3中示出着色特征比基于标签的特征改变得多。一些功能完全改变了用途,许多功能只是旋转,而其他功能或多或少保持不变。这些结果与图5中的四个象限一致,表明某些特征特定于着色,而其他特征似乎具有通用性。
接下来,我们看一下下游任务需要多少微调。表 6告诉我们,尽管微调比监督预训练更重要(与图3中的相关结果一致),但它能够单独执行具有着色功能的任务,同样可以随机初始化网络并对其进行训练 - 从头开始。
6.5 Color
Tab5中显示,重新引入颜色没有任何好处(与Zhang等[43]的发现一致)。 然而,并行工作[44]提出了一种更好的利用颜色通道的方法,通过分别训练网络进行“对象”任务(从颜色预测强度)。 两个独立的网络组合在一起用于下游使用。
7 Conclusion
我们介绍了ImageNet预训练的替代方案,其中包含了不使用ImageNet标签的语义分割和小样本分类的最新结果。 对自监督着色的详细调查表明了损失、网络架构和训练细节在实现竞争结果方面的重要性。 我们在此与ImageNet预训练之间进行了相似的比较,表明自监督与使用带注释数据的几种方法相同。