Energy-Structured Low-Rank Adaptation for Continual Learning¶
会议: ICML 2026
arXiv: 2605.27482
代码: 暂未公开
领域: 模型压缩 / LoRA / 持续学习
关键词: continual learning, LoRA, 正交子空间, 能量集中, 动态秩分配
一句话总结¶
E2-LoRA 不在参数空间或输入特征空间做正交约束,而是把视角换到"任务引起的输出特征漂移" \(\Delta \mathbf{Y}_t = \Delta \mathbf{W}_t \mathbf{X}_t\),对它做 SVD 后把 LoRA 参数重排到能量集中且按秩有序的基上,从而能丢掉低能量秩、把容量回收给新任务,并配合按能量保留率自适应分配秩的策略,在多个持续学习基准上拿到 SOTA。
研究背景与动机¶
领域现状:基于预训练大模型 (PTM) 的持续学习(CL)主流做法是冻结 backbone,给每个新任务加 PEFT 模块(prompt / adapter / LoRA)。为了减少任务间干扰,又派生出一族"正交化"方法:要么强制不同任务的 LoRA 参数互相正交(O-LoRA,Param-Param),要么用历史输入特征做 SVD 后让新任务参数与主奇异向量正交(GPM / DualGPM / InfLoRA,Input-Param)。
现有痛点:作者观察到两条正交化路线都存在"能量过度弥散"问题——参数空间里旧任务知识被无规律打散到 \(\mathbf{B}\) 的各列上,子空间随任务线性增长,新任务可用容量被严重挤压;输入空间里 PTM 的特征本身就高维多样,按输入主方向做约束等于把新任务可走的方向限制得太死,可塑性骤降(见原文图 1)。本质上:受限子空间是"刚性"的,无法回收。
核心矛盾:稳定性(不忘旧)与可塑性(学新)之间的 trade-off 被"正交子空间不可回收"这一约束放大了——子空间一旦分给某任务就锁死了。
本文目标:找一个低维、能量集中、有内在排序的子空间表示旧任务知识,使得低能量方向可以随时被释放、回收给新任务,同时保留旧任务输出几乎不变。
切入角度:与其在参数或输入这两端做文章,不如盯住 LoRA 真正影响模型的中间产物——输出特征的漂移 \(\Delta y_t(x) = \Delta \mathbf{W}_t x\)。作者实证 + 理论都发现:尽管输入 \(\mathbf{X}_t\) 可能是高秩的,由 \(\Delta \mathbf{W}_t\) 引起的 \(\Delta \mathbf{Y}_t\) 通常集中在极少数主方向上(任务语义本身就是低维的)。
核心 idea:对 \(\Delta \mathbf{Y}_t\) 做 PCA / SVD,把 LoRA 的 \(\mathbf{B}_t, \mathbf{A}_t\) 重写到这组按能量降序排列的正交基上——这样"前 \(r\) 秩"就是该任务知识的最佳低秩近似(理论可证,详见 Prop 3.1/3.2),剩下的低能量秩可以安全砍掉、释放容量。
方法详解¶
整体框架¶
设 \(\mathbf{W}_0\) 是预训练线性层权重,第 \(t\) 个任务到来时为它分配一个 LoRA 模块 \(\Delta \mathbf{W}_t = \mathbf{B}_t \mathbf{A}_t\)。E2-LoRA 在每个任务上跑四个阶段:(1) 动态秩分配——按能量保留阈值 \(\rho\) 把旧任务的 LoRA 剪到 \(r_k^{(t)}\) 秩,把腾出的列拼成新任务 \(\mathbf{B}_t\) 的初始基并冻结;(2) 训练——只优化 \(\mathbf{A}_t\) + self-distillation 防遗忘;(3) 能量结构化变换——对 \(\Delta \mathbf{Y}_t\) 做 SVD 后把 \((\mathbf{B}_t, \mathbf{A}_t)\) 旋转到能量基上、按秩有序;(4) 分类头对齐——用类统计生成的合成特征 fine-tune classifier。
关键设计¶
-
输出漂移诱导的正交化(Output-Drift-Induced Orthogonalization):
- 功能:给"该正交于谁"这个核心问题换一个被约束维度最少、能量最集中的参考空间。
- 核心思路:在 proxy 输入 batch \(\mathbf{X}_t\) 上算输出漂移矩阵 \(\Delta \mathbf{Y}_t = \mathbf{B}_t \mathbf{A}_t \mathbf{X}_t \in \mathbb{R}^{d_\text{out}\times n}\),做 SVD 得到 \(\Delta \mathbf{Y}_t = \mathbf{U}_t \mathbf{\Sigma}_t \mathbf{V}_t^\top\),其中 \(\mathbf{U}_t\) 的列就是按能量降序的输出方向。新任务 \(\mathbf{B}_t\) 直接初始化为前几个旧任务"低能量列"拼起来再冻结,这样 \(\mathbf{B}_t \mathbf{A}_t\) 的输出必然落在旧任务漂移的零能量子空间,等价于在输出空间做了硬正交。
- 设计动机:参数级正交(O-LoRA)的问题是 \(\mathbf{B}\) 的列没有任何能量含义,正交约束 \(\|\mathbf{B}_i^\top \mathbf{B}_t\|_F^2\) 是"盲约束";输入级正交(DualGPM/InfLoRA)的问题是 PTM 的输入表示天然高秩、能量分散,约束等于把新任务大半个方向都关掉。而 \(\Delta \mathbf{Y}_t\) 既反映"任务真正改变了模型输出的哪些方向",又因为单任务语义低维而能量集中,是天生最适合做正交化的空间。
-
能量结构化变换 + 秩截断最优性:
- 功能:在不动整体 \(\Delta \mathbf{W}_t = \mathbf{B}_t \mathbf{A}_t\) 数学上等价性的前提下,把 \((\mathbf{B}_t, \mathbf{A}_t)\) 重写成"前几个秩承载几乎全部任务知识"的形式。
- 核心思路:训练完当前任务后做 \(\mathbf{B}_t \leftarrow \mathbf{U}_t[:,:r_t]\),\(\mathbf{A}_t \leftarrow (\mathbf{U}_t[:,:r_t])^\top \mathbf{B}_t \mathbf{A}_t\)。论文证明(Prop 3.1):在所有秩 \(\le r\) 的更新里,\(\mathbf{B}_t[:,:r]\mathbf{A}_t[:r,:]\) 使期望输出重构误差 \(\mathbb{E}_x \|\mathbf{B}_t[:,:r]\mathbf{A}_t[:r,:]x - \mathbf{B}_t\mathbf{A}_t x\|^2\) 最小;(Prop 3.2):截到前 \(r\) 秩后期望误差就是丢掉的奇异值平方和 \(\sum_{i=r+1}^{d_\text{out}} \sigma_i^2\)。
- 设计动机:这一步把"低能量秩可丢"从经验观察升级为带理论保证的最优截断。它也是把"输出漂移诱导正交化"落到可执行操作的关键——只有先排好序、集中能量,"剪掉尾部 + 把列让出来给下个任务"才不会损伤已学知识。
-
动态秩分配策略(Dynamic Rank Allocation):
- 功能:在共享的 \(d_\text{out}\) 容量池里,按"旧任务要保留多少"和"新任务至少要多少"动态调度每个任务的当前秩。
- 核心思路:对每个旧任务 \(k\),按能量保留比例 \(\sum_{i=1}^{r_k^{(t)}} \sigma_{k,i}^2 / \sum_{i=1}^{r_k} \sigma_{k,i}^2 \ge \rho\) 选最小 \(r_k^{(t)}\);新任务设最低秩门槛 \(r_t^\text{min} = \lceil d_\text{out}/t \rceil\);如果按能量剪还不够给新任务,再均匀地从所有旧任务尾部继续砍能量最低的秩,直到达标。
- 设计动机:固定秩分配在任务数增长时要么早早压缩、损失精度,要么过度占用、新任务可塑性塌陷。把"剪多少"绑定到具体能量阈值 \(\rho\) 上,相当于让每个任务"按需占地"——简单任务只占 1~2 秩、复杂任务多占几秩,整个 \(d_\text{out}\) 容量被精打细算复用。
损失函数 / 训练策略¶
总损失 \(\mathcal{L} = \mathcal{L}_\text{ce} + \lambda \mathcal{L}_\text{distill}\)。其中 \(\mathcal{L}_\text{distill}\) 是温度 \(T=2\) 下旧类 logits 的 KL 自蒸馏(teacher = 冻结历史 LoRA 的同一网络),\(\mathcal{L}_\text{ce}\) 是新类的交叉熵。最后一步分类头对齐用类内统计合成特征。
实验关键数据¶
主实验¶
ViT-B/16-IN21K 为骨架,在 ImageNet-R / CIFAR-100 / CUB-200 / Cars-196 上做 class-incremental 持续学习(Last-Acc = 学完所有任务的精度,Inc-Acc = 整个增量过程平均精度)。摘录原文 Table 1 的关键 baseline:
| 方法 | ImageNet-R Last-Acc | CIFAR-100 Last-Acc | CUB-200 Last-Acc | Cars-196 Last-Acc |
|---|---|---|---|---|
| L2P | 66.49 | 82.76 | 62.21 | 38.18 |
| DualPrompt | 68.50 | 85.56 | 66.00 | 40.14 |
| SLCA | 77.00 | 91.53 | 84.71 | 67.73 |
| EASE | 77.75 | 86.54 | 79.90 | 35.46 |
| BiLoRA | 77.95 | 87.46 | — | — |
| SSIAT | 79.38 | 91.35 | 88.75 | 71.02 |
| MOS | 78.10 | 90.53 | 89.91 | 67.76 |
| E2-LoRA(本文) | 新 SOTA | 新 SOTA | 新 SOTA | 新 SOTA |
所有基准上 Last-Acc 与 Inc-Acc 均优于已知 SOTA(具体数值见原文,提升幅度在 Cars-196 这类细粒度长任务序列上最显著)。
消融实验¶
| 配置 | 行为说明 |
|---|---|
| Param-Param 正交(O-LoRA 风格) | 子空间被打散、新任务可用方向迅速耗尽,长序列上掉点 |
| Input-Param 正交(InfLoRA 风格) | PTM 输入特征高秩,约束太强,可塑性降低 |
| Output-Drift 正交(本文) | 单任务能量集中在少数主方向,旧任务保留 + 新任务空间充足 |
| 去掉能量结构化变换 | \(\mathbf{B}\) 列无序,无法按秩剪枝,退化为固定秩 LoRA |
| 去掉动态秩分配(固定 \(r_t\)) | 后期任务可用容量不足,可塑性下降 |
| 去掉 self-distillation | 旧类 logits 漂移,遗忘加重 |
关键发现¶
- 视角的转换比额外正则更重要:仅仅把约束空间从"参数 / 输入"换成"输出漂移",并不增加可训练参数,但带来一致涨点——说明问题症结在子空间的能量分布,而非约束方式本身。
- 截断误差有闭式上界 \(\sum_{i>r} \sigma_i^2\),意味着能量保留率 \(\rho\) 直接对应"输出重构误差上限",调参可解释。
- 在 Cars-196(细粒度 + 任务多)这种最难的设定上,差距相对其他 SOTA 拉得最大,呼应了"动态容量回收"在长任务序列上的价值。
亮点与洞察¶
- "知识藏在输出而非参数"的观察 + 一个简洁的 PCA on \(\Delta \mathbf{Y}_t\),几乎不增加运行开销就把 LoRA 持续学习推到新一档。这种"换问题表述"的设计常常比"加一个新正则"更有威力。
- 把能量保留率 \(\rho\) 这一物理可解释的旋钮直接挂到秩分配上——这点对调参非常友好,业务上知道"我能容忍 5% 输出误差"就能反推 \(\rho\)。
- 能量结构化变换其实是 LoRA 版本的"主成分对齐":它启示我们任何 PEFT 方法(IA³、AdaLoRA、prefix tuning)在持续学习场景下,都可以做完任务后"对齐到任务内禀低维基"再保存,这种思路应可推广。
- 释放低能量基给后续任务的设计,本质上把持续学习当成"有限容量池的拍卖",比"线性增长子空间"更接近大脑容量约束下的学习模式。
局限与展望¶
- 输出漂移的 SVD 在每个任务结束时跑一次,proxy batch 越大越准但越慢;如果 \(d_\text{out}\) 很大(如 LLM 隐藏维 4096+),SVD 成本不可忽略。
- "输出漂移低秩"这条经验观察来自 ViT 分类任务,在 LLM 生成任务、检索任务、RLHF 微调等输出分布更复杂的场景能否同样集中尚未验证。
- 动态秩分配假设所有任务共享一个 \(d_\text{out}\) 容量池,但实际多层 LoRA 跨层秩耦合 / 跨模块平衡没单独建模。
- 阈值 \(\rho\) 全网络全任务共用一个值,没探索分层 / 分任务自适应 \(\rho\) 是否能进一步提升。
相关工作与启发¶
- vs O-LoRA:O-LoRA 在参数空间做正交 \(\|\mathbf{B}_i^\top \mathbf{B}_t\|_F^2\),子空间随任务线性增长且不可回收;E2-LoRA 让每个任务的 LoRA 按能量"压紧 + 排序",低能量部分可直接腾给下一个任务。
- vs GPM / DualGPM / InfLoRA:它们在输入特征上做 SVD,但 PTM 的输入特征能量分散;E2-LoRA 用输出漂移的低秩性质,约束更精准、对可塑性的伤害更小。
- vs AdaLoRA:AdaLoRA 也在 LoRA 上做能量级裁剪,但目标是单任务下的参数效率;E2-LoRA 把同样的思想扩到多任务,并加上"释放给后续任务"的回收机制。
- vs EASE / MOS / TUNA(adapter 路线):它们靠任务专属 adapter + 路由 / 融合解耦任务,参数随任务数线性增长;E2-LoRA 在固定 \(d_\text{out}\) 容量内复用秩,更节省。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把正交化的参考空间换到"输出漂移"上是一个干净的视角转换,并配套了 PCA + 秩截断最优性证明
- 实验充分度: ⭐⭐⭐⭐ 四个分类基准全面对比 + class/domain-incremental 双设定 + 多种正交化路线消融
- 写作质量: ⭐⭐⭐⭐ 用 Prop 3.1/3.2 把直觉写成定理,图 1 把三种正交化空间的能量分布对比讲得清楚
- 价值: ⭐⭐⭐⭐ 在持续学习 + PEFT 这条主流路线上拿 SOTA,方法本身可即插即用到任何 LoRA-CL 框架