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

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

3天内不再提示

半监督学习算法的现实性评价

zhKF_jqr_AI 来源:未知 作者:李倩 2018-09-08 09:21 次阅读

编者按:半监督学习是近年来非常热门的一个研究领域,毕竟机器学习模型的本质是个“吃”数据的“怪兽”,虽然现实世界拥有海量数据,但针对某个问题的标记数据却仍极度稀缺。为了用更少的标记数据完成更多现实任务,研究人员想出了这种从无标记数据中提取数据结构的巧妙做法。那么它能被用于现实任务吗?今天论智带来的是NIPS 2018收录的一篇Google Brain论文:Realistic Evaluation of Semi-Supervised Learning Algorithms。

摘要

当遇到标签有限或没有足够经费请人标记数据等问题时,半监督学习(SSL)提供了一个强大的框架。近年来,基于深层神经网络的SSL算法在标准基准测试任务中被证明是有用的。但是,我们认为这些基准测试并不能解决在应用于实际任务时,这些算法将面临的各种问题。

我们为一些广泛使用的SSL算法重新创建了统一实现,并在一系列任务中对它们进行了测试。实验发现:那些不使用未标记数据的简单基线的性能通常被低估了;对于不同数量的标记数据和未标记数据,SSL算法的敏感程度也不同;并且当未标记数据集中包含不属于该类的数据时,网络性能会大幅降低。

为了帮助指导SSL研究真正能适应现实世界,我们公开了论文的统一重新实现和评估平台。

简介

无数实验已经证实,如果我们对大量数据进行标记,那么深层神经网络就能在某些监督学习任务上实现和人类相仿,甚至超人的表现。然而,这种成功是需要代价的。也就是说,为了创建大型数据集,我们往往要耗费大量的人力、财力和风险在数据标记上。因此对于许多现实问题,它们没有足够的资源来构建足够大的数据集,这就限制了深度学习的广泛应用。

解决这一问题的一种可行方法是使用半监督学习框架。和需要标记数据的监督学习算法相比,SSL算法能从未标记数据中提取数据结构,进而提高网络性能,这降低了操作门槛。而最近的一些研究结果也表明,在某些情况下,即便给定数据集中的大部分数据都遗失了标签,SSL算法也能接近纯监督学习的表现。

面对这些成功,一个自然而然的问题就是:SSL算法能否被用于现实世界的任务?在本文中,我们认为答案是否定的。具体而言,当我们选择一个大型数据集,然后去除其中的大量标签对比SSL算法和纯监督学习算法时,我们其实忽略了算法本身的各种常见特征。

下面是我们的一些发现:

如果两个神经网络在调参上花费相同资源,那么用SSL和只用标记数据带来的性能差异会小于以往论文的实验结论。

不使用未标记数据的、高度正则化的大型分类器往往具有强大性能,这证明了在同一底层模型上评估不同SSL算法的重要性。

如果先在不同的标记数据集上预训练模型,之后再在指定数据集上训练模型,它的最终性能会比用SSL算法高不少。

如果未标记数据中包含与标记数据不同的类分布,使用SSL算法的神经网络的性能会急剧下降。

事实上,小的验证集会妨碍不同方法、模型和超参数设置之间的可靠比较。

评估方法改进

科研人员评估SSL算法一般遵循以下流程:首先,选择一个用于监督学习的通用数据集,删去其中大多数数据的标签;其次,把保留标签的数据制作成小型数据集D,把未标记数据整理成数据集DUL;最后,用半监督学习训练一些模型,在未经修改的测试集上检验它们的性能。

但下面是现有方法的缺陷及其改进:

P.1 一个共享的实现

现有SSL算法比较没有考虑底层模型的一致性,这是不科学的。在某些情况下,同样是简单的13层CNN,不同实现会导致一些细节,比如参数初始化、数据预处理、数据增强、正则化等,发生改变。不同模型的训练过程(优化、几个epoch、学习率)也是不一样的。因此,如果不用同一个底层实现,算法对比不够严谨。

P.2 高质量监督学习基线

SSL的目标是基于标记数据集D和未标记数据集DUL,使模型的性能比单独用D训练出来的完全相同的基础模型更好。虽然道理很简单,但不同论文对于这个基线的介绍却存在出入,比如去年Laine&Aila和Tarvainen&Valpola在论文中用了一样的基线,虽然模型是一样的,但它们的准确率差竟然高达15%。

为了避免这种情况,我们参考为SSL调参,重新调整了基线模型,确保它的高质量。

P.3 和迁移学习的对比

在实践中,如果数据量有限,通常我们会用迁移学习,把在相似大型数据集上训练好的模型拿过来,再根据手头的小数据集进行“微调”。虽然这种做法的前提是存在那么一个相似的、够大的数据集,但如果能实现,迁移学习确实能提供性能强大的、通用性好的基线,而且这类基线很少有论文提及。

P.4 考虑类分布不匹配

需要注意的是,当我们选择数据集并删去其中大多数数据的标签时,这些数据默认DUL的类分布和D的完全一致。但这不合理,想象一下,假设我们要训练一个能区分十张人脸的分类器,但每个人的图像样本非常少,这时,你可能会选择使用一个包含随机人脸图像的大型未标记数据集来进行填充,那么这个DUL中的图像就并不完全是这十个人的。

现有的SSL算法评估都忽略了这种情况,而我们明确研究了类分布相同/类分布不同数据之间的影响。

P.5 改变标记和未标记数据的数量

改变两种数据的数量这种做法并不罕见,研究人员通常喜欢通关删去不同数量的底层标记数据来改变D的大小,但到目前为止,以系统的方式改变DUL确不太常见。这可以模拟两种现实场景:一是未标记数据集非常巨大(比如用网络数十亿未标记图像提高模型分类性能),二是未标记数据集相对较小(比如医学影像数据,它们的成本很高)。

P.6 切合实际的小型验证集

人为创建的SSL数据集往往有个特征,就是验证集会比训练集大很多。比如SVHN的验证集大约有7000个标记数据,许多论文在用这个数据集做研究时,往往只从原训练集里抽取1000个标记数据,但会保留完整验证集。这就意味着验证集是训练集的7倍,而在现实任务中,数据更多的集一般是会被作为训练集的。

实验

这个实验的目的不是产生state-of-art的结果,而是通过建立一个通用框架,对各种模型性能进行严格的比较分析。此外,由于我们使用的模型架构和超参数调整方法和以前的论文很不一样,它们也没法和过去的工作直接比较,只能单独列出。

上表是实用各SSL算法的模型在验证集上的错误率,它们使用了同样的底层模型——Wide ResNet,纵坐标是监督学习和各类常用的SSL算法:Π-Model, Mean Teacher, Virtual Adversarial Training, PseudoLabeling,以及Entropy Minimization。

需要注意的是,表格上部是前人的工作,下部是本文的成果,它们不能直接对比(本文模型使用的参数是上面的一半,所以性能会差一些)。但是,透过数据我们还是可以发现:

结论1:Mean Teacher和VAT的表现总体不错。

结论2:监督学习模型和半监督学习模型之间的性能差异并没有其他论文中描述的那么大。

结论3:基于这个表格的数据,我们用迁移学习训练了一个模型,发现它在CIFAR-10验证集上的错误率是12%,这个结果比SSL算法更好。

上图是各模型在CIFAR-10上的错误率,已知标记训练集有6类图像,每类图像400个样本。其中纵坐标是错误率,横坐标是未标记数据相对标记数据的不同类分布占比,比如25%表示未标记数据集中有1/4的类是标记数据集上没有的。阴影区是五次实验标准差。

结论4:和不使用任何未标记数据相比,如果我们在未标记数据集中加入更多的额外类,模型的性能会降低。

结论5:SSL算法对标记数据/未标记数据的不同数据量很敏感。

上图是各算法模型的平均验证错误对比,使用的是10个大小不同的随机采样非重叠验证集。实线是平均值,阴影是标准差,训练集是包含1000个标记数据的SVHN。图中的纵坐标是错误率,横坐标是验证集相对于训练集的大小,比如10%表示验证集只包含100个标记数据。

结论6:10%是个合适的比例,因此对于严重依赖大型验证集做超参数调整的SSL算法,它们的实际适用性很有限,即便是交叉验证也没法带来太多改善。

总结

通过上述实验结果,我们已经证实把SSL算法用于现实实践暂时是不恰当的,那么今后该怎么评估它们呢?下面是一些建议:

在比较不同SSL算法时,使用完全相同的底层模型。模型结构的差异,甚至是细节,都会对最终结果产生很大影响。

仔细调整基线的在使用监督学习和迁移学习时的准确率,SSL的目标应该是明显优于完全监督学习。

呈现数据中混有其他类数据时模型的性能变化,因为这是现实场景中很常见的现象。

报告性能时,测试不同标记数据/未标记数据量下的情况。理想情况下,即便标记数据非常少,SSL算法也能从未标记数据中提取到有用信息。因此我们建议将SVHN与SVHN-Extra相结合,以测试算法在大型未标记数据中的性能。

不要在不切实际的大型验证集上过度调参。

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

    关注

    42

    文章

    4572

    浏览量

    98718
  • 算法
    +关注

    关注

    23

    文章

    4454

    浏览量

    90747
  • SSL
    SSL
    +关注

    关注

    0

    文章

    119

    浏览量

    25488

原文标题:NIPS 2018入选论文:对深度半监督学习算法的现实评价

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【阿里云大学免费精品课】机器学习入门:概念原理及常用算法

    :与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类等。•监督学习:介于监督学习
    发表于 06-23 13:51

    深非监督学习-Hierarchical clustering 层次聚类python的实现

    【深度学习基础-17】非监督学习-Hierarchical clustering 层次聚类-python实现
    发表于 04-28 10:07

    人工智能基本概念机器学习算法

    :用来训练,构建模型。验证集:在模型训练阶段测试模型的好坏。测试集:等模型训练好后,评估模型的好坏。学习方式:监督学习:训练带有标签的数据集。无监督学习:训练无标签的数据集。监...
    发表于 09-06 08:21

    基于半监督学习的跌倒检测系统设计_李仲年

    基于半监督学习的跌倒检测系统设计_李仲年
    发表于 03-19 19:11 4次下载

    基于半监督学习框架的识别算法

    问题,对半监督学习中的协同训练算法进行改进,提出了一种基于多学习器协同训练模型的人体行为识别方法.这是一种基于半监督学习框架的识别算法,该方
    发表于 01-21 10:41 1次下载

    Python无监督学习的几种聚类算法包括K-Means聚类,分层聚类等详细概述

    监督学习是机器学习技术中的一类,用于发现数据中的模式。本文介绍用Python进行无监督学习的几种聚类算法,包括K-Means聚类、分层聚类、t-SNE聚类、DBSCAN聚类等。
    的头像 发表于 05-27 09:59 3w次阅读
    Python无<b class='flag-5'>监督学习</b>的几种聚类<b class='flag-5'>算法</b>包括K-Means聚类,分层聚类等详细概述

    你想要的机器学习课程笔记在这:主要讨论监督学习和无监督学习

    with experience E(一个程序从经验E中学习解决任务T进行某一任务量度P,通过P测量在T的表现而提高经验E(另一种定义:机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。) 不同类型的机器学习
    发表于 12-03 17:12 420次阅读

    如何用Python进行无监督学习

    监督学习是一种用于在数据中查找模式的机器学习技术。无监督算法给出的数据不带标记,只给出输入变量(X),没有相应的输出变量。在无监督学习中,
    的头像 发表于 01-21 17:23 3959次阅读

    机器学习算法中有监督和无监督学习的区别

    监督学习的好处之一是,它不需要监督学习必须经历的费力的数据标记过程。但是,要权衡的是,评估其性能的有效性也非常困难。相反,通过将监督学习算法的输出与测试数据的实际标签进行比较,可以很
    的头像 发表于 07-07 10:18 5373次阅读

    最基础的半监督学习

    导读 最基础的半监督学习的概念,给大家一个感性的认识。 半监督学习(SSL)是一种机器学习技术,其中任务是从一个小的带标签的数据集和相对较大的未带标签的数据中学习得到的。SSL的目标是
    的头像 发表于 11-02 16:08 2382次阅读

    监督学习最基础的3个概念

    导读 今天给大家介绍半监督学习中的3个最基础的概念:一致性正则化,熵最小化和伪标签,并介绍了两个经典的半监督学习方法。 没看一的点这里哈:半监督学习入门基础(一) 半监督学习 (SSL
    的头像 发表于 11-02 16:14 2682次阅读
    半<b class='flag-5'>监督学习</b>最基础的3个概念

    为什么半监督学习是机器学习的未来?

    为什么半监督学习是机器学习的未来。 监督学习是人工智能领域的第一种学习类型。从它的概念开始,无数的算法,从简单的逻辑回归到大规模的神经网络,
    的头像 发表于 11-27 10:42 3648次阅读

    监督学习:比监督学习做的更好

    监督学习是人工智能领域的第一种学习类型。从它的概念开始,无数的算法,从简单的逻辑回归到大规模的神经网络,都已经被研究用来提高精...
    的头像 发表于 12-08 23:32 1140次阅读

    机器学习中的无监督学习应用在哪些领域

    监督学习|机器学习| 集成学习|进化计算| 非监督学习| 半监督学习| 自监督学习| 无
    发表于 01-20 10:52 4597次阅读
    机器<b class='flag-5'>学习</b>中的无<b class='flag-5'>监督学习</b>应用在哪些领域

    监督学习的一些思考

    监督学习的流行是势在必然的。在各种主流有监督学习任务都做到很成熟之后,数据成了最重要的瓶颈。从无标注数据中学习有效信息一直是...
    发表于 01-26 18:50 1次下载
    自<b class='flag-5'>监督学习</b>的一些思考