MLops博客

理解计算机视觉浅学:你需要知道

8分钟
8月24日2023

自首卷积神经网络高山市CNN网络算法创建后,它们大大提高深度学习性能计算机视觉高山市CV)任务 。

2015年微软报告,他们的模型比人类分类图像强图像网数据集[1]

电脑用数十亿图象解决具体任务时不匹配现实世界中 很少能用多样本构建或查找数据集

如何克服问题if we're talkingCV任务使用数据扩充高山市地检官或收集附加数据并贴标签

地检官强工具并可能成为解决方案的一大部分标签附加样本耗时耗资,

Python数据扩充:所有你需要知道
NLP数据扩充:Kagle大师最佳做法

如果数据集真的小, 这两种技术可能都帮不上忙想象任务需要构建分类 单类只取一到二样本 每种样本都极难查找

需要创新方法少点位学习高山市FSL)是其中之一

文章中我们将覆盖

  • 什叶派少点位学习定义目标FSL问题示例
  • 少点学习变换N-Shot学习,少点学习,单点学习,零点学习
  • 少点位学习方法论-元学习,数据级,参数级
  • 元学习算法-定义度量学习,梯度元学习
  • 算法偏差图像分类模型不可知性元学习,匹配,原型关系网
  • 少片对象检测-YOLOMAML

少点学习

少点位学习子领域机器学习新数据分类问题 当你只有少数带监督信息的培训样本

FSL是一个相当年轻的领域 需要更多研究改进从今天起,你可以使用它CV任务 。计算机视觉模型使用相对少的培训样本效果很好整篇文章中,我们将集中关注FSL计算机视觉

例举:表示我们在保健领域工作 并有问题分类骨科 通过X光照片

稀有病理学可能缺少足够的图像供训练集使用这正是问题类型 通过搭建解决FSL分类器

偏差变异

取不同的变异和极端案例FSL.一般来说,研究人员识别四种类型:

  1. N-Shot学习
  2. 少点位学习
  3. 单点学习
  4. 小于一或零点学习

当我们谈论FSL.,我们通常指N-way-K-Shot-classification.

N级表示类数K级样本数从每类培训

N-Shot学习被视为比所有其他概念范围更广的概念意指少点点,单片零点学习子字段NSL.

零点位

对我而言ZSL最有趣目标零点学习将隐式类分类而不设训练实例

似乎有点疯狂,但用这种方式想一想:你能分类对象而不见它吗?如果你对对象、外观属性和功能有泛泛概念,它就不应该成问题

做时使用此方法ZSL并,据当前趋势,零点学习很快会提高效果

单片和少片

通过这一点,你可能看到泛泛概念, 所以这并不奇怪单片学习中,我们只有单类样本少点点二到五样本单类化OSL.

当我们讨论整体概念时使用少点位学习语句.但这个区域相当年轻,所以人们使用这些术语时会有所不同。读文章时记住

少点学习方法

时间移动到更实用领域 并谈论不同少点位学习问题方法

首先,让我们定义N-way-K-Shot-classification问题想象一下我们有:

  1. 训练(支持)集包括:
    1. N级类标签
    2. K级标签图像每类(小量,小小于10个样本/类)
  2. Q类查询图片

我们希望分类Q类查询图像N级类中上头N级*K级训练集样本是唯一例子主要问题是培训数据不足[1]

最明显的第一步FSL任务从其他类似问题获取经验正因如此少点位学习特征化元学习问题

说明一下:在一个传统分类问题中, 我们尝试学习从训练数据分类, 并使用测试数据评价

元学习学习从一组训练数据分类使用一组分类问题

通常有两种方法解决时需要考虑FSL问题 :

  • 数据级方法
  • 参数级方法

数据级方法

这种方法很简单基础概念是,如果你没有足够数据构建可靠模型并避免超装和超装,你应简单添加更多数据

正因如此多FSL问题通过使用大量补充信息解决基数集.密钥特征基数集即它没有类 我们在支持集少点点任务 。举例说,如果我们想分类特定的鸟类,基数数据集可以有许多其他鸟的图像。

也可以自制更多数据实现此目标时,我们可以使用数据扩充或偶数组合式对立网络高山市GANs系统)

参数级方法

参数级视点很容易超套少点位学习样本常有广度高维空间

要克服这个问题,我们应该限制参数空间并使用规范化和适当的损耗函数模型将归纳有限培训样本

另一方面,我们可以通过引导模型广度参数空间提高模型性能如果我们使用标准优化算法,它可能不会产生可靠结果,因为培训数据量小

正因如此参数级训练模型寻找参数空间最优路径 提供最优预测结果上文已经提到过,这种技术被称为元学习.

元学习算法

经典范式中,当我们有特定任务时,算法学习,如果任务性能随经验提高内元学习范式,我们有一套任务算法学习,如果它每项任务性能随经历和任务数提高算法被称为元学习算法.

想象一下我们有一个测试任务测试.训练元学习算法批量训练任务火车.培训经验从尝试解决火车任务用解决测试任务 。

解决FSL任务有一套步骤想象一下,我们有一个分类问题 前文提到启动前,我们需要选择基数集.选择基数集关键值 。选个好点的吧 小心点

眼下我们有N-way-K-Shot-classification问题(让我们命名它测试和大基数集并使用元学习训练集火车)

整片元培训进程数目有限事件集.我们组成插件类似此 :

火车,我们采样N级类和K级支持集图像每类并发Q类查询图片以这种方式,我们组成分类任务 相似于我们终极测试任务 。

逐集尾端训练模型参数以优化精度Q类图片查询集这是我们模型学习解决隐式分类问题能力的地方[1]

模型总体效率以其对模型的精度测量测试分类任务

近些年来 研究人员发布多元学习算法解决FSL分类问题全部可划分成两大类度量学习梯度元学习算法

度量学习

等我们谈起度量学习中通常指学习对象远程函数技术

泛泛地说度量学习算法学习比较数据样本案例a少点点分类问题和查询样本相似性分类支持样本

正如你可能已经猜到的,如果我们用图像工作, 我们基本训练卷积神经网络输出图像嵌入矢量,后与其他嵌入量比较预测类

梯度元学习

面向梯度基础方法上,你需要构建元读取器基取者.

元清除器模型跨集学习,而模型基取者模型初始化并训练元读取器.

想象一集元培训由分类任务定义N级*K级图像支持集Q类查询集

  1. 我们选择元读取器模型化
  2. Episode启动
  3. 初始化基取者典型aCNN网络分类器)
  4. 我们用支持集训练它(精确算法训练基取者定义由元读取器)
  5. 基础学习器预测查询集类
  6. 元清除器参数训练分类错误造成的损失
  7. 从此点,管道可能因你选择而异元读取器.[1]

算法偏差图像分类

段出自少片图像分类元学习由Etiennebennequin写

从大全图中,让我们继续具体元学习算法用解决少点位学习图像分类问题

本节覆盖:

  1. 模型不可知元学习
  2. 匹配网络
  3. 原型网络
  4. 关系网

模型不可知元学习

MAML基础梯度元学习高山市GBML概念化正如我们已经想通GBML关於元读取器获取训练经验基础模型学习所有任务的共同特征表示

每当有新任务学习元读取器使用新任务带来的小量新培训数据

still, we don't start从随机参数初始化开始如果我们这样做,算法在几度更新后无法归结为良好性能

MAML目标解决此问题

MAML提供优初始化a元读取器参数实现最优快速学习新任务,只有少量渐变步数,同时避免使用小数据集时可能出现的超配

以下是它是如何实现的

  1. 元解析器创建自定义拷贝C级开场白
  2. C级接受事件训练(正像我们先前讨论过的那样,并有帮助)基础模型)
  3. C级预测查询集
  4. 从预测中计算的损失用于更新C
  5. 持续到你训练所有事件
ml算法

最大优势 技术的构思不可知元读取器算法选择正因如此MAML方法多使用机器学习算法需要快速适配深神经网络.

匹配网络

匹配网络高山市MN)是第一个度量学习算法设计解决FSL问题

面向匹配网络算法,你需要使用大基数据集解决少点位学习任务 。上图显示此数据集分片段之后,对每一集匹配网络应用下列程序:

  1. 从支持到查询集的图像都反馈到CNN网络输出嵌入
  2. 每种查询图像使用软模从嵌入到支持集嵌入
  3. 上头跨倍损耗取结果分类反向转换CNN网络.

这边走匹配网络学习计算图像嵌入方法允许MN分类图像不预知类万事简单比较类中的不同实例

类相异于每一集匹配网络计算图像特征以辨别类反之,在标准分类中,算法学习每一类特有特征

值得一提的是,作者们实际上建议对初始算法作一些改进举个例子,用双向法扩充算法LSTM.嵌入图像开始取决于嵌入对象

所有改进建议都可见于其中初始化文章大全然然,你必须记住 提高算法性能 可能延长计算时间

原型网络

原型网络高山市PN)相似匹配网络微小差异帮助提高算法性能PN实际结果优于MN

上头PN进程基本相同,但查询图像嵌入不比支持集中的每一图像嵌入取而代之原型网络提议替代方法

PN中,你需要编程类原型.基本类嵌入法 通过平均嵌入本类图像查询图像嵌入仅与这些比较类原型.

值得一提单片学习问题算法相似匹配网络.

临ΤPN欧几里得距离取代余弦距离被视为算法改进的一个主要部分

关系网

所有实验构建匹配原型网络实际引导创建关系网高山市RN)RN建建基础PN概念外加大修改算法

距离函数非预定义而是算法学习RN拥有它自己的关系模块做这个如果你想学习更多,查查初始文章.

总体结构如下:上头关系模块放上顶部嵌入式模块计算嵌入类原型从输入图片

关系模块输入嵌入查询图像和单类原型并输出关系评分面向每一对情侣应用软体切入点关系评分,我们得到预测

少片对象检测

段出自少片计算机视觉元学习算法由Etiennebennequin写

很明显我们可能遇上FSL问题全全计算机视觉任务 。深思熟虑少点点图像分类,现在时间处理少片对象检测问题

让我们定义对象检测任务 。想象一下,我们有一个对象类型和图像列表, 目标从图像列表检测所有对象表示检测对象

  1. 通过绘制最小绑定盒 内含它
  2. 我们分类对象

继续定义N-Way-K-Shot对象检测任务 。imagine:

  1. 支持集组成:
    1. N级类标签
    2. 面向每一类K级标签图像中至少包含一个属于此类对象
  2. Q类查询图片

我们的目标是检测属于N级查询图像中给定类

注意关键差与少点点图像分类问题,因为一图像可包含多对象N级类中我们可能面对类不平衡问题算法训练K级示例对象

YOLOMAML

上头少片对象检测菲律宾凯时国际官网开户领域快速开发, 但没有多项高效解决方案最稳定的解决方式YOLOMAML算法

YOLOMAML有两个混合片段YOLOv3对象检测结构学MAML算法

如前所述MAML可应用到各种深神经网络正因如此开发者很容易合并这两块

YOLOMAML直接应用MAML算法转换YOLO语言检测器如果你想学习更多,查查Github官方仓库.

终极思想

文章中,我们已经想通少点位学习....FSL变量和问题处理方法, 和算法你用什么解决图像分类对象检测FSL任务 。

据我所知少点位学习快速开发充满希望的领域 但仍然相当挑战性 未研究还有很多事要做 研究开发

希望有了这些信息后,你不会有问题 开始实验少点位学习字段内

AG凯时手机版追加资源

  1. Etienne Bennequin的“Few-Shot图像分类元学习”。
  2. Etienne Bennequin的“微小计算机视觉元学习算法”,
  3. https://blog.floydhub.com/n-shot-learning/
  4. https://medium.com/quick-code/understanding-few-shot-learning-in-machine-learning-bede251a0f67
  5. https://towardsdatascience.com/model-agnostic-meta-learning-maml-8a245d9bc4ac
  6. https://deepai.org/publication/meta-learning-algorithms-for-few-shot-computer-vision#S2.SS3
  7. https://arxiv.org/pdf/1904.05046.pdf
  8. https://www.borealisai.com/en/blog/tutorial-2-few-shot-learning-and-meta-learning-i/#:~:text=The%20goal%20of%20few-shot,class%20(one%20shot%20learning)
  9. https://deepai.org/publication/few-shot-object-detection

文章有用吗

感谢回馈