text: 主动学习入门篇:什么是主动学习
  有哪些具体应用
  有哪些具体应用 1356
  在大数据和算力的助力下，深度学习掀起了一波浪潮，在许多领域取得了显著的成绩。
  以监督学习为主的深度学习方法，往往期望能够拥有大量的标注样本进行训练，模型能够学到更多有价值的知识(如下左图展示了3组常见的图像分类数据集，拥有上万的标注样本)。
  然而，实际应用场景的标注样本严重稀缺。
  在庞大而复杂的淘系电商场景中，类似的需求比比皆是:例如，咸鱼&躺平和洋淘等社区内容的治理，拍立淘的以图搜图，服饰分类(例如，iFashion)等场景都存在标注样本严重稀缺的问题。
  综上，在实际应用场景中，如何“在模型达到目标性能的前提下，尽可能地减少标注成本”是一项亟需解决的挑战
  主动学习作为机器学习的一个子领域，旨在以尽可能少的标注样本达到模型的目标性能，广泛应用于实际需求中。
  主动学习是什么
  Burr Settles 的文章《Active Learning Literature Survey》详细地介绍了主动学习:“主动学习是机器学习的一个子领域，在统计学领域也叫查询学习或最优实验设计”。
  主动学习方法尝试解决样本的标注瓶颈，通过主动优先选择最有价值的未标注样本进行标注，以尽可能少的标注样本达到模型的预期性能。
  主动学习的基本流程
  如下图所示，主动学习方法是一个迭代式的交互训练过程，主要由五个核心部分组成，包括: 未标注样本池(unlabeled pool，记为U)、筛选策略(select queries，记为Q)、标注者(human annotator，记为S)，标注数据集(labeled training set，记为L)，目标模型(machine learning model，记为G)。
  主动学习将上述五个部分组合到同一个流程中，并通过如下图所示的顺序，以不断迭代的训练方式更新模型性能、未标注样本池和标注数据集，直到目标模型达到预设的性能或者不再提供标注数据为止。
  其中，在每次迭代过程中，已标注样本的数量不断增加，模型的性能也随之提升(理想情况)。
  在实际应用中，应尽可能保证标注者的准确率，缓解模型在训练初期学偏(此处特指错误标注的样本导致)的情况。
  主动学习和被动学习
  如下图(a)所示，红色实线表示理想情况下模型性能随着训练标注样本数量的增多而无限地提升。
  实际情况下往往是如下图(b)的红色实线所示，模型的性能不是随着标注数据量的增多而无限地提升。
  此外，每个模型都会有与之对应的瓶颈性能(peak performance)，研究者通过增加训练数据以及调参使之不断逼近瓶颈性能。
  主动学习核心解决的问题正是如何使用尽可能少的标注数据达到模型的瓶颈性能，从而减少不必要的标注成本。
  如下图(b)的蓝色虚线所示，主动学习根据合适的策略筛选出最具有价值的样本优先标注并给模型训练，从而以更少的标注样本达到模型的瓶颈性能。
  主动学习和半监督学习
  在机器学习领域中，根据是否需要样本的标签信息可分为 “监督学习” 和 “无监督学习” 。
  此外，同时利用未标注样本和标注样本进行机器学习的算法可进一步归纳为三类: 半监督学习 、 直推式学习 和 主动学习 。
  文献简要介绍了主动学习与半监督学习的异同点: “半监督学习和主动学习都是从未标记样例中挑选部分价值量高的样例标注后补充到已标记样例集中来提高分类器精度，降低领域专家的工作量。
  但二者的学习方式不同:半监督学习一般不需要人工参与，是通过具有一定分类精度的基准分类器实现对未标注样例的自动标注; 而主动学习有别于半监督学习的特点之一就是需要将挑选出的高价值样例进行人工准确标注。
  半监督学习通过用计算机进行自动或半自动标注代替人工标注，虽然有效降低了标注代价，但其标注结果依赖于用部分已标注样例训练出的基准分类器的分类精度，因此并不能保证标注结果完全正确。
  相比而言，主动学习挑选的样本是人工标注，尽可能引入最少的错误类标 。
  值得一提的是，目前已有许多研究者尝试将主动学习和半监督学习进行结合，并取得了不错的效果(本文暂不详细展开介绍，留给下一篇章)。
  样本的筛选策略直接关系到模型能够节约标注成本的程度。
  2、 不确定性策略(Uncertainty Strategy，US): US 假设最靠近分类超平面的样本相对分类器具有较丰富的信息量，根据当前模型对样本的预测值筛选出最不确定的样本。
  US 包含了一些基础的衡量指标:
  最不确定指标(Least Confidence，LC)将预测概率的最大值的相反数作为样本的不确定性分数。
  边缘采样(mar.gin Sampling，MS)认为距离分类超平面越近的样本具有越高的不确定性，常与 SVM 结合并用于解决二分类任务，但在多分类任务上的表现不佳。
  多类别不确定采样(Multi-Class Level Uncertainty，MCLU) 是 MS 在多分类问题上的扩展，MCLU 选择离分类界面最远的两个样本，并将它们的距离差值作为评判标准。
  熵值最大化(Maximize Entropy，ME) 优先筛选具有更大熵值的样本，熵值可以通过计算 得到，其中 pi 表示第 i 个类别的预测值。
  样本最优次优类别(Best vs Second Best, BvSB) 主要是针对多分类问题的一种衡量指标，并且能够缓解 ME 在多分类问题上效果不佳的情况。
  BvSB 只考虑样本预测值最大的两个类别，忽略了其他预测类别的影响，从而在多分类问题上的效果更佳。
  3、委员会投票(Query by Committee，QBC): QBC是一种基于版本空间缩减的采样策略，核心思想是优先选择能够最大程度缩减版本空间的未标记样本。
  QBC 包括两个基本步骤:
  使用多个模型构成委员会;
  委员会中所有的模型依次对未标注样本进行预测并优先筛选出投票最不一致的样本进行标注。
  4、其他经典的策略: 梯度长度期望(Expected Gradient Length，EGL) 策略根据未标注样本对当前模型的影响程度优先筛选出对模型影响最大的样本;EGL 是代表性方法之一，能够应用在任意基于梯度下降方法的模型中。
  方差最小(Variance Reduction，VR)策略通过减少输出方差能够降低模型的泛化误差;Ji 等提出了一种基于图的 VR 衡量指标的主动学习方法，通过将所有未标注样本构建在同一个图中，每个样本分布在图中每个结点上。
  紧接着，通过调和高斯随机场分类器直接预测未标注样本所属的标签;在优化的过程中，通过挑选一组未标注样本进行预测并获得对应的预测类别，使得未标注样本的预测类别方差最小。
  近年来，主动学习策略在很多实际应用场景中取得显著的效果。
  但同时也存在一些亟需解决的挑战。
  因此，仅使用单一的策略尚未能最大程度地节约标注成本。
  本节将围绕本文的核心工作简要地介绍几种主动学习的扩展方法。
  如算法 2-2所示，该算法能够自然地扩展到更多的组合策略
  2、结合半监督学习(Semi-Supervised Learning)的主动学习方法:自训练(Self-training)算法作为半监督学习的一种基础方法，其核心步骤如算法2-3所示。
  3、结合生成对抗网络的主动学习方法:生成对抗网络(Generative Adversarial Networks，GAN)模型以无监督的训练方式对大量未标注样本进行训练，并通过生成器产生新的样本。
  经典的 GAN 主要包括生成器和判别器等两个核心部分，两者以互相博弈的方式进行对抗训练，直到两者达到一个动态均衡的状态。
  文献将生成器和主动学习策略进行融合并构建目标函数，通过解决优化问题控制生成器产生的样本。
  本文侧重介绍主动学习方法在保证不损失模型准确率的情况下，节约标注成本的性能，评价指标如下式所示。
  其中，SavedRate 表示主动学习方法相对于全样本训练减少的标注成本;ExpertAnnotated 表示当模型达到预定的目标性能时专家标注的样本数量;Full Samples 表示当前数据集提供的未标注样本数量，即全样本训练时所使用的标注样本数量。
  本文涉及的实验会先进行全样本训练，并分别记录最佳验证集准确率作为主动学习相关算法的目标准确率。
  例如，在某组数据集中使用 AlexNet 模型对Full Samples张标注图像进行训练，记录训练过程中最佳的验证准确率(Best accuracy)并将其作为主动学习的目标准确率(Target accuracy);随后，模型通过迭代过程不断提升性能，当达到目标准确率时，记录专家所标注的样本数量 ExpertAnnotated;此时，就可以算出SavedRate 的值，即该方法能够节约多少标注成本。
  此外，我们也会将主动学习方法与一些常见的方法进行比较，比如 RS 策略常用于基准对比实验(baseline)。
  多类分类问题在处理多类分类问题时，基于 mar.gin Sampling 的样例选择标准忽略了样例可能属于其他类别的信息，因此所选样例质量较差。
  样本中的孤立点若选择样例时能综合考虑样其代表性和不确定性，通常可避免采集到孤立点。
  文献“Active Learning by querying informative and representative examples(2010)”中提出了一种综合利用聚类信息和分类间隔的样例选择方法;文献“Active Learning using a Variational Dirichlet Processing model for pre-clustering and classification of underwater stereo imagery(2011)”提出了一种利用预聚类协助选择代表性样例的主动学习方法;文献“Dual strategy active learning(2007)”利用样例的不确定性及其先验分布密度进行样例选择以获取优质样例;文献“基于样本不确定性和代表性相结合的可控主动学习算法研究 (2009)”将样例的分布密度作为度量样例代表性的指标，结合以熵作为不确定性指标，提出了一种基于密度熵的样例选择策略，有效解决了孤立点问题给样例选择质量造成的影响。
  相比而言，将样例2补充到训练集中，对当前分类模型的训练贡献度更大。
  通过上述分析可知，主动学习中的样例选择度量主要分为2种:不确定性度量;
  差异性度量或代表性度量;
  样例的不确定性一般可通过计算其信息熵获得，样例的代表性通常可根据其是否在聚类中心判断，而样例的差异性则可通过计算余弦相似度(基于采样策略的主动学习算法研究进展，2012)或用高斯核函数(基于多特征融合的中文评论情感分类算法，2015)获得。不平衡数据集
  文献“一种新的SVM主动学习算法及其在障碍物检测中的应用(2009)”提出 KSVMactive 主动学习算法; 文献“基于主动学习的加权支持向量机的分类(2009)”提出了改进的加权支持向量机模型;文献“基于专家委员会的主动学习算法研究(2010)”提出了基于SVM超平面位置校正的主动学习算法。
  本节将围绕如下要点对主动学习方法的研究现状展开讨论，包括:
  基于未标注样本池的主动学习策略;
  批量 式主动学习方法，侧重于组合式策略以及引入聚类算法的主动学习方法;
  半监督主动学习方法;
  结合生成对抗网络的主动学习方法。
  此外，主动学习方法在近几年的进展不仅局限于上述归类的方法，本节将其总结在“其他主流的主动学习方法”(本文涉及的参考文献，都可以通过文末的参考文献提供的链接中获取)。
  主动学习方法概述
  主动学习作为机器学习的一个子领域，核心思想是通过一些启发式策略找到相对最具有“价值”的训练样本，使得模型能够以尽可能少的标注样本达到甚至超过预期的效果。基于未标注样本池的主动学习方法
  样本筛选策略的质量直接影响到基于未标注样本池的主动学习方法的效果。批量式主动学习(BatchModeActiveLearning，BMAL)方法
  目前，大多数主动学习方法存在一个共同的问题:串行地筛选样本，即每次迭代选择一个样本进行标注，这种方式非常低效且无法满足大多数实际需求。
  我们尝试将卷积自编码聚类算法应用到BMAL中，通过将特征提取和聚类算法以端到端的形式整合到同一个模型里(本文暂不展开介绍)。半监督主动学习方法
  半监督学习能够在少量标注成本的情况下训练模型，通过挑选出预测结果较明确的样本并由模型直接给标签，但是容易产生噪声标签。结合生成对抗网络的主动学习方法
  GANs对提升主动学习方法的样本筛选效率具有重要的意义。其他主流的主动学习方法
  Huang等提出一种针对深度神经网络的主动学习方法，能够用更少的标记样本将预训练好的深度模型迁移到不同的任务上，从而降低深度神经网络的学习代价。NAS + Active Learning
  最后，值得一提的是，考虑到上述归纳的主动学习方法中，任务模型是根据先验知识从现成的模型中筛选，即模型的网络结构是固定的。
  存在如下缺陷:
  很多领域没有现成的模型可用，例如医疗图像领域;
  在前期的迭代过程中，标注样本量较少，固定网络结构(通常会比较复杂一点)的模型可能会陷入过拟合。
  如下图所示，Geifman 等人首次尝试将NAS应用到主动学习方法中，使得模型的网络结构能够自适应新增的标注数据。
  实验结果表明，加入NAS后的主动学习方法的效率显著地优于固定网络结构的主动学习方法。
  如下图所示，文献《Active Learning Literature Survey》提供了一个基于 pool-based的主动学习案例。
  其中，数据集(toy data)是从高斯分布产生的400个样本，任务是2分类问题(每个类有200个样本)，如(a)图所示将这些数据映射在2D特征空间上;图(b)使用了逻辑回归模型，通过训练随机选择的30个标注样本，得到70%的验证精度，蓝色线表示决策边界(decision boundary);图(c)同样使用逻辑回归模型，但训练的30个标注样本是通过主动学习策略(uncertain strategy)选择而来，达到90%的验证精度。
  这个简单的案例体现了引入主动学习策略所带来的效果，使用30个标注样本能够提升20%的精度。
  值得注意的是，上述2分类的样本分别200个，样本数据非常平衡。
  但是在实际应用中，分类样本数据比例往往不能达到1:1，相关领域的研究者正在尝试解决这类问题。
  如算法2-1所示给出了“基于为标注样本池的主动学习方法”，本文也在第一部分详细地介绍了主动学习的基本流程，此处不再赘述。
  本文分享的实践部分，按照算法2-1分别对MNIST、Cifar-10和Dog-Cat三个数据集进行实验(分类模型使用了AlexNet，深度学习框架使用了PyTorch)。
  如下表所示，在MNIST数据集的实验中(train_num=55000, val_num = 10000):
  使用主动学习的不确定性策略(Uncertainty Strategy)，只需要5000张标注样本，在相同的1万个验证集得到的准确率就达到99.14%。
  此外，将训练好的模型对剩余的50000(55000-5000)张样本进行预测，得到99.70% 的效果。
  由此可见，仅仅使用不确定性策略在MNIST数据集上，就能够显著地减少大量的标注成本。
  值得注意的是，表中所示的三组图像分类数据集acc_left_active_samples 的准确率都很高。
  这部分样本表示未被主动学习策略筛选中的样本，即当前模型已经具备识别这部分样本的能力。
  因此，模型在训练数据集的准确率达到 99.4% 时，使用当前模型对 acc_left_active_samples 这部分样本进行预测的精度也同样在 99.378% 左右，甚至更高。