【深度学习:Micro-Models】用于标记图像和视频的微模型简介

news2025/2/26 9:24:25

在这里插入图片描述

【深度学习:Micro-Models】用于标记图像和视频的微模型简介

    • 微模型:起源故事
    • 微模型到底是什么?
      • 更详细地解释微观模型:一维标签
      • 蝙蝠侠效率
    • 在计算机视觉项目中使用微模型的额外好处
    • 面向数据的编程

在本文中,我们将介绍 Encord 用于自动化数据注释的“微模型”方法。我们已将这种方法部署到各个领域的计算机视觉标记任务中,包括医学成像、农业、自动驾驶汽车和卫星成像。

让我们切入正题:

  • 什么是微模型低偏差模型适用于数据集中的一小组图像或视频。
  • 微模型如何发挥作用? 在狭义任务的少数示例上过度拟合深度学习模型,一旦准确性足够高,就可以将其应用于整个数据集。
  • 为什么在计算机视觉中使用微模型? 节省数百小时的手动标记和注释。

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

在这里插入图片描述

黑暗骑士

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

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

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

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

我希望这有助于回答第一个问题,令人惊讶的是它只需要五张图片。

该模型只是蝙蝠侠的部分模型。它在 Val Kilmer 或 George Clooney Batmen 上的表现并不好,但对于这个特定的用例来说它仍然有效。因此,我们不会称其为蝙蝠侠模型,而是称其为蝙蝠侠微模型

微模型:起源故事

不用担心;微型模特背后的起源故事并不是从一个富家子突然成为孤儿开始的。

我们在 Encord 早期就开始使用微模型,当时我们纯粹专注于视频数据集和计算机视觉模型。

我们在尝试不同的建模框架来自动分类胃肠病学视频时偶然发现了这个想法(您可以在此处找到更多相关信息)。

我们最初的策略是尝试一种“经典”数据科学方法,从广泛分布的视频中采样帧,训练模型,并对不同视频集的样本外图像进行测试。然后,我们将使用这些模型并测量与人工标记相比我们的注释效率的改进。

在这些实验中,我们意识到,仅对来自一个视频的一小组智能选择的帧进行训练的分类模型已经产生了很好的结果。我们还注意到,随着纪元数量的增加,我们的注释效率也随之提高。

这与我们对数据科学最佳实践的了解相反(整个团队在这方面拥有丰富的经验)。无意中,我们严重过度拟合了该视频的模型。但它确实有效,特别是如果我们将其分解,使每个视频都有其模型。我们称它们为微模型。虽然这是针对视频帧分类的,但我们后来将实践扩展到包括对象检测、分割和人体姿势估计任务。

微模型到底是什么?

最简单地说,微模型是针对特定任务或特定数据进行过度训练的特定注释模型。

微模型故意过度拟合模型,使其在一般问题上表现不佳,但在自动化数据注释工作流程的某一方面却非常有效。因此,它们被设计为只擅长一件事。要在实践中使用微模型进行图像或视频注释和标记,更有效的方法是将多个模型组装在一起以自动化全面的注释过程。

在这里插入图片描述

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

更详细地解释微观模型:一维标签

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

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

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

您希望用一个模型拟合整个曲线,但对正确数量的点进行密集采样的成本太高。您可以在这里使用什么策略?

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

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

在这里插入图片描述

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

更通用的用例遵循类似的核心逻辑,但有一些额外的微妙之处(例如利用迁移学习和优化采样策略)。为了自动化完整的计算机视觉注释过程,我们还在训练数据工作流程中将微模型“缝合”在一起,类似于装配线。请注意,将弱模型组装在一起以获得更好的推理结果是一个已经存在很长时间的想法。这是一种略有不同的方法。

在 Encord,我们不会对单个预测的微模型进行平均,而是让每个模型自行处理预测。微模型也不仅仅是“弱学习者”。他们只是对数据分布的覆盖范围有限,并且对该覆盖范围表现出非常低的偏差。

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

蝙蝠侠效率

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

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

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

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

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

在这里插入图片描述

I’m (not) Batman

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

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

在计算机视觉项目中使用微模型的额外好处

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

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

面向数据的编程

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1382988.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt5.14.2配置opencv4.5.5

使用环境:windows,opencv4.5.5,qt5.14.2,msvc编译器 这里的opencv文件是已经编译好了,在qt工程中配置就可使用,编译器得是msvc才行,MinGW不管用。 资源地址:https://download.csdn.…

【年终总结】回首2023的精彩,迈向2024的未来

文章目录 一、历历在目,回首成长之路🏃‍1、坚持输出,分享所学2、积土成山,突破万粉3、不断精进,向外涉足 二、雅俗共赏,阅历百般美好🎻1、音乐之声,声声入耳2、书海遨游&#xff0c…

10.9.2 std::function 代替函数指针

std::function是一个模板类&#xff0c;基本可作为函数指针的代替品&#xff0c;具备更多功能&#xff0c;特别是与函数对象及bind配合使用。使用std::function时&#xff0c;需要添加头文件 #include <functional> 1.定义函数指针 18行&#xff0c;定义了一个函数指针类…

ssm基于java的智能训练管理平台论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#x…

【位运算】【二分查找】【C++算法】100160价值和小于等于 K 的最大数字

作者推荐 【动态规划】【字符串】扰乱字符串 本文涉及的基础知识点 二分查找算法合集 位运算 LeetCode100160. 价值和小于等于 K 的最大数字 给你一个整数 k 和一个整数 x 。 令 s 为整数 num 的下标从1 开始的二进制表示。我们说一个整数 num 的 价值 是满足 i % x 0 且…

[书生·浦语大模型实战营]——XTuner 大模型单卡低成本微调

1.Finetune简介 在未经过微调的pretrained LLM中&#xff0c;模型只会尽量去拟合你的输入&#xff0c;也就是说模型并没有意识到你在提问&#xff0c;因此需要微调来修正。 1.1常用的微调模式 LLM的下游应用中,增量预训练和指令跟随是经常会用到的两种的微调模式。 增量预训练…

【前后端的那些事】解放后端!10min快速上手人人代码生成器(后端篇)

人人代码生成器【后端篇】 文章目录 人人代码生成器【后端篇】1. 克隆renren-generator2. 配置项目信息3. 配置数据库信息4. 启动项目5. 创建springboot项目5.1 pom.xml5.2 创建包结构5.3 编写application.yml5.4 将生成代码集成到项目中5.5 集成common模块5.6 启动项目 前言&a…

影响邮件打开率的因素有哪些?

影响邮件打开率得因素有很多&#xff0c;比如说邮件地址的有效性、邮件标题、定位人群、发送频率或者时间等因素。目前来讲&#xff0c;我们可以通过技术的手段改善邮件的到达率&#xff0c;但是邮件的打开率取决于收件人本身&#xff0c;所以发件人的发送动作如何在很大程度上…

一、Mindspore 公开课 - Transformer

课程链接&#xff1a;Mindspore 技术公开课 Transformer 论文地址&#xff0c;建议看完课程以后简单看看论文 前言 Transformer是一种神经网络结构&#xff0c;由Vaswani等人在2017年的论文“Attention Is All You Need” 中提出&#xff0c;用于处理机器翻译、语言建模和文…

PLAN B KRYPTO ASSETS GMBH CO. KG 普兰资产管理公司

引领加密技术不断演进 PLAN B KRYPTO ASSETS普兰资产管理以其独创的「Trident Strategy三叉戟模型」技术为基础&#xff0c;持续推动加密技术的发展&#xff0c;打造 Schutz&#xff08;舒茨盾&#xff09; AI 金融隐私匿名公链。致力于提供高效的技术服务&#xff0c;基于机构…

SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(二) 入门示例及编程步骤 三、使用Core API访问与操作数据库 Sqlalchemy 的Core部分集成了DB API, 事务管理&#xff0c;schema描述等功能&#xff0c;ORM构筑于其上。本章介绍创建 Engine对象&#xff0c;使用基本的…

「企业架构框架」什么是TOGAF?

什么是TOGAF&#xff1f;TOGAF开发概述什么是TOGAF上下文中的架构&#xff1f;什么是企业架构&#xff1f;TOGAF的结构介绍架构开发方法ADM指南和技术架构内容框架企业连续体和工具参考模型架构能力框架相关链接 什么是TOGAF&#xff1f; TOGAF由开放集团推出&#xff0c;是一种…

LangChain 71 字符串评估器String Evaluation衡量在多样化数据上的性能和完整性

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…

【STK】手把手教你利用STK进行关联分析仿真01-STK/CAT模块介绍

关联分析工具(Conjunction Analysis Tool )主要用于分析航天发射或卫星在轨运行过程中与其他目标之间的接近情况,关联分析包括: 接近分析工具 Close Approach Tool CAT高级接近分析工具 AdvCAT激光接近分析工具 LaserCAT发射窗口分析工具 Launch Window Analysis今天主要介绍…

RAG 评估框架 -- RAGAS

原文 引入 RAG&#xff08;Retrieval Augmented Generation&#xff09;的原因 随着ChatGPT的推出&#xff0c;很多人都理所当然直接用LLM当作知识库回答问题。这种想法有两个明显的缺点&#xff1a; LLM无法得知在训练之后所发生的事情&#xff0c;因此无法回答相关的问题存…

大面积光源HUD阳光倒灌实验装置太阳光模拟器

背景 1.根据现在市场上一些量产的hud的结构和原理可知&#xff0c;hud中最重要的零件之一就是凹面镜(自由曲面)&#xff0c;hud利用凹面镜放大投影的光学原理进行投影成像。当发生阳光倒灌时&#xff0c;太阳光沿着hud正常工作时成像的逆光路&#xff0c;通过挡风玻璃-凹面镜-…

4.【CPP】入门(初始化列表||explicit||static||友元||静态成员变量/函数)

一.初始化列表 1.引入 我们知道在c11中才能在成员对象声明时初始化&#xff0c;像下面这样。 class Date { public: Date(int year, int month, int day): _year(year), _month(month), _day(day) {} private: int _year2000; int _month12; int _day20; };注意&#xff1a;…

CMake tasks.json launch.json

hehedalinux:~/Linux/cmake/cmakeClass$ tree . ├── CMakeLists.txt ├── include │ ├── Gun.h │ └── Soldier.h ├── main.cpp └── src├── Gun.cpp└── Soldier.cpp2 directories, 6 files hehedalinux:~/Linux/cmake/cmakeClass$ launch.json&am…

每日一题——LeetCode1189.气球的最大数量

方法一 个人方法&#xff1a; 统计text字符串中b、a、l、o、n 这几个字符出现的次数 l和n需要两个才能拼成一个balloon&#xff0c;所以碰到l和o加1&#xff0c;其他字符加2 最后求出出现次数最少的那个字符再除以2就是能拼凑成的单词数量&#xff0c;避免出现小数要使用向下…

godot初学笔记

godot开发工具下载地址 godot下载地址 godot入门视频 godot入门教学b站地址 素材下载地址 素材下载地址 最终成品图 2D3D如何切换 添加2D场景 添加其他节点 添加人物节点 设置人物为接地 给人物添加Sprite 2d 给人物设置材质 解决材质糊的问题 设置材质包切割 在场景中实…