计算机视觉 对比学习 串烧一

news2024/9/21 13:39:55

文章目录

    • 【文章列表】
    • 一、 Inst Disc
      • 1.1 文章摘要
      • 1.2 实验结果
      • 1.3 文章图示
        • 图一 超级学习结果的可视化
        • 图二 非参数softmax分类器的流程
        • 图三 近端正则化的效果
        • 图四 训练和测试目标的一致性
        • 图五 图像检索的结果
        • 表 1: CIFAR10 数据集上的分类准确率
        • 表 2: ImageNet 数据集上的分类准确率
        • 表 3: Places 数据集上的分类准确率
        • 表 4: 不同嵌入特征大小的分类性能
        • 表 5: 不同训练集大小的分类性能
        • 表 6: PASCAL VOC 2007 数据集上的目标检测性能
    • 二、Inva Spread
      • 1.1 文章摘要
      • 1.2 实验结果
      • 1.3 文章图示
        • 图 1: 基本思想的图示
        • 图 2: 孪生网络的框架图
        • 表 1: CIFAR-10 数据集上的 kNN 准确率
        • 图 3: CIFAR-10 数据集上的训练效率
        • 图 4: CUB200 数据集上的检索结果
        • 图 5: CIFAR-10 数据集上的余弦相似度分布
        • 图 6: CIFAR-10 数据集上不同属性的余弦相似度分布

【文章列表】

文章参考 对比学习论文综述【论文精读】 🌹 🚀

是否完成年份文章及其链接简介其他
2018InstDisc提出实例判别和memory bank做对比学习
2019InvaSpread一个编码器的端到端对比学习
2018CPC对比预测编码,图像语音文本强化学习全都能做
2019CMC多视角下的对比学习
2019MoCov1无监督训练效果也很好
2020SimCLRv1简单的对比学习 (数据增强 + MLP head + 大batch训练久)
2020MoCov2MoCov1 + improvements from SimCLRv1
2020SimCLRv2大的自监督预训练模型很适合做半监督学习
2020BYOL不需要负样本的对比学习
2020SWaV聚类对比学习
2020SimSiam化繁为简的孪生表征学习
2021MoCov3如何更稳定的自监督训练ViT
2021DINOtransformer加自监督在视觉也很香

一、 Inst Disc

《Unsupervised Feature Learning via Non-Parametric Instance Discrimination》

文章主要研究了在无监督学习环境下,如何通过仅要求特征对单个实例具有区分性,来学习能够捕捉实例之间视觉相似性的好的特征表示。

主要贡献:

  • 提出 Instance Discrimination (个体判别) 代理任务
  • 使用代理任务和 NCE Loss 进行对比学习,从而取得了不错的无监督表征学习结果
  • 提出用 Memory Bank 这种数据结构来存储大量的负样本
  • 提出基于 Momentum (动量) 的模型参数更新方法 (Proximal Regularization:给模型的训练加了一个约束,后续的 MoCo 的想法与其一致)

1.1 文章摘要

摘要:

  • 研究了在没有类别标签的情况下,如何学习能够捕捉实例之间视觉相似性的特征表示
  • 提出了一种非参数分类问题的方法,使用噪声对比估计(Noise-contrastive Estimation, NCE)来解决大量实例类别带来的计算挑战。
  • 实验结果显示,该方法在ImageNet分类任务上达到了新的无监督学习状态,通过微调学习到的特征,还可以在半监督学习和目标检测任务上获得有竞争力的结果。
  • 该方法的非参数模型非常紧凑,每个图像128个特征,对于一百万图像只需要600MB的存储空间,实现了快速的最近邻检索

重点:

  1. 引言:介绍了深度神经网络在计算机视觉领域的突破,以及获取标注数据的困难,提出了无监督学习的新方法。
  2. 相关工作:讨论了无监督学习中的生成模型和自监督学习方法。
  3. 方法
    • 提出了一种新的无监督特征学习方法,即在实例级别进行判别学习。
    • 使用非参数softmax分类器,并引入了噪声对比估计(NCE)来近似全softmax分布。
    • 引入了近端正则化方法来稳定学习过程。
    • 使用加权k最近邻(k-Nearest Neighbor, kNN)分类器进行测试时的分类。
  4. 实验
    • 在CIFAR-10数据集上比较了非参数softmax和参数softmax。
    • 在ImageNet数据集上比较了该方法和其他无监督学习方法。
    • 展示了学习到的特征表示在半监督学习和目标检测任务上的泛化能力。
  5. 总结:提出了一种通过非参数softmax公式最大化实例之间差异的无监督特征学习方法,并在多个任务上验证了其有效性。

1.2 实验结果

实验结果

  • 在ImageNet 1K数据集上的top-1准确率达到46.5%,在Places 205数据集上达到41.6%。
  • 在半监督学习任务上,当只有1%的数据被标记时,该方法显著优于其他方法。
  • 在PASCAL VOC 2007数据集上的目标检测任务中,使用ResNet50架构时,该方法达到了65.4%的平均精度均值(mAP),超过了其他无监督学习方法。

文章中提到的噪声对比估计(Noise-Contrastive Estimation,
NCE)是一种用于处理大规模分类问题的技术,它可以用来近似传统的softmax函数。在无监督特征学习中,尤其是在需要区分大量实例类别的情况下,直接计算softmax是不可行的,因为类别数可能与训练样本的数量一样多。NCE通过将多类分类问题转化为多个二分类问题来降低计算复杂度。

噪声对比估计(NCE)的核心思想:

  1. 正样本和负样本:对于每个训练样本,将其自身作为正样本,再从噪声分布中采样出一些样本作为负样本。噪声分布通常是均匀的,意味着每个负样本被选中的概率是相同的。

  2. 二分类问题:对于每个正样本,NCE训练一个模型来区分正样本和负样本。模型学习的目标是提高对正样本的预测概率,同时降低对负样本的预测概率。

  3. 近似softmax:通过这种方式,NCE近似了softmax函数的梯度,使得在训练过程中,模型可以学习到区分不同实例的特征表示。

在本文中的应用:

  1. 非参数softmax:文章提出了一种非参数softmax分类器,它不使用传统的权重向量来代表每个类别,而是直接使用特征表示本身。

  2. 概率计算:对于给定的特征表示v和记忆库中的某个特征表示vi,NCE计算概率P(i|v),即特征表示v属于第i个实例的概率。

  3. 正则化:通过引入温度参数τ,NCE可以控制分布的集中程度,这对于学习有效的特征表示至关重要。

  4. 负采样:NCE通过采样负样本来近似计算softmax分母中的总和,从而避免了直接计算整个训练集的复杂度。

总之,噪声对比估计是一种强大的技术,它使得在大规模无监督学习问题中,能够有效地学习到区分性的特征表示。在这篇文章中,NCE被用来解决实例级别的分类问题,从而在没有类别标签的情况下学习到有用的特征。

1.3 文章图示

图一 超级学习结果的可视化

在这里插入图片描述

  • 目的:展示在有监督学习中,神经网络如何自动发现类别之间的视觉相似性。
  • 内容:图中显示了当输入一张属于"豹子"类别的图片时,神经网络分类器在softmax输出中对其他类别的响应。与"豹子"视觉相关的类别(如"美洲豹"和"猎豹")的响应更高,而非相关的类别(如"购物车"和"书柜")的响应则低得多。
  • 结论这表明即使没有显式指导,有监督学习算法也能从视觉数据本身学习到类别之间的相似性
图二 非参数softmax分类器的流程

在这里插入图片描述

  • 目的:描述了文章提出的无监督特征学习方法的流程。
  • 内容
    • 使用卷积神经网络(CNN)作为骨干网络,将每个图像编码为特征向量。
    • 特征向量被投影到128维空间,并进行L2归一化
    • 通过实例级别的判别学习,尝试在128维单位球面上最大化训练样本的特征分散
  • 结论展示了如何通过无监督学习训练一个深度神经网络来学习区分不同实例的特征表示

对于 ImageNet 数据集,一共有128万张图片,因此 Memory Bank 是一个 1280000*128 的数据矩阵

图三 近端正则化的效果

在这里插入图片描述

  • 目的:展示近端正则化对训练动态的影响。
  • 内容:图中显示了有无近端正则化的训练损失和测试精度的变化。
  • 结论:近端正则化有助于稳定训练过程,加快收敛速度,并改善学习到的表示。

λ 是近端正则化(Proximal
Regularization)技术中使用的一个超参数,它控制着正则化项的强度。近端正则化是一种优化策略,用于处理一些特定的优化问题,特别是在处理包含非光滑或非凸正则项的优化问题时。

图四 训练和测试目标的一致性

在这里插入图片描述

  • 目的:展示训练损失和测试精度之间的关系,以证明训练目标与测试目标的一致性。
  • 内容:图中显示了随着训练轮次的增加,测试精度持续提高,而训练损失持续降低。
  • 结论这表明无监督学习目标捕捉到了与数据的语义标注一致的视觉相似性,且没有过拟合的迹象。
图五 图像检索的结果

在这里插入图片描述

  • 目的:通过图像检索的结果来展示学习到的特征的有效性。

  • 内容

    • 左列是验证集中的查询图像
    • 右列显示了训练集中与查询图像最接近的10个实例。
    • 上半部分展示了最佳案例,检索到的图像与查询图像在相同类别中。
    • 下半部分展示了最差案例,检索到的图像与查询图像不在相同类别中,但仍然在视觉上相似。
  • 结论:即使在检索失败的案例中,检索到的图像在视觉上与查询图像相似,证明了无监督学习目标的强大能力。

  • 这些图共同支持了文章的主要观点,即通过无监督学习可以有效地学习到区分性特征,这些特征不仅能够在ImageNet等大规模图像分类任务上取得优异的性能,还可以泛化到半监督学习和目标检测等其他任务。

表 1: CIFAR10 数据集上的分类准确率

在这里插入图片描述

  • 目的:比较在CIFAR10数据集上,使用参数softmax和非参数softmax学习到的特征的分类性能。
  • 内容:Training / Testing:展示了训练时使用的模型和测试时使用的分类器类型。
  • Param Softmax:使用参数softmax函数训练得到的特征。
  • Non-Param Softmax:使用非参数softmax函数训练得到的特征。
  • NCE m = 1, 10, 512, 4096:使用不同数量的负样本(m)进行噪声对比估计(NCE)近似非参数softmax时的特征。
  • 准确率:展示了使用线性SVM和kNN(k最近邻)分类器在测试集上的top-1分类准确率。
  • 结论:非参数softmax在两种分类器上都优于参数softmax。随着负样本数量的增加,NCE近似的准确率逐渐提高。
表 2: ImageNet 数据集上的分类准确率

在这里插入图片描述

  • 目的:比较在ImageNet数据集上,作者提出的方法与其他无监督学习方法的性能。
  • 内容
    • method:列出了不同的方法,包括随机初始化、不同的自监督学习方法和对抗学习方法。
    • conv1, conv2, …, conv5:展示了在不同卷积层上使用线性SVM进行分类的准确率。
    • kNN:展示了在最后一层使用kNN分类器的准确率。
    • #dim:表示学习到的特征的维度。
  • 结论:作者提出的方法在不同的网络架构和层上都取得了最好的性能,尤其是在使用kNN分类器时。
表 3: Places 数据集上的分类准确率

在这里插入图片描述

  • 目的:展示在Places数据集上,直接使用在ImageNet上学习到的特征的分类性能。

  • 内容

    • method:列出了不同的方法。
    • conv1, conv2, …, conv5:展示了在不同卷积层上使用线性SVM进行分类的准确率。
    • kNN:展示了在最后一层使用kNN分类器的准确率。
  • 结论:即使不进行微调,作者提出的方法学习到的特征在Places数据集上也有很好的泛化能力。

  • 与上述在ImageNet数据集上类似

表 4: 不同嵌入特征大小的分类性能
  • 目的:研究嵌入特征大小对分类性能的影响。
  • 内容
    • embedding size:列出了不同的嵌入特征大小(32、64、128、256维)。
    • top-1 accuracy:展示了在ImageNet数据集上使用ResNet18作为骨干网络时的top-1分类准确率。
  • 结论:嵌入特征大小对性能有影响,但存在一个最佳尺寸,在增大到一定尺寸后,性能提升会饱和。

在这里插入图片描述

表 5: 不同训练集大小的分类性能
  • 目的:研究训练集大小对分类性能的影响。
  • 内容
    • training set size:列出了使用不同比例ImageNet数据进行训练的设置。
    • accuracy:展示了使用ResNet-18进行训练时的分类准确率。
  • 结论:更大的训练集可以提高分类性能,说明作者提出的方法可以从更多的无标签数据中受益。
表 6: PASCAL VOC 2007 数据集上的目标检测性能

在这里插入图片描述

  • 目的:评估在PASCAL VOC 2007数据集上,使用在ImageNet上预训练的特征进行目标检测的性能。
  • 内容
    • Method:列出了不同的预训练方法。
    • mAP:展示了不同方法在目标检测任务上的平均精度均值(mean Average Precision)。
  • 结论:作者提出的方法在目标检测任务上取得了很好的性能,与有监督预训练方法相比也具有竞争力。

二、Inva Spread

《Unsupervised Embedding Learning via Invariant and Spreading Instance Feature》, 文章主要研究了无监督嵌入学习问题,即在没有类别标签的情况下,如何学习能够在低维嵌入空间中有效度量样本之间相似性的特征。

特点:不需要借助额外的数据结构去存储大量的负样本,正负样本来自同一个 minibatch (可以理解为 SimCLR 的前身)

  • 代理任务:Instance Discrimination (个体判别)

  • 从同一个 minibatch 中选择正负样本,是为了可以用一个编码器做 end-to-end 训练,但同时为了保证模型性能,batch size必须设置得足够大

  • 结果不够好的原因在于:负样本的数量不够多,所维护的由负样本组成的字典不够大

在MOCo中,代理判别任务的具体做法是:

  1. 定义正负样本对于没有标签的数据集中的每一张图片,通过随机剪裁和数据增广得到两张正样本(因为它们来自同一张图片,语义信息相同),而数据集中的其他图片则被视为负样本
  2. 训练过程:将正样本和负样本输入编码器,得到特征输出。对比学习的目标是让正样本和锚点(anchor)的特征尽可能接近,而负样本与锚点的特征尽可能远离。
  3. 动态字典构建MOCo使用队列(queue)和移动平均编码器(moving-averaged encoder)来构建动态字典。队列用于存储大量的负样本,而移动平均编码器则确保字典中的特征在训练过程中保持一致性

1.1 文章摘要

摘要:

  • 无监督嵌入学习要求在低维嵌入空间中对样本之间的相似性进行有效度量。
  • 受到有监督学习中观察到的正样本集中和负样本分离的启发,提出了一种利用实例级监督来近似这些属性的方法,旨在学习数据增强不变和实例扩散的特征。
  • 提出了一种基于实例特征的新型softmax嵌入方法,该方法直接在softmax函数之上优化“真实”实例特征。
  • 该方法在学习和分类速度上大大超过了现有方法,并且在有见过和未见过的测试类别上都表现良好。

重点:

  1. 引言:介绍了深度嵌入学习的重要性以及无监督学习方法面临的挑战。
  2. 相关工作:讨论了无监督特征学习、深度嵌入学习以及无监督嵌入学习的相关研究。
  3. 提出的方法
    • 提出了一种基于实例特征的softmax嵌入方法,通过直接优化实例特征来实现数据增强不变性和实例扩散性。
    • 使用孪生网络训练策略,将多类分类问题转换为二类分类问题,并使用最大似然估计进行优化。
    • 通过实验验证了所提方法在图像分类和嵌入学习任务上的有效性。

1.2 实验结果

  1. 实验结果
    • 在CIFAR-10和STL-10数据集上进行了实验,证明了所提方法在有监督和无监督学习任务中的有效性。
    • 在未见过的测试类别上进行了实验,展示了模型在新类别上的泛化能力。
  2. 结论:提出了一种通过学习数据增强不变和实例扩散特征来解决无监督嵌入学习问题的方法,并通过实验验证了其有效性。

实验结果

  • 在CIFAR-10数据集上,所提方法达到了83.6%的kNN准确率,超过了其他无监督学习方法。
  • 在STL-10数据集上,使用线性分类器和kNN分类器都取得了最佳性能。
  • 在CUB200、Product和Car196数据集上,所提方法在未见过的测试类别上展现了良好的检索性能和聚类质量。

致谢:文章最后感谢了香港研究资助局(RGC/HKBU12200518)和美国空军研究实验室(AFRL)及国防高级研究计划局(DARPA)的支持。

1.3 文章图示

图 1: 基本思想的图示

在这里插入图片描述

  • 目的:说明文章提出方法的基本思想。
  • 内容
    • 展示了一个卷积神经网络(CNN)模型,输入图像并输出特征。
    • 强调了同一实例在不同数据增强下输出特征的不变性,以及不同图像实例特征之间的分离。
  • 结论:该图展示了如何通过数据增强来学习无监督的嵌入特征。
图 2: 孪生网络的框架图

在这里插入图片描述

  • 目的:展示使用孪生网络的无监督学习方法的框架。
  • 内容
    • 输入图像被送入CNN的两个分支。
    • 一个分支对原始图像进行处理,另一个分支对其数据增强版本进行处理
    • 通过这种方式学习到的特征应该满足:同一图像的不同增强版本特征应该接近,而不同图像实例的特征应该分散。
  • 结论:该图展示了如何通过孪生网络结构来实现文章提出的方法。

孪生网络: 将两个输入样本同时输入到两个完全相同的神经网络中,这两个网络分别提取输入样本的特征,并得到各自的表示向量。
相似度计算:使用一种度量方法(如欧氏距离、余弦相似度等)计算这两个表示向量之间的相似度得分。
分类或回归:根据相似度得分进行分类或回归等操作。例如,在人脸识别任务中,如果两个输入样本的相似度得分较高,则可能将它们视为同一人;在目标跟踪任务中,可以根据相似度得分来确定跟踪目标的位置。

表 1: CIFAR-10 数据集上的 kNN 准确率

在这里插入图片描述

  • 目的:比较不同方法在 CIFAR-10 数据集上的性能。
  • 内容
    • 列出了随机初始化的CNN、DeepCluster、Exemplar CNN、NPSoftmax、NCE 和 Triplet 损失等方法。
    • 展示了每种方法使用 kNN 分类器的准确率。
  • 结论:提出的方法在 CIFAR-10 数据集上达到了最高的 kNN 准确率,表明其学习到的特征具有更好的区分性。
图 3: CIFAR-10 数据集上的训练效率

在这里插入图片描述

  • 目的:评估不同方法的学习速度。
  • 内容
    • 展示了不同方法在每个训练周期的 kNN 准确率。
  • 结论:提出的方法只需要很少的训练周期就能达到较高的准确率,表明其具有更快的学习速度。

训练周期和准确率的关系

图 4: CUB200 数据集上的检索结果

在这里插入图片描述

  • 目的:展示在不同训练周期的检索结果。
  • 内容
    • 展示了一些查询图像以及检索到的正例和反例。
  • 结论:随着训练的进行,检索结果的质量逐渐提高,表明学习到的特征越来越好。
图 5: CIFAR-10 数据集上的余弦相似度分布
  • 目的:展示学习到的特征的区分性。
  • 内容
    • 展示了不同方法学习到的特征向量的余弦相似度分布。
  • 结论:提出的方法能够更好地区分正例和反例,表明其学习到的特征具有更好的区分性。
    在这里插入图片描述
图 6: CIFAR-10 数据集上不同属性的余弦相似度分布
  • 目的:展示学习到的特征对不同属性的区分性。
  • 内容
    • 展示了基于不同属性(而不仅仅是语义标签)的余弦相似度分布。
  • 结论:提出的方法不仅能够区分不同的语义类别,还能够区分其他属性,表明了其特征的泛化能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2139626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

临工30装载机多路阀

如图,因为螺丝太紧实,只好使用冲击螺丝刀卸下来了。 如图,防尘圈型号为FA 28 40 5/9 如图所示 28杆

【双方演化博弈】研究理论学习

1. 演化基础 1.1.演化博弈常用软件 载学习软件: Matlab、Vensim PLE、 Visio 其中,Matlab和Vensim PLE主要是用做演化博弈仿真,Matlab是演化博弈最常用的仿真软件,VensimPLE是系统动力学(SD)仿真软件也是常用仿真软件之一。 Python、Netlogo等软件也可以用来做演…

Vue 也能这样玩?Vuetify 打造超强大的UI体验

Vue 也能这样玩?Vuetify 打造超强大的UI体验! 在前端开发的世界里,选择一个合适的 UI 组件库就像选择一把趁手的兵器。Vuetify 作为一款基于 Vue 的 Material Design 组件库,凭借其强大的功能和活跃的社区,已经成为了无…

深度学习-神经网络构造

文章目录 一、正则化惩罚1.L1正则化2.L2正则化 二、梯度下降(Gradient Descent)1.基本原理2.注意事项 三、BP神经网络1.基本原理2.网络结构3.特点 四、总结 一、正则化惩罚 正则化惩罚(Regularization Penalty)是机器学习中常用的…

CTF——简单的《MICS》

文章目录 一、MICS1、MISC-LSB2、MISC-循环解压3、MISC-一个不同的压缩包4、MISC-异性相吸5、MISC-仔细找找6、MISC-再来一题隐写7、MISC-找找吧8、MISC-这是一张单纯的图片9、MISC-真假flag10、MISC-真正的黑客才可以看到本质11、MISC-追象者12、MICS-鸡蛋别放在一起 一、MICS…

【GO开发】MacOS上搭建GO的基础环境-Hello World

文章目录 一、引言二、安装Go语言三、配置环境变量(可跳过)四、Hello World五、总结 一、引言 Go语言(Golang)因其简洁、高效、并发性强等特点,受到了越来越多开发者的喜爱。本文将带你一步步在Mac操作系统上搭建Go语…

spring mvc详细讲解(前后端分离模式)

在前后端分离模式下,Spring MVC 的作用主要集中在处理后端的业务逻辑和 API 接口,而不再直接管理视图部分。也就是说,Spring MVC 的重点是如何处理客户端的请求并返回数据(通常以 JSON 或 XML 格式),而视图…

python 自动化测试接口

比如我们要测试接口:identity/chatRecords/pages 已在Postman中有,那我们就可以直接从里面复制出Python脚本 新建: pagerequest.py import requests import jsonurl "http://192.168.31.132:70/identity/chatRecords/pages"payl…

集成网口连接器国产化替代--RJ45内置网络变压器网口生产工厂在行动

Hqst盈盛(华强盛)电子导读:集成网口连接器的国产化替代,是很多在寻找成本优化和被要求使用国产化元器件的企业普遍寻找的途径,今天就给大家介绍几款国产化的集成万兆网络变压器的RJ45网口 下面我们一起来看看网通设备有…

JavaWeb——Vue(3/3):Vue生命周期(Vue生命周期-介绍、状态图、实例演示)

目录 Vue生命周期-介绍 状态图 实例演示 Vue生命周期-介绍 生命周期:指一个对象从创建到销毁的整个过程。生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子)。 状态阶段周期beforeCreate创建前created创建后…

光伏板热斑缺陷检测数据集

项目背景: 光伏板是太阳能发电系统的核心组件之一,其性能直接影响到发电效率。光伏板上的热斑(Hot Spot)和热点(Hot Point)等问题会导致局部过热,进而影响光伏板的寿命和发电效率。及时发现并解…

OpenAI o1:AI推理的未来,如何平衡性能与成本?

OpenAI o1:AI推理的未来,如何平衡性能与成本? 🚀人工智能的未来,已经悄然走向一个新的拐点!9月14日,OpenAI正式推出了两款新型模型——o1-preview与o1-mini。虽然这并非是GPT-4的简单升级版&am…

supermap iclient3d for cesium场景加载雨雪效果,并加载相应材质

首先新建一个文件夹来存放材质,我选择src/assets/MaterialJson snow.json,复制粘贴,雨雪用一个就行了 {"material": {"id": "DA82AFCB-129A-4E66-995A-9F519894F58D","cullMode": "none","alphaMode"…

告别繁琐粘贴,CleanClip Mac 版,让复制粘贴变得简单快捷!粘贴队列功能太强大了!

告别繁琐粘贴,CleanClip Mac 版,让复制粘贴变得简单快捷! CleanClip for Mac 📋 是一款专为Mac用户设计的高效剪贴板管理工具。它解决了传统复制粘贴过程中的繁琐问题,让你的工作流程更加顺畅和高效。 🔄…

数据结构基础详解:哈希表【理论计算篇】开放地址法_线性探测法_拉链法详解

文章目录 哈希表(散列表)1. 哈希表(散列表)的基本概念2. 常见的散列函数2.1 除留余数法2.2 直接定址法2.3 数字分析法2.4 平方取中法 3. 处理冲突的方法3.1 拉链法3.2 开放定址法3.2.1开放地址法的定义3.2.2 开放地址法的三种方法 3.3 再散列法(再哈希法…

NC 矩阵最长递增路径

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 给定一个 n 行…

网络安全学习(一)初识kali

kali是一个操作系统,和我们平时用的windows系统类似,只是kali是一个集合了很多工具的专用操作系统。 其官网是https://www.kali.org 点击download,选择安装到虚拟机 因为要安装在虚拟机上,所以我们先要安装VM。 使用下载好的kali虚拟机文件(下载后大约3.1G,解压后大约G,…

WGCAT工单系统 v1.2.1 支持导出PDF和分享创建工单功能

官网下载:www.wgstart.com WGCAT-v1.2.1 更新说明,2024-09-15发布 1. 新增,工单数据支持导出为PDF文件 2. 新增,可以分享给其他人创建工单,分享创建工单的链接不需要登录,直接可以提交工单数据,…

SVN笔记-SVN安装

SVN笔记-SVN安装 1、在windows下安装 SVN 1、准备svn的安装文件 下载地址:https://sourceforge.net/projects/win32svn/ 2、下载完成后,在相应的盘符中会有一个Setup-Subversion-1.8.17.msi的文件,目前最新的版本是1.8.17, 这里…

集成测试例题

答案:C 知识点:集成测试主要测的是模块间的接口,包括自顶向下-桩模块,自底向上-驱动模块,三明治-上下并行 自底向下,首先从底层模块开始测试,然后向上一级模块测试 比如说有B,C两…