Active Learning.
深度学习模型通常依赖大量标注数据来提供良好性能,然而数据的标注可能面临成本较高、预算有限、标注困难等问题。主动学习 (Active Learning)通过从未标注数据中选择一小部分样本进行标注和训练来降低标注成本;其出发点是并非所有样本对下游任务都是同等重要的,因此仅标注更“重要”的样本能够降低标注成本并最大化模型性能。
给定一个未标注的数据集\(\mathcal{U}\)和样本的标注上限$B$,主动学习旨在从数据集\(\mathcal{U}\)中选择至多包含$B$个样本的子集,使得在该子集上训练的模型比在其他数据上训练时的表现更好。
本文仅讨论适合于深度学习的主动学习方法。深度主动学习面临的困难包括:
- 深度神经网络的预测结果往往是过度自信的,评估未标注数据的不确定性可能会不可靠。
- 深度网络通常会处理大量数据,因此每次需要选择一批样本进而不是单个样本来进行标注。
深度主动学习中最常见的场景是基于池(pool-based)的主动学习,即从大量未标注的数据样本中迭代地选择最“有价值”的数据,直到性能达到指定要求或标注预算耗尽。
选择最“有价值”的数据的过程被称为采样策略(sampling strategy)或查询策略(query strategy),衡量数据“价值”的函数被称为获取函数(acquisition function)。
深度主动学习方法可以根据不同的采样策略进行分类:
- 不确定性采样 (uncertainty sampling):选择使得模型预测的不确定性最大的样本。不确定性的衡量可以通过机器学习方法(如entropy)、QBC方法(如voter entropy, consensus entropy)、贝叶斯神经网络(如BALD, bayes-by-backprop)、对抗生成(如GAAL, BGADL)、对抗攻击(如DFAL)、损失预测(如LPL)、标签预测(如forgetable event, CEAL)
- 多样性采样 (diversity sampling):选择更能代表整个数据集分布的样本。多样性的衡量可以通过聚类(如core-set, Cluster-Margin)、判别学习(如VAAL, CAL, DAL)
- 混合策略 (hybrid strategy):选择既具有不确定性又具有代表性的样本。样本的不确定性和代表性既可以同时估计(如exploration-exploitation, BatchBALD, BADGS, Active DPP, VAAL, MAL),也可以分两阶段估计(如Suggestive Annotation, DBAL)。
1. 基于不确定性的采样策略 Uncertainty-based Sampling Strategy
基于不确定性(uncertainty)的采样策略是指在采样时选择具有较高不确定性的数据样本。深度学习中的不确定性包括偶然不确定性(数据生成过程的固有误差)和认知不确定性(由训练数据的缺乏导致)。
⚪ 经典机器学习方法
一些基于不确定性的深度主动学习方法继承于机器学习技术中基于池的主动学习方法(以分类任务为例)。
方法 | 采样策略 | 获取函数 |
---|---|---|
最大熵(maximum entropy) | 选择预测熵最大的样本 | \(H(y|x)=-\sum_k p(y=k|x) \log p(y=k|x)\) |
间隔(margin) | 选择预测结果中排名靠前两个类别的预测概率之差最小的样本 | \(-[p(\hat{y}_1|x)-p(\hat{y}_2|x)]\) |
最小置信度(least confidence) | 选择预测结果中排名最前类别的预测概率最小的样本 | \(-p(\hat{y}|x)\) |
变差比(Variation Ratio) | 与最小置信度类似,衡量置信度的缺乏 | \(1-p(\hat{y}|x)\) |
平均标准偏差(mean standard deviation) | 选择所有预测类别的平均标准偏差最大的样本 | \(\frac{1}{k}\sum_k \sqrt{\text{Var}[p(y=k|x)]}\) |
⚪ Query-By-Committee (QBC)
在经典机器学习方法中,也可以训练一系列不同的模型(如设置不同的随机数种子或超参数),通过给定样本在不同模型之间的输出变化来估计不确定性;这种方法称为委员会查询(query-by-committee, QBC)。
若共训练$N$个模型,每个模型的预测结果为$p_1,…,p_N$,则基于QBC的获取函数包括:
- 选民熵(voter entropy):计算标签$y$的票数结果的熵:$H(\frac{\text{vote}(y)}{N})$
- 一致熵(consensus entropy):计算平均预测结果的熵:$H(\frac{\sum_n p_n}{N})$
- KL散度:计算每个模型预测结果与平均预测结果的KL散度:$\frac{1}{N}\sum_n KL[p_n||\frac{\sum_n p_n}{N}]$
⚪ Bayesian Active Learning by Disagreement (BALD)
使用贝叶斯神经网络能够对模型的认知不确定度进行较为准确的估计。贝叶斯神经网络的网络参数是从分布中采样得到的;在进行推断时,通过对参数分布进行积分来集成无穷多的神经网络进行预测。
在实践中采用蒙特卡洛dropout进行近似。具体地,在测试时通过多次应用dropout,并将结果取平均,便可以实现蒙特卡洛积分近似。BALD在此基础上选择模型输出和模型参数的互信息最大的样本:
\[I(y;w | x,D_{train}) ≈ -\sum_c (\frac{1}{T}\sum_t p_c^t)\log (\frac{1}{T}\sum_t p_c^t) +\frac{1}{T}\sum_{t,c} p_c^t\log p_c^t\]⚪ bayes-by-backprop
bayes-by-backprop方法通过把网络权重建模为一个变分分布$q(w|\theta)$来直接估计认知不确定性。构造变分分布参数$\theta$的损失函数:
\[\mathcal{L}(\theta) = \log q(w|\theta) - \log p(w)p(D|w)\]将变分分布$q(w|\theta)$设置为对角高斯分布,通过梯度更新参数$\theta$,进而构造网络权重。认知不确定性可以通过推断时采样不同的模型参数来计算。
⚪ Generative Adversarial Active Learning (GAAL)
GAAL通过生成对抗网络生成新的样本进行标记和训练,在生成的样本中采样距离决策边界较近的样本(决策边界由支持向量机提供)。
⚪ Bayesian Generative Active Deep Learning (BGADL)
BGADL通过BALD方法选择互信息较大的未标注样本,通过VAE-ACGAN模型实现样本生成、样本判别和类别预测。
⚪ Deep-Fool Active Learning (DFAL)
DFAL利用对抗攻击衡量样本的不确定性。对抗攻击的出发点是寻找最小的扰动以跨越决策边界,因此选择与其对抗样本距离较小的样本,并对原样本和对抗样本采用相同的标签进行标注。
⚪ Loss Prediction Loss (LPL)
损失预测(loss prediction)的基本思想是预测未标注样本的损失,更高的损失意味着该样本学习更困难、更值得标注。
⚪ Forgetable Event
遗忘事件记录了样本在训练阶段的预测标签的变化情况。如果模型在训练过程中改变预测结果则表明模型对该样本的不确定性较大,因此在采样时选择标签变化次数较多的可遗忘样本。
⚪ Cost-Effective Active Learning (CEAL)
CEAL是一种结合主动学习和自监督学习的框架。一方面通过主动学习选择具有高不确定性的样本进行人工标注,另一方面选择具有较高预测置信度的样本并为它们指定伪标签进行特征学习。
2. 基于多样性的采样策略 Diversity-based Sampling Strategy
基于多样性(diversity)的采样策略也称为基于代表性(representive)的采样策略,是指在采样时选择更能代表整个数据集分布的数据样本。多样性采样在选择数据样本时通常根据样本之间的相似度进行衡量。
⚪ Core-Set
core-set方法是指选择$b$个样本加入训练集后,未标注样本池中的任意样本与其距离最近的已标注样本的距离最小化。实现时常采用贪心算法:每次选择一个与已标注样本集的距离最大的样本进行标注,重复$b$次。
⚪ Cluster-Margin
Cluster-Margin首先为未标注样本集应用具有平均链接的层次聚集聚类算法生成聚类$C$。然后选择Margin得分最低的$k_m$个样本,根据聚类$C$将其划分到不同的聚类簇中。最后采用循环采样的方式从每个簇中采样样本,直至选择$k_t$个样本。
⚪ Variational Adversarial Active Learning (VAAL)
VAAL使用$\beta$-VAE模型将样本嵌入到低维特征空间,并使用一个判别器区分已标注样本和未标注样本的特征。训练完成后,选择判别器预测概率得分最小的一批未标注样本补充到标注池中,因为这些样本与已标注样本具有最小的特征相关性。
⚪ Contrastive Active Learning (CAL)
CAL选择对比得分较高的样本。对比得分是未标注样本$x$与其特征空间中距离最近的$k$个标注样本\(\{x^l\}\)特征之间的平均KL散度,即选择与不同标签的样本具有相似特征的新样本。
⚪ Discriminative Active Learning (DAL)
DAL把主动学习建模为未标注类别\(\mathcal{U}\)和已标注类别\(\mathcal{L}\)的二分类问题。训练一个二分类器$\Psi$使其能成功区分未标注样本和已标注样本,然后选择未标注类别得分最大的前$K$个样本:
\[\mathop{\arg \max}_{x \in \mathcal{U}} \hat{P} (y=u|\Psi(x))\]3. 混合策略 Hybrid Strategy
混合策略(Hybrid Strategy)是指在样本的不确定性和多样性之间进行权衡,选择既具有不确定性又具有较强代表性的样本。
⚪ Exploration-Exploitation
exploration-exploitation采用加权求和的方法同时考虑样本的不确定性得分和多样性得分。开发(exploitation)阶段旨在选择具有最大不确定性和最小冗余度的样本;探索(exploration)阶段旨在选择距离已标注样本集最远的样本。
⚪ BatchBALD
BatchBALD将BALD扩展为批量形式,其获取函数为一个批量样本的模型输出与模型参数之间的互信息:
\[\begin{aligned} I(y_1,\cdots,y_B;w | x_1,\cdots,x_B,D_{train}) =& H(y_1,\cdots,y_B|x_1,\cdots,x_B,D_{train}) \\ &- E_{p(w|D_{train})}[H(y_1,\cdots,y_B|x_1,\cdots,x_B,w,D_{train})] \end{aligned}\]⚪ Batch Active learning by Diverse Gradient Embedding (BADGE)
BADGE把样本映射到网络最后一层参数的梯度空间中,同时捕捉模型的不确定性和数据样本的多样性。其中不确定性通过梯度的量级衡量;多样性通过$k$-means++算法在梯度空间中选择样本点。
⚪ Active DPP
Active DPP使用行列式点过程(DPP)建模样本的不确定性和多样性。DPP是一类排斥点过程,可以用于生成不同批次的样本。作者使用不确定性DPP根据学习模型提供的不确定性得分选择数据样本,并使用探索DPP寻找新的决策边界。
⚪ Wasserstein Adversarial Active Learning (WAAL)
WAAL采用Wasserstein距离将主动学习中的查询过程建模为分布匹配问题,目标函数为:
\[\mathop{\min}_{\hat{B},h} \hat{R}_{\hat{L}∪ \hat{B}}(h) + \mu \mathcal{W}_1(\hat{D},\hat{L}∪ \hat{B})\]在实践中通过对抗学习来实现,对应的网络由三部分构成:特征提取器$\theta^f$、任务预测器$\theta^h$和分布判别器$\theta^d$;对应的问题可以建模为一个最小-最大优化问题:
\[\mathop{\min}_{\theta^f,\theta^h,\hat{B}} \mathop{\max}_{\theta^d} \hat{R}(\theta^f,\theta^h) + \mu \hat{E}(\theta^f,\theta^d)\]⚪ Minimax Active Learning (MAL)
MAL最小化特征编码网络$F$的熵使得具有相似预测标签的样本具有相似的特征;最大化分类器$C$的熵使得预测结果为更均匀的类别分布;判别器$D$则试图有效地区分标记样本和未标记样本。在采样时通过判别器$D$的得分衡量样本的多样性,通过分类器$C$的熵衡量样本的不确定性。
⚪ Suggestive Annotation
Suggestive Annotation首先选择一批具有较高不确定性的样本,再从中选择具有较高代表性的样本进行标注。其中不确定性是利用在标注样本集上训练的集成模型来估计的,而代表性是通过核心集方法进行选择的。
⚪ Diverse mini-batch Active Learning (DBAL)
DBAL首先选择一批具有较高不确定性的样本,再从中选择具有较高代表性的样本进行标注。其中不确定性是通过加权$k$-means算法进行选择的,而代表性是通过$k$-means算法进行选择的。
⚪ 参考文献
- Learning with not Enough Data Part 2: Active Learning:Blog by Lilian Weng.
- Overview of Active Learning for Deep Learning:Blog by Jacob Gildenblat.
- Awesome Active Learning:(github) Hope you can find everything you need about active learning in this repository.
- A Comparative Survey of Deep Active Learning:(arXiv2203)一篇深度主动学习的综述.
- Weight Uncertainty in Neural Networks:(arXiv1505)神经网络中的权重不确定性。
- Cost-Effective Active Learning for Deep Image Classification:(arXiv1701)CEAL:用于深度图像分类的高性价比主动学习。
- Generative Adversarial Active Learning:(arXiv1702)GAAL:生成对抗主动学习。
- What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?:(arXiv1703)使用贝叶斯深度学习建模深度学习中的不确定性。
- Deep Bayesian Active Learning with Image Data:(arXiv1703)BALD:贝叶斯不一致主动学习。
- Suggestive Annotation: A Deep Active Learning Framework for Biomedical Image Segmentation:(arXiv1706)暗示标注:一种用于生物医学图像分割的深度主动学习框架。
- Active Learning for Convolutional Neural Networks: A Core-Set Approach:(arXiv1708)基于核心集的主动学习方法。
- Deep Similarity-Based Batch Mode Active Learning with Exploration-Exploitation:(ICDM2017)通过探索-开发实现基于深度相似性的批处理主动学习。
- Adversarial Active Learning for Deep Networks: a Margin Based Approach:(arXiv1802)DFAL:一种基于决策边界的对抗主动学习方法。
- Diverse mini-batch Active Learning:(arXiv1901)DBAL:多样性小批量主动学习。
- Bayesian Generative Active Deep Learning:(arXiv1904)BGADL:贝叶斯生成深度主动学习。
- Variational Adversarial Active Learning:(arXiv1904)VAAL: 变分对抗主动学习。
- Learning Loss for Active Learning:(arXiv1905)主动学习中的损失预测。
- BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning:(arXiv1906)BatchBALD:深度贝叶斯主动学习的高效多样性批量获取。
- Deep Batch Active Learning by Diverse, Uncertain Gradient Lower Bounds:(arXiv1906)BADGE:基于多样性梯度嵌入的批量主动学习。
- Batch Active Learning Using Determinantal Point Processes:(arXiv1906)Active DPP:基于行列式点过程的批量主动学习。
- Discriminative Active Learning:(arXiv1907)DAL:判别式主动学习。
- Deep Active Learning: Unified and Principled Method for Query and Training:(arXiv1911)WAAL:使用Wasserstein距离建模主动学习的查询过程。
- Minimax Active Learning:(arXiv2012)MAL:最小最大主动学习。
- When Deep Learners Change Their Mind: Learning Dynamics for Active Learning:(arXiv2107)基于遗忘事件的主动学习。
- Batch Active Learning at Scale:(arXiv2107)Cluster-Margin:一种大规模批量主动学习方法。
- Active Learning by Acquiring Contrastive Examples:(arXiv2109)CAL:对比主动学习。