[论文翻译] Active Learning for Open-set Annotation

https://arxiv.org/abs/2201.06758
省略了论文的图表部分

Abstract

现有的主动学习研究通常是在闭集环境下进行的,假设所有需要标注的数据例子都来自已知的类别。然而,在实际的标注任务中,未标注的数据通常包含大量来自未知类别的例子,导致大多数主动学习方法的失败。为了解决这个开放集标注(Open-Set Annotation, OSA)问题,我们提出了一个新的主动学习框架,称为LfOSA,它通过有效的采用策略来提高分类性能,精确检测已知类别的例子来进行标注。LfOSA框架引入了一个辅助网络,用高斯混合模型对每个实例的最大激活值(MAV, Max Activation Value)分布进行建模,它可以动态地从未标记的集合中选择已知类别中概率最高的实例。此外,通过降低损失函数的温度T,检测模型将通过利用已知和未知的监督来进一步优化。实验结果表明,与最先进的主动学习方法相比,所提出的方法可以显著提高已知类的选择质量,并以较低的注释成本实现更高的分类精度。据我们所知,这是第一个用于开集标注的主动学习的工作。

I. Introduction

深度学习的显著成功主要归功于收集了带有人类标注标签的大型数据集。然而,用高质量的注释来标注大规模的数据是非常昂贵和耗时的。因此,用有限的标注数据进行学习是一个重大挑战。

主动学习(AL)是解决这个问题的一个主要方法。它从未标记的数据中迭代选择最有用的例子,从专家中查询它们的标签,在减少注释成本的同时实现有竞争力的性能。现有的AL方法通常在一个闭集的环境中工作,在这个环境中,标记的和未标记的数据都来自于相同的类别分布。

然而,在一些现实世界的场景中,未标记的数据通常是不受控制的,大量的数据实例来自未知的类别。图1显示了一个为图像共享社交平台训练体育图像分类新模型的例子,该数据库包含了数万亿张由用户上传的无限制类别的图像。在未标记的开放池中,有大量的图片实际上来自不相关的类别(如猫和钢琴等)。这些图片对于学习体育分类器来说通常是无用的,因此选择这些图片进行标注是对注释预算的一种浪费。另一方面,现有的封闭式人工智能系统不能精确区分这些无关的图像和未知的类别,而是倾向于选择它们进行标注,因为它们包含更多的不确定性或信息。因此,在现实世界的开放集案例中,我们非常需要一个有效的、实用的AL系统,它可以1)精确区分不需要的类别的例子;2)同时从需要的类别中查询最有用的例子来训练分类器。

在本文中,我们将这个问题表述为一个开放集注释(Open-Set Annotation, OSA)任务。如图1所示,未标记的集合包含 K K K个已知类和 L L L个未知类,其中 L > K L>K L>K。我们的目标是精确地过滤掉未知类的例子,同时主动地选择一个包含已知类的例子的查询集,尽可能地纯洁。为了克服这一挑战,我们提出了一个新的主动学习框架,称为LfOSA(Learning from Open-Set Annotation, 从开放集注释中学习),它包括两个网络,分别用于检测和分类。具体来说,检测器用高斯混合模型[20]对每个实例的最大激活值(MAV, Max Activation Value)分布进行建模,以动态地将未标记的开放集分为已知集和未知集,然后从已知集中选择确定性较大的实例来构建一个用于标注的查询集。贴完标签后,分类模型将用已知类别的新例子进行更新。同时,由于查询集不可避免地包括一些来自未知类的无效例子,这些无效的例子将被用作负面的训练例子来更新检测器,这样检测器就能保持较高的召回率来识别来自未标记的开放集的已知类例子。此外,通过降低交叉熵(CE)损失的温度T,检测器的可区分性得到进一步加强。

在已知类和未知类的不同匹配率的多个数据集上进行了实验。实验结果表明,与最先进的主动学习方法相比,所提出的方法可以显著提高已知类的选择质量,并以较低的注释成本实现更高的分类精度。

主要贡献可归纳为以下几点:

  • 我们为现实世界的大规模标注任务正式提出了一个新的开放集标注(Open-Set Annotation, OSA)的问题。它提出了一个实际的挑战,即如何保持较高的召回率,从大量未标记的开放集中找到已知类别的例子,用于目标模型训练。

  • 我们提出一个新的主动学习框架LfOSA来解决OSA问题。它反复训练两个网络,一个用于区分已知类和未知类,而另一个用于目标任务的分类。据我们所知,这是第一个关于主动学习的开放集注释的工作。

  • 实验结果验证了所提出的方法可以显著提高选择精度和召回率,同时与最先进的主动学习方法相比,以较低的注释成本实现更高的分类精度。

II. Related Work

Active Learning

主动学习作为一种大规模的标注工具,在有限的标注数据的学习中取得了巨大的成功。它通过选择最有用的例子来查询它们的标签,从而降低了标注的成本。大多数研究的重点是设计有效的采样策略,以确保所选的例子能够最有效地提高模型的性能。在过去的几十年中,人们提出了许多选择例子的标准。在这些方法中,有些方法倾向于选择信息量最大的例子来减少模型的不确定性,而另一些方法倾向于选择最有代表性的例子来匹配数据分布。此外,一些研究试图将信息量和代表性结合起来以达到更好的性能。这些标准的主动学习方法通常是基于闭集的假设,即未标记的数据来自已知的类,这导致了在开放集注释(OSA)任务上的失败。

Open-Set Recognition

开放集识别(OSR)试图解决在训练过程中推理可能面临未见过的类的例子的分类环境。它的目标是学习一个具有拒绝这种未知例子机制的开放集分类器。一个名为OpenMax的代表性方法在OSR问题上取得了显著的成果,它通过结合极值理论和神经网络,采用深度神经网络进行OSR。另一项后续工作通过采用GAN提出了G-OpenMax,用于生成与训练实例高度相似但不属于任何训练类别的实例。然而,这些OSR方法在OSA问题上通常是失败的,因为两者之间有以下两个基本区别。首先,OSR的训练过程有大量的标记数据,并且是基于封闭集的假设,而OSA问题的标记数据有限,其未标记的数据是开放集。第二,OSR的重点是在训练后的测试阶段拒绝未知的例子,而OSA的目的是从未标记的开放集中找到更多的已知例子,以便在训练阶段优化目标模型。

III. The Proposed Approach

在本节中,我们首先对开放集标注(OSA)问题进行形式化,然后详细介绍所提出的LfOSA方法。

A. The OSA Problem Setting

在OSA问题中,我们考虑了一个大规模的标注场景,有一个有限的已标注集 D L D_L DL和大型的未标注开放集 D U D_U DU,其中 D L = { ( x i L , y i L ) } i = 1 n L D_{L}=\left\{\left(x_{i}^{L}, y_{i}^{L}\right)\right\}_{i=1}^{n^{L}} DL={ (xiL,yiL)}i=1nL D U = { x j U } j = 1 n U D_{U}=\left\{x_{j}^{U}\right\}_{j=1}^{n^{U}} DU={ xjU}j=1nU。有 D U = X k n o ∪ X u n k D_{U}=X_{k n o} \cup X_{u n k} DU=XknoXunk X k n o ∩ X u n k = ∅ X_{k n o} \cap X_{u n k}=\emptyset XknoXunk= X k n o X_{k n o} Xkno为已知类的样本, X u n k X_{u n k} Xunk为未知类的样本。每个已标注的样本 x i L x_i^L xiL都属于 K K K个已知类 Y = { y k } k = 1 K Y=\left\{y_{k}\right\}_{k=1}^{K} Y={ yk}k=1K中的一个,而未标注样本 x j U x_j^U xjU可能属于非已知类 Y Y Y中的任意样本。令 X q u e r y X^{query} Xquery表示每轮迭代过程中的查询集,其包含未知查询集 X u n k q u e r y X^{query}_{unk} Xunkquery与已知查询集 X u n k q u e r y X^{query}_{unk} Xunkquery,有 X q u e r y = X k n o q u e r y ∪ X u n k q u e r y X^{ {query }}=X_{k n o}^{query } \cup X_{ {unk }}^{ {query }} Xquery=XknoqueryXunkquery。目标是有选择地构建尽可能多地包含已知例子的查询集。

主动学习(AL)从未标记的数据集中反复选择最有用的例子,从专家中查询其标签。在对新选择的数据进行标注后,可以更新模型以达到更好的性能。具体来说,在第 i i i次迭代中,我们在标注集 D L D_L DL上训练一个参数为 θ C \theta _C θC的分类器 f θ C f_{\theta _C} fθC。然后,根据当前训练的模型,以特定的标准选择一批b个样本 X q u e r y X^{query} Xquery。在查询它们的标签后, k i k_i ki个已知的例子 X k n o q u e r y X^{query}_{kno} Xknoquery被注释,标签集被更新为 D L = D L ∪ X k n o q u e r y D_L = D_L \cup X^{query}_{kno} DL=DLXknoquery,而 l i l_i li未知类别的例子 X u n k q u e r y X ^{query}_{unk} Xunkquery被添加到无效集 D I D_I DI,其中 b = k i + l i b = k_i + l_i b=ki+li。因此,第 i i i次选择中已知类别的召回率和准确率可以定义如下: recall ⁡ i = ∑ j = 0 i k i n k n o \operatorname{recall}_{i}=\frac{\sum_{j=0}^{i} k^{i}}{n_{k n o}} recalli=nknoj=0iki  precision  i = k i k i + l i \text { precision }_{i}=\frac{k_{i}}{k_{i}+l_{i}}  precision i=ki+liki 其中, n k n o n_{kno} nkno表示未标记集中已知类的例子数量。 r e c a l l i recall_i recalli计算 i i i次查询后有多少已知例子被查询到, p r e c i s i o n i precision_i precisioni表示第 i i i次查询中目标样本的比例。显然,如果我们保持较高的精度和召回率来准确选择已知的例子,那么训练好的目标分类器将更加有效。

正如引言中所讨论的,大多数传统的AL方法在OSA问题上都不太有效,因为他们的选择策略倾向于选择具有较大不确定性的开放集(未知)例子。这些来自未知类别的例子对于训练目标模型是无用的,因此传统的AL方法很可能会失败,严重浪费了标注预算。幸运的是,我们应该意识到,尽管这些例子对目标模型来说是无用的,但它们可以被利用来改进检测器模型,以便从开放集中过滤出未知的类。此外,我们发现网络的激活层(倒数第二层)有很强的区分未知类别的能力,这是因为观察到开集例子的最大激活值(MAV)往往与闭集例子的平均MAV相差甚远。通过将检测和分类解耦,我们建议利用已知和未知类别的例子来训练一个具有强大区分能力的检测器,并为目标任务训练一个分类器。

B. Algorithm Detail

图2展示了LfOSA的框架,它主要由三个部分组成:检测器训练、主动采样和分类器训练。具体来说,我们首先通过利用已知和未知的监督来训练一个检测未知例子的网络,同时使用一个低温机制。然后,通过用高斯混合模型(Gaussian Mixture Model, GMM)对每个实例的最大激活值(Max Activation Value, MAV)分布进行建模,可以主动选择最确定的已知实例进行标注。最后,分类模型将用已知类别的新例子来更新。在本节的下面部分,我们将详细介绍这三个部分。

Detector Training

除了对 K K K个已知类别进行分类外,该检测器还被扩展了一个额外的第 K + 1 K+1 K+1输出来预测未知类别。对于一个来自标记或无效集合的给定例子 x x x,我们用onehot编码 p p p来标记它的标签 c c c,即 p c p_c pc的值被设置为1,其他为 0 0 0。然后,我们用以下交叉熵损失来训练检测器: L D ( x , c ) = − ∑ c = 1 K + 1 p c ∗ log ⁡ ( q c T ) \mathcal{L}_{D}(x, c)=-\sum_{c=1}^{K+1} p_{c} * \log \left(q_{c}^{T}\right) LD(x,c)=c=1K+1pclog(qcT) 其中 q c T = exp ⁡ ( a c / T ) ∑ j exp ⁡ ( a j / T ) q_{c}^{T}=\frac{\exp \left(a_{c} / T\right)}{\sum_{j} \exp \left(a_{j} / T\right)} qcT=jexp(aj/T)exp(ac/T) 其中, a c a_c ac是最后一个完全连接层的第 c c c个激活值, T T T是一个温度,它被设置为较低的值 T = 0.5 T=0.5 T=0.5,以产生一个更清晰的概率分布 q c T q^T_c qcT在类上。显然,通过最小化损失函数,已知类的例子在前 K K K维上有较大的激活值,在 ( K + 1 ) (K+1) (K+1)维上有较小的激活值,而未知类的例子则有相反的现象。此外,我们发现,通过降低损失函数的温度 T T T,可以进一步提高激活层的可区分度。简要分析如下: ∂ L D ∂ a c = 1 T ( q c T − p c ) = 1 T ( exp ⁡ ( a c / T ) ∑ j exp ⁡ ( a j / T ) − p c ) \frac{\partial \mathcal{L}_{D}}{\partial a_{c}}=\frac{1}{T}\left(q_{c}^{T}-p_{c}\right)=\frac{1}{T}\left(\frac{\exp \left(a_{c} / T\right)}{\sum_{j} \exp \left(a_{j} / T\right)}-p_{c}\right) acLD=T1(qcTpc)=T1(jexp(aj/T)exp(ac/T)pc) 当我们降低损失函数 L R \mathcal{L}_{R} LR的温度 ( T ↓ ) (T↓) (T),概率分布 q c T q^T_c qcT将更加锋利,因此我们有: T ↓ ⇒ 1 T ↑ , exp ⁡ ( a c / T ) ∑ j exp ⁡ ( a j / T ) − p c ↑ ⇒ ∂ L D ∂ a c ↑ T \downarrow \Rightarrow \frac{1}{T} \uparrow, \frac{\exp \left(a_{c} / T\right)}{\sum_{j} \exp \left(a_{j} / T\right)}-p_{c} \uparrow \Rightarrow \frac{\partial \mathcal{L}_{D}}{\partial a_{c}} \uparrow TT1,jexp(aj/T)exp(ac/T)pcacLD ∂ L R ∂ a c \frac{\partial \mathcal{L}_{R}}{\partial a_{c}} acLR变大时,对于激活值 a c a_c ac来说,已知类和未知类的例子将更容易区分。

Active Sampling

如前所述,OSA任务的目标是在未标记的开放集中精确选择尽可能多的已知类例子。在对检测器进行如上所示的训练后,我们发现网络的激活层(倒数第二层)具有区分未知例子的能力,也就是说,未知类例子的最大激活值(MAV)往往与已知类例子的平均MAV明显不同。从形式上看,对于每个预测类别为 c c c的未标记的例子 x i x_i xi,其最大激活值 m a v i c mav^c_i mavic可以定义如下: mav ⁡ i c = max ⁡ c a c i \operatorname{mav}_{i}^{c}=\max _{c} a_{c}^{i} mavic=cmaxaci 所有未标记的例子将根据当前检测器的预测结果被归入 K + 1 K+1 K+1类。我们可以选择被预测为前 K K K个已知类别的例子进行下一步处理,同时过滤掉被预测为"未知"的例子。然后,对于每个已知类 c c c,我们使用期望最大化算法对 m a v c mav^c mavc拟合一个双分量的GMM,其中 m a v c mav^c mavc是一组激活值: W c = G M M ( m a v c , θ D ) \mathcal{W}^{c}=G M M\left(m a v^{c}, \theta_{D}\right) Wc=GMM(mavc,θD) 其中 W c W_c Wc c c c类的概率。对于 c c c类中的每个未标记的例子 x i x_i xi,其已知概率 w i ∈ W c w_{i} \in \mathcal{W}^{c} wiWc是后验概率 p ( g ∣ m a v i ) p\left(g \mid m a v_{i}\right) p(gmavi),其中 g g g是平均值较大的高斯分量(激活值较大)。然后,我们对所有类别的概率进行合并和排序: W = sort ⁡ ( W 1 ∪ W 2 ∪ … ∪ W K ) \mathcal{W}=\operatorname{sort}\left(\mathcal{W}^{1} \cup \mathcal{W}^{2} \cup \ldots \cup \mathcal{W}^{K}\right) W=sort(W1W2WK) 接下来,我们选择概率最高的前 b b b个例子作为查询集,要求进行标注。换句话说,我们可以通过对 w i w_i wi设置一个阈值 τ \tau τ来获得查询集 X q u e r y X^{query} Xquery,其中 τ \tau τ等于已知的第 b b b个最大概率: X query  = { ( x i , w i ) ∣ w i ≥ τ , ∀ ( x i , w i ) ∈ ( D U , W ) } X^{\text {query }}=\left\{\left(x_{i}, w_{i}\right) \mid w_{i} \geq \tau, \forall\left(x_{i}, w_{i}\right) \in\left(D_{U}, \mathcal{W}\right)\right\} Xquery ={ (xi,wi)wiτ,(xi,wi)(DU,W)} 在查询了他们的标签后,将通过添加 X k n o q u e r y X^{query}_{kno} Xknoquery X u n k q u e r y X^{query}_{unk} Xunkquery分别更新标注集和未知集。

Classifier Training

基于当前标注的数据 D L D_L DL,我们通过最小化标准交叉熵损失来训练 K K K类分类器: L C ( x i , y i ) = − ∑ i = 1 n L y i ∗ log ⁡ ( f ( x i ; θ C ) ) \mathcal{L}_{C}\left(x_{i}, y_{i}\right)=-\sum_{i=1}^{n^{L}} y_{i} * \log \left(f\left(x_{i} ; \theta_{C}\right)\right) LC(xi,yi)=i=1nLyilog(f(xi;θC)) 其中 ( x i , y i ) ∈ D L \left(x_{i}, y_{i}\right) \in D_{L} (xi,yi)DL n L n^L nL是当前 D L D_L DL的大小。

算法1中总结了该方法的过程。首先,给定一个小的标记数据集 D L D_L DL,查询批大小 b b b和温度 T T T。然后,检测器 θ D \theta_D θD和分类器 θ C \theta_C θC被随机初始化,无效集 D I D_I DI被初始化为一个空集。在每个迭代中,我们通过最小化公式3来训练检测器,对所有未标记的例子推理 m a v i c mav^c_i mavic。接下来,对于每个类别,我们通过检测器的预测收集 M A V MAV MAV集,并对每个例子的MAV进行建模,以获得已知概率。之后,通过对这些概率进行合并和排序,选择概率最高的前 b b b个例子作为查询集,要求进行标注。最后,分类器 θ C \theta_C θC、标注集和无效集可以被更新并输出到下一次迭代。

IV. Experiments

为了验证所提出方法的有效性,我们在CIFAR10、CIFAR100和Tiny-Imagenet数据集上进行了实验,这些数据集分别包含10、100、200个类别。为了构建开放集数据集,我们在所有的实验中设置错配率为20%、30%和40%,其中错配率表示已知类的数量在总类中的比例。例如,当错配率设置为20%时,在CIFAR10、CIFAR100和Tiny-Imagenet上,前2、20、40个类是用于分类器训练的已知类,而后8、80、160个类分别被视为未知类。

Baselines

为了验证所提出的LfOSA方法的有效性,我们在实验中比较了以下方法。 i) 随机:它从未标记的池中随机选择例子进行标记。ii) 不确定性:它选择预测的不确定性最大的例子。iii) 确定性:它选择预测确定性最大的例子。 iv)Coreset:它通过多样性选择有代表性的例子。 v) BALD:它使用dropout作为主动采样的贝叶斯推理的近似值。 vi) OpenMax:一个有代表性的Openset识别方法。vii) LfOSA(本文):提出的方法。

Active Learning Setting

对于所有的AL方法,我们在CIFAR10、CIFAR100和Tiny-Imagenet数据集上随机抽取1%、8%和8%的例子作为初始化标签集,也就是说,每个类别分别只包含50、40和40个样本。值得注意的是,这些标记集只包含已知的类别。在每个AL周期中,我们训练ResNet18模型100次,SGD被作为优化器,动量为0.9,权重衰减为5e-4,初始化学习率为0.01,批大小为128,同时选择一批1500个例子来查询它们的标签以进行下一轮AL。

Performance Measurement

我们将所提出的LfOSA方法与其他被比较的方法在选择召回率(如公式1)、精确度(如公式2)和分类精度方面的表现进行比较。此外,我们进行了4次实验,记录了4个种子(种子=1,2,3,4)的平均结果。

A. Active Learning Setting

我们通过绘制查询次数增加的曲线来评估所提出的LfOSA的性能和比较方法。图3、4和5分别显示了召回率、精度和准确率的平均结果。第一、第二和第三行分别代表CIFAR10、CIFAR100和TinyImagenet上的结果。第一、第二和第三列代表了20%、30%和40%的错配率的结果。

可以看出,无论使用哪种数据集或错配率,所提出的LfOSA方法在所有情况下总是优于其他方法。在AL过程中,LfOSA可以实现更高的选择召回率和精度,同时获得更好的分类性能。 i) 对于召回率的性能,提出的LfOSA方法始终以明显的优势优于其他比较方法。特别是在CIFAR10和CIFAR100上,当错配率设置为20%、30%和40%时,LfOSA和随机方法的平均利润率前者为68.8%、53.4%和35.7%,后者为34.3%、26.7%和20.5%。值得注意的是,增加无效的例子可以显著提高检测能力(前三个查询的精度在提高)。此外,随着已知例子数量的减少,精度也被迫降低(在 "错配率为20%的CIFAR10 "中,第10个查询的精度只有20%,因为其召回率达到了96.7%)。在所有情况下都表现出最好的性能。特别是在CIFAR100上,与其他AL方法相比,LfOSA在20%、30%、40%的错配率下分别取得了约20%、15%和12%的性能提升。此外,随着未知比率的增加,LfOSA相对于其他方法的优越性变得更加明显。这些结果表明,所提出的LfOSA方法可以有效地解决开放集标注(OSA)问题。

Compared Methods Analysis

值得注意的是,两种流行的AL方法,Uncertainty和BALD,在大多数情况下甚至比随机方法的表现还要差。一个可能的原因是,这些基于信息量的AL方法倾向于选择未知的类,因为这些未知的例子更可能是信息量最大的例子。另一方面,确定性方法在OSA问题上也失败了,这意味着用模型的预测熵来衡量例子的确定性可能不准确。基于多样性的Coreset方法和开放集识别方法OpenMax在OSA任务中显示出有限的有效性。前者对未知类别没有识别能力,而后者则缺乏足够的监督。

B. Results Using More Metrics

为了进一步验证所提出的LfOSA方法的有效性,我们在错配率为20%的CIFAR100上与其他方法在分类召回率、精度和F1方面进行了比较。实验结果如图6所示。

可以看出,所提出的LfOSA方法在所有情况下总是明显优于其他方法。LfOSA可以实现更高的分类召回率、精度和F1得分。这些结果一致表明,所提出的方法可以找到更多的已知例子,从而找到更有效的训练模型。

C. Ablation Study

为了分析我们提出的LfOSA方法的每个组成部分的贡献,我们在CIFAR100上进行了以下消融研究,错配率为20%。图7显示了分类精度的实验结果。

w/o温度和高温表示温度T分别设置为1和2。与LfOSA相比,选择召回率和分类准确率分别下降了1.89%和3.1%。w/o Detector表示不使用检测器,这意味着它同时采用了检测和分类任务。同样地,w/o Classifier表示不使用分类器。如果不将检测和分类解耦,其性能会明显下降。w/o invalid set表示检测器训练时不使用无效集。性能的迅速下降表明,负面的例子对检测器的训练起着至关重要的作用。

V. Conclusion

在本文中,我们为现实世界的大规模标注任务提出了一个新的开集注释(OSA)问题。它引入了一个实际的挑战,即如何在从大量的未标记的开放集中识别已知类的例子以进行目标模型训练时保持高召回率。为了克服这一挑战,我们提出了一个名为LfOSA的主动学习框架,通过解耦检测和分类来精确选择已知类别的例子。通过最小化低温交叉熵损失,它利用已知和未知的监督来训练一个检测器,其激活值将被送入混合高斯模型以估计每个样本的最大激活值(MAV)分布。基于MAV分布,我们可以在未标记的数据中区分已知类和未知类的例子,以建立一个用于标注的查询集。然后用标记的数据更新分类器。在各种任务上的实验结果显示了LfOSA方法的优越性。在未来,我们将把OSA问题扩展到其他计算机视觉任务,例如目标检测。

猜你喜欢

转载自blog.csdn.net/qq_40714949/article/details/124427176
今日推荐