Parameter-efficient Continual Learning for Enhancing Plasticity without Forgetting under Limited Model Capacity¶
会议: CVPR 2026
论文: CVF Open Access
代码: 待确认
领域: 持续学习 / 参数隔离
关键词: 持续学习, 参数隔离, 灾难性遗忘, 梯度一致性, 强化学习剪枝
一句话总结¶
GRAPA 是一种面向"模型容量受限"场景的参数高效持续学习方法,先用梯度方向一致性挑出可安全复用的旧任务冻结参数、再用 A2C 强化学习为每个新任务自适应找出"刚好够用"的剪枝率,从而在不牺牲稳定性(不遗忘)的前提下显著提升可塑性(学新任务),在六条异构任务序列上平均精度最高提升 7.67%、后续复杂任务最高提升 14.92%。
研究背景与动机¶
领域现状:持续学习(CL)要在任务依次到来时既不遗忘旧任务(稳定性)又能学好新任务(可塑性)。主流分三类:回放、正则化、参数隔离。参数隔离给每个任务分配不相交的参数子集 \(\phi_i\cap\phi_j=\emptyset\),训完即冻结,是抑制灾难性遗忘最强的一类。
现有痛点:参数隔离虽抗遗忘,却普遍忽视可塑性。常见做法 ① 在共享骨干上学任务专属 mask 来激活子集——纯复用旧参数,面对越来越难的任务序列不够用;② "训练-剪枝-重训"范式给每个任务按固定剪枝率分配新参数——忽略任务复杂度差异,会导致两个问题:在容量受限时新参数可能没学完所有任务就耗尽;任务难度递增时,早期简单任务却冻结了过多参数,给后面的复杂任务留不下容量。
核心矛盾:稳定性(冻结保护旧任务)与可塑性(留容量学新任务)在有限容量下直接冲突;固定剪枝率把容量"均匀/指数衰减"地分掉,与任务真实需求错配。
本文目标:对每个新任务 \(T_t\),既要复用兼容的旧冻结参数减少新参数消耗,又要只冻结最少且够用的新参数,在参数预算 \(B\) 下最小化所有任务损失:\(\min_{\theta_t}\sum_{t=1}^{N}\mathcal{L}_t(\theta_t)\) s.t. \(|\bigcup_t\theta_t|\le B\)。
切入角度:复用旧参数若梯度方向与新任务冲突会引发负迁移甚至遗忘,所以"哪些旧参数能复用"应由梯度一致性判断;而"该给新任务留多少参数"无法靠先验手调,应交给能在未知状态下试错的强化学习。
核心 idea:梯度引导的参数复用 + 基于强化学习的自适应参数分配——先复用"不打架"的旧参数,再用 A2C 为每个任务搜出"刚好够用"的剪枝率。
方法详解¶
整体框架¶
GRAPA 对每个到来的新任务 \(T_t\) 走一条两阶段流水线。阶段一从此前所有冻结参数里,按梯度方向一致性筛出可安全复用的子集 \(\psi_t\)(不引入干扰地最大化知识迁移);阶段二把剩余空闲参数全部分给当前任务训练一个基模型,再用 A2C 强化学习智能体反复探索剪枝率、用奖励平衡"精度保留"与"参数节省",最终按最优剪枝率剪枝、只冻结最小必要的新参数 \(\phi_t\),把尽量多的容量留给后续任务。激活参数为 \(\theta_t=\phi_t\cup\psi_t\)。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["新任务 Tt 到达"] --> B["梯度引导的参数复用<br/>按梯度余弦一致性筛出可复用冻结参数 ψt"]
B --> C["全参训练基模型<br/>复用 ψt(冻结)+ 空闲参数"]
C --> D["自适应参数分配(A2C 强化学习)<br/>探索剪枝率 ρ,奖励平衡精度与参数量"]
D --> E["按最优 ρ* 剪枝<br/>只冻结最小必要新参数 ϕt"]
E --> F["保留剩余容量给后续更难任务"]
关键设计¶
1. 梯度引导的参数复用:用梯度方向一致性挑出"不打架"的旧参数
针对"纯复用旧参数会引入负迁移、复用所有冻结参数会被不兼容任务干扰"的痛点。GRAPA 在每个先前任务收敛时存下其在冻结参数上的梯度(开销有界可控)。训练新任务 \(T_t\) 时,逐层逐 epoch 计算当前任务梯度 \(g_t^l\) 与某旧任务梯度 \(g_{t'}^l\) 的余弦相似度:
只有当两任务在该层梯度一致(余弦 \(>0\))、且在超过半数训练 epoch 上都保持一致时,对应旧参数才判定为可复用,得到复用集合
复用决策记成二值掩码 \(M_t\)。这样只迁移方向兼容的旧知识,既省新参数又避免冲突梯度破坏旧任务。
2. 基于强化学习的自适应参数分配:让 A2C 替每个任务找"刚好够用"的剪枝率
针对固定剪枝率忽略任务复杂度差异的痛点。GRAPA 先把全部未冻结参数分给当前任务、以剪枝率 0 训出基模型并记其精度 \(acc^{base}_t\),再把剪枝建模成"任务自适应试错"问题,用 Advantage Actor-Critic(A2C)求解。状态 \(s_t^k\) 含 5 个特征:上一步的剪枝率与精度(两个步依赖量)+ 类别数、样本复杂度、可分性(三个任务描述量);actor 输出剪枝率 \(\rho_t^k\in(0,1)\)(以 \(\varepsilon=0.2\) 概率均匀探索),剪枝后短暂重训得 \(acc_t^k\),奖励为
其中 \(\delta_t^k\) 是剪枝带来的相对精度保留率,阈值 \(\eta=0.6\) 给精度跌太多时一个明确惩罚以阻止无效探索;\(\alpha=5\)、\(\beta=1.5\) 分别控制"重精度"与"重压缩"的权重。奖励鼓励智能体找到"不显著掉点前提下的最大剪枝率"。智能体只有约 7K 参数(相对 ResNet-18 的 11.7M 可忽略),每任务探索 \(\le 20\) 步,且最终不直接用策略输出、而是从满足精度约束的历史经验里挑奖励最高的剪枝率,兼顾鲁棒与低开销(训练智能体 <1.5% 总时间)。
实验关键数据¶
主实验¶
在 8 个数据集组成的两组(MFKT = MNIST/FashionMNIST/KMNIST/TinyImageNet,QSCF = QMNIST/SVHN/CIFAR-10/Food-101)、六条任务序列上评测,骨干为轻量 CNN 和 ResNet-18。下表摘录每条序列的平均测试精度(%):
| 方法 | MFKT C (CNN) | QSCF C (CNN) | MFKT R1 (R18) | QSCF R1 (R18) | MFKT R2 (R18) | QSCF R2 (R18) |
|---|---|---|---|---|---|---|
| LwF(正则化) | 34.86 | 41.86 | 73.80 | 68.24 | 58.80 | 60.39 |
| PackNet(参数隔离) | 65.39 | 58.95 | 74.90 | 80.64 | 77.88 | 80.78 |
| H2 | 71.78 | 64.81 | 81.34 | 87.64 | 81.22 | 82.72 |
| GrowBrain | 67.78 | 66.49 | 81.74 | 81.98 | 81.78 | 81.79 |
| GRAPA(本文) | 76.54 | 74.16 | 85.89 | 90.25 | 85.26 | 88.03 |
| Independent(上界) | 76.86 | 77.34 | 88.84 | 94.12 | 88.84 | 94.12 |
GRAPA 在所有序列上超过全部基线,且逼近"每任务独立训完整模型"的经验上界。其优势主要来自后段更难的任务(如 TinyImageNet、Food-101):固定剪枝率的 PackNet/H2 在容量耗尽后这些任务急剧掉点,GRAPA 因留下了容量而保持高精度。
消融实验¶
| 配置 | MFKT C | QSCF C | MFKT R1 | MFKT R2 | QSCF R1 | QSCF R2 |
|---|---|---|---|---|---|---|
| GRAPA(w/o GR)(复用全部旧参数) | 74.55 | 72.86 | 80.30 | 62.79 | 81.29 | 85.57 |
| GRAPA(w/o APA)(固定剪枝率) | 73.73 | 70.07 | 73.04 | 75.93 | 71.00 | 78.84 |
| GRAPA(完整) | 76.54 | 74.16 | 85.89 | 85.26 | 90.25 | 88.03 |
关键发现¶
- 去掉自适应分配(w/o APA)掉点更狠,尤其在 ResNet-18 长序列上(如 QSCF R1 从 90.25→71.00)——固定剪枝率会快速冻结大量参数、压垮后续复杂任务(其 TinyImageNet 仅 25.11%、Food-101 仅 24.25%)。
- 去掉梯度引导复用(w/o GR)即无脑复用全部冻结参数,会引入不兼容任务的负迁移,精度同样下降,证明"按梯度一致性筛选"是必要的。
- RL 剪枝优于启发式:在 QSCF R1 上线性衰减剪枝率(79.58%)、二分搜索(83.04%) 都不如 GRAPA 的 90.25%,且 GRAPA 对超参 \(\alpha,\beta\) 在 CNN 上不敏感(最优最差差距 <2%)。
- 容量保留:H2 因固定比例分配,到 TinyImageNet 阶段仅剩 <1.34% 参数可训;GRAPA 只冻结最小必要参数,给后段留出更多容量。
亮点与洞察¶
- 用梯度余弦一致性当"可复用性"判据:把"哪些旧参数能安全复用"从启发式 mask 变成有梯度方向依据的筛选,简洁且物理含义清晰,可迁移到任何参数隔离框架做"安全迁移门控"。
- 把剪枝率搜索交给强化学习:固定剪枝率是该领域长期的硬伤,GRAPA 用仅 7K 参数的轻量 A2C 智能体(≤20 步、含早停式经验选优)把它变成任务自适应,开销可忽略却带来稳定增益——"让模型自己决定该留多少容量"这一思路很可复用。
- 奖励函数同时编码精度与压缩:\(r=\delta^{\alpha}\rho^{\beta}\) 配合 \(\eta\) 硬惩罚,把"少掉点 + 多剪枝"两个目标显式写进奖励,调 \(\alpha,\beta\) 即可平移偏好。
局限与展望¶
- 总任务数仍受模型总容量硬上限约束:再省也终会耗尽,作者也承认这点,并提出未来可探索"主动遗忘"机制丢弃过时任务/不重要参数。
- 每步探索都要一次"剪枝 + 短重训",虽单次快、限 20 步,但相对无探索方法仍有额外训练开销(论文称 <1.5% 总时间,但这是相对量,绝对开销随任务数累加)。
- 任务描述状态里的"样本复杂度、可分性"如何精确计算只放在补充材料(⚠️ 以原文/补充为准),其鲁棒性与跨数据集可比性未在正文充分讨论。
- 评测聚焦图像分类任务序列、轻量骨干,未验证在检测/分割或更大模型上的表现。
相关工作与启发¶
- vs PackNet(固定剪枝率的训练-剪枝-重训): PackNet 给每任务按剩余比例剪枝,容量指数衰减、后段任务崩盘;GRAPA 用 RL 自适应剪枝率 + 梯度复用,把容量按需分配,长序列后段显著更优。
- vs H2(PackNet + Fisher 信息选择性复用): H2 用 Fisher 信息选不重要的旧参数复用,但仍是固定剪枝率;GRAPA 改用梯度一致性判可复用、并自适应分配新参数,二者结合更彻底地兼顾稳定与可塑。
- vs GrowBrain(超网络变换旧参数): GrowBrain 靠强任务相关性生成参数调整,异构、难度递增序列上泛化有限;GRAPA 不依赖强相关,按每任务需求分配,在 R2 乱序异构序列上更稳。
- vs LwF(正则化/知识蒸馏): LwF 共享参数空间、对后段复杂任务更灵活但严重遗忘早期任务;GRAPA 走参数隔离保不遗忘,同时通过自适应分配补上可塑性短板。
评分¶
- 新颖性: ⭐⭐⭐⭐ "梯度一致性复用 + RL 自适应剪枝率"两件武器组合解决固定剪枝率痛点,思路清晰且对症
- 实验充分度: ⭐⭐⭐⭐ 六条异构序列、两种骨干、消融+RL 策略对比+容量分析+超参敏感性,较全面
- 写作质量: ⭐⭐⭐⭐ 动机-设计一一对应、伪代码清晰;部分状态特征计算细节放补充材料
- 价值: ⭐⭐⭐⭐ 面向端侧受限容量持续学习,平均精度逼近独立训练上界,实用性强