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

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

3天内不再提示

悄悄来临的半监督学习革命

jmiy_worldofai 来源:YXQ 2019-05-31 17:25 次阅读

机器学习工程师们来说,最经常遇到的状况之一就是能轻松收集到一大堆数据,但是却只有非常有限的资源做数据标注。每个遇到这种尴尬处境的人都只能冷静下来,把他们的状况总结成简洁明了的「有监督数据不多,但未标注数据有很多」,然后在查阅论文之后按图索骥找到一类看似可行的方案:半监督学习(semi-supervised learning)。

然后接下来事情就开始走样了。

听上去很美,踏上去是大坑

一直以来,半监督学习都是机器学习领域内的一个大坑,每个尝试想从里面捞到好处的工程师最终都只能对传统的、老式的数据标注增加更多的理解而已。不同的问题里可能会有不同的表现,但是最终大同小异,我们来看下面这张图:

当标注数据不多的时候,半监督学习确实可以带来一定的性能提升。但是实际使用的时候你就会发现,那些提升只能帮你把模型表现从「糟糕透了、不可接受」提高到「稍微好了那么一点、但还是没办法使用」而已。说到底,如果你的标注数据规模较小,以至于半监督学习可以起到帮助的话,那同时也说明你的分类器表现仍然在一个很差的水平,没法实际使用。

除此之外,半监督学习也需要一些额外的资源代价,而且使用了半监督学习的方法面对更多的标注数据的时候,性能增长曲线会比有监督学习更平缓;原因之一是无标注数据可能会带来偏倚(见MITPress-%20SemiSupervised%20Learning.pdf第四节)。在深度学习早期曾经流行过一种半监督学习做法,首先在未标注数据上学习一个自动编码器,然后在有标注数据上进行微调(fine-tune)。现在已经几乎没有人这么做了,因为大家通过无数的实验发现,通过自动编码器学习到的表征会影响到精细调节阶段增加的有标注数据带来的性能提升幅度,而且是起到限制作用。有趣的是,即便今天我们已经大幅度改进了生成式方法,这仍然没能让这个模式变得更好使;这很可能是因为,做出一个好的生成式和模型和做出一个好的分类器毕竟不是一回事。所以结果是,今天的工程师们做微调的时候,他们是在监督学习的基础上做微调的(即便对于语言模型也一样,学习文本其实是一种自监督学习过程) ——从实用角度讲,从其他有监督预训练模型上做迁移学习的效果比从无监督学习模型上做迁移的效果好太多了。

所以,一个一定要尝试半监督学习的机器学习工程师很可能会走上这样一条路径:

因为数据少,所以模型的表现糟透了。我们试试半监督学习吧(毕竟这还有点技术含量,标数据太枯燥了);

你看,准确率提升了吧!不过数字还是挺低的,看来我们还是得多标一些数据

标数据毕竟还是有用的,我多标好几倍数据以后半监督学习模型的表现又提升了一些。不过我有点好奇,我都标了这么多数据了,直接用监督学习会怎么样

实践证明,有这么多数据以后,监督学习还是更简单直接,效果也更好。那我们为啥不一开始就多标注点数据呢,花了那么多时间精力试了半监督学习结果还是用不上……

如果你比较幸运的话,你的问题有可能会有这样一条性能曲线:

在这种情况下,在某一个数据规模之内半监督学习的效果会好一些,确实提高了数据使用效率。但以我的经验,首先很难达到这样的状况;其次,半监督学习的提升总是不多的,学术论文里刷刷分还行,对实际应用来说影响很小,如果考虑到使用的方法的复杂性和多使用的计算资源的话,还是不如直接多标点数据的投入产出比比较好。

革命来临

不过别急,咱们这篇文章的标题不是「悄悄来临的半监督学习革命」吗?

如今有件事是微微让人兴奋的,那就是半监督学习的性能提升曲线逐渐变成了这个样子:

这就会产生真正的区别了。首先,这个曲线符合了所有人对于半监督学习的期待:更多的数据就有更好的性能,而且对于同样的有标注数据,性能总是比监督学习方法更好;即便是数据量足够大、监督学习已经能够发挥出好的效果的范围内,半监督学习也仍然有提升。而且,为了达到这些提升所需要额外付出的计算复杂度和资源也已经很小了。这个「魔法般的区域」的起始点更低,而且不受到数据规模限制。

所以发生了什么呢?很多方面都有了新的改进,比如很多很聪明的方法为数据做自我标注,以及新的表示损失的方法,让损失和数据中的噪声以及自我标注可能带来的偏倚之间相互协调。这两篇论文是近期改进的典型例子,而且也能引领你浏览更多相关的论文:

MixMatch: A Holistic Approach to Semi-Supervised Learning

MixMatch:一种半监督学习的整体性方法

论文摘要:半监督学习方法的提出是为了更好地利用未标注的数据,减轻对于大规模标注数据集的依赖;如今也证明了这是一种强有力的学习范式。在这篇论文中,作者们把当前不同任务中的做法为半监督学习做了统一,得到了一种新的算法,MixMatch,它的工作方式是通过 MixUp 猜测数据扩增方法产生的无标签样本的低熵标签,并把无标签数据和有标签数据混合起来。作者们通过实验表明 MixMatch 在多种不同的数据集、多种不同的有标签数据规模中都能以很大幅度领先此前的所有方法。比如,在 CIFAR 数据集上、只有 250 个标签的情况下,作者们把错误率降低到了之前方法的 1/4,在 STL-10 数据集上也降低到了之前方法的一半。作者们也展示了 MixMatch 可以在差分隐私的使用目的下,在准确率和隐私保护之间取得好得多的平衡。最后,作者们进行了对照实验,分析了 MixMatch 方法中的哪些组件最为关键。

Unsupervised Data Augmentation

无监督数据扩增

论文摘要:面对渴求大量数据的深度学习,数据扩增方法可以缓和一部分需求,但数据扩增方法往往只应用在有监督学习设定中,带来的提升也较为有限。在这篇论文中,作者们提出了一种在半监督学习设定中,把数据扩增方法运用在未标注数据上的新方法。他们的方法,无监督数据扩增 UDA,会鼓励模型面对未标注数据和扩增过的未标注数据时产生一致的预测。与此前使用高斯噪声和 dropout 噪声的方法不同,UDA 有一些小的调整,它借助目前最先进的数据扩增方法产生了难度更高、更真实的噪声。这些小调整让 UDA 在六种语言任务、三种视觉任务中都带来了显著的表现提升,即便使用到的有标注数据集非常小。比如,在 IMDb 数据集的分类测试中,UDA 只使用 20 个标签就得到了比此前最好的方法在 25,000 个有标签数据上训练更好的结果。在标准的半监督学习测试(CIFAR-10,4000 个标签;以及 SVHN,1000 个标签)中,UDA 击败了此前所有的方法,而且把错误率降低了至少 30%。UDA 在大规模数据集上也有好的表现,比如在 ImageNet 上,只需要额外增加 130 万张无标签图像,相比此前的方法,UDA 也可以继续提升首位和前五位命中率。

在半监督学习的整个世界得到革新之后,大家也开始意识到半监督学习可能在机器学习的隐私问题方面可能能够大有作为。比如使用在 PATE 中(有监督数据是需要保护的隐私数据,带有强隐私保护能力的学生模型只能通过无标签数据训练)。有能力保护隐私的知识蒸馏方法也是联邦学习的关键组成部分之一,而联邦学习的效果就是高效的分布式学习,它不需要模型接触全部的用户数据,而且带有数学上强有力的隐私保护。

如今,在真实使用场景中考虑半监督学习已经重新成为了一件很有价值的事情。以前的研究者们对半监督学习的不屑态度如今要受到挑战,这也说明了这个领域内技术水平发展之快。这些趋势出现确实还没有多久,我们也还需要观察这些方法能够经得住时间的考验。但是,如果常用的机器学习工具和范式能从这些新进展中获得大的进步的话,这无疑是十分诱人的。

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

    关注

    66

    文章

    8112

    浏览量

    130545

原文标题:从聊胜于无到可堪大用,半监督学习革命悄悄来临

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

收藏 人收藏

    评论

    相关推荐

    机器学习基础知识全攻略

    监督学习通常是利用带有专家标注的标签的训练数据,学习一个从输入变量X到输入变量Y的函数映射。Y = f (X),训练数据通常是(n×x,y)的形式,其中n代表训练样本的大小,x和y分别是变量X和Y的样本值。
    发表于 02-25 13:53 90次阅读
    机器<b class='flag-5'>学习</b>基础知识全攻略

    OpenAI推出Sora:AI领域的革命性突破

    大模型的核心技术是自然语言处理(NLP)和深度学习。具体而言,它基于Transformer架构,使用了大规模无监督学习方法,例如自回归语言建模和掩码语言建模,来训练一个庞大的神经网络模型。
    发表于 02-21 16:36 771次阅读
    OpenAI推出Sora:AI领域的<b class='flag-5'>革命</b>性突破

    基于transformer和自监督学习的路面异常检测方法分享

    铺设异常检测可以帮助减少数据存储、传输、标记和处理的压力。本论文描述了一种基于Transformer和自监督学习的新方法,有助于定位异常区域。
    的头像 发表于 12-06 14:57 790次阅读
    基于transformer和自<b class='flag-5'>监督学习</b>的路面异常检测方法分享

    什么是强化学习

    强化学习是机器学习的方式之一,它与监督学习、无监督学习并列,是三种机器学习训练方法之一。 在围棋上击败世界第一李世石的 AlphaGo、在《
    的头像 发表于 10-30 11:36 1620次阅读
    什么是强化<b class='flag-5'>学习</b>

    深度学习的由来 深度学习的经典算法有哪些

    深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的学习
    发表于 10-09 10:23 354次阅读
    深度<b class='flag-5'>学习</b>的由来 深度<b class='flag-5'>学习</b>的经典算法有哪些

    机器学习模型类型分类

     机器学习按照模型类型分为监督学习模型、无监督学习模型两大类。 1. 有监督学习监督学习通常是利用带有专家标注的标签的训练数据,
    的头像 发表于 09-05 11:45 1335次阅读
    机器<b class='flag-5'>学习</b>模型类型分类

    适用于任意数据模态的自监督学习数据增强技术

    本文提出了一种适用于任意数据模态的自监督学习数据增强技术。   自监督学习算法在自然语言处理、计算机视觉等领域取得了重大进展。这些自监督学习算法尽管在概念上是通用的,但是在具体操作上是基于特定的数据
    的头像 发表于 09-04 10:07 783次阅读
    适用于任意数据模态的自<b class='flag-5'>监督学习</b>数据增强技术

    人工智能的关键技术包括哪些

    机器学习是人工智能的一个重要分支,它通过计算的手段、学习经验(也可以说是利用经验)来改善系统的性能。它包括:有监督学习、无监督学习和强化学习
    发表于 08-28 12:53 1109次阅读
    人工智能的关键技术包括哪些

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    有许多不同的类型和应用。根据机器学习的任务类型,可以将其分为几种不同的算法类型。本文将介绍机器学习的算法类型以及分类算法和预测算法。 机器学习的算法类型 1. 监督学习算法 在
    的头像 发表于 08-17 16:30 1388次阅读

    深度学习框架和深度学习算法教程

    了基于神经网络的机器学习方法。 深度学习算法可以分为两大类:监督学习和无监督学习监督学习的基本任务是训练模型去
    的头像 发表于 08-17 16:11 709次阅读

    人工智能技术包括哪些方面

    机器学习通常分为监督学习和无监督学习监督学习通过在计算机上显示标记的数据集进行训练,使其可以预测未来的输入。无监督学习则是一种不需要标记
    的头像 发表于 08-14 15:06 1253次阅读

    人工智能ai是什么

    在人工智能的发展中,最重要的是机器学习(Machine Learning),这是一种人工智能的实现方式,通过对大量数据进行分析和学习,让系统自己找到规律和特征,从而达到自主智能化的目的。在机器学习中,主要有三种方式,分别是
    的头像 发表于 08-14 14:20 2844次阅读

    人工智能有哪些算法

    监督学习算法主要用于聚类和关联规则挖掘。聚类问题是指将数据集合划分成相似的组,而关联规则挖掘问题是指发现数据集合中经常一起出现的数据项。常见的无监督学习算法包括K-means、谱聚类、Apriori等。
    的头像 发表于 08-14 13:51 3084次阅读

    最新3D表征自监督学习+对比学习:FAC

    第二个是我们防止 3D 片段/对象之间的过度判别,并通过 Siamese 对应网络中的自适应特征学习鼓励片段级别的前景到背景的区别,该网络有效地自适应地学习点云视图内和点云视图之间的特征相关性。
    的头像 发表于 05-17 09:28 562次阅读
    最新3D表征自<b class='flag-5'>监督学习</b>+对比<b class='flag-5'>学习</b>:FAC

    机器学习步骤详解,一文了解全过程

    调整,使其生成正确的输出。在其他情况下,则实行无监督学习,由系统负责梳理数据来发现以前未知的模式。大多数机器学习模型都是遵循这两种范式(监督学习与无监督学习)。
    的头像 发表于 05-16 09:55 4135次阅读
    机器<b class='flag-5'>学习</b>步骤详解,一文了解全过程