数据不足的学习第2部分:主动学习

2022-02-23 21:50:23

有监督学习任务的性能随着更多高质量标签的提供而提高。然而,收集大量标记样本的成本很高。当有资源标记更多的数据样本但预算有限时,主动学习是一种处理标记数据不足的范式。

这是在监督学习任务中面对有限数量的标记数据时该怎么做的第2部分。这一次,我们将涉及一些人类标记工作,但在预算范围内,因此我们需要在选择要标记的样本时保持明智。

给定一个未标记的数据集\(\mathcal{U}\)和一个固定的标记成本\(B\),主动学习的目的是从\(\mathcal{U}\)中选择一个子集\(B\)示例进行标记,以便最大限度地提高模型性能。这是一种有效的学习方法,尤其是在数据标记困难且成本高昂的情况下,例如医学图像。这篇2010年的经典调查论文列出了许多关键概念。虽然一些传统方法可能不适用于深度学习,但本文的讨论主要集中在深度神经模型和批处理模式下的训练。

为了简化讨论,我们假设在以下所有部分中,任务都是一个\(K \)类分类问题。带有参数\(\theta\)的模型在标签候选上输出概率分布,该概率分布可能会被校准,也可能不会被校准。\(P \ \theta(y\vert\mathbf{x}),最可能的预测是\(\hat{y}=\arg\max\u{y\in\mathcal{y}P\utheta(y\vert\mathbf{x})。

识别最有价值的示例以标记下一步的过程称为“采样策略”或“查询策略”。采样过程中的评分函数称为“采集函数”,表示为\(U(\mathbf{x})\)。得分较高的数据点如果被标记,则有望为模型训练产生更高的价值。

不确定性抽样选择模型产生最多不确定性预测的示例。给定一个单一的模型,不确定性可以通过预测的概率来估计,尽管一个常见的抱怨是深度学习模型的预测通常没有经过校准,并且与真实的不确定性没有很好的相关性。事实上,深度学习模式往往过于自信。

最不自信分数,也称为变异率:\(U(\mathbf{x})=1-P_theta(\hat{y}\vert\mathbf{x})\)。

边际得分:\(U(\mathbf{x})=P\theta(\hat{y}U 1\vert\mathbf{x})-P\theta(\hat{y}U 2\vert\mathbf{x}),其中\(\hat{y}U 1\)和\(\hat{y}U 2\)是最可能和第二可能的预测标签。

熵:\(U(\mathbf{x})=\mathcal{H}(P\theta(y\vert\mathbf{x}))=-\sum\U{y\in\mathcal{y}P\theta(y\vert\mathbf{x})\log P\theta(y\vert\mathbf{x})。

另一种量化不确定性的方法是依靠专家模型委员会,称为委员会查询(QBC)。QBC基于一系列意见来衡量不确定性,因此保持委员会成员之间的分歧水平至关重要。给定委员会池中的\(C\)模型,每个模型由\(\theta_1、\dots、\theta_C\)参数化。

选民熵:\(U(\mathbf{x})=\mathcal{H}(\frac{V(y)}{C}),其中\(V(y)\)统计标签\(y\)上委员会的投票数。

多样性抽样旨在找到能够很好地代表整个数据分布的样本集合。多样性很重要,因为该模型有望在野外的任何数据上都能很好地工作,而不是在一个狭窄的子集上。所选样本应代表潜在分布。常用的方法通常依赖于量化样本之间的相似性。

预期模型变更是指样本对模型培训产生的影响。影响可以是对模型权重的影响,也可以是对训练损失的改善。下一节将回顾关于如何测量选定数据样本触发的模型影响的几项工作。

上述许多方法并不相互排斥。混合采样策略对数据点的不同属性进行估值,将不同的采样偏好组合为一个。我们通常希望选择不确定但也具有高度代表性的样本。

模型不确定性通常分为两类(Der Kiureghian&Ditlevsen 2009,Kendall&Gal 2017):

任意不确定度是由数据中的噪声(例如传感器数据、测量过程中的噪声)引入的,可以是输入相关的,也可以是输入独立的。它通常被认为是不可还原的,因为缺少关于地面真相的信息。

认知不确定性是指模型参数内的不确定性,因此我们不知道模型是否能最好地解释数据。考虑到更多的数据,这种不确定性在理论上是可以减少的

机器学习有一个悠久的传统,即使用集成来提高模型性能。当模型之间存在显著差异时,集成有望产生更好的结果。许多ML算法都证明了这个系综理论的正确性;例如,AdaBoost聚合了许多弱学习者,使其表现与单个强学习者相似,甚至更好。Bootstrapping集成了多次重采样试验,以实现更准确的度量估计。随机森林(Random forests)或GBM也是一个很好的例子,说明了加密的有效性。

为了获得更好的不确定性估计,可以直观地聚合一组经过独立训练的模型。然而,训练单个深层神经网络模型的成本很高,更不用说训练其中的许多模型了。在强化学习中,自举DQN(Osband等,2016)配备了多个值头,并依靠Q值近似集合中的不确定性来指导RL中的探索。

在主动学习中,更常见的方法是使用辍学学生“模拟”概率高斯过程(Gal&;Ghahramani 2016)。因此,我们将从同一模型中采集的多个样本进行整合,但在正向传递过程中使用不同的退出遮罩,以估计模型的不确定性(认知不确定性)。该过程被称为MC辍学(Monte Carlo辍学),在每个权重层之前应用辍学,被批准在数学上等同于概率深高斯过程的近似值(Gal&Ghahramani 2016)。这种简单的想法已经被证明对小数据集的分类是有效的,并且在需要有效的模型不确定性估计的场景中被广泛采用。

DBAL(Deep Bayes active learning;Gal et al.2017)使用MC辍学近似贝叶斯神经网络,从而学习模型权重的分布。在他们的实验中,MC辍学表现优于随机基线和平均标准偏差(mean STD),类似于变异率和熵测量。

Beluch等人(2018年)将基于集合的模型与MC辍学模型进行了比较,发现朴素集合(即单独和独立地训练多个模型)和变异率的组合产生了比其他模型更好的校准预测。然而,naive套装非常昂贵,因此他们探索了几种更便宜的选择:

快照集成:使用循环学习速率计划来训练隐式集成,使其收敛到不同的局部极小值。

多样性鼓励集成(DEE):使用一个经过少量训练的基本网络作为\(n \)个不同网络的初始化,每个网络都经过辍学训练,以鼓励多样性。

不幸的是,上面所有廉价的隐式合奏选项都比天真的合奏效果差。考虑到计算资源的限制,MC辍学仍然是一个非常好且经济的选择。当然,人们也会尝试将合奏和MC辍学(Pop&;Fulop 2018)结合起来,通过随机合奏获得一些额外的性能增益。

backprop的Bayes(Blundell等人,2015)直接测量神经网络中的权重不确定性。该方法在权重\(\mathbf{w}\)上保持概率分布,该概率分布被建模为变分分布\(q(\mathbf{w}\vert\theta)\),因为真实后验分布\(p(\mathbf{w}\vert\mathcal{D})不可直接处理。损失是为了最小化\(q(\mathbf{w}\vert\theta)\)和\(p(\mathbf{w}\vert\mathcal{D})\)之间的KL差异,

\[\begin{aligned}\mathcal{L}(\theta)&;=\text{KL}[q(\mathbf{w}\vert\theta)\\124; p(\mathbf{w}\vert\mathcal{D})]\&;=\int q(\mathbf{w}\vert\theta)\log\frac{q(\mathbf{w}\vert\theta)}{p(\mathbf{w})p(\mathcal{D}\vert\mathbf{w})D\mathbf{w}\\\\&;=\文本{KL}[q(\mathbf{w}\vert\theta)\\ p(w)]-\mathbb{E}{uq(\mathbf{w}\vert\theta)}[\log p(\mathcal{D}\vert\mathbf{w})]\&;\大约\logq(\mathbf{w}\vert\theta)-\logp(\mathbf{w})p(\mathcal{D}\vert\mathbf{w})&;\文本{;蒙特卡罗抽样;}q(\mathbf{w}\vert\theta)\text{&;}p(\mathbf{w})\text{接近。}\结束{aligned}\]变分分布\(q\)通常是具有对角协方差的高斯分布,每个权重从\(\mathcal{N}(\mu_i,\sigma_i^2)\)中采样。为了确保\(\sigma_i\)的非负性,它通过softplus进一步参数化,\(\sigma_i=\log(1+\exp(\rho_i)),其中变分参数为\(\theta=\{\mu_i\rho_i\}^d_{i=1})。

计算\(f(\mathbf{w},\theta)\)w.r.t.到\(\mu\)和\(\rho\)的梯度,然后更新\(\theta\)。

损失目标指导模型培训。较低的损失值表明模型可以做出良好且准确的预测。Yoo&;Kweon(2019)设计了一个损失预测模块,用于预测未标记输入的损失值,作为对给定数据的模型预测效果的估计。如果损失预测模块对数据样本进行不确定预测(高损失值),则选择数据样本。损耗预测模块是一个简单的带丢失的MLP,它将几个中间层特征作为输入,并在全局平均池后将它们连接起来。

假设\(\hat{l}\)是损失预测模块的输出,\(l\)是真正的损失。在培训损失预测模块时,简单的MSE损失“(=(l-\hat{l})^2”)不是一个好的选择,因为随着模型学习到更好的行为,损失会随着时间的推移而减少。一个好的学习目标应该独立于目标损失的规模变化。相反,他们依赖于样本对的比较。在每批大小为\(b\)的样品中,有\(b/2\)对样品\((\mathbf{x}u i、\mathbf{x}u j)\),预计损失预测模型能够正确预测哪个样品的损失更大。

\[bebe开始[[[be开始[[be开始[be开始[be开始[be开始[[be开始[[对齐]的[[[be开始[be开始[[be开始[[be开始[be开始[[[[[对齐]]]的[[be开始[[be开始[[[be开始[[be开始[be开始[be开始[[[be开始[[be开始[[[be开始[[[be开始[[[[be开始]]]]]可能[[[[[[[be开始[[[[be开始]]]]]]]可能[[[[[be开始[[[[[[[be开始[[[[[[be开始[[[[[be开始[[[[[[be开始]]]]]]]]]]]]可能[[[[[[[[[[[[[be开始]]]]]]]]]]]]]]]]]]的[[[[[[[[[[[[[[[[[[i,L_j)&;=\begin{cases}+1&;\text{if}L_i>;L_j\-1&;\text{other}\end{cases}\end{aligned}\]在三项视觉任务的实验中,基于损失预测的主动学习选择优于随机基线、基于熵的获取和核心集。

Sinha等人(2019年)提出了一种类似于GAN的设置,名为VAAL(变分对抗式主动学习),其中训练了一个鉴别器来区分未标记数据和标记数据。有趣的是,主动学习习得标准并不取决于VAAL中的任务表现。

\(\beta\)-VAE分别学习标记和未标记数据的潜在特征空间\(\mathbf{z}^l\cup\mathbf{z}^u\),目的是欺骗鉴别器\(D(.)\)所有数据点都来自标记的池;

鉴别器\(D(.)\)根据潜在表示\(\mathbf{z}\)预测样本是否标记为(1)或(0)。VAAL选择具有低鉴别器分数的未标记样本,这表明这些样本与之前标记的样本有足够的差异。

VAAL中VAE表示学习的损失包含重建部分(最小化给定样本的ELBO)和对抗部分(标记和未标记的数据来自相同的概率分布\(q_ \ phi\):

\[开始[[[[be开始[[[[be开始[[[[[be开始[[[[[[[对齐]}}}{{[[[be开始[[[be开始[[[be开始[[[[[[[对齐]]]]可能[[be开始[[[[be开始[[[[[be开始[[[[对齐]]]]可能[[[[[[be开始[[[[[[[[be开始]]]]]]]]可能[[[[[[[[be开始]]]]]]]可能可能[[[[[[[[[[[[[[[be开始]]]]]]]]]]可能可能可能可能可能可能[[[[[[[[[[[[[[[[[[be开始]]]]]]]]]]]]]]]]]]]可能可能可能[[[[..........................^L]-\beta\text{KL}(q\phi(\mathbf{z}^L\vert\mathbf{x}^L)\\124p(\mathbf{\tilde{z}))+\mathbb{E}[\log p\uTheta(\mathbf{u}\vert\mathbf{z}^u)]-\beta\text{KL}(q{phi(\mathbf{z}^u\vert\mathbf{u})\|p(\mathbf{\tilde{z}))\\\mathcal{L}^\text{adv}\mathbb{E}[\logd(q_\phi(\mathbf{z}^l\vert\mathbf{x}^l))-\mathbb{E}[\logd(q_\phi(\mathbf{z}^u\vert\mathbf{u}))\end{aligned}]其中\(p(\mathbf{tilde{z}})是一个预先定义的高斯单位,\)是拉格朗日参数。

\消融研究表明,联合训练VAE和鉴别器是至关重要的。他们的结果对有偏差的初始标记池、不同的标记预算和嘈杂的oracle具有鲁棒性。

MAL(Minimax主动学习;Ebrahimiet al.2021)是VAAL的一个扩展。MAL框架由熵最小化特征编码网络\(F\)和熵最大化分类器\(C\)组成。这种minimax设置减少了标记和未标记数据之间的分布差距。

特征编码器\(F \)将样本编码为\(ell_2 \)归一化\(d \)维潜在向量。假设存在\(K\)类,分类器\(C\)由\(\mathbf{W}\in\mathbb{R}^{d\times K}\)参数化。

(1) 首先通过简单的交叉熵损失对标记样本进行训练,以获得良好的分类结果,

\[[[mathbf{x}^L,y\[[[[[[mathbf{[x}^1,1,y]\sim\Math[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[10]数学b[[[10}}}}{{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,y,1,y,y,y,y]概概概概概概概概概概概概概概概概概概概[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[3]学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校学校]的[[[[[[[[[[[[[[[[[}\mathcal{L}\text{Ent}&;=-\sum^k{k=1}p(y=k\vert\mathbf{u})\log p(y=k\vert\mathbf{u})\\\theta^*\u F、\theta^*\u C&;=\min_F\max_C\mathcal{L}\text{Ent}\\\ theta_F&;\获取\theta_F-\alpha_1\nabla\mathcal{L}\uu\text{Ent}\\\ theta_C&;\首先获取\theta_C+\alpha_2\nabla\mathcal{L}\text{Ent}\end{aligned}\],最小化\(F\)中的熵会鼓励与类似预测标签关联的未标记样本具有类似的功能。

在\(C \)中最大化熵会使预测遵循更均匀的类分布。(我在这里的理解是,由于未标记样本的真实标签未知,我们不应该优化分类器以最大化预测标签。)

多样性:分数为\(D\)表示样本与之前看到的样本有多相似。分数接近0时,最好选择不熟悉的数据点。

不确定性:使用\(C\)获得的熵。熵得分越高,表明该模型尚不能做出可靠的预测。

在图像分类和分割任务上,实验将MAL与随机、熵、核心集、BALD和VAAL基线进行了比较。结果看起来相当强劲。

CAL(对比主动学习;Margatina et al.2021)打算选择对比例子。如果具有不同标签的两个数据点共享相似的网络表示\(\Phi(.)\),它们在CAL中被视为对比示例。给出一对对比示例\(\mathbf{x}u i、\mathbf{x}u j)\),它们应该

\[d(p(mathbf{x}{x}{x}{x}}{U j)和[d(p(mathbf{x}{x}{x}{x}{y(p(p(y\mathbf{x}{x{x{x{x}}i)和[p(p(mathbf{x}{x}{x}{x}{x}{x}j)的[j)和[p(p(p(p(y(y\mathbf{x{x{x{x{x{x}{x{x}{x}{x{x}{x}{x}x}x}}x}x}x}x}{x}}x}x}}x}}j)的[j)的[j\)。

计算\(\{mathbf{x}\)和\(\{mathbf{x}^l}\)中每个模型输出概率之间的KL散度。\(\mathbf{x}\)的对比分数是这些KL散度值的平均值:\(s(\mathbf{x})=\frac{1}{M}\sum{i=1}^M\text{KL}(p(y\vert\mathbf{x}^l\u i\\ 124p(y\vert\mathbf{x}))。

在各种分类任务上,CAL的实验结果与熵基线相似。

核心集是计算几何中的一个概念,指的是近似于较大点集形状的一小组点。近似可以通过一些几何度量来捕捉。在主动学习中,我们期望在核心集合上训练的模型在整个数据点上的表现与模型相当。

Sener&;Savarese(2018)将主动学习视为核心集合选择问题。比如说,在培训期间总共有\(N\)个样本可访问。在主动学习过程中,每个时间步\(t\)都会标记一小部分数据点,表示为\(\mathcal{S}^{(t)}\)。学习目标的上界可以写成如下,其中核心集损失定义为标记样本的平均经验损失与整个数据集(包括未标记样本)的损失之间的差值。

\[\begin{aligned}\mathb{E}{(\mathbf{x},y)\sim p}[\mathcal{L}(\mathbf{x},y)]\leq&;\bigg\vert\mathbb{E}{(\mathbf{x},y)\sim p}[\mathcal{L}(\mathbf{x},y)]-\frac{1}{N}\sum{i=1}^N\mathcal{L}(\mathbf{x},y})bigg vert&;\文本{;泛化错误}\\\+&;\frac{1}{\vert\mathcal{S}{(t)}\vert}\sum{j=1}{\vert\mathcal{S}{(t)}\vert}\mathcal{L}(\mathbf{x}^lj,yj)&;\文本{;训练错误}\\\+&;\bigg\vert\frac{1}{N}\sum{i=1}^N\mathcal{L}(\mathbf{x}i,y{u i)-\frac{1}{\vert\mathcal{S}\vert}\sum{j=1}{\vert\mathcal{S}{t}\vertj};\(t+1)以下的:::::{核心组错误;核心组错误;核心组错误:{{核心组错误:{核心组错误:{核心组错误:{{核心组错误:{核心组错误:{{核心组错误(t+1)}\核心组错误[[[[[[[[[5 5]的主要组组错误]缅甸缅甸[[[[[[5]主要主要主要组组组组组组错误:{{(t+1)1)的[t+1}}}}}\ \ \倒倒倒倒倒倒倒倒倒倒倒基基..............基基.............................................................................1)}\vert}\sum{j=1}{\vert\mathcal{S}{(t)}\cup\mathcal{S}{(t+1)}\vert}\mathcal{L}(\mathbf{x}^L{j,yj)\bigg\vert\]这相当于\(k \)中心问题:选择\(b \)中心点,使数据点与其最近中心之间的最大距离最小化。这个问题是NP难问题。近似解取决于贪婪算法。

当类数较少时,它可以很好地用于图像分类任务。当类的数量增加或数据维度增加(“维度诅咒”)时,核心集方法的效率就会降低(Sinha等人,2019年)。

由于核心集选择成本高昂,Coleman等人(2020年)对较弱的模型进行了实验(例如,较小、较弱的体系结构,未完全训练),并发现经验上使用较弱的模型作为代理可以显著缩短训练模型和选择样本的每个重复数据选择周期,不会对最后的错误造成太大伤害。他们的方法被称为SVP(通过代理选择)。

BADGE(通过不同梯度嵌入的批量主动学习;Ash等人,2020)跟踪梯度空间中的模型不确定性和数据多样性。不确定性通过梯度幅值w.r.t.来测量。网络的最后一层和多样性由梯度空间中的一组不同样本捕获。

不确定性。给定一个未标记的样本\(\mathbf{x}\),BADGE首先计算最后一层的参数在\(\mathbf{x}、\hat{y})上的损失的预测\(\hat{y}\)和梯度\(g\mathbf{x})。他们观察到,\(g_\mathbf{x}\)的范数保守地估计了示例对模型学习的影响,并且高置信度样本往往具有小幅度的梯度嵌入。

差异考虑到很多g

......