[看完类增量学习CLI的一篇综述有感总结]_害,换方向了就是要恶补该领域方向的知识,学吧学吧~

张开发
2026/4/16 19:12:40 15 分钟阅读

分享文章

[看完类增量学习CLI的一篇综述有感总结]_害,换方向了就是要恶补该领域方向的知识,学吧学吧~
一、.类增量学习Class-Incremental Learning, CIL 模型不断学习新类别时如何还能同时识别所有旧类别并尽量不遗忘旧知识。新任务会引入全新的类别且推理时不知道任务ID即模型需要自己判断输入属于哪个任务/阶段。挑战容易发生灾难性遗忘遗忘旧类别且不能依赖任务ID来限制输出空间。难点在于新类学得越快旧类越容易忘旧类保得越牢新类越可能学不好。任务设置数据按时间顺序分批到来每一批只包含新类别训练当前任务时通常不能访问历史完整数据但测试时模型必须在所有见过的类别上统一分类例子一个图像分类器先学会识别10种动物后来又加入10种植物最终要能从20个类别中正确识别。理解第 1 阶段学“鸟、狗”第 2 阶段学“老虎、鱼”第 3 阶段学“猴子、羊”到第 3 阶段测试时不是只测“猴子、羊”而是要在鸟、狗、老虎、鱼、猴子、羊里一起分类。二、TIL(任务增量学习)和DIL(领域增量学习)CIL训练时新任务含新类测试时要在全部已见类上分类TIL– Task-Incremental Learning任务增量学习训练也有新类但测试时知道“当前属于哪个任务”只在该任务标签空间内分类挑战相对CIL更容易因为模型知道当前是哪个任务只需在该任务的输出层里选择。例子多任务系统任务1做猫狗分类任务2做车牌识别。测试时告诉模型“这是任务2”模型只从任务2的类别中预测。DIL类别不变但数据分布领域发生变化。推理时不知道任务ID挑战模型要适应新的数据分布同时保持对原有类别的判别能力。例子手写数字识别先在MNIST黑底白字上训练后来加入SVHN街景门牌数字彩色复杂背景数据类别仍是0-9但图像风格完全不同。类型任务边界推理时是否已知任务ID标签空间典型例子CIL(Class-IL)任务间类别无重叠❌ 未知不断扩张先学猫狗后学汽车飞机最后区分全部TIL(Task-IL)任务间独立✅ 已知每个任务独立任务1猫狗分类任务2车牌识别测试时告诉模型是哪个任务DIL(Domain-IL)类别不变领域变❌ 未知固定先MNIST黑白后SVHN彩色数字0-9不变难度CIL DIL TIL因为CIL需要同时解决任务歧义和类别扩张。三、灾难性遗忘如果你只拿新任务数据直接微调模型Finetune baseline模型会严重偏向新类别旧类别性能会大幅下降这叫catastrophic forgetting灾难性遗忘原因1. 参数层面学习新任务时梯度会修改原来支撑旧类识别的参数。2. 表征层面特征空间会被新类重新塑形。比如原来模型会提取“车轮”后面连续学动物后网络内部更偏向毛发、条纹等特征旧类表征就被覆盖了。3. 分类器偏置层面即使特征没完全坏分类头也会偏向新类因为新类数据多、旧类样本少导致决策边界偏移。四、基本形式化定义五、相关变体1.Blurry CIL模糊类别增量学习核心打破了“不同任务的类别集合互不相交”的传统假设。在现实数据流中旧任务的类别可能在新任务中再次出现类别重叠或者不同任务之间共享部分类别。特点任务边界模糊一个类别可能跨多个阶段出现模型需要学会区分相同类别的不同分布同时还要引入真正的新类。例子第一阶段看到猫、狗第二阶段又看到猫但图片风格不同加上新类鸟。模型既要更新猫的表示又要学习鸟。挑战不能简单按任务来隔离分类器容易出现灾难性遗忘 类间混淆。2. FSCILFew-Shot Class-Incremental Learning核心每个新类只有极少样本例如 1-shot 或 5-shot而基类第一个任务有充足样本。特点新类样本极少 → 极易过拟合且旧类知识被破坏的风险更高。典型做法元学习、原型网络、知识蒸馏甚至利用预训练模型冻结特征提取器只更新分类器。挑战样本极少导致无法充分学习新类决策边界也难平衡旧类。3. LTCILLong-Tailed Class-Incremental Learning核心增量学习过程中类别分布天然长尾头部类样本很多尾部类样本很少且尾部类可能在新阶段出现或一直很少。特点同时处理增量场景和长尾分布。不仅旧类可能长尾新类也可能属于尾部。挑战模型会偏向头部类尾部类容易遗忘或难以学习重放缓冲区如果按均匀采样反而会扭曲分布。常见解法重加权、边际调整、解耦表示学习和分类器学习。4. Online CIL在线类增量学习核心数据以在线流形式到达每个样本只能看一次甚至不存储任务边界可能已知或未知。特点对计算、存储要求严苛不能使用经验重放或者只能用极小的缓冲区。需要实时更新模型。挑战比离线增量学习更难控制遗忘通常依赖正则化如 EWC、在线原型或极小的记忆库如 GDumb。注意Online CIL 可与 Blurry、FSCIL、LTCIL 组合例如 Online FSCIL每个新类只给少量样本且只看一次。5.区别标准 CIL每个任务引入若干全新类别任务间无重叠每个类有足够样本类别平衡离线分批到达。Blurry CIL去掉“类别无重叠”。FSCIL去掉“新类样本充足”。LTCIL去掉“类别平衡”。Online CIL去掉“离线批量可重复训练”。六、七大方法谱系6.1.Data Replay数据回放核心思想类比人复习旧题不会那么容易忘模型也一样。关键点Memory 是容器Exemplar 是容器里存的具体样本。怎么选 exemplar指从旧任务数据中挑选出来并存储的代表性样本。它的作用是代表整个旧类别分布在新任务训练时与新数据混合防止模型遗忘。随机选herding挑选策略如Herding-让 exemplar 的平均特征尽量接近该类所有样本的均值选最能代表类中心的样本怎么管理 memory专门用来存储这些exemplar的一块固定大小的存储空间也叫缓冲区 / buffer。例如总内存大小 M2000意味着只能存 2000 张 exemplar所有旧类别共享这个空间。当新类别加入时需要动态分配和替换。每类固定 R 个总内存会线性增长总内存固定 M 个更现实也更常用。综述明确说它后续评测采用的是固定总 memory 策略。优点简单、有效、常作为强 baseline对很多任务都适用缺点占内存有隐私问题小 memory 时容易过拟合新旧类样本极不平衡分类器容易偏向新类。6.2.Data Regularization用旧数据约束梯度核心思想不是简单重放旧样本而是要求你学新任务时不能让旧样本上的损失变差太多优点更强调“优化方向控制”理论味更浓缺点计算复杂对 exemplar 仍有依赖某些假设不总成立实际表现未必稳定。综述对此有专门讨论6.3.Dynamic Networks动态扩展网络核心思想旧任务参数别乱动新任务来了就给模型“长新能力”。方法分类神经元扩展按需加神经元、改结构。早期味道较强。骨干网络扩展代表方法如DER、FOSTER、MEMO。DER每个任务加一个新 backbone旧 backbone 冻结FOSTER先扩展再蒸馏压缩避免模型无限变大MEMO发现浅层更通用深层更任务特异于是只扩展更“专门化”的部分。prompt 扩展这是 ViT / 大模型时代特别热的路线。代表方法包括DyTox、L2P、DualPrompt、S-Prompt。核心思想是冻结预训练 ViT只学习 prompt 或 task token来适配新任务优点性能往往很强遗忘可控因为旧模块常被冻结缺点往往增加参数或依赖大预训练模型比较时容易不公平综述在补充实验中明确指出像 L2P 依赖 ImageNet-21K 预训练 ViT 且参数规模大而很多传统方法只是在小 ResNet 上从零训练直接横比并不公平。DER、MEMO 这类动态网络虽然强但也往往用了更多参数。6.4.Parameter Regularization参数重要性约束核心思想参数重要性不同对旧任务重要的参数别动太多。代表方法如EWC、SI、MAS。EWC 的正则形式给重要参数更大惩罚。优点思路优雅不一定依赖 replay缺点重要性估计难在 CIL 上通常不如在 TIL 上那么有效类间竞争强时效果偏弱综述也明确指出很多工作发现它在 class-incremental 场景表现较差。研究价值偏理论、贝叶斯近似、参数高效学习的同学会喜欢这条线。6.5. Knowledge Distillation知识蒸馏这是 CIL 里最核心的一条主线之一。核心思想让“新模型”在旧知识上模仿“旧模型”。分类1. Logit Distillation代表LwF、iCaRL、BiC让新模型在旧类别上的输出分布接近旧模型。这是最经典、最该掌握的一类。2. Feature Distillation代表UCIR、PODNet等直接约束中间特征不要漂太远比 logit 更强。3. Relational Distillation不仅保单个样本还保样本之间关系比如三元组角度、邻域结构。这类方法更强调结构信息。优点泛化性强很多方法都会带一点 KD非常适合作为方法组件加入新框架缺点稳定性–可塑性权重难调只蒸馏表征不一定能解决分类器偏置综述明确指出蒸馏能缓解表征遗忘但对分类器层偏置不一定够。研究价值如果你要读 CIL 论文蒸馏是必须会的语言。6.6.Model Rectify模型校正这类方法针对一个关键事实很多时候不是“完全忘了”而是“预测偏了”。比如新类样本多、旧类 exemplar 少导致 logits、feature norms、classifier weights 都偏向新类。所以这类方法做的是“纠偏”包括Feature Rectify (特征矫正)目标优化特征空间让不同类别的特征分布更具可分性基本原理:直接作用于特征向量。旨在修正模型提取的特征使其更具判别性例如扩大类间距离、缩小类内距离或缓解新/旧任务间的特征“漂移”。直观类比:想象一位老师为学生整理学习笔记。老师会圈出重点特征缩放并修正模糊或错误的部分特征变换让笔记特征结构更清晰、内容更准确这样学生分类器学起来就不容易出错。Logit Rectify (逻辑矫正)目标直接调整模型的最终预测倾向消除类别间的偏差。基本原理当模型对某些类别通常是基类打分虚高而对新类别打分偏低时通过设计好的策略对logits进行缩放或增减。例如通过伪增量学习范式训练一个轻量级适配器根据新样本与基类的相似度动态生成平衡因子来调整其logits。其他方法包括调整新老类别的logits边界以强化旧类表达能力或在知识蒸馏前对所有类别的logits进行标准化。直观类比它就像体育比赛的计分调整。如果裁判对老牌运动员基类有“印象分”偏差Logit Rectify会为新运动员新类加上“难度系数分”或是对所有人的得分进行标准化处理确保最终排名能真正反映他们当场的表现。Weight Rectify(权重矫正)目标在模型权重层面实现知识的隔离与累积。基本原理保持旧任务的核心网络权重不变当新任务到来时训练一个“矫正生成器”为新任务生成一组附加权重。旧任务权重和新任务矫正权重相加形成适应新任务的网络。直观类比这好比在原作上覆盖一张半透明的硫酸纸来画续集。原作旧任务权重被完整保留续集的内容则画在半透明纸上通过两张纸的叠加呈现“续集”内容。这样既能创作新剧情又不会破坏原作且可以持续添加新的半透明纸来应对未来的多个任务。维度Feature RectifyLogit RectifyWeight Rectify作用对象特征向量逻辑值 (logits)模型权重 (weights)核心目的优化特征空间提升特征质量修正预测偏差平衡类别倾向隔离新旧知识避免参数干扰实现方式缩放、平移、变换特征设计策略调整logits值学习附加权重与旧权重结合解决问题特征漂移、类间可分性差基类偏差、类别不平衡灾难性遗忘、任务间参数冲突典型例子特征缩放、仿射变换动态平衡因子、logits边界调整权重相加、适配器研究价值这是非常容易做出新工作的方向因为很多强 baseline 已经有不错表征你只要在校准、后处理、判别边界上做好就能涨点6.7.Template-Based Classification模板式分类这类方法的直觉是别完全依赖不断变化的分类头而是维护类原型/模板让推断更像“匹配”而不是“重新学习一个大分类器”。典型思路与原型网络、最近类均值等相关。iCaRL 在推理时就采用 nearest-mean-of-exemplars。研究价值如果你偏 metric learning、prototype learning这条路线很自然。

更多文章