首页 文章 个人博客 开源 BiT:探索计算机视觉的大规模预训练

开源 BiT:探索计算机视觉的大规模预训练

发布时间:2021-09-22编辑:RainNight阅读(52)

计算机视觉研究人员的普遍感觉是,现代深层神经网络总是渴望更多的标签数据-国家的最先进的电流细胞神经网络需要对接受培训数据集,例如OpenImages或Places,其中包含超过 100 万个标记图像。然而,对于许多应用程序,收集如此大量的标记数据可能会让普通从业者望而却步。

缓解计算机视觉任务缺少标记数据的一种常见方法是使用已在通用数据上预先训练的模型(例如ImageNet)。这个想法是在通用数据上学习的视觉特征可以重新用于感兴趣的任务。尽管这种预训练在实践中效果很好,但它仍然缺乏快速掌握新概念并在不同上下文中理解它们的能力。与BERT和T5在语言领域表现出的进步类似,我们相信大规模预训练可以提高计算机视觉模型的性能。

在“ Big Transfer (BiT): General Visual Representation Learning ”中,我们设计了一种方法,使用超出事实标准(ILSVRC-2012)的图像数据集对一般特征进行有效的预训练)。In particular, we highlight the importance of appropriately choosing normalization layers and scaling the architecture capacity as the amount of pre-training data increases. 我们的方法展现出前所未有的性能,适用于广泛的新视觉任务,包括少镜头识别设置和最近推出的“真实世界” ObjectNet基准测试。我们很高兴与大家分享在公共数据集上预训练的最佳 BiT 模型,以及TF2、Jax 和 PyTorch 中的代码。这将允许任何人在他们感兴趣的任务上达到最先进的性能,即使每个类只有少量标记图像。

预训练

为了研究数据规模的影响,我们使用三个数据集重新审视了预训练设置的常见设计选择(例如激活和权重的归一化、模型宽度/深度和训练计划):ILSVRC-2012(1.28M 图像与1000 个类)、ImageNet-21k(1400 万张图片,约 21k 类)和JFT(3亿张图片,约 18k 类)。重要的是,通过这些数据集,我们专注于以前未充分探索的大数据机制。

我们首先研究数据集大小和模型容量之间的相互作用。为此,我们训练经典ResNet架构,性能良好,同时简单且可重复。我们在上述每个数据集上训练从标准 50 层深度“R50x1”到 4 倍宽和 152 层深度“R152x4”的变体。一个关键观察是,为了从更多数据中获利,还需要增加模型容量。下图左侧面板中的红色箭头说明了这一点

file

第二个更重要的观察是训练持续时间变得至关重要。如果在一个更大的数据集上预训练而不调整计算预算和训练时间,性能可能会变得更糟。但是,通过使计划适应新的数据集,改进可能是显着的。

在我们的探索阶段,我们发现了另一个对提高性能至关重要的修改。我们表明,替换批标准化(BN,即通常使用的层通过正火激活稳定训练)与组归一化(GN) 有利于大规模的预训练。首先,BN 的状态(神经激活的均值和方差)需要在预训练和转移之间进行调整,而 GN 是无状态的,因此避开了这个困难。其次,BN 使用批量级别的统计数据,这对于大型模型不可避免的每设备批量小而变得不可靠。由于 GN 不计算批次级别的统计数据,因此它也回避了这个问题。有关更多技术细节,包括使用权重标准化技术来确保稳定的行为,请参阅我们的论文。

file

迁移学习

遵循BERT在语言领域建立的方法,我们根据来自各种“下游”感兴趣任务的数据对预训练的 BiT 模型进行微调,这些任务可能带有很少的标记数据。因为预先训练的模型已经很好地理解了视觉世界,所以这个简单的策略非常有效。

微调有很多超参数可供选择,例如学习率、权重衰减等。我们提出了一种启发式来选择这些超参数,我们称之为“BiT-HyperRule”,这仅基于高级数据集特征,例如图像分辨率和标记示例的数量。我们成功地将 BiT-HyperRule 应用于 20 多种不同的任务,从自然图像到医学图像。

file

当将 BiT 转移到具有很少示例的任务时,我们观察到,随着我们同时增加用于预训练和架构容量的通用数据量,生成的模型适应新数据的能力显着提高。在 1-shot 和 5-shot CIFAR(见下图)上,在 ILSVRC(绿色曲线)上进行预训练时,增加模型容量产生的回报有限。然而,通过在 JFT 上进行大规模预训练,模型容量的每一次提升都会产生巨大的回报(棕色曲线),直到 BiT-L 达到 64% 的 1-shot 和 95% 的 5-shot。

file

为了更普遍地验证这个结果,我们还在VTAB-1k上评估了 BiT ,这是一套 19 个不同的任务,每个任务只有 1000 个标记的例子。我们将 BiT-L 模型转移到所有这些任务中,总体得分为 76.3%,与之前的最新技术相比绝对提高了 5.8% 。

我们通过在牛津宠物和花卉、CIFAR等几个标准计算机视觉基准上评估 BiT-L,表明即使在有适量数据可用时,这种大规模预训练和简单转移的策略也是有效的。其中,BiT-L 达到或超过了最先进的结果。最后,我们使用 BiT 作为主干RetinaNet在MSCOCO-2017检测任务上,并确认即使对于这样的结构化输出任务,使用大规模预训练也有很大帮助。

file

需要强调的是,在我们考虑的所有不同下游任务中,我们不执行每个任务的超参数调整,而是依赖于BiT-HyperRule。正如我们在论文中所展示的,通过在足够大的验证数据上调整超参数可以获得更好的结果。

使用 ObjectNet

进行评估 为了在更具挑战性的场景中进一步评估BiT的稳健性,我们评估了在最近推出的ObjectNet上的 ILSVRC-2012 上微调的 BiT 模型数据集。该数据集非常类似于现实世界的场景,其中对象可能出现在非典型的上下文、视点、旋转等中。有趣的是,随着 BiT-L 模型达到前所未有的 80.0 的 top-5 准确率,数据和架构规模的好处更加明显%,比之前的最先进技术提高了近 25% 。

file

结论

我们表明,给定对大量通用数据的预训练,一个简单的转移策略会导致令人印象深刻的结果,无论是在大型数据集上还是在数据很少的任务上,每类只有一个图像。我们发布了 BiT-M 模型,一个在 ImageNet-21k 上预训练的 R152x4,以及用于在 Jax、TensorFlow2 和 PyTorch 中传输的 colab。除了代码发布之外,我们还向读者推荐了有关如何使用 BiT 模型的TensorFlow2动手教程。我们希望从业者和研究人员发现它可以替代常用的 ImageNet 预训练模型。

网盘推荐

微信公众号

书籍标签