Grow, Assess, Compress: Adaptive Backbone Scaling for Memory-Efficient Class Incremental Learning
论文笔记:GRACE — Grow, Assess, Compress
元信息
| 项目 | 内容 |
|---|---|
| 机构 | 未明确 |
| 日期 | March 2026 |
| 项目主页 | 暂未公开 |
| 对比基线 | DER, FOSTER, MEMO |
| 链接 | arXiv / 代码即将开源 |
一句话总结
提出 GRACE(Grow-Assess-Compress)循环框架用于类增量学习(CIL),通过 Normalized Effective Rank 评估 backbone 容量利用率,条件性决定扩展或压缩,相比纯扩张方法最高节省 73% 参数,同时在公平内存预算下超越 SOTA 达 3.71pp。
核心贡献
容量感知饱和度评估(Assess Phase): 利用 eRank~(归一化 effective rank)衡量 backbone 特征空间利用率,自动判断是否真正需要扩展新 backbone
重要性感知学生初始化(Importance-Aware Init): 融合保存因子 与偏差因子 ,通过 -norm 幂均值加权合并 backbone,避免简单平均导致的性能损失
双层知识蒸馏压缩(Compress Phase): 同时在 logit 层(KL 蒸馏)和特征层(MSE 对齐)传递知识,消融实验证明两层缺一不可
问题背景
要解决的问题
类增量学习(Class Incremental Learning, CIL)中,扩张型方法(DER、FOSTER、MEMO)为每个新任务添加独立 backbone,导致参数量随任务数线性增长,在长序列场景下内存爆炸
现有方法的局限
固定容量方法(iCaRL、EWC):内存效率好但精度受限,遭受灾难性遗忘
扩张方法(DER):每任务无条件添加 backbone,参数量不可控
严格压缩方法(FOSTER):每次都压缩回单一 backbone,若容量不足则精度下降
缺少反馈机制来判断”是否真的需要扩展”
本文的动机
受”模型容量利用率”启发:如果已有 backbone 的特征空间未被充分利用(eRank 低),则无需添加新 backbone,直接压缩合并即可;只有在真正饱和时才扩展
方法详解
模型架构
GRACE 维护四类 backbone 组件,在任务序列中动态管理其状态:
:已完全冻结的 backbone,容量已饱和(历史扩展留下的)
:当前可合并的 backbone,已冻结但仍有剩余表示空间(单个)
:当前任务新分配的可训练 provisional backbone
:Compress 阶段生成的学生 backbone(临时存在)
每个任务的完整预测拼接所有 backbone 的输出:
核心模块
模块1: Grow — 架构扩展阶段
设计动机: 为新任务分配独立特征提取器,防止已有 backbone 被破坏(灾难性遗忘)
具体实现:
- 实例化新 backbone 并仅训练该分支
- 其余 backbone 全部冻结
- 引入辅助分类器 ,在 个类别上操作:当前任务所有类 + 统一旧类别(将所有历史任务类合并为一个虚拟类)
- 辅助分类器的作用:迫使 学习区分当前任务类与”非当前任务”,保证跨任务可分性
模块2: Assess — 容量评估阶段
设计动机: 基于 Effective Rank(特征空间利用率)判断 是否已被充分利用
具体实现:
- 用 对 (当前任务数据 + 记忆池样本)提取特征矩阵
- 中心化 → SVD → 计算 eRank~
- 与阈值 比较,决定走扩展路径还是压缩路径
- 条件可塑性(Conditional Plasticity): 阈值衰减机制防止永远不扩展
模块3: Compress — 模型合并阶段
设计动机: 将 和 的知识合并到单个学生 backbone,控制参数增长
具体实现:
- 重要性感知初始化:按 、 加权平均两个 backbone 权重作为学生起始点
- 扩展模型(包含 和 )作为教师
- 双层蒸馏训练学生:logit-level KL 蒸馏 + feature-level MSE 对齐
- 压缩后 成为新的
扩展路径(当 eRank~ ≥ ): 晋升为 , 晋升为新的 ,参数量增加
关键公式
公式1: 有效秩(eRank)计算
步骤:对特征矩阵 中心化后 SVD,得奇异值 ,归一化为概率分布:
含义: 将奇异值归一化,视为各维度方向的”能量占比”
用 Shannon 熵计算 effective rank:
含义: 特征矩阵有效秩越高,说明各奇异方向利用越均匀,backbone 容量越饱和
符号说明:
- : 特征矩阵 的第 个奇异值
- : 归一化后的”能量占比”
- : SVD 分解保留的奇异值数量
归一化为 范围:
含义: 除以理论最大值,得到相对利用率
符号说明:
- : 用于评估的样本数(当前任务 + 记忆池)
- : 特征维度
公式2: 扩展模型预测
含义: 拼接所有 backbone 的特征,通过统一分类头预测
公式3: 辅助分类器预测
含义: 仅使用当前 provisional backbone,在 个类别(当前类 + 统一旧类)上分类
公式4: Grow 阶段训练损失
含义: 主分类损失 + 辅助跨任务可分性损失
符号说明:
- : 真实标签(当前任务类)
- : 辅助标签(当前任务类 or 统一旧类别标签)
公式5: 容量阈值衰减机制
含义: 每次压缩后阈值乘以衰减因子 ,连续压缩会降低标准,增加后续扩展可能性;若发生扩展则阈值重置为初始值
符号说明:
- : 第 个任务的饱和阈值
- : 衰减率,
- : 初始阈值,
公式6: 压缩权重——保存因子 P
含义: 已有 backbone 负责的类别数占总类别数的比例,衡量”旧知识的重要程度”
符号说明:
- : mergeable backbone 覆盖的类别数(历史类)
- : 当前任务新增类别数
公式7: 压缩权重——偏差因子 B
含义: 当前任务样本数占总样本数比例,衡量”新任务数据的学习压力”
符号说明:
- : 当前任务的训练样本数
- : 记忆池中历史样本总数
公式8: 学生 backbone 合并权重
含义: 将保存因子 和偏差因子 通过 -norm 幂均值融合为最终合并权重 , 越大说明越偏向保留旧 backbone 的权重
符号说明:
- : 控制两个因子的融合方式( 取最大值, 为算术平均, 为几何平均)
公式9: 学生 backbone 权重初始化
含义: 以 为权重插值合并两个 backbone 的参数,作为学生 backbone 的初始权重
公式10: Logit-Level 知识蒸馏损失
含义: 用温度 软化 logit,让学生模型(压缩后)的输出分布匹配教师模型(扩展模型)的输出分布
符号说明:
- : 蒸馏温度
- : 教师(扩展模型)的 logit
- : 学生(压缩模型)的 logit
- : softmax
公式11: Feature-Level 特征对齐损失
含义: 通过可学习投影层 将学生特征投影到拼接教师特征的空间,用 MSE 对齐
符号说明:
- : 可学习投影矩阵,将 维特征映射到 维
- : 两个教师 backbone 特征的拼接
公式12: Compress 阶段总损失
含义: 三项损失加权:logit 蒸馏 + 特征对齐 + 交叉熵分类损失, 控制蒸馏与分类损失的权衡
符号说明:
- : 蒸馏损失整体权重
- : logit 蒸馏和特征蒸馏的相对权重
- : 压缩后模型的预测
关键图表
Figure 1: GRACE 框架性能总览
{:width 600}
{:width 600}
{:width 600}
说明: 左上展示精度,右上展示参数量。GRACE 在保持 SOTA 精度的同时参数量远低于 DER/MEMO 等扩张方法。底部展示 Base 50 Inc 2 设定下各任务的扩展动态——GRACE 只在必要时扩展,不像 DER 每任务无条件扩展。
Figure 2: GRACE 框架整体概览
{:width 700}
说明: 展示 GRACE 的三阶段循环流程:(1) Grow——为新任务实例化 ,训练扩展模型;(2) Assess——计算 eRank~,决策扩展还是压缩;(3) Compress——知识蒸馏合并 与 。颜色标注不同状态的 backbone(fixed / mergeable / provisional / student)。
Figure 3: Compress 阶段详解
{:width 600}
说明: 扩展模型(包含 和 )作为教师,压缩后的学生模型同时接受三路监督:logit-level KL 蒸馏、feature-level MSE 对齐、交叉熵分类损失。
Figure 4: 阈值与衰减超参数的影响
{:width 500}
{:width 500}
说明: 不同 配置下的扩展次数和精度。高 更容易触发压缩,低 使阈值衰减更快,两者共同控制模型的”生长倾向”。
Figure 5: 超参数敏感性分析
{:width 400}
{:width 400}
{:width 400}
{:width 400}
{:width 400}
说明: 在 CIFAR-100 多个 protocol 设定下对 和 的网格搜索结果,标注了 Pareto 前沿点(精度与参数量的最优权衡)。
Table 1: CIFAR-100 主要结果(#P 单位:M)
| 方法 | B0-I5 #P | B0-I5 Last | B0-I5 Avg | B0-I10 #P | B0-I10 Last | B0-I10 Avg | B50-I2 #P | B50-I2 Last | B50-I2 Avg | B50-I10 #P | B50-I10 Last | B50-I10 Avg |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Finetune | 0.46 | 4.94 | 17.39 | 0.46 | 8.86 | 26.11 | 0.46 | 1.94 | 5.79 | 0.46 | 8.88 | 22.51 |
| Replay | 0.46 | 37.25 | 57.00 | 0.46 | 40.05 | 58.65 | 0.46 | 40.12 | 48.93 | 0.46 | 42.11 | 52.09 |
| EWC | 0.46 | 4.90 | 18.73 | 0.46 | 12.41 | 30.82 | 0.46 | 8.50 | 18.37 | 0.46 | 14.41 | 29.32 |
| iCaRL | 0.46 | 45.34 | 63.08 | 0.46 | 48.64 | 65.06 | 0.46 | 43.45 | 53.35 | 0.46 | 51.90 | 61.04 |
| DER | 9.20 | 56.89 | 69.31 | 4.60 | 60.47 | 71.23 | 11.96 | 58.95 | 66.09 | 2.76 | 62.17 | 68.68 |
| FOSTER | 0.46 | 47.72 | 61.92 | 0.46 | 54.15 | 66.87 | 0.46 | 50.84 | 60.00 | 0.46 | 58.54 | 66.32 |
| MEMO | 7.14 | 53.95 | 67.58 | 3.62 | 56.86 | 68.99 | 9.25 | 53.35 | 60.25 | 2.22 | 57.73 | 64.65 |
| BEEF | 9.20 | 45.32 | 63.78 | 4.60 | 56.86 | 69.59 | 11.96 | 50.62 | 62.29 | 2.76 | 59.86 | 66.83 |
| DGR | 0.46 | 48.61 | 62.01 | 0.46 | 53.32 | 65.11 | 0.46 | 40.96 | 50.62 | 0.46 | 55.02 | 62.63 |
| GRACE | 4.60 | 57.39 | 69.81 | 2.30 | 60.80 | 71.44 | 3.22 | 58.09 | 66.42 | 1.84 | 62.55 | 68.85 |
关键发现: GRACE 在 B50-I2(最长序列)中参数量仅 3.22M(vs DER 的 11.96M,减少 73%),且精度相当甚至更高。B0-I10 下 Last Acc 持平 DER(60.80 vs 60.47),参数量仅一半。
Table 2: ImageNet-100 主要结果(#P 单位:M)
| 方法 | B0-I5 #P | B0-I5 Last | B0-I5 Avg | B0-I10 #P | B0-I10 Last | B0-I10 Avg | B50-I10 #P | B50-I10 Last | B50-I10 Avg |
|---|---|---|---|---|---|---|---|---|---|
| Finetune | 11.17 | 4.66 | 16.82 | 11.17 | 9.28 | 26.28 | 11.17 | 9.58 | 24.53 |
| Replay | 11.17 | 36.34 | 55.62 | 11.17 | 42.64 | 60.26 | 11.17 | 41.46 | 51.86 |
| EWC | 11.17 | 5.60 | 18.83 | 11.17 | 10.86 | 28.06 | 11.17 | 11.68 | 26.35 |
| iCaRL | 11.17 | 44.48 | 61.86 | 11.17 | 50.46 | 67.23 | 11.17 | 53.96 | 63.42 |
| DER | 223.4 | 64.62 | 73.66 | 111.7 | 66.56 | 75.68 | 67.02 | 73.34 | 79.59 |
| FOSTER | 11.17 | 51.38 | 63.07 | 11.17 | 60.78 | 69.22 | 11.17 | 67.40 | 74.22 |
| MEMO | 170.6 | 56.02 | 68.38 | 86.72 | 61.04 | 72.05 | 53.14 | 60.16 | 67.56 |
| BEEF | 223.4 | — | — | 111.7 | 65.60 | 74.71 | 67.02 | — | — |
| DGR | 11.17 | 48.68 | 60.87 | 11.17 | 54.18 | 63.16 | 11.17 | 65.15 | 72.21 |
| GRACE | 134.04 | 64.86 | 73.52 | 78.19 | 66.76 | 76.06 | 44.68 | 73.50 | 79.55 |
关键发现: GRACE 在 ImageNet-100 上全面持平或超越 DER(66.76 vs 66.56 on B0-I10 Last),参数量减少约 30-40%。B0-I5 因 ImageNet 特征复杂度高,GRACE 触发更多扩展,但仍少于 DER。
Table 3: Memory-Aligned 公平评估(CIFAR-100)
| 方法 | B0-I5 M | B0-I5 Last | B0-I5 Avg | B0-I10 M | B0-I10 Last | B0-I10 Avg |
|---|---|---|---|---|---|---|
| Replay | 13466 | 60.83 | 73.66 | 7431 | 56.37 | 70.26 |
| iCaRL | 13466 | 61.40 | 74.02 | 7431 | 59.08 | 71.41 |
| DER | 2000 | 56.89 | 69.31 | 2000 | 60.47 | 71.23 |
| FOSTER | 13466 | 63.28 | 74.94 | 7431 | 60.26 | 72.56 |
| MEMO | 4771 | 62.14 | 72.96 | 3312 | 61.57 | 72.01 |
| BEEF | 2000 | 45.32 | 63.78 | 2000 | 56.86 | 69.59 |
| DGR | 13466 | 56.49 | 65.76 | 7431 | 57.37 | 65.46 |
| GRACE | 8035 | 65.17 | 75.76 | 5017 | 65.28 | 74.63 |
关键发现: 在相同内存预算下(将参数内存与 exemplar 内存统一计算),GRACE 在 B0-I10 上以 65.28% Last Acc 超越所有方法,较次优 FOSTER 高 3.71pp(65.28 vs 60.26+)。
Table 4: 消融实验(CIFAR-100 Base 0 Inc 10)
| 方法 | Importance-Aware Init | Feature KD | Logit KD | Last | Avg |
|---|---|---|---|---|---|
| DER(基线) | — | — | — | 60.47 | 71.23 |
| GRACE | ✗ | ✗ | ✓ | 38.41 | 58.23 |
| GRACE | ✗ | ✓ | ✗ | 45.36 | 60.03 |
| GRACE | ✓ | ✗ | ✗ | 54.11 | 68.69 |
| GRACE | ✗ | ✓ | ✓ | 47.64 | 61.68 |
| GRACE | ✓ | ✗ | ✓ | 58.90 | 70.28 |
| GRACE | ✓ | ✓ | ✗ | 59.54 | 71.17 |
| GRACE(Full) | ✓ | ✓ | ✓ | 60.80 | 71.44 |
关键发现: Importance-Aware Init 贡献最大——仅有初始化(无蒸馏)时 Last Acc = 54.11%,而仅有 Logit KD 时只有 38.41%。三者协同效果最佳(60.80%),略超 DER 基线(60.47%)但参数减半。
Table 5: Importance-Aware 初始化 vs 简单平均初始化(CIFAR-100)
| 方法 | B0-I5 Last | B0-I5 Avg | B0-I10 Last | B0-I10 Avg | B50-I2 Last | B50-I2 Avg | B50-I10 Last | B50-I10 Avg |
|---|---|---|---|---|---|---|---|---|
| 简单平均基线 | 56.99 | 69.50 | 60.02 | 70.64 | 56.38 | 65.58 | 60.29 | 67.58 |
| Importance-Aware(Ours) | 57.39 | 69.81 | 60.80 | 71.44 | 58.09 | 66.42 | 62.55 | 68.85 |
| Δ | +0.40 | +0.31 | +0.78 | +0.80 | +1.71 | +0.84 | +2.26 | +1.27 |
关键发现: 重要性感知初始化在长序列(B50-I2)上提升最显著(+1.71% Last),说明任务多时历史知识保护更重要。
实验
数据集
| 数据集 | 规模 | 特点 | 用途 |
|---|---|---|---|
| CIFAR-100 | 50,000 训练 / 10,000 测试,100 类,32×32 | 小分辨率,训练快 | 主要基准,4 个 protocol |
| ImageNet-100 | ImageNet 的 100 类子集,224×224 | 大分辨率,更接近实际场景 | 扩展验证,3 个 protocol |
Protocol 命名:Base Inc 表示从 个基础类开始,每次增量 个类(Base 0 = 所有类均匀划分)
实现细节
Backbone: ResNet32(CIFAR-100)、ResNet18(ImageNet-100)
框架: PyTorch + PyCIL toolbox
Exemplar buffer: 2,000 张图片,Herding 策略选取
数据增强: 随机裁剪、水平翻转、颜色抖动
超参数搜索: ,,网格搜索
硬件: NVIDIA L40S GPU(48GB)
代码: 即将开源,配套完整超参数配置
可视化结果
Figure 1 展示 GRACE 在长序列(B50-I2,约 25 个任务)中仅触发约 10 次扩展,其余任务均执行压缩,实现参数节省
Figure 5 的 Pareto 前沿分析表明,, 附近通常可获得最佳精度-参数权衡
批判性思考
优点
无需人工决策增长时机:Effective Rank 提供了自动化的、有理论依据的容量评估标准,优于启发式规则
公平的内存对比:Memory-Aligned 评估框架将参数内存与 exemplar 内存统一,更真实反映方法价值
模块化设计:三个阶段相互独立,Importance-Aware Init 和双层蒸馏均可独立分析(Table 4 消融完整)
局限性
仅在 CNN(ResNet)上验证:未测试 ViT、Swin 等 Transformer 架构
仅在图像分类任务上测试:未验证检测、分割或 NLP 场景
超参数仍需网格搜索: 和 的最优值依赖于任务序列长度,缺少自适应设置方案
压缩阶段信息损失未量化:仅比较最终精度,未分析压缩后遗忘了哪些具体知识
未与 function-preserving 方法结合:如 function-preserving(Grow, Don’t Overwrite)的结合潜力未探索
潜在改进方向
将 Effective Rank 评估扩展到 Transformer 的 attention head 或 FFN 层的容量评估
用自适应 替代网格搜索(如基于历史任务的统计估计)
将 GRACE 框架扩展到检测等需要特征金字塔的任务
可复现性评估
- 代码开源(即将,论文中承诺)
- 预训练模型(未提及)
- 训练细节完整(超参数范围明确)
- 数据集可获取(CIFAR-100 / ImageNet-100 均公开)
关联笔记
基于
DER: Dynamically Expandable Representation,GRACE 基于其扩张范式,添加 Assess+Compress 阶段
FOSTER: Feature Boosting and Compression,提出严格压缩回单 backbone,GRACE 的条件性压缩是对其改进
PyCIL: 使用该 CIL 工具箱作为实验框架
对比
MEMO: Multi-level Memory Optimization,同为扩张型方法,GRACE 在相同精度下参数量更少
BEEF: 同为 backbone 扩展方法,缺少容量评估机制
方法相关
Effective Rank: GRACE 的核心评估指标,来自 Roy & Vetterli (2007)
知识蒸馏: Compress 阶段的核心机制
特征蒸馏: Feature-level 对齐损失
function-preserving: 模型增长的相关基础概念
硬件/数据相关
CIFAR-100: 主要基准数据集
ImageNet-100: 扩展验证数据集
ResNet: 使用的 backbone 架构
速查卡片
GRACE (2026, ICML)
- 核心: Grow-Assess-Compress 循环框架,通过 Normalized Effective Rank 条件性决定是否压缩 backbone
- 方法: eRank~ 评估容量利用率 → 低于阈值压缩,否则扩展;压缩时用 Importance-Aware Init + 双层 KD
- 结果: CIFAR-100 最高节省 73% 参数,Memory-Aligned 评估超 SOTA +3.71pp
- 代码: 即将开源
笔记创建时间: 2026-03-11