被动学习 (Active Learning) 综述以及在文本分类和序列标注利用我的项目链接 fork 一下,含实际程序,因篇幅无限就没放在本博客中,如有需要请自行 fork
https://aistudio.baidu.com/ai…
0. 引言
在机器学习 (Machine learning) 畛域,监督学习 (Supervised learning)、非监督学习(Unsupervised learning) 以及半监督学习 (Semi-supervised learning) 是三类钻研比拟多,利用比拟广的学习技术,wiki 上对这三种学习的简略形容如下:
- 监督学习:通过已有的一部分输出数据与输入数据之间的对应关系,生成一个函数,将输出映射到适合的输入,例如分类。
- 非监督学习:间接对输出数据集进行建模,例如聚类。
- 半监督学习:综合利用有类标的数据和没有类标的数据,来生成适合的分类函数。
其实很多机器学习都是在解决类别归属的问题,即给定一些数据,判断每条数据属于哪些类,或者和其余哪些数据属于同一类等等。这样,如果咱们上来就对这一堆数据进行某种划分 (聚类),通过数据外在的一些属性和分割,将数据主动整顿为某几类,这就属于非监督学习。
如果咱们一开始就晓得了这些数据蕴含的类别,并且有一部分数据 (训练数据) 曾经标上了类标,咱们通过对这些曾经标好类标的数据进行演绎总结,得出一个
“数据 –> 类别”的映射函数,来对残余的数据进行分类,这就属于监督学习。
而半监督学习指的是在训练数据非常稀少的状况下,通过利用一些没有类标的数据,进步学习准确率的办法。
咱们应用一些传统的监督学习办法做分类的时候,往往是训练样本规模越大,分类的成果就越好。然而在现实生活的很多场景中,标记样本的获取是比拟艰难的,这须要畛域内的专家来进行人工标注,所破费的工夫老本和经济老本都是很大的。而且,如果训练样本的规模过于宏大,训练的工夫破费也会比拟多。那么有没有方法,可能应用较少的训练样本来取得性能较好的分类器呢?被动学习 (Active Learning) 为咱们提供了这种可能。被动学习通过肯定的算法查问最有用的未标记样本,并交由专家进行标记,而后用查问到的样本训练分类模型来进步模型的精确度。
1. 被动学习简介
- 被动学习是指对须要 标记的数据进行优先排序 的过程,这样能够确定哪些数据对训练监督模型产生最大的影响。
- 被动学习是一种学习算法能够 交互式查问用户(teacher 或 oracle),用实在标签标注新数据点的策略。被动学习的过程也被称为优化实验设计。
- 被动学习的动机在于意识到 并非所有标有标签的样本都等同重要。
被动学习是一种策略 / 算法,是对现有模型的加强。而不是新模型架构。被动学习背地的要害思维是,如果容许机器学习算法抉择它学习的数据,这样就能够用更少的训练标签实现更高的准确性。——Active Learning Literature Survey, Burr Settles。通过为专家的标记工作进行优先级排序能够大大减少训练模型所需的标记数据量。降低成本,同时进步准确性。
被动学习不是一次为所有的数据收集所有的标签,而是对模型了解 最艰难的数据进行优先级排序,并仅对那些数据要求标注标签。而后模型对大量已标记的数据进行训练,训练实现后再次要求对最不确定数据进行更多的标记。
通过对不确定的样本进行优先排序,模型能够让专家(人工)集中精力提供最有用的信息。这有助于模型更快地学习,并让专家跳过对模型没有太大帮忙的数据。这样在某些状况下,能够大大减少须要从专家那里收集的标签数量,并且依然能够失去一个很好的模型。这样能够为机器学习我的项目节省时间和金钱!
1.1 active learning 的根本思维
被动学习的模型如下:
A=(C,Q,S,L,U),
其中 C 为一组或者一个分类器,L 是用于训练已标注的样本。Q 是查问函数,用于从未标注样本池 U 中查问信息量大的信息,S 是督导者,能够为 U 中样本标注正确的标签。学习者通过大量初始标记样本 L 开始学习,通过肯定的查问函数 Q 抉择出一个或一批最有用的样本,并向督导者询问标签,而后利用取得的新常识来训练分类器和进行下一轮查问。被动学习是一个循环的过程,直至达到某一进行准则为止 。
这个准则能够是迭代次数,也能够是准确率等指标达到设定值
在各种被动学习办法中,查问函数的设计最罕用的策略是:不确定性准则(uncertainty)和差异性准则(diversity)。 不确定性越大代表信息熵越大,蕴含的信息越丰盛;而差异性越大代表抉择的样本可能更全面地代表整个数据集。
对于不确定性,咱们能够借助信息熵的概念来进行了解。咱们晓得信息熵是掂量信息量的概念,也是掂量不确定性的概念。信息熵越大,就代表不确定性越大,蕴含的信息量也就越丰盛。事实上,有些基于不确定性的被动学习查问函数就是应用了信息熵来设计的,比方熵值装袋查问(Entropy query-by-bagging)。所以,不确定性策略就是要千方百计地找出不确定性高的样本,因为这些样本所蕴含的丰盛信息量,对咱们训练模型来说就是有用的。
那么差异性怎么来了解呢?之前说到或查问函数每次迭代中查问一个或者一批样本。咱们当然心愿所查问的样本提供的信息是全面的,各个样本提供的信息不反复不冗余,即样本之间具备肯定的差别 性。在每轮迭代抽取单个信息量最大的样本退出训练集的状况下,每一轮迭代中模型都被从新训练,以新取得的常识去参加对样本不确定性的评估能够无效地防止数据冗余。然而如果每次迭代查问一批样本,那么就应该想方法来保障样本的差异性,防止数据冗余。
从上图也能够看进去,在雷同数目的标注数据中,被动学习算法比监督学习算法的分类误差要低。这里留神横轴是标注数据的数目,对于被动学习而言,雷同的标注数据下,被动学习的样本数 > 监督学习,这个比照次要是为了阐明两者对于训练样本的应用效率不同:被动学习训练应用的样本都是通过算法筛选进去对于模型训练有帮忙的数据,所以效率高。然而如果是雷同样本的数量上来比照两者的误差,那必定是监督学习占优,这是毋庸置疑的。
1.2active learning 与半监督学习的不同
很多人认为被动学习也属于半监督学习的领域了,但实际上是不一样的,半监督学习和直推学习 (transductive learning) 以及被动学习,都属于利用未标记数据的学习技术,但根本思维还是有区别的。
如上所述,被动学习的“被动”,指的是被动提出标注申请,也就是说,还是须要一个外在的可能对其申请进行标注的实体(通常就是相干畛域人员),即被动学习是交互进行的。
而半监督学习,特指的是学习算法不须要人工的干涉,基于本身对未标记数据加以利用。
2. 被动学习根底策略(小试牛刀)
2.1 常见被动学习策略
在未标记的数据集上应用被动学习的步骤是:
- 首先须要做的是须要手动标记该数据的一个十分小的子样本。
- 一旦有大量的标记数据,就须要对其进行训练。该模型当然不会很棒,然而将帮忙咱们理解参数空间的哪些畛域须要首标记。
- 训练模型后,该模型用于预测每个残余的未标记数据点的类别。
- 依据模型的预测,在每个未标记的数据点上抉择分数
- 一旦抉择了对标签进行优先排序的最佳办法,这个过程就能够进行迭代反复: 在基于优先级分数进行标记的新标签数据集上训练新模型。一旦在数据子集上训练完新模型,未标记的数据点就能够在模型中运行并更新优先级分值,持续标记。
- 通过这种形式,随着模型变得越来越好,咱们能够一直优化标签策略。
2.1.1 基于数据流的被动学习办法
基于流 (stream-based) 的被动学习中,未标记的样例按先后顺序一一提交给抉择引擎,由抉择引擎决定是否标注以后提交的样例,如果不标注,则将其抛弃。
在基于流的被动学习中,所有训练样本的汇合以流的模式出现给算法。每个样本都被独自发送给算法。算法必须立刻决定是否标记这个示例。从这个池中抉择的训练样本由 oracle(人工的行业专家)标记,在显示下一个样本之前,该标记立刻由算法接管。
于基于流的算法不能对未标注样例逐个比拟,须要对样例的相应评估指标设定阈值,当提交给抉择引擎的样例评估指标超过阈值,则进行标注,但这种办法须要针对不同的工作进行调整,所以难以作为一种成熟的办法投入使用。
2.1.2 基于数据池的被动学习办法
基于池 (pool-based) 的被动学习中则保护一个未标注样例的汇合,由抉择引擎在该汇合中抉择以后要标注的样例。
在基于池的抽样中,训练样本从一个大的未标记数据池中抉择。从这个池中抉择的训练样本由 oracle 标记。
2.1.3 基于查问的被动学习办法
这种基于委员会查问的办法应用多个模型而不是一个模型。
委员会查问(Query by Committee),它保护一个模型汇合(汇合被称为委员会),通过查问(投票)抉择最“有争议”的数据点作为下一个须要标记的数据点。通过这种委员会可的模式以克服一个繁多模型所能表白的限制性假如(并且在工作开始时咱们也不晓得应该应用什么假如)。
有两个假如前提:
- 所有模型在已标注数据上后果统一
- 所有模型对于未标注后果样本集存在局部一致
2.2 不确定性度量
辨认接下来须要标记的最有价值的样本的过程被称为“抽样策略”或“查问策略”。在该过程中的评分函数称为“acquisition function”。该分数的含意是:得分越高的数据点被标记后,对模型训练后的产生价值就越高。有很多中不同的采样策略,例如 不确定性抽样,多样性采样等,在本节中,咱们将仅关注最罕用策略的不确定性度量。
不确定性抽样是一组技术,能够用于辨认以后机器学习模型中的决策边界左近的未标记样本。这里信息最丰盛的例子是分类器最不确定的例子。模型最不确定性的样本可能是在分类边界左近的数据。而咱们模型学习的算法将通过观察这些分类最艰难的样本来取得无关类边界的更多的信息。
让咱们以一个具体的例子,假如正在尝试建设一个多类分类,以辨别 3 类猫,狗,马。该模型可能会给咱们以下预测:
{
"Prediction": {
"Label": "Cat",
"Prob": {
"Cat": 0.9352784428596497,
"Horse": 0.05409964170306921,
"Dog": 0.038225741147994995,
}
}
}
这个输入很可能来自 softmax,它应用指数将对数转换为 0 - 1 范畴的分数。
2.2.1 最小置信度:(Least confidence)
最小置信度 =1(100%置信度)和每个我的项目的最自信的标签之间的差别。
尽管能够独自按置信度的程序进行排名,但将不确定性得分转换为 0 - 1 范畴,其中 1 是最不确定的分数可能很有用。因为在这种状况下,咱们必须将分数标准化。咱们从 1 中减去该值,将后果乘以 N /(1-N),n 为标签数。这时因为最低置信度永远不会小于标签数量(所有标签都具备雷同的预测置信度的时候)。
让咱们将其利用到下面的示例中,不确定性分数将是:(1-0.9352)*(3/2)= 0.0972。
最小置信度是最简略,最罕用的办法,它提供预测程序的排名,这样能够以最低的置信度对其预测标签进行采样。
2.2.2 置信度抽样间距(margin of confidence sampling)
不确定性抽样的最直观模式是两个置信度做高的预测之间的差值。也就是说,对于该模型预测的标签比照第二高的标签的差别有多大?这被定义为:
不确定性抽样的最直观模式是两个置信度做高的预测之间的差值。也就是说,对于该模型预测的标签比照第二高的标签的差别有多大?这被定义为:
同样咱们能够将其转换为 0 - 1 范畴,必须再次应用 1 减去该值,然而最大可能的分数曾经为 1 了,所以不须要再进行其余操作。
让咱们将置信度抽样间距利用于下面的示例数据。“猫”和“马”是前两个。应用咱们的示例,这种不确定性得分将为 1.0 –(0.9352–0.0540)= 0.1188。
2.2.3 抽样比率(Ratio sampling)
置信度比是置信度边缘的变动,是两个分数之间的差别比率而不是间距的差别的绝对值。
2.2.4 熵抽样(Entropy Sampling)
利用于概率分布的熵包含将每个概率乘以其本身的对数,而后求和取正数:
让咱们在示例数据上计算熵:
失去 0 – sum(–0.0705,–0.0903,–0.2273)= 0.3881
除以标签数的 log 失去 0.3881/ log2(3)= 0.6151
3. 被动学习办法归类
3.1 基于不确定性的被动学习办法
基于不确定性的被动学习办法将最小化条件熵作为寻找断定函数的根据。
Bayesian Active Learning for Classification and Preference Learning(论文 2011 年)通过贪心地找到一个能使以后模型熵最大水平缩小的数据点 x,但因为模型参数维度很高,间接求解艰难,因而在给定数据 D 和新增数据点 x 条件下,模型预测和模型参数之间的互信息。
Deep Bayesian Active Learning with Image Data(论文,代码 2017 年)中实现了这一思路,过程如下:
(1)从整体的数据当选一个子集作为初始训练集,来训练任务模型(分类,宰割等等)
(2)用训好的模型在残余未标注的图像上以 train 模式跑多组预测,记录对每个样本的输入。
(3)计算对每个样本的熵作为不确定性分数。
(4)从大到小顺次抉择下一组数据标注好后退出训练集,更新训练模型(在上一代模型上 fine-tuning),直到满足进行条件。
思考到深度学习中,不能每次选一个数据样本就从新训练一次模型,而是以批数据的模式进行训练,BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning(论文 2019 年)中,把原来的一个样本变成了一批样本。
3.2 基于最近邻和反对向量的分类器的办法
基于不确定性的被动学习办法依赖模型预测的分类概率来确定模型对该样本的不确定性,但这个概率并不牢靠,因为应用 softmax 分类器的神经网络并不能辨认散布外样本,且很容易对 OOD 样本做出适度自信的预测。
OOD(Out of Distribution(OOD) detection 指的是模型可能检测出 OOD 样本,而 OOD 样本是绝对于 In Distribution(ID) 样本来说的。传统的机器学习办法通常的假如是模型训练和测试的数据是独立同散布的(IID, Independent Identical Distribution),这里训练和测试的数据都能够说是 In Distribution(ID)。在理论利用当中,模型部署上线后失去的数据往往不能被齐全管制的,也就是说模型接管的数据有可能是 OOD 样本,也能够叫异样样本(outlier, abnormal)。
基于深度模型的 Out of Distribution(OOD)检测相干办法介绍
在被动学习中,初始阶段应用非常少的标注样本训练模型,意味着大量的未标注样本可能都是 OOD 样本,若模型过早的给这部分样本一个适度自信的预测概率,就可能使咱们错失一些有价值的 OOD 样本。如图所示,初始训练阶段,模型不足虚线框以外的区域的训练数据,但 softmax 分类器依然会对这些区域给出很自信的预测,导致抉择新的待标注样本时,图中的 q 点会被疏忽,而若 q 点正好不是 class B,则会影响被动学习的性能。
3.2.1 NNClassifier
针对这个问题 NNclassifier 中设计了一个基于最近邻和反对向量的分类器来取代 softmax, 使模型能对远离已有训练数据的区域产生较高的不确定性。
具体而言,每类训练学习 N 个反对向量,基于样本特色与各类的反对向量之间的间隔,就能够定义分类概率为与这 N 个反对向量的核函数的最大间隔:
$p_c\left(f_x\right)=\max _n \delta\left(-d\left(f_x, m_{c, n}\right)\right)$
定义了新的能够意识到 OOD 样本的分类器之后,作者给出了对应的被动学习策略:
Rejection confidence,用于度量远离所有反对向量的样本,如图 (b) 所示;
confusion confidence,用于度量远离反对向量以及同时凑近多个不同类反对向量的样本,如图©所示。
$\begin{aligned}
&M_{\text {rejection}}(x)=\sum_c\left(1-p_c\left(f_x\right)\right) \
&M_{\text {confusion}}(x)=\sum_c\left(1+p_c\left(f_x\right)-\max _c p_c\left(f_x\right)\right)
\end{aligned}$
3.2.2 RBF network + Gradient Penalty
Amersfoort 用 RBF 神经网络来促使网络具备良好的 OOD 样本不确定性,同时给出了基于梯度范数的双边正则来减弱特色解体(feature collapse) 的问题。与 NNClassifier 雷同,本文的作者也定义了一个与各类特色间隔的函数 K 来帮忙检测 OOD 样本,损失函数同样定义成逐类的二值穿插熵。不同于 NNClassifier 的是,这里的间隔是每个样本与该类样本的指数滑动均匀失去的。
$K_c\left(f_\theta(x), e_c\right)=\exp \left(-\left\|W_c f_\theta(x)-e_c\right\|_2^2 /\left(2 n \sigma^2\right)\right)$
另一个不同点在于本文退出了一个双边梯度正则项。
$\max \left(0,\left\|\operatorname{grad}_z \sum_c K_{\mathrm{c}}\right\|_F^2-1\right)$
这个正则项的作用有两个,一个是保障平滑性,也就是类似的输出有类似的输入,这个是由 max()中的梯度局部保障的,而梯度 - 1 则起到防止特色解体的作用,也就是相比单纯的应用特色范数正则,- 1 可能防止模型将很多不同的输出映射到完全相同的特色,也就是 feature collapse。
3.3 基于特色空间笼罩的办法
接下来次要介绍基于特色空间笼罩的被动学习代表性工作:coreset。coreset 的次要奉献:给出了基于特色空间笼罩的被动学习算法的近似损失上界;证实了新增加的样本在可能放大标注样本对残余样本的笼罩半径时,能力进步近似成果。
coreset 认为被动学习指标就是放大外围集误差,即被动学习选出的样本损失与整体样本损失之间的差异。
咱们在被动学习筛选新样本时,并不知道样本的标签,也就没法间接求外围集损失。作者把外围集损失的上界转换做残余训练样本与挑选出的标注样本间的最大间隔。因而,被动学习问题等价于抉择增加一组标注样本,使得其余样本对标注样本集的最大间隔 $\delta_s$ 最小,也就是 k -center 集笼罩问题。如图所示,蓝色为挑选出的标注样本,红色为其余样本。
3.4 基于反抗学习的办法
3.4.1VAAL
Variational Adversarial Active Learning(地址 2019 年)形容了一种基于池的半监督被动学习算法,它以反抗的形式(对于反抗学习的具体介绍参见这里)隐式地学习了这种采样机制。与传统的被动学习算法不同,VAAL 与工作无关,也就是说,它不依赖于试图获取标注数据的工作的性能。VAAL 应用变分自编码器 (VAE) 和训练好的反抗网络来学习潜在空间,以辨别未标注和标注的数据。
核心思想
本文的出发点能够了解如下:之前很多办法的 uncertainty 都是基于模型的,也就是说须要有个宰割 / 分类等模型计算预测后果,而后从后果的好坏去剖析相应的被预测样本的价值。而本文的 uncertainty 是基于数据自身的,也就是说并非基于预测后果自身去剖析,而是间接基于样本本身的特色去解决。
核心思想:利用 VAE 对已标注的数据和未标注的数据进行编码。因而,对于一个未标注的数据,如果其编码向量与潜在空间中向量的差别足够大,那么咱们就认为该样本是有价值的。
而对于样本的抉择,是通过一个反抗网络来实现的,该反抗网络被用来辨别一个样本是已标注还是未标注。因而上文的 VAE 还有一个额定的工作,即他的编码要让判断器难以辨别曾经标注还是没有标注。
网络结构
VAE 和反抗网络之间的最大最小博弈是这样进行的:VAE 试图坑骗反抗网络去预测,所有的数据点都来自已标注池;反抗网络则学习如何辨别潜在空间中的不相似性。其构造如下:
VAE 和反抗网络之间的最大最小博弈是这样进行的:VAE 试图坑骗反抗网络去预测,所有的数据点都来自已标注池;反抗网络则学习如何辨别潜在空间中的不相似性。其构造如下:
被动学习策略
- 一开始随机抉择 10% 的图像开始训练,此时记训练的网络为版本 1。对于版本 1,训练会迭代 max_iterations 次,与个别网络训练过程的差异在于每个 iteration除了训练 ” 任务模型 ” 外,还得去训练 VAE 与判断器。而当迭代完结后,训练失去的 ” 任务模型 ” 其实与间接随机抽取 10% 的图像训练没有区别,因为 VAE 与判断器只对下一个网络版本有奉献。
- 利用 VAE 与判断器内蕴含的教训,一次性抽取 5% 的新数据退出训练集,此时开始训练网络版本 2。而这里特地要害的一点是,版本 2 依然是从预训练 VGG 开始 从头训练的(而非在版本 1 的根底上持续 finetune)。至此始终迭代到选取 50% 的数据完结。
模型特点
本文的强化学习有点 ” 离线 ” 的滋味,即最初选取出的 50% 数据能够很轻松的迁徙至其余模型中,抉择的过程只依赖 VAE 与判断器,而与具体的工作无关。
此外该模型训练非常耗时——从 10% 逐渐晋升 5% 至 50%,相当于程序训练了 9 个雷同的模型,再思考训练 VAE 与判断器的耗时,训练该被动学习框架的所需工夫可能高达原有根底网络的 10 倍。
3.4.2SRAAL
SRAAL(论文 https://openaccess.thecvf.com…)是 VAAL 的一个改进版。在 VAAL 中,判断器的训练的时候只有两种状态,标注 / 未标注。SRAAL 的作者认为这样疏忽了一些信息,有时候任务模型曾经能很确信的对某个未标注样本做预测了,就应该升高抉择这个样本的优先级。
为了实现这个思路,作者给出了一个任务模型 预测不确定度的计算函数 , 用这个函数的输入后果作为生成反抗网络的判断器训练过程中,无标注样本的标签,而不必简略的个一个二值变量。
3.4.3ARAL
VAAL 无效的 一个要害的因素实际上是同时利用标注 / 无标注的样本独特训练产生特色映射,而不像之前基于特色的 coreset 等被动学习办法,仅用标注数据训练产生特色。
ARAL(https://arxiv.org/abs/1912.09720 2019.11)更进一步,也用这些个无标注样本来训练任务模型 (如分类器) 自身,整体依然是在 VAAL 根底上做的,只是减少了 cgan 的判断器来实现半监督训练任务模型。整体来说,基于池的被动学习用标注样本来训练任务模型,合成的被动学习标注合成的样本来训练任务模型。
相比之下,VAAL 用标注数据训练任务模型,用所有数据来训练产生特色;ARAL 用所有的训练数据,合成数据来训练任务模型、产生特色映射。相当于应用了半监督的学习办法,与和之前纯基于监督训练的被动学习办法比拟天然有所晋升。
4. 交融不确定性和多样性的学习办法☆
之前介绍了基于不确定性的办法,以及基于多样性的办法。接下来咱们来看看交融两者的办法。就动机而言,如果只用不确定性规范来选样本,在批量抉择的场景中,很容易呈现选到冗余样本的问题 。而在深度学习中,因为训练开销的缘故,通常都采纳批被动学习,所以为了进步被动学习的效率,就得思考批量抉择高不确定性样本时的多样性问题。而从多样性样本抉择办法的角度来说, 单纯的特色空间笼罩算法不能辨别模型是否曾经能很好预测某局部样本,会限度这类办法所能达到的下限。
交融不确定性和多样性的思路次要有三种:
- 齐全连续信息论的剖析思路,也就是 batchBALD,在批量抉择的过程中不采取每个样本互信息间接相加,而用 求并的办法来防止选到冗余样本;
- 先用不确定性规范选出大于 budget size 的候选集,再用集笼罩的思路来抉择特色差别大的样本;
- 是 2 的扩大,通过在 梯度嵌入空间聚类来选样本,从而避开人工给定候选样本集大小的问题。
4.1 信息论思路
第一种从实践上来看很优雅,从信息论的角度推出怎么在批量抉择的场景里选到对模型参数改善最无效的一组样本。但计算复杂度很高,可能并不是很实用,该论文中的试验局部也都是在 很小的数据集 上实现的。
4.2 构建候选集 + 大差别样本——SA
这类办法实现起来最简略,十分启发式。整个被动学习分两步来做,第一步先用不确定性 (熵,BALD 等) 选超出被动学习 budget size 的候选样本集,在用多样性的办法,抉择能最好笼罩这个候选集的一组样本。
SA 2017 用 Bootstrapping 训练若干个模型,用这些模型预测的 variance 来示意不确定性,之后再用候选集中样本特色类似度来选取与曾经选到的样本差别最大的样本,就相似 coreset-greedy 的做法。
CoreLog 2021 基于 Proper Scoring Rules 给了示意不确定性的度量,先选出不确定性大的前 k% 个样本,再用 kmeans 聚类来抉择多样的样本。
这种联合的形式没故障,但有个小的问题,很难说清咋确定这个 候选集大小,到底多大能算作高不确定性,能丢到候选集里。
4.3 梯度嵌入空间——badge☆
badge:https://arxiv.org/abs/1906.03671 2020 和第二类办法的思路很像,不确定性的用模型参数就某个样本的梯度大小来示意,多样性用 kmeans++ 来保障。但这个办法很奇妙的中央在于,通过把这个问题丢到梯度嵌入空间来做(而不像第二类办法在样本的特色空间保障多样性),使样本的多样性和不确定性能同时失去保障。
梯度范数大小示意不确定性很好了解,和之前用熵之类的指标来示意不确定性相似,模型预测的概率小,意味着熵大,也意味着如果把这样本标了,模型要有较大的变动能力拟合好这个样本,也就是求进去的梯度大。梯度示意多样性,是这类办法的独特之处,用梯度向量来聚类,选到的差别大的样本就变成:让模型参数的更新方向不同的样本,而不是样本特色自身不同。
在用梯度示意了不确定性和多样性之后,怎么来选一批既有高不确定性,又不同的样本呢?badge 的做法是 Kmeans++ 聚类,第一个样本选梯度范数最大的样本,之后根据每个样本梯度与选到的样本梯度的差的范数来采样新的样本。这里留神这个差是两个向量的差,所以天然的防止了反复的选到梯度方向靠近且范数都比拟大的一组样本。
5. 基于变动最大的办法
这一类办法外围的观点是,不论不确定性或多样性,而是心愿选出的样本能使模型产生的变动最大。变动最大能够着眼于 loss 最大,也能够关注梯度的状况,比方梯度范数大小。
learning loss 2019 在任务模型上加一个小的从属子网络用来学习预测样本的损失值。训练任务模型的时候,也同时训练这个预测损失模块,之后就用这个模块来预测对哪个未标注样本的损失大,就选他。整个算法的流程图如下
损失预测模块的构造和损失计算方法如下:
6. 总结
被动学习 (Active Learning) 综述以及在文本分类和序列标注利用我的项目链接 fork 一下,含实际程序,因篇幅无限就没放在本博客中,如有需要请自行 fork
https://aistudio.baidu.com/ai…
取得有用是标注数据在训练时是十分重要的,然而标注数据可能很十分的麻烦费劲,并且如果标注的品质不佳也会对训练产生很大的影响。被动学习是解决这个问题的一个方向,并且是一个十分好的方向。