Low-Shot Learning from Imaginary Data

2022-09-02 11:44:24 浏览数 (2)

摘要

人类可以快速学习新的视觉概念,也许是因为他们可以很容易地从不同的角度想象出新的物体的样子。结合这种对新概念产生幻觉的能力,可能有助于机器视觉系统进行更好的低视角学习,也就是说,从少数例子中学习概念。我们提出了一种新的低镜头学习方法,使用这个想法。我们的方法建立在元学习(“学习学习”)的最新进展之上,通过将元学习者与产生额外训练例子的“幻觉者”结合起来,并共同优化两种模式。我们的幻觉器可以整合到各种元学习者中,并提供显著的收益:当只有一个训练示例可用时,分类精度提高了6点,在具有挑战性的ImageNet low-shot 分类基准上产生了最先进的性能。

1、简介

视觉识别系统的准确性已经显著提高。但是现代识别系统仍然需要成千上万的每个类别的样本来饱和性能。这在没有足够资源来收集大型训练集或涉及罕见视觉概念的情况下是不切实际的。它也不像人类的视觉系统,人类甚至可以从一个例子[28]学习一个新的视觉概念。从很少的例子中学习新概念的挑战,通常被称为低镜头或少镜头学习,是这项工作的重点。最近提出的许多解决这个问题的方法都属于元学习[33]的范畴。元学习方法训练学习者,学习者是一个参数化的函数,映射标注的训练集到分类器。元学习者的训练方法是,从大量带标签的样本中抽取小的训练集和测试集,将采样的训练集输入学习者,得到分类器,然后计算抽样测试集上分类器的损失。这些方法将low-shot学习直接框定为一个优化问题。

然而,一般的元学习方法将图像视为黑盒子,忽略了视觉世界的结构。特别是,许多变化模式(例如相机姿势,转换,灯光变化,甚至清晰度)是跨类别共享的。作为人类,我们的知识共享模式的变化可能会让我们想象小说对象可能是什么样子在其他姿势或环境(图1)。如果机器视觉系统可以做这样的“幻觉”或“想象力”,然后时的例子可以作为额外的训练数据构建更好的分类器。不幸的是,除了像手写字符[20]这样的简单域外,构建能够执行这种幻觉的模型是困难的。对于一般图像,虽然最近在生成真实样本方面取得了相当大的进展,但大多数当前的生成建模方法都面临模式崩溃的问题[26]:它们只能捕获数据的一些模式。这对于低概率学习可能是不够的,因为需要捕获许多变异模式才能构建好的分类器。此外,用于分类的模式可能不同于通过训练图像生成器发现的模式。先前的工作试图避免这种限制,方法是显式地使用姿态注释来生成新颖姿态[5]中的样本,或者使用精心设计但脆弱的启发式来确保多样性[13]。

我们的主要见解是,当我们幻想出更多的例子时,我们的目标既不是多样性,也不是现实主义。相反,目标应该是产生对学习分类器有用的例子。因此,我们提出了一种新的low-shot学习方法,通过对模型中包含数据幻觉的分类目标进行端到端优化,直接学习对分类有用的幻觉示例。

我们通过将元学习与幻觉结合起来来实现这个目标。我们的方法不仅训练元学习者,而且训练幻觉者:一个将真实例子映射到幻觉例子的模型。几发子弹训练集首先被喂给幻觉者;它产生一个扩展的训练集,然后供学习者使用。与普通的元学习相比,我们的方法使用了视觉世界中共享模式变化的丰富结构。我们的经验表明,这种幻觉对两种不同的元学习方法都有显著的性能提升[35,30],当只有一个训练例子时,最高可提高6点。我们的方法也不确定元学习方法的选择,并提供了显著的收益,不管这个选择。正是这种利用标准元学习方法而不做任何修改的能力,使得我们的模型简单、通用,并且非常容易重现。与之前关于幻觉例子的工作相比,我们没有使用额外的注释,并且显著优于基于脆性启发法[13]的幻觉。我们还提出了一种新的元学习方法,并发现和修复以前提出的基准中的缺陷。

2、相关工作

低目标学习是一个经典问题[32]。有一类方法建立可跨类别共享先验的生成模型[7,25,10]。通常,这些生成模型必须为该领域手工设计,如笔画[17,18]或手写字符的部分[39]。对于更多的无约束域,尽管最近有了显著的进展[24,11,22],现代生成模型仍然不能捕获整个分布[26]。不同的类别可能不共享部分或笔触,但可能仍然共享变化模式,因为这些通常对应于摄像机姿态,关节等。如果在转换上有一个概率密度,那么可以通过对所提供的示例应用抽样转换来生成新类的其他示例[20,5,13]。对于只进行2D转换的手写字符[20]来说,学习这样的密度比较容易,但是对于一般的图像类别来说就难多了。Dixit等人通过利用附加的带有姿态和属性标签的图像数据集来解决这个问题;这使得他们能够了解当姿势或属性发生改变时图像是如何转换的。为了避免注释,Hariharan和Girshick[13]尝试将两个已知类别的示例转换为一个新类的“种子”示例。但是,学习进行这种传输需要一个精心设计的管道,其中包含许多启发式步骤。我们的方法遵循了这一行工作,但学会了以端到端方式进行此类转换,避免了脆弱的启发式和昂贵的注释。

低镜头学习的另一类方法关注于构建对类内变化不变的特征表示。一些工作试图在看到的和新的类[1,36]之间共享特性,或者在遇到[21]的新类时逐步学习它们。对比损失函数[12,16]和三联体损失的变体[31,29,8]已经用于适合低镜头学习的特征表示学习;其思想是将来自同一类的示例推得更近,而远离其他类。Hariharan和Girshick[13]表明,可以通过精心设计的损失函数鼓励在小数据集上训练的分类器与在大数据集上训练的分类器匹配。这些表示改进与我们的方法是正交的,我们的方法可以处理任何特性。

更广泛地说,最近的一类方法试图将低距离学习本身定义为一种“学习学习”的任务,称为元学习[33]。其思想是直接训练从训练集到分类器的参数化映射。通常,学习者将例子嵌入到特征空间中。然后,它可以使用循环神经网络(RNNs)、记忆增强网络[27]或多层感知器(MLPs)[6]在训练集上积累统计数据,执行梯度下降步骤来微调表示[9],并/或将每个类分解为原型[30]。另一种选择是直接预测分类器的权重,这些权重将使用很少的新类例子[2]或小数据集分类器[37,38]从大型数据集学习。我们提出了元学习的统一观点,并表明我们的幻觉策略可以被采用在这些方法中的任何一种。

3. Meta-Learning

mathcal{X} 为输入空间(如图像),mathcal{Y}为离散标签空间。 设mathcal{D}mathcal{X} times mathcal{Y} 上的一个分布,监督机器学习的目的通常是通过将学习算法应用到一个参数化模型和一个训练集。

left{left(x_{i}, y_{i}right) sim mathcal{D}right}_{i=1}^{N}来捕获条件分布p(y mid x) 。 在推断时,对测试输入x评估模型以估计p(y|x)。 推理和学习算法的组成可以写成函数h(一种分类算法),以训练集为输入,测试输入x为输入,在标签上输出估计概率分布hat{mathbf{p}} :

hat{mathbf{p}}(x)=hleft(x, S_{text {train }}right)

在low-shot学习中,我们希望函数h即使在S_{text {train }} 很小的情况下也具有较高的分类精度。 元学习是一个涵盖了许多最近提出的经验风险最小化方法的术语。 具体来说,他们考虑了参数化分类算法h(·,·; W),并尝试估计一个“好的”参数向量W,即对应于一个分类算法,可以很好地从小数据集学习。 因此,估计这个参数向量可以理解为元学习。

元学习算法有两个阶段。 第一阶段是元训练,估计分类算法的参数向量w。 在元训练过程中,元学习者可以访问一个大型标记数据集S_{text {meta}} ,该数据集通常包含大量c类的数千张图像。在元训练的每次迭代中,元学习者从S_{text {meta}} 中采样一个分类问题。 也就是说,元学习者首先从c中抽取m个类的子集,然后抽取一个小的“训练”集S_{text {train }} 和一个小的“测试”集S_{text {test}} 。 然后,它使用其当前的权重向量w来计算条件概率hleft(x, S_{text {train }} ; mathbf{w}right) 对测试集testest中的每个点(x, y)。 注意,在这个过程中,h可能会进行内部计算,相当于对应变进行“训练”。

第二阶段是元测试阶段,将生成的分类算法用于解决新的分类任务:对每个新任务,分别给出有标记的训练集和未标记的测试示例,分类算法输出类概率。 不同的元学习方法在h的形式上有所不同。本文介绍的数据幻觉方法具有普遍性,适用于任何上述形式的元学习算法。 具体来说,我们将考虑以下三种元学习方法:

Prototypical networks:

Snell等人提出了一种h架构,该架构基于学习特征空间中与类的距离mu_k 分配类概率:

begin{aligned} hleft(x, S_{text {train }}right.&; mathbf{w})=hat{mathbf{p}}(x) \ hat{p}_{k}(x) &=frac{e^{-dleft(phileft(x ; mathbf{w}_{phi}right), mu_{k}right)}}{sum_{j} e^{-dleft(phileft(x ; mathbf{w}_{phi}right), mu_{j}right)}} \ mu_{k} &=frac{sum_{left(x_{i}, y_{i}right) in S_{text {train }}} phileft(x_{i} ; mathbf{w}_{phi}right) mathbf{I}left[y_{i}=kright]}{sum_{left(x_{i}, y_{i}right) in S_{text {train }} mathbf{I}left[y_{i}=kright]}} end{aligned}

这里hat{p}_{k} 是概率向量hat{mathbf{p}} 的组成部分,d是距离度量(在[30]中的欧几里德距离)。 这里需要学习的唯一参数是特征提取器mathbf{W}_{phi} 的参数。 对类的估计意味着μk可以看作是发生在h内部的从S_{text {train }} “学习”的简单形式。

Matching networks:

Vinyals等人[35]认为,当面对一个分类问题和相关的训练集时,人们希望关注那些对那些特定类别区分有用的特征。 因此,在使用特征提取器独立嵌入所有训练和测试点后,他们提出分别使用双向长短期记忆网络(lstm)和注意lstm创建训练和测试示例的上下文嵌入。 这些上下文嵌入可以被看作是强调与所讨论的特定类相关的特性。 最后的类概率是使用软最近邻机制计算的。Vinyals等人使用了余弦距离。 需要学习的参数有三组:mathbf{w}_{phi}, mathbf{w}_{g}, text { and } mathbf{w}_{f}

Prototype matching networks:

匹配网络的一个问题是,注意力LSTM可能会发现更难“参加”罕见的课程(它们被普通课程淹没了),因此可能会引入对它们的严重偏见。 原型网络没有这个问题,因为它们将每个类分解成一个单一的类均值。 我们希望将匹配网络中的情境嵌入的好处与原型网络提供的对类别失衡的弹性结合起来。 为此,在创建测试示例的上下文嵌入之前,我们将每个类分解为它的类意思。 然后,最终的类概率是基于到上下文嵌入的类平均值的距离,而不是单个示例:

begin{aligned} hleft(x, S_{text {train }}right.&; mathbf{w})=hat{mathbf{p}}(x) \ hat{p}_{k}(x) &=frac{e^{-dleft(f(x), nu_{k}right)}}{sum_{j} e^{-dleft(f(x), nu_{j}right)}} \ f(x) &=operatorname{AttLSTM}left(phileft(x ; mathbf{w}_{phi}right),left{nu_{k}right}_{k=1}^{|mathcal{Y}|} ; mathbf{w}_{f}right) \ nu_{k} &=frac{sum_{left(x_{i}, y_{i}right) in S_{text {train }}} gleft(x_{i}right) mathbf{I}left[y_{i}=kright]}{sum_{left(x_{i}, y_{i}right) in S_{text {train }}} mathbf{I}left[y_{i}=kright]} \ left{gleft(x_{i}right)right}_{i=1}^{N} &=operatorname{BiLSTM}left(left{phileft(x_{i} ; mathbf{w}_{phi}right)right}_{i=1}^{N} ; mathbf{w}_{g}right) . end{aligned}

需要学习的参数有wφ、wg、wf。 我们把这种对匹配网络的改进称为原型匹配网络。

4、Meta-Learning with Learned Hallucination

我们现在通过学习产生幻觉的其他例子来介绍我们的低目标学习方法。 给定一个初始训练集Strain,我们想要一种方法来取样额外的幻觉例子。 继最近关于生成建模的工作[11,15]之后,我们将通过对噪声向量作为输入的确定性函数来建模这个随机过程。 从直觉上来说,我们希望幻觉者能够以不同的姿势或不同的环境创造出一个对象类别的单一例子。 因此我们把这个幻觉器写成函数G(x,z;w_G) 以种子样例x和噪声矢量z作为输入,并产生幻觉样例作为输出的w_G 。 这个幻觉器的参数是w_G。 我们首先描述这个幻觉者是如何在metattest中使用的,然后讨论我们如何训练幻觉者。

Hallucination during meta-testing:

在元测试过程中,我们会得到一个初始训练集S_{text {train }} 。 然后我们使用幻觉器产生幻觉n个新例子。 每个幻觉的例子都是这样得到的:从S_{text {train }} 中采样一个真实的例子(x, y),采样一个噪声矢量z,然后将xz传递给G,得到一个生成的例子(x',y) ,其中x^{prime}=Gleft(x, z ; mathbf{w}_{G}right) 。 我们将生成的样本集SG train加入到实际样本集中,得到一个增强训练集S_{text {train }}^{text {aug }}=S_{text {train }} cup S_{text {train }}^{G} 。 我们现在可以简单地使用这个增强训练集,使用h产生条件概率估计。注意,幻觉者的参数在这里保持不变; 所有发生的学习,都发生在分类算法h中。

Meta-training the hallucinator:

幻觉者的目标是生成示例,帮助分类算法学习更好的分类器。 这个目标与现实主义不同:现实主义的例子可能仍然无法捕捉视觉概念的多种变化模式,而不现实的幻觉仍然可以导致一个好的决策边界[4]。 因此,我们建议使用元学习直接训练幻觉者来支持分类算法。

与前面一样,在每次元训练迭代中,我们从所有类的集合中抽取m个类,每个类最多抽取n个例子。 然后,对于每个类,我们使用G生成n_{text {gen }}额外的例子,直到每个类都有确切的n_{text {gen }} 例子。 同样,每个幻想的例子的形式是left(x^{prime}, yright) ,其中x^{prime}=Gleft(x, z ; mathbf{w}_{G}right)(x, y)S_{text {train }} 的采样样本,z是采样噪声向量。 这些额外的例子被添加到训练集S_{text {train }} 中,产生一个增强的训练集S_{text {train }}^{text {aug }} 。 然后将该增强训练集输入到分类算法h中,得到最终损失

sum_{(x, y) in S_{text {tes }}} Lleft(hleft(x, S_{text {train }}^{text {aug }}right), yright)

其中S_{text {train }}^{text {aug }}=S_{text {train }} cup S_{text {train }}^{G}S_{text {train }}^{G}=left{left(Gleft(x_{i}, z_{i} ; mathbf{w}_{G}right), y_{i}right)_{i=1}^{n_{text {gen }}}:left(x_{i}, y_{i}right) inright.left.S_{text {train }}right}

为了训练幻觉器G,我们要求分类算法hleft(x, S_{text {train }}^{text {aug }} ; mathbf{w}right) 相对于S_{text {train }}^{text {aug }} 中的元素是可微的。 对于许多元学习算法来说都是如此。 例如,在原型网络中,h通过特征提取器通过训练集中的每个例子,计算该特征空间中的类means,利用测试点到类means的距离来估计类的概率。 如果特征提取器是可微的,那么分类算法本身对于训练集中的例子是可微的。 这样我们就可以反向传播最终损失,不仅可以更新分类算法h的参数,还可以更新幻觉器的参数w_G 。 图2显示了整个过程的示意图。 使用元学习来训练幻觉者和分类算法有两个好处。 首先,幻觉者被直接训练来产生对阶级区分有用的幻觉,而不需要精确地调整现实主义或多样性,或产生幻觉的正确变化模式。 第二,分类算法与幻觉者联合训练,使其能够容忍幻觉中的任何错误。 相反,幻觉者可以花费它的能力来精确地抑制那些使分类算法失效的错误。 请注意,训练过程是完全未知的特定元学习算法所使用的。 我们将在实验中证明幻觉者提供了显著的好处不管元学习者是谁。

5、Experimental Protocol

我们使用Hariharan和Girshick提出的基准[13]。 与其他基于手写字符[18]或低分辨率图像[35]的基准测试相比,该基准测试捕获的场景更加真实。 该基准测试基于ImageNet图像和ImageNet类的子集。 首先,在表示学习阶段,基于卷积神经网络(ConvNet)的特征提取器在一组类上进行训练,每个类有数千个样本; 这个集合称为“基”类C_{text {base }} 。 然后,在low-shot学习阶段,识别系统遇到一组额外的“新”类C_{text {novel }} ,每个类有少量的例子n。 它还可以访问基类训练集。 系统现在必须学会识别基础类和新类。 在一个包含这两组类的示例的测试集上对它进行测试,它需要输出联合标签空间C_{text {base }} cup C_{text {novel }} 中的标签。 Hariharan和Girshick报告了所有类的平均前5名的精确度,以及仅基类例子的平均前5名的精确度,以及仅新奇类例子的平均前5名的精确度。

Tradeoffs between base and novel classes:

我们观察到,在这种联合评估中,不同的方法在新类和基类示例之间有非常不同的性能权衡,但平均取得了相似的性能。 这使得仅在新类或基类上比较不同方法的性能变得很困难。 此外,我们发现,通过改变一些元学习者的超参数值,可以在不显著改变平均表现的情况下实现显著不同的权衡点。 这意味着可以调整超参数,以牺牲基类的性能为代价使新类的性能看起来更好(反之亦然)。 将这种权衡具体化的一种方法是将优先类合并在基础类和新类之上。 考虑一个分类器,它为给定图像x的每个类k给出一个分数sk(x)。通常,可以通过应用一个softmax函数将这些转换为概率:

p_{k}(x)=p(y=k mid x)=frac{e^{s_{k}}}{sum_{j} e^{s_{j}}}

C_{text {base }}或新类C_{text {novel }} 的概率有一些先验知识。 假设一个图像属于其中一个新类的先验概率是μ。 将式(14)更新如下:

begin{aligned} p_{k}(x)=& p(y=k mid x) \ =& pleft(y=k mid y in C_{text {base }}, xright) pleft(y in C_{text {base }} mid xright) \ & pleft(y=k mid y in C_{text {novel }}, xright) pleft(y in C_{text {novel }} mid xright) \ =& frac{e^{s_{k}} mathbf{I}left[k in C_{text {base }}right]}{sum_{j} e^{s_{j}} mathbf{I}left[j in C_{text {base }}right]}(1-mu) \ & frac{e^{s_{k}} mathbf{I}left[k in C_{text {novel }}right]}{sum_{j} e^{s_{j}} mathbf{I}left[j in C_{text {novel }}right]} mu . end{aligned}

先验概率μ可能事先已知,但也可以交叉验证,以纠正分数sk中的固有偏差。然而,请注意,在一些实际设置中,可能没有一个固定的类别集来进行交叉验证。 因此,适应这一先决条件很重要。 图3显示了Hariharan和Girshick[13]提出的评价中,该先验对匹配网络的影响。 请注意,即使新类的精确度上升而基职业的精确度下降,总体精确度仍然相当稳定。 Chao et al.[3]等人提出了这种校正先验概率用于zero-shot学习设置。

A new evaluation:

如果模型的任务是在联合标签空间中进行预测,那么在基类和新类之间存在这种可调的折衷,使得很难对新类的性能进行全面的比较。 相反,我们使用一种新的评估协议来评估四组数字:

1. 模型给出了来自新类的测试示例,并且只期望从新类中选择一个标签。 也就是说,标签空间被限制为C_{text {novel }} (注意,由于上下文嵌入的原因,这样做相当于为原型网络设置μ = 1,而不为匹配网络和原型匹配网络设置μ = 1)。 我们报告了小说课程在这个背景下的前5名准确性。

2. 接下来,给出了来自基类的测试示例,标签空间被限制为基类。 我们报告了在这种情况下的前5名准确性。

3. 该模型分别从基类和新类等比例给出了测试实例,并且该模型需要从联合标签空间预测标签。 我们在所有例子中报告了前5名的平均准确性。 我们给出了有或没有一个新的类先验μ的数; 前者对μ进行交叉验证,获得最高的平均top-5精度。

注意,在[13]之后,我们使用一组不相交的类进行交叉验证和测试。 这可以防止幻觉者、元学习者和之前的新班级的超参数选择过度适应在测试时第一次看到的新班级。

6、实验

6.1、实现细节

不同于之前使用小图像和少量类进行元学习的工作[35,30,9,23],我们使用高分辨率图像,我们的基准涉及数百个类。 这导致了一些实现挑战。 元学习的每次迭代至少都要为训练集Strain和测试集Stest计算特征。 如果有100个类,每个类有10个示例,那么这相当于1000个图像,这些图像不再适合内存。 按照元学习目标从头开始训练具有数十层的现代深度卷积网络也可能导致一个困难的学习问题。 相反,我们首先训练一个基于卷积网络的特征提取器在一个简单的分类目标上的基类Cbase。 然后提取并保存这些特征到磁盘,并使用这些预先计算的特征作为输入。 对于大多数实验,与[13]一致,我们使用一个小型的ResNet-10架构[14]。 稍后,我们将展示一些使用更深层次的ResNet-50架构[14]的实验。

Meta-learner architectures:

我们关注最先进的元学习方法,包括原型网络(PN)[30],匹配网络(MN)[35],以及我们对原型匹配网络(PMN)的改进。 对于PN,嵌入体系结构由两个MLP层组成,ReLU作为激活函数。 我们在[30]中使用欧几里德距离。 对于MN,在[35]之后,嵌入体系结构由一层双向LSTM(嵌入训练样本)和注意力LSTM(嵌入测试样本)组成。 我们用余弦距离表示[35]。 对于我们的PMN,在测试示例的上下文嵌入之前,我们将每个类分解为它的类平均值,并且我们保持其他设计选择与MN中的相同。

Hallucinator architecture and initialization:

对于我们的幻觉者G,我们使用一个三层MLP和ReLU作为激活功能。 我们在最后添加一个ReLU,因为预先训练的特征是非负的。 所有隐藏层的维度为512 (ResNet-10)和2048 (ResNet-50)。 受[19]的启发,我们将幻觉网络的权值初始化为块对角单位矩阵。 这明显优于标准的初始化方法,比如随机高斯分布,因为幻觉者可以“复制”它的种子示例,从初始化立即产生合理的生成。

6.2. Results

和[13]一样,我们对n(每个小说类的例子数)的每个设置运行5次试验,并给出平均性能。 不同的方法对于基类比较好,达到92%的前5名的准确率。 我们更关注新颖的课程,因为它们在低难度的学习中更重要。 表1包含了新类别和联合空间的前5位精度的摘要,无论是有或没有交叉验证的先验。 所有数字的标准差都在0.2%左右。 我们将在下面讨论具体的结果、基线和消融。

Impact of hallucination:

我们首先比较元学习者是否有幻觉来判断幻觉的影响。 为了进行比较,我们研究了原型网络(PN)和原型匹配网络(PMN)。 图4显示了在最初的元学习者表现之上,我们从幻觉中获得的前5名准确率的提高。 实际数字如表1所示。 我们发现我们的幻觉策略显著提高了新类别的准确性,对于原型网络最多提高了6个点,对于原型匹配网络提高了2个点。 这表明我们的方法是通用的,可以适用于不同的元学习者。 当有更多新的类别训练实例时,改进有所下降,但在原型网络和原型匹配网络的n = 20和n = 5之前,改进仍然显著。 接缝标签空间(图4右半部分)的准确性也显示了同样的趋势。 然而,请注意,当我们交叉验证一个适当的新类先验μ(虚线所示)时,幻觉的增益显著减少。 这表明,幻觉的部分效果是为错误校准提供弹性。 这在实践中很重要,因为它可能不可能进行广泛的交叉验证; 在这种情况下,有幻觉的元学习者比没有幻觉的元学习者表现出明显更高的准确性。

Comparison to prior work:

图5和表1比较了我们的最佳方法(幻觉原型匹配网络)和以前发表的低镜头学习方法。 这些包括原型网络[30]、匹配网络[35]和以下基线:

1. 逻辑回归:这个基线只是在一个预先训练的基于convnet的特征提取器之上训练一个线性分类器,这个特征提取器是在基类上训练的。

2. 逻辑回归与类比:这个基线使用Hariharan和Girshick[13]描述的程序来产生额外的例子。 这些额外的例子被添加到训练集中,并用于训练线性分类器。

我们的方法轻松地超过了所有基线,在新类别上提供了几乎2点的全面改进,并且在联合标签空间中提供了类似的改进,即使在允许新类别之前进行交叉验证之后。 因此,我们的方法是最先进的。 另一个有趣的发现是,随着更多的新类实例的出现,我们提出的原型匹配网络在新类上的性能优于匹配网络(表1)。在联合标签空间上,原型匹配网络总体上更好。 有趣的是,Hariharan和Girshick[13]提出的方法表现不如标准logistic回归基线(尽管当新类别先验没有交叉验证时,它确实显示出了收益,如表1所示,表明其主要影响是对错误校准的弹性)。

Unpacking the performance gain:

为了揭示我们的性能收益是从何而来的,我们进行了一系列的分解来回答以下问题。

Are sophisticated hallucination architectures necessary? 在卷积网络学习的语义特征空间中,一个简单的抖动训练例子可能就足够了。 我们创建了几个基线幻觉者,通过以下方法进行抖动:(a)添加高斯噪声和对角协方差矩阵,从基类的特征向量估计,(b)使用dropout (PN/PMN w/ dropout),和(c)通过加权平均的真实例子生成新例子(PN/PMN w/ weighted)。 对于高斯幻觉者,我们评估了跨类共享的协方差矩阵和类特有的协方差。 我们发现共享协方差比特定类协方差高0.7点,报告的结果最好。 我们尝试用高斯幻觉对元学习者进行再训练,并使用一个预先训练过的元学习者:PN/PMN使用一个预先训练过的元学习者,PN/PMN使用高斯(tr)对元学习者进行再训练。 如图6所示,虽然这样的幻觉有所帮助,但它们通常会造成严重的损害,并且会使我们的方法的准确性至少延迟3个点。 这表明产生有用的幻觉并不容易,需要复杂的架构。

Is meta-learning the hallucinator necessary? 简单地将高斯噪声通过未经训练的卷积网络可以产生复杂的分布。 特别是,ReLU激活可能会确保幻觉不是消极的,就像真实的例子一样。 我们将幻觉与(a)未经训练的G和(b)预先训练和固定的G进行比较,这是基于[13]和我们经过元训练的版本的类比,以观察训练的影响。 图6显示了这些基线幻觉者的影响(分别标记为PN/PMN w/ init G和PN/PMN w/ Analogies)。 这些基线严重损害了准确性,这表明对幻觉者进行元训练很重要。 幻觉者会产生不同的结果吗? 生成模型的一个持久问题是,它们无法捕获多种模式[26]。 如果是这样,那么任何一种幻觉都应该与其他幻觉非常相似,而仅仅复制一个幻觉就足够了。 我们将我们的方法与以下两种方法进行了比较:(a)使用我们训练过的幻觉者的确定性基线,但只是使用固定的噪声向量z = 0 (PN/PMN w/ det. G); (b)在训练和测试期间使用重复的幻觉的基线(PN/PMN w/ det. G(tr))。 这些基线的影响很小,但却是负面的。 这表明我们的幻觉者能产生有用的、多样的样本。

Does the hallucinator produce diverse outputs? 生成模型的一个持久问题是,它们无法捕获多种模式[26]。 如果是这样,那么任何一种幻觉都应该与其他幻觉非常相似,而仅仅复制一个幻觉就足够了。 我们将我们的方法与以下两种方法进行了比较:(a)使用我们训练过的幻觉者的确定性基线,但只是使用固定的噪声向量z = 0 (PN/PMN w/ det. G); (b)在训练和测试期间使用重复的幻觉的基线(PN/PMN w/ det. G(tr))。 这些基线的影响很小,但却是负面的。 这表明我们的幻觉者能产生有用的、多样的样本。

Visualizing the learned hallucinations:

图7显示了tSNE[34]对来自我们的学习型幻觉器和原型网络的基线高斯幻觉器的新奇类的幻觉示例的可视化。 像以前一样,我们使用了来自高斯幻觉器基类分布的统计数据。 注意,t-SNE倾向于扩展样本密集聚集的部分空间。 因此,高斯幻觉者的幻觉云被从班级分布中抽离这一事实表明,这些幻觉彼此非常接近,而远离班级的其他部分。 相比之下,我们的幻觉者更紧密地匹配了类别分布,并通过不同的种子例子捕捉了空间的不同部分。 有趣的是,我们生成的示例倾向于围绕类边界聚集。 这可能是t-SNE的伪影,也可能是幻觉者经过歧视性训练的结果。 然而,我们的幻觉仍然相当集中; 增加这些幻觉的多样性是未来工作的一个途径。

Representations from deeper models:

到目前为止,所有的实验都使用了使用ResNet-10体系结构[13]训练的特征表示。 表1的下半部分显示了关于ResNet-50体系结构特性的结果。 正如预期的那样,所有的准确率都更高,但我们的幻觉策略仍然提供了原型网络和原型匹配网络的收益。

7、结论

在这篇论文中,我们提出了一种低视角学习的方法,它使用一个训练有素的幻觉者来生成额外的例子。 我们的幻觉者接受了端到端的元学习训练,我们在多种元学习方法上取得了显著的进步。 我们所建议的最好的模型在一个现实的基准上实现了最先进的性能,并获得了舒适的利润。 未来的工作包括确切地确定幻觉例子的效果。

0 人点赞