【博士每天一篇文献-综述】A survey on few-shot class-incremental learning

阅读时间:2023-12-19

1 介绍

年份:2024
作者:田松松,中国科学院半导体研究所;李璐思,老道明大学助理教授;李伟军,中国科学院半导体研究所AnnLab;
期刊: Neural Networks
引用量:30
Tian S, Li L, Li W, et al. A survey on few-shot class-incremental learning[J]. Neural Networks, 2024, 169: 307-324.
image.png
image.png
image.png
是关于少量样本增量学习(Few-shot Class-Incremental Learning, FSCIL)的综述。FSCIL面临的主要挑战包括灾难性遗忘(Catastrophic Forgetting)和过拟合(Overfitting),这些问题严重影响了模型性能。研究FSCIL有助于克服深度学习模型在数据量和获取时间上的限制,提高机器学习模型的实用性和适应性。从理论角度,将FSCIL领域分为五个子类别,包括传统机器学习方法、基于元学习的方法、基于特征和特征空间的方法、重放方法和动态网络结构方法。定义了FSCIL问题,并讨论了与之相关的学习问题,如少量学习、零样本学习、元学习和增量学习。

2 创新点

  1. 综合性研究视角:与以往研究不同,本文综合了少样本学习(Few-shot Learning, FSL)和增量学习(Incremental Learning, IL),专注于介绍和分析少样本增量学习(Few-shot Class-Incremental Learning, FSCIL)。
  2. 新颖的分类方法:提出了一种新的分类方法,将FSCIL领域分为五个子类别,包括传统机器学习方法、基于元学习的方法、基于特征和特征空间的方法、重放方法,以及动态网络结构方法。
  3. 广泛的文献回顾:回顾了30多项理论研究成果和20多项应用研究成果,提供了FSCIL领域的全面概述。
  4. 性能评估:对FSCIL的最新理论研究成果在基准数据集上进行了性能评估,提供了不同方法的优势和局限性的见解。

3 相关研究

3.1 小样本学习(few-shot learning)

  1. 数据增强方法 (Data augmentation methods)
    • 数据增强通过增加现有数据的多样性来缓解数据稀缺问题,而不是收集新数据。
    • 代表性算法:包括基于训练集样本的变换、来自弱标注或未标注数据集的样本变换,以及来自类似数据集的样本变换。还可以训练模型生成新样本或特征,例如使用变分自编码器(VAEs)或生成对抗网络(GANs)。
  2. 基于度量的方法 (Metric-based methods)
    • 基于度量的方法通过计算支持集和查询集样本之间的相似性或距离来在嵌入空间中分类对象。
    • 代表性算法:包括孪生网络(Siamese Network)、匹配网络(Matching Network)和原型网络(Prototypical Network)。这些方法不需要大量数据,而是优化度量以确保相似样本的接近性,不同类别样本的距离。

image.png

  • 孪生网络 (Siamese Networks):孪生网络由两个相同的子网络组成,它们共享相同的参数和权重。每个子网络接收一个输入样本,并提取相应的特征。该架构主要用于计算两个输入样本特征之间的距离或相似度。通过比较特征,孪生网络能够判断样本是否属于同一类别或执行其他相似性度量任务。
  • 匹配网络 (Matching Networks):匹配网络使用注意力机制来动态匹配支持集(support set)和查询集(query set)中的例子。支持集是已知类别的样本集合,查询集是待分类的新样本。通过注意力加权,匹配网络能够聚合来自支持集的信息,为查询样本生成与类别相关的特征表示。这种方法允许模型在分类新样本时,更加关注与样本最相关的已知类别信息。
  • 原型网络 (Prototypical Networks):原型网络通过计算每个类别样本特征的平均值来代表该类别的原型。在嵌入空间中,每个类别由其样本特征的中心点(即原型)表示。该方法假设在嵌入空间中距离原型近的特征更有可能属于同一类别。原型网络利用了类别内部的统计分布,通过计算新样本与各个原型之间的距离来进行分类。
  1. 基于模型的方法 (Model-based methods)
    • 基于模型的方法指设计或使用特定的网络架构来解决少样本学习的挑战。
    • 代表性算法:如记忆增强神经网络(Memory-Augmented Neural Networks, MANN)使用外部记忆空间显式存储类别信息;元网络(Meta Networks)跨任务学习元级知识,并通过快速参数化调整以实现快速泛化。
  2. 基于优化的方法 (Optimization-based methods)
    • 基于优化的方法关注于调整模型的训练策略,以适应有限标注数据的情况。
    • 代表性算法:如模型无关的元学习(Model-Agnostic Meta-Learning, MAML)快速从有限的新数据中学习知识;基于MAML的Reptile简化计算复杂性,将梯度计算从两步减少到一步,提高计算速度。

3.2 小样本类增量学习

image.png
image.png

3.2.1 传统机器学习方法

  1. 监督学习策略 (Supervised learning strategies)
    • 在FSCIL中,模型通过增量过程进行微调,其容量受到新类别样本数据量的限制。为了缓解这一限制,一些研究引入了半监督或无监督数据,以增强学习方法。
    • 代表算法论文:Cui, Xiong, Tavakolian, 和 Liu (2021) 提出了一种在每个增量会话中引入50个未标记数据的半监督学习方法。
  2. 统计分布 (Statistical distribution)
    • 从统计分布的角度来看,解决FSCIL问题涉及对现有数据集的模型拟合和对类别数据分布的预测,这具有很好的模型可解释性。
    • 代表算法论文:Achituve, Navon, Yemini, Chechik, 和 Fetaya (2021) 提出了GP-Tree,这是一个基于树的分层模型,使用Polya-Gamma数据增强来适配高斯过程;Liu, Yang, 等人 (2022) 提出了可学习的分布校准(LDC)方法,该方法使用参数化校准单元(PCU)来初始化每个类别的特征分布。
  3. 函数优化 (Function optimization)
    • 现有方法专注于在新任务学习中克服灾难性遗忘,而Shi, Chen, Zhang, Zhan, 和 Wu (2021) 从函数优化的角度分析了这一问题,并发现在基类上训练期间获得的平坦局部最小值比尖锐最小值具有更好的泛化能力。
    • 代表算法论文:Shi, Chen, Zhang, Zhan, 和 Wu (2021) 提出了在新任务上微调模型参数以减少灾难性遗忘的方法,通过寻找基训练目标函数的平坦局部最小值。

3.2.2 基于元学习的方法

基于元学习的FSCIL方法利用现有知识来解决当前的学习问题,并通过持续的知识积累来提高系统的稳定性和可靠性。原型学习方法通过优化原型的表示来增强模型对新类别的泛化能力,而元过程方法则通过将学习任务转化为元学习目标来提高模型对新知识的适应性。

  1. 原型学习 (Prototype learning)
    • 原型学习的目标是识别一组能够准确代表给定数据集的小样本(原型),然后使用数据点与原型之间的相似性来分类新的数据点或完成其他视觉任务。
    • 代表算法论文:Zheng 和 Zhang (2021) 提出了一种正则化类结构的方法,以调节FSCIL中学习到的类别在嵌入空间中的分布;Zhu, Cao, Zhai, Cheng, 和 Zha (2021) 提出了一种增量原型学习方案,包括随机情节选择和动态关系投影。
  2. 元过程 (Meta process)
    • 元过程受多任务优化方法MAXL启发,将适应新知识和保留旧知识直接转化为一个元目标,模仿元测试过程中的场景,通过从基础类别中采样一系列增量任务。
    • 代表算法论文:Chi 等人 (2022) 提出了MetaFSCIL,它将适应新知识和保留旧知识直接转化为一个元目标;Zou 等人 (2022) 发现使用大边界分类可以提高基础类别的性能,但在学习新类别时会导致性能下降,他们提出了基于边界的CLOM框架来有效解决这个问题。

3.2.3 基于特征和特征空间的方法

基于特征和特征空间的方法通过学习更健壮和高效的特征表示来提高模型对新类别的适应性。

  1. 特征解耦 (Feature decoupling)
    • 特征解耦涉及将特征划分为不同的表示,使模型能够集中注意力在更相关的信息上。特征的解耦可以导致低频成分在保留旧知识方面发挥更重要的作用。
    • 代表算法论文:Zhao 等人 (2021) 使用离散余弦变换来解耦特征,并提出了频率感知正则化方法来增强特征空间之间的学习性能。
  2. 特征空间 (Feature space)
    • 特征空间通过将原始数据映射到低维空间同时保留其有用特征来提高算法的效率。在FSCIL中,新类别数据被投影到由基础或旧类别特征组成的特征子空间中,使模型能够更好地适应新类别。
    • 代表算法论文:Cheraghian, Rahman, Ramasinghe 等人 (2021) 提出了一种混合子空间方法来描述数据的视觉和语义域分布,有助于避免遗忘旧类别;Kim, Han, Seo, 和 Moon (2023) 提出了WaRP方法,它结合了寻找损失函数平坦最小值的F2M方法和参数微调的FSLL方法。
  3. 前瞻性学习 (Prospective learning)
    • 前瞻性学习指的是在FSCIL中,模型在基础数据集上训练时就具有向前兼容性能,从而使模型能够更好地处理增量的少量新类别。
    • 代表算法论文:Zhou, Wang, 等人 (2022) 提出了前向兼容训练(FACT),它在特征空间中分配多个虚拟原型作为保留空间,使模型可扩展;Zhou, Ye, 等人 (2022) 提出了LIMIT方法,它通过从基础数据集创建假的FSCIL任务,并通过不同假任务的元学习获得通用特征,为模型准备好面对真实的FSCIL任务。

3.2.4 基于回放的方法

直接重放和生成式重放方法都旨在解决FSCIL中的灾难性遗忘问题,它们通过不同方式重用旧知识来帮助模型学习新任务,同时保持对旧任务的记忆。直接重放依赖于存储旧任务的样本,而生成式重放则依赖于生成模型来模拟旧数据的分布。

  1. 直接重放 (Direct replay)
    • 直接重放方法涉及将之前任务中学习到的信息通过存储旧任务的样本来进行重放,以便在面对新任务时帮助任务求解器。
    • 代表算法论文:Kukleva, Kuehne, 和 Schiele (2021) 提出了一个三阶段框架,使用模型参数约束方法来防止旧知识遗忘,并在第三阶段使用存储的样本进行重放和校准。
  2. 生成式重放 (Generative replay)
    • 生成式重放方法使用生成模型来记忆旧任务数据的分布,并生成样本进行重放,以此来解决直接存储旧数据可能引起的隐私问题。
    • 代表算法论文:Liu, Gu, 等人 (2022) 提出了一种无需数据的重放方案,通过熵正则化鼓励生成器产生接近决策边界的不确定样本;Agarwal, Banerjee, Cuzzolin, 和 Chaudhuri (2022) 提出了一种增量少样本学习生成对抗网络(FSILGAN),用于解决用少量数据近似真实数据分布的问题。

3.2.5 基于动态网络结构的方法

基于动态网络结构的方法通过在运行时根据输入数据特征自动调整网络结构,提高了FSCIL的通用性和减少了过拟合风险。

  1. 神经气体网络 (Neural gas network)
    • 神经气体网络是一种无监督的网络结构,能够学习特征空间的拓扑结构,用于知识表示。在FSCIL中,神经气体网络通过保持其拓扑结构的稳定性来防止遗忘旧类别,并通过动态增长来适应新样本,从而改善对新类别的表示。
    • 代表算法论文:Tao 等人 (2020) 提出了TOPIC框架,使用神经气体网络学习不同类别形成的特征空间的拓扑结构。
  2. 图注意力网络 (Graph attention network)
    • 图注意力网络能够动态处理不同类型的图数据,并根据图中节点和边的重要性做出动态决策。在FSCIL中,图注意力网络用于分类器层,以适应增量任务的变化,并且随着新任务的到来,图中的节点和权重会动态增加。
    • 代表算法论文:Zhang 等人 (2021) 提出了Continually Evolved Classifier (CEC),首先使用基础数据训练网络的背部以获得强大的特征提取能力,然后引入图注意力模型。
  3. 动态神经网络 (Dynamic neural networks)
    • 动态神经网络通过选择性地扩展网络节点来增强特征表示能力,并从模型正则化的角度减少特征漂移。这些网络在增量任务中自适应地扩展,通过压缩网络扩展来丰富特征表示,并动态调整特征空间以适应旧类别的分布。
    • 代表算法论文:Yang 等人 (2021) 提出了可学习的扩展和压缩网络 (LEC-Net),通过选择性地扩展和压缩网络节点来增强特征表示并减少特征漂移;Yang 等人 (2022) 提出了动态支持网络 (DSN),它可以自适应地扩展网络,通过压缩网络扩展来丰富每个增量任务的特征表示,然后通过节点自激活动态压缩和扩展网络,追求紧凑的特征表示,从而缓解过拟合。

image.png
图5展示了在FSCIL(少样本增量学习)中,网络结构如何根据训练数据的动态变化进行调整。通过不同的方式调整网络结构来适应新数据,同时保留对旧数据的记忆。

  • TOPIC方法
    • 展示了TOPIC(Tao et al., 2020)方法,其中样本特征形成了神经图的拓扑结构。当新节点(代表新类别或新样本)被添加到网络中时,TOPIC使用损失约束来更新拓扑结构。这种方法通过维持神经气体(Neural Gas)网络的拓扑稳定性来防止遗忘旧类别,并通过动态增长来适应新样本,从而改善对新类别的表示。
  • CEC方法
    • 展示了CEC(Continually Evolved Classifier,Zhang et al., 2021)方法,该方法将图模型应用于分类器。CEC首先使用基础数据训练网络的背部,以赋予网络强大的特征提取能力。随着新任务的出现和类别数量的增加,分类器的拓扑结构会持续演化,图注意力网络在分类器层中被用来适应增量任务的变化。
  • DSN方法
    • 展示了DSN(Dynamic Support Network,Yang et al., 2022)方法,在训练新类别时,DSN暂时扩展网络节点以学习新类别的特征。学习完成后,DSN通过节点自激活动态压缩和扩展网络,以去除冗余节点,从而提供一种紧凑的特征表示。这种方法通过选择性地扩展和压缩网络节点,增强了增量类别的特征表示能力,并从模型正则化的角度减少了特征漂移。

4 实验分析

(1)准确率
image.png
在CUB-200数据集的增量学习过程中,各种FSCIL方法在每个会话(session)的准确率表现。
image.png
图7展示了CIFAR-100数据集上不同FSCIL(少样本增量学习)方法在帧率(Frames Per Second, FPS)与准确率之间的性能比较**帧率(FPS)**是指模型在一秒钟内能够处理的图像帧数,是衡量模型推理速度的一个重要指标。越靠近图中的右上角,这意味着它在保持高准确率的同时,也具有较高的推理速度。

(1)计算机视觉领域的应用
少样本增量学习在计算机视觉领域的三个主要应用:图像分类、目标检测和图像分割。FSCIL技术在计算机视觉中的广泛适用性,无论是在图像分类、目标检测还是图像分割任务中,都能够有效地处理新类别的增量学习问题,同时减少对旧知识的遗忘。

  1. 图像分类中的应用 (Applications in image classification)
    • FSCIL技术被应用于图像分类,以处理分类任务中新类别的增量学习问题。
    • 例如,Bai等人 (2020) 提出了一种基于线性规划的增量学习分类器,用于高光谱图像分类,以适应新类别的出现。
    • Xiang等人 (2019) 利用元学习的思想,通过属性原型生成模块和属性关系模块,为视频监控中的行人属性识别任务生成新的分类权重。
  2. 目标检测中的应用 (Applications in object detection)
    • 目标检测领域中,FSCIL技术使计算机系统能够通过少量样本学习检测新的物体类别。
    • Kang等人 (2019) 提出了一个新颖的少样本检测模型,但该模型无法在开放环境中增量学习新目标。
    • Perez-Rua等人 (2020) 提出了ONCE模型,基于CenterNet方法,通过元学习算法为每个新类别训练一个类特定代码生成器,用于增量少样本目标检测问题。
  3. 图像分割中的应用 (Applications in image segmentation)
    • 图像分割任务要求对图像中的每个像素进行分类,比图像分类更具挑战性。
    • Cermelli等人 (2021) 提出了PIFS方法,结合原型学习和知识蒸馏,用于增量少样本语义分割。
    • Ganea等人 (2021) 提出了iMTFA方法,用于增量少样本实例分割,通过重用在基础类别上预训练的Mask R-CNN网络,并使用余弦相似性分类器来表示每个类别。

(2)FSCIL技术在不同领域的应用

  1. 计算机视觉中的少样本增量学习 (Few-shot incremental learning in computer vision)
    • FSCIL技术起源于计算机视觉领域,已经广泛应用于图像分类、目标检测和图像分割等任务。
    • 例如,在高光谱成像的分类问题上,提出了基于线性规划的增量学习分类器来应对新类别的识别需求。
  2. 目标检测中的应用 (Applications in object detection)
    • 目标检测是计算机视觉中的一个重要任务,FSCIL技术在此领域的应用允许计算机系统通过少量样本学习检测新对象。
    • 例如,Kang等人 (2019) 提出了一种新颖的少样本检测模型,但由于模型缺乏从数据流中增量学习新目标的能力,限制了其在开放环境和边缘设备中的实际部署。
    • 后续研究如Perez-Rua等人 (2020) 提出的ONCE模型,基于CenterNet方法,通过元学习算法为每个新类别训练一个类特定代码生成器,以注册新类别。
  3. 图像分割中的应用 (Applications in image segmentation)
    • 图像分割任务比图像分类和目标检测更具挑战性,因为它需要对每个像素进行分类。
    • 实例分割作为图像分割的一个子任务,比语义分割更困难,因为它需要区分不同实例之间的边界。
    • 例如,Cermelli等人 (2021) 提出了PIFS方法,结合原型学习和知识蒸馏来解决增量少样本语义分割问题;Ganea等人 (2021) 提出了iMTFA方法,用于解决增量少样本实例分割问题。

5 思考

(1)算法的优缺点总结

  1. 传统机器学习方法
    • 优点:通过精心设计的监督学习策略和引入额外数据,可以有效提升模型性能;增强了模型的可解释性。
    • 缺点:统计分布建模过程复杂,可能难以处理。
  2. 基于元学习的方法
    • 优点:提高了模型的灵活性和适应性,能够快速适应新任务。
    • 缺点:对元训练集高度依赖,假设所有任务来自相同或相似的数据分布,可能在增量任务的数据分布与基础类别不同时影响模型性能。
  3. 基于特征和特征空间的方法
    • 优点:学习更健壮和高效的特征表示,特别是前瞻性学习方法在处理未见样本方面具有天然优势。
    • 缺点:文中未明确指出,但通常这类方法可能需要精心设计的特征提取机制,且可能在高维数据上面临维度灾难。
  4. 基于重放的方法
    • 优点:直接解决灾难性遗忘问题,通过重放旧任务样本来帮助模型学习新任务。
    • 缺点:直接重放受限于存储空间、样本选择和隐私问题;生成式重放虽提供更灵活的方法,但存在训练复杂性和生成数据质量不佳的问题。
  5. 基于动态网络结构的方法
    • 优点:适应不断变化的数据流,通过调整模型结构或类间关系来学习新知识,同时保留旧知识,适合于处理增量学习和少样本学习问题。
    • 缺点:文中未明确指出,但这类方法可能在网络结构调整和优化上较为复杂,需要平衡模型的稳定性和可扩展性。

(2)稳定性与可塑性的关系
稳定性指的是模型保持已学习知识的能力,抵抗新输入引起的变化。高稳定性的模型在旧数据上表现良好,但在接受新数据时可能表现不佳。可塑性指的是模型适应新输入或新任务的能力。随着可塑性的增加,模型在新数据上的泛化能力得到提升,但同时可能会逐渐遗忘旧数据。稳定性和可塑性通常不可兼得,模型需要在这两者之间找到平衡点。
image.png
(3)少样本学习、单样本学习、零样本学习、元学习 、迁移学习、增量学习的概念

  1. 少样本学习 (Few-shot Learning, FSL):
    • 少样本学习的目标是使机器学习模型能够在只学习了大量数据的少数类别之后,通过少量样本快速学习新类别。这受到人类快速学习能力的启发。
  2. 单样本学习 (One-shot Learning):
    • 单样本学习是少样本学习的一个特例,其中每个新类别只有一个或非常少的标记样本。这种情况下,先前学习的类别可以帮助预测新类别。
  3. 零样本学习 (Zero-shot Learning, ZSL):
    • 零样本学习是一种情况,其中学习任务的数据集中没有包含新类别的标记样本。模型通过使用类别的语义属性信息来识别新样本的类别。
  4. 元学习 (Meta Learning):
    • 元学习,或称为“学会学习”,是一个过程,它涉及从多个学习经历中提取经验,并使用这些经验来提升未来的学习表现。元学习特别适用于少样本学习,因为它允许模型从少量样本中快速学习新任务。
  5. 迁移学习 (Transfer Learning):
    • 迁移学习关注于跨不同领域或任务的知识转移,使知识能够从数据丰富的领域/任务迁移到数据稀缺的新领域/任务。
  6. 增量学习 (Incremental Learning, IL):
    • 增量学习,也称为持续学习或终身学习,是机器学习的一个领域,它关注于如何使模型在连续处理来自现实世界的信息流的同时,保留、整合和优化旧知识。
  7. FSCIL的变体 (Variants of few-shot class incremental learning):
    • 广义少样本增量学习(Generalized Few-shot Incremental Learning, GFSIL):涉及一个预训练模型,该模型使用有限的实例来学习新类别。目标是维持对旧类别和新类别的分类性能。GFSIL通常只有一个增量阶段,不涉及多个增量学习阶段,且数据分布可能更均匀。并且其数据分割格式与FSCIL不同,例如,CIFAR-100可能被随机分为40、10和50个类别,分别作为元训练、元验证和元测试集。
    • 增量少样本学习(Incremental Few-shot Learning, FSIL):关注于在增量学习过程中处理少量样本的情况。与GFSIL不同,FSIL的基础和增量阶段类别数量可能相同,这与FSCIL中丰富的基础数据设置不同。在FSIL的实验设置中,模型需要在只有少量样本的情况下学习新类别,同时保持对基础类别的记忆。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新型发电系统——光伏行业推动能源转型

一、发展背景 “十四五”期间,随着“双碳”目标提出及逐步落实,本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划,国家发改委能源研究所可再生能源发展中心副主任陶冶表示,“双碳”目标意味着国家…

【linux】网络基础(3)——tcp协议

文章目录 TCP协议概括TCP头部格式TCP连接管理建立连接(三次握手)数据传输确认应答机制捎带应答 滑动窗口丢包问题 拥塞控制延时应达 终止连接(四次挥手) TCP协议概括 TCP是一个面向连接的协议,在传输数据之前需要建立连…

04.C1W3.Vector Space Models

目录 Vector Space ModelsWord by Word and Word by DocWord by Document DesignWord by Document DesignVector Space Euclidean DistanceEuclidean distance for n-dimensional vectors Euclidean distance in PythonCosine Similarity: IntuitionCosine SimilarityPrevious …

2024鲲鹏昇腾创新大赛集训营Ascend C算子学习笔记

异构计算架构(CANN) 对标英伟达的CUDA CuDNN的核心软件层,向上支持多种AI框架,向下服务AI处理器,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。主要包括有各种引擎、编译器、执行器、算…

Tomcat的安装和虚拟主机和context配置

一、 安装Tomcat 注意:安装 tomcat 前必须先部署JDK 1. 安装JDK 方法1:Oracle JDK 的二进制文件安装 [rootnode5 ~]# mkdir /data [rootnode5 ~]# cd /data/ [rootnode5 data]# rz[rootnode5 data]# ls jdk-8u291-linux-x64.tar.gz [rootnode5 data]…

七、函数练习

目录 1. 写一个函数可以判断一个数是不是素数。(素数只能被1或其本身整除的数) 2. 一个函数判断一年是不是闰年。 3.写一个函数,实现一个整形有序数组的二分查找。 4. 写一个函数,每调用一次这个函数,使得num每次增…

Python 面试【★★★★】

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

营销故事之扩大牙膏开口

职场营销故事“扩大牙膏开口”又可以说是“牙膏开口扩大1毫米”,为十大经典营销故事之一。某品牌的牙膏,包装精美,品质优良,备受顾客喜爱,连续10年营业额保持10%-20%的增幅。可到了第11年,销售业绩却停滞不…

实时数仓Hologres OLAP场景核心能力介绍

作者:赵红梅 Hologres PD OLAP典型应用场景与痛点 首先介绍典型的OLAP场景以及在这些场景上的核心痛点,OLAP典型应用场景很多,总结有四类:第一类是BI报表分析类,例如BI报表,实时大屏,数据中台等…

AntV学习笔记

文章目录 G6 图可视化引擎简单上手复杂一点的案例 S2 多维交叉分析表格简单的一个vue3使用S2的例子 G6 图可视化引擎 G6 是一个简单、易用、完备的图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于使用的图可视化解决方案。能帮助开发者…

Linux高并发服务器开发(十)反应堆模型和线程池模型

文章目录 1 epoll反应堆2 线程池流程代码 3 复杂版本线程池代码 1 epoll反应堆 文件描述符 监听事件 回调函数 进行封装 创建socket设置端口复用绑定监听创建epoll树将监听文件描述符lfd上epoll树,对应的事件节点包括:文件描述符,事件epoll…

如何在Docker容器中,修改MySQL密码

如果MySQL运行在Docker容器中,修改MySQL密码的方法稍有不同。以下是如何在Docker中修改MySQL密码的步骤: 方法1:使用MySQL命令行工具 1. 找到MySQL容器的ID或者名字: docker ps 2. 进入MySQL容器: docker exec -i…

2024年小米SU7维修手册和电路图线路图接线图资料更新

此次更新了2024年小米SU7维修手册和电路图资料,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等等! 汽修帮…

QT加载安装外围依赖库的翻译文件后翻译失败的现象分析:依赖库以饿汉式的形式暴露单例接口导致该现象的产生

1、前提说明 VS2019 QtClassLibaryDll是动态库,QtWidgetsApplication4是应用程序。 首先明确:动态库以饿汉式的形式进行单例接口暴露; 然后,应用程序加载动态库的翻译文件并进行全局安装; // ...QTranslator* trans = new QTranslator();//qDebug() << trans->…

无人机云台类型及作用

无人机云台主要分为三种类型&#xff1a; 单轴云台&#xff1a;仅支持单向旋转&#xff0c;适合拍摄平滑的延时摄影和全景照片。 双轴云台&#xff1a;支持水平和垂直旋转&#xff0c;可用于拍摄流畅的视频和运动物体。 三轴云台&#xff1a;全面支持所有旋转轴&#xff0c;…

CASS中按指定距离和方向移动图形

1、绘制一个图形 打开软件&#xff0c;随意绘制一个矩形&#xff0c;并量取左下角点的坐标值&#xff0c;具体如下&#xff1a; 2、按距离移动原理讲解 例1&#xff1a;将图形沿着y轴负方向移动100米&#xff0c;如何实现&#xff1f; 如上图所示&#xff0c;测绘中的坐标系…

办公软件WPS与Office的区别

临近计算机考试很多同学在纠结我是报wps好&#xff1f;还是ms office好&#xff1f;下面就来详细说说。 1、wps属于国内金山公司的办公软件&#xff0c;里面包含word、Excel和PPT。考试是2021年开始的&#xff01; 2、MS&#xff08;Microsoft 微软&#xff09; office属于美…

了解MySQL【事务】的功能:确保数据完整性的关键技术

在数据库管理中&#xff0c;事务是确保数据完整性和一致性的核心机制。特别是对MySQL这样广泛应用的开源数据库系统&#xff0c;掌握事务的使用至关重要。在这篇文章中&#xff0c;我们将全面探讨MySQL事务的工作原理、ACID属性、隔离级别以及最佳实践&#xff0c;从而帮助开发…

Docker安装PostgreSQL详细教程

本章教程,使用Docker安装PostgreSQL具体步骤。 一、拉取镜像 docker pull postgres二、启动容器 docker run -it --name postgres --restart always -e POSTGRES_PASSWORD=123456 -e

网安小贴士(7)网络加密

一、前言 网络加密的历史是一个长期发展的过程&#xff0c;其起源可以追溯到古代文明&#xff0c;主要用于战争时期的通信保密&#xff0c;其目的始终是为了保护信息的安全和保密。 二、定义 网络加密是一种安全措施&#xff0c;它通过使用编码算法对通过网络&#xff08;例…