本文将简单介绍什么是主动学习(Active Learning,AL),为什么需要主动学习,主动学习和监督学习、弱监督学习、半监督学习、无监督学习之间是什么关系。最后再简单介绍主动学习的分类。(这里介绍的主动学习是机器学习的一个子领域。)

什么是主动学习?

主动学习(Active Learning),在统计学领域有时也叫“查询学习”(query learning)、“最优实验设计”(optimal experimental design),是机器学习的一个子领域。

主动学习背后一个关键的假设:

  • 一个机器学习算法如果能够自行选择从哪些数据进行学习,通过较少的训练数据,它将表现得更好。

If the learning algorithm can choose the data from which it learns, it will perform better with less training.[1]

主动学习之所以叫主动学习,是因为算法从数据集中主动地选择一些不带标签的数据进行标注,而不是被动地选择。在每一次标注之后,模型重新或者增量地在带标签的数据上训练,然后再主动地选择不带标签数据进行标注,重复这个过程,这就是主动学习的流程。

主动学习 vs. 被动学习

被动学习(passive learning)被认为是从数据集中随机选择(randomly select)数据进行标注。

而主动学习选择要标注的样本时,有一些 criteria 进行指导,这就是主动学习和被动学习的区别。

不过被动学习似乎叫的不多,一般用 random selection 与主动学习的 criteria 比较就好。

为什么需要主动学习?

数据标注的成本高昂,迫使我们想要用更少的标注数据来获得更有效的模型,这就是主动学习产生的原因。

主动学习与监督学习、弱监督学习、半监督学习、无监督学习之间的关系

我们根据训练数据集标签的情况来划分这几者:(欢迎大佬指正)

  • 监督学习(Supervised learning)任务中,数据集的标签都是完整而精确的。
  • 无监督学习(Unsupervised learning)任务中,数据集是不含标签的。
  • 弱监督学习(Weakly-supervised learning)任务中,数据集的标签分为三种情况:(这三种情况可能同时出现)
    • 部分数据有标签,部分数据没有标签。一般有标签的数据占少数,大部分数据没有标签。(Incompelet supervison)
    • 数据都有标签,但是标签的粒度不够。例如,在图像语义分割中,细粒度的标签应该是 pixel-level 的,但给出的标签仅仅是 image-level 的,这就是标签的粒度不够。(Inexact supervison)
    • 数据都有标签,但是标签有很多错误。(Inaccurate supervison)

Fig. 1 [2] Illustration of three typical types of weak supervision.

而主动学习对应弱监督学习的第一种情况,少部分数据含标签,但是大部分数据不含标签。

主动学习和半监督学习是什么关系?两者都可以认为是弱监督学习第一种情况的处理方式,但两者也有不一样的地方,比如主动学习需要人工标注数据,而半监督学习不要。

主动学习的种类

Fig. 2 [1] Diagram illustrating the three main active learning scenarios.

根据应用场景,将主动学习划分为 3 类:

  • 第一种是“Membership query synthesis”,字面意思上很难理解,不过这种方式的 instance 是算法从整个可能的样本空间中生成的,模型从头开始生成一个 instance 然后送去 oracle 打标签。

  • 第二种是“steam-based selective sampling”,每一次我们能够从数据流得到一个 instance,然后判断其是否要送去 oracle 打标签。

  • 第三种是“pool-based sampling”,初始时,我们就有很多 unlabeled data,只需要从这些 unlabeled data 中选择数据送到 oracle 打标签。(这种情况是最常见的。)

Fig. 3 [1] Pool-based active learning.

可能会有一个疑问,主动学习中的 oracle 是什么?oracle 可以是一个专家,打标签百分之百正确;也可以是很多拥有不同专业知识的人,打标签不是百分百对,如众包。

主动学习的一个例子

Fig. 4 [1] An example of pool-based active learning.

Example from [1]:

  • (a) A toy data set of 400 instances, evenly sampled from two class Gaussians.
  • (b) A logistic regression model trained with 30 labeled instances randomly drawn from the problem domain.(accuracy:70%)
  • (c) A logistic regression model trained with 30 actively queried instances using uncertainty sampling.(accuracy:90%)

主动学习工具包 ALiPy

ALiPy (Active Learning in Python) [3] 是南京航空航天大学黄圣君老师做的一个开源的主动学习工具包,我们可以很轻松地基于该工具包开发主动学习的程序,强烈推荐。

ALiPy 主页:http://parnec.nuaa.edu.cn/huangsj/alipy/

References

[1] Burr Settles.(2009). Active Learning Literature Survey. Computer Sciences Technical Report 1648, University of Wisconsin-Madison.
[2] Zhou, Z.-H. (2018). A brief introduction to weakly supervised learning. National Science Review, 5(1), 44–53. https://doi.org/10.1093/nsr/nwx106
[3] Tang, Y.-P., Li, G.-X., & Huang, S.-J. (2019). ALiPy: Active Learning in Python, 1–5. Retrieved from http://arxiv.org/abs/1901.03802

[Active Learning] 01 A Brief Introduction to Active Learning 主动学习简介的更多相关文章

  1. Active Learning主动学习

    Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...

  2. 主动学习——active learning

    阅读目录 1. 写在前面 2. 什么是active learning? 3. active learning的基本思想 4. active learning与半监督学习的不同 5. 参考文献   1. ...

  3. 【主动学习】Variational Adversarial Active Learning

    本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...

  4. 简要介绍Active Learning(主动学习)思想框架,以及从IF(isolation forest)衍生出来的算法:FBIF(Feedback-Guided Anomaly Discovery)

    1. 引言 本文所讨论的内容为笔者对外文文献的翻译,并加入了笔者自己的理解和总结,文中涉及到的原始外文论文和相关学习链接我会放在reference里,另外,推荐读者朋友购买 Stephen Boyd的 ...

  5. Active Learning 主动学习

    Active Learning 主动学习 2015年09月30日 14:49:29 qrlhl 阅读数 21374 文章标签: 算法机器学习 更多 分类专栏: 机器学习   版权声明:本文为博主原创文 ...

  6. ML Lecture 0-1: Introduction of Machine Learning

    本博客是针对李宏毅教授在Youtube上上传的课程视频<ML Lecture 0-1: Introduction of Machine Learning>的学习笔记.在Github上也po ...

  7. Introduction to Deep Learning Algorithms

    Introduction to Deep Learning Algorithms See the following article for a recent survey of deep learn ...

  8. translation of 《deep learning》 Chapter 1 Introduction

    原文: http://www.deeplearningbook.org/contents/intro.html Inventors have long dreamed of creating mach ...

  9. A beginner’s introduction to Deep Learning

    A beginner’s introduction to Deep Learning I am Samvita from the Business Team of HyperVerge. I join ...

随机推荐

  1. DjangoUeditor项目的集成

    DjangoUeditor这个项目,出品人已经不再提供维护支持. 最近在一个使用到aliyun oss的项目里集成了一次这个东西,当然我之前在普通文件上传的北京下已经集成过很多次了. 主要修改的东西就 ...

  2. pyspider的一个诡异问题

    其Start_url两次抓取处理失败以后,其之后的所有抓取行为就不正常,似乎根本没有HTTP访问,我把该爬虫的taskdb清空,该爬虫爬取行为恢复正常.这个问题已提交pyspider官方,静待回答.

  3. Bootstrap免费模板站推荐

    第一个:http://startbootstrap.com/ 第二个:http://www.bootstrapzero.com/ 第三个:https://bootswatch.com/ 第四个:htt ...

  4. Ocelot中文文档-负载均衡

    Ocelot能通过可用的下游服务对每个ReRoute进行负载平衡. 这意味着您可以扩展您的下游服务,并且Ocelot可以有效地使用它们. 可用的负载均衡器的类型是: LeastConnection - ...

  5. Roundcube 1.2.2 - Remote Code Execution

    本文简要记述一下Roundcube 1.2.2远程代码执行漏洞的复现过程. 漏洞利用条件 Roundcube必须配置成使用PHP的mail()函数(如果没有指定SMTP,则是默认开启) PHP的mai ...

  6. DDGScreenShot--iOS 图片裁剪,切圆角,加边框,你还用cornerRadius,还有更高级的用法

    写在前面 我们肯定做过这样的需求,给一个图片切圆角, 当然我们大多采用简单粗暴的方法 myIcon.layer.cornerRadius = 16.5 myIcon.layer.masksToBoun ...

  7. Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本

    对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...

  8. 在高分屏正确显示CHM文件

    今天下了白色相簿2推,发现里面的chm格式的帮助文档显示不正确,又没法在应用程序直接设置系统分辨率托管,google了一下找到了这个方法: 新建 HKEY_LOCAL_MACHINE\ SOFTWAR ...

  9. Python_socket_UDP

    zReceiver.py import socket #使用ipv4协议,使用UDP协议传输数据 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # ...

  10. C/C++ 数据结构之算法

    数据结构中的排序算法. 排序算法的相关知识: (1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来. (2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的 ...