0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用元学习进行少样本图像分类

电子设计 来源:电子设计 作者:电子设计 2020-12-14 23:28 次阅读

首发:AI公园
作者:Etienne
编译:ronghuaiyang

导读

你并不总是有足够的图像来训练一个深度神经网络。下面是教你如何通过几个样本让模型快速学习的方法。

我们为什么要关心少样本学习?

1980年,Kunihiko Fukushima开发了第一个卷积神经网络。自那以后,由于计算能力的不断增强和机器学习社区的巨大努力,深度学习算法从未停止提高其在与计算机视觉相关的任务上的性能。2015年,Kaiming He和他的微软的团队报告说,他们的模型在从ImageNet分类图像时比人类表现更好。那时,我们可以说计算机在处理数十亿张图像来解决特定任务方面比我们做得更好。

但是,如果你不是谷歌或Facebook,你不可能总是能够构建具有那么多图像的数据集。当你在计算机视觉领域工作时,你有时不得不对图像进行分类,每个标签只有一个或两个样本。在这场比赛中,人类还是要被打败的。只要给婴儿看一张大象的照片,他们从此以后就可以认出大象了。如果你用Resnet50做同样的事情,你可能会对结果感到失望。这种从少量样本中学习的问题叫做少样本学习。

近年来,少样本学习问题在研究界引起了极大的关注,并且已经开发出了许多优雅的解决方案。目前最流行的解决方案是使用元学习,或者用三个词来概括:learning to learn。如果你想知道元学习是什么以及它是如何工作的,请继续阅读。

少样本图像分类任务

首先,我们需要定义N-way K-shot图像分类任务。给定:

一个由N个标签组成的支持集,每个标签对应K个有标签的图像

由Q个查询图像组成的查询集

任务是对查询图像进行分类。当K很小(通常是K<10)时,我们讨论的是少样本图像分类(在K=1的情况下,是单样本图像分类)。


一个少样本分类任务的例子:对于支持集中N=3个类中的每个类,给定K=2个样本,我们希望将查询集中的Q=4只狗标记为Labrador, saint bernard或Pug。即使你从没见过Labrador、saint bernard或Pug,这对你来说也很容易。但要用人工智能解决这个问题,我们需要元学习。

元学习范式

1998年,Thrun & Pratt说,要解决一个任务,一个算法学习“如果性能可以随着经验提升”,同时,给定一族需要解决的问题,一个算法学习”性能随着经验和任务数量提升”。我们将后者称为元学习算法。它不是去学习如何解决一个特定的任务。它可以学会解决许多任务。每学习一项新任务,它就能更好地学习新任务:它学会去学习。

正式的描述一下,如果我们想要解决一个任务T,元学习算法训练一批任务{Tᵢ}。算法通过尝试解决这些任务来得到学习的经验,最终去解决终极任务T。

例如,考虑上图中显示的任务_T_。它包括有标签图像,如Labrador,Saint-Bernard或Pug,使用3x2=6个有标签图像。一个训练任务Tᵢ可能是利用6个有标签图像把图像标记为Boxer, Labradoodle或者Rottweiler。meta-training过程是一连串的这些任务Tᵢ,每一次都是不同品种的狗。我们期望元学习模型“随着经验和任务数量的增加”变得更好。最后,我们在_T_上对模型进行评价。

我们评估了Labradors、Saint-Bernards和Pugs的元学习模型,但我们只在其他品种上训练。

怎么做呢?假设你想要解决这个任务(Labrador,Saint-Bernard 和Pug)。你需要一个元训练数据集,里面有很多不同品种的狗。例如,你可以使用Stanford Dogs数据集,其中包含从ImageNet提取的超过20k只狗。我们将此数据集称为_D_。注意,_D_不需要包含任何Labrador,Saint-Bernard或Pug。

我们从_D_中抽取batch组成episodes。每个episodes 对应于一个N-way K-shot分类任务Tᵢ,(通常我们使用相同的N和K)。模型解决了batch中的所有的episodes后(对查询集中的所有图像打标签),它的参数被更新。这通常是通过对查询集上的分类不准确造成的损失进行反向传播来实现的。

这样,模型跨任务学习,以准确地解决一个新的,看不见的少样本分类任务。标准学习分类算法学习一个映射_图像→标签_,元学习算法学习一个映射:support-set→c(.),其中c是一个映射:query→label。

元学习算法

既然我们知道了算法元训练意味着什么,一个谜仍然存在:元学习模型是如何解决一个少样本的分类任务的?当然,解决方案不止一种。我们聚焦在最流行的方案上。

元学习

度量学习的基本思想是学习数据点(如图像)之间的距离函数。它已经被证明对于解决较少样本的分类任务是非常有用的:度量学习算法不需要对支持集(少量标记图像)进行微调,而是通过与标记图像进行比较来对查询图像进行分类。

查询(右侧)与支持集的每个图像进行比较。它的标签取决于哪些图像最接近。

当然,你不能逐像素地比较图像,所以你要做的是在相关的特征空间中比较图像。为了更清楚一些,让我们详细说明度量学习算法如何解决一个少样本的分类任务(上面定义为一个标签样本的支持集,和一个我们想要分类的图像的查询集):

1、我们从支持和查询集的所有图像中提取嵌入(通常使用卷积神经网络)。现在,我们在少样本分类任务中必须考虑的每一幅图像都可以用一维向量表示。

2、每个查询根据其支持图像集的距离进行分类。距离函数和分类策略都有很多可能的设计选择。一个例子就是欧氏距离和k近邻。

3、在元训练期间,在episode结束时,通过反向传播查询集上分类错误造成的损失(通常是交叉熵损失)来更新CNN的参数。

每年都会发布几种度量学习算法来解决少样本图像分类的两个原因是:

1、它们在经验上很有效;

2、唯一的限制是你的想象力。有许多方法可以提取特征,甚至有更多的方法可以比较这些特征。现在我们将回顾一些现有的解决方案。

匹配网络的算法。特征提取器对于支持集图像和查询图像是不同的。使用余弦相似度将查询的嵌入与支持集中的每幅图像进行比较。然后用softmax对其进行分类。

匹配网络(见上图)是第一个使用元学习的度量学习算法。在这种方法中,我们不以同样的方式提取支持图像和查询图像的特征。来自谷歌DeepMind的Oriol Vinyals和他的团队提出了使用LSTM networks在特征提取期间使所有图像进行交互的想法。称为全上下文嵌入,因为你允许网络找到最合适的嵌入,不仅知道需要嵌入的图像,而且还知道支持集中的所有其他图像。这让他们的模型表现的更好,因为所有的图像都通过了这个简单的CNN,但它也需要更多的时间和更大的GPU

在最近的研究中,我们没有将查询图像与支持集中的每一张图像进行比较。多伦多大学的研究人员提出了Prototypical Networks。在它们的度量学习算法中,在从图像中提取特征后,我们计算每个类的原型。为此,他们使用类中每个图像嵌入的平均值。(但是你可以想象数以千计的方法来计算这些嵌入。为了反向传播,函数只需是可微的即可)一旦原型被计算出来,查询将使用到原型的欧式距离进行分类(见下图)。

在原型网络中,我们将查询X标记为最接近原型的标签。

尽管简单,原型网络仍然能产生最先进的结果。更复杂的度量学习架构后来被开发出来,比如一个神经网络来表示距离函数(而不是欧氏距离)。这略微提高了精确度,但我相信时至今日,原型的想法是在用于少样本图像分类的度量学习算法领域中最有价值的想法(如果你不同意,请留下愤怒的评论)。

模型无关元学习

我们将以模型无关元学习 (MAML)来结束这次回顾,这是目前最优雅、最有前途的元学习算法之一。它基本上是最纯粹的元学习,通过神经网络有两个层次的反向传播。

该算法的核心思想是训练神经网络的参数,可以适应快速和较少的例子,以新的分类任务。下面我将为你提供一个关于MAML如何在一个episode中进行元训练的可视化例子(例如,在从D中采样得到的Tᵢ上进行few-shot分类任务)。假设你有一个神经网络M参数为

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像分类
    +关注

    关注

    0

    文章

    90

    浏览量

    11904
  • 深度学习
    +关注

    关注

    73

    文章

    5492

    浏览量

    120958
收藏 人收藏

    评论

    相关推荐

    《DNK210使用指南 -CanMV版 V1.0》第四十八章 自学习分类实验

    的介绍,请见第39.1小节《maix.KPU模块介绍》。48.2 硬件设计48.2.1 例程功能1. 获取摄像头输出的图像,对三类物体分别采集五张图像后,对采集到的图像进行
    发表于 11-20 09:22

    使用卷积神经网络进行图像分类的步骤

    使用卷积神经网络(CNN)进行图像分类是一个涉及多个步骤的过程。 1. 问题定义 确定目标 :明确你想要分类图像类型,例如猫和狗、不同的植
    的头像 发表于 11-15 15:01 190次阅读

    主动学习图像分类技术中的应用:当前状态与未来展望

    本文对近年来提出的主动学习图像分类算法进行了详细综述,并根据所用样本数据处理及模型优化方案,将现有算法分为三类:基于数据增强的算法,包括利用
    的头像 发表于 11-14 10:12 121次阅读
    主动<b class='flag-5'>学习</b>在<b class='flag-5'>图像</b><b class='flag-5'>分类</b>技术中的应用:当前状态与未来展望

    图像识别算法都有哪些方法

    图像识别算法是计算机视觉领域的核心任务之一,它涉及到从图像中提取特征并进行分类、识别和分析的过程。随着深度学习技术的不断发展,
    的头像 发表于 07-16 11:14 5088次阅读

    图像识别技术的原理是什么

    图像识别技术是一种利用计算机视觉和机器学习技术对图像进行分析和理解的技术。它可以帮助计算机识别和理解图像中的对象、场景和活动。
    的头像 发表于 07-16 10:46 822次阅读

    深度学习中的时间序列分类方法

    的发展,基于深度学习的TSC方法逐渐展现出其强大的自动特征提取和分类能力。本文将从多个角度对深度学习在时间序列分类中的应用进行综述,探讨常用
    的头像 发表于 07-09 15:54 698次阅读

    计算机视觉怎么给图像分类

    图像分类是计算机视觉领域中的一项核心任务,其目标是将输入的图像自动分配到预定义的类别集合中。这一过程涉及图像的特征提取、特征表示以及分类器的
    的头像 发表于 07-08 17:06 498次阅读

    神经分类包括哪些

    神经是神经系统的基本功能单位,它们通过电信号和化学信号进行信息传递和处理。神经分类非常复杂,可以根据不同的标准进行
    的头像 发表于 07-03 11:36 996次阅读

    基于神经网络的呼吸音分类算法

    出的方法与其他机器学习模型在不同情况下的性能和鲁棒性进行比较。1.用于初始模型检查的简单噪声二值分类实验。2.使用个体呼吸周期作为输入的4类异常分类。3.使用每个声音
    发表于 05-31 12:05

    利用卷积神经网络实现SAR目标分类的研究

    卷积神经网络(CNN)是一种在图像处理和计算机视觉领域广泛应用的深度学习模型,因其能够自动学习图像的层次化特征表示而成为SAR目标分类的理想
    发表于 04-08 09:39 397次阅读
    利用卷积神经网络实现SAR目标<b class='flag-5'>分类</b>的研究

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自
    的头像 发表于 01-12 16:06 535次阅读

    CNN图像分类策略

    在深度学习出现之前,自然图像中的对象识别过程相当粗暴简单:定义一组关键视觉特征(“单词”),识别每个视觉特征在图像中的存在频率(“包”),然后根据这些数字对图像
    发表于 12-25 11:36 276次阅读
    CNN<b class='flag-5'>图像</b><b class='flag-5'>分类</b>策略

    图像标注如何提升效率?

    图像标注是通过一定方式对图像进行标记分类,是对数据集的图像进行标记以训练机器
    的头像 发表于 12-19 08:29 436次阅读
    <b class='flag-5'>图像</b>标注如何提升效率?

    异构信号驱动下小样本跨域轴承故障诊断的GMAML算法

    论文提出了一种通用的模型不可知学习(GMAML)方法,用于在异质信号驱动的不同工况下,进行轴承的样本故障诊断。
    的头像 发表于 12-06 15:07 1020次阅读
    异构信号驱动下小<b class='flag-5'>样本</b>跨域轴承故障诊断的GMAML算法

    迈向更高效的图像分类:解析DeiT模型的移植和适配

    1.DeiT概述1.1项目简介Deit(Data-efficientimageTransformers)是由Facebook与索邦大学的MatthieuCord教授合作开发的图像分类模型。作为一种
    的头像 发表于 11-23 08:33 1228次阅读
    迈向更高效的<b class='flag-5'>图像</b><b class='flag-5'>分类</b>:解析DeiT模型的移植和适配