【论文阅读】Multi-level Semantic Feature Augmentation for One-shot Learning
用于单样本学习的多层语义特征增强
引用:Chen, Zitian, et al. “Multi-level semantic feature augmentation for one-shot learning.” IEEE Transactions on Image Processing 28.9 (2019): 4594-4605.
论文地址:下载地址
论文代码:https://github.com/tankche1/Semantic-Feature-Augmentation-in-Few-shot-Learning
Abstract
人类能够从有限样本中快速识别和学习新的视觉概念,使其能够迅速适应新任务和环境。这种能力源于将新概念与已学习并存储在记忆中的概念进行语义关联。计算机可以通过使用语义概念空间来获得类似的能力。概念空间是一个高维语义空间,其中相似的抽象概念相距较近,而不相似的概念则相距较远。在本文中,我们提出了一种基于这一核心思想的新颖单样本学习方法。我们的方法学习将一个新样本实例映射到一个概念上,将该概念与概念空间中的现有概念关联起来,并利用这些关系,通过概念间的插值生成新实例,以帮助学习。我们没有合成新的图像实例,而是提出直接通过利用语义合成实例特征的方法,采用一种我们称为双重 TriNet 的新型自编码器网络。TriNet 的编码器部分学习将来自 CNN 的多层视觉特征映射到语义向量。在语义空间中,我们搜索相关概念,这些概念随后由 TriNet 的解码器部分投影回图像特征空间。我们在语义空间中探索了两种策略。值得注意的是,这种看似简单的策略在图像特征空间中产生了复杂的增强特征分布,从而显著提高了性能。
1 INTRODUCTION
机器学习,特别是深度学习的最新成功,在很大程度上依赖于训练过程,而这些训练过程需要每个类别中数百甚至数千个标记的训练实例。然而,在实际中,获取大量标记样本可能极为昂贵,甚至不可行,例如对于稀有物体或难以观察的物体而言。相反,人类在看到少数训练样本后便能轻松学习识别新的物体类别1。受此能力的启发,小样本学习旨在从少数甚至单个样本中构建分类器。
在小样本学习设置中,学习优秀分类器的主要障碍是缺乏训练数据。因此,小样本学习的一种自然方法是首先以某种方式扩充数据。已经探索了多种数据扩充方法。先前的研究中采用的主流方法是为每个类别获得更多图像2,并将其用作训练数据。这些额外的扩充训练图像可以从未标记的数据3或其他相关类别4 5 6 7 中借用,以无监督或半监督的方式获取。然而,来自相关类别的扩充数据通常在语义上是嘈杂的,可能导致负迁移,从而导致性能下降而非提升。另一方面,从虚拟示例生成的合成图像8 9 10 11 12 13 在语义上是准确的,但需要仔细的领域适应,以将知识和特征迁移到真实图像域。为了避免直接生成合成图像的困难,更希望在特征空间本身中扩充样本。
例如,最新的深度卷积神经网络(CNN)以分层结构堆叠多个特征层;我们假设,在这种情况下,特征扩充可以在由 CNN 层生成的特征空间中完成。尽管在概念上具有明显的优势,但特征扩充技术相对较少被探索。少数例子包括12 13 14。值得注意的是,文献12和13中采用了物体部分的特征块(例如 HOG),并将它们组合以合成新的特征表示。Dixit 等人14 首次考虑了属性引导的扩充来合成样本特征。然而,他们的工作依赖于一组预定义的语义属性。
一种直接扩充图像特征表示的方法是对每个训练图像的特征表示添加随机(向量)噪声。然而,这种简单的扩充过程可能无法显著提升决策边界的质量。人类学习启发我们在概念空间中搜索相关信息。我们的核心思想是利用额外的语义知识,例如通过使用诸如 Google 的 word2vec 等语言模型预训练的语义空间来封装这些知识15。在这种语义流形中,类似的概念往往具有相似的语义特征表示。整体空间呈现语义连续性,这使得它非常适合用于特征扩充。
为了利用这种语义空间,我们提出了一种双重 TriNet 架构 g ( x ) = g D e c ∘ g E n c ( x ) g(x) = g_{Dec} \circ g_{Enc}(x) g(x)=gDec∘gEnc(x),用于学习多层图像特征与语义空间之间的转换。双重 TriNet 与 18 层残差网络(ResNet-18)16 配对;其包含编码器 TriNet g E n c ( x ) g_{Enc}(x) gEnc(x) 和解码器 TriNet g D e c ( x ) g_{Dec}(x) gDec(x)。具体而言,给定一个训练实例,我们可以使用 ResNet-18 来提取不同层次的特征。 g E n c ( x ) g_{Enc}(x) gEnc(x) 高效地将这些特征映射到语义空间。在语义空间中,投影的实例特征可以通过添加高斯噪声进行扰动,或用其最近的语义词向量替代。我们假设在语义空间中对特征值进行微小调整,可以在保持语义信息的同时涵盖潜在类别的多样性。解码器 TriNet g D e c ( x ) g_{Dec}(x) gDec(x) 随后被调整以将扰动后的语义实例特征映射回多层(ResNet-18)特征空间。值得注意的是,语义空间中的高斯扩充/扰动最终在原始特征空间中产生高度非高斯的扩充。这是语义空间扩充的核心优势。通过使用三种经典的监督分类器,我们展示了扩充特征可以提升小样本分类的性能。
贡献。我们的贡献主要体现在以下几个方面。首先,我们提出了一种简单而优雅的深度学习架构:ResNet-18+双重 TriNet,用于小样本分类的高效端到端训练。其次,我们展示了所提出的双重 TriNet 可以有效地扩充由 ResNet-18 多个层生成的视觉特征。第三,有趣的是,我们表明可以利用各种类型的语义空间,包括语义属性空间、语义词向量空间,甚至是由类别语义关系定义的子空间。最后,在四个数据集上进行的大量实验验证了所提出方法在解决小样本图像识别任务中的有效性。
2 RELATED WORK
2.1 Few-Shot Learning
小样本学习的灵感来自于人类能够从少量实例中学习新概念的能力17 18。能够通过仅一个或少量示例识别并推广到新类别19,超出了典型机器学习算法的能力,这些算法通常依赖于数百甚至数千个训练示例。总体而言,解决此类挑战的方法可分为两类:
直接基于监督学习的方法,直接通过实例学习(例如 K 最近邻)、非参数方法20 21 22、深度生成模型23 24 或贝叶斯自编码器25来学习单样本分类器。与我们的工作相比,这些方法使用丰富的生成模型类来解释观察到的数据,而不是像我们提出的那样直接扩充实例特征。
基于迁移学习的方法,则通过学习如何学习的范式1 或元学习26 来探索。具体来说,这些方法利用辅助数据的知识,通过共享特征19 27 28 29 30 31、语义属性32 33 34 或上下文信息35,在少数示例下识别新类别。最近,从源数据中学习度量空间以支持单样本学习的思想得到了广泛探索,例如匹配网络(Matching Networks)36 和原型网络(Prototypical Networks)37。一般来说,这些方法可以大致分为元学习算法(包括 MAML38、Meta-SGD39、DEML+Meta-SGD40、META-LEARN LSTM41、Meta-Net42、R2-D243、Reptile44、WRN45)和度量学习算法(包括 Matching Nets36、PROTO-NET37、RELATION NET46、MACO47 和 Cos & Att.48)。在文献49 50中,他们维护了用于连续学习的外部记忆。MAML51 可以学习良好的初始神经网络权重,使其易于针对未见过的类别进行微调。文献52 使用图神经网络通过支持图像向测试图像传递消息进行推理。TPN53 提出了一种用于推导的框架,从而解决了数据匮乏的问题。Multi-Attention54 利用语义信息生成注意力图来帮助单样本识别,而我们直接在语义空间中扩充样本并将其映射回视觉空间。
相较于这些工作,我们的框架是正交但具有潜在的实用性——在应用此类方法之前扩充新类别的实例特征是有用的。
2.2 增强训练实例
标准的增强技术通常直接应用于图像域中,例如翻转、旋转、加噪声和随机裁剪图像2 55 56。最近,已经研究了更高级的数据增强技术以训练监督分类器。特别是,增强的训练数据也可以用于缓解实例稀缺的问题,从而避免在单样本/小样本学习设置中过拟合。先前的方法可以分为六类:
(1) 通过在半监督或传导式设置下利用大量未标记数据的流形信息来学习单样本模型3;
(2) 从现成的训练模型中自适应地学习单样本分类器4 5 6;
(3) 从相关类别7 57 或语义词汇58 59 中借用示例以扩充训练集;
(4) 通过渲染虚拟示例8 9 10 11 60、合成表示12 13 61 62 63 64 或扭曲现有训练示例2来合成额外的标记训练实例;
(5) 使用生成对抗网络(GANs)生成新示例65 66 67 68 69 70 71 72 73;
(6) 属性引导的增强(AGA)和特征空间传递14 74,在所需的数值、姿势或强度下合成样本。
尽管研究广泛,先前的方法可能存在以下几个问题:
(1) 半监督算法依赖于流形假设,但该假设在实际中难以有效验证;
(2) 当现成模型或相关类别与单样本类别差异较大时,迁移学习可能会受到负迁移的影响;
(3) 渲染、合成或扭曲现有训练示例可能需要领域专业知识;
(4) 基于 GAN 的方法主要关注学习优质生成器,以合成“逼真”图像来“欺骗”判别器。合成图像不一定保留判别信息。
与此相反,我们的网络结构直接在视觉特征域中合成判别性实例。AGA14 主要利用 3D 深度或姿势信息的属性进行增强;相比之下,我们的方法还可以利用语义信息来扩充数据。此外,所提出的双重 TriNet 网络可以有效地增强多层特征。
2.3 Embedding Network structures
视觉-语义嵌入的学习已通过多种方式进行了探索,包括神经网络(例如,孪生网络(Siamese network)75 76)、判别方法(例如,支持向量回归器(SVR)32 77 78)、度量学习方法36 79 80 或核嵌入方法27 81。一种最常见的嵌入方法是将视觉特征和语义实体投影到一个新的公共空间中。然而,在处理 CNN 的不同层的特征空间时,以往的方法必须为每一层学习一个单独的视觉-语义嵌入。与此相反,所提出的双重 TriNet 可以有效地为多层特征空间学习一个统一的视觉-语义嵌入。
梯度网络(Ladder Networks)82 利用横向连接作为自编码器进行半监督学习任务。在文献83 中,作者融合了不同网络的不同中间层,以提高图像分类性能。深层聚合(Deep Layer Aggregation)84 通过聚合网络中的各层和模块来更好地融合层间信息。我们的方法不同于学习特定的聚合节点来合并不同层次的特征;我们的双重 TriNet 直接在编码-解码结构中变换、重新缩放并连接不同层的特征。
3 用于语义数据增强的双重 TriNet 网络
3.1 Problem setup
在单样本学习中,我们给定基础类别 C b a s e C_{base} Cbase 和新类别 C n o v e l C_{novel} Cnovel( C b a s e ∩ C n o v e l = ∅ C_{base} \cap C_{novel} = \emptyset Cbase∩Cnovel=∅),其总类别标签集为 C = C b a s e ∪ C n o v e l C = C_{base} \cup C_{novel} C=Cbase∪Cnovel。基础类别 C b a s e C_{base} Cbase 具有充足的标记图像数据,并且我们假设基础数据集 D b a s e = { I b a s e ( i ) , z b a s e ( i ) , u b a s e z i } i = 1 N b a s e D_{base} = \{I_{base}^{(i)}, z_{base}^{(i)}, u_{base}^{z_i}\}_{i=1}^{N_{base}} Dbase={Ibase(i),zbase(i),ubasezi}i=1Nbase 包含 N b a s e N_{base} Nbase 个样本。 I b a s e ( i ) I_{base}^{(i)} Ibase(i) 表示原始图像 i i i; z b a s e ( i ) ∈ C b a s e z_{base}^{(i)} \in C_{base} zbase(i)∈Cbase 是来自基础类别集的类别标签; u b a s e z i u_{base}^{z_i} ubasezi 是实例 i i i 在其类别标签上的语义向量。语义向量 u b a s e z i u_{base}^{z_i} ubasezi 可以是语义属性32、语义词向量15 或者任何通过类别的语义关系构建或学习得到的子空间表示。
对于新类别 C n o v e l C_{novel} Cnovel,我们考虑另一个数据集 D n o v e l = { I n o v e l ( i ) , z n o v e l ( i ) , u n o v e l z i } D_{novel} = \{I_{novel}^{(i)}, z_{novel}^{(i)}, u_{novel}^{z_i}\} Dnovel={Inovel(i),znovel(i),unovelzi},其中每个类别 z n o v e l ( i ) ∈ C n o v e l z_{novel}^{(i)} \in C_{novel} znovel(i)∈Cnovel。对于新数据集,我们有一个支持集和一个测试集。支持集 D s u p p o r t = { I s u p p o r t ( i ) , z s u p p o r t ( i ) , u s u p p o r t z i } D_{support} = \{I_{support}^{(i)}, z_{support}^{(i)}, u_{support}^{z_i}\} Dsupport={Isupport(i),zsupport(i),usupportzi}( D s u p p o r t ∈ D n o v e l D_{support} \in D_{novel} Dsupport∈Dnovel)由每个新类别的少量训练实例组成。测试集 D t e s t = { I t e s t ( i ) , z t e s t ( i ) , u t e s t z i } D_{test} = \{I_{test}^{(i)}, z_{test}^{(i)}, u_{test}^{z_i}\} Dtest={Itest(i),ztest(i),utestzi}( D t e s t ∈ D n o v e l D_{test} \in D_{novel} Dtest∈Dnovel,且 D s u p p o r t ∩ D t e s t = ∅ D_{support} \cap D_{test} = \emptyset Dsupport∩Dtest=∅)不可用于训练,但用于测试。通常情况下,我们只在 D b a s e D_{base} Dbase 和 D s u p p o r t D_{support} Dsupport 上进行训练,分别包含基础类别的充足实例和新类别的少量实例。然后我们在仅包含新类别的 D t e s t D_{test} Dtest 上评估我们的模型。我们的目标是通过仅使用少量支持集 D s u p p o r t D_{support} Dsupport 来学习一个能够很好地推广到新类别的模型。
3.2 Overview
目标。我们旨在直接扩充每个目标类别训练实例的特征。给定来自新类别的一个训练实例 I s u p p o r t ( i ) I_{support}^{(i)} Isupport(i),特征提取网络可以输出该实例的特征 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))},其中 l = 1 , ⋯ , L l = 1, \cdots, L l=1,⋯,L;扩充网络 g ( x ) g(x) g(x) 能够生成一组合成特征 g ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g(\{f^{(l)}(I_{support}^{(i)})\}) g({f(l)(Isupport(i))})。这些合成特征被用作单样本学习的额外训练实例。如图1所示,我们使用 ResNet-1816 并提出双重 TriNet 网络,分别作为特征提取网络和扩充网络。整个架构通过结合两个网络的损失函数进行端到端训练,公式如下:
{ Ω , Θ } = arg min Ω , Θ J 1 ( Ω ) + λ ⋅ J 2 ( Θ ) \{\Omega, \Theta\} = \arg \min_{\Omega, \Theta} J_1(\Omega) + \lambda \cdot J_2(\Theta) {Ω,Θ}=argΩ,ΘminJ1(Ω)+λ⋅J2(Θ)
其中, J 1 ( Ω ) J_1(\Omega) J1(Ω) 和 J 2 ( Θ ) J_2(\Theta) J2(Θ) 分别是 ResNet-1816 和双重 TriNet 网络的损失函数; Ω \Omega Ω 和 Θ \Theta Θ 代表相应的参数。 J 1 ( Ω ) J_1(\Omega) J1(Ω) 使用交叉熵损失16。公式(1)通过基础数据集 D b a s e D_{base} Dbase 优化。
特征提取网络。我们训练 ResNet-1816 将原始图像转换为特征向量。ResNet-18 包含4个顺序残差层,即 layer1、layer2、layer3 和 layer4,如图1所示。每个残差层输出一个相应的特征图 f ( l ) ( I i ) f^{(l)}(I_i) f(l)(Ii),其中 l = 1 , ⋯ , 4 l = 1, \cdots, 4 l=1,⋯,4。如果我们将每个特征图视为不同的图像表示,ResNet-18 实际上学习了多层图像特征(MIF)编码。通常,不同层的特征可用于各种单样本学习任务。例如,在文献2中,全连接层的特征可用于单样本图像分类;而全卷积层的输出特征可能更适用于单样本图像分割任务85 86 87。通过结合多个层级的特征,我们的方法可以应用于各种不同的视觉任务。
扩充网络。我们提出了一种编码器-解码器架构——双重 TriNet ( g ( x ) = g D e c ∘ g E n c ( x ) ) (g(x) = g_{Dec} \circ g_{Enc}(x)) (g(x)=gDec∘gEnc(x))。如图1所示,我们的双重 TriNet 可以分为编码器-TriNet g E n c ( x ) g_{Enc}(x) gEnc(x) 和解码器-TriNet 子网络 g D e c ( x ) g_{Dec}(x) gDec(x)。编码器-TriNet 将视觉特征空间映射到语义空间,这里进行扩充。解码器-TriNet 将扩充后的语义空间表示投影回特征空间。由于 ResNet-18 具有四层,不同层生成的视觉特征空间可以使用相同的编码器-解码器 TriNet 进行数据扩充。
3.3 Dual TriNet Network
双重 TriNet 与 ResNet-18 配对。深度 CNN 架构中不同层获得的特征表示是层次化的,从一般(底层)到更具体(顶层)递进88。例如,前几层生成的特征类似于 Gabor 滤波器56,因此与任务无关;而高层特征则针对特定任务(例如图像分类)具有较强的特异性。ResNet-18 的各层生成的特征表示包含不同层次的抽象语义信息。因此,一个自然的问题是,是否可以在不同层次上扩充特征?为每一层直接学习一个编码器-解码器无法充分利用不同层之间的关系,可能无法有效学习特征空间与语义空间之间的映射。为此,我们提出了双重 TriNet 网络。
双重 TriNet 学习多层图像特征(M-IF)编码与语义空间之间的映射。语义空间可以是语义属性空间,也可以是第 III-A 节中介绍的语义词向量空间。语义属性可以由人类专家预定义14。语义词向量 u b a s e z i u_{base}^{z_i} ubasezi 是每个词汇实体 w i ∈ W w_i \in W wi∈W 的投影,其中词汇 W W W 是通过在大规模语料库上使用 word2vec15 学习的。此外,可以通过类别的语义关系的奇异值分解(SVD)扩展子空间 u b a s e z i u_{base}^{z_i} ubasezi。具体来说,我们可以使用 { u b a s e z i ; u n o v e l z j } z i ∈ C b a s e , z j ∈ C n o v e l \{u_{base}^{z_i}; u_{novel}^{z_j}\}_{z_i \in C_{base}, z_j \in C_{novel}} {ubasezi;unovelzj}zi∈Cbase,zj∈Cnovel 计算类别的语义关系矩阵 M M M,使用余弦相似度来进行计算。我们使用 SVD 算法分解 M = U Σ V M = U \Sigma V M=UΣV。其中 U U U 是一个酉矩阵,定义了一个新的语义空间。 U U U 的每一行作为一个类别的新语义向量。
编码器 TriNet 由四层组成,对应于 ResNet-18 的每一层。其目标是学习函数 u ^ z i = g E n c ( { f ( l ) ( I i ) } ) \hat{u}_{z_i} = g_{Enc}(\{f^{(l)}(I_i)\}) u^zi=gEnc({f(l)(Ii)}),将实例 i i i 的所有层特征 { f ( l ) ( I i ) } \{f^{(l)}(I_i)\} {f(l)(Ii)} 映射到尽可能接近实例 i i i 的语义向量 u z i u_{z_i} uzi 的位置。子网络的结构受到河内塔的启发,如图1所示。这样的结构可以有效利用多层中编码的信息的差异性和互补性。编码器 TriNet 通过合并和组合不同层的输出来匹配 ResNet-18 的四个层次。解码器 TriNet 的结构相反,用于将语义空间中的特征 u ^ z i \hat{u}_{z_i} u^zi 投影回特征空间 f ^ ( l ) ( I i ) = g D e c ( g E n c ( { f ( l ) ( I i ) } ) ) \hat{f}^{(l)}(I_i) = g_{Dec}(g_{Enc}(\{f^{(l)}(I_i)\})) f^(l)(Ii)=gDec(gEnc({f(l)(Ii)}))。我们通过优化以下损失来学习 TriNet:
J 2 ( Θ ) = E [ ∑ l = 1 4 ( f ( l ) ( I i ) − f ^ ( l ) ( I i ) ) 2 + ( u ^ z i − u z i ) 2 ] + λ P ( Θ ) J_2(\Theta) = \mathbb{E}\left[\sum_{l=1}^4 (f^{(l)}(I_i) - \hat{f}^{(l)}(I_i))^2 + (\hat{u}_{z_i} - u_{z_i})^2\right] + \lambda P(\Theta) J2(Θ)=E[l=1∑4(f(l)(Ii)−f^(l)(Ii))2+(u^zi−uzi)2]+λP(Θ)
其中 I i ∈ D b a s e I_i \in D_{base} Ii∈Dbase, Θ \Theta Θ 表示双重 TriNet 网络的参数集, P ( ⋅ ) P(\cdot) P(⋅) 是 L 2 L2 L2 正则化项。双重 TriNet 在 D b a s e D_{base} Dbase 上进行训练,并用于在支持集 D s u p p o r t D_{support} Dsupport 中的给定训练实例上,以 l 层特征扰动的形式合成实例。
图 1. 我们的框架概览。我们通过 ResNet-18 提取图像特征,并通过双 TriNet 增强特征。编码器 TriNet 将特征投射到语义空间。在语义空间中增强数据后,我们使用解码器 TriNet 获取相应的增强特征。真实数据和增强数据都用于训练分类模型。请注意 (1) 绿色小箭头表示 2 × 2 的最大池化,其后的 “conv ”层是 Conv-BN-ReLU 序列。
3.4 Feature Augmentation by Dual TriNet
通过学习到的双重 TriNet,我们有两种方式来扩充训练实例的特征。请注意,该扩充方法仅用于扩展 D s u p p o r t D_{support} Dsupport。
语义高斯(SG)。扩充特征的一种自然方法是从高斯分布中采样实例。具体而言,对于 ResNet-18 提取的特征集 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))}( l = 1 , ⋯ , L l = 1, \cdots, L l=1,⋯,L),编码器 TriNet 可以将 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))} 投影到语义空间,即 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))})。在此空间中,我们假设向量可以通过随机高斯噪声进行扰动,而不会改变其语义标签。这可以用于扩充数据。具体来说,我们使用语义高斯从 I s u p p o r t ( i ) I_{support}^{(i)} Isupport(i) 采样第 k k k 个语义向量 v G k ( i ) v_{G_k}^{(i)} vGk(i),如下所示:
v G k ( i ) ∼ N ( g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) , σ E ) v_{G_k}^{(i)} \sim \mathcal{N} (g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}), \sigma E) vGk(i)∼N(gEnc({f(l)(Isupport(i))}),σE)
其中, σ ∈ R \sigma \in \mathbb{R} σ∈R 是每个维度的方差, E E E 是单位矩阵; σ \sigma σ 控制所加噪声的标准差。为了使扩充后的语义向量 v G k ( i ) v_{G_k}^{(i)} vGk(i) 仍能代表类别 z s u p p o r t ( i ) z_{support}^{(i)} zsupport(i),我们通过实验设置 σ \sigma σ 为 u s u p p o r t z i u_{support}^{z_i} usupportzi 与其最近的其他类别实例 u s u p p o r t z j u_{support}^{z_j} usupportzj( z s u p p o r t ( i ) ≠ z s u p p o r t ( j ) z_{support}^{(i)} \neq z_{support}^{(j)} zsupport(i)=zsupport(j))之间距离的 15 % 15\% 15%,因为这样可获得最佳性能。解码器 TriNet 生成虚拟合成样本 g D e c ( v G k ( i ) ) g_{Dec}(v_{G_k}^{(i)}) gDec(vGk(i)),其类别标签与原始实例的类别标签 z s u p p o r t ( i ) z_{support}^{(i)} zsupport(i) 相同。通过对语义向量的某些维度值进行微小扰动,我们期望采样的向量 v G k ( i ) v_{G_k}^{(i)} vGk(i) 仍然保持相同的语义含义。
语义邻域(SN)。受最近关于词汇知情学习的工作启发58,语义词向量空间(例如 word2vec15)中的大量词汇也可以用于扩充。这类词汇的分布反映了语言语料库中的一般语义关系。例如,在词向量空间中,“卡车”的向量比“狗”的向量更接近“汽车”的向量。给定训练实例 i i i 的特征 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))},第 k k k 个扩充数据 v N k ( i ) v_{N_k}^{(i)} vNk(i) 可以从 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))}) 的邻域中采样,即
v N k ( i ) ∈ Neigh ( g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) ) v_{N_k}^{(i)} \in \text{Neigh}(g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\})) vNk(i)∈Neigh(gEnc({f(l)(Isupport(i))}))
其中 Neigh ( g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) ) ⊂ W \text{Neigh}(g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\})) \subset W Neigh(gEnc({f(l)(Isupport(i))}))⊂W 表示 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))}) 的最近邻词汇集, W W W 表示通过 word2vec15 在大规模语料库上学习到的词汇集。这些邻居对应于与我们的训练实例最语义相似的示例。合成样本的特征同样可以通过 g D e c ( v N k ( i ) ) g_{Dec}(v_{N_k}^{(i)}) gDec(vNk(i)) 解码得到。
我们要强调以下几点。
(1) 对于一个训练实例 I s u p p o r t ( i ) I_{support}^{(i)} Isupport(i),我们使用 Eq (3) 中的高斯均值或 Eq (4) 中的邻域中心 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))}),而不是其实例的真实词向量 u s u p p o r t z i u_{support}^{z_i} usupportzi。这是因为 u s u p p o r t z i u_{support}^{z_i} usupportzi 仅表示类别 z s u p p o r t ( i ) z_{support}^{(i)} zsupport(i) 的语义中心,而不是实例 i i i 的中心。在 miniImageNet 数据集上,使用 u s u p p o r t z i u_{support}^{z_i} usupportzi 进行特征扩充而不是 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))}) 会导致单样本/五样本分类平均下降 3 % ∼ 5 % 3\% \sim 5\% 3%∼5% 的性能。
(2) 在 Eq (3) 中添加的语义空间高斯噪声或在 Eq (4) 中使用的语义邻域生成的合成训练特征对于每个类别来说都是高度非线性的(非高斯的)。这是由 TriNet g D e c ( x ) g_{Dec}(x) gDec(x) 和 ResNet-18 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))} 提供的非线性解码导致的。
(3) 直接向 { f ( l ) ( I s u p p o r t ( i ) ) } \{f^{(l)}(I_{support}^{(i)})\} {f(l)(Isupport(i))} 添加高斯噪声是另一种简单的特征扩充方法。然而,在 miniImageNet 数据集上,这种策略并未在单样本分类中带来显著提升。
3.5 One-shot Classification
在基础数据集 D b a s e D_{base} Dbase 上训练特征提取网络和双重 TriNet 后,我们现在讨论如何在目标数据集 D n o v e l D_{novel} Dnovel 上进行单样本分类。对于 D n o v e l D_{novel} Dnovel 中的实例 i i i,我们可以使用特征提取网络提取 M-IF 表示 { f ( l ) ( I n o v e l ( i ) ) } \{f^{(l)}(I_{novel}^{(i)})\} {f(l)(Inovel(i))}( l = 1 , 2 , ⋯ , L l = 1, 2, \cdots, L l=1,2,⋯,L)。然后,我们使用 TriNet 的编码器部分将实例 i i i 的所有层特征 { f ( l ) ( I i ) } \{f^{(l)}(I_{i})\} {f(l)(Ii)} 映射到语义向量 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))})。我们的框架可以扩充该实例,除了原始实例外,还可以通过语义高斯和/或语义邻域方法生成多个合成实例 { v G k ( i ) } ∪ { v N k ( i ) } \{v_{G_k}^{(i)}\} \cup \{v_{N_k}^{(i)}\} {vGk(i)}∪{vNk(i)}。对于每个新的语义向量 v k ( i ) ∈ { v G k ( i ) } ∪ { v N k ( i ) } v_k^{(i)} \in \{v_{G_k}^{(i)}\} \cup \{v_{N_k}^{(i)}\} vk(i)∈{vGk(i)}∪{vNk(i)},我们使用 TriNet 的解码器将其从语义空间映射回所有层特征 { x a u g m e n t ( i , l ) } = g D e c ( v k ( i ) ) \{x_{augment}^{(i,l)}\} = g_{Dec}(v_k^{(i)}) {xaugment(i,l)}=gDec(vk(i))( l = 1 , 2 , ⋯ , L l = 1, 2, \cdots, L l=1,2,⋯,L)。未在最终第 L L L 层的特征通过特征提取网络的第 l + 1 l+1 l+1 层传递到第 L L L 层,以获得 { x ^ a u g m e n t ( l ) } \{\hat{x}_{augment}^{(l)}\} {x^augment(l)}。技术上讲,一个新的语义向量 v k ( i ) v_k^{(i)} vk(i) 可以生成 L L L 个实例:每个层的特征均为一个实例。与先前的研究一致2 16,最终层生成的特征用于单样本分类任务。因此,从实例 i i i 获得的合成第 L L L 层特征 { x ^ a u g m e n t ( i , l ) } \{\hat{x}_{augment}^{(i,l)}\} {x^augment(i,l)} 以及原始第 L L L 层特征 f ( L ) ( I s u p p o r t ( i ) ) f^{(L)}(I_{support}^{(i)}) f(L)(Isupport(i)) 被用于监督方式下训练单样本分类器 KaTeX parse error: Undefined control sequence: \mathchar at position 7: g_{one\̲m̲a̲t̲h̲c̲h̲a̲r̲`-shot}(x)。注意,从实例 i i i 获得的所有扩充特征向量均假设具有与原始实例 i i i 相同的类别标签。
在本研究中,我们展示了扩充特征可以对多种监督分类器带来益处。为此,利用了三种经典的分类器,即 K 近邻(KNN)、支持向量机(SVM)和逻辑回归(LR),作为单样本分类器 KaTeX parse error: Undefined control sequence: \mathchar at position 7: g_{one\̲m̲a̲t̲h̲c̲h̲a̲r̲`-shot}(x)。特别是,我们使用 KaTeX parse error: Undefined control sequence: \mathchar at position 7: g_{one\̲m̲a̲t̲h̲c̲h̲a̲r̲`-shot}(x) 在测试时对测试样本 I t e s t ( i ) I_{test}^{(i)} Itest(i) 的第 L L L 层特征 f ( L ) ( I t e s t ( i ) ) f^{(L)}(I_{test}^{(i)}) f(L)(Itest(i)) 进行分类。
4 Experiments
4.1 Datasets
我们在四个数据集上进行了实验。请注意:
(1) 在所有数据集上,ResNet-18 仅在指定划分中的训练集(相当于基础数据集)上进行训练,以便与先前的研究结果一致。
(2) 对所有数据集使用相同的网络和参数设置(包括输入图像的大小);因此,所有图像都被调整为 224 × 224 224 \times 224 224×224。
miniImageNet。该数据集最早由文献36 提出,包含来自 100 个类别的 60,000 张图像;每个类别大约有 600 个示例。为了使我们的结果与先前的研究具有可比性,我们使用文献41 中的划分,分别利用 64、16 和 20 个类别用于训练、验证和测试。
Cifar-100。Cifar-100 包含来自 100 个细粒度和 20 个粗粒度类别的 60,000 张图像89。我们使用与文献90 中相同的数据划分,以便与先前方法进行比较。具体而言,64、16 和 20 个类别分别用于训练、验证和测试。
Caltech-UCSD Birds 200-2011 (CUB-200)。CUB-200 是一个细粒度数据集,由 200 个鸟类类别的总计 11,788 张图像组成91。如文献47 中的划分,我们使用 100、50 和 50 个类别分别用于训练、验证和测试。该数据集还在每个类别级别提供了 312 维的语义属性向量。
Caltech-256。Caltech-256 包含来自 256 个类别的 30,607 张图像92。如文献90,我们将数据集划分为 150、56 和 50 个类别分别用于训练、验证和测试。
4.2 Network structures and Settings
对于所有四个数据集和实验,均使用相同的 ResNet-18 和双重 TriNet。
参数。自编码器网络的 dropout 率和学习率分别设置为 0.5 和 1 × 1 0 − 3 1 \times 10^{-3} 1×10−3 以防止过拟合。每 10 个 epoch,学习率减半。批量大小设置为 64。网络使用 Adam 优化器进行训练,通常在 100 个 epoch 内收敛。由于训练集较小,实验多次重复以减少随机性。Top-1 准确率在 95 % 95\% 95% 的置信区间内报告,并在多个测试集上平均,方法与先前的研究相同41。
设置。我们使用从文献58 发布的词汇字典中提取的 100 维语义词向量。类别名称被投影到语义空间中作为向量 u b a s e z i u_{base}^{z_i} ubasezi 或 u n o v e l z i u_{novel}^{z_i} unovelzi。语义属性空间由专家预定义32 91。在所有实验中,给定一个训练实例,双重 TriNet 将在语义空间中生成 4 个扩充实例。因此,我们在每一层上有 4 个合成实例,最终得到 4 层特征的 16 个合成实例。所以,一个训练实例最终成为 17 个训练实例。
4.3 Competitors and Classification models
竞争方法。我们比较的先前方法在相同的源/目标和训练/测试划分下运行,以便与我们的方法进行公平比较。我们与以下方法进行对比:Matching Nets36,MAML38,Meta-SGD39,DEML+Meta-SGD40,PROTO-NET37,RELATION NET46,META-LEARN LSTM41,Meta-Net42,SNAIL93,MACO47,GNN52,MMNet50,Reptile44,TPN53,WRN45,Cos & Att.48,Delta-encoder57 和 R2-D243。为了公平比较,我们实现了一些方法并使用 ResNet-18 作为通用主干架构。
分类模型。KNN、SVM 和 LR 被用作分类模型,以验证我们扩充技术的有效性。分类模型的超参数通过在验证集上的交叉验证进行选择。
4.4 Experimental results on miniImageNet and CUB-200
设置。对于 miniImageNet 数据集,我们仅有语义词空间。给定一个训练实例,我们可以分别为语义高斯(SG)和语义邻域(SN)生成 16 个扩充实例。在 CUB-200 数据集中,我们使用语义词向量和语义属性空间。因此,对于一个训练实例,我们在语义词向量空间中分别为 SG 和 SN 生成 16 个扩充实例;另外,在语义属性空间中为语义高斯(SG)生成 16 个虚拟实例(在所有四层中),我们将其称为属性高斯(AG)。
扩充样本数量的变体。扩充样本数量的变化对我们的性能影响不大。为证明这一点,我们在 CUB 数据集上提供了不同数量扩充样本下的 1-shot 准确率(表 II)。如所示,增加扩充样本数量的改进在某个点上趋于饱和。
表2:cub语义空间增强样本数量的消融研究。我们报告5-way 1-shot准确率。L1、l2、l3和l4表示我们分别只使用了layer 1、layer 2、layer 3和layer 4的增强特征。M-l表示使用四个层的所有增强特征
结果。如表 I 所示,竞争方法可以分为两类:元学习算法(包括 MAML、Meta-SGD、DEML+Meta-SGD、META-LEARN LSTM 和 Meta-Net)和度量学习算法(包括 Matching Nets、PROTO-NET、RELATION NET、SNAIL 和 MACO)。我们还报告了 ResNet-18(无数据扩充)的结果。我们框架(ResNet-18+双重 TriNet)的准确率也进行了报告。双重 TriNet 合成了 ResNet-18 的每一层特征,如第 III-D 节所述。ResNet-18+高斯噪声是一个简单的基线,通过向第 4 层特征添加高斯噪声来合成每个测试样本的 16 个样本。我们在表 I 中为 ResNet-18、ResNet-18+高斯噪声和 ResNet-18+双重 TriNet 使用 SVM 分类器。特别是,我们发现,
表1:在 miniIMAGENET 和 CUB-200 上的表现。 “±” 表示任务的 95% 置信区间。:表示对应的基准方法,这些方法使用的是 RESNET-18。请注意,之前的工作中在 CUB-200 上没有报告 “±”。*
(1) 我们的基线(ResNet-18)几乎优于所有其他基线。ResNet-18 在学习残差的过程中受益匪浅,是单样本学习任务中非常优秀的特征提取器。先前的研究38 39 36 设计了具有较少参数的自定义网络架构并使用了不同的目标函数。如表 I 所示,将这些方法的主干架构替换为 ResNet-18 后,它们的表现仍不及我们的基线(ResNet-18)。我们认为这是因为 ResNet-18 更适合分类任务,并且使用交叉熵损失可以生成比度量学习中其他目标函数更具辨别力的空间。然而,此话题超出了我们的讨论范围。我们想澄清的是,由于我们的扩充方法可以与任意方法结合,我们选择了我们认为最强的基线。这个基线可以通过我们的方法得到增强,展示了我们扩充方法的通用性。
(2) 我们的框架可以实现最佳性能。如表 I 所示,我们的框架,即 ResNet-18+双重 TriNet,可以实现最佳性能,并且在两个数据集上明显优于所有其他基线。这验证了我们的框架在解决单样本学习任务中的有效性。需要注意的是,DEML+Meta-SGD40 使用 ResNet-50 作为基线模型,因此在单样本学习结果上优于我们的 ResNet-18。然而,通过双重 TriNet 生成的扩充数据,我们可以观察到 ResNet-18 有明显的提升。
(3) 我们的框架可以有效地扩充多层特征。我们分析了各层扩充特征的有效性,如图 2 所示。在 CUB-200 和 miniImageNet 上,我们报告了 1-shot 学习情况的结果。我们得出以下结论:(1) 仅使用来自单层的扩充特征(例如,图 2 中的 Layer 1 – Layer 4)也可以提升单样本学习结果的性能。这验证了我们的双重 TriNet 在单一框架中合成不同层特征的有效性。(2) 使用来自所有层的合成实例(Multi-L)的结果比单独使用各层特征的结果更好。这表明不同层的扩充特征在本质上是互补的。
图 2. 在 CUB-200 和 miniImageNet 上使用不同层/分类器进行特征增强的单次学习结果。“NoAug“、”Layer1“、”Layer2“、”Layer3“、”Layer4 "表示没有任何增强的单次学习结果,以及使用 ResNet-18 的第 1 层、第 2 层、第 3 层和第 4 层进行特征增强的结果。“Multi-L "表示使用所有增强实例的单次学习结果。X 轴代表不同的监督分类器。
(4) 扩充特征可以提升不同监督分类器的性能。我们的扩充特征并非专为某一监督分类器设计。为证明这一点,并如图 2 所示,我们测试了三个经典的监督分类器(即 KNN、SVM 和 LR),结果显示我们的扩充特征可以在单样本分类中提升这三个监督分类器的性能。这进一步验证了我们扩充框架的有效性。
(5) SG、SN 和 AG 生成的扩充特征同样可以提升小样本学习结果。我们在图 3 中比较了不同语义空间的特征扩充方法。具体而言,我们比较了语义词向量空间中的 SG 和 SN 以及语义属性空间中的 AG。在 CUB-200 数据集中,SG、SN 和 AG 生成的扩充结果优于未扩充的结果。结合 SG、SN 和 AG 中任意两个方法生成的合成特征实例的准确率优于单独使用 SG、SN 或 AG 的结果。这意味着 SG、SN 和 AG 生成的扩充特征实例彼此互补。最后,我们观察到通过结合所有方法(SG、SN 和 AG)的扩充实例,单样本学习的准确率达到了最高。
(6) 即使是从类别的语义关系推断的语义空间,也可以很好地与我们的框架配合使用。为证明这一点,我们再次在图 3 中比较了结果。特别地,我们计算了使用语义词向量在 miniImageNet 数据集中获得的类别相似性矩阵。使用 SVD 分解相似性矩阵,SVD 的左奇异向量被认为构成了一个新的语义空间。因此,这个新的空间被用于学习双重 TriNet。我们在新扩展的空间中使用语义高斯(SG)来扩充实例特征以进行单样本分类。该结果称为“SVD-G”。我们在 miniImageNet 数据集中报告了 SVD-G 扩充的结果,见图 3。我们突出了一些有趣的观察:
- SVD-G 特征扩充的结果仍然优于没有任何扩充的结果。
- SVD-G 的准确率实际上略低于 SG,因为新扩展的空间是从原始语义词空间派生的。
- SVD-G 和 SG 之间的扩充特征几乎没有互补信息,这仍部分是由于新的空间由语义和词空间扩展而来。
- SVD-G 生成的扩充特征与 SN 生成的特征也具有很强的互补性,如图 3 中的结果所示。这是因为在派生新语义空间时未使用额外的邻域词汇信息。我们在 CUB-200 数据集上得到了类似的实验结论,如表 IV 所示。
图 3. 在 CUB-200 和 miniImageNet 上使用不同类型语义空间进行特征增强的单次结果。“单层 "表示仅使用单层进行增强的最佳单次结果。“多层 "表示使用所有层合成实例的结果。
表4:在 CALTECH-UCSD 鸟类数据集上的 5-way 单次学习分类准确率。请注意:“S.” 和 “M.” 分别表示单层和多层。“SD” 是 “SVD-G” 的缩写。“R-18” 是 “RESNET-18” 的缩写。
4.5 Caltech-256 和 CIFAR-100 上的实验结果
设置。在 Caltech-256 和 CIFAR-100 数据集中,我们也使用语义词向量空间。对于一个训练实例,我们从 ResNet-18 的所有四层中分别为 SG 和 SN 合成 16 个扩充特征。在这两个数据集上,竞争方法的结果由文献40 实现并报告。我们报告的结果是使用由 SG 和 SN 生成的所有层的扩充特征实例得到的。SVM 分类器用作分类模型。
结果。Caltech-256 和 CIFAR-100 的结果在表 III 中显示。我们发现:(1) 与当前最先进的算法相比,我们的方法仍然能够达到最佳性能,这要归功于使用所提出的框架获得的扩充特征实例。(2) ResNet-18 仍然是一个非常强大的基线;它可以击败几乎所有其他基线,除了使用 ResNet-50 作为基线结构的 DEML+Meta-SGD。(3) 使用我们的扩充实例特征比仅使用 ResNet-18 有明显的性能提升。这进一步验证了所提出框架的有效性。
表3:在 CALTECH-256 和 CIFAR-100 数据集上的表现。 “±” 表示任务的 95% 置信区间。
5 FURTHER ANALYSIS
5.1 与标准增强方法的比较
除了我们的特征扩充方法外,我们还在单样本学习设置中比较了标准扩充方法2。这些方法包括对单样本类别的训练图像进行裁剪、旋转、翻转和颜色变换。此外,我们还尝试了向单样本类别训练实例的 ResNet-18 特征中添加高斯噪声的方法,结果见表 I。然而,这些方法均无法提高单样本学习的分类准确率。这是合理的,因为单样本类别只有极少的训练样本。某种程度上,这在意料之中:此类简单的扩充方法本质上只是增加了噪声/方差,而未引入额外信息来帮助单样本分类。
5.2 Dual TriNet structure
我们提出了双重 TriNet 结构,本质上是由编码器-解码器架构派生的。因此,我们进一步分析了用于特征扩充的其他替代网络结构。特别地,扩充网络的替代选择可以是每层的自编码器94 或 U-net95。结果见表 V。我们显示出我们的双重 TriNet 可以最佳地利用不同层次的互补信息,因此我们的结果优于没有扩充(ResNet-18)、使用 U-net 扩充(ResNet-18+U-net)和使用自编码器扩充(ResNet-18+Auto-encoder)的结果。这验证了我们的双重 TriNet 可以有效地融合和利用多层信息进行特征扩充。
表5:{使用替代增强网络的结果。我们的方法表示为 RESNET-18+DUAL-TRINET。
此外,我们进行了实验来证明编码器部分和解码器部分是必要的。如果我们简单地使用真实标签的语义向量 u b a s e z i u_{base}^{z_i} ubasezi,而不是编码器 g E n c ( { f ( l ) ( I s u p p o r t ( i ) ) } ) g_{Enc}(\{f^{(l)}(I_{support}^{(i)})\}) gEnc({f(l)(Isupport(i))}),则扩充样本实际上会降低性能。在仅在语义空间中进行分类的情况下(即有效禁用解码器),性能下降超过 5%。这是因为在从视觉空间到语义空间的映射过程中丢失了信息,而我们的方法保留了原始信息并从语义空间获得了额外信息。
5.3 Visualization
使用文献96 中的技术,我们可以可视化生成 ResNet-18 中扩充特征 f ^ ( l ) ( I i ) = g ( f ( l ) ( I i ) ) \hat{f}^{(l)}(I_i) = g(f^{(l)}(I_i)) f^(l)(Ii)=g(f(l)(Ii)) 的图像。我们首先随机生成一个图像 I i ( 0 ) I_i^{(0)} Ii(0),然后通过减少 f ( l ) ( I i ( 0 ) ) f^{(l)}(I_i^{(0)}) f(l)(Ii(0)) 和 f ^ ( l ) ( I i ) \hat{f}^{(l)}(I_i) f^(l)(Ii) 之间的距离来优化 I i ( 0 ) I_i^{(0)} Ii(0)(两者均为 ResNet-18 的输出):
I i ( 0 ) = arg min I i ( 0 ) 1 2 ∥ f ( l ) ( I i ( 0 ) ) − f ^ ( l ) ( I i ) ∥ 2 2 + λ ⋅ R ( I i ( 0 ) ) I_i^{(0)} = \arg \min_{I_i^{(0)}} \frac{1}{2} \left \| f^{(l)}(I_i^{(0)}) - \hat{f}^{(l)}(I_i) \right \|_2^2 + \lambda \cdot R(I_i^{(0)}) Ii(0)=argIi(0)min21 f(l)(Ii(0))−f^(l)(Ii) 22+λ⋅R(Ii(0))
其中 R ( ⋅ ) R(\cdot) R(⋅) 是用于图像平滑的总变分正则项, λ = 1 × 1 0 − 2 \lambda = 1 \times 10^{-2} λ=1×10−2。当差异足够小时, I i ( 0 ) I_i^{(0)} Ii(0) 应该能够表示生成相应扩充特征的图像。
通过使用 SN 和上述可视化算法,我们在图 4 中可视化了原始和扩充特征。顶行显示了两只鸟、一屋顶和一只狗的输入图像。蓝色圆圈和红色圆圈分别表示第 1 层至第 4 层的原始和扩充特征的可视化。扩充特征的可视化与原始图像相似但有所不同。例如,前两列显示,扩充特征的可视化实际上略微改变了鸟的头部姿势。在最后两列中,扩充特征清晰地可视化出了一只狗,其外观与输入图像不同。这直观地展示了我们的框架为何有效。
图4:原始特征和增强特征的可视化
6 CONCLUSIONS
本研究提出了一种用于特征扩充的端到端框架。所提出的双重 TriNet 结构可以高效且直接地扩充多层视觉特征,以提升小样本分类性能。我们展示了该框架可以有效地解决四个数据集上的小样本分类问题。我们主要在分类任务上进行评估;将扩充特征扩展到其他相关任务(如单样本图像/视频分割86 87)也是一个有趣的未来研究方向。此外,尽管双重 TriNet 在这里与 ResNet-18 配对,我们可以轻松地将其扩展到其他特征提取网络,例如 ResNet-50。
Thrun, S.: Learning To Learn: Introduction. Kluwer Academic Publishers (1996) I, II-A ↩︎ ↩︎
Krizhevsky, A., Sutskever, I., Hinton, G.E.: Imagenet classification with deep convolutional neural networks. In: NIPS. (2012) I, II-B, III-B, III-E, V-A ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Fu, Y., Hospedales, T.M., Xiang, T., Gong, S.: Transductive multi-view zero-shot learning. IEEE TPAMI (2015) I, II-B ↩︎ ↩︎
Wang, Y., Hebert, M.: Learning from small sample sets by combining unsupervised meta-training with cnns. In: NIPS. (2016) I, II-B ↩︎ ↩︎
Wang, Y., Hebert, M.: Learning to learn: model regression networks for easy small sample learning. In: ECCV. (2016) I, II-B ↩︎ ↩︎
Li, Z., Hoiem, D.: Learning without forgetting. In: ECCV. (2016) I, II-B ↩︎ ↩︎
Lim, J., Salakhutdinov, R., Torralba, A.: Transfer learning by borrowing examples for multiclass object detection. In: NIPS. (2011) I, II-B ↩︎ ↩︎
Movshovitz-Attias, Y.: Dataset curation through renders and ontology matching. In: Ph.D. thesis, CMU. (2015) I, II-B ↩︎ ↩︎
Park, D., Ramanan, D.: Articulated pose estimation with tiny synthetic videos. In: CVPR. (2015) I, II-B ↩︎ ↩︎
Movshovitz-Attias, Y., Yu, Q., Stumpe, M., Shet, V., Arnoud, S., Yatziv, L.: Ontological supervision for fine grained classification of street view storefronts. In: CVPR. (2015) I, II-B ↩︎ ↩︎
Dosovitskiy, A., Springenberg, J., Brox, T.: Learning to generate chairs with convolutional neural networks. In: CVPR. (2015) I, II-B ↩︎ ↩︎
Zhu, X., Vondrick, C., Fowlkes, C., Ramanan, D.: Do we need more training data? In: IJCV. (2016) I, II-B ↩︎ ↩︎ ↩︎ ↩︎
Opelt, A., Pinz, A., Zisserman, A.: Incremental learning of object detectors using a visual shape alphabet. In: IEEE Conference on Computer Vision and Pattern Recognition. Volume 1. (2006) 3–10 I, II-B ↩︎ ↩︎ ↩︎ ↩︎
Dixit, M., Kwitt, R., Niethammer, M., Vasconcelos, N.: Aga: Attribute guided augmentation. In: CVPR. (2017) I, II-B, III-C ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Mikolov, T., Sutskever, I., Chen, K., Corrado, G., Dean, J.: Distributed representations of words and phrases and their compositionality. In: Neural Information Processing Systems. (2013) I, III-A, III-C, III-D, III-D ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR. (2015) I, III-B, III-B, III-E ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Jankowski, Norbert, Duch, Wodzislaw, Grabczewski, Krzyszto: Metalearning in computational intelligence. In: Springer Science & Business Media. (2011) II-A ↩︎
Lake, B.M., Salakhutdinov, R.: One-shot learning by inverting a compositional causal process. In: NIPS. (2013) II-A ↩︎
Bart, E., Ullman, S.: Cross-generalization: learning novel classes from a single example by feature replacement. In: CVPR. (2005) II-A ↩︎ ↩︎
Fei-Fei, L., Fergus, R., Perona, P.: A bayesian approach to unsupervised one-shot learning of object categories. In: IEEE International Conference on Computer Vision. (2003) II-A ↩︎
Fei-Fei, L., Fergus, R., Perona, P.: One-shot learning of object categories. IEEE TPAMI (2006) II-A ↩︎
Tommasi, T., Caputo, B.: The more you know, the less you learn: from knowledge transfer to one-shot learning of object categories. In: British Machine Vision Conference. (2009) II-A ↩︎
Rezende, D.J., Mohamed, S., Danihelka, I., Gregor, K., Wierstra, D.: One-shot generalization in deep generative models. In: ICML. (2016) II-A ↩︎
Santoro, Bartunov, S., Botvinick, M., Wierstra, D., Lillicrap, T.: Oneshot learning with memory-augmented neural networks. In: arx. (2016) II-A ↩︎
Kingma, D., Welling, M.: Auto-encoding variational bayes. In: ICLR. (2014) II-A ↩︎
JVilalta, R., Drissi, Y.: A perspective view and survey of meta-learning. Artificial intelligence review (2002) II-A ↩︎
Hertz, T., Hillel, A., Weinshall, D.: Learning a kernel function for classification with small training samples. In: ICML. (2016) II-A, II-C ↩︎ ↩︎
Fleuret, F., Blanchard, G.: Pattern recognition from one example by chopping. In: NIPS. (2005) II-A ↩︎
Amit, Y., Fink, M., S., N., U.: Uncovering shared structures in multiclass classification. In: ICML. (2007) II-A ↩︎
Wolf, L., Martin, I.: Robust boosting for learning from few examples. In: CVPR. (2005) II-A ↩︎
Torralba, A., Murphy, K., Freeman, W.: sharing visual features for multiclass and multiview object detection. In: IEEE TPAMI. (2007) II-A ↩︎
Lampert, C.H., Nickisch, H., Harmeling, S.: Attribute-based classification for zero-shot visual object categorization. IEEE TPAMI (2013) II-A, II-C, III-A, IV-B ↩︎ ↩︎ ↩︎ ↩︎
Rohrbach, M., Ebert, S., Schiele, B.: Transfer learning in a transductive setting. In: NIPS. (2013) II-A ↩︎
Rohrbach, M., Stark, M., Szarvas, G., Gurevych, I., Schiele, B.: What helps where – and why? semantic relatedness for knowledge transfer. In: CVPR. (2010) II-A ↩︎
Torralba, A., Murphy, K.P., Freeman, W.T.: Using the forest to see the trees: Exploiting context for visual object detection and localization. Commun. ACM (2010) II-A ↩︎
Vinyals, O., Blundell, C., Lillicrap, T., Kavukcuoglu, K., Wierstra, D.: Matching networks for one shot learning. In: NIPS. (2016) II-A, II-C, IV-A, IV-C, IV-D, IV-D ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Snell, J., Swersky, K., Zemeln, R.S.: Prototypical networks for few-shot learning. In: NIPS. (2017) II-A, IV-A, IV-C ↩︎ ↩︎ ↩︎
Finn, C., Abbeel, P., Levine, S.: Model-agnostic meta-learning for fast adaptation of deep networks. In: ICML. (2017) II-A, IV-A, IV-C, IV-D, IV-D ↩︎ ↩︎ ↩︎
Li, Z., Zhou, F., Chen, F., Li, H.: Meta-sgd: Learning to learn quickly for few shot learning. In: arxiv:1707.09835. (2017) II-A, IV-A, IV-C, IV-D, IV-D ↩︎ ↩︎ ↩︎
Zhou, F., Wu, B., Li, Z.: Deep meta-learning: Learning to learn in the concept space. In: arxiv:1802.03596. (2018) II-A, IV-A, IV-C, IV-D, IV-E, IV-D ↩︎ ↩︎ ↩︎ ↩︎
Ravi, S., Larochelle, H.: Optimization as a model for few-shot learning. In: ICLR. (2017) II-A, IV-A, IV-B, IV-C ↩︎ ↩︎ ↩︎ ↩︎
Munkhdalai, T., Yu, H.: Meta networks. In: ICML. (2017) II-A, IV-A, IV-C ↩︎ ↩︎
Bertinetto, L., Henriques, J.F., Torr, P.H.S., Vedaldi, A.: Meta-learning with differentiable closed-form solvers. In: ICLR. (2019) II-A, IV-A, IV-C ↩︎ ↩︎
Nichol, A., Achiam, J., Schulman, J.: On first-order meta-learning algorithms. CoRR abs/1803.02999 (2018) II-A, IV-A, IV-C ↩︎ ↩︎
Qiao, S., Liu, C., Shen, W., Yuille, A.L.: Few-Shot Image Recognition by Predicting Parameters from Activations. In: CVPR. (2018) II-A, IV-A, IV-C ↩︎ ↩︎
Sung, F., Yang, Y., Zhang, L., Xiang, T., Torr, P.H., Hospedales, T.M.: Learning to compare: Relation network for few-shot learning. In: CVPR. (2018) II-A, IV-A, IV-C ↩︎ ↩︎
Hilliard, N., Phillips, L., Howland, S., Yankov, A., Corley, C.D., Hodas, N.O.: Few-Shot Learning with Metric-Agnostic Conditional Embeddings. ArXiv e-prints (February 2018) II-A, IV-A, IV-C ↩︎ ↩︎ ↩︎
Gidaris, S., Komodakis, N.: Dynamic Few-Shot Visual Learning without Forgetting. In: CVPR. (2018) II-A, IV-A, IV-C ↩︎ ↩︎
zhongwen xu, linchao zhu, Yang, Y.: Few-shot object recognition from machine-labeled web images. In: arxiv. (2016) II-A ↩︎
Cai, Q., Pan, Y., Yao, T., Yan, C., Mei, T.: Memory Matching Networks for One-Shot Image Recognition. (2018) II-A, IV-A, IV-C ↩︎ ↩︎
Finn, C., Abbeel, P., Levine, S.: Model-agnostic meta-learning for fast adaptation of deep networks. In: Proceedings of the 34th International Conference on Machine Learning. (2017) 1126–1135 II-A ↩︎
Garcia, V., Bruna, J.: Few-shot learning with graph neural networks. In: ICLR. (2018) II-A, IV-A, IV-C ↩︎ ↩︎
Liu, Y., Lee, J., Park, M., Kim, S., Yang, Y.: Transductive Propagation Network for Few-shot Learning. In: ICLR. (2019) II-A, IV-A, IV-C ↩︎ ↩︎
Wang, P., Liu, L., Shen, C., Huang, Z., Hengel, A., Tao Shen, H.: Multiattention network for one shot learning. In: CVPR. (07 2017) 6212–6220 II-A ↩︎
Chatfield, K., Simonyan, K., Vedaldi, A., Zisserman, A.: Return of the devil in the details: Delving deep into convolutional nets. In: BMVC. (2014) II-B ↩︎
Zeiler, M.D., Fergus, R.: Visualizing and understanding convolutional networks. In: ECCV. (2014) II-B, III-C ↩︎ ↩︎
Schwartz, E., Karlinsky, L., Shtok, J., Harary, S., Marder, M., Feris, R., Kumar, A., Giryes, R., Bronstein, A.M.: Delta-encoder: an effective sample synthesis method for few-shot object recognition. In: NIPS. (2018) II-B, IV-A, IV-C ↩︎ ↩︎
Fu, Y., Sigal, L.: Semi-supervised vocabulary-informed learning. In: CVPR. (2016) II-B, III-D, IV-B ↩︎ ↩︎ ↩︎
Ba, J.L., Swersky, K., Fidler, S., Salakhutdinov, R.: Predicting deep zero-shot convolutional neural networks using textual descriptions. In: ICCV. (2015) II-B ↩︎
Su, H., Qi, C.R., Li, Y., Guibas, L.J.: render for cnn viewpoint estimation in images using cnns trained with rendered 3d model views. In: ICCV. (2015) II-B ↩︎
Charalambous, C.C., Bharath, A.A.: A data augmentation methodology for training machine/deep learning gait recognition algorithms. In: BMVC. (2016) II-B ↩︎
Rogez, G., Schmid, C.: mocap-guided data augmentation for 3d pose estimation in the wild. In: NIPS. (2016) II-B ↩︎
Peng, X., Sun, B., Ali, K., Saenko, K.: Learning deep object detectors from 3d models. In: ICCV. (2015) II-B ↩︎
Hariharan, B., Girshick, R.: Low-shot visual recognition by shrinking and hallucinating features. In: ICCV. (2017) II-B ↩︎
Zhu, J.Y., Park, T., Isola, P., Efros, A.A.: Unpaired image-to-image translation using cycle-consistent adversarial networks. In: ICCV. (2017) II-B ↩︎
Zhu, J.Y., Kr ̈ahenb ̈uhl, P., Shechtman, E., Efros, A.A.: Generative visual manipulation on the natural image manifold. In: ECCV. (2016) II-B ↩︎
Goodfellow, I.J., Pouget-Abadie, J., Mirza, M., Xu, B., DavidWardeFarley, Ozair, S., Courville, A., Bengio, Y.: Generative adversarial nets. In: NIPS. (2014) II-B ↩︎
Reed, S., Akata, Z., Yan, X., Logeswaran, L., Schiele, B., Lee, H.: Generative adversarial text-to-image synthesis. In: ICML. (2016) II-B ↩︎
Radford, A., Metz, L., Chintala, S.: Unsupervised representation learning with deep convolutional generative adversarial networks. In: arxiv. (2016) II-B ↩︎
Mao, X., Li, Q., Xie, H., Lau, R.Y., Wang, Z.: Least squares generative adversarial networks. In: arxiv. (2017) II-B ↩︎
Durugkar, I., Gemp, I., Mahadevan, S.: Generative multi-adversarial networks. In: ICLR. (2017) II-B ↩︎
Huang, X., Li, Y., Poursaeed, O., Hopcroft, J., Belongie, S.: Stacked generative adversarial networks. In: CVPR. (2017) II-B ↩︎
Wang, Y.X., Girshick, R., Hebert, M., Hariharan, B.: Low-Shot Learning from Imaginary Data. In: CVPR. (2018) II-B ↩︎
Liu, B., Dixit, M., Kwitt, R., Vasconcelos, N.: Feature space transfer for data augmentation. In: CVPR. (2018) II-B ↩︎
Bromley, J., Bentz, J., Bottou, L., Guyon, I., LeCun, Y., Moore, C., Sackinger, E., Shah, R.: Signature verification using a siamese time delay neural network. In: IJCAI. (1993) II-C ↩︎
Koch, G., Zemel, R., Salakhutdinov, R.: Siamese neural networks for one-shot image recognition. In: ICML – Deep Learning Workshok. (2015) II-C ↩︎
Farhadi, A., Endres, I., Hoiem, D., Forsyth, D.: Describing objects by their attributes. In: CVPR. (2009) II-C ↩︎
Kienzle, W., Chellapilla, K.: Personalized handwriting recognition via biased reg- ularization. In: ICML. (2006) II-C ↩︎
Quattoni, A., Collins, M., Darrell, T.: Transfer learning for image classification with sparse prototype representations. In: IEEE Conference on Computer Vision and Pattern Recognition. (2008) 1–8 II-C ↩︎
Fink, M.: Object classification from a single example utilizing class relevance metrics. In: NIPS. (2005) II-C ↩︎
Wolf, L., Hassner, T., Taigman, Y.: The one-shot similarity kernel. In: ICCV. (2009) II-C ↩︎
Rasmus, A., Valpola, H., Honkala, M., Berglund, M., Raiko, T.: Semisupervised learning with ladder networks. In: NIPS. (2015) II-C ↩︎
Wang, J., Wei, Z., Zhang, T., Zeng, W.: Deeply-fused nets. In: arxiv:1505.05641. (2016) II-C ↩︎
Yu, F., Wang, D., Shelhamer, E., Darrell, T.: Deep layer aggregation. In: CVPR. (2018) II-C ↩︎
Long, J., Shelhamer, E., Darrell, T.: Fully convolutional networks for semantic segmentation. In: CVPR. (2015) III-B ↩︎
Shaban, A., Bansal, S., Liu, Z., Essa, I., Boots, B.: One-shot learning for semantic segmentation. In: BMVC. (2017) III-B, VI ↩︎ ↩︎
Caelles, S., Maninis, K.K., Pont-Tuset, J., Leal-Taixe, L., Cremers, D., Gool, L.V.: One-shot video object segmentation. In: CVPR. (2017) III-B, VI ↩︎ ↩︎
Yosinski, J., Clune, J., Bengio, Y., Lipson, H.: How transferable are features in deep neural networks? In: NIPS. (2014) III-C ↩︎
Krizhevsky, A.: Learning multiple layers of features from tiny images. (2009) IV-A ↩︎
Zhou, F., Wu, B., Li, Z.: Deep Meta-Learning: Learning to Learn in the Concept Space. ArXiv e-prints (February 2018) IV-A ↩︎ ↩︎
Wah, C., Branson, S., Welinder, P., Perona, P., Belongie, S.: The CaltechUCSD Birds-200-2011 Dataset. Technical Report CNS-TR-2011-001, California Institute of Technology (2011) IV-A, IV-B ↩︎ ↩︎
Griffin, G., Holub, A., Perona, P.: Caltech-256 object category dataset. (2007) IV-A ↩︎
Mishra, N., Rohaninejad, M., Chen, X., Abbeel, P.: A simple neural attentive meta-learner. In: ICLR. (2016) IV-A, IV-C ↩︎
Hinton, G.E., Salakhutdinov, R.R.: reducing the dimensionality of data with neural networks. (2006) V-B ↩︎
Ronneberger, O., Fischer, P., Brox, T.: U-net: Convolutional networks for biomedical image segmentation. In: MICCAI. (2015) V-B ↩︎
Mahendran, A., Vedaldi, A.: Understanding Deep Image Representations by Inverting Them. ArXiv e-prints (November 2014) V-C ↩︎
相关文章:
【论文阅读】Multi-level Semantic Feature Augmentation for One-shot Learning
用于单样本学习的多层语义特征增强 引用:Chen, Zitian, et al. “Multi-level semantic feature augmentation for one-shot learning.” IEEE Transactions on Image Processing 28.9 (2019): 4594-4605. 论文地址:下载地址 论文代码:https:…...
说说Elasticsearch查询语句如何提升权重?
大家好,我是锋哥。今天分享关于【说说Elasticsearch查询语句如何提升权重?】面试题。希望对大家有帮助; 说说Elasticsearch查询语句如何提升权重? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…...
jeecgbootvue2重新整理数组数据或者添加合并数组并遍历背景图片或者背景颜色
想要实现处理后端返回数据并处理,添加已有静态数据并遍历快捷菜单背景图 遍历数组并使用代码 需要注意: 1、静态数组的图片url需要的格式为 require(../../assets/b.png) 2、设置遍历背景图的代码必须是: :style"{ background-image: url( item…...
Vue-常用指令-02
目录 Vue常用指令 实操 v-bind、v-model v-bind v-model 总结 v-on 总结 编辑 v-if、v-show v-if v-show 总结 v-for 总结 综合案例 编辑 Vue常用指令 Vue指令:在HTML文件或者HTML标签中涉及的带有v-..的指令都是Vue的指令。不同指令不同含义不同作用。v-…...
ESLint 配置文件全解析:格式、层叠与扩展(3)
配置文件系统处于一个更新期,存在两套配置文件系统,旧的配置文件系统适用于 v9.0.0 之前的版本,而新的配置文件系统适用于 v9.0.0之后的版本,但是目前还处于 v8.x.x 的大版本。 配置文件格式 在 ESLint 中,支持如下格…...
曲面单值化定理
曲面单值化定理(Uniformization Theorem)是复分析、几何和拓扑学中的一个重要结果。它为紧致黎曼曲面提供了标准化的几何结构,是研究复几何和代数几何的基础。以下是对曲面单值化定理的详细介绍以及其应用场景。 曲面单值化定理的陈述 基本版…...
数据预处理方法—数据增强、数据平衡
1.数据增强 1.1 原理 通过对数据进行变换增加数据的多样性,提高模型泛化能力,常用于图像和文本处理任务。 1.2 核心公式 例如:图像旋转: 其中,R()是旋转矩阵,是旋转角度。 1.3 Python案例 下面是一个…...
从扩散模型开始的生成模型范式演变--SDE
SDE是在分数生成模型的基础上,将加噪过程扩展时连续、无限状态,使得扩散模型的正向、逆向过程通过SDE表示。在前文讲解DDPM后,本文主要讲解SDE扩散模型原理。本文内容主要来自B站Up主deep_thoughts分享视频Score Diffusion Model分数扩散模型…...
基于Java Springboot 协同过滤算法音乐推荐系统
一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue2、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库&#x…...
【NLP高频面题 - LLM架构篇】旋转位置编码RoPE相对正弦位置编码有哪些优势?
【NLP高频面题 - LLM架构篇】旋转位置编码RoPE相对正弦位置编码有哪些优势? 重要性:⭐⭐⭐ 💯 NLP Github 项目: NLP 项目实践:fasterai/nlp-project-practice 介绍:该仓库围绕着 NLP 任务模型的设计、训练…...
win10中使用ffmpeg的filter滤镜
1 给视频加文字水印 1.1 添加播放时间 ffmpeg -i input.mp4 -vf "drawtextfontfileC\\:/Windows/fonts/consola.ttf:fontsize30:fontcolorwhite:timecode00\:00\:00\:00:rate25:textTCR\::boxcolor0x000000AA:box1:x20:y20" -y output.mp4 在视频的x20:y20位置添加t…...
shell编程7,bash解释器的 for循环+while循环
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
Flutter 1.2:flutter配置gradle环境
1、在android的模块中进行gradle环境配置 ①在 gradle-wrapper.properties文件中将url配置为阿里云镜像,因为gradle的服务器在国外,国内下载非常慢,也可在官网进行下载 gradle版本下载 gradle版本匹配 阿里云镜像gradle下载 可以通过复制链…...
LVS 负载均衡面试题及参考答案
目录 什么是 LVS 负载均衡?它的主要作用是什么? 为什么要使用 LVS 进行负载均衡? LVS 有哪些组成部分? 简述 LVS 的架构。 LVS 中有哪两种典型的架构?请简要说明它们的特点。 LVS 的工作原理是怎样的?简述 LVS 的工作原理。 解释 LVS 中的虚拟服务器(VS)概念。 …...
GaussDB(类似PostgreSQL)常用命令和注意事项
文章目录 前言GaussDB(类似PostgreSQL)常用命令和注意事项1. 连接到GaussDB数据库2. 查看当前数据库中的所有Schema3. 进入指定的Schema4. 查看Schema下的表、序列、视图5. 查看Schema下所有的表6. 查看表结构7. 开始事务8. 查询表字段注释9. 注意事项&a…...
c语言编程1.17蓝桥杯历届试题-回文数字
题目描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 本题要求你找到一些5位或6位的十进制数字。满足如下要求: 该数字的各个数位之…...
MVC core 传值session
MVC Entity Framework MVC Core session 》》 需要添加 Session 服务 和 Session中间件 builder.Services.AddSession(); app.UseSession(); 》》》控制器中 public IActionResult Privacy(){HttpContext.Session.SetString("key", "123");return View(…...
六:安装服务-compute node
一:工具、环境准备-controller node 二:OpenStack环境准备-controller node 三:安装服务-controller node 四:工具、环境准备-compute node 五:OpenStack环境准备-compute node 六:安装服务-compute node 七…...
【050】基于51单片机计步器【Keil程序+报告+原理图】
☆、设计硬件组成:51单片机最小系统ADXL345三轴加速度传感器LCD1602液晶显示AT24C02存储芯片按键控制。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片,LCD1602实时显示; 2、设计采用ADXL345三轴加速度传感器实现对行走步…...
qt QGraphicsPolygonItem详解
1、概述 QGraphicsPolygonItem是Qt框架中QGraphicsItem的一个子类,它提供了一个可以添加到QGraphicsScene中的多边形项。通过QGraphicsPolygonItem,你可以定义和显示一个多边形,包括其填充颜色、边框样式等属性。QGraphicsPolygonItem支持各…...
OpenAI浅聊爬虫
前提 OpenAI越来越火,大有要干掉一片程序员的架势。在此,我们看看Sider(本文使用的OpenAI工具)对爬虫的看法。 爬虫的应用场景 爬虫技术(Web Scraping)有广泛的应用场景,以下是一些主要的应用…...
Java学习,ArrayList
ArrayList 是 Java 集合框架(Collections Framework)中的一个重要类,它实现了 List 接口。ArrayList 基于动态数组的数据结构,能够根据需要自动调整其大小。 关键特性 动态数组:ArrayList 底层使用数组来存储元素&…...
拓扑排序的两种实现
1 按节点结束时间进行排序 拓扑排序针对一张DAG,将所有节点按照结束时间从大到小依次排列。 算法描述为:初始化一个空链表 L L L,对DAG进行DFS,维护一个全局时钟 T T T,记录每个节点的开始时间(从白色变成…...
洛谷 P10491 [USACO09NOV] The Chivalrous Cow B C语言 bfs
题目: https://www.luogu.com.cn/problem/P10491?contestId217365 题目背景 农民 John 有很多牛,他想交易其中一头被 Don 称为 The Knight 的牛。这头牛有一个独一无二的超能力,在农场里像 Knight 一样地跳(就是我们熟悉的象棋…...
C语言——指针初阶(三)
目录 一.指针-指针 代码1: 运行结果: 代码2: 运行结果: 代码3: 运行结果: 二.指针数组 例: 往期回顾 一.指针-指针 指针减去指针的前提:两个指针指向同一块空间。 指针减去指针…...
【Spring】Spring IOCDI:架构旋律中的“依赖交响”与“控制华章”
前言 🌟🌟本期讲解关于Spring IOC&DI的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么…...
安全基线检查
一、安全基线检测基础知识 安全基线的定义 安全基线检查的内容 安全基线检查的操作 二、MySQL的安全基线检查 版本加固 弱口令 不存在匿名账户 合理设置权限 合理设置文件权限 日志审核 运行账号 可信ip地址控制 连接数限制 更严格的基线要求 1、禁止远程连接数据库 2、修改…...
python 生成tts语音
之前一直使用微软、或者国内大厂的接口,网页操作比较麻烦,最近发现一个python库可以完美解决,在这里分享给大家 在这里 GitHub - rany2/edge-tts: Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsof…...
【链表】【删除节点】【刷题笔记】【灵神题单】
237.删除链表的节点 链表删除节点的本质是不用删除,只需要操作指针,跳过需要删除的节点,指向下下一个节点即可! 删除某个节点,但是不知道这个节点的前一个节点,也不知道头节点!摘自力扣评论区…...
Keil 5, Flash Timeout. Reset the Target and try it again.
stm32F303RBT6 Flash Timeout. Reset the Target and try it again. 需要pack DFP 1.4.0, FLASH 烧写算法需要包括1.4.0...
如何估算自然对流传热系数
介绍 一般来说,对流可以定义为通过加热流体(例如空气或水)的运动来传递热量的过程。 自然对流(对流的一种特定类型)可以定义为流体在重力作用下由于较热因此密度较小的物质上升,而较冷且密度较大的物质下…...
uniapp中scrollview配合swiper实现一个简单的tab标签页
<template><view class"tab-container"><!-- Tab 标签滚动容器 --><scroll-view scroll-x"true" class"tab-scroll" scroll-with-animation"true"><view class"tab-list"><viewv-for"…...
Redis3——线程模型与数据结构
Redis3——线程模型与数据结构 本文讲述了redis的单线程模型和IO多线程工作原理,以及几个主要数据结构的实现。 1. Redis的单线程模型 redis6.0之前,一个redis进程只有一个io线程,通过reactor模式可以连接大量客户端;redis6.0为了…...
JavaScript(JS)的对象
目录 1.array 数组对象 2.String 字符串对象 3.JSON 对象(数据载体,进行数据传输) 4.BOM 浏览器对象 5.DOM 文档对象(了解) 1.array 数组对象 定义方式1:var 变量名 new Array(元素列表); 定义方式…...
计算机毕业设计Python+LSTM天气预测系统 AI大模型问答 vue.js 可视化大屏 机器学习 深度学习 Hadoop Spark
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
二阶信息在机器学习中的优化;GPTQ算法利用近似二阶信息;为什么要求近似二阶(运算量大,ReLu0点不可微)
目录 二阶信息在机器学习中的优化 GPTQ算法利用近似二阶信息来找到合适的量化权重 详细解释 举例说明 近似二阶信息 定义与解释 举例说明 总结 为什么要求近似二阶(运算量大,ReLu0点不可微) 计算复杂性 精度需求 实际应用场景中的权衡 二阶信息在机器学习中的优…...
Spring事务管理学习记录
一、概念 事务(Transaction)是指一组操作的集合,这些操作要么全部成功,要么全部失败。事务的四大特性(ACID)确保了数据的完整性和一致性: 原子性(Atomicity):…...
Linux locate 命令详解
简介 locate 命令用于通过查询预构建的数据库来快速搜索文件和目录,该数据库包含来自文件系统的索引文件路径。它比 find 之类的命令要快得多,因为它不会实时搜索整个文件系统。 关键概念 locate 命令依赖于数据库,通常位于 /var/lib/mloca…...
uniapp手机端一些坑记录
关于 z-paging-x 组件,在ios上有时候通过弹窗去粗发它reload时会触发闪退,可能是弹框插入进去导致的DOM 元素已经被移除或者不可用,解决办法是加上他自带属性 :showRefresherWhenReload"true" 加上showRefresherWhe…...
快速排序算法
快速排序是一种非常高效的排序算法,采用分治策略来对一个数组进行排序。它由C. A. R. Hoare在1960年提出。快速排序的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分…...
CSS定位
定位 其中,绝对定位和固定定位会脱离文档流 设置定位之后:可以使用四个方向值进行调整位置:left、top、right、bottom 相对定位 温馨提示 设置定位之后,相对定位和绝对定位他是相对于具有定位的父级元素进行位置调整,…...
追加docker已运行容器添加或修改端口映射方法
docker run可以指定端口映射 【】docker run -d -p 80:80 --name name 但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。 【】 docker stop A 【】 doc…...
53 基于单片机的8路抢答器加记分
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位,然后八个选手按键,开机显示四条杠,然后按一号选手按键,数码管显示30,这…...
ubuntu多版本安装gcc
1.ubuntu安装gcc 9.3.1 $ sudo apt update $ sudo apt install gcc-9 g-9 二、配置GCC版本 安装完成后,需要使用update-alternatives命令来配置GCC版本。这个命令允许系统在多个安装的版本之间进行选择 1.添加GCC 9.3.1到update-alternatives管理 $ sudo update-a…...
异步处理优化:多线程线程池与消息队列的选择与应用
目录 一、异步处理方式引入 (一)异步业务识别 (二)明确异步处理方式 二、多线程线程池(Thread Pool) (一)工作原理 (二)直面优缺点和适用场景 1.需要快…...
音视频技术扫盲之预测编码的基本原理探究
预测编码是一种数据压缩技术,广泛应用于图像、视频和音频编码等领域。其基本原理是利用数据的相关性,通过对当前数据的预测和实际值与预测值之间的差值进行编码,从而实现数据压缩的目的。 一、预测编码的基本概念 预测编码主要包括预测器和…...
计算机毕业设计SpringCloud+大模型微服务高考志愿填报推荐系统 高考大数据 SparkML机器学习 深度学习 人工智能 Python爬虫 知识图谱
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
AIGC训练效率与模型优化的深入探讨
文章目录 1.AIGC概述2.AIGC模型训练效率的重要性3.模型优化的概念与目标4.模型优化策略4.1 学习率调节4.2 模型架构选择4.3 数据预处理与增强4.4 正则化技术4.5 量化与剪枝 5.代码示例6.结论 人工智能领域的发展,人工智能生成内容( AIGC)越来…...
《深入浅出HTTPS》读书笔记(13):块密码算法之迭代模式(续)
CTR模式 每次迭代运算的时候要生成一个密钥流(keystream)。 各个密钥流之间是有关系的,最简单的方式就是密钥流不断递增,所以才叫作计数器模式。 ◎在处理迭代之前,先生成每个密钥流,有n个数据块࿰…...
定时任务删除MongoDB历史数据
前言 MongoDB数据过多,导致存储成本飙升,为了降低成本,需要将历史数据删除。 删除逻辑 添加配置文件控制删除逻辑 syncconfig:deleteMongoConfig:#同步状态,true同步,false不同步syncStatus: true#删除数据的时间&…...