论文
经典方法
★ 必读
Overcoming catastrophic forgetting in neural networks (EWC)
EWC:用 Fisher 信息弹性固定重要权重,对抗灾难性遗忘
James Kirkpatrick, Razvan Pascanu, Neil Rabinowitz, Joel Veness, et al. (DeepMind) · DeepMind · PNAS 2017 · 2016-12 · 被引 10739
一句话 DeepMind 提出 Elastic Weight Consolidation(EWC):训练新任务时对旧任务重要的权重加二次惩罚(重要性用 Fisher 信息对角线估计),在 permuted MNIST 上连学 10 个任务平均准确率保持 ~97%(SGD+dropout 掉到 ~78%),并首次在 10 个 Atari 游戏的顺序 RL 上做到不完全遗忘;被引 1 万+,是正则化类持续学习方法的起点——但'克服遗忘'的说法要打折:它只在任务边界已知的 task/domain-incremental 设定下成立。
这是什么 灾难性遗忘(catastrophic forgetting)指神经网络顺序学任务 B 时,对任务 A 重要的权重被覆盖,A 的性能骤降。2016 年之前的主流做法是把所有任务数据混在一起训(multitask learning),或者靠 replay 存储旧数据,存储开销随任务数线性增长。这篇 PNAS 2017 论文(arXiv 2016-12)从神经科学找灵感:小鼠学新技能时部分突触会被'固化'(dendritic spine 变大且长期保留),人为擦除这些突触对应技能就丢失——说明生物大脑靠降低重要突触的可塑性来保留旧技能。
EWC 把这个机制搬到人工神经网络:学完任务 A 后,估计每个参数对 A 的重要性;训练任务 B 时给重要参数加'弹簧',把它们拉回 A 的解附近,不重要的参数随便动。整个方法只需要存旧任务的参数快照和 Fisher 对角线(每个突触 3 个数),计算量与参数量、样本量都是线性关系,不用存旧数据。这是第一个在深度网络 + RL 规模上验证的正则化类持续学习方法,后来的 SI、MAS、online EWC 等整个谱系都从它衍生。
EWC 核心思想示意:灰色/米色椭圆分别是任务 A、B 的低误差区域。纯 SGD(蓝箭头)直奔 B 的最优、离开 A 的区域;均匀 L2(绿箭头)困在 A 附近学不会 B;EWC(红箭头)按 Fisher 重要性给每个参数不同刚度的弹簧,走到两个区域的交集。 机制与做法 核心机制:带 Fisher 权重的二次惩罚
损失函数为 L(θ) = L_B(θ) + Σ_i (λ/2)·F_i·(θ_i − θ*_{A,i})²。其中 θ*_A 是任务 A 训完的参数,F_i 是任务 A 上 Fisher 信息矩阵的对角元,λ 控制新旧任务的相对重要性。直觉是:网络过参数化,任务 B 的低误差区域很大,大概率与 A 的低误差区域相交;EWC 沿着'对 A 不敏感'的方向走,既学会 B 又不毁掉 A(论文 Fig 1 的示意图)。对比两个失败基线:纯 SGD 直奔 B 的最优、毁掉 A;均匀 L2 惩罚(所有权重同一根弹簧)保住 A 但学不会 B。
选 Fisher 对角线的理由有三:在极小值附近等价于损失的二阶导;只用一阶梯度就能算,大模型也算得动;保证半正定。第三个及以后的任务,每学完一个任务加一个新的二次惩罚项(这个'多惩罚'设计后来被 Huszár 指出与其贝叶斯推导不一致,见核查部分)。
permuted MNIST 主结果。A:顺序训 A/B/C 三个任务的曲线,SGD(蓝)学新忘旧,L2(绿)保旧学不了新,EWC(红)两者兼得;B:任务数增加到 10 时,EWC 平均准确率贴着单任务上限(虚线,~98%),SGD+dropout 掉到 ~78%;C:Fisher 矩阵重叠度随层深变化——任务差异大(黑)时浅层分开用、深层共享。 贝叶斯视角:Laplace 近似下的顺序后验
论文把顺序学习写成 log p(θ|D) = log p(D_B|θ) + log p(θ|D_A) − log p(D_B):任务 A 的全部信息都被吸收进后验 p(θ|D_A),它天然编码了'哪些参数对 A 重要'。真后验不可算,于是沿用 MacKay 1992 的 Laplace 近似,把它近似成均值 θ*_A、精度为 Fisher 对角线的高斯分布——重要参数方差小(弹簧硬)、不重要参数方差大(随便动)。
论文自己也承认这是明显的弱点:对角高斯 + 点估计方差会低估参数不确定性。Fig 4C 的扰动实验证实了这点——按 Fisher 零空间方向扰动权重(理论上应该完全不影响性能)实际掉分和逆 Fisher 方向一样多,说明模型对'某些参数不重要'过度自信。
Atari 10 游戏顺序 RL。A:训练调度,10 个游戏随机交替;B:总 human-normalized score(满分 10),纯 SGD(蓝)始终 <1,EWC+FMN 自动任务识别(红)到 ~6,给真实任务标签(棕)也只到 ~7;C:权重扰动实验——沿 Fisher 零空间扰动(橙)掉分和逆 Fisher 方向(蓝)一样,暴露对角近似低估了参数不确定性。 监督实验:permuted MNIST
任务构造:对 MNIST 输入像素做固定随机置换,每个置换是一个新任务,难度相同但解不同。全连接网络顺序训练,每个任务训完后不再接触其数据。结果:纯 SGD 训 B 时 A 的准确率立刻崩;L2 保 A 但 B 学不好;EWC 两者兼得。连学 10 个任务,EWC 平均准确率一直贴着单任务上限(~97-98%),SGD+dropout 一路掉到 ~78%(Fig 2B)。此前的工作(Goodfellow et al. 2015 等)靠 dropout+超参搜索只能撑到 2 个置换任务。
论文还用两个任务 Fisher 矩阵的重叠度分析网络怎么分配容量:置换像素少(任务相似)时整个网络的权重都被两个任务共享;置换大(任务差异大)时浅层各用各的权重、深层(靠近输出)仍然共享——因为输出域(数字类别)是共享的。
逐游戏拆解(附录图,读 reality 部分时对照看):黑线是单游戏 DQN 上限,红线 EWC,蓝线 SGD。EWC 在 boxing、krull、road_runner 等游戏接近上限,但在 star_gunner、demon_attack、defender、breakout 上远低于单游戏 DQN 甚至学不动——'克服遗忘'不等于'都学得好'。 RL 实验:10 个 Atari 游戏顺序学习
在 DQN 上加三样东西:(1) EWC 惩罚,在每次任务切换时算 Fisher,某游戏累计经历 2000 万帧后才开始保护;(2) 任务识别模块——把任务当 HMM 隐变量,用 Forget-Me-Not(FMN)过程在线推断当前在玩哪个游戏、并检测新游戏;(3) 每个游戏独立的短期 replay buffer,以及少量 game-specific 的 bias 和 gain 参数(每层)。训练调度是 10 个游戏随机交替、总计约 5 亿帧。
结果(Fig 3B):纯 SGD 的 DQN 总 human-normalized score 始终低于 1(等于只会玩一个游戏),EWC 达到 ~6/10;直接喂真实任务标签(task oracle)只比 FMN 自动识别好一点(~7),说明任务识别模块基本够用。但 EWC 明显低于'10 个游戏各训一个 DQN'的上限——论文归因于 Fisher 对角近似低估了不确定性。
关键结果 Permuted MNIST 连学 10 个任务:EWC 平均准确率 ~97%(贴近单任务 dashed line),SGD+dropout 掉到 ~78%;此前方法只能撑 2 个任务。 均匀 L2 惩罚是反例:保住任务 A 但学不动任务 B——证明'按重要性分配弹簧刚度'(Fisher 加权)是关键,而非惩罚本身。 Atari 10 游戏顺序 RL:纯 SGD 总 normalized score < 1(约等于只会一个游戏),EWC + FMN 任务识别 ~6/10,加 task oracle ~7/10;但仍显著低于 10 个单独 DQN 的水平。 Fisher 重叠度分析:任务差异大时浅层权重被分开使用、深层共享;任务相似时全网共享——EWC 不是简单切分网络,而是按需复用表征。 Fig 4C 扰动实验暴露方法上限:沿 Fisher 零空间扰动权重的掉分和逆 Fisher 方向一样,说明对角 Laplace 近似系统性低估参数不确定性,这是论文自认的最大弱点。 计算开销:每个参数只需额外存 2 个数(旧值 + Fisher 对角),运行时间对参数量和样本量都线性;对比 ELLA 需要求逆参数量维度的矩阵。 实证核查
有水分 核心机制真实有效且被大量第三方定性复现,方法史地位无争议;但标题'克服灾难性遗忘'明显超卖——定量数字第三方复现不到位,贝叶斯推导被正式指出有误,且后续系统评测证明它在 class-incremental 场景完全失效。
论文声称 EWC 在 permuted MNIST 上让大量任务顺序学习成为可能,平均错误率只有温和增长(10 任务 ~97%)。
DeepMind 从未放出官方代码。ContinualAI 的 continual-learning-baselines(Avalanche 官方复现库)在同一 benchmark 上只复现到 ACC=0.83,对照论文的 0.94,README 表格明确标为 ❌ 未达论文数字(github.com/ContinualAI/continual-learning-baselines)。定性结论(EWC >> naive SGD)被无数第三方 repo 复现,但论文的具体数字依赖未公开的超参细节。
论文把多任务惩罚(每学完一个任务加一个新的二次项)表述为贝叶斯顺序推断 + Laplace 近似的自然结果。
Huszár 在 PNAS 正式发表评论指出推导不自洽(arXiv:1712.03847,PNAS 2018 letter,被引 260+):严格按 recursive Laplace 近似推导,惩罚应该只有一个、锚在最近一次任务的参数上,Fisher 逐任务累加,λ 也不应出现在论文的位置。Kirkpatrick 等回复(PNAS 10.1073/pnas.1800157115)承认这是近似、但辩称多惩罚在经验上不差。值得注意的是 DeepMind 自己在 Schwarz et al. 2018(Progress & Compress)里就改用了 Huszár 形式的 online EWC——等于用脚投票认了这个批评。
标题声称'Overcoming catastrophic forgetting'(克服灾难性遗忘)。
van de Ven & Tolias 的系统评测(arXiv:1904.07734,后扩展为 Nature Machine Intelligence 2022,被引 1100+)给出定量结论:split MNIST 上 EWC 在 Task-IL 场景 98.64%,Domain-IL 掉到 63.95%,Class-IL 只有 20.01%——即完全失败,等于只会最后一个任务。整个正则化方法族(EWC/online EWC/SI)在 class-incremental 场景全军覆没,只有 replay 类方法能过 90%。EWC 只在测试时已知任务身份(或输入域变化但输出头不变)的设定下成立。
论文声称 EWC 让单个固定容量的 DQN 学会多个 Atari 游戏,达到接近人类的水平。
论文附录 Fig(本条目 fig04)显示逐游戏对比:EWC 在 star_gunner、demon_attack、defender、breakout 等多个游戏上远低于单游戏 DQN,有的几乎学不动(star_gunner 单游戏 DQN 到 4 万分,EWC 贴地);总分 ~6/10 意味着平均下来一半游戏没到人类水平。论文正文自己也承认'does not reach the score that would have been obtained by training ten separate DQNs'。另外该 RL 结果依赖任务切换点计算 Fisher + FMN 任务识别 + per-game buffer/bias/gain,并非'裸 EWC'的战绩,第三方无人复现过 Atari 部分(无官方代码,复现集中在 MNIST)。
方法'可扩展且有效'(scalable and effective),暗示可用于真实持续学习部署。
EWC 需要明确的任务边界来计算 Fisher 和固定锚点,任务数增多时惩罚项线性堆积(原始形式);Kemker et al. 2018(AAAI, Measuring Catastrophic Forgetting)等后续评测在更真实的数据集(CUB、AudioSet)上发现 EWC 的遗忘缓解远弱于 MNIST 上的表现。它如今在各持续学习 benchmark 里是'必列但常年垫底'的 baseline——学术地位 core,工程上基本不单独使用。
与我们方向的关系 这是课题组 continual-learning 书单的地基:正则化谱系(SI、MAS、online EWC)、回放谱系(拿它当对照)、架构谱系(Progressive Nets 是同组前作)全都以它为参照系。读它的正确姿势是三层:一看机制(Fisher 加权二次惩罚,五分钟能实现,~30 行 PyTorch);二看贝叶斯框架(顺序后验 + Laplace 近似,这个视角催生了 VCL、online EWC 等一串工作);三看它的失效边界——class-incremental 下完全不行,这直接解释了为什么 2019 年之后 replay 类方法成为主流。
可直接借鉴的点:(1) Fisher 对角线作为廉价的参数重要性度量,在模型合并、剪枝、LLM 微调防遗忘(如 EWC 正则化 SFT)里仍在用;(2) Fig 4C 的扰动实验设计——用零空间扰动检验重要性估计的质量,是很干净的诊断手法;(3) 做 benchmark 时务必区分 task-IL / domain-IL / class-IL 三种场景,EWC 的教训就是同一个方法在三种场景下结论完全相反。
阅读笔记 复现建议:不要按原论文的多惩罚形式实现,直接用 online EWC(Schwarz et al. 2018 / Huszár 形式,单惩罚 + Fisher 累加),数学上更干净、内存 O(1)。λ 极其敏感,permuted MNIST 上通常要扫 1e2~1e5;van de Ven 指出很多'EWC 不行'的复现是超参没扫够。另一个坑:Fisher 要用模型自己采样的标签(true Fisher)还是数据标签(empirical Fisher),不同实现不一致,结果差异可观。
材料清单 TeX 源码 已存档:Raw/overcoming-catastrophic-forgetting-in-neural/source/
Huszár 的正式批评 arxiv.org/abs/1712.03847 On Quadratic Penalties in EWC(PNAS 2018 letter 版本):指出多惩罚推导不自洽,给出正确的 online Laplace 形式;配套博客 inference.vc 写得更易读
三场景系统评测 arxiv.org/abs/1904.07734 van de Ven & Tolias, Three scenarios for continual learning:EWC 在 class-IL 下 20.01%(完全失败)的出处,后扩展为 NMI 2022 论文