论文解读:Rethinking Generalization in Few-Shot Classification

2024-03-25 01:04

本文主要是介绍论文解读:Rethinking Generalization in Few-Shot Classification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章汇总

问题

ImageNet[38]这样流行的计算机视觉数据集总是给出单一标签来描述整张图片,而这样的标签只能正确地描述实际图像的一小部分,这不利于模型的训练;特别在测试期间,不属于训练类集合的实体,可能被认为是不相关的实体,很可能是测试类集合的一部分。

动机

参考文章近年来,小样本学习取得重大进展了吗? - 知乎

解决单label的annotation问题,比如

一张图60%的内容为人类,最后label居然是窗帘。

监督预训练过程中模型只关注curtain的feature,而忽略图中大部分人类的feature。我们怀疑此过程是导致监督坍塌supervision collapse 的一个重要原因,因为小样本学习的训练集和测试是完全不同的class,在训练过程中忽略大部分的feature (设想这些被忽略的feature出现在某些测试类别上) 会导致模型学习不到更泛化更多样的特征,进而过拟合到训练集上

因此问题关键在于

建立对图像结构和内容的理解,以方便推广到新的类别/减轻图像级注释的负面影响并避免监督崩溃

解决办法

1.VIT可以将图片本地区域 local region,划分成相同大小的网格然后进行编码,这样很大几率每个local region都被一个主要个体占据(me:此时一个小区域仅用一个标签就可以很好地表达了该区域绝大部分的特征),进一步来说这样做能将所有主要个体特征encoder (小几率出现一个本地区域出现两种个体的特征)

2.mask图像建模(MIM)自监督解决细粒度没有可用的标签问题,详见2.2节

3.学习对于一张图片哪个token/region的重要性

核心思路

训练V

vector v就代表我们每个support token的重要性 (对于当前任务,每个任务都会学习一组新的v)

vector v的作用

第二行是这个初始化为0的 vector v在五个iteration后学习到的东西。每一组vector都代表了相应support image中对于当前task有用的feature,背景和无用信息被忽略 (亮度和重要性正相关)。然后我们再看看PCA告诉了我们什么信息。

总体架构

下来,当作query image的识别时,我们用query token和每个support token 进行pair-wise cosine similarity matching,之后再把这个 vector v 叠加再这个similarity matrix上,进一步告诉我们的模型哪一个support token 更重要!

摘要

单个图像级注释只能正确描述图像内容的一小部分,特别是在描述复杂的现实场景时。虽然这在许多分类场景中是可以接受的,但对于训练时间和测试时间之间的类集差异很大的应用程序来说,这是一个重大挑战。在本文中,我们仔细研究了在少样本学习背景下的含义。通过Vision Transformers的帮助,将输入样本分割成小块并进行编码,我们可以在图像的局部区域之间建立语义对应关系,并且独立于它们各自的类。然后在推理时通过在线优化将手头任务的最具信息量的补丁嵌入确定为支持集的函数,另外还提供图像中“最重要的”的视觉可解释性。我们基于网络无监督训练的最新进展,通过掩膜图像建模来克服缺乏细粒度标签,并学习数据的更一般的统计结构,同时避免负面的图像级注释影响,即监督崩溃。实验结果显示了我们的方法的竞争力,在5-shot和1-shot场景的四种流行的少样本分类基准上获得了新的最先进的结果。

1介绍

图1:通过在上下文中解释图像来处理分类歧义。(左):分配给具有多个实体的真实世界图像的标签只能正确描述所描述内容的一个子集,导致分类结果不明确。(右):利用支持集内和类间的相似性和差异,我们的方法可以在推理时确定每个单独补丁的重要性,即找出每个图像中“最重要的”。然后使用该信息重新加权支持查询的相似性并解决歧义。

描绘真实世界场景的图像通常由几个不同的实体组成,例如,一个家庭在树木环绕的公园里遛狗,或者一个人在拍他们的狗(图1)。然而,像ImageNet[38]这样流行的计算机视觉数据集分配了一个单一的图像级注释来分类它们的整个内容。因此,这样的标签只能正确地应用于实际图像的一小部分。因此,通过基于梯度的方法对这些数据进行训练的模型学会忽略所有看似无关的信息,特别是在不同标记的图像中出现的实体。虽然对于传统的分类方法来说,这可能是可以接受的,因为它们会遇到不同数量的训练示例,用于它们期望区分的所有类,但是对于训练时间和测试时间之间的类集不同的应用程序来说,这是一个主要的但经常被忽视的挑战。其中一个受影响的领域是少样本学习(FSL),在这种情况下,只要为每个新类别提供几个(例如一个或五个)样本,方法就可以在测试时正确地对训练中从未遇到过的全新类进行分类。在测试期间,不属于训练类集合的实体,可能被认为是不相关的实体,很可能是测试类集合的一部分——然而,该方法被教导忽略这些。同样,一种方法可能会过度强调在训练过程中学习的某些图像模式的重要性,而这些模式与测试类无关,从而导致监督崩溃(me:训练的时候如果仅关注标签所强调的那一部分,则不利于模型迁移到新类的学习)[9]

之前很少有作品[9,18]部分解决了上述挑战。CTX[9]提出使用transformer风格的注意机制来学习cnn提取的查询和支持特征之间的空间和语义一致性。作者进一步表明,自监督学习任务(即SimCLR)可以与正常的监督任务一起集成到情景训练中,以学习更多的广义特征,这有利于解决看不见的任务并减轻监督崩溃。CAN[18]通过在类原型和查询特征图之间进行交叉关注,在推理过程中突出特征图中对分类重要的区域,以类似的方式实现了这一点。虽然这两种方法都为解决监管崩溃做出了重要贡献,但它们都存在重要的缺陷。首先,这两种方法都围绕基于每个查询的原型对齐建立自己的想法。这样的原型仅仅是类感知的,忽略了支持集中存在的所有类间信息——然而,这一部分已被证明对少样本次学习至关重要[34,48]。此外,学习与查询一致的类表示需要对每个查询执行相同的操作,这使得这种方法在推理时效率相当低。

总结我们和之前作品的观察,我们的目标是解决我们所看到的两个主要标准:

1)建立对图像结构和内容的理解,并推广到新的类别;

2)提供在上下文中解释所提供样本的能力,即,在共同考虑所有可用信息的情况下,找到类别内的相似性和类别间的差异。

我们的工作

为了减轻图像级注释的负面影响并避免监督崩溃,我们将图像分解为代表局部区域的补丁,每个补丁都有较高的被一个实体主导的可能性。为了克服这种细粒度注释的缺乏,我们采用自监督训练与蒙面图像建模作为借口任务[59],并使用视觉变压器架构[10]作为编码器,由于其基于补丁的性质。我们围绕学习局部区域之间特定任务的相似性作为推理时支持集的函数的概念来构建分类。在这种程度上,我们首先通过在所有支持集样本之间建立语义补丁对应关系来创建先验相似性图,而不考虑它们的类别,即在可能不相关甚至可能对正确分类有害的实体之间(图1,步骤(1))。考虑所描述的只有两个类的支持集:“人”和“猫”。右下角的图片是我们对“猫”的支持集的一部分,而这只狗恰好在图片中。现在在需要分类的查询样本中,图像描绘了一个人在拍他们的狗。因此,我们将正确地检测出这两张图像中两只狗的对应关系,以及人补丁和人支持集类的其他样本之间的对应关系。虽然人区域之间的对应关系是有帮助的,但在实际的支持集中没有“狗”类(即,“狗”是任务外信息),使得这种对应关系对分类有害,因为它将表明查询与带有“猫”标签的图像相连。这就是我们的令牌重要性加权发挥作用的地方。我们根据每个标记对其他支持集样本正确分类的贡献来推断其重要性权重,通过共同考虑所有可用信息,积极加强类内相似性和类间差异——换句话说,我们了解哪些标记“有助于”或“损害”我们的分类目标(图1,步骤(2))。然后将这些重要性重新加权的支持集嵌入用作基于相似性的查询样本分类(步骤(3))的基础。我们的主要贡献包括:

1. 我们证明了仅Transformer架构与自监督预训练相结合可以成功地用于少样本设置,而不需要卷积主干或任何额外的数据。

2. 我们表明,视觉变压器的元微调结合我们的内环令牌重要性重加权可以成功地使用所提供的支持集标签的监督信号,同时避免监督崩溃。

3. 我们提供了如何在独立于类的图像之间建立一般相似性的见解,然后在推理时基于优化的选择可以提高泛化,同时允许视觉可解释性,并通过在四个流行的公共基准上获得新的最先进的结果来展示我们方法的有效性。

2基于重加权嵌入相似度的少样本分类

本节开始时,我们将简要介绍我们在这项工作中要解决的问题设置:归纳的少镜头分类。然后,在详细阐述主要元素之前,我们概述了我们提出的使用重加权嵌入相似度的变压器的fewture少样本分类方法(图2)。

问题定义

归纳N-way K-shot 少样本分类的目的是将在D_{train}上训练学到的知识推广到未见过的测试数据

D_{test}上,类为C_{train}\cap C_{test} = \emptyset,只使用少量有标签的样本。我们遵循前人[48]的元学习协议,制定了带有情景训练和测试的少样本分类问题。一个episode \varepsilon由支持集X_s=\{x_s^{nk},y_s^{nk}|n=1,...,N;k=1,...,K;y_s^{nk}\in C_{train}\}组成,其中x_s^{nk}表示标记为y_s^{nk}

的类为n的第k个样本,查询集X_q=\{(x_q^n,y^n_q)|n=1,...,N\},其中x_q^n表示标签为y^n_q的类n的查询sample^3

2.1 fewTURE概述

图2:提出的方法的说明。支持和查询集图像被分割成patch并由我们的Transformer主干编码。查询集图像的分类是通过使用编码补丁与支持集标记的重新加权相似度来完成的。

如图2所示,我们通过f_\theta对支持集样本的图像patch P_s和查询样本patch p_q进行编码,分别得到对应的token集合Z_sz_q。值得注意的是,虽然我们选择通过使用单个查询样本来说明我们的方法,但在实践中,所有查询样本的分类都是在一次通过中同时计算的。我们检索我们的“先验”对应映射S,表示查询样本中局部区域的编码语义内容与所有支持样本的所有补丁之间的标记智能相似性,允许我们联合考虑所有可用信息,而不会因平均或类似操作而导致信息丢失。这个“先验”相似性图表示样本区域之间的对应关系,而不考虑它们的个体类别,即实体之间也可能不是与正确分类相关,甚至可能有害。使用带注释的支持集样本,我们现在为每个支持令牌z^j_s推断出一个特定于任务的重要权重因子v^j,表示它在推理时通过在线优化对支持集中的其他样本进行正确分类的贡献(第2.4节)。然后,我们重新加权先前的相似度,以获得查询样本的分类结果,并共同考虑所有可用信息。

2.2针对监管崩溃的自监督预训练

为了克服由图像级注释引起的监督崩溃问题,我们将输入图像分成更小的部分,其中每个区域更有可能只包含一个主要实体,因此具有更明显的语义含义。由于这些更细粒度的数据没有可用的标签,因此我们通过无监督方法对每个局部区域的信息进行编码。

我们围绕最近引入的使用蒙面图像建模(MIM)[3,59]作为视觉变形器自我监督训练的借口任务的想法构建我们的方法。与之前主要关注全局图像级表示的无监督方法[5,7]不同,MIM随机屏蔽一些补丁嵌入(令牌),并在给定图像剩余信息的情况下重建它们。引入的令牌约束帮助我们的Transformer主干学习一个嵌入空间,该空间为每个单独的图像补丁生成语义上有意义的表示。然后,我们利用提供的标签信息,通过微调预训练的骨干,结合以下章节中描述的内环令牌重要性加权,同时成功避免了监督崩溃(参见第3.2节的实验结果)。

2.3重新加权标记相似度分类

如图2所示,我们将每个输入图像x\in R^{H\times W\times C}分成M=H*W/p^2个patch p=\{p^i\}^M_{i=1}

的序列,每个patchp^i\in ^{P^2\times C}。然后,我们将支持和查询图像的所有patch平面化并作为输入传递给Transformer架构,得到支持令牌集Z_s=f_\theta(P_s),其中Z_s=\{z_s^{nk}|n=1,...,N,k=1,...,K\},z_s^{nk}=\{z_s^{nkl}|l=1,...,L;z_s^{nkl}\in R^D\}而查询集z_q =f_\theta(p_q),z_q=\{z_q^l|l=1,...,L;z_q^l\in R^D\}。像ViT[10,46]这样的视觉变压器满足L = M,而像Swin[27]这样的分层变压器由于内部合并策略,通常会产生较少数量的令牌L < M。

获得所有的patch嵌入后,我们通过计算支持标记Z_s和查询标记Z_q之间的配对patch相似矩阵来建立语义对应关系,S\in R^{N \cdot K \cdot L\times L},其中S中的每个元素由s_{nk}^{l_s,l_q}=sim(z_s^{nkl_s},z_q^{l_q})获得,其中l_s=1,...,L,l_q=1,...,L(me:一张图片最终得到L个分片,所以支持集N*K个图片,最终有N*K*L个分片,所以相似度是N*K*L*L)注意,表示相似实体的局部图像区域表现出更高的分数。虽然任何距离度量都可以用来计算相似度(sim),但我们发现余弦相似度对这个任务特别有效。

然后,我们使用基于带注释的支持集样本(参见第2.4节)通过在线优化推断出的特定于任务的令牌重要性权重v \in R^{N\cdot K \cdot L\times 1},通过列加法重新加权相似性,并获得特定于任务的相似性矩阵为\tilde S=S+[v\cdot 1^{1\times L}],元素为\tilde s ^{l_s,l_q}_{nk}。注意,我们的重权逻辑的这个加法对应于概率空间中的乘法重权。我们用1/\tau S对适应的相似度logits进行温度标度,并通过LogSumExp操作聚合属于同一支持集类的所有元素的令牌相似度值,即每个类聚集K \cdot L^2logits,然后是softmax -导致查询样本x_q

的最终类预测为\hat{y}_q

2.4在推理时学习哪个token/region的重要性

图3:内循环令牌重要性权重生成器。对手头任务最有帮助的标记是在推理时通过内部循环优化确定的支持集的函数,方法是根据它们对正确分类结果的贡献重新加权所有标记的相似性。

我们使用任务支持集的所有样本及其注释,通过推理时的在线优化来学习每个patch令牌的重要性。如图3所示,我们制定了与前一节相同的分类目标,但目标是对支持集样本进行分类,而不是对查询样本进行分类。换句话说,我们使用两个版本的支持集样本:一个有标签为“支持”Z_s,一个没有标签为“伪查询”Z_{sq},并获得相似度矩阵S_s\in R^{N\cdot K\cdot L \times N \cdot K\cdot L}。令牌v(这是这个模块(图3)想学习的数据,参考文章中整个图3只有v在更新,这个vector v就代表我们每个support token的重要性 (对于当前任务,每个任务都会学习一组新的v))重要性权重初始化为v^0=0\in R^{N \cdot K\cdot L\times 1}并按列添加到表单中\tilde S_s=S_s+[v^0+1^{1\times N\cdot K\cdot L}]

现在的目标是确定哪些Z_s标记对正确分类Z_{sq}最有帮助,哪些标记对这一目标有负面影响。为了防止令牌简单地对自己进行分类,我们为N-way K-shot任务设计了以下策略。对于每个类有K > 1个样本的场景,我们对相似矩阵\tilde{S}_s应用大小为L × L的块对角屏蔽-这意味着我们只根据来自其他图像的信息强制对Z_{sq}中的每个标记进行分类。由于在1-shot场景中没有其他可用的同类示例,我们稍微削弱了约束,并在每个补丁周围的m × m窗口中应用局部掩蔽,迫使令牌根据图像中的剩余信息进行分类。我们发现m = 5的局部窗口在两种体系结构的实验中都能很好地工作。

我们使用温度缩放并聚合所有元素的所有修改的相似度logits,这些元素属于注释的Z_s的相同支持集类,对于每个元素z^{nk}_{sq},应用softmax操作并获得每个支持集样本的预测类概率\hat{y}^{nk}_ s(参见公式(1))。考虑到预测现在依赖于初始化的令牌相似度权重v,我们可以通过使用支持集标签{y}^{nk}_ s作为来制定在线优化目标(这个支持集{y}^{nk}_ s标签是通过正常的有监督部分获得的,见2.3)。

值得注意的是,通过使用v的列式加法,我们在所有“伪查询”令牌上共享每个支持令牌的重要性权重,从而将优化约束为根据所有可用信息共同学习令牌重要性。换句话说,特定任务的类内相似性将得到加强,而类间相似性将相应地受到惩罚。此外,在元微调期间,我们不像其他方法那样需要任何二阶导数,因为v的优化与网络参数解耦。

3实验与讨论

3.1实现细节

我们的训练策略分为两部分:自监督预训练和元微调。需要注意的是,每个架构都是在待评估的各自数据集的训练集数据上进行专门训练的,不使用其他数据。

数据集。我们使用四种流行的少镜头分类基准,即miniImageNet [48], tieredImageNet [37], CIFAR-FS[4]和FC-100[34]来训练和评估我们的方法。

架构。我们在这项工作中比较了两种不同的Transformer架构,单片ViT架构[10,46]在其“小”形式(ViT-small又名DeiT-small)和多尺度Swin架构[27]在其“小”版本(swwin -tiny)

Self-supervised pretraining。我们采用[59]提出的策略来预训练我们的Transformer骨干,并且主要坚持在他们的工作中报告的超参数设置。我们的ViT和Swin体系结构分别以1600和800 epoch的批处理大小512进行训练。我们使用4个Nvidia A100 gpu,每个40GB用于我们的ViT和8个这样的gpu用于我们的Swin模型。

元微调。我们使用元微调来进一步细化我们的嵌入空间,通过使用可用的图像级标签和我们的令牌重加权方法。我们通常训练多达200个epoch,但发现大多数架构更早收敛。我们在每个epoch对来自各自验证集的600个随机采样的剧集进行评估,以选择最佳参数集。在测试期间,我们从测试集中随机抽取600集来评估我们的模型。

令牌重要性重加权和分类器。我们使用余弦相似度来计算s。而用于缩放对数的温度\tau_S可以在元微调期间学习,我们发现\tau_S=1/\sqrt d是一个很好的默认值(或者如果学习了起点,请参阅补充材料)。我们使用SGD作为优化器,学习率为0.1,用于令牌重要性权重生成。

有关数据集、实现和超参数的更详细讨论,请参阅本文的补充材料。

3.2自监督预训练和令牌重加权微调提高了泛化

第二行是这个初始化为0的 vector v在五个iteration后学习到的东西。每一组vector都代表了相应support image中对于当前task有用的feature,背景和无用信息被忽略 (亮度和重要性正相关)。然后我们再看看PCA告诉了我们什么信息。

PCA显示,在叠加了vector v之后,中间重叠的embedding (entangled的信息,例如相同的背景)被忽略,每一个不同的entity更加清晰!这也验证了我们之前的假设。

3.4少样本分类基准评价

我们使用社区中建立的少数镜头设置进行实验,即5-way 1-shot和5-way 5-shot -这意味着网络必须根据每个类别提供的1或5张图像数量来区分5个新类别的样本。我们使用两个不同的Transformer主干来评估我们的方法feature,并将我们的结果与表1中的miniImageNet和tieredImageNet以及表2中的CIFAR-FS和FC100数据集的当前状态进行比较。值得注意的是,与以前的工作相比,我们没有使用任何卷积的帮助而是(据我们所知,这是第一次)使用Transformer主干和我们之前介绍的令牌重要性重新加权方法来实现这些结果。我们能够在5-shot和1-shot设置中设置所有四个数据集的最新技术结果,特别是在miniImageNet和tieredImageNet上的1次结果分别显著提高了3.03%和1.74%。

表1:5-way 1-shot和5-way 5-shot场景的平均分类精度。报告了miniImageNet[48]和tieredImageNet[37]的未见测试集的平均值和95%置信区间,使用已建立的评估协议。

表2:5-way 1-shot和5-way 5-shot场景的平均分类精度。报告了使用既定评估方案的CIFAR-FS[4]和FC-100[34]的未见测试集的平均值和95%置信区间。

4 相关工作

在过去的几年里,FSL的家庭已经变得多样化和广泛。与这项工作密切相关的方法可以分为两类:基于度量的方法以及基于优化的方法[13,21,33,39,61]。基于度量的方法,如ProtoNet[41]、DeepEMD[54]和RelationNet[43]旨在通过平均属于同一类的嵌入来学习类表示(原型),并使用预定义的(ProtoNet和DeepEMD)或学习的(RelationNet)度量来执行原型查询匹配。FEAT[53]和TDM[22]在此基础上更进一步,使用注意机制使提取的特征适应新的任务。相反,我们的方法充分利用了局部图像区域的嵌入(patch token),防止了上述基于原型的方法中出现的信息丢失和监督崩溃(参见补充材料)。

MAML[13]和Reptile[33]等基于优化的方法提出学习一组能够快速适应新任务的初始模型参数。然而,在推理过程中,当主干较大且标记样本较少时,更新所有模型参数往往是不可行的。为了缓解这种所谓的元过拟合问题,CAVIA[61]和LEO[39]提出学习并适应映射到网络上的低维表示。我们的方法受到这种低维适应策略的启发,在不需要高阶梯度的情况下,为每个新任务在线学习一组上下文感知的重新加权因子,从而产生灵活高效的框架。

FSL的自监督学习

虽然自我监督学习在少样本学习的背景下没有得到充分的体现,但最近的一些研究[15,32,42]表明,通过借口任务进行的自我监督在作为辅助损失整合时是有益的。S2M2[32]在预训练阶段采用了轮转[16]和样本[11]以及常见的监督学习。CTX[9]表明SimCLR[6]可以以情景训练的方式与监督学习任务相结合,以学习更广义的模型。相比之下,feature证明了自监督的借口任务(即蒙面图像建模[2,3,24,17,35,44,59])可以独立使用,以学习更广义的特征,用于小规模数据集的少样本学习。

FSL中的Vision Transformer

变形金刚在自然语言处理领域取得了巨大的成功。最近的研究[10,23,27,47]表明,通过自我注意对数据的远程依赖进行编码也会在视觉任务(例如,图像分类,联合视觉语言建模等)中产生有希望的结果。然而,在利用丰富的表示能力和缺乏归纳偏差之间存在一个重要的权衡。与卷积神经网络(cnn)相比,变形金刚通常需要更多的训练数据,因为视觉数据的平移不变性、局部性和层次结构等属性必须从数据中推断出来[26]。虽然这种数据饥渴的特性在很大程度上阻碍了Transformer在数据稀缺的问题(如few-shot学习)中的使用,但最近的一些研究表明,可以成功地采用单个Transformer头来执行特征自适应[9,53]。据我们所知,feature是第一种使用完全基于transformer的架构来获得代表性嵌入的方法,同时专门对各自的少数镜头数据集的训练数据进行训练。

5 结论

在本文中,我们提出了一种新的方法来解决在少样本学习中由单热图像级标签引入的监督崩溃的挑战。我们将输入图像分割成更小的部分,这些部分更有可能只被一个实体主导,并使用通过掩膜图像建模(MIM)以自监督的方式预训练的Vision Transformer架构对这些局部区域进行编码,以学习超越纯标签信息的代表性嵌入空间。我们设计了一个基于补丁嵌入相似度的分类器,并提出了一个令牌重要性重加权机制,以细化每个局部补丁对整体分类结果的贡献,基于类内相似度和类间差异作为支持集信息的函数。我们获得的结果表明,我们提出的方法通过学习更多的广义特征来缓解监督崩溃的问题,在四个流行的少样本分类数据集上获得了新的最先进的结果。

参考资料

论文下载(NeurIPS 2022)

https://arxiv.org/abs/2206.07267

代码地址

https://github.com/mrkshllr/FewTURE

参考文章

近年来,小样本学习取得重大进展了吗? - 知乎

这篇关于论文解读:Rethinking Generalization in Few-Shot Classification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843385

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

BERT 论文逐段精读【论文精读】

BERT: 近 3 年 NLP 最火 CV: 大数据集上的训练好的 NN 模型,提升 CV 任务的性能 —— ImageNet 的 CNN 模型 NLP: BERT 简化了 NLP 任务的训练,提升了 NLP 任务的性能 BERT 如何站在巨人的肩膀上的?使用了哪些 NLP 已有的技术和思想?哪些是 BERT 的创新? 1标题 + 作者 BERT: Pre-trainin