增量学习笔记
增量学习笔记
综述
方法
- 正则化(比如权重正则化,让新任务学习的时候限制部分权重的变化
- 回放(回放之前任务的代表样本
- 优化(如结合新任务的梯度和老任务的梯度找一个都适合的梯度
- 特征(让模型记住特征而不是样本
- 架构(根据新任务,让模型参数变多
疑问
分类头的调整
Q:在增量学习中,为了每个阶段需要多学习的类,模型最后一层的分类头需要做出特别的变化吗?
A:在增量学习中,由于每个阶段会新增一些新的类别,模型的最后一层分类头通常需要做出调整,以适应新增的类。具体的调整方式有以下几种常见方法:
动态扩展分类头:在每个阶段,当有新类别加入时,为最后一层的分类头增加新的输出节点。这意味着每次新增类别后,分类头的输出维度会动态增长。通常,这种方式会结合一些技术(如正则化、蒸馏等),以防止模型对旧类别的遗忘。
使用固定分类头 + 少样本学习:在一些方法中,分类头的输出维度保持固定,但会利用少样本学习或度量学习的技巧,比如将新类别样本映射到一个特征空间中,采用距离度量(如余弦相似度)来分类。这种方式可以避免每次都调整分类头的结构,但对特征空间的学习要求更高。
通过分类器参数更新:如果分类头的结构保持不变,则可以通过参数更新让其适应新增类别。比如使用知识蒸馏的方法,在新数据上训练时,同时保留对旧类别知识的约束,防止模型在增量学习过程中遗忘旧类别。
使用多个分类器:部分方法会在每个阶段保留一个单独的分类器,仅用于当前阶段的类别。最终的预测可以基于这些分类器的投票结果或级联方式来实现分类。这种方法虽然减少了模型的遗忘风险,但增加了模型的复杂度。
总的来说,增量学习中的分类头设计要根据具体的应用场景和增量学习方法来选择。动态扩展分类头和知识蒸馏的结合,通常是较为有效和常见的选择。
CSDN上的解答:【学习资源】终身机器学习之增量学习_增量学习方法代码实现-CSDN博客
论文列表
xialeiliu/Awesome-Incremental-Learning: Awesome Incremental Learning
中文survey:cil_survey.pdf
增量学习笔记
http://iamlihua.github.io/2024/10/30/cl-note/