【深度学习:微模型过度拟合】微模型简介或:我如何学会停止担忧并热爱过度拟合

【深度学习:微模型过度拟合】微模型简介或:我如何学会停止担忧并热爱过度拟合

这篇文章的目的是介绍我们在 Encord 中用于自动化数据注释的“微模型”方法。我们已将这种方法部署在医学成像、农业、自动驾驶车辆和卫星成像等广泛领域的计算机视觉标记任务中。

TLDR;什么:应用于数据分布的小域的低偏差模型。方法:在狭义任务的少数示例上过度拟合深度学习模型。原因:节省数百小时的手工贴标时间。

构建检测蝙蝠侠的模型需要多少数据?

在这里插入图片描述

黑暗骑士愿景

这当然取决于您的目标。也许您想要一个通用模型,可以同时检测亚当·韦斯特、迈克尔·基顿和巴特弗莱克等蝙蝠侠。也许您需要它包含一个布鲁斯·韦恩探测器,该探测器也可以识别面具后面的人。

但如果你想要一个在一部电影、一个场景中跟随克里斯蒂安·贝尔蝙蝠侠的模型,答案是……五张带标签的图像。用于生成上述模型推理结果片段的模型是使用以下五个标签进行训练的:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

用于训练微模型的五个标签

现在,这是否回答了最初的问题?这个模型只是蝙蝠侠的部分模型。它在 Val Kilmer 或 George Clooney Batmen 上的表现并不好,但在特定的用例中它仍然可以发挥作用。因此,我们不会称其为蝙蝠侠模型,而是称其为蝙蝠侠微模型。

起源

我们在 Cord 早期就开始使用微模型,当时我们的重点纯粹是视频数据。我们在尝试不同的建模框架来自动分类胃肠病学视频时偶然发现了这个想法(您可以在此处找到更多相关信息)。我们最初的策略是尝试一种“经典”数据科学方法,从广泛分布的视频中采样帧,训练模型,然后对不同视频集的样本外图像进行测试。然后,我们将使用这些模型并测量与人工标记相比我们的注释效率的改进。然而,我们在实验中意识到,仅对来自一个视频的一小组智能选择的帧进行训练的分类模型已经产生了很好的结果。我们还注意到,随着轮数的增加,我们的注释效率也随之提高。

这与我们对优秀数据科学的认识背道而驰。我们对这个视频的模型严重过度拟合。但它确实有效,特别是如果我们将其分解,使每个视频都有自己的模型。我们称它们为微模型。虽然这是针对视频帧分类的,但我们后来将实践扩展到包括对象检测、分割和姿势估计等任务。

微模型到底是什么?

最简单地说,微模型是针对特定任务或特定数据进行过度训练的注释特定模型。它们是故意过度拟合的模型,因此在一般问题上表现不佳,但在自动化数据注释的某一方面非常有效。因此,它们被设计为只擅长一件事。为了在实践中使用它们,我们将它们集成在一起以自动化全面的注释过程。

在这里插入图片描述
“传统”模型和微模型之间的区别不在于它们的架构或参数,而在于它们的应用领域、用于生成它们的反直觉数据科学实践以及它们的最终用途。

一维标记

为了介绍微观模型的工作原理,我们将采用一个高度简化的玩具模型,可以更清晰地了解其背后的基础。机器学习的核心是曲线拟合,只是在一个具有许多参数的非常高的维度空间中。因此,将构建模型的本质提炼为最简单的可能情况之一(一维标签)是有启发性的。以下内容稍微技术性一点,请随意跳过。

假设您是一家人工智能公司,面临以下问题:

  • 您需要建立一个适合下面假设曲线的模型
  • 您没有曲线的 x-y 坐标,并且实际上无法看到整个曲线,您只能手动对 x 值进行采样,并且对于每个值,您必须查找与其关联的相应 y 值(“ x) 的标签”。
  • 由于这种“贴标签”操作,每个样品都会产生成本

在这里插入图片描述
您希望用一个模型拟合整个曲线,但密集采样点的成本太高。您可以在这里使用什么策略?

一种策略是将高次多项式拟合到曲线域上的一些初始采样点集,随机重新采样,评估误差,并根据需要更新多项式。问题是每次检查新的样本点时都必须重新拟合整个曲线。每个点都会影响其他点。您的模型还必须非常复杂才能处理曲线中的所有不同变化。

解决这些问题的另一种策略是在局部区域进行采样,拟合一个近似该区域的模型,然后将整个域中的许多局部区域缝合在一起。例如,我们可以尝试将模型拟合到下面的这个弯曲部分:

在这里插入图片描述
这就是样条插值,一种曲线拟合的常用技术。每个样条线都有目的地“过度拟合”局部区域。它不会远远超出其领域进行推断,但也没有必要这样做。这是在低维空间中体现的微观模型的概念基础。这些单独的样条单元类似于我们用来自动化 x 值标签的“微模型”。

更一般的情况遵循类似的核心逻辑,但有一些额外的微妙之处(例如利用迁移学习和优化采样策略)。为了自动化完整的计算机视觉注释过程,我们还像装配线一样将微模型“缝合”在一起。请注意,将弱模型集成在一起以获得更好的推理结果是一个已经存在很长时间的想法。这略有不同。我们不会对单个预测的微模型进行平均,而是让每个模型自己处理预测。微模型也不仅仅是“弱学习者”。他们只是对数据分布的覆盖范围有限,并且对该覆盖范围表现出非常低的偏差。

我们正在利用这样一个事实:在注释过程中,我们可以利用某种形式的人类监督来将模型“指向”正确的领域。这种对微模型领域的指导使我们能够使用很少的人类标签来开始自动化流程。

蝙蝠侠效率

模型可以根据形式(近似世界上某些现象的可量化表示)或功能(帮助您做事的工具)来定义。我的观点倾向于后者。正如常见的引用所说:

所有模型都是错误的,但有些模型是有用的。

微模型也不例外。它们的理由来自于在各个领域的应用程序中使用它们。

为了考虑微模型在注释方面的实际考虑,让我们看一下蝙蝠侠的例子。从我们训练模型的场景中提取 1500 帧,我们发现其中大约一半出现了蝙蝠侠。我们的微模型又选取了大约 70% 的实例。因此,我们仅通过五个手动注释就获得了大约五百个蝙蝠侠标签。

当然也存在需要纠正的问题。例如,我们有误报。考虑一下我们的模型拾取的场景中的一个“假”蝙蝠侠的推理结果。

在这里插入图片描述

我是(不是)蝙蝠侠

我们的边界框也没有达到应有的紧密程度。然而,这只是我们微模型的第一步。与普通模型一样,微模型也会经历几轮迭代。为此,主动学习是最好的解决方案。

我们一开始只使用了五个标签,但现在通过一些最小的校正和智能采样,我们有超过 500 个标签可以用来训练下一代微模型。然后,我们使用这个更强大的版本来改进我们的原始推理结果并生成更高质量的标签。在这个过程的另一个循环之后,当考虑到人类行为的数量(包括手动更正)时,我们的微型模型的蝙蝠侠标签效率达到了 95% 以上。

额外的好处

评估微模型时还需要考虑一些其他要点:

  1. 开始的时间:由于需要训练的标签很少,您可以在新项目的五分钟内开始使用微模型进行推理。
  2. 迭代时间:启动速度的必然结果是迭代周期短。您可以进入几分钟而不是几小时或几天的主动学习循环。
  3. 原型设计:短迭代周期有利于快速模型实验。我们已经看到微型模型可以作为人们构建的未来生产模型的非常有用的原型。它们可以快速检查想法对于机器学习项目是否具有最低限度的可行性。

面向数据的编程

虽然我们在使用微模型进行数据注释方面取得了成功,但我们认为除了数据管道应用程序之外,还有一个可能性领域。如前所述,人工智能是曲线拟合。但更根本的是,它是让计算机做你想让它做的事情,这就是编程。它只是一种统计驱动而非逻辑驱动的编程形式。

“正常”编程的工作原理是通过逻辑运算建立确定性偶发事件,将输入转换为输出。机器学习在高复杂性领域蓬勃发展,在这些领域中,逻辑捕获这些意外事件的难度被从示例中学习所取代。这种统计编程范式仍处于起步阶段,尚未开发出可供实际使用的概念框架。

例如,将问题分解为更小的组件是大多数问题解决框架的关键要素之一。面向对象的编程范式是朝着这个方向的组织转变,它加速了软件工程的发展,并且至今仍在实践中。我们仍处于人工智能的早期阶段,也许实例化面向数据的编程范式对于类似的快速发展是必要的。

在这种情况下,微模型可能在对象范式中具有天然的相似性。复杂数据分布中的一个块是“对象等价物”,微模型是该对象的实例。虽然这些想法还处于早期阶段,但它们与对以数据为中心的人工智能的新强调非常吻合。开发编排这些“数据对象”的工具是下一代人工智能基础设施的负担。我们才刚刚开始,还有很长的路要走。

  • 37
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jcfszxc

赏我点铜板买喵粮吃吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值