目录ios
本文将简单介绍什么是主动学习(Active Learning,AL),为何须要主动学习,主动学习和监督学习、弱监督学习、半监督学习、无监督学习之间是什么关系。最后再简单介绍主动学习的分类。(这里介绍的主动学习是机器学习的一个子领域。)算法
主动学习(Active Learning),在统计学领域有时也叫“查询学习”(query learning)、“最优实验设计”(optimal experimental design),是机器学习的一个子领域。oracle
主动学习背后一个关键的假设:less
If the learning algorithm can choose the data from which it learns, it will perform better with less training.[1]dom
主动学习之因此叫主动学习,是由于算法从数据集中主动地选择一些不带标签的数据进行标注,而不是被动地选择。在每一次标注以后,模型从新或者增量地在带标签的数据上训练,而后再主动地选择不带标签数据进行标注,重复这个过程,这就是主动学习的流程。机器学习
被动学习(passive learning)被认为是从数据集中随机选择(randomly select)数据进行标注。工具
而主动学习选择要标注的样本时,有一些 criteria 进行指导,这就是主动学习和被动学习的区别。学习
不过被动学习彷佛叫的很少,通常用 random selection 与主动学习的 criteria 比较就好。设计
数据标注的成本高昂,迫使咱们想要用更少的标注数据来得到更有效的模型,这就是主动学习产生的缘由。3d
咱们根据训练数据集标签的状况来划分这几者:(欢迎大佬指正)
而主动学习对应弱监督学习的第一种状况,少部分数据含标签,可是大部分数据不含标签。
主动学习和半监督学习是什么关系?二者均可以认为是弱监督学习第一种状况的处理方式,但二者也有不同的地方,好比主动学习须要人工标注数据,而半监督学习不要。
根据应用场景,将主动学习划分为 3 类:
第一种是“Membership query synthesis”,字面意思上很难理解,不过这种方式的 instance 是算法从整个可能的样本空间中生成的,模型从头开始生成一个 instance 而后送去 oracle 打标签。
第二种是“steam-based selective sampling”,每一次咱们可以从数据流获得一个 instance,而后判断其是否要送去 oracle 打标签。
第三种是“pool-based sampling”,初始时,咱们就有不少 unlabeled data,只须要从这些 unlabeled data 中选择数据送到 oracle 打标签。(这种状况是最多见的。)
可能会有一个疑问,主动学习中的 oracle 是什么?oracle 能够是一个专家,打标签百分之百正确;也能够是不少拥有不一样专业知识的人,打标签不是百分百对,如众包。
Example from [1]:
ALiPy (Active Learning in Python) [3] 是南京航空航天大学黄圣君老师作的一个开源的主动学习工具包,咱们能够很轻松地基于该工具包开发主动学习的程序,强烈推荐。
ALiPy 主页:http://parnec.nuaa.edu.cn/huangsj/alipy/。
[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