转自知乎

论文 A Survey of Deep Active Learning

中文版仅作参考,以正式的pdf版为主。

https://arxiv.org/pdf/2009.00236.pdfarxiv.org
图标

abstract

主动学习试图通过标记最少量的样本使得模型的性能收益最大化。而深度学习则对数据比较贪婪,需要大量的数据供给来优化海量的参数,从而使得模型学会如何提取高质量的特征。近年来,由于互联网技术的快速发展,使得我们处在一个信息洪流的时代,我们拥有海量的未标记数据。借此,深度学习引起了研究人员的强烈兴趣,并且得到了快速的发展。和深度学习相比,研究人员对于主动学习的研究兴趣相对较低。这主要是由于在深度学习兴起之前,传统的机器学习所需要的标注样本相对较少。因此,早期的主动学习很难体现出应有的价值。尽管深度学习已经在各个领域取得了突破性进展,但是这绝大部分的成功都要归功于现有的大量标注数据集的公开。然而,大量高质量的标注数据集的获取需要消耗大量的人力,在一些需要很高专业知识的领域这是不被允许的,尤其是在语音识别、信息提取、医学图像等领域。因此,主动学习逐渐受到了应有的重视。

一种很自然的想法是能否使用主动学习来减少样本标注的成本,同时保留深度学习强大的学习能力。因此,深度主动学习出现了。尽管相关的研究已经相当的丰富,但是缺乏一个对深度主动学习全面的survey。本文正是要填补这项空白,我们为现有的工作提供了一个形式上统一的分类方法,并进行一个全面系统的概述。此外,我们还从应用的角度对DAL的发展进行了分析和总结。最后,我们对DAL中存在的困惑、问题进行了讨论,并给出了一些DAL可能的发展方向。

Introduction

在机器学习社区中深度学习和主动学习都有着重要的应用。他们凭借着各自优异的特性吸引了大量研究人员的兴趣。具体来说,DL已经在各种具有挑战性的任务上取得了前所未有的突破,但这很大程度上归功于海量标注数据集的公开。因此,DL在一些需要丰富知识的专业领域受限于高昂的样本标注代价。另一方面,从理论上讲,有效的AL算法可以实现在标注工作效率方面的指数级加速。这种巨大的标注代价节省潜力令人着迷。此外,经典的AL算法也存在难以处理高维数据的困境。因此,这种明显互补的优势使得DL与AL的结合DAL被研究人员给予厚望。深度主动学习已经被广泛的应用在了各个领域,例如图像识别,目标检测等。尽管相关的工作已经相当的丰富,但是深度主动学习仍然缺乏一个统一的分类框架。为了填补这项空白,在本文中我们将对现有的深度主动学习的相关工作做一个全面的概述,并提供一个形式化的分类方法。接下来,我们将首先简要的回顾深度学习与主动学习在各自领域中的发展现状。然后,在Section 3中进一步给出DL与AL结合必要性和所面临的挑战。



  • (a)基于池的主动学习周期:使用查询策略在无标记池UUU中查询样本交给oracle进行标注,然后将查询的样本添加到标记训练数据集LLL中并训练,接着使用新学习的知识进行下一轮查询。重复这个过程,直到标注预算被耗尽或者达到预先设定的终止条件。
  • (b)一个常见的深度学习model:卷积神经网络
  • ©深度主动学习的典型例子: 深度学习model的参数θθθ在初始化标签训练集L0L_0L0上进行初始化或者预训练,无标记池UUU的样本通过深度学习model提取特征。然后基于相应的查询策略挑选样本,并在oracle中查询标签,形成新的标签训练集LLL,接着在LLL上训练深度学习model,同时更新UUU。重复这个过程,直到标注预算被耗尽或者达到预先设定的终止条件。

Deep Learning

深度学习试图通过模拟人类大脑的结构来构建相应的model。1943年,A提出的McCulloch-Pitts (MCP) model被认为是现代深度学习的开端。随后,1986年B将反向传播引入到神经网络的优化中,这为深度学习后来的蓬勃发展奠定了基础。同年,递归神经网络被提出。1990年,LeNet网络出现,它是最早使用深度神经网络(DNN)的工作之一。然而,早期的这些开创性工作受限于当时的计算资源并未得到应有的广泛的重视与应用。2006年,深度信念网络(DBNs)被提出,并以此探究了比以往更深的网络,这促使将神经网络被命名为深度学习。在2012年,在ImageNet大赛上,深度学习模型AlexNet一举夺冠。它使用ReLU激活函数有效的抑制了梯度消失的问题,同时使用多GPU极大的提高了模型的训练速度。随后,深度学习开始在各个大赛中斩获冠军并且在各种任务中不断刷新着记录。从自动化的角度来看,深度学习的出现使得原本机器学习中特征的手动设计转变为自动提取。正是由于深度学习强大的自动特征提取能力才使得它在众多的领域表现出前所未有的优势。深度学习经过数十年的发展,相关的研究工作已经相当的丰富。在Fig.1a,我们显示了一个标准的深度学习模型示例:卷积神经网络。以此为基础类似的卷积神经网络被应用于各种图像处理任务。此外被广泛应用的还有循环神经网络、生产对抗性网络等。从2017年开始,深度学习从最初的特征提取自动化逐渐转变为模型架构设计的自动化。但是,这还需要很长的一段路要走。

得益于现有的大量标注数据集的公开, 近年来,深度学习在机器翻译,语音识别,图像分类等各个领域中都取得了突破性进展。然而,这是以大量人工标注数据集为代价的,并且深度学习对数据有着很强的贪婪属性。在现实世界中,大量未标注的数据集的获取是相对较为简单的,但是数据集的人工标注面临着高昂的代价。尤其是那些需要很高专业知识的领域,例如对COVID-19患者的肺部病变图像的标注以及描述工作就需要经验丰富的临床医生才能完成,显然要求他们完成大量医学图像标注工作是不可能的。类似的领域还包括语音识别、信息提取,卫星遥感等领域。因此,我们急需一种方法可以在注释少量样本的情况下使得模型获得最大的性能增益。

Active Learning

主动学习正是这样一种方法,它试图从未标记数据集中选择最有用的样本交给 oracle进行标注,从而在保持性能的情况下尽可能降低标注成本。主动学习从应用场景上来可以划分为membership query synthesis,stream-based selective sampling和pool-based active learning. Membership query synthesis是指学习者可以请求查询输入空间中任何未标记样本的标签,包括学习者生成的样本。而stream-based selective sampling和pool-based的区别主要在于前者是对数据流中的每个样本独立作出判断是否需要查询未标记样本的标签,而后者则可以基于对整个数据集的评估和排名来选择最佳查询样本。相比之下,pool-based的场景似乎在论文应用中更加常见,但很显然stream-based selective sampling的应用场景则更适合于要求时效性的小型的移动终端设备。在fig.1(a)中,我们展示了基于池的主动学习周期的框架图。初始状态下,我们可以从未标记池UUU中随机挑选一个或多个样本并交给oracle查询标签得到标注数据集LLL,然后在LLL上以监督学习的方式训练model。接着,利用新知识选择下一个要查询的样本,并将新查询的样本添加到LLL中并训练。重复这个过程,直到标注预算被耗尽或者达到预先设定的终止条件。

与深度学习通过使用手工或者自动的方法千方百计的设计具有高性能特征提取能力的模型不同。主动学习则从数据集入手,主要通过设计精妙的查询规则从未标记的数据集中选择最佳的样本并查询其标签,试图尽可能的降低标注代价。因此,查询规则的设计对主动学习的性能是至关重要的。相关的研究也相当的丰富,例如,在给定的一组未标记数据集中,主要的查询策略有基于不确定性的方法,基于多样性的方法和预期的模型更改。除此之外,还有很多的工作研究了混合查询策略,同时考虑查询样本的不确定性和多样性,并试图在这两种策略中找到平衡点。因为单独的基于不确定性的采样往往会造成采样偏差:即当前选择的样本在未标记数据集的分布中不具有代表性。另一方面,仅考虑多样性策略则可能会导致标记成本增加:即可能有相当一部分信息量较低的样本会被选择。更多经典的查询策略可以在A中进行查询。虽然AL相关的研究已经相当丰富,但AL仍然面临着向高维数据(例如,图像、文本、视频等)拓展的难题,因此大多数主动学习的工作都主要集中在低维问题上。此外,AL往往基于事先提取好的特征来查询高价值的样本,其本身并不具有特征提取的能力。

The necessity and challenge of combining DL and AL

DL在高维数据处理以及自动特征提取方面有着强大的学习能力,AL在有效降低标注成本方面也有着巨大的潜力。因此,一种显而易见的想法是将DL与AL进行结合,这将极大的拓展它们的应用潜力。DAL正是考虑结合二者优势互补的特性而被提出的,相关的研究也被研究人员寄予厚望。尽管AL关于查询策略的研究已经相当丰富,但是想要直接将这种策略应用到深度学习中仍然是相当困难的。这主要是由于:

  • 标签样本的数据不足。主动学习往往只依赖于少量的标记样本数据就可以实现学习和更新模型,而DL往往对数据有很强的贪婪性,经典AL方法所提供的标记训练样本不足以支持传统DL的训练。此外,在主动学习中常用的one by one样本查询方式在深度学习中也是不适用的。
  • 模型不确定性问题。基于不确定性的查询策略是主动学习的一个重要方向。在分类任务当中,尽管深度学习可以使用softmax layer来获得标签上的概率分布,然而事实表明它们过于自信。最终输出的softmax 分数作为置信度度量方法是不可靠的,这种方法的性能甚至会比随机采样的效果更差。
  • 处理管道不一致。AL和DL的处理管道是不一致的。大多数AL算法主要关注于分类器的训练,各种查询策略的很大程度上都是基于固定的特征表示。而在DL中,特征学习和分类器的训练是共同优化的。仅在AL框架中对DL模型进行微调或者将它们视作两个独立的问题可能会引起分歧问题。

针对第一个问题,研究者考虑使用生成网络来进行数据增强或者为高置信度样本分配伪标签等方式来扩充标记训练集。也有研究者考虑在跨AL周期上同时使用标记数据和未标记数据集进行监督训练与半监督训练的结合。此外,基于启发式的AL查询策略已经被证明在应用于CNN时是无效的。因此,针对经典AL中one-by-one的查询策略,许多研究者聚焦于batch样本的查询策略的改进, 在批量的样本中同时考虑样本的信息量以及多样性。

为了解决深度学习对模型不确定性的忽视,一些研究者借助贝叶斯深度学习来处理主动学习语境下高维但查询数量较少的mini-batch样本,从而有效的缓解了DL模型对输出结果过于自信的问题。

对于处理管道不一致的问题,研究者考虑修改AL和DL的结合框架,使提出的DAL模型尽可能通用,方便可以拓展到各个应用领域。这对DAL的推广有着重要的意义。例如,A将主动学习的思想嵌入深度学习提出了一个与任务无关的架构设计。

我们将在下一节中集中对deep active learning中使用到的各种策略进行详细的讨论和总结。

Deep Active Learning

在本节中,我们将对DAL的相关工作进行全面系统的概述。Fig.1c显示了一个典型的深度主动学习的模型架构示例。深度主动学习的典型例子: 深度学习model的参数θθθ在初始化标签训练集L0L_0L0上进行初始化或者预训练,无标记池UUU的样本通过深度学习model提取特征。然后基于相应的查询策略挑选样本,并在oracle中查询标签,形成新的标签训练集LLL,接着在LLL上训练深度学习model,同时更新UUU。重复这个过程,直到标注预算被耗尽或者达到预先设定的终止条件。从Fig.1c中的DAL框架示例中我们可以粗略的将DAL的框架分成两大部分:在未标注数据集上的主动学习查询策略以及deep learning model的训练方法。为此,我们将在接下来的3.1和3.2中分别对他们进行讨论和总结。最后,我们将在3.3中讨论deep active learning 在模型的泛化通用性上所做的努力。

Query Policy Optimization in DAL

在基于池的方法中,我们定义Un=X,YU^n={\mathcal{X},\mathcal{Y}}Un=X,Y为有nnn个样本的未标记数据集,其中,X\mathcal{X}X为样本空间,Y\mathcal{Y}Y为标签空间(最初Y\mathcal{Y}Y是未知的),P(X,Y)P(X,Y)P(X,Y)为一个潜在的分布,其中X∈X,Y∈YX\in \mathcal{X},Y\in \mathcal{Y}XX,YYLm=xi,yiL^m={x_i,y_i}Lm=xi,yi为有mmm个样本的当前标记训练集。在DAL的标准监督环境下的,我们的主要目标是设计一个查询策略QQQUn⟶QLmU^n\stackrel{Q}{\longrightarrow}L^mUnQLm,使用深度模型f∈F,f:X→Yf\in \mathcal{F},f:\mathcal{X}\rightarrow\mathcal{Y}fF,f:XY,监督环境下的DAL的优化问题可以被表述为

其中l(⋅)∈R+\mathcal{l}(\cdot)\in \mathbb{R}^+l()R+为给定的损失方程,并且期待m≪nm\ll nmn。我们的目标是在保证一定精度的前提下,使得mmm尽可能的小。因此,在DAL中查询策略对标注代价的减少是至关重要的。

Batch Mode Deep Active Learning (BMDAL)



DAL与经典AL的主要区别在于DAL采用的是基于batch的样本查询方式。在传统的AL中大部分算法采用 one by one 的方式进行查询,这导致学习模型被频繁训练,而训练数据却几乎没有变化。这种查询方式得到的训练集在DL模型的训练中不仅低效且极易引起过拟合。因此,BMDAL的研究是必要的。在BMDAL的语境中,在每一个获取步骤,我们依据所使用的获取函数aaa以及在LLL上训练过的深度模型fθ(L)f_{\theta}(L)fθ(L)对候选的未标记数据样本的batch进行评分, 从而选择一批新的数据样本B<i>=x1</i>,x2<i>,...,xb</i>\mathcal{B}^<i>={x_1^</i>,x_2^<i>,...,x_b^</i>}B<i>=x1</i>,x2<i>,...,xb</i>,这个问题可以被表述为:

一个天真的想法是基于one-by-one的策略,连续查询一个批次的样本。例如,A采用批量获取的方法,选择查询BALD获取分数最高的前bbb个样本。显然,这种方法是不可行的,因为这极有可能选择一组信息丰富但却相似的样本。类似的样本为模型提供的信息基本上是相同的,这不仅浪费标注资源,模型也很难真正学到有用的信息。因此,BMDAL的核心在于查询一组信息丰富且多样的样本。Fig.2展示了这种想法的一个示意图。

基于batch查询策略构成了AL与DL相结合的基础,相关的研究也非常的丰富。我们将在下面几个小节中对BMDAL上的查询策略进行详细的概述与讨论。

Uncertainty and hybrid query strategy

由于基于不确定性的方法形式简单且较低的计算复杂度,它是AL中是非常受欢迎的一种查询策略。这种查询策略主要用在一些浅层的模型(如,SVM或KNN)当中,这主要是由于这种模型的不确定性可以通过传统的不确定性采样方法(Margin Sampling, Least Confidence and Entropy )进行准确测量。

有很多DAL方法直接采用了这种基于不确定性的采样策略,但是,正如3.1.1所分析的那样这很容易导致批查询样本的多样性不足(没有充分利用数据分布的相关知识),进而导致DL模型训练性能低下甚至失效。一种可行的策略是在一个批查询中采用混合查询策略,以显式或者隐式的方式同时考虑样本的信息量、多样性或者表示形式。

早期的Batch Mode Active Learning (BMAL)算法性能往往过于依赖样本之间相似性的度量。此外,这些算法往往仅善于利用(学习者倾向于仅关注当前决策边界附近的样本,对应于高信息量的查询策略),导致查询到的批量样本集中的样本无法代表特征空间的真实数据分布(批量样本集的多样性不足)。基于这个观察,A使用深度神经网络来学习样本的特征表示,并显式的计算样本之间的相似性。同时平衡利用和探索(在模型训练初期学习者采用随机采样的策略来进行探索)进程,从而更为准确的测量样本之间的相似度。

另一方面, DBAL通过将信息量以权重的方式添加到K-means的优化目标中,深入研究了在mini-batch的样本查询设置下同时考虑样本信息量与多样性的混合查询策略。DBAL可以方便的完成从广义线性模型到DL的拓展,不仅增加了DBAL的可拓展性且增加了小批量主动查询样本的多样性。这种混合查询策略是相当流行的,例如,WI-DL 主要考虑深度信念网络(DBN)的两个阶段,在无监督特征学习阶段主要考虑数据的代表性,而在监督微调阶段来兼顾数据的不确定性,然后将两个指标进行整合,最后使用提出的weighted incremental dictionary learning (WI-DL)算法进行优化。

尽管上述改进已经取得了不错的性能,但是仍然存在一个待解的隐患。事实上,基于多样性的策略并非对于任何数据集都是合适的。数据集的类别内容越丰富批处理的大小越大,基于多样性的方法效果就越好。反之,使用基于不确定性的查询策略表现效果则相对更好。这些特性取决于数据集的统计特性,而在BMAL中数据往往是不熟悉的且可能是无组织的。因此,无法知道具体哪种AL查询策略更加合适。基于此,Batch Active learning by Diverse Gradient Embeddings (BADGE)对在幻觉梯度空间中表示时不同且大小的点组进行采样,从而在一个批次中同时考虑模型的预测不确定性和样本的多样性。最重要的是,BADGE可以实现在预测不确定性和样本多样性之间的自动平衡,而不需要手动的超参数调整。不同于BADGE以一种隐式的方式来考虑这种混合查询策略,Wasserstein Adversarial Active Learning (WAAL) 提出了一种在不确定性和多样性之间显式的折中的混合查询策略。此外,WAAL通过采用Wasserstein距离,将AL中的交互过程建模为分布匹配,并从中得出损失,进而将WAAL分解为两个阶段:DNN参数优化与查询批次选择。

TA-VAAL(2020)也探索这种混合查询策略的平衡。TA-VAAL认为基于不确定性的方法没有很好的利用整体的数据分布,而基于数据分布的方法往往忽视了任务中的结构。因此,TA-VAAL提出将损失预测模块和RankCGAN概念整合到变分对抗主动学习(VAAL)中,以便同时考虑数据分布和模型的不确定性。TA-VAAL在各种平衡和不平衡的基准数据集上都取得了很好的性能。TA-VAAL与VAAL的结构图被展示在fig6.

实际上,尽管混合查询策略表现出更为优异的性能。但相比之下由于基于不确定性的AL查询策略与DL的softmax层的输出结合更为方便,因此,基于不确定性的查询策略仍然被广泛使用。

Deep Bayesian Active Learning (DBAL)

正如2.3中的DL与AL相结合的挑战分析所述,基于不确定性的采集功能是许多经典的AL算法一个重要研究方向,而传统的DL方法很少代表这种模型不确定性。

为此,Deep Bayesian Active Learning 出现了。在给定的输入集合X\mathcal{X}X和属于 ccc类的输出Y\mathcal{Y}Y,概率神经网络模型可以被定义为f(x;θ)f(x;\theta)f(x;θ)p(θ)p(\theta)p(θ)是在参数空间 θ\thetaθ(通常是高斯)上的先验 ,并且似然p(y=c∣x,θ)p(y = c|x,θ)p(y=cx,θ通常由softmax(f(x;θ))softmax(f(x;θ))softmax(f(x;θ))给出。我们的目标是获得在 θ\thetaθ上的后验分布:



对于给定的新的数据点x∗x^*x, y^\hat{y}y^通过以下方式进行预测:

DBAL将贝叶斯卷积神经网络同AL方法进行结合,使BALD适应了深度学习环境,从而为高维数据开发了一个新的AL框架。它正是采用上述方法首先对CNN权重将进行了高斯先验建模,然后使用变分推断来获得网络预测的后验分布。此外,在实践当中,研究人员往往也使用一种功能强大成本低廉的Monte随机正则化技术来获得后验样本,并在真实数据集上有着很好的表现。并且,这种正则化技术已被证明等价于变分推理。

但是,A core-set approach 指出DBAL由于需要批量采样的存在,并不适合大型数据集。需要指出的是,DBAL为了获得更好的置信度估计允许在测试时使用dropout,但在Discriminative Active Learning的分析认为该方法的性能与使用神经网络的softmax分数作为不确定性采样的性能相似。这需要引起警惕。

此外,A指出基于不确定性的DBAL方法可能会受到对抗性示例的愚弄,一个微小的扰动可能会导致不可接受的性能损失。DEBAL认为在变分推断方法中的模式崩溃现象导致了DBAL方法的过度自信的预测。为此,DEBAL通过将集成方法的表达能力与MC-dropout相结合在没有交易代表性的情况下获得更好的不确定性。

另一方面,BatchBALD则选择拓展BALD到批量查询,不再计算单个样本与模型参数之间的互信息,而是重新计算了批量样本与模型参数之间的互信息来共同对批量的样本进行评分。因此BatchBALD可以更为准确的评估共同互信息。

受到有关贝叶斯核心集最新研究的启发,ACS-FW重新构建了批处理结构,以优化对整个数据集引起的对数后验的稀疏子集近似。ACS-FW通过使用这种相似性,同时使用Frank-Wolfe算法大规模启用有效的贝叶斯AL,并且使用随机投影使得ACS-FW得到了进一步的推广。ACS-FW和其他查询策略相比查询的样本在整个数据流行上拥有更好的覆盖。

DPEs则引入了一种可拓展的深度概率集合技术,它使用正则化的集合来逼近深度BNN,并在一系列大规模的视觉AL实验来评估DPEs的分类效果。

ActiveLink也是受到贝叶斯深度学习最新进展的启发。它对现有的神经链接预测因子采取贝叶斯的观点,通过利用知识图的基础结构拓展了不确定性采样的方法,从而实现了一个新颖的深度主动学习方法。并且ActiveLink注意到尽管AL可以采样高效的样本,但在AL的过程中每次迭代都需要从头开始重新训练模型,这对DL模型的训练是不可接受的。一个直接的解决方案是使用新选择的数据增量地训练模型,或者将它与现有的训练数据[29]结合起来。但这会导致模型要么偏向少量新选择的数据,要么偏向于过程早期选择的数据。为了解决这种偏差问题,ActiveLink采用了一种基于元学习的有原则的无偏差增量训练方法。即,在每次AL迭代中,ActiveLink使用新选择的样本更新模型参数,并通过基于前一次迭代中选择的样本对模型进行泛化来逼近模型的未来预测的元目标。这使得ActiveLink可以在新选择的数据和之前选择的数据的重要性之间取得平衡,从而实现对模型参数的无偏估计。

除了上述DBAL工作外,由于BNN较少的参数量以及与传统AL相似的不确定性采样策略,使得DBAL的研究相当的广泛,相关的DBAL工作还有很多。

Density-based Methods

基于密度的方法主要是指从集合(核心集)的角度来考察样本的选择。核心集的构建正是这样一种具有代表性的查询策略。这种想法主要受到核心集数据集压缩思想的启发,试图使用核心集来代表整个原始数据集的特征空间的分布,从而降低AL的标注成本。 Farthest First Active Learning (FF-Active) 正是基于这种想法使用表示层上神经激活空间中的最远优先遍历从池中查询连续点。值得一提的是,FF-Active与Exploration-P 类似在AL的早期阶段使用随机查询的方法增强AL的探索能力,从而避免AL陷入batch样本多样性不足的陷阱。

类似的为了解决批量查询中的采样偏差问题,增加批量查询样本的多样性。Core-set approach 尝试采用构建核心子集的方法来解决此问题。并进一步通过解决K中心问题来构建核心子集,使得在已选的核心集上学习的模型与其余数据相比更有竞争力。但由于Core-set approach需要在未标记的数据集上构建一个较大的距离矩阵,因此这个搜索过程在计算上相当的昂贵。并且这种劣势在大规模的未标记数据集上将变得更加明显。\cite{Du2019BuildinganActivePalmprintRecognitionSystem}将DAL应用于高维且复杂的掌纹识别数据上。与核心集的思想类似,将AL视为一个二分类任务,期待标注样本集与未标注样本集拥有相同的数据分布并使得二者难以区分,即试图找到与原始数据集具有相同分布的核心标记子集。具体来说,由于启发式的生成模型模拟数据分布难以训练且不适合掌纹这种高维复杂的数据。因此作者考虑判断样本是否能被高度肯定的区分来自于未标注数据集还是标注数据集。那些可以被明确区分的样本明显与核心标注子集的数据分布有着显著的差异,这些样本将被的添加到标注数据集中,进行下一轮的训练。

先前的基于核心集的方法往往只是尝试查询的数据点尽可能的覆盖所有点的数据流行而没有考虑密度,导致查询到的数据点过度代表来自流行稀疏区域的样本点。与类似\cite{Du2019BuildinganActivePalmprintRecognitionSystem} ,Discriminative Active Learning (DAL) 也将主动学习是一个二元分类任务,试图使查询的标记数据集与未标记数据集无法区分。DAL突出的是它可以按照密度成比例的从未标记数据集中进行采样,而不会偏向位于稀疏流行域的样本点。并且DAL提出的方法并不局限于分类任务在概念上易于转移到其他新的任务上。

除了相应的查询策略外,一些研究者也考虑了批量查询大小对查询性能的影响,例如,\cite{BatchBALD2019,Zhdanov2019Diverseminibatch,Ash2019DeepBatchActive,Pinsler2019Bayesian}主要研究了较小批量下查询策略的优化,而\cite{Chitta2019Training}建议扩大AL的查询规模进行大规模采样(一次采样10k或500k)。并通过集成了数百个模型并重用中间检查点方式用较小的计算代价高效的实现了在大规模标记数据集上的训练数据分布式搜索。\cite{Chitta2019Training}也证明了使用整个数据集进行训练的性能并不是性能的上限,基于子集的AL可能有更好的性能。

基于密度的方法主要从数据分布的角度来考虑核心子集的选择,相关的研究方法相对较少,它为样本的查询提供了一种新的可能。

Other methods

还有一些研究不像以上查询方法那样如此集中,我们将它们总结在下面。

A将启发式的AL算法重新定义为强化学习问题,通过明确的选择策略来引入一个新的描述。

与先前的大多数基于不确定性的方法不同,DFAL \cite{Ducoffe2018Adversarial} 认为这些方法容易受到对抗性示例的愚弄,因此DFAL将重点放在决策边界附近示例的研究。并主动利用这些对抗性示例在输入空间分布上提供的信息来近似它们到决策边界的距离,这种对抗性查询策略可以有效提高训练CNN的收敛速度。

另一方面,AL旨在利用数据的相对重要性标注尽可能少的的数据高效的训练一个性能符合要求的模型。因此,数据集本身的属性对DAL的性能也有着重要的影响。为此,GA研究了常见数据集中图像数据的相对重要性,提出了一种通用的数据分析工具,可以帮助我们更好的了解数据集中训练示例的多样性。GA发现并非所有的数据集都可以在一个小的子样本集上完成训练,因为一些数据集中的样本重要性的相对差异几乎可以被忽略。因此,在AL中盲目的使用较小的子数据集也是不可取的。

\cite{Beluch2018PowerEnsemblesActive}发现与MC-dropout和基于密度的方法相比,基于集合的AL可以在获取过程中有效的抵消数据集中的类别不平衡,导致更多的校准预测不确定性,从而获得更好的性能。

一些研究者也注意到在传统的AL工作流程中往往将获取函数视为固定的已知的先验,而这种获取函数是否合适,只有等标记预算被消耗殆尽才能进行观察。这导致无法对获取函数进行灵活快速的调优。因此使用强化学习对获取函数进行动态调优或许是一个不错的选择。

RAL提出选择将BNN作为获取函数的学习预测器。然后,BNN预测器提供的所有概率信息会被合并从而得到一个全面的概率分布,接着概率分布被送到一个BNN概率策略网络,该网络在每个标记回合中基于oracle的反馈进行强化学习。这种反馈会对采集函数进行微调从而不断改善获取函数的质量。在Fig4中展示了传统AL与RAL的管道对比。



标准的AL,RAL and DRAL的管道对比。
(a)标准的AL管道通常由三个部分组成。Oracle提供一组标记数据,预测器(此处为BNN)用来学习这些数据,并为指南提供了可预测的不确定性,该指南通常是固定的,硬编码的获取函数,它为Oracle挑选下一个样本从而重新开始循环。
(b)RAL用策略BNN代替固定获取函数,该策略BNN以概率状态进行学习,并从oracle获得反馈,以强化学习的方式学习如何选择下一个最优的样本点(红色的新部分)。 因此,RAL可以更加灵活地调整获取函数以适应现有的数据集。
(c)DRAL为person Re-ID任务设计了一个深度强化主动学习框架。对于每个查询锚点(探针),代理(增强型主动学习者)将在主动学习过程中从图库池中选择实例交给oracle以获得带有二进制反馈(正/负)的人工注释。
状态评估所有实例之间的相似关系,根据oracle的反馈计算奖励从而调整代理的查询。

DRAL采用了类似的想法,为person Re-ID任务设计了一个深度强化主动学习框架。DRAL使用强化学习的思想对获取函数进行动态的调整,从而获得高质量的查询样本。

另一方面,Active-iNAS注意到先前的大多数DAL方法都假定已经为当前的任务设计合适的DL模型,从而主要集中在研究如何设计有效的查询机制上。而事实上已有的DL模型对当前的DAL任务并不一定是最优的。为此Active-iNAS对这一假设发起挑战,在进行主动学习的同时使用神经架构搜索技术(NAS)动态地搜索有效的模型架构。

还有一些工作致力于为DAL提供一个方便性能对比的平台。\cite{Munjal2020Towards}对DAL方法的鲁棒性和可复现性进行了详细的探讨和研究,并给出了许多有用的建议。

总的来说,这些查询策略并非相互独立,而是相互联系的。基于Batch的BMDAL为AL查询的样本在DL模型上的更新训练提供了基础。尽管DAL中的查询策略丰富且复杂,但它们大都是为了在BMDAL中兼顾查询批次的多样性与不确定性。而先前基于不确定性的方法往往忽视batch中的多样性,因此,这些方法大致可以被归为两类。它们要么在输入或学习表示空间中设计明确鼓励批次多样性的机制,要么直接测量整个批次的互信息(MI)。

Insufficient Data in DAL

AL往往只需要少量的标记样本数据就可以实现学习和更新模型,而DL需要大量的标记数据才能进行有效的训练。因此,AL与DL的结合需要尽可能多的利用无需耗费过多人力资源的数据策略来实现对DAL 的模型训练。先前的大多数DAL方法往往只在通过查询策略所采样的标记样本集上进行训练。而忽视了已有的未标记数据集的存在,并且相应的一些数据扩充和训练策略也没有得到充分的利用。这些策略有助于改善在DAL训练中标签数据不足的问题,且不会增加额外的人工标注代价。因此,这些策略的研究也是相当有意义的。

例如,CEAL(2017)除了使用通过查询策略采样的标记数据集外,还通过为具有高的模型预测置信度的样本分配伪标签的方式丰富训练集。使用扩充过的训练集一同训练DL模型。这种策略被展示在Fig.CEAL。



另一种非常流行的策略是在标记数据集和未标记数据集上进行无监督训练并结合其他策略来训练整个网络结构。

例如,WI-DL(2017)注意到对DBN进行完全训练需要大量的训练样本,将DBN应用于AL语境下有限的训练集上是不切实际的。于是为了提高DBN的训练效率,WI-DL采用在所有数据集上进行无监督特征学习与在标记数据集上进行有监督微调相结合的方式来训练DBN。

与此同时,也有研究者考虑借助生成对抗网络(GAN)来进行数据增强。例如,GAAL(2017)首次将生成对抗网络(GAN)引入到了AL的查询方法中。GAAL旨在希望使用生成学习生成比原始数据集中拥有更多信息量的样本。

然而,随意的数据增强并不能保证生成的样本比原始数据拥有更多的信息量,这反而会浪费计算资源。因此,BGADL(2019)拓展了GAAL的想法,提出了一种贝叶斯生成式主动深度学习的方法。具体的,BGADL结合了Generative Adversarial Active Learning ,Bayesian data augmentation (Tran et al., 2017), auxiliary-classifier generative adversarial networks (ACGAN) (Odena et al., 2017) and variational autoencoder (VAE) (Kingma & Welling, 2013)方法,旨在生成属于不同类别的分歧区域样本 。GAAL与BGADL的结构对比被展示在fig.GAAL_BGADL。



GAAL与BGADL的结构对比图。更多细节可以查看BGADL。

随后,VAAL(2019),ARAL(2019)借鉴了先前的方法不仅使用标记数据集与未标记数据集一同训练网络,而且将生成对抗学习引入到了网络架构中进行数据增强,以便进一步的提升网络的学习能力。



VAAL与TA-VAAL的结构对比图。



VAAL,ARAL和TA-VAAL的结构对比。1)VAAL使用标记数据和未标记数据采用半监督的方式来学习数据的潜在的表示空间,根据潜在空间选择信息量最大的未标记数据进行标注。2)TA-VAAL拓展了VAAL,将损失预测模块和RankCGAN整合到变分对抗主动学习(VAAL)中,以便同时考虑数据分布和模型不确定性。3)ARAL也拓展了VAAL,ARAL不仅使用了真实数据集(由标注数据集和未标注数据集组成)和还使用了生成数据集来共同训练网络。整个网络由编码器、生成器、鉴别器、分类器和采样器构成,模型的所有部分被共同训练。更多的细节可以查看ARAL。

具体的,VAAL注意到基于不确定性的batch查询策略除了容易导致样本多样性不足的问题,实际上还非常容易受到异常值的干扰。此外,对于高维数据基于密度的方法容易受到p-范数的限制,导致计算的距离过于集中。为此,VAAL提出使用对抗学习表示的方法来区分标记数据与未标记数据的潜在空间的编码特征,从而削弱异常值的干扰。并且VAAL使用标记数据和未标记数据以半监督的方式来共同训练 variational autoencoder (VAE) 试图欺骗对抗网络预测所有的数据点均来自标记池,以此来解决距离集中的问题。VAAL在大规模的数据集上可以学习有效的低维潜在表示,并通过共同学习表示形式和不确定性提供了一种有效的主动学习采样方法。

接着,ARAL拓展了VAAL,旨在使用尽可能少的人工标注样本但充分利用已有的或生成的数据信息来提升模型的学习能力。除了使用标记数据集与未标记数据集,ARAL还使用了深度生产网络生产的样本来共同训练整个模型。ARAL由VAAL与对抗表示学习两部分组成,通过VAAL学习标记和未标记数据潜在的特征表示空间,并据此选择信息量最大的未标记样本,同时使用真实数据与生成数据通过对抗表示学习来增强模型的学习能力。类似的TA-VAAL也拓展了VAAL,TA-VAAL将来自VAAL的全局数据结构和来自学习损失的局部任务相关信息用于样本的查询。我们将ARAL,VAAL和TA-VAAL的框架展示在Fig6.

与ARAL和VAAL利用标记数据集与未标记数据集进行对抗表示学习不同,SSAL尝试了一种新的训练方式。SSAL跨AL周期的使用无监督、监督和半监督学习的方式,在尽可能不增加标注成本的情况下充分利用已有的信息进行训练。具体来说,在主动学习开始前,首先利用标记数据和未标记数据进行无监督预训练,在每个AL学习周期首先在标记数据集上进行监督训练,然后在所有数据集上进行半监督训练。这在训练方法上是一种新的尝试,并且作者发现与采样策略之间的差异相比,这种模型训练方式在性能提升上有着令人惊讶的提升。

正如上面说分析的那样,这种在训练方式和数据利用技巧上的探索也是非常有必要的,它在性能上的增益甚至可能超过改变查询策略所代来的性能增益。这实际上是在不增加标注代价的情况下对已有数据信息的充分利用,有助于缓解AL查询样本数量不足以支撑DL模型更新的问题。

通用框架DAL

如2.3中所述的,由于AL和DL在处理管道上的不一致,仅在AL框架中对DL模型进行微调或者简单的组合AL与DL将它们视为两个分割独立的问题可能会引起分歧。例如,A 首先将DL模型在两个不同类型的会话数据集上进行离线的监督训练以使骨干网络拥有基本的对话能力,然后启用在线AL阶段与人类用户进行互动,根据用户的反馈来以一种开放式的方法来改进模型。AL-DL为有DBNs的DL模型提出了一个主动标记方法。ADN为情感分类提出了一种主动深度网络架构。[23]为CAPTCHA的识别提出了一种使用CNN进行的主动学习算法 。然而,上述方法往往首先在标记数据集上对深度模型进行常规的监督训练,然后基于深度模型的输出进行主动采样。类似的相关工作还有很多,这种将AL和深度模型的训练视为两个独立问题的割裂化处理方式增加了两个问题产生分歧的可能。尽管这种方法在当时也取得了一定的成功,但一个将DL和AL两个任务紧密结合的通用框架对DAL的性能提升与推广都有着至关重要的作用。



CEAL将来自未标注数据集中的样本逐步送入到初始化后的CNN,由CNN分类器输出两种类别的样本:少量不确定性的样本和大量高预测置信度样本。通过orcal为少量不确定性样本进行标注,同时使用CNN分类器为大量的高预测置信度样本自动分配伪标签。然后,使用这两种类型的样本对CNN进行微调,并重复这个更新过程。

CEAL\cite{Wang2017CostEffectiveActive}是第一个结合AL与DL解决深度图像分类问题的工作之一。CEAL将深度卷积神经网络合并到AL中,提出了一个新颖的DAL框架。它通过将来自未标注数据集中的样本逐步送入CNN,由CNN分类器输出两种类别的样本:少量不确定性的样本和大量高预测置信度样本。通过orcal为少量不确定性样本进行标注,同时使用CNN分类器为大量的高预测置信度样本自动分配伪标签。然后,使用这两种类型的样本对CNN进行微调,并重复这个更新过程。在Fig2中,我们展示了CEAL的总体框架图。类似的,HDAL也采用了类似的框架用于人脸识别任务中,它将AL与深度CNN模型进行结合从而一体化的同时考虑特征学习和AL查询模型的训练。

此外,Fig1©中展示了一个非常常见的DAL任务的通用框架,相关的工作包括\cite{Yang2017Suggestive, Du2019BuildinganActivePalmprintRecognitionSystem,He2019Towards, Zhao2020Deeply, Lv2020Deep}等。具体的来讲,\cite{Yang2017Suggestive}提出使用全卷积网络和AL进行结合的框架来解决使用少量标注进行医学图像分割的问题。它首先将FCN在少量的标注数据集上进行训练,然后将未标注数据集中的样本通过FCN进行特征提取,并使用这些特征来对未标注样本进行不确定性和相似度估计。这种类似于2.1.2中的策略有助于选择具有高度不确定性和多样化的样本被添加到标注数据集中,从而开始下一阶段的训练。

\cite{Du2019BuildinganActivePalmprintRecognitionSystem}为掌纹识别任务提出了一个类似的DAL框架。不同的是,受到域适应的启发,\cite{Du2019BuildinganActivePalmprintRecognitionSystem}将AL视为一个二分类任务,期待标注样本集与未标注样本集拥有相同的数据分布并使得二者难以区分,这样就可以直接在少量的标注数据集上进行监督训练了,从而减轻标注负担。

\cite{Lv2020Deep}为缺陷检测提出了一个DAL框架。它根据检测模型输出的特征进行不确定性抽样以产生用于注释的候选样本列表。为了进一步兼顾采样样本中缺陷类别的多样性,\cite{Lv2020Deep}设计了平均边距的方法来控制每个缺陷类别的采样比例。以采样训练和选择样本的迭代模式来有效的训练检测模型。

不同于以上方法往往只利用DL模型的最后输出的作为样本不确定性或多样性的判别依据(Active Palmprint Recognition\cite{Du2019BuildinganActivePalmprintRecognitionSystem}使用了第一个全连接层的输出),\cite{He2019Towards,Yoo2019LearningLossActive,Zhao2020Deeply}他们还使用了DL模型的中间隐藏层的输出。正如Section 3.1.3和Section 2.3中所分析的那样,由于深度模型与浅层模型之间学习范式的差异导致了传统的基于不确定性的查询策略无法直接应用于DL模型。此外,与浅层模型不同,深层模型可以被视为由特征提取阶段与任务学习阶段两部分组成。而仅仅使用DL模型最后一层的输出作为样本预测不确定性的评估依据是不准确的。因为DL模型的不确定性实际上是由特征提取和任务学习两个阶段的不确定性共同组成。这种思想的示意图被展示在Fig.4。



以常见的CNN为例,展示了传统不确定性测量方法与综合两个阶段(即,特征提取阶段与任务学习阶段)信息的不确定性测量方法的对比。

为此,AL-MV \cite{He2019Towards}将来自CNN中间不同隐藏层的特征视为多视图数据,同时考虑两个阶段的不确定性,并设计了AL-MV算法来实现对各层的不确定性进行自适应加权,从而更加准确的测量样本的不确定性。

LLAL也是用了类似的想法,LLAF设计了一个损耗预测模块的小型参数模块附加到目标网络,使用目标网络的多个隐藏层的输出作为损耗预测模块的输入。通过学习损耗预测模块来预测未标记数据集的目标损耗,并以top-k的策略选择查询样本。LLAL以较小的参数代价实现了与任务无关的AL框架设计,并在多种主流的视觉任务(即,图像分类、目标检测和人体姿态估计)上都取得了有竞争力的性能表现。

类似的\cite{Zhao2020Deeply}采用了相似的策略实现了一个手指骨骼分割任务的DAL框架。\cite{Zhao2020Deeply}将Deeply Supervised U-Net作为分割网络,然后将多级分割隐藏层的输出以及最后一层的输出作为AL的输入,综合这些输入信息作为样本信息量大小的评估依据。我们以LLAL为例在Fig6中展示这种想法的总体网络结构。



LLAL的总体框架图。黑色的线表示训练模型参数的阶段,优化由目标损失和损失预测损失构成的总体损失。红色的线表示AL的样本查询阶段。将DL模型的多个隐藏层的输出作为loss预测模块的输入,根据预测损失挑选top-K个未标记数据点通过oracle赋予标签。

通用框架的研究对DAL的发展和推广是非常有益处的,这种任务无关的框架可以更加方便的被移植到其他领域。当前的DL与AL之间融合还主要集中在DL主要负责特征提取,AL主要负责样本查询,因此更加深度紧密的融合有助于DAL取得更加优异的性能,当然这还需要研究人员更多的探索和努力。

DAL 的各种应用

如今,DAL已经被应用包括但不限于视觉数据处理(例如目标检测,语义分割等),NLP(例如情感分析,问答等),语音和音频处理 ,社交网络分析,医学图像处理,野生动物保护,工业机器人和灾害分析等领域。 本节我们从应用的角度对DAL的相关工作进行一个系统详尽的概述。

Visual Data Processing

| | | | ---- | ---- | | | |

如同DL在计算机视觉领域被广泛应用一样,DAL的提出第一个被期待发挥潜力的领域就是计算机视觉。本节我们主要讨论DAL在视觉数据处理领域的研究。

图像分类与识别

与DL的研究类似,在DAL中图像的分类与识别是其他视觉任务研究的一个基础。如何在传统AL并不擅长的高维数据上高效的查询样本,并在尽可能小的标注代价下获得满足要求的性能是DAL在图像视觉任务领域所面临的一个重要的问题。

为了解决这个问题,CEAL为具有高置信度的样本分配伪标签,并将其添加到使用基于不确定性的AL方法查询到的高度不确定性的样本集中,使用扩充后的训练集一起训练DAL模型图像分类器。

\cite{Ranganathan2017Deep}首次将AL的准则集成到深度信念网络中,并对各种单模态和多模态的真实数据集上的分类任务进行了广泛的研究。

WI-DL使用DAL的方法在高光谱图像(HSI)数据集上同时考虑最大化代表性和不确定性两个选择标准来进行遥感分类。

类似的\cite{Lin2018Active,Deng2019Active}也研究了高光谱图像的分类问题。\cite{Lin2018Active}引入AL来初始化HSI,稍后进行转移学习,同时建议对源和目标HSI数据构造和连接更高级别的特征来进一步克服跨域差异问题。\cite{Deng2019Active}提出了一个统一的深度网络并结合主动转移学习,仅使用了较少的标签训练数据对HSI分类进行了良好的训练。

此外,医学图像分析也是一类重要的应用。例如,

\cite{Folmsbee2018Active}探索使用AL代替随机学习来训练卷积神经网络进行组织分类任务。

\cite{Budd2019Survey}在医学图像分析领域对相关的DAL方法进行了全面的回顾。

出于相似的原因,由于医学图像的标注需要很强的专业性知识,而训练有素的专家的时间通常很昂贵且非常的稀缺。此外,DL已经在各种图像特征任务上取得了令人印象深刻的表现,因此,集中于结合DL与AL将DAL应用于医学图像分析领域的工作仍然还有很多。

DAL方法也被用来进行浮游生物的分类任务\cite{Bochinski2018Deep},细胞的自动计数\cite{Alahmari2019Automatic}。

除此之外,DAL在我们的日常的生活场景中也有着广泛的应用。例如,\cite{Stark2015Captcha}提出了一种使用CNN进行验证码识别的AL算法。它可以利用免费获取标记数据的能力,来避免人为干预,在使用较少标记数据的情况化极大的提升识别精度。

HDAL \cite{Li2017Face}结合深度卷积神经网络优秀的特征提取能力与AL标记代价的节约为人脸识别任务设计了一个启发式的深度主动学习框架。

Object Detection and Semantic Segmentation

目标检测和语义分割在自动驾驶、医学图像处理、野生动物保护等各个领域都有着重要的应用价值。然而,这些领域都同样受限于较高的样本标注代价,DAL较小的标注代价有望加速相应DL模型的在一些标注较为困难现实领域的应用。

例如,\cite{Roy2018Deep}为目标检测设计了一个DAL框架,它将目标检测中使用的分层架构作为“委员会查询”的范例来选择要查询的图像集,同时引入了与A类似的勘探/开采权衡策略。

DAL也被广泛应用于自然生物领域和工业应用中,例如,

\cite{Norouzzadeh2019deep}利用深度神经网络来快速,可转移,自动地提取信息,同时结合转移学习和AL为相机陷阱图像中的物种识别和计数设计了一个DAL框架。

\cite{Feng2019Deep}为自动驾驶的深层对象检测提出了一个DAL框架来训练LiDAR 3D目标检测器。

\cite{Kellenberger2019Half}使用无人机(UAV)获取图像进行野生动物的检测。为了能到够重复使用这种动物检测器,\cite{Kellenberger2019Half}使用AL并引入转移抽样(TS)来找到源和目标数据集之间的对应区域,以便实现向目标域数据的转移。

\cite{Lv2020Deep}为真实工业的缺陷检测提出了一个非常常见的DAL框架,并提出了一种不确定性抽样的方法来生成候选标注类别。它使用平均裕度法来设置每个缺陷类别的抽样尺度,在使用较少标注数据的情况下就能获得了所需的性能。

此外,DAL在医学图像分割上也有着重要的应用。例如,

\cite{Gaur2016Membrane}为医学图像分割提出了一种基于AL的转移学习机制,使得该方法可以在有限的标记数据集上有效的提高图像的分割性能。

\cite{Yang2017Suggestive}将完全卷积网络(FCN)与AL相结合为生物图像分割提出了一种DAL框架。它利用FCN提供的不确定性和相似性信息给出了最大集合覆盖问题的一个拓展,通过指出最有效的标注区域来显著减少标注工作量。

DASL \cite{Wang2018Deepa}为肺结节分割任务提出了基于深层区域的网络结节R-CNN来为实例生成分割掩码,同时结合AL和自定步长学习(SPL)提出了一种新的深度主动自定步长(DASL)策略来减少标注工作量。

\cite{Wang2019Nodule}为三维胸部CT图像中的肺结节检测与分割提出了一个基于区域的网络Nodule-plus Region-based CNN。Nodule-plus Region-based CNN将AL和自定进度学习(SPL)策略相结合,提出了一种新的深度自定步长主动学习(DSAL)策略从而减小了注释工作量且有效的利用了未标注数据。

\cite{Zhao2020Deeply}为手指骨骼分割任务提出了一种新的深度监督主动学习方法,该方法可以以一种迭代和增量学习的方式进行微调,并且使用了中间隐藏层的输出作为AL样本挑选的依据。与完整的额标注相比,\cite{Zhao2020Deeply}仅使用了较少的样本就获得了与之相当的分割结果。

Video processing

相对于图像,视频任务除了要处理空间特征,还需要处理时间特征,因此视频任务的标注工作代价更昂贵,引入AL的期待也更为迫切。DAL在该领域也有着更加广阔的应用场景。

例如,\cite{Hussein2016Deep}提出使用模仿学习的方法执行导航任务。教师在第一人称视角下的可视化环境和所采取的动作被作为训练集。通过训练,希望学生能够根据所处的环境预测执行相应的动作。当执行任务时,学生使用深度卷积神经网络进行特征提取,学习模仿策略,并使用AL的方法选择信心不足的样本添加到训练集中,来更新行动策略。\cite{Hussein2016Deep}使用了较少的样本显著改善了初始策略。

DeActive \cite{Hossain2018DeActive}提出了一种DAL的活动识别模型,DeActive与用于活动识别的传统DL模型相比需要更少的标注样本,消耗更少的资源,且具有高的识别精度。

\cite{Wang2018Deep}通过将AL集成到DL框架中来最大限度的降低基于视频的person-Re-ID数据集的标注代价。类似的,\cite{Liu2019Deep}为person Re-ID任务提出一种深度强化主动学习方法,以过oracle的反馈来指导代理(强化学习过程中的模型)进行下一步的不确定性样本的选择,通过交替细化的强化学习策略来不断优化代理的选择机制。

\cite{Aghdam2019Active}为视频和静态图像的行人目标检测提出了一种基于卷积神经网络的主动检测目标检测器的方法。

Natural Language Processing

NLP一直以来都是一个非常具有挑战性的任务。NLP旨在使计算机理解复杂的人类语言,帮助人类处理各种与自然语言相关的任务。数据标签不足也是NLP任务所面临的一个关键性的挑战。下面我们介绍一些NLP领域最著名的DAL方法。

Sentiment Analysis

| | | | | ------------------------------------------------------------ | ---- | ---- | | Active Deep Networks for Semi-Supervised Sentiment Classification | 2015 | |

它是NLP中的一个 典型任务,旨在使得计算机理解一段自然语言描述,并对其中的涵义信息进行提取分析。

相关的应用场景非常的丰富,包括但不限于情感分类、新闻鉴别、命名实体识别(NER)等。

更为具体的,例如,\cite{Zhou2010Active}使用Restricted Boltzmann Machines (RBM) 构造了一个主动深度网络(ADN),并在标记数据集与无标记数据集上进行无监督训练。ADN使用大量的未标记数据集提升模型的泛化能力,并在半监督学习框架中使用AL,将标记数据的选择与分类器统一在了一个半监督分类框架中,在情感分类任务上获得了有竞争力的结果。

\cite{Bhattacharjee2017Active}在只有有限数量的注释样本的情况下为新闻准确性检测任务(即识别新闻中的误导和虚假信息)提出了一个人机协同学习系统。该系统是基于AL的深度模型,使用了比完全监督学习少1-2个数量级的注释样本,大大加快了模型的收敛速度,且在检测性能上实现了惊人的25%的平均性能增益。

\cite{Shen2017DeepActiveLearning,Shardlow2019text}使用DL与AL进行结合研究了在较小训练集的情况下如何提高命名实体识别(NER)的技术水平。

\cite{Priya2019Identifying}使用来自受灾地区的相关推文来提取信息以便进行地震期间基础设施损坏的识别,为此,\cite{Priya2019Identifying}将基于RNN和GRU的模型与AL相结合,使用基于AL的方法预训练模型来检索来自不同地区基础设施损坏的推文,从而显著减少手动标注的工作量。

实体解析(ER)是跨数据库识别具有不同表示形式相同真实实体的任务,是知识库创建和文本挖掘的关键步骤。\cite{Kasai2019Low}为ER开发了一个基于DL的方法,它结合了转移学习和AL设计了一个体系结构,它允许学习一个从高资源环境到低资源环境的可移植模型。

数据集



问答、摘要

问答系统、自动摘要也是NLP中常见的处理任务。DL已经在这些领域取得了令人印象深刻的结果。然而,这些应用的性能仍然依赖于海量的标记数据集,AL有望为这个挑战带来新的希望。

自动问答系统在工业界有着非常广泛的应用,DAL在该领域也有着重要的研究价值。例如,\cite{Asghar2016Deep}使用在线的AL策略结合DL模型,通过与真实用户进行交互,在每一轮对话中以一种增量的方式从用户的反馈中进行学习来实现开放式的对话。

\cite{Jedoui2019Deep}发现为特定任务(例如,分类)设计的AL策略往往只有一个正确答案,这些基于不确定性的测量往往根据模型的输出计算。而许多现实世界的视觉任务往往有多个正确答案,导致不确定性测量被高估,有时的表现甚至比随机抽样基线更差。为此,\cite{Jedoui2019Deep}在可视化问题答案生成(VQA)中提出估计模型内部隐含空间中的不确定性,而不是模型输出空间中的不确定性,从而克服了语言的释义性质。

自动摘要旨在从大文本中提取有用的最为重要的信息。\cite{Maldonado2019Active}为识别大型脑电波图(EEG)报告中的概念和关系提出了一种新颖的主动学习策略神经网络(ALPNN),可以帮助人类从大量的EEG报告中提取可用的临床知识。

在语音和音频领域的标签注释成本也相对较高。\cite{Abdelwahab2019Active}发现在由少量演讲者收集的数千个录音所构成的语料库上训练的模型无法推广到新的域。因此\cite{Abdelwahab2019Active}研究了利用AL在标记资源有限的情况下训练深度神经网络进行语音情感识别任务实用方案。

其他应用

深度主动学习的出现是令人兴奋的,有望在保持性能的情况下,成数量级的减少标注代价。为此,DAL也被广泛的应用于其他领域。

这些应用包括但不限于基因表达、机器人、可穿戴设备数据分析、社交网络和心电信号分析等。

更为具体的,例如,MLFS \cite{Ibrahim2014Multi} 将DL和AL进行结合为基于表达谱的选择基因/miRNA提出了一个新颖的多层次特征选择方法。MLFS还考虑了miRNA与基因之间的生物学关系,将该方法应用于miRNA的拓展任务上。

真实世界的机器人的故障风险是昂贵的。为此,\cite{Andersson2017Deep}提出了一种风险感知重采样技术。将AL与现有的求解器和DL一起使用来对机器人的运行轨迹进行优化以便有效应对移动障碍物场景下的碰撞问题,并在真正的纳米四轴飞行器上验证了该DAL方法的有效性。

\cite{Zhou2019Active}为机器人控制算法逆动力学模型提出了一个主动轨迹生成框架,这允许\cite{Zhou2019Active}系统地设计用于训练DNN逆动力学模块的信息轨迹。

\cite{Hossain2019Active, Gudur2019Activeharnet}利用可穿戴设备或移动终端上的传感器来收集用户的运动信息,来进行人类活动识别。\cite{Hossain2019Active}提出了一种有上下文感知注释器选择的活动识别DAL框架。ActiveHARNet \cite{Gudur2019Activeharnet}提出了一种资源高效的深度集成模型ActiveHARNet,它支持设备上的增量学习和推理,使用BNN中的近似来表示模型的不确定性能力,并在两个公开数据集上证明了ActiveHARNet部署和增量学习的可行性。

DALAUP \cite{Cheng2019Deep}为社交网络中的锚点用户预测设计一个DAL框架来减少锚点用户的标注成本,同时提高预测准确性。

DAL也被应用于心电信号的分类。例如, \cite{Rahhal2016Deep} 提出了一种基于深度学习的心电信号主动分类方法。\cite{Hanbay2019Deep} 提出了一种使用特征值和DL基于AL的ECG分类方法。通过使用AL方法来有效的减少医学专家标记ECG信号的代价。

总的来说,DAL目前的应用主要集中在视觉图像处理任务中,对NLP和其他领域也有着相对零散的应用。和DL与AL相比,DAL目前仍然处于研究的初级阶段,相应经典作品还相对较少,但仍然有着和DL一样广阔的应用场景和实用价值。

讨论与未来方向

| | | | ------------------------------------------------------------ | --------------------------- | | Towards Robust and Reproducible Active Learning Using Neural Networks | 对DAL的工作提出了大量的建议 | | | | | | |

DAL结合了DL和AL的共同优势,不仅继承了DL善于处理高维图像数据和自动特征提取的能力,而且继承了AL有效降低标注代价的潜力。因此,DAL尤其是在标签需要很高专业知识难以获得领域有着令人着迷的潜力。

最近的大多数工作显示DAL已经在许多常见的任务上获得了成功。DAL凭借降低标注代价以及继承DL强大的特征提取能力引了大量研究人员的兴趣,正如\cite{Munjal2020Towards}所发现的那样,在不同的研究中关于随机采样基线(RSB)的报告结果有着很大不同。例如,在相同设置下,使用CIFAR 10的20%的标签数据,\cite{Yoo2019LearningLossActive}所报告的RSB性能比\cite{Tran2019BayesianGenerativeActive}高13%。其次,同一DAL方法在不同的研究中报告的结果可能有所不同。例如,使用CIFAR 100的40%的标签数据和VGG16作为提取网络,\cite{Sener2018ActiveLearningConvolutional}和\cite{sinha2019variational}的报告结果相差8%。此外,最新的DAL研究也存在彼此不一致的情况。例如,\cite{Sener2018ActiveLearningConvolutional}和\cite{Ducoffe2018Adversarial}指出基于多样性的方法一直优于基于不确定性的方法,而基于不确定性的方法比RSB更差。但是,\cite{Yoo2019LearningLossActive}的最新研究表明并非如此。

与AL有策略的选择高价值的样本相比,RSB已经被是一个强有力的基线。以上问题说明,我们首先急需为DAL的工作设计一个通用的性能评估平台,并确定一个统一的高性能的RSB。其次,不同的DAL的方法的可复现性也是一个重要的问题,高度可复现的DAL方法有助于对不同DAL进行性能评估,应在一致的设置下使用通用的评估平台进行实验,并共享实验设置快照。别外,相同实验条件下的不同初始化的多次重复性实验是被要求的,这可以有效避免因实验设置问题所引起的误导性结论。那些互相不一致的研究需要引起研究人员足够的重视,以便弄清其中原理。另一方面,充足的消融实验和转移实验也是必须的,前者可以让我们更容易看清是哪些改进带来了性能增益,后者可以确保我们的AL选择策略的确可以对数据集无差别的选择高质量样本。

目前的DAL方法的研究方向主要集中在AL选择策略的改进,训练方法的优化以及任务无关的模型改进。

正如Section2所分析的那样,AL选择策略的改进目前主要集中在以显式或者隐式的方式将基于不确定性和多样性的查询策略考虑在内。并且混合型的选择策略越来越受到研究人员的青睐。

训练方法的优化主要集中在对未标记数据集,标记数据集或者使用GAN等方法扩充数据,然后跨AL周期的进行无监督学习、半监督学习、监督学习的混合型训练方法。这种训练方法甚至表现出比选择策略改进更有前途的性能提升,实际上这弥补了DL模型需要大量标注训练样本而AL选择标注样本的数量有限的问题。此外,对无标记数据集或者生成数据集的使用也有利于充分利用已有的信息,而并不增加额外的标注代价。此外,增量训练的方式也是一个重要的研究方向,在每次循环中从头开始训练深度模型在计算资源上是不可接受的。而简单的增量训练又会导致模型参数的偏差问题,但是在资源节省上的巨大诱惑是相当吸引人的。然而,相关的研究仍然是相当匮乏的,但这仍然是一个非常有前景的研究方向。

任务无关也是一个重要的研究方向,这有助于使得DAL的模型可以更加直接广泛的被推广到其他任务。然而相关的研究还是不足的,并且相应的DAL方法往往只关注了基于不确定性的选择方法。由于DL自身更加容易与基于不确定性的AL选择策略相融合,因此我们相信在与任务无关的研究方向上未来基于不确定性的方法还将继续占据主导地位。另一方面,明确显式的将基于多样性的选择策略考虑在内或许也是一个不错的选择,当然,这也面临着很大的挑战。

此外,需要指出的是一味的追求在更小的子集上训练模型的想法是不可取的,因为在一些内容丰富类别多样拥有海量样本的数据集中样本重要性的相对差异几乎可以被忽略。

显然上述的这些改进方向之间并不冲突,因此一种混合的改进策略是未来一个重要的发展方向。

总的来说,DAL的研究在标注代价和应用场景上都有着巨大的实际应用价值,但当前的DAL的研究仍然处于初级阶段,未来还有很长一段路要走。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 2020年中国研究生数学建模竞赛E题分析

    2020年中国研究生数学建模竞赛E题 探索大雾演化规律&#xff0c;预测大雾变化趋势 能见度是气象、公路行车、飞机飞行中常见指标&#xff0c;单位通常是米。影响能见度的因素主要是雾和霾。众所周知&#xff0c;能见度对高速公路行车安全非常重要&#xff0c;当能见度很低时&am…...

    2024/5/4 2:13:18
  2. Leetcode 地图分析

    你现在手里有一份大小为 N x N 的 网格 grid&#xff0c;上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋&#xff0c;1 代表陆地&#xff0c;请你找出一个海洋单元格&#xff0c;这个海洋单元格到离它最近的陆地单元格的距离是最大的。 我们这里说的距离是「曼哈顿…...

    2024/4/21 21:59:48
  3. typeof 和 instanceof 区别

    JavaScript中 typeof 和 instanceof 区别 这属于js基础知识&#xff0c;正因为太基础&#xff0c;所以很容易被忽略&#xff0c;导致项目中随处可以见的滥用。 一、typeof typeof 其实就是判断参数是什么类型的实例&#xff0c;就一个参数&#xff0c;用例&#xff1a;typeo…...

    2024/4/29 0:55:02
  4. Linux-ubuntu 释放linux的buff/cache

    $ free -htotal used free shared buff/cache available Mem: 7.7G 1.4G 4.3G 59M 1.9G 5.8G Swap: 7.9G 0B 7.9G 含义注释&#xff1a; total 内存总数 used 已经使用的内存数…...

    2024/4/26 4:38:46
  5. python3 向 类 class 传递参数 会调用哪一部分?

    结论&#xff1a; 等价于向__init()__传递参数&#xff01; 执行如下代码&#xff1a; class A(object):def __init__(self, a"A"):print("enter", a)print("leave", a)def mainA(readA, *D): # 如果使用实例化B(),调用mainA,D收集进来D多余的…...

    2024/4/29 20:49:38
  6. 4.1控制流if for循环

    if语句 if condition do something elif other_condition do something #if 用法如下&#xff1a; # # # number59 # guess int(input("enter an integer:")) # #这是input用法 # #print("guess is:"str(guess)) # # if guessnumber: # prin…...

    2024/4/25 23:38:09
  7. uni-app 系列(二十二):HBuilderX在电脑上运行uniapp项目到安卓模拟器上

    &#x1f4d6;摘要 今天分享下 —— uni-app 系列&#xff08;二十二&#xff09;&#xff1a;HBuilderX 在电脑上运行 uniapp 项目到 安卓模拟器 上 的一些基本知识&#xff0c;欢迎关注&#xff01; 欢迎阅读&#xff0c;总结系列&#xff1a;野蛮生长的 uni-app 学习之路 相…...

    2024/5/2 20:51:47
  8. HashMap底层实现原理

    HashMap底层实现采用了哈希表 数组&#xff1a;占用空间连续&#xff0c;寻址容易&#xff0c;查询速度快。但是增加和删除效率低。链表&#xff1a;占用空间不连续&#xff0c;寻址困难&#xff0c;查询速度慢。但是增加和删除效率高。 哈希表的本质就是“数组链表” HashMap…...

    2024/4/21 21:07:58
  9. Java并发系列:ThreadLocal的用法和坑

    本文主要讲解&#xff1a; ThreadLocal的用法 多线程竞争同一个变量同一个线程无需显式调用 ThreadLocal的原理 数据结构set、get 和 remove方法 ThreadLocal的问题 线程不安全的场景内存溢出问题延伸&#xff1a;强弱虚软引用 本文源码地址&#xff1a;E01_ThreadLocal&…...

    2024/4/21 21:07:57
  10. 1.12 实例:猜数字小游戏

    猜数字是一个经典的小游戏&#xff0c;程序先产生一个随机数&#xff0c;然后用户输入数字&#xff0c;程序将输入的数字与随机数进行对比&#xff0c;给出用户相应的提示信息。 本节实现了一个基于 IO 流的猜数字游戏&#xff0c;游戏中限制玩家游戏次数&#xff0c;游戏试玩…...

    2024/4/21 1:58:13
  11. 用Python存储数据的实用姿势

    你以为男朋友是取款机&#xff0c;结果是十台机器&#xff0c;有九台半是存款机。 如果仅仅是临时获取一些数据&#xff0c;保存到本地csv文件后&#xff0c;用Excel等软件处理即可。 但长期积累数据后&#xff0c;会发现文件多到难以管理&#xff0c;数据库就是为此而生。 不…...

    2024/4/28 17:31:12
  12. 4.3 continue和pass和break

    # # number59 # while True: # guessint(input("enter an inteher:")) # if guess number: # break # #跳出该处所有循环 # elif guess <number: # print("lower") # continue # #跳出当前循环 # else: # …...

    2024/4/21 9:19:28
  13. 蛙泳如何找准背部发力的感觉

    蛙泳是四种泳姿中最容易学的泳姿&#xff0c;也是最难提高的泳姿。之所以易学难精是因为它的技术动作要点多&#xff0c;要求配合精准。正确发力是衡量一个人蛙泳水平的试金石&#xff0c;一般的爱好者基本都不知道什么时候发力&#xff0c;如何发力。掌握了正确发力的知识&…...

    2024/4/21 21:59:45
  14. 深度之眼Paper带读笔记GNN.01.Node2Vec

    文章目录前言论文结构学习目标论文研究背景、成果、意义研究背景研究成果研究意义泛读摘要核心观点论文标题传统的图的特征工程图的构建图的应用精读论文算法模型总览论文算法模型的细节细节一细节二 BFS和DFS细节三 有偏Random Walk算法细节四 算法细节五 alias sampling实验设…...

    2024/4/20 22:54:42
  15. hive 判空处理的三种处理方法

    hive 判空处理的三种处理方法 CASE WHEN 语法 CASE Statement 使用 方式一 SELECT CASE opt_date --简单case函数:写法简洁WHEN "年" THEN 1WHEN "月" THEN 0ELSE 0END AS date_type FROM cl_ods.ods_erp_income_di LIMIT 10;方式二 SELECT CASE --c…...

    2024/4/21 21:59:43
  16. i7 10700K和i9 9900K哪个好

    i7-10700K拥有8核16线程&#xff0c;基础频率3.8GHz&#xff0c;全核睿频4.7GHz&#xff0c;在Turbo Boost MAX 3.0技术加持下可以把两个核心睿频至5.1GHz&#xff0c;L3缓存16MB&#xff0c;TDP 125W&#xff0c;整合UHD 630核显。 选i7 10700K还是i9 9900K这些点很重要!看完你…...

    2024/4/21 8:26:21
  17. 5.1输入输出方式介绍

    str_1input("enter a string:") str_2input("enter another string:") print("str_1:"str_1"str_2:"str_2) print("str_1 is {}str_2 is {}".format(str_1, str_2))...

    2024/4/21 21:59:40
  18. Python清洗数据的实用姿势

    注重细节&#xff0c;从小事做起&#xff0c;因为你根本做不了大事。 接下来的4章&#xff0c;会介绍数据分析的核心工作&#xff0c;包括数据清洗、业务模型、数据分析和数据可视化。 不管数据来自外部采集&#xff0c;还是内部系统导出&#xff0c;都会出现不规整的部分&…...

    2024/4/21 21:59:39
  19. 5.2输入输出文件中

    # 写入文件操作&#xff1a; some_sentences\ i love learning python i love you fopen(sentences.txt,w) f.write(some_sentences) f.close() #读文件 fopen(sentences.txt)#不说明则默认是读文件操作 while True: linef.readline() if len(line)0: break …...

    2024/5/2 2:32:32
  20. 限制EditText为单行

    有时我们使用EditText时只想让它保持单行状态。可能你会说直接设置如下即可&#xff1a; android:maxLines"1"这样确实是显示的时候保持了一行&#xff0c;当我们再按"Enter"键后发现上面的字没了&#xff0c;但实际它还在EditText里&#xff0c;使用getT…...

    2024/4/25 15:30:28

最新文章

  1. 解决AmazonEKSNodeRole创建ALB相关策略 AccessDenied问题

    问题 Failed deploy model due to AccessDenied: User: arn:aws:sts::XXXXXXX:assumed-role/AmazonEKSNodeRole/i-05dde0c62e7539e0a is not authorized to perform: elasticloadbalancing:AddTags on resource: arn:aws:elasticloadbalancing:ap-east-1:369180331248:targetgr…...

    2024/5/4 3:31:43
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 基于springboot实现影城管理系统项目【项目源码+论文说明】

    基于springboot实现影城管理系统演示 摘要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多生活之中&#xff0c;随之就产生了“小徐影城管理系统”&#xff0c;这样就让小徐影城管理系统更加方便简单。 对于本小…...

    2024/5/3 2:03:48
  4. AI小程序的创业方向:深度思考与逻辑引领

    随着人工智能技术的快速发展&#xff0c;AI小程序逐渐成为创业的新热点。在这个充满机遇与挑战的时代&#xff0c;我们有必要深入探讨AI小程序的创业方向&#xff0c;以把握未来的发展趋势。 一、目标市场定位 首先&#xff0c;我们要明确目标市场。针对不同的用户需求&#x…...

    2024/5/4 1:53:15
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/3 11:50:27
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/2 16:04:58
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/2 23:55:17
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/3 16:00:51
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/3 11:10:49
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/3 21:22:01
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/3 23:17:01
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/2 23:47:43
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/3 13:26:06
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/3 1:55:15
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/4 2:14:16
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/3 16:23:03
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/3 1:55:09
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/2 8:37:00
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/3 14:57:24
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/2 9:47:25
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/4 2:00:16
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/3 22:03:11
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/3 7:43:42
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/3 1:54:59
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57