FOSTER:Feature Boosting and Compression for Class-Incremental Learning论文阅读笔记
摘要
先前的类增量学习方法要么难以在稳定性-可塑性之间取得较好的平衡,要么会带来较大的计算/存储开销。受gradient boosting的启发,作者提出了一种新型的两阶段学习范式FOSTER,以逐步适应目标模型和先前的集合模型之间的残差,使得该模型能够自适应地学习新的类别。具体来说,作者首先动态扩展新的模块以适应目标模型和原始模型输出之间的残差,之后通过蒸馏去除冗余的参数和特征维度以保持单一的骨干模型。在CIFAR-100等数据集的实验结果表明作者的方法取得了SOTA的性能。
前置知识
Gradient Boosting
可以参考这篇文章帮助理解:https://www.zhihu.com/search?type=content&q=gradient boosting
Class Incremental Learning
方法
From Gradient Boosting to Class-Incremental Learning
假定在阶段t已经得到了前一个阶段的模型(可以被解耦为feature embedding以及linear classifier):,其中,。受到gradient boosting的启发,作者训练了一个新模型以适应y和的残差。新模型同样包含,,其中可以被分解为,,。因此,训练过程可以被表示为:
和gradient boosting一样,令为均方误差损失。
理想情况下:
是softmax操作,是零矩阵或者是在上fine tune得到的。该过程可以表示为如下优化问题:
Dis为距离指标,如欧式距离等,为的参数。之后,作者将softmax后求和换为求和后softmax,同时使用KL散度作为衡量指标,得到目标函数如下:
因此,可以被看作扩大的线性分类器以及拼接后的超特征提取器:
输出:
Calibration for Old and New
在新任务训练时,类别不平衡的训练集会导致模型的预测出现偏差,同时,feature boosting倾向于忽略样本数量较少的类别的残差。为此,作者提出了:
Logits Alignment
其中,是一个对角矩阵,这样可以促使模型生成更大的旧类概率,同时降低新类概率值。计算过程如下:
Feature Enhancement
仅仅让去适应残差通常是不够的。考虑极限情况:残差为0,则不能学到有关旧类别的信息,因此需要对新模型进行提示,整个过程分为两步。首先初始化一个新的线性分类器,将新的特征变换为所有见过的类别的概率,使新特征能够用于分类:
同时,使用one-hot编码向量训练新的分类器可能会导致模型对新类别过拟合,为此作者使用了知识蒸馏:
总的损失:
Feature Compression
每一个task都增加一个网络会带来极大的空间开销,因此,作者考虑对模型进行蒸馏,将的特征空间进行压缩,同时不会带来明显的性能下降。损失函数:
为tensor的点乘(自动广播),是权重向量(由之前的Eq 13得到)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-07-07 [CVPR2022 Oral]Deep Rectangling for Image Stitching: A Learning Baseline论文阅读笔记
2021-07-07 Leetcode 1711. 大餐计数(桶)
2020-07-07 SP1716 GSS3 - Can you answer these queries III(线段树)