天天看点

深度思考:视觉深度学习模型一定越大越好吗?

作者:3D视觉工坊

来源:3D视觉工坊

添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群

扩大模型规模一直是近年来在人工智能各个领域取得进展的关键驱动因素之一,包括语言建模,图像和视频生成等。同样地,对于视觉理解来说,较大的模型在足够的预训练数据的情况下一直显示出改进。这一趋势导致追求具有数十亿参数的巨型模型成为实现更强大的视觉表示和在下游任务上提升性能的默认策略。

在这项工作中,作者重新考虑了一个问题:获得更好的视觉理解是否一定需要较大的模型? 与其扩大模型规模,作者考虑在图像规模维度上进行缩放,称之为"尺度缩放"(S2)。通过S2,可以对多个图像尺度上运行预训练的并冻结的较小视觉模型(例如,ViT-B 或 ViT-L)以生成多尺度表示。采用一个在单个图像尺度上进行预训练的模型,将图像插值到多个尺度,通过将较大的图像分割成正常大小(224^2)的子图像并在每个尺度上分别处理然后汇总和与原始表示中的特征进行连接来提取每个尺度上的特征。

令人惊讶的是,通过对各种预训练模型的视觉表示(例如,ViT,DINOv2,OpenCLIP,MVP)进行评估,作者发现具有S2缩放的较小模型在分类、语义分割、深度估计、MLLM基准测试和机器人操作方面始终优于较大模型,而且参数数量明显较少(0.28×至0.07×)并且具有可比较的GFLOPS。值得注意的是,通过将图像尺度扩大到1008^2,在V∗基准测试上实现了MLLM视觉细节理解的最新性能,超过了开源甚至商业的MLLMs如 Gemini Pro和 GPT-4V。

作者进一步研究了S2相对于模型大小缩放的首选缩放方法的条件。发现:虽然在许多情况下具有S2的较小模型比较大模型实现了更好的下游性能,但是在难例上,较大模型仍然可以展现出更好的泛化能力。这引发了对较小模型是否能够达到与较大模型相同的泛化能力的调查。令人惊讶的是,作者发现较大模型的特征可以通过单一线性变换很好地近似于多尺度较小模型,这意味着较小模型至少应具有与其较大对应物类似的学习能力。作者假设它们较弱的泛化能力源自于仅使用单一图像尺度进行预训练。通过在ViT上进行ImageNet-21k预训练的实验,作者展示了使用S2缩放进行预训练可以提高较小模型的泛化能力,使它们能够达到甚至超越较大模型的优势。

下面一起来阅读一下这项工作~

标题:When Do We Not Need Larger Vision Models?

作者:Baifeng Shi, Ziyang Wu, Maolin Mao, Xin Wang, Trevor Darrell

机构:UC伯克利、微软

原文链接:https://arxiv.org/abs/2403.13043

代码链接:https://github.com/bfshi/scaling_on_scales

将视觉模型的规模扩大已成为获取更强大视觉表征的事实标准。在这项工作中,我们讨论了更大的视觉模型不再必要的点。首先,我们展示了尺度上的扩展(S2)的力量,在这种情况下,一个预先训练并冻结的较小的视觉模型(例如ViT-B或ViT-L),在多个图像尺度上运行,可以在分类、分割、深度估计、多模态LLM(MLLM)基准和机器人操纵方面胜过较大的模型(例如ViT-H或ViT-G)。值得注意的是,S2在对V*基准的MLLM进行详细理解方面达到了最先进的性能,超过了诸如GPT-4V之类的模型。我们研究了与模型规模比较的情况下S2作为首选尺度方法的条件。尽管较大的模型在困难示例上具有更好的泛化能力,但我们表明较大视觉模型的特征可以很好地由多尺度较小模型的特征近似。这表明,目前大型预训练模型学到的大部分,如果不是全部,表示也可以从多尺度较小模型中获得。我们的结果表明,多尺度较小模型具有与较大模型相当的学习能力,并且用S2预训练较小模型可以达到或甚至超过较大模型的优势。我们发布了一个Python包,可以用一行代码将S2应用于任何视觉模型。

S2-Wrapper是一种简单的机制,可以以无参数的方式将任何预训练的视觉模型扩展到多个图像尺度。以ViT-B为例,S2-Wrapper首先将输入图像插值到不同的尺度(例如,224^2和448^2),并将每个尺度划分为几个与默认输入尺寸相同的子图像(448^2→4×224^2)。对于每个尺度,所有子图像都被馈送到同一模型中,并且输出(例如,4×16^2)被合并成整个图像的特征图(32^2)。不同尺度的特征图被平均池化到原始空间大小(16^2),然后拼接在一起。最终的多尺度特征具有与单尺度特征相同的空间形状,但具有更高的通道维度(例如,1536 vs. 768)。

深度思考:视觉深度学习模型一定越大越好吗?

对三个模型(ViT、DINOv2 和 OpenCLIP)和三个任务(ImageNet 分类、语义分割和深度估计)进行 S2 缩放和模型大小缩放的比较。

对于每个模型和每个任务,测试基本、大型和巨型/巨大模型的模型大小缩放(以灰色曲线绘制)。对于 S2 缩放(以绿色曲线绘制),测试三组从单一尺度(1x)到多尺度(最多 3x)的比例,并调整每组比例,使其与相应模型大小的 GFLOPs 匹配。请注意,对于特定的模型和任务,分别在基本模型和大型模型上测试 S2 缩放(以浅绿色和深绿色曲线分别绘制)。可以看到,在(a)、(d)、(e)、(f)、(g)和(i)中,具有 S2 缩放的基本模型已经实现了与具有相似 GFLOPs 但模型尺寸更小的大型模型相媲美或更好的性能。在(b)和(h)中,来自大型模型的 S2 缩放与巨型模型相当,同样具有相似的 GFLOPs 和更少的参数。唯一的失败案例是(c),在该案例中,基本模型或大型模型上的 S2 缩放与模型大小缩放无法竞争。

深度思考:视觉深度学习模型一定越大越好吗?

在MLLM上进行S2缩放和模型尺寸缩放的比较。 S2缩放比模型尺寸缩放在所有三类基准上都具有相当或更好的缩放曲线。使用大的图像尺度通常会提供更好的性能,而使用较大的模型在某些情况下会降低模型的性能。

深度思考:视觉深度学习模型一定越大越好吗?

评估三类模型:(i) 在ImageNet-21k上预训练的ViT,(ii) 在LAION-2B上预训练的OpenCLIP,以及(iii) 在ImageNet-1k上预训练的MAE。重建损失是所有输出标记的平均值,并在ImageNet-1k上进行评估。结果显示在表2中。与基本模型相比,观察到多尺度基本模型始终具有更低的损失,并且重建了更多大模型表示的信息(例如,对于ViT,0.521 vs. 0.440)。更有趣的是,作者发现来自多尺度基本模型的重建信息量通常接近于巨型模型,尽管有时略低但从未明显超过。例如,虽然OpenCLIP-Base可以重建92.7%的信息,但多尺度基本模型可以重建99.9%。对于其他模型,Base-S2模型的重建比例通常接近100%,但从未超过0.5%。这意味着(i) 巨型/巨大模型确实是特征重建的有效上界,以及(ii) 更大模型的大部分特征也被多尺度较小模型所学习。唯一的例外是当重建OpenCLIP-Huge特征时,重建比例为88.9%。尽管不接近100%,但仍显着优于基本大小模型,这意味着至少巨型模型特征的一大部分仍是多尺度特征。这些结果暗示具有S2缩放的较小模型应至少具有学习较大模型学习的相似能力水平。另一方面,还注意到训练集和测试集之间存在差距,即测试集上的重建比例可能低于训练集(例如,在OpenCLIP-L上为96.3% vs. 99.9%)。作者假设这是因为仅在预训练后应用多尺度,而仅在单个图像尺度上预训练的基本模型特征具有较弱的泛化能力。

深度思考:视觉深度学习模型一定越大越好吗?

对于记忆能力,给定一个数据集(例如ImageNet),将每个图像视为一个单独的类别,并训练模型来对单个图像进行分类,这要求模型记忆每个图像。分类损失反映了每个实例被记忆的程度,因此反映了模型的容量。对于训练损失,作者报告了在ImageNet-1k的训练集上的分类损失,对于DINOv2和OpenCLIP。较低的损失意味着模型更好地适应训练数据,这暗示了更大的模型容量。结果如表3所示。对于实例记忆,可以看到具有S2缩放(224^2和448^2)的ViT-B与ViT-L具有相似的损失。对于ImageNet分类,对于OpenCLIP,ViT-B-S2的训练损失与ViT-L相似,而对于DINOv2,其损失甚至更低。这些结果表明,多尺度较小的模型至少具有与较大模型相当的模型容量。使用S2进行预训练可以使较小的模型更好。作者评估了基于S2缩放的基础模型在预训练期间或预训练后的ImageNet分类。在ImageNet-21k上对模型进行预训练,使用ViT图像分类或DINOv2作为预训练目标。作者比较了在预训练期间使用或不使用S2的模型,以及在单尺度基础模型和大型模型之间的差异。结果如表4所示。可以看到,当基础模型使用单一图像尺度进行训练,并且仅在预训练后才扩展到多个图像尺度时,它们的性能与大型模型相比是次优的。然而,当将S2缩放加入到预训练中时,多尺度基础模型能够在ViT上胜过大型模型。对于DINOv2,预先使用S2进行训练的基础模型的性能明显优于没有S2进行预训练的基础模型,并且与大型模型更具可比性。尽管仍然略逊于大型模型,但使用S2预训练大型模型可能会产生更好的缩放曲线。证明了使用S2预先训练的较小模型可以匹敌较大模型的优势。

深度思考:视觉深度学习模型一定越大越好吗?

在这项工作中,作者提出了一个问题:对于更好的视觉理解,总是需要一个更大的模型吗? 作者发现,在图像规模的维度上进行缩放(称之为尺度缩放,S2),而不是模型大小通常可以在广泛的下游任务中获得更好的性能。作者进一步展示,具有S2的较小模型可以学习到较大模型学到的大部分内容,并且对于较小模型进行S2预训练可以匹配较大模型的优势,甚至表现更好。

S2对未来工作有一些影响,包括(i)尺度选择性处理,即,并不是图像中每个位置的每个尺度都包含同样有用的特征,根据图像内容和高级任务,为每个区域选择处理某些尺度会更加高效,这类似于人类视觉注意力中的自下而上和自上而下的选择机制,(ii)单个图像的并行处理,即,与常规的ViT相比,在S2中每个子图像都是独立处理的,这使得单个图像的不同子图像可以并行处理,这对于处理单个大图像的延迟至关重要的情景特别有帮助。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊交流群

目前我们已经建立了3D视觉方向多个社群,包括2D计算机视觉、大模型、工业3D视觉、SLAM、自动驾驶、三维重建、无人机等方向,细分群包括:

2D计算机视觉:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等

大模型:NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等

工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。

SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。

自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。

三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等

无人机:四旋翼建模、无人机飞控等

除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群

添加小助理: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。

3D视觉工坊知识星球

3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等。

继续阅读