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

    文章

    96

    浏览量

    12415
  • 深度学习
    +关注

    关注

    73

    文章

    5591

    浏览量

    123915
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    发布服务配置内容分级

    ”。 8.如果您最终选择的年龄分级为3、8或者12,点击“提交”后,您还需再次确认您的服务是否仅面向儿童。 选择“是”:如果服务分类是儿童类,点击“确认”成功提交分级;如果服务
    发表于 11-21 11:29

    发布服务配置应用分类、标签和资质信息(仅分发手表设备)

    进行筛选。 说明 运动手表设备只需设置分类,暂不支持设置标签。 配置版权信息 登录AppGallery Connect,点击“APP与服务”。 选择要发布的服务。 左侧导航选择“应
    发表于 10-30 17:47

    基于级联分类器的人脸检测基本原理

    关系来检测人脸。基于统计的方法将人脸看成统一的二维像素矩阵,通过大量的样本构建人脸子空间,通过相似度的大小来判断人脸是否存在。 2) 基于灰度特征的人脸级联分类器 基于灰度特征的人脸检测级联分类器属于
    发表于 10-30 06:14

    发布服务配置应用分类、标签和资质信息

    分类标签和资质管理”菜单选择服务归属的类别和标签,同时将所需的资质文件提交给华为运营人员审核。资质文件审核通过后,您选择的标签才能生效,之后才可选择生效标签进行配置。关于资质文件的具体要求,请
    发表于 10-29 16:47

    如何对电能质量在线监测装置的应用场景进行分类

    、功能配置、数据精度要求差异显著,分类结果可直接指导装置选型、校准频率设定及运维策略制定。以下从 4 个核心维度进行详细分类: 一、按电力系统 “发 - 输 - 配 - 用” 层级分类
    的头像 发表于 09-02 17:48 541次阅读
    如何对电能质量在线监测装置的应用场景<b class='flag-5'>进行</b><b class='flag-5'>分类</b>?

    使用MATLAB进行无监督学习

    无监督学习是一种根据未标注数据进行推断的机器学习方法。无监督学习旨在识别数据中隐藏的模式和关系,无需任何监督或关于结果的先验知识。
    的头像 发表于 05-16 14:48 1183次阅读
    使用MATLAB<b class='flag-5'>进行</b>无监督<b class='flag-5'>学习</b>

    在友晶LabCloud平台上使用PipeCNN实现ImageNet图像分类

    利用深度卷积神经网络(CNN)进行图像分类是通过使用多个卷积层来从输入数据中提取特征,最后通过分类层做决策来识别出目标物体。
    的头像 发表于 04-23 09:42 890次阅读
    在友晶LabCloud平台上使用PipeCNN实现ImageNet<b class='flag-5'>图像</b><b class='flag-5'>分类</b>

    基于RV1126开发板实现自学习图像分类方案

    在RV1126开发板上实现自学习:在识别前对物体图片进行模型学习,训练完成后通过算法分类得出图像的模型ID。 方案设计逻辑流程
    的头像 发表于 04-21 13:37 11次阅读
    基于RV1126开发板实现自<b class='flag-5'>学习</b><b class='flag-5'>图像</b><b class='flag-5'>分类</b>方案

    快速部署!米尔全志T527开发板的OpenCV行人检测方案指南

    ,计算HOG特征。HOG特征是一个一维向量,其中每个元素表示图像中特定位置和方向的梯度强度。 训练SVM分类器:使用HOG特征作为输入,训练SVM分类器。SVM分类器将
    发表于 04-11 18:14

    在Visual Studio中运行Hello分类样本 ,仅在Visual Studio输出中收到错误消息,怎么解决?

    在 Visual Studio* 中运行 Hello 分类样本 ,仅在 Visual Studio* 输出中收到错误消息: Exception thrown
    发表于 03-05 08:16

    xgboost在图像分类中的应用

    和易用性,在各种机器学习任务中得到了广泛应用,包括分类、回归和排序问题。在图像分类领域,尽管深度学习模型(如卷积神经网络CNN)占据主导地位
    的头像 发表于 01-19 11:16 1573次阅读

    LabVIEW使用Vision视觉进行硬币分类计数

    LabVIEW使用Vision视觉进行硬币分类计数,有偿,带价加q:3430396759
    发表于 12-29 20:20

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    图像的重要特征进行分类和提取,并有效排除无用的多余特征,进而实现图像识别。一般而言,图像识别有四大类任务: (1)
    发表于 12-19 14:33

    如何使用ddc进行数据分类

    在探讨如何使用DDC(Dewey Decimal Classification,即杜威十进制分类法)进行数据分类时,我们首先需要明确DDC是一种用于图书馆分类和组织图书的体系,它按照一
    的头像 发表于 12-18 15:05 1805次阅读

    如何利用地物光谱进行土地利用分类

    在土地利用分类领域,地物光谱技术正发挥着日益重要的作用。下面就为大家简要介绍如何利用地物光谱进行土地利用分类: 1.地物光谱数据采集: 使用专业光谱仪对不同地物进行光谱测量,例如植被通
    的头像 发表于 12-13 14:44 699次阅读
    如何利用地物光谱<b class='flag-5'>进行</b>土地利用<b class='flag-5'>分类</b>?