精华内容
下载资源
问答
  • 机器学习中的主动学习(Active Learning)
    2020-08-25 11:13:42

    最近在做主动学习相关的东西,随着深入了解和学习对于某些东西有一些模糊,先将所见所感整理如下,如有不正确之处希望大佬能够指正:

    1.主动学习

    1.1关键问题

    对于监督学习模型,足够多的已标注样例是获得高精度分类器的前提条件,随着传感器技术的迅速发展,数据采集变得越来越容易,同时也导致位置样例在总样例中占比较大,而人工标注位置样例成本昂贵。另外,过多的低质量训练样例反而会降低分类器的鲁棒性,甚至导致“过学习”问题。因此,需要控制训练样例集的数量和质量。
    如何高效地选出高分类贡献度的无类标样例进行标注并补充到已有训练集中逐步提高分类器精度与鲁棒性是主动学习亟待解决的关键问题。

    1.2定义

    目前主动学习已经成为机器学习、模式识别和数据挖掘研究领域中最前瞻和热点的研究方向之一。
    文章《Active Learning Literature Survey》阐述主动学习是机器学习的一个子领域,在统计学领域也叫做查询学习、最优实验设计。关键的假设如果机器可以自己选择学习的样本,它可以使用较少的训练取得更好的效果。
    如何利用为标注样例,从中挑选出对训练贡献度高的样例,标注后补充到训练集中来提升分类器性能是机器学习研究方向之一。
    主动学习的主要目标是在保证分类精度不降低的前提下有效地发现训练数据集中高信息量的样本,是训练的分类器在较低的标注下高效地训练模型。
    主动学习的研究多数情况下集中在两个地方:选择策略和查询策略。选择策略指导模型从哪里选择为标注样本,查询策略指导模型如何确定未标注样本是否需要被标注。
    主动学习算法一般包含2个重要模块:学习模块和选择模块,学习模块本质上就是训练分类器的过程,即通过示教学习主键提高分类器的分类精度与鲁棒性;而选择模块的终极目标是生成高质量的训练样例集,以提高样例集的代表性和广泛性。

    1.3步骤

    主动学习的模型可以用A=(C,L,S,Q,U)表示,其中C表示分类器(1个或多个),L表示带标注的样本集,S表示督导者,可以对未标注样本进行标注,Q表示当前所使用的查询策略,U表示为标注的样本集。
    (1)选取合适的分类器(网络模型)记为current_model、主动选择策略、数据划分为train_sample(带有标注的样本,用于训练模型)、validation_sample(带标注的样本,用于验证当前模型的性能)、active_sample(未标注的数据集,对应于U币labeled pool);
    (2)初始化:随机初始化或者通过迁移学习(source domain)初始化;如果有target domain的标注样本,就通过这些表示标注样本对模型进行训练;
    (3)使用当前模型current_model对active_sample中的样本进行逐一预测(预测不需要标签),得到每个样本的预测结果。此时可以选择Uncertainty Strategy衡量样本的标注价值,预测结果越接近0.5的样本表示当前模型对于该样本具有较高的不确定性,即样本需要进行标注的价值越高。
    (4)专家对选择的样本进行标注,并将标注后的样本放至train_sample目录下。
    (5)使用当前所有标注样本train_sample对于当前模型current_model进行fine_tuning,更新current_model;
    (6)使用当前current_model对validation_sample进行验证,如果当前模型的性能得到目标或者已不能再继续标注新的样本(没有专家或者没有钱),则结束迭代过程。否则,循环执行步骤(3)。
    整个过程如下图所示。
    在这里插入图片描述

    2.应用场景

    大多数人将其分为以下主要的三种,即Membership query synthesis、Stream_based selective sampling、Pool_based sampling,但有的人将其分为四种,多了一种Query synthesis。
    在这里插入图片描述

    2.1Membership Query Synthesis

    从字面上无法理解,不过这正方式的实例是算法从整个可能的样本空间中生成的,模型从头开始生成一个实例然后送回oracle打标签。

    2.2Stream_based Selective Sampling

    基于流的策略一次从未标注样例池中取出一个样例输入到选择模块,若满足预设的选中条件则对其进行准确的人工标注,反之直接舍弃。该学习过程需要处理所有未标记样例,查询成本高昂。另外,由于基于流的样例选择策略需要预设一个样例标注条件,但该条件往往需要根据不同的任务适当调整,因此很难将其作为一种通用方法普遍使用。

    2.3Pool_based Sampling

    基于池的方法每次从系统维护的未标注样例池中按照预设的选择规则选取一个样例交给基准分类器进行识别,当基准分类器对其识别出错误时进行人工标注。相较基于流的方法,基于池的方法每次都可选出当前样例池中对分类贡献最高的样例,这即降低了查询样例成本,也降低了标注代价,这使得基于池的样例选择策略广泛使用。基于池的样例选择标准主要包括:不确定性标准、版本空间缩减标注、泛化误差缩减标注等。

    3.查询策略

    查询策略也叫做查询函数,以往的方法大概分为这两类:一类方法,倾向于选择最有信息的样本,例如,我去叫你最不会的东西应该是对你最有帮助的;另一类方法,是倾向选择最优代表性的样本,希望选择的样本涵盖数据整体分布的信息。
    按照获取优质样例工作方式的不同可将样例选择分为基于流(Stream_based)和基于池(Pool_based)的策略。
    基于池的样例选择策略细分为不确定性(Uncertainty)、版本空间缩减标准和泛化误差缩减标准等。

    4.主动学习算法形式

    4.1基于委员会的启发式方法(QBC)

    选择一定数量的分类模型,构成分类委员会。利用初始训练集训练委员会中的每个模型,并将训练完成的模型用于分类未标记样本池中的样本。该方法选择所有模型分类结果中最不一致的样本。

    4.2基于边缘的启发式方法(MS)

    4.3基于后验概率的启发式方法(pp)

    5.半监督学习与主动学习

    两者都是从未标记样例中挑选部分价值量高的样例标注后补充到已标记样例集中来跳高分类器中精度,降低领域专家的工作量,但两者的学习方式不同。
    (1)半监督学习一般不需要人工参与,是通过具有一定分类精度的基准分类器实现对未标注样例的自动标注;而主动学习需要将挑选出的高价值样例进行人工准确标注。
    (2)半监督学习通过用计算机进行自动或半自动标注代替人工标注,虽然有效降低了标注代价,但其标注结果依赖于用部分已经标注样例训练出的基准分类器的分类精度,因此并不能保证标注结果完全正确。

    更多相关内容
  • 主动学习系列博文: 【Active Learning - 00】主动学习重要资源总结、分享(提供源码的论文、一些AL相关的研究者):https://blog.csdn.net/Houchaoqun_XMU/article/details/85245714 【Active Learning - 01】...

    主动学习系列博文:

    【Active Learning - 00】主动学习重要资源总结、分享(提供源码的论文、一些AL相关的研究者):https://blog.csdn.net/Houchaoqun_XMU/article/details/85245714

    【Active Learning - 01】深入学习“主动学习”:如何显著地减少标注代价:https://blog.csdn.net/Houchaoqun_XMU/article/details/80146710

    【Active Learning - 02】Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally:https://blog.csdn.net/Houchaoqun_XMU/article/details/78874834

    【Active Learning - 03】Adaptive Active Learning for Image Classification:https://blog.csdn.net/Houchaoqun_XMU/article/details/89553144

    【Active Learning - 04】Generative Adversarial Active Learning:https://blog.csdn.net/Houchaoqun_XMU/article/details/89631986

    【Active Learning - 05】Adversarial Sampling for Active Learning:https://blog.csdn.net/Houchaoqun_XMU/article/details/89736607

    【Active Learning - 06】面向图像分类任务的主动学习系统(理论篇):https://blog.csdn.net/Houchaoqun_XMU/article/details/89717028

    【Active Learning - 07】面向图像分类任务的主动学习系统(实践篇 - 展示):https://blog.csdn.net/Houchaoqun_XMU/article/details/89955561

    【Active Learning - 08】主动学习(Active Learning)资料汇总与分享:https://blog.csdn.net/Houchaoqun_XMU/article/details/96210160

    【Active Learning - 09】主动学习策略研究及其在图像分类中的应用:研究背景与研究意义:https://blog.csdn.net/Houchaoqun_XMU/article/details/100177750

    【Active Learning - 10】图像分类技术和主动学习方法概述:https://blog.csdn.net/Houchaoqun_XMU/article/details/101126055

    【Active Learning - 11】一种噪声鲁棒的半监督主动学习框架:https://blog.csdn.net/Houchaoqun_XMU/article/details/102417465

    【Active Learning - 12】一种基于生成对抗网络的二阶段主动学习方法:https://blog.csdn.net/Houchaoqun_XMU/article/details/103093810

    【Active Learning - 13】总结与展望 & 参考文献的整理与分享(The End...):https://blog.csdn.net/Houchaoqun_XMU/article/details/103094113

     


    写在前面

    这篇博文很早之前就整理好啦,一直想继续完善再发布。但接下来一年的时间,估计会忙于各种事情,毕竟下半年就研三了。再者,最近在阿里实习,因某个业务场景需人工标注数据,借此机会尝试着做了主动学习的模拟实验,取得不错的效果,并把一些相关的理论知识和实验内容发表到阿里的内网 ATA 上,获得了不少赞赏(感谢)。因此,最近也在考虑是不是可以把一些内容也分享到 CSDN 上,也想着有机会的话能够跟一些感兴趣的读者合作,深入探索研究主动学习领域,争取能够带来实际的价值。

    此外,还有一个重要的原因:如果读者们觉得这个领域能够在学术界上有所价值的话,也希望能够合作哈,发个论文,嘿嘿个人感觉,能够从如下两个方面在 active learning 领域尝试组织一波突破。但由于时间和精力有限(虽然这话有点官方,但确实有很多其他事情,哈哈),希望有相关领域的大佬可以带飞,毕竟现在的我对论文还是很需要的...

    • “select strategy”:目前大多数选择策略都是手工设计的,文献[5]在2017年首次提出通过学习的方式获得选择策略,克服了手工设计的选择策略跨领域泛化能力的不足。就像深度学习克服了手工设计的特征一样,通过学习的选择策略还有很长的道路要走,也还有很多机会可能争取。
    • 工业界的真实数据:下文提到的 CVPR-2017 论文中,关键点之一就是在医疗图像领域的3个数据集验证了 Active Learning 至少能够减少一半以上的标注代价。因此,如果能够巧妙的结合实际应用场景,感觉还是能够做出点成绩的(发表论文或者实际应用价值)

    说明:本文纯属根据个人学习过程中的理解进行总结,仅代表个人观点,如有问题,还望各位前辈指正...^^

    欢迎关注公众号,欢迎交流讨论~~

     

    本文修改日记(Log):博文的更新时间点

    2018.05.10:汇总目前学习的论文,并完成初版的“概述”部分;

    2018.05.14:常用于分类问题的启发式方法、部分参考文献的简短总结、主动学习算法的步骤;

    2018.05.16:主动学习算法的 Scenarios 和 Strategies;

    2018.05.17:整理 CSDN 中关于AL的一些资料;

    2018.05.21:增加杨文柱等人[21]的《主动学习算法研究进展》并将部分内容整合于博文中;

    2018.05.22:增加新章节“主动学习领域的难点汇总”;

    2018.06.30:整理于阿里ATA内网;

    2018.07.08:完善并发布于CSDN;

    2018.07.09:知乎链接 - https://zhuanlan.zhihu.com/p/39367595

    2019.04.22:欢迎加微信讨论哈(https://blog.csdn.net/Houchaoqun_XMU/article/details/87993906

    (本文篇幅较长,可以结合博客左侧导航的“目录”阅读感兴趣的内容;文中出现[index]表示Reference文献的索引号)

    =============================

     

    概述(Abstract)

    《Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally》这是一篇发表在 CVPR-2017 的文章,我根据这篇论文详细的整理了相关的博文,也正是这篇论文让我想进一步研究“主动学习”。这篇文章提出的方法主要想解决深度学习应用中的一个重要问题:如何使用尽可能少的标注数据集训练一个模型,这个模型的性能可以达到一个由大量的标注数据集按照普通方法(随机选择训练数据)训练得到的模型的性能。如下图所示(之前在实验室分享时做的PPT),标注数据是一个很棘手的问题特别是在生物医疗领域:1)需要具有相关专业知识的医生;2)成本很高;3)周期较长。那么,如果能用少量的标注数据去训练一个效果好的分类器,将是一个很有意义的工作。这篇文章提出的方法也是想解决这个问题,并在三种不同的生物医疗数据上做测试,证明了该方法的至少能够减少一半的标注代价。这篇论文的几个关键词:Active Learning + Transfer Learning、Data Augmentation、Majority Selection、Continuously Fine-Tuning。此外,我还找到了这篇论文作者的博客个人主页,一位90后大佬。

    随后,我找了几个分类任务相关的数据集进行实验,包括:1)MNIST;2)Cifar-10;3)Dog-Cat from Kaggle 等,使用PyTorch框架、AlexNet网络结构,算法流程如下所示(下文也会根据图示介绍主动学习算法的大体流程):

    实验步骤:以cifar10为例,10分类  
    1)制作数据:active_samples=50000,val_samples=10000;train_samples=0;  
    2)初始化 alexnet 模型,随机权重得到最初的模型,记为 cifar10_alexnet_imagenet_init.7t;num_train_samples=0;  
    3)分别对 active_samples 目录下的 50000 - num_train_samples 张数据进行预测,得到10个类别对应的10个概率值;  
    4)重点关注每个样本预测结果的最大概率值:p_pred_max。我们初步认为 p_pred_max>0.5 的情况表示当前模型对该样本有个确定的分类结果(此处分类结果的正确与否不重要);反之,当前模型对该样本的判断结果模棱两可,标记为hard sample;比如:模型进行第一次预测,得到10个概率值,取其最大的概率 p_pred_max;  
    5)对P(real lable) < p_threshold(此处的10分类任务取p_threshold=0.5)的样本进行排序,取前N个样本加入集合train_samples中;  
    6)基于当前的训练数据集 train_samples 对模型进行微调,得到新的模型记为 model_fine_tuned.7t;  
    7)重复(3)到(6)步骤,直到 active_samples 样本数为 0 或者当前模型 model_fine_tuned.7t 已经达到理想效果;  
    #### steps  
    ### step0: initialize a pretrained model based on imagent --> mnist_alexnet_imagenet_init.7t  
    ### step1: predict active_samples on current model --> get active_train_samples_path  
    ### step2: active_select_samples_to_train --> train samples added.  
    ### step3: if train_dataset_sizes>0; train it --> get a new pretrained model, named active_pretrained_cifar10.7t  
    ###             do step1, step2, step3 while(active_target_val_acc>=0.9)  
    ### step4: record number of labeled samples

    按照上述算法流程分别对 MNIST、Cifar-10 和 Dog-Cat 三个数据集做实验。实验结果表明引入active learning 不仅能够得到减少样本标注代价,还能够提升分类的准确率。如MNIST的实验(train_num=55000, val_num = 10000)中,使用AlexNet模型、PyTorch框架:1)使用全部的训练数据直接训练模型120次epoch,val_acc=98.992%;2)使用主动学习,Uncertainty Strategy(US),只需要2300张标注数据val_acc就能够达到99.04%,将剩余的55000-2300=52700张扔到训练好的模型进行预测,得到 99.70% (52543/52700) 的效果。可见对于MNIST数据集,仅仅使用US策略能够得到显著的效果。主动学习为什么还能够提升分类模型的准确率呢?文献[21]提到1个解释,“带标注的训练数据可能含有部分低质量的样本(噪声点)反而会降低模型的鲁棒性(模型过渡拟合噪声点)。因此标注训练样本要在保证质量的条件下,再增加数量”。如何高效地选出具有高分类贡献度的无类标样例进行标注并补充到已有训练集中逐步提高分类器精度与鲁棒性是主动学习亟待解决的关键问题。以上3个数据集的实验结果如下表所示:

    分别在MNIST、Cifar-10 和 Dog-Cat 三个数据集上验证 Active Learning 的效果

    MNIST 数据集:active select vs. random select

     

    上述实验结果表明:

    1)引入 active learning 后,能够在 MNIST、Cifar-10 和 Dog-Cat 等三个数据集上减少一半以上的标注代价。虽然上述实验使用的数据集较为简单,但也能够证明 Active Learning 的效果。

    2)active select 比 random select 在更少标注样本的条件下达到更高的性能,相当于下图右半部分所示的红虚线;

    3)在 active learning 的实验中还有一个环节:使用训练得到的模型对未选中的样本进行预测,acc_left_active_samples 的精度都很高(表格中未列出,但3个实验的 acc_left_active_samples 都稍优于 train_acc)。本人认为:acc_left_active_samples 表示主动选择的过程中未被选中的样本,即当前模型足以能够区分出这些样本的类别,所以不再需要使用这些样本对模型进行微调(对模型的作用相对较小,甚至没有作用)。因此,当模型在 train 数据集下的训练精度达到 99.378% 时,使用当前模型对 acc_left_active_samples 样本进行预测的精度也同样在 99.378% 左右,甚至更高。

    行文至此,试想一下应用场景:

    假如业务需求中,遇到一些场景需要人工标注数据。一般情况下,我们不知道需要多少标注数据才能得到预期的效果,所以希望获得尽可能多的标注样本。但实际上,如下图所示,模型的性能并不是随着标注数据量的增多而无线上升的,模型的性能会有对应的瓶颈,而我们关注的正是如何使用尽可能少的标注数据去达到这个瓶颈。

    因此,业务方可以先挑选一定量的数据进行标注,然后训练看看效果如何;性能不能达到预期效果的话,再增加标注样本,直到模型达到预测的效果。这个思路其实跟上述介绍的主动学习算法流程略相似,但却有实质上的区别。

    1)一般情况下,业务方挑选样本的准则是随机挑选(相当于 random select),更理想一点的就是挑选一些人为觉得比较复杂的样本;

    2)active learning 能够通过一些选择策略挑选出当前模型认为最难区分的样本给相关领域的专家进行标注;

    综上,如果某一些实际业务需要手工标注数据,并且先思考完如下几个条件后,决定是否使用 Active Learning:

    1)能够较方便的获取未标注的源数据,并且有相关领域的标注专家;

    2)对于一些较复杂的任务,需要慎重考虑是否已有相关的算法或者模型能够解决,不然花费再多的标注数据也不一定能够达到预期的效果;

    3)不同任务类型(如,分类、检测、NLP等等),想好要用什么样的指标衡量样本(hard sample or easy sample);

    4)Last But Not Least:算法设计完成后,还要考虑如何设计一个完整的系统。比如,你需要提供一个接口,让专家把标注完成的数据传到到模型的输入端,后续有时间我也会仔细思考下这个问题。否则,到时候可能会照成时间上的浪费,虽然减少了标注代价。

     

    就这样,我越来越发现 Active Learning 是个值得深入研究的领域(有趣,有应用价值),并着手收集关于 Active Learning 的 papers。首先去找一些关于Active Learning 算法综述类的文章[1-2],其中文献[1]是一位博生生根据其毕业论文整理而来的,全面的介绍了2007年以来 Active Learning 的发展历程,目前该论文更新至2010年,此外论文还提供了一个网址链接,在线更新相关的内容。文献[2]有中英文版本(我看的是中文版本)、篇幅较少,简要介绍了Active Learning的基本思想以及2012年关于 Active Learning 的一些最近研究成果、对Active Learning 算法进行分析,并提出和分析了有待进一步研究的问题。

    2018年3月至今,我主要围绕 Active Learning 相关的论文进一步研究,我学习的方法是:1)精读有意义的论文;2)第一遍打印在纸上并做相应的笔记(单词意思、段落大意、想法);3)第二遍看电子版的论文,并根据自己的理解做一个相应的PPT,这样的方式既能更深刻的理解,又能整理出落地文档(方便后续回忆论文或者分享论文);4)能找到代码和数据集的就赶紧进行实验,不能找到代码但有数据集的视情况而定(论文中的很多数据集都没有),没有数据集的就理解算法就行了(可见数据在机器学习领域的重要地位)。

     

    Some Tips and AL from CSDN

    Active Learning 的学习过程中也遇到很多不懂的概念,比如“Membership Query Synthesis”每个单词都懂,连起来就不知道是什么意思了,需要根据实际场景去理解其含义。因此,我经常在网上搜索一些相关的资料,看看有没有前辈已经整理过类似的问题。惊讶的是,网上关于AL的资料很少,估计是AL被冷漠了一段时间了。但是最近几年的顶会都有一些关于AL的研究和应用。此处主要介绍一些来自于CSDN的资料(给我的最大帮助就是发现了一些论文),分享给大家。

    在实习的公司遇到大量的无标签数据怎么办,利用SVM进行Active Learning主动学习”是2017年的一篇博文,简要介绍了AL+SVM的应用,内容篇幅较少,但也分析了一些细节。还有几篇是围绕周志华等人在2014年关于AL的一篇论文“Active learning by querying informative and representative examples”[17]整理而来,如:博文简要文献[17]的主旨和一些AL的基本概念。文献[18]“A Deep Active Learning Framework for Biomedical Image Segmentation”发表在MICCAI 2017上,使用“Uncertainty estimation and similarity estimation”的主动选择策略应用在医疗图像分割领域(FCN模型),作者均来自美国圣母大学,Lin Yang,YizheZhang,Jianxu Chen 均为华人,博文对论文较详细的进行解读,还有一篇博文尝试对论文进行翻译。文献[19]“Multi-Class Active Learning by Uncertainty Sampling with Diversity Maximization”发表于IJCV-2014,提出了一种新的 Active Learning 方法 USDM,利用 seed set 和 active pool内的所有样本的数据结构,来解决小 seed set 情况下 uncertainty sampling 存在的问题。而且联合 diversity ,得到 batch mode 的算法结果。在 multi-class 内准确判断样本的信息量,从而能够让选择结果更加准确(这篇博文对论文进行了详细的解读,这位博主截止目前整理了1-6篇关于AL的博文),包括对文献[20]“Multi-criteria-based active learning for named entity recognition”的解读博文,这是multi-criteria 开山鼻祖的文章(一篇长文);这位博主很用心的整理并分享了相关知识,值得称赞。文献[13]“An MRF Model-Based Active Learning Framework for the Spectral-Spatial Classification of Hyperspectral Imagery”是从一篇2015年的CSDN博文找到,结合了马尔科夫随机场和active learning (AL)

     

    Study Record: Active Learning 

    什么是主动学习(What is Active Learning):

    作者 Burr Settles[1] 的文章《Active Learning Literature Survey》很详细的介绍了“什么是主动学习”- “主动学习是机器学习(更普遍的说是人工智能)的一个子领域,在统计学领域也叫查询学习、最优实验设计”(Active learning (sometimes called “query learning” or “optimal experimental design” in the statistics literature) is a subfield of machine learning and, more generally, artificial intelligence. )。“学习模块”和“选择策略”是主动学习算法的2个基本且重要的模块。主动学习通过“选择策略”主动从未标注的样本集中挑选部分(1个或N个)样本让相关领域的专家进行标注;然后将标注过的样本增加到训练数据集给“学习模块”进行训练;当“学习模块”满足终止条件时即可结束程序,否则不断重复上述步骤获得更多的标注样本进行训练。此外,主动学习算法有个关键的假设:“The key hypothesis is that if the learning algorithm is allowed to choose the data from which it learns—to be “curious,” if you will—it will perform better with less training”

    在机器学习领域中,根据是否需要样本的标签信息可分为“监督学习”和“无监督学习”。此外,同时利用未标注样本和标注样本进行机器学习的算法可进一步归纳为3类:半监督学习、直推式学习和主动学习 。文献[21]简要介绍了主动学习与半监督学习的异同点:“半监督学习和主动学习都是从未标记样例中挑选部分价值量高的样例标注后补充到已标记样例集中来提高分类器精度,降低领域专家的工作量,但二者的学习方式不同:半监督学习一般不需要人工参与,是通过具有一定分类精度的基准分类器实现对未标注样例的自动标注;而主动学习有别于半监督学习的特点之一就是需要将挑选出的高价值样例进行人工准确标注。半监督学习通过用计算机进行自动或半自动标注代替人工标注,虽然有效降低了标注代价,但其标注结果依赖于用部分已标注样例训练出的基准分类器的分类精度,因此并不能保证标注结果完全正确。相比而言,主动学习挑选样例后是人工标注,不会引入错误类标 ”。

    在一些复杂的监督学习任务中,获取标注样本是非常困难:既耗时,而且代价昂贵。如,语音识别(Speech recoginition)、信息提取(Information extraction)、分类和聚类(Classification and filtering)等。主动学习系统尝试解决样本的标注瓶颈,通过主动选择一些最有价值的未标注样本给相关领域的专家进行标注(Active learning systems attempt to overcome the labeling bottleneck by asking queries in the form of unlabeled instances to be labeled by an oracle)。如下图所示,文献[1]展示了一个基于 pool-based(下文会详细介绍)的主动学习案例,数据集(toy data)是从高斯分布产生的400个样本,任务是2分类问题(每个类有200个样本),如(a)图所示将这些数据映射在2D特征空间上;图(b)使用了逻辑回归模型,通过训练随机选择的30个标注样本,得到70%的验证精度,蓝色线表示决策边界(decision boundary);图(c)同样使用逻辑回归模型,但训练的30个标注样本是通过主动学习(US策略)选择而来,达到90%的验证精度。这个简单的案例体现了引入主动学习算法所带来的效果,同样使用30个标注样本能够提升20%的精度。一点值得注意的是,上述2分类的样本分别200个,样本数据非常平衡。但是在现实生活中,分类样本数据比例往往不能达到1:1,也有一些相关的研究尝试去解决这类问题。

    主动学习作为一种新的机器学习方法,其主要目标是有效地发现训练数据集中高信息量的样本,并高效地训练模型。与传统的监督方法相比,主动学习具有如下优点:能够很好地处理较大的训练数据集,从中选择有辨别能力的样本点,减少训练数据的数量,减少人工标注成本[2]。

    如下图所示为常见的主动学习流程图,属于一个完整的迭代过程,模型可以表示为 A = (C, L, S, Q, U)。其中C表示分类器(1个或者多个)、L表示带标注的样本集、S表示能够标注样本的专家、Q表示当前所使用的查询策略、U表示未标注的样本集。流程图可解释为如下步骤(以分类任务为例):

    (1)选取合适的分类器(网络模型)记为 current_model 、主动选择策略、数据划分为 train_sample(带标注的样本,用于训练模型)、validation_sample(带标注的样本,用于验证当前模型的性能)、active_sample(未标注的数据集,对应于ublabeled pool);

    (2)初始化:随机初始化或者通过迁移学习(source domain)初始化;如果有target domain的标注样本,就通过这些标注样本对模型进行训练;

    (3)使用当前模型 current_model 对 active_sample 中的样本进行逐一预测(预测不需要标签),得到每个样本的预测结果。此时可以选择 Uncertainty Strategy 衡量样本的标注价值,预测结果越接近0.5的样本表示当前模型对于该样本具有较高的不确定性,即样本需要进行标注的价值越高。

    (4)专家对选择的样本进行标注,并将标注后的样本放至train_sapmle目录下。

    (5)使用当前所有标注样本 train_sample对当前模型current_model 进行fine-tuning,更新 current_model;

    (6)使用 current_model 对validation_sample进行验证,如果当前模型的性能得到目标或者已不能再继续标注新的样本(没有专家或者没有钱),则结束迭代过程。否则,循环执行步骤(3)-(6)。

     

    主动学习的问题场景(Scenarios of Active Learning):

    截至2010年,已经有很多不同的 Problem Scenarios 能够使用学习模型主动选择样本让专家进行标注。如下图所示,文献[1]主要提供了下列3种 Scenarios:

    1)Membership Query Synthesis:文献“D. Angluin. Queries and concept learning. Machine Learning, 2:319–342, 1988”研究了第一个主动学习场景“membership queries”,学习器能够在输入空间中为未标注数据集申请标签,包括“queries that the learner generates de novo ”,而不是这些来自于同一个潜在分布的样本。有效的“query synthesis”在解决特定领域的问题通常比较易于处理和高效,如文献“D. Angluin. Queries revisited. In Proceedings of the International Conference on Algorithmic Learning Theory, pages 12–31. Springer-Verlag, 2001.”。文献“D. Cohn, Z. Ghahramani, and M.I. Jordan. Active learning with statistical models. Journal of Artificial Intelligence Research, 4:129–145, 1996.”把“synthesizing query”问题转化为回归学习任务,比如以机械手臂作为模型输入,学习如何预测一个机器人的手的关节角度的绝对坐标。

    “Query Synthesis”能够很合理应用到很多领域的问题,但如果主动学习的专家环节是人工的话,标注任意样本这项工作往往很不合适(awkward)。例如,文献“K. Lang and E. Baum. Query learning can work poorly when a human oracle is used. In Proceedings of the IEEE International Joint Conference on Neural Networks, pages 335–340. IEEE Press, 1992. ”使用“membership query learning with human oracles”的模式训练一个神经网络模型对手写体字母进行分类,遇到一个意外的问题:通过学习器生成的许多 query images 都不包含可识别的符号(recognizable symbols),伪造的混合字符没有语义(semantic meaning)。同样地,当“membership queries”应用到 NLP 任务时可能会产生一些相当于乱语的文本或者语音的数据流(streams of text or speech)。因此提出了基于数据流和基于池的方法(stream-based and pool-based scenarios)来解决上述问题。然而,也有文献King et al. (2004, 2009) 提出了一个创新性和有前景的真实案例,此处不做详细介绍。

    2)Stream-Based Selective Sampling ||| Sequential active learning

    Stream-Based Selective Sampling 有一个重要的前提假设:可以免费或者便宜的获取相关领域的未标注样本,因此就能够从真实的分布采集未标注的数据,然后学习器能够决定是否选择这些未标注样本让专家标注。如果输入样本属于 uniform distribution,选择性采样(selective sampling)可能跟 membership query learning 的效果一样好。然而,如果输入样本的分布是 non-uniform 或者连分布是什么都不知道的情况下,作者[1]证实了

    文献[21]对“基于流的样例选择策略”是这样描述的:基于流的策略依次从未标注样例池中取出一个样例输入到选择模块,若满足预设的选中条件则对其进行准确的人工标注,反之直接舍弃。该学习过程需要处理所有未标记样例,查询成本高昂。另外,由于基于流的样例选择策略需要预设一个样例标注条件,但该条件往往需要根据不同的任务进行适当调整,因此很难将其作为一种通用方法普遍使用。

    3)Pool-Based Sampling

    文献[21]对“基于池的样例选择策略”是这样描述的:基于池的方法每次从系统维护的未标注样例池中按预设的选择规则选取一个样例交给基准分类器进行识别,当基准分类器对其识别出现错误时进行人工标注。相较基于流的方法,基于池的方法每次都可选出当前样例池中对分类贡献度最高的样例,这既降低了查询样例成本,也降低了标注代价,这使得基于池的样例选择策略广泛使用。基于池的样例选择标准主要包括:不确定性标准、版本空间缩减标准、泛化误差缩减标准等。

     

    分类问题的启发式方法(也属于选择/查询策略):

    基于委员会的主动学习算法(QBC):熵值装袋查询(EBQ)、自适应不一致最大化(AMD)

    在 QBC 算法中,使用标记样本训练多个参数不同的假设模型,并用于预测未标记的样本。因此,QBC算法需要训练一定数量的分类器,在实际应用中,其计算复杂度相当大。为了约束计算量,使用EQB方法简化计算。针对高维数据的情形,AMD算法能够将特征空间划分为子空间,它是 EQB算法的变形,不同的分类方法将相同的样本分类在不同的区域中,在计算过程中避免了维数灾难的问题。该算法优点:分类器可以使用多种分类模型以及组合模式,如:神经网络,贝叶斯法则等等。

    基于边缘的主动学习算法(MS):边缘抽样、基于多层不确定性抽样、基于空间重构的抽样

    对于边缘的启发式方法而言,主要针对支持向量机的情形。根据分类模型计算出样本到分类界面的距离选择样本。在 MS算法中,仅仅选择距离分类界面最近的样本加入训练集,它是最简单的边缘抽样的方法。而在 MCLU 算法中,与 MS 不同之处在于:选择离分类界面最远的两个最可能的样本的距离差值作为评判标准。在混合类别区域中,MCLU能够选择最不确信度的样本,而MS的效果不佳。在某些情形下,MS和 MCLU都会选出冗余的样本,引入多样性准则,剔除相似的样本,减少迭代的次数。常用的多样性准则采用样本间相似度,即样本间的相似度越高,说明样本所反映的数据特点越一致,则需要剔除该样本,反之,相似度越低。可以使用相似系数值来刻画样本点性质的相似性。

    基于后验概率的主动学习算法(PP):Kullback-Leibler最大化、Breaking Ties算法

    基于概率的启发式方法依赖于样本的后验概率分布形式,所以该方法的计算速度最快。KL方法的不足之处在于:在迭代优化过程中,它每次只能选择一个样本,增加了迭代的次数。此外,如果分类模型不能提供准确的概率评估值,它依赖于之后的优化评估值。而在 BT 算法中,其思想类似于 EQB,在多分类器中,选择样本两个最大概率的差值作为准则。当两个最大的概率很接近时,分类器的分类确性度最低。

     

    查询策略(Query Strategy):

    Random Sampling(RS):随机选择样本

    Uncertainty Sampling(US):选择当前模型认为最不确定的样本(如,分类问题,概率为0.5表示对该样本模棱两可,不确定性很高),标注这类样本对提升当前模型最有帮助,US也是主动学习领域最常用的策略之一。但是很少有人仅仅只用这种策略选择样本,其原因在于:US 策略仅仅考虑单个样本的信息,没有考虑样本空间整体的分布情况,因此会找到 outlier 样本,或者一些冗余的样本。比如文献[3]结合了 US 和 diversity(能够保证 batch-mode 的选择样本具有比较大的多样性)。

    Kapoor[16]:An algorithm that balances exploration and exploitation by incorporating mean and variance estimation of the GP classifier.

    ALBE[14]:A recent example of meta-AL that adaptively uses a combination of strategies, including [15].

     

    主动学习相关的论文(Relevant paper with Active Learning)

    文献[1]“Active Learning Literature Survey”详细的对主动学习展开介绍,篇幅较长。文献[2]“Survey on active learning algorithms”是一篇幅较短的中文论文,主要围绕主动学习的基本思想和截至2012年最新的研究成果,并对相关算法进行分析,总结了有待进一步研究的问题,包括:1)结合非监督学习算法,取代专家标注的环节;2)维度灾难:在预处理阶段寻找高效的降维方法,减少主动查询过程的复杂度。文献[3]“Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally”是一篇发表于CVPR-2017的论文,使用Active Learning + Transfer Learning、Data Augmentation、Majority Selection、Continuously Fine-Tuning等方法在3个医疗图像领域的数据集上验证了引入主动选择的策略(entropy+diversity)能够至少减少一半的数据标注代价。文献[4]“Generative Adversarial Active Learning”首次将GAN与Active Learning进行组合,通过训练GAN得到生成器模型,主动生成最有价值的样本让专家进行标注。文献[5]“Learning Active Learning from Data”跟传统的主动选择策略有本质上的区别,它克服了手工设计的选择策略跨领域泛化能力的不足,通过将主动选择策略转化为回归问题进行学习,学习得到的策略在多个不同领域的真实数据集(Striatum、MRI、Credit Card、Splice、Higgs)上取得显著的效果。文献[6]"Just Sort It! A Simple and Effective Approach to Active Preference Learning",还未仔细读。文献[21]“主动学习算法研究进展”于2017年发表在河北大学学报的一篇中文论文(个人觉得看了这篇论文还是有所收获的),围绕主动学习的3个关键步骤(学习器初始化、选择策略、算法的终止条件)展开详细的介绍,并总结了主动学习面临的问题及其对应的改进方法。

    以上简要介绍了一些关于AL的论文,后续有时间的话再针对一些有意义的论文进行详细的理解并整理分享给大家。

     

    主动学习领域的难点汇总:

    1. 多类分类问题:在处理多类分类问题时,基于 Margin Sampling 的样例选择标准忽略了样例可能属于其他类别的信息,因此所选样例质量较差。基于熵的方法“基于不确定性的主动学习算法研究(2011)”虽考虑了样例从属于每个类别的概率,但在多类分类问题中,样例的熵也会受到那些不重要类别的干扰。文献“Multi-class active learning for image classification(2009)”提出了基于最优标号和次优标号的准则(BvSB),考虑样例所属概率最高的前2个类别,忽略剩余类别对样例选择标准产生的干扰。文献“基于主动学习和半监督学习的多类图像分类(2011)”将BvSB和带约束的自学习(Constrained self-training,CST)引入到基于SVM的图像分类中,显著提高了分类精度。
    2. 样本中的孤立点:若选择样例时能综合考虑样其代表性(样本的先验分布信息,如聚类分析或样本密度分布分析)和不确定性(如,信息熵),通常可避免采集到孤立点。如文献“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)”将样例的分布密度作为度量样例代表性的指标,结合以熵作为不确定性指标,提出了一种基于密度熵的样例选择策略,有效解决了孤立点问题给样例选择质量造成的影响。
    3. 训练集样本冗余新的训练样本中样例1与分类超平面的距离比样例2近,根据 BvSB 准则应当挑选样例1进行标注并补充到训练集中;但紧挨着样例1的绿色样例 a 已经在训练集中,此时若再加入样例1则对分类界面影响甚微。相比而言,将样例2补充到训练集中,对当前分类模型的训练贡献度更大。通过上述分析可知,主动学习中的样例选择度量主要分为2种:1)不确定性度量;2)差异性度量或代表性度量。样例的不确定性一般可通过计算其信息熵获得,样例的代表性通常可根据其是否在聚类中心判断,而样例的差异性则可通过计算余弦相似度(基于采样策略的主动学习算法研究进展,2012)或用高斯核函数(基于多特征融合的中文评论情感分类算法,2015)获得。
    4. 不平衡数据集:文献“一种新的SVM主动学习算法及其在障碍物检测中的应用(2009)”提出 KSVMactive 主动学习算法;文献“基于主动学习的加权支持向量机的分类(2009)”提出了改进的加权支持向量机模型;文献“基于专家委员会的主动学习算法研究(2010)”提出了基于SVM超平面位置校正的主动学习算法。

     

    总结和展望

     

    1)主动学习早在90年代的时候就已经有人在研究了,但好像未能达到风靡一时的效果,可能是缺失某些致命条件(如,数据和计算能力)。随着大数据时代的到来以及计算能力的突飞猛进,深度学习在学术界和工业界取得了巨大的成就。深度学习的各种成绩也同时给很多领域带来可能,近几年主动学习又开始在学术界蠢蠢欲动,结合深度学习使得主动学习在一定程度上突破了瓶颈,在一些领域取得了不错的成绩(主要用来减少标注代价)。

    2)主动学习的关键在于“select strategy”,目前主要是一些手工设计的策略,一种选择策略仅仅能够应用于某些特定的领域,类似于机器学习的手工设计特征。某种相似的套路:针对手工设计特征的局限性,(分类任务)深度学习将特征选择和分类器结合,不再需要为分类器输入手工设计的特征,取得了质的飞跃;同样的,文献[5]“Learning Active Learning from Data”通过学习得到的“select strategy”能够同时应用到多个不同的领域,克服了手工设计的选择策略跨领域泛化能力的不足。个人感觉,主动学习领域还是有很多方面可以尝试的,毕竟如果做好了,确实能够给实际业务带来价值。

    3)本文的实验环节也仅限于使用一些简单的“select strategy”,希望今后有时间能够想出更厉害的策略。

     

    参考文献(Reference)

    (参考文献的排列顺序以本人对论文的阅读精细程度进行排序)

    1. Krishnakumar A. Active Learning Literature Survey[J]. 2007.
    2. Liu K, Qian X. Survey on active learning algorithms[J]. Computer Engineering & Applications, 2012.
    3. Zhou Z, Shin J, Zhang L, et al. Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017:4761-4772.
    4. Zhu J J, Bento J. Generative Adversarial Active Learning[J]. 2017.
    5. Konyushkova K, Sznitman R, Fua P. Learning Active Learning from Data[J]. 2017.
    6. Maystre L, Grossglauser M. Just Sort It! A Simple and Effective Approach to Active Preference Learning[J]. Computer Science, 2017.
    7. Chu H M, Lin H T. Can Active Learning Experience Be Transferred?[C]// IEEE, International Conference on Data Mining. IEEE, 2017:841-846.
    8. Chen L, Hassani H, Karbasi A. Near-Optimal Active Learning of Halfspaces via Query Synthesis in the Noisy Setting[J]. 2016.
    9. Huijser M W, Van Gemert J C. Active Decision Boundary Annotation with Deep Generative Models[J]. 2017:5296-5305.
    10. Wang X, Huang T, Schneider J. Active Transfer Learning under Model Shift[C]// International Conference on Machine Learning. 2014:1305-1313.
    11. Baram Y, El-Yaniv R, Luz K. Online Choice of Active Learning Algorithms.[J]. Journal of Machine Learning Research, 2004, 5(1):255-291.
    12. Schein A I, Ungar L H. Active learning for logistic regression: an evaluation[J]. Machine Learning, 2007, 68(3):235-265.
    13. Sun S, Zhong P, Xiao H, et al. An MRF Model-Based Active Learning Framework for the Spectral-Spatial Classification of Hyperspectral Imagery[J]. IEEE Journal of Selected Topics in Signal Processing, 2017, 9(6):1074-1088.
    14. W.-N. Hsu, , and H.-T. Lin. Active learning by learning. American Association for Artificial Intelligence Conference, pages 2659–2665, 2015. 
    15. Sheng jun Huang, Rong Jin, and Zhi hua Zhou. Active learning by querying informative and representative examples. In J. D. Lafferty, C. K. I. Williams, J. Shawe-Taylor, R. S. Zemel, and A. Culotta, editors, NIPS, pages 892–900. Curran Associates, Inc. 2010.
    16. A. Kapoor, K. Grauman, R. Urtasun, and T. Darrell. Active Learning with Gaussian Processes for Object Categorization. In International Conference on Computer Vision, 2007.  
    17. Huang S J, Jin R, Zhou Z H. Active Learning by Querying Informative and Representative Examples[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 36(10):1936-1949.
    18. Yang L, Zhang Y, Chen J, et al. Suggestive Annotation: A Deep Active Learning Framework for Biomedical Image Segmentation[J]. 2017:399-407.
    19. Yang Y, Ma Z, Nie F, et al. Multi-Class Active Learning by Uncertainty Sampling with Diversity Maximization[J]. International Journal of Computer Vision, 2015, 113(2):113-127.
    20. Shen D, Zhang J, Su J, et al. Multi-criteria-based active learning for named entity recognition[C]// Meeting on Association for Computational Linguistics. Association for Computational Linguistics, 2004:589.
    21. 杨文柱, 田潇潇, 王思乐,等. 主动学习算法研究进展[J]. 河北大学学报(自然科学版), 2017, 37(2):216-224.
    展开全文
  • membership query synthesis的场景中,算法可能挑选整个无标签数据中的任何一个交给oracle标注,典型的假设是包括算法自己生成的数据。 但是有时候,算法生成的数据无法被oracle识别,例如生成的手写字图像太奇怪...

    fe4d153c0029b643da518b29b5c7e060.png

    作者 | 你Sony@知乎

    来源 | https://zhuanlan.zhihu.com/p/422180658 

    编辑 | 极市平台

    导读

     

    作者将自己对于主动学习的理解和最新研究的感悟都整理为这篇文章,供大家参考、讨论,一起学习和交流主动学习。 

    7a630f3b9c85d12e2550a205c8539526.png

    作者将自己对于主动学习的理解和最新研究的感悟都整理为这篇文章,供大家参考、讨论,一起学习和交流主动学习。同时,作者以后继续阅读主动学习领域的文章,有不错和值得推荐的文章,会实时更新到 github 【awesome-active-learning】— https://github.com/baifanxxx/awesome-active-learning 的 paper list 里,大家可以通过这个list最快地阅读最新最重要的文章,也欢迎大家推荐一些文章和一起交流。

    Note: 前1、2、3节都是一些主动学习基础内容,也有很多文章做过类似的整理和介绍,如果你已经很了解了,可以直接跳到4节以后阅读。

    1. 介绍

    主动学习是一种通过主动选择最有价值的样本进行标注的机器学习或人工智能方法。其目的是使用尽可能少的、高质量的样本标注使模型达到尽可能好的性能。也就是说,主动学习方法能够提高样本及标注的增益,在有限标注预算的前提下,最大化模型的性能,是一种从样本的角度,提高数据效率的方案,因而被应用在标注成本高、标注难度大等任务中,例如医疗图像、无人驾驶、异常检测、基于互联网大数据的相关问题。

    5ccb0796cfc27bee58f330a19e763b1c.png

    The pool-based active learning cycle. (Burr Settles, 2010)

    Settles, Burr的【Active Learning Literature Survey】— https://minds.wisconsin.edu/bitstream/handle/1793/60660/TR1648.pdf%3Fsequence%3D1%26isAllowed%3Dy 文章为经典的主动学习工作进行了总结。上图是经典的基于池的主动学习框架。在每次的主动学习循环中,根据任务模型和无标签数据的信息,查询策略选择最有价值的样本交给专家进行标注并将其加入到有标签数据集中继续对任务模型进行训练。因为主动学习的过程中存在人的标注,所以主动学习又属于Human-in-the-Loop Machine Learning的一种。

    主动学习为什么是有用的?下面通过一个直观的小例子让大家感受一下。

    c040482d59d4d949ffaf77745cdeec8c.png

    (a) 一个由400个实例组成的数据集,从两类高斯分布均匀采用。实例表示为二维特征空间中的点。(b) 从问题域中随机抽取30个标记实例,训练一个逻辑回归模型。这条蓝线代表了分类器的决策边界(70% 的准确率)。(c) 使用不确定性抽样对30个主动查询实例进行训练的逻辑回归模型(90%)。(Burr Settles, 2010)

    由此说明,样本对模型的贡献并不是一样的,选择更有价值的样本具有实际意义。当然,如何确定和评估样本的价值也是主动学习研究的一个重点。

    2. 模型分类

    根据应用场景,主动学习的方法可以被分为membership query synthesis,stream-based and pool-based三种类型。其中,pool-based是最常见的场景,并且由于深度学习基于batch训练的机制,使得pool-based的方法更容易与其契合。在membership query synthesis的场景中,算法可能挑选整个无标签数据中的任何一个交给oracle标注,典型的假设是包括算法自己生成的数据。

    但是有时候,算法生成的数据无法被oracle识别,例如生成的手写字图像太奇怪,oracle也不能识别它属于0~9?或者生成的音频数据不存在语义信息,让oracle也无法识别。在stream-based的场景中,每次只给算法输入一个无标签样本,由算法决定到底是交给oracle标注还是直接拒绝。有点类似流水线上的次品检测员,过来一个产品就需要立刻判断是否为次品,而不能在开始就根据这一批产品的综合情况来考量。在pool-based的场景中,每次给算法输入一个批量的无标签样本,然后算法根据策略挑选出一个或几个样本交给oracle进行标注。

    这样的场景在生活中更容易出现,算法也可以根据这一批量样本进行互相比较和综合考虑。

    3. 基本查询策略

    在主动学习框架中,最重要的就是如何设计一个查询策略来判断样本的价值,即是否值得被oracle标注。而样本的价值并不是一成不变的,它不仅与样本自身有关,还和任务和模型等因素有关。一个简单的例子,在猫狗二分类问题中,一张长得像猫的狗的照片,对分类模型的训练往往是有价值,因为它难以分辨。但是,同样是这张照片,出现在动植物二分类问题中,就变得不那么重要了,因为模型想分辨它并不难。因此,查询策略的设计并不是简单和一成不变的,需要根据具体环境、问题和需要进行设定。这样就产生了各种各样的查询策略,下面,我介绍一些基本的查询策略供大家参考。

    不确定性采样 (Uncertainty Sampling):也许是最简单直接也最常用的策略。算法只需要查询最不确定的样本给oracle标注,通常情况下,模型通过学习不确定性强的样本的标签能够迅速提升自己的性能。例如,学生在刷题的时候,只做自己爱出错的题肯定比随机选一些题来做提升得快。对于一些能预测概率的模型,例如神经网络,可以直接利用概率来表示不确定性。比如,直接用概率值,概率值排名第一和第二的差值,熵值等等。

    多样性采样 (Diversity Sampling) :是从数据的分布考虑的常用策略。算法根据数据分布确保查询的样本能够覆盖整个数据分布以保证标注数据的多样性。例如,老师在出考试题的时候,会尽可能得出一些有代表性的题,同时尽可能保证每个章节都覆盖到,这样才能保证题目的多样性全面地考察学生的综合水平。同样地,在多样性采用的方法中,也主要分为以下几种方式:

    基于模型的离群值——采用使模型低激活的离群样本,因为现有数据缺少这些信息;

    代表性采样——选择一些最有代表性的样本,例如采用聚类等簇的方法获得代表性样本和根据不同域的差异找到代表性样本;

    真实场景多样性——根据真实场景的多样性和样本分布,公平地采样。

    预期模型改变(Expected Model Change) :EMC通常选择对当前模型改变最大、影响最大的样本给oracle标注,一般来说,需要根据样本的标签才能反向传播计算模型的改变量或梯度等。在实际应用中,为了弱化需要标签这个前提,一般根据模型的预测结果作为伪标签然后再计算预期模型改变。当然,这种做法存在一定的问题,伪标签和真实标签并不总是一致的,他与模型的预测性能有关。

    委员会查询 (Query-By-Committee):QBC是利用多个模型组成的委员会对候选的数据进行投票,即分别作出决策,最终他们选择最有分歧的样本作为最有信息的数据给oracle标注。

    此外,有些研究者将多种查询策略结合起来使用混合策略进行查询,例如即考虑不确定性又考虑多样性的。还有一些其他的查询策略,例如预期误差减少、方差减少、密度加权法等。

    4. 经典方法

    下面我给大家分享几个经典的主动学习方法,这些方法经常被拿来作对比。在自己以后的文章里也可以考虑和以下经典的方法进行比较。

    Entropy

    可直接根据预测的概率分布计算熵值,选择熵值最大的样本来标注。

    BALD

    【Deep Bayesian Active Learning with Image Data】— https://arxiv.org/abs/1703.02910

    BGADL

    【Bayesian Generative Active Deep Learning】— https://arxiv.org/abs/1904.11643

    Core-set

    【Active Learning for Convolutional Neural Networks: A Core-Set Approach】— https://openreview.net/forum%3Fid%3DH1aIuk-RW

    LLAL

    【Learning Loss for Active Learning】— https://arxiv.org/abs/1905.03677%3Fcontext%3Dcs.CV

    VAAL

    【Variational Adversarial Active Learning】— https://arxiv.org/abs/1904.00370

    5. 应用场景

    由于主动学习解决的是如何从无标签数据中选择价值高的样本进行标注,所以在数据标签难以获得、标注成本大的场景和实际问题中被广泛应用。

    互联网大数据相关的应用:在互联网的大数据场景中,无标签的数据不计其数,但是又不可能把所有的数据都打上标签。在有限的资金和时间下,最有效的方法就是利用主动学习挑选最有价值的样本交给人去打标签。例如,

    【阿里巴巴淘系技术】— https://www.zhihu.com/question/265479171/answer/1495497483

    【中科智云全球首发全新主动学习算法框架,颠覆传统大量样本和人力标注模式】— https://www.ofweek.com/ai/2021-07/ART-201713-8210-30509389.html

    在安全风控异常检测等领域,异常数据远远少于正常的数据,而对网络上的大量数据都进行标注也是极其不合理的,但是主动学习能够选择性地标注这些数据。

    无人驾驶等机器人领域的应用:在很多机器人领域,都需要收集大量的有标签数据来训练。尤其是非常火的无人驾驶领域。在无人驾驶领域,无人驾驶汽车对环境的感知尤为重要,感知的好坏直接影响决策的质量,对无人驾驶汽车的安全性有至关重要的作用。感知模型多用深度学习构建,数据的重要性不言而喻,尤其是标注数据。而真实场景的无人驾驶环境种类多、复杂,为了保证模型性能,大多数公司需要利用汽车在实际场景中运行收集到的图像、点云等数据进行训练。面对这样庞大的数据量,给每一个样本都打上标签几乎是不可能实现的任务,而利用主动学习选择最有价值的样本(可能是当前模型预测的不确定性大)再人工标注,继续训练模型,从而尽可能地提高模型的性能,提高了稳定性和安全性。例如,特斯拉等

    【特斯拉挑战视觉极限】— https://www.bilibili.com/read/cv7621643

    [主动学习如何改善自动驾驶夜间行人检测【NVIDIA】]— https://www.bilibili.com/video/BV1xV411o72V/

    【Waymo和特斯拉背后的训练系统究竟有什么特别之处?】— https://zhuanlan.zhihu.com/p/400834629

    智能医疗诊断等领域:在医疗领域,深度学习的发展为包括诊断在内的多个方面带来了革命性的发展。数据驱动的方法必然需求大量的有标注数据,而标注医疗图像不仅耗时耗力,而且需要特定的专业知识,所以利用主动学习选择模型难以预测的样本进行选择地标注是非常有实际意义的。有很多论文在研究主动学习在医疗领域的应用,但在实际应用和落地中,医疗诊断面临的最首要的问题还是精度和泛化性能。由于医疗数据是小样本,这些最重要和最基本的问题没有被彻底解决,所以主动学习的热度并不大。但是还是有一些公司在应用,例如腾讯AI Lab使用主动学习和难例挖掘方案

    【中国首款智能显微镜获批进入临床:病理诊断AI化,腾讯AI Lab打造】— https://new.qq.com/omn/20200409/20200409A0BGWI00.html

    在我看来,医疗数据获得的量本身就少的话,就没必要应用主动学习了,因为在有限的样本下,即使都标注都很难达到一个满意的性能,更别说去做选择了。但是真正有需求的场景是,

    1. 有大量的无标签医疗数据,需要从中选择有价值的进行标注,例如从视频数据(胃肠镜视频)标注图像进行检测等;

    2. 真正实现基本性能,能够落地部署后,仍需要长期在使用过程中收集数据,进行标注,但是由于这个过程是一直持续下去,长久的工作,所以对于这样大量的无标签数据也需要进行主动学习选择标注。

    总之,主动学习应用的场景是针对有大量无标签数据(至少不缺),如何节省标注工作量使得模型达到满意的性能。在深度学习爆炸的时代,各种任务和应用都考虑采用数据驱动的learning的方法来解决,这就对数据的需求更高了。实际应用中,既不可能完全放弃标签,也不可能放弃无标注数据,而主动学习恰恰能够提供一个较合理的权宜之计,既要标注有价值的数据,又不需要全部标注,选择性地标注。

    6. 实际应用可能存在的问题

    虽然考虑到主动学习的出发点和要解决的问题都比较实际,但是目前的主动学习方法在实际应用的话还是存在一些问题。

    性能不稳定:制约主动学习最大的问题就是性能不稳定。主动学习是根据自己指定的选择策略从样本中挑选,那么这个过程中策略和数据样本就是影响性能的两个很重要的因素。对于非常冗余的数据集,主动学习往往会比随机采样效果要好,但是对于样本数据非常多样,冗余性较低的数据集,主动学习有的时候会存在比随机采样还差的效果。数据样本的分布还影响不同主动学习的方法,比如基于不确定性的方法和基于多样性的方法,在不同数据集上的效果并不一致,这种性能的不稳定是制约人们应用主动学习的一个重要因素。在实际应用中,需要先根据主动学习进行数据选择和标注,如果此时的策略还不如随机采样,人们并不能及时改变或者止损,因为数据已经被标注了,沉没成本已经产生了。而优化网络结构和性能的这些方法就不存在这个问题,人们可以一直尝试不同的方法和技巧使得性能达到最好,修改和尝试的损失很小。而主动学习被要求得更加苛刻,几乎需要将设计好的策略拿来直接应用就必须要work才行,如果不work,那些被选择的样本还是被标注了,还是损失时间和金钱。苛刻的要求和不稳定的性能导致人们还不如省下这个精力,直接采用随机的标注方式。

    脏数据的挑战:现在几乎所有的论文都在公开的数据集、现成的数据集上进行测试和研究。而这些数据集其实已经被选择和筛选过了,去除了极端的离群值,甚至会考虑到样本平衡,人为的给少样本的类别多标注一些,多样本的类别少标注一些。而实际应用中,数据的状况和这种理想数据集相差甚远。主动学习常用不确定性的选择策略,不难想象,噪声较大的样本甚至离群值总会被选择并标注,这种样本可能不仅不会提升模型的性能,甚至还会使性能变差。实际中还存在OOD(out of distribution)的问题,例如想训练一个猫狗分类器,直接从网络中按关键字搜索猫狗收集大量图片,里边可能存在一些老虎、狮子、狼等不在猫狗类别的无关样本,但是他们的不确定性是非常高的,被选中的话,并不会提升模型的性能。

    难以迁移:主动学习是一种数据选择策略,那么实际应用中必然需求更通用、泛化性更好的主动学习策略。而目前的主动学习策略难以在不同域、不同任务之间进行迁移,比如设计了一个猫狗分类任务的主动学习策略,基于不确定性或多样性,达到了较好的性能,现在需要做一个新的鸡鸭分类的任务,那么是否还需要重新设计一个策略?如果任务是病变组织的分类呢?由于不同任务的数据分布特点可能不一样,不同任务的难易不一样,无法保证主动学习的策略能够在不同数据不同任务中通用,往往需要针对固定的任务设计一个主动学习策略。这样就耗费了精力,如果能有一个通用性好的主动学习策略,那么就可以被不同任务迁移,被更广泛地应用,甚至直接将其部署为通用标注软件,为各种任务、数据集,提供主动选择和标注功能。

    交互不便:数据选择策略与标注过程联系紧密,理想的流程是,有一个整合的软件能够提供主动数据选择,然后提供交互界面进行标注,这就是将主动学习流程与标注软件结合。仅有高效的主动学习策略,而不方便标注交互,也会造成额外的精力浪费。在流程上,现在主动学习普遍是选择出一批待标注的样本后,交给人们去标注,而期望人们能尽快标注交给模型,模型继续训练后再次选择。人们标注的时候,模型既不能训练,主动学习也不进行其他操作,是个串行的过程,需求等待人工标注结束后,才能进行接下来的训练。这样的流程就不那么方便和高效,想象把主动学习+标注的系统给医生应用,策略先选出了一些样本,医生仅标注这些样本就标注了几天,然后再给模型训练,模型训练一段时间后,又选择出一些样本给医生,医生和模型互相等待对方的操作,降低了效率和便利性。

    7. 最新研究方向及论文推荐

    下面我介绍一些主动学习目前最新的阅读价值较高的论文,供大家把握研究方向和热点。如果大家有兴趣,可以持续关注我github上的【awesome-active-learning】— https://github.com/baifanxxx/awesome-active-learning 中的 paper list,我会实时更新有价值的主动学习方面的工作,供大家学习和交流。

    主动学习问题和方法的探究

    目前主动学习的基本方法和问题还存在一些不足,有一些最新的方法试图解决这些问题。

    【Mind Your Outliers! Investigating the Negative Impact of Outliers on Active Learning for Visual Question Answering】— https://arxiv.org/abs/2107.02331(作者之一,李飞飞)

    主动学习有望缓解监督式机器学习的海量数据需求:它已成功地将样本效率提高了一个数量级,例如主题分类和对象识别等传统任务。然而,作者发现与这一现象形成鲜明对比的是:在视觉问答任务的 5 个模型和 4 个数据集中,各种各样的主动学习方法未能胜过随机选择。为了理解这种差异,作者在每个示例的基础上分析了 8 种主动学习方法,并将问题确定为集体异常值——主动学习方法更喜欢获取但模型无法学习的一组示例(例如,询问文本的问题在图像中或需要外部知识)。通过系统的消融实验和定性可视化,作者验证了集体异常值是导致基于池的主动学习退化的普遍现象。值得注意的是,作者表明,随着主动学习池中集体异常值的数量减少,主动学习样本效率显着提高。

    0d4bb66aed04fbc0a91014c0cf99f2df.png

    【Contrastive Coding for Active Learning Under Class Distribution Mismatch】https://openaccess.thecvf.com/content/ICCV2021/html/Du_Contrastive_Coding_for_Active_Learning_Under_Class_Distribution_Mismatch_ICCV_2021_paper.html

    基于以下假设:标记数据和未标记数据是从同一类分布中获得的,主动学习 (AL) 是成功的。然而,它的性能在类别分布不匹配的情况下会恶化,其中未标记的数据包含许多标记数据的类分布之外的样本。为了有效地处理类分布不匹配下的AL问题,作者提出了一种基于对比编码的 AL 框架,名为 CCAL。与现有的 AL 方法专注于选择信息量最大的样本进行标注不同,CCAL 通过对比学习提取语义和独特的特征,并将它们组合在查询策略中,以选择具有匹配类别的信息量最大的未标记样本。理论上,作者证明了 CCAL 的 AL 误差具有严格的上限。

    【LADA: Look-Ahead Data Acquisition via Augmentation for Active Learning】— https://arxiv.org/abs/2011.04194

    在主动学习的获取过程中尚未考虑从数据增强产生的虚拟实例的潜在收益。在数据获取的过程中,数据增强将选择并生成对训练模型提供信息的数据实例。因此,作者提出了通过增强或 LADA 的前瞻数据采集来集成数据采集和数据增强。在获取过程之前,LADA 考虑 1) 选择未标记的数据实例和 2) 通过数据增强生成的虚拟数据实例。此外,为了增强虚拟数据实例的信息量,LADA 优化了数据增强策略以最大化预测获取分数,从而产生了 InfoMixup 和 InfoSTN 的提议。由于 LADA 是一个可推广的框架,作者试验了各种采集和增强方法的组合。

    231af613d7fdf0d56975dacde09807c2.png

    主动学习与半监督学习结合

    由于半监督学习展示出了优异的性能,在标签不足的情况下,如果能将主动学习与半监督学习结合,将会取得更优异的性能。

    【Semi-Supervised Active Learning for Semi-Supervised Models: Exploit Adversarial Examples With Graph-Based Virtual Labels】— https://openaccess.thecvf.com/content/ICCV2021/html/Guo_Semi-Supervised_Active_Learning_for_Semi-Supervised_Models_Exploit_Adversarial_Examples_With_ICCV_2021_paper.html

    尽管当前主流方法开始结合 SSL 和 AL(SSL-AL)来挖掘未标记样本的多样化表示,但这些方法的全监督任务模型仍然仅使用标记数据进行训练。此外,这些方法的 SSL-AL 框架存在不匹配问题。在这里,作者提出了一个基于图的 SSL-AL 框架来释放 SSL 模型的能力并进行有效的 SSL-AL 交互。在该框架中,SSL 利用基于图的标签传播为未标记的样本提供伪标签,渲染 AL 样本的结构分布并提升 AL。AL 在决策边界附近找到样本,利用对抗性示例帮助 SSL 执行更好的标签传播。闭环中的信息交换实现了SSL和AL的相互增强。

    956e2b97dcce1acd0d77f10dd764c6e9.png

    主动学习与无监督域自适应结合

    无监督域自适应要对齐目标域与源域,使模型利用源域的数据和标签,在无标签的目标域上取得较好的性能。目前出现一些工作考虑源域和目标域的关系,设计了主动学习策略提升模型在目标域的性能。

    【Multi-Anchor Active Domain Adaptation for Semantic Segmentation】— https://arxiv.org/abs/2108.08012

    将目标域的分布无条件地与源域对齐可能会扭曲目标域数据的特有的信息。为此,作者提出了一种新颖的基于多锚点的主动学习策略,以协助域自适应语义分割任务。通过创新地采用多个点而不是单个质心,可以更好地将源域表征为多模态分布,实习从目标域中选择更具代表性和互补性的样本。手动注释这些样本的工作量很小,可以有效缓解目标域分布的失真,从而获得较大的性能增益。另外还采用多锚策略来对目标分布进行建模。通过软对齐损失,对多个锚点周围紧凑的目标样本的潜在表示进行正则化,可以实现更精确的分割。

    eb5da8a81cfceda57e48d83fbc129fe8.png 0e8e2d02f5cc5fed66dd813fcff9d298.png

    主动学习与知识蒸馏结合

    知识蒸馏过程中,teacher给student传递知识,但是什么样的样本能够帮助这一过程,也是主动学习可以研究的一个方向。

    【Active Learning for Lane Detection: A Knowledge Distillation Approach】— https://openaccess.thecvf.com/content/ICCV2021/html/Peng_Active_Learning_for_Lane_Detection_A_Knowledge_Distillation_Approach_ICCV_2021_paper.html

    作者发现现有的主动学习方法在车道检测方面表现不佳,原因是两方面的。一方面,大多数方法基于熵来评估数据不确定性,这在车道检测中是不可取的,因为它鼓励选择车道很少甚至根本没有车道的图像。另一方面,现有的方法没有意识到车道标注的噪声,这是由严重遮挡和车道标记不清晰引起的。在本文中,作者构建了一个新颖的知识蒸馏框架,并基于student模型所学的知识评估图像的不确定性。作者表明,所提出的不确定性度量克服了上述两个问题。为了减少数据冗余,作者研究了图像样本的影响集(influence set),并提出了一种新的多样性度量。最后,作者结合了不确定性和多样性指标,提出了一种用于数据选择的贪婪算法。

    c1ea188b1b4f66c3db2a1c7bd78749f8.png

    主动学习与对比学习结合

    对比学习最近势头比较猛,最近也有主动学习与对比学习结合解决对比学习的问题,大家可以欣赏一下。

    【Active Contrastive Learning of Audio-Visual Video Representations】— https://arxiv.org/abs/2009.09805

    对比学习已被证明可以通过最大化实例的不同视图之间的互信息 (MI) 的下限来生成音频和视觉数据的可概括表示。然而,获得严格的下限需要 MI 中的样本大小指数,因此需要大量的负样本。我们可以通过构建一个大型的基于队列的字典来合并更多的样本,但是即使有大量的负样本,性能提升也存在理论上的限制。作者假设随机负采样导致高度冗余的字典,导致下游任务的次优表示。在本文中,作者提出了一种主动对比学习方法,该方法构建了一个actively sampled字典,其中包含多样化和信息丰富的样本,从而提高了负样本的质量,并提高了数据中互信息量高的任务的性能,例如,视频分类。

    7d2c772bdaad6966e6ad02c309413340.png

    利用强化学习进行主动学习

    【Reinforced active learning for image segmentation】—  https://arxiv.org/abs/2002.06583

    基于学习的语义分割方法有两个固有的挑战。首先,获取像素级标签既昂贵又耗时。其次,现实的分割数据集是高度不平衡的:某些类别比其他类别丰富得多,使性能偏向于最具代表性的类别。

    在本文中,作者感兴趣的是基于池的方式进行人工标记工作,最大限度地减少这种工作,同时最大限度地提高分割模型在测试集上的性能。作者提出了一种新的基于深度强化学习 (RL) 的语义分割主动学习策略。智能体学习一种策略,从未标记的数据池中选择一小部分信息丰富的图像区域进行标记。区域选择决策是基于被训练的分割模型的预测和不确定性做出的。作者的方法提出了一种用于主动学习的DQN,使其能适应大规模的语义分割问题。作者在 CamVid和大规模数据集 Cityscapes 中测试。在 Cityscapes 上,在相同性能下,作者的基于深度强化学习的区域的 DQN 方法比最具竞争力的基线减少大约 30% 的额外标记数据。此外,作者发现与基线相比,作者的方法选择了更多代表性不足的类别标签,从而提高它们的性能并有助于减轻类别不平衡。

    2c2492967ca71adab0b7af47acc5eb7b.png

    主动学习在点云方面

    点云比图像的标注时间更长更费精力,尤其是像素级的点云标注。近期主动学习在点云方面的工作渐渐崭露头角,而且效果非常惊人,值得期待。下面我介绍一篇有代表性的点云语义分割的工作。

    【ViewAL: Active Learning with Viewpoint Entropy for Semantic Segmentation】— https://arxiv.org/abs/1911.11789

    作者提出了 ViewAL,这是一种新颖的语义分割主动学习策略,它利用了多视图数据集中的视点一致性。作者的核心思想是,跨视点的模型预测的不一致提供了非常可靠的不确定性度量,并鼓励模型在不考虑观察对象的视点的情况下表现良好。为了结合这种不确定性度量,作者引入了一种新的视点熵公式,这是作者主动学习策略的基础。此外,作者提出了超像素级别的不确定性计算,它利用了分割任务中固有的局部信息,直接降低了注释成本。视点熵和超像素的联合使用有效地选择了具有高度信息量的样本。

    88ca0ba91f4c0b05aa2f7b8b67a79838.png 0045462e02fea56b4cc17912b8a716ad.png eebde767573a9ae44881c659d7edd7dd.png

    主动学习在目标检测方面

    最新也有一些主动学习的文章开始结合到目标检测中,针对目标检测定义策略。目标检测不仅存在分类还存在定位,所以对于图像的不确定性定义和建模更加多样,使得更容易创新自己的主动学习方法,大家可以尝试做做这方面的工作。

    【Multiple instance active learning for object detection】— https://arxiv.org/abs/2104.02324

    尽管用于图像识别的主动学习取得了实质性进展,但仍然缺乏指定用于目标检测的实例级主动学习方法。在本文中,作者提出了多实例主动目标检测(MI-AOD),通过观察实例级的不确定性来选择信息量最大的图像进行检测器训练。MI-AOD 定义了一个实例不确定性学习模块,它利用在标记集上训练的两个对抗性实例分类器的差异来预测未标记集的实例不确定性。MI-AOD 将未标记的图像视为实例包,将图像中的特征锚点视为实例,并通过以多实例学习 (MIL) 方式重新加权实例来估计图像的不确定性。反复迭代实例不确定性学习和重加权有助于抑制噪声实例,弥合实例不确定性和图像级不确定性之间的差距。

    总结

    总而言之,主动学习现在还有很多点可以继续研究,包括但不限于:

    1. 从主动学习基本理论和问题出发,完善和改进;

    2. 与其他learning方法或概念结合,改进主动学习或该方法,例如半监督、域自适应、知识蒸馏和强化学习等等;

    3. 应用到新的背景和任务(和主动学习结合的paper少的)中,例如点云分类分割、医疗图像、目标检测等等。

    4. ......

    既可以在现有的方法的基础上改进,又可以针对新的特定任务和具体问题设计自己的主动学习策略。无论是哪方面,主动学习都是存在很多继续研究的点。

    推荐阅读:

    我的2022届互联网校招分享

    我的2021总结

    浅谈算法岗和开发岗的区别

    互联网校招研发薪资汇总

    2022届互联网求职现状,金9银10快变成铜9铁10!!

    公众号:AI蜗牛车

    保持谦逊、保持自律、保持进步

    176e93bb7c017143b5b17c995b4e4982.png

    发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)

    发送【1222】获取一份不错的leetcode刷题笔记

    发送【AI四大名著】获取四本经典AI电子书

    展开全文
  • 本文主要贡献 : quantify membership information leakage through the prediction outputs of machine learning models. 方法 : turn machine learning against itself and train an attack model

    基础知识补充回顾

    • 精确率(precision) 、召回率(recall) : 其实只是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。

      1. precision 精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),因此 P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP
      2. recall 召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN),因此 R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP
    • ROC曲线,PR曲线,AUC等机器学习性能评价指标



    Introduction

    • 本文的主要贡献
      quantify membership information leakage through the prediction outputs of machine learning models
    • 实现思路
      turn machine learning against itself and train an attack model
      实质即是把membership inference转变成一个2分类问题, 来区分target model对训练中遇到的输入 和 没有遇到的输入的behavior
    • 总体方法
      shadow training → → ground truth about membership → → train the attack model
    • 用来 generate training data for the shadow models 的三种方法
      • uses black-box access to the target model to synthesize data
      • uses statistics about the population
      • assumes that the adversary has access to a potentially noisy version of the target ′ ' s training dataset
    • Problem Statement · 本文基于的假设
      • The attacker has query access to the model and can obtain the model ′ ' s prediction vector on any data record.
      • The attacker either (1) knows the type and architecture of the machine learning model, as well as the training algorithm, or (2) has black-box access to a machine learning service platform that was used to train the model.
      • The attacker may have some background knowledge about the population from which the target model ′ ' s training dataset was drawn.



    Membership Inference

    • 主要依据
      机器学习模型通常对 在它们“训练集中的数据”和“非训练集中的数据”有不同的behavior. 验证此条依据的实验结果见下图 :
      攻击者可以据此训练一个attack model,根据target model对某条数据的输出来推断该数据是否在target model的训练集当中.
      为了提高攻击的accuracy,进一步根据target model输出的每一个class都单独训练一个模型,即 attack model由一簇model组成.
      在这里插入图片描述

    • challenge & idea & solution

      • challenge : 在target model是一个black-box的情况下训练attack model来进行membership inference attacks.
           \quad\quad\quad\quad\,\, 此外,攻击者没有target model的训练集, 无法获得attack model的训练数据
      • main idea : 用同一个black-box时, 基于相似的训练数据得出的相似models也会有相似的behavior.
      • solution : 提出shadow training方法, 攻击者合成与target model的训练集相似的数据集, 喂给black-box训练shadow model.
             \quad\quad\quad\,\,\,\, 综上,顺着这三点的思路,攻击者可以得到attack model的训练集,进而用来训练出attack model。 \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad
    • 整体思路 (本文的target model是针对于多分类问题)
      针对每一个class,攻击者生成一系列的data record,若target model对其中的样本 ( x , y ) (\bm{x},y) (x,y)输出的预测向量为 y \bm{y} y,则根据该样本是否在shadow model的训练集当中来生成训练样本 ( y , y , i n ) (\bm{y},y,in) (y,y,in) ( y , y , o u t ) (\bm{y},y,out) (y,y,out) ,用来训练标签为 i n in in/ o u t out out的2分类模型作为attack model.
      \quad\quad\quad\quad 注 : 关于为什么要在 ( y , y , i n / o u t ) (\bm{y},y,in/out) (y,y,in/out)中传入 x \bm{x} x的真实分类标签 y y y , 是由于 考虑到 x \bm{x} x的预测向量 y \bm{y} y的分布很大程度上依赖于 y y y
      在这里插入图片描述

    • Shadow Model
      Shadow Model不是用其他ML算法后重新建立的模型, 而是把喂给target model的训练集换成 Shadow Training Set 后得出的模型.
      其中, Shadow Training Set 中的每一条样本, 就是上述思想中攻击者生成的一系列data record.
      因此, ★与其说是 shadow model, 不如说 其本质核心是 shadow (training) datasets. 如下图:
      在这里插入图片描述

    • Shadow Model的核心 即合成数据(data for shadow models)的方法

      1. Model-based synthesis.
        直观依据 : 如果target model将一条数据以high confidence分类为 y y y, 则该条数据与target model的训练集在统计上相似.
        因此, 可以借助target model来合成shadow model需要的一系列数据。生成一条class标签为c的数据的算法如下:
        随机初始化一个 x \bm{x} x作为 x ∗ \bm{x}^* x, 不断迭代 x ∗ \bm{x}^* x y c ∗ y_c^* yc, 直到 y c ∗ y_c^* yc大于置信阈值 c o n f m i n {conf}_{min} confmin并且大于所属向量 y \bm{y} y在其他维上的取值, 则接收该条数据。迭代过程中随机改变当前 x ∗ \bm{x}^* x k k k个属性值来生成 x \bm{x} x, 若该 x \bm{x} x预测产生的 y c ≥ y c ∗ y_c \ge y_c^* ycyc则用它更新 x ∗ \bm{x}^* x y c ∗ y_c^* yc, 此过程若连续 r e j m a x {rej}_{max} rejmax次失败后则调整k值, 以调整搜索速度。
        该算法的局限性 : 受限于inputs所处的空间。若该空间非常庞大(例如针对高分辨率的图像)则该算法可能失效。
        在这里插入图片描述
      2. Statistics-based synthesis.
        攻击者拥有关于训练集的统计信息, 如各个feature的边缘分布, 则可据此独立生成各feature的值.
      3. Noisy real data.
        攻击者可以获得和target model的训练数据相似的数据, 并将之视为目标训练集的噪声版本来直接使用.
    • 综上, membership inference attack model 的总体训练流程 :
      得到attack modeld的训练集后, 根据 y y y的不同划分训练集, 划分出的每个子集对应一个class, 用来训练针对该class的2分类器.
      若攻击样本 ( x , y ) (\bm{x},y) (x,y) 则将target model对 x \bm{x} x输出的 y \bm{y} y, 辅以 y y y作为attack model的输入, 来得出该样本是否 ∈ \in target model的训练集.
      在这里插入图片描述对attack modeld来说, 其难点在于 : 针对任何一个class, training inputs是被目标模型以high confidence合成的data, 而 non-training inputs同样是被目标模型以high confidence合成的data, 需要学习的是区分该training inputs 和 non-training inputs.



    Evaluation

    • 实验设置
      Target models: Google Prediction API 、Amazon ML (ml as a service) ;Neural networks (自己用Torch7在本地建立)。
      Experimental setup: target model和shadow models的训练集的交集为空 ;各个model自己的训练集和测试集之间也相交为空。
      数据集CIFAR设置一系列不同的size来测试Neural networks在不同configuration下的attack accuracy
      数据集Purchase、Texas hospital-stay、Adult、MNIST、Locations固定size后只测试Google Prediction API 、Amazon ML
      数据集Purchase针对Google Prediction API、Amazon ML、Neural networks都做攻击测试以比较不同的target models

    • Accuracy of the attack
      baseline accuracy = 0.5 (因为是从target model的训练集和测试集中随机选出相同数量的样本向attack model查询)
      注意需要对不同的class标签分别计算precision和recall (因为各class的训练集的size和元素不同, 导致了不同的class有不同的attack accuracy)
      \quad
      1.用CIFAR测试一系列不同size下的各class :
      结果分析 : target model的class标签个数越多则攻击效果越好。(因为class越多则target model的内部结构等信息会向attack model暴露地越多)
      在这里插入图片描述
      2.用Purchase测试对Google Prediction API 、Amazon ML的攻击:
      在这里插入图片描述
      3.用Purchase针对Google Prediction API、Amazon ML、Neural networks都做测试 :
      \quad 在这里插入图片描述
      \quad

    • shadow training data 的效果
      1.用shadow model中的三种合成数据(data for shadow models)的方法分别进行攻击:
      结论 : a membership inference attack can be trained with only black-box access to the target model, without any prior knowledge about the distribution of the target model ’ ’ s training data
      \quad
      \quad

    • number of classes and training data per class 对攻击效果的影响
      \quad
      1.验证根据Fig.4提出的分析 : target model(以分类任务为例)的class标签个数越多则攻击效果越好。实验结果如下图:
      (或许因为class越多则target model的内部结构等信息会向attack model暴露地越多 , 也或许因为class越多则越容易过拟合)
      在这里插入图片描述
      2.进一步验证每个class中的训练数据越多 会对 attack accuracy产生的影响,但结果显示这会降低攻击效果:
      在这里插入图片描述
      \quad

    • 在各个数据集之间进行对比:
      可见 : 只有当target model在训练集和测试集上的预测精度相差很大时, attack model的效果才越好, 否则离baseline相差不大。
      文章中曾提到了过拟合可能增加攻击效果, 而过拟合也会使target model在训练集和测试集上的预测精度相差较大。
      但效果不好的几个例子也可能和数据集的class的总数量较少, 或每个class下的数据量较多等因素有关。
      例如MNIST和Adult数据集的class的总数量较少, 后者甚至只有两个class即对应的target model是二分类模型。
      在这里插入图片描述
      总而言之, 影响攻击效果的可能因素 : target model的过拟合 、target model的structure and type 、训练集的diversity
      由本文还可以看出过拟合的缺点不仅是模型的预测能力差, 还会泄露训练集的敏感信息。
      此外,本文提出的攻击方法也可以作为一个新的度量方式来检验target model的隐私保护能力(或隐私泄露水平)。




    M



    Ref

    精确率(precision) 、召回率(recall)
    Shokri, R., Stronati, M., Song, C., & Shmatikov, V. (2017). Membership Inference Attacks Against Machine Learning Models. ieee symposium on security and privacy.

    展开全文
  • Active Learning 主动学习

    2021-07-29 10:40:28
    membership query synthesis,是指模型可以生成新的样本,即模型可以操控样本的生成。这类似于人在学习的过程中进行举一反三,自己生成一些新的问题,然后通过更深入的研究新问题来提高自己的认知。 sequential ...
  • 1.主动学习是什么? 主动学习(Active Learning) 主动学习(AL)的目的是减少由人类专家标注的数据量,是一个在active learner和oracle(human annotator)之间的迭代循环过程。...query strategy(查询策略):
  • 主动学习1、定义2、步骤3、分类3.1 Membership Query Synthesis3.2 Stream-Based Selective Sampling3.3 Pool-Based Sampling4、Query Strategy Frameworks4.1 Uncertainty Sampling4.1.1 least confident4.1.2 ...
  • Deep Active Learning(深度主动学习)

    千次阅读 2020-10-06 16:55:54
    基于此,可以分为三个类别: membership query synthesis:图中第一行,全由模型自己生成新的样本instance,然后送去打标签。 stream-based selective sampling:图中第二行,先从数据流得到一个一个的未标记样本,...
  • Active Learning 的学习过程中也遇到很多不懂的概念,比如“Membership Query Synthesis”每个单词都懂,连起来就不知道是什么意思了,需要根据实际场景去理解其含义。因此,我经常在网上搜索一些相关的资料,看看有...
  • 深度主动学习综述2020

    千次阅读 2020-09-05 20:02:11
    主动学习从应用场景上来可以划分为membership query synthesis,stream-based selective sampling和pool-based active learning. Membership query synthesis是指学习者可以请求查询输入空间中任何未标记样本的标签...
  • 基于此,熵值装袋算法(Entropy Query-By-Bagging,EQB)[80]和自适应不一致最大化(Adaptive Maximize Disagree,AMD)被提出并缓解了计算复杂度问题。其中,EQB 同时引入了 bagging 继承方法以及 bootstrap 采样;AMD ...
  • 主动学习从应用场景上来可以划分为membership query synthesis,stream-based selective sampling和pool-based active learning. Membership query synthesis是指学习者可以请求查询输入空间中任何未标记样本的标签...
  • 3、委员会投票(Query by Committee,QBC):QBC[31]是一种基于版本空间缩减的采样策略,核心思想是优先选择能够最大程度缩减版本空间的未标记样本。 QBC 包括两个基本步骤: 使用多个模型构成委员会; 委员会中所有的...
  • 样本生成式(例如GAN之类的生成模型):learning by query synthesis active learning 核心部分: GAN:使用DCGAN(TensorFlow, https://github.com/carpedm20/DCGAN-tensorflow ) generative...
  • 主动学习(Active learning)简介

    千次阅读 2020-10-25 17:32:00
    2.1 Stream-based Active Learning 2.2 Pool-based Active Learning 2.3 Membership Query Synthesis 3. 主动学习与强化学习的不同? 4. 不确定性度量 1)Smallest Margin Uncertainty 2)Least Confidence ...
  • Problem definition According to various ways of querying, active learning algorithms can be categorized into three paradigms: membership query synthesis active learning [4, 45, 46, 48, 69], stream-...
  • 主动学习简单教程及代码示例

    千次阅读 多人点赞 2020-09-06 00:36:31
    打标签代价较大且消耗时间 主动学习分类   按照标签查询方式的不同,可将AL分为三类 Membership query synthesis Stream-Based selective sampling Pool-Based sampling[2]   许多主动学习工作都是基于池的...
  • 什么是主动学习?

    2021-09-01 11:28:23
    (3)会员查询合成(Membership Query Synthesis) 成员查询合成是一种主动学习技术,这种主动学习技术能够根据我们的训练示例创建自己的示例,以获得最大的有效学习。在某种意义上,这种主动学习技术确定它可能是...
  • 根据样本选择方法选取未标注样本的方式不同,可以将主动学习分为三种:成员查询综合(Membership Query Synthesis)、基于流(Stream-based)的主动学习和基于池(Pool-based)的主动学习。其中,基于池的样本选择...
  • 随后,主动学习方法在许多领域中层出不穷,并进一步被归纳为生成式成员查询(Membership Query Synthesis)、流式主动学习方法(Stream-Based SelectiveSampling)和基于未标注样本池的主动学习方法(Pool-Based ...
  • for model development, and the evaluation set includes 10,000 query and 1.1 million index images for visual search evaluation. 15, TITLE: NucMM Dataset: 3D Neuronal Nuclei Instance Segmentation at ...
  • 在此设定下,学习器learner随机地选择membership queries,也就是一些特定的示例query instance,并交给oracle进行标记。甚至学习器可以自己生成待标记样例(generate instance de novo)。 具体流程如下图[2]: 该...
  • 第一种是“Membership query synthesis”,字面意思上很难理解,不过这种方式的 instance 是算法从整个可能的样本空间中生成的,模型从头开始生成一个 instance 然后送去 oracle 打标签。 第二种是“steam-based ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
热门标签
关键字:

membership query synthesis