正则化把旧任务压成重要性或教师输出, 回放选择保留一部分旧经验, 让历史风险重新进入每次更新. 朴素 experience replay 已经很强: 当前 batch 与记忆 batch 混合, 对同一个损失做梯度下降. 它没有神秘结构, 但直接修复了顺序训练最根本的统计缺口——当前数据不再代表全部历史目标. 回放用固定预算近似一个不断增长、不断改变价值的历史分布. 样本数只是这个估计器的一项配置.
设当前数据分布为 , 记忆缓冲区诱导分布为 , 混合目标为
与真实历史混合分布的差异产生估计偏差, 有限样本又产生方差. 选择策略、每类配额、采样权重和记忆内容共同决定这两个量. 只报告缓冲区条目数不够: 图片、token 序列、特征、logits 和生成器参数的字节成本差别很大.
1. 从 reservoir sampling 到类别原型
数据流长度未知时, reservoir sampling 能保证每个已见样本以相同概率留在大小为 的缓冲区中. 第 个样本以 的概率进入, 若进入则随机替换已有槽位. 它对全流给出无偏均匀样本, 不保证类别平衡, 也不保证稀有但重要的边界样本一定留下. 长尾数据里, 少数类可能完全消失.
iCaRL 按类别分配容量并选择接近特征均值的 exemplars. 这有利于 nearest-mean 分类器, 也让每类都得到代表;代价是类别数增长时每类配额下降, 旧类样本需要继续削减. 表征本身还会漂移, 在旧特征空间中接近均值的样本, 更新后未必仍有代表性. 随机、类别平衡、梯度匹配和难例优先各自优化不同目标, 没有一种选择器对所有未来查询都最优.
2. 记忆可以保存标签之外的信息
DER 保存样本在当时模型下的 logits, 回放时既训练硬标签, 也匹配旧 logits. logits 记录类别之间的相对关系和模型当时的决策状态, 比单个标签包含更多函数信息. 它们同时带有时间戳含义: 后续模型能够看见自己过去怎样判断这个样本. 如果早期预测本身错误, 蒸馏也会保护错误, 因此 DER++ 再加入硬标签监督.
生成式回放训练生成器产生旧数据, 避免保存原样样本. 生成器同样会遗忘, 多轮自生成会累积模式丢失和标签漂移. 它把存储压力换成训练与验证成本, 还需要判断生成样本是否覆盖真实历史. 对语言模型, 旧模型可以生成旧任务文本, 但输出往往集中在高概率模式, 罕见事实和失败样本更容易消失.
外部检索记忆与训练回放使用相似载体, 写入位置却不同. replay 样本进入梯度并改变参数;RAG 在推理时提供证据, 可以更新索引而不改模型. 需要事实可追溯、频繁删除和快速更新时, 外部记忆通常更合适;需要把新模式内化进表征、离线也能工作时, 才有理由承担训练更新与遗忘风险.
3. GEM 把记忆变成梯度约束
GEM 先计算当前梯度 与每个旧任务记忆梯度 . 若 , 当前更新会在一阶近似下提高旧任务损失. 它将 投影到满足 的最近方向. 这把回放从混合损失变成显式约束, 能解释哪些任务阻止了当前更新.
A-GEM 用一个参考记忆 batch 的梯度 合并多条约束. 冲突时,
计算明显降低, 保证也变弱: 平均参考梯度不升, 某个旧任务仍可能受损. 约束只是一阶局部判断, 学习率过大或连续多步更新仍会离开安全区域. GEM 的二次规划与 A-GEM 的单约束投影展示了典型代价转移: 更细的历史保护换来更高计算和更强任务边界依赖.
4. 固定预算下如何判断记忆价值
公平比较应固定总字节与总训练 FLOPs. 保存 500 张图片、500 段 token、500 个特征向量和一份旧教师不是同一预算. replay ratio 还改变每一步中新旧梯度权重;增加记忆同时增加训练步数, 会把额外计算误记成选择器收益. 应分别扫描容量、采样比例和训练预算.
缓冲区质量需要反事实检验. 固定学习器交换两种缓冲区, 看收益是否随记忆迁移;固定缓冲区交换学习器, 看优势来自选择还是优化. 打乱标签检验监督信息, 打乱时间戳检验顺序信息, 替换为同类随机样本检验所谓难例是否真的重要. 最终同时报告 BWT、FWT、当前任务学习曲线和每类表现, 才能看到保持、迁移与顽固性.
无限数据流配固定容量时, 遗忘不可避免. 可研究的是删除是否对未来价值影响最小、错误能否被发现、原证据能否重新取得. 回放与外部记忆 会沿 ER、iCaRL、GEM、DER 与生成式回放展开;若任务能够通过独立模块承载, 下一条 结构与路由 会把容量增长加入选择空间.
5. 记忆的价值会随模型改变
缓冲区不是一次选择后永远有效. 模型表征更新以后, 原来靠近类别中心的样本可能移动到边界, 旧 logits 也可能与当前类别空间不兼容. 定期重新估值能改善已有条目的配额, 却无法找回已经删除的模式. 选择错误具有不可逆性, 因而许多策略保留一部分随机槽位, 避免选择器的当前偏见占满全部容量.
样本还可能过时. 软件接口、政策与现实事实改变后, 旧内容不一定应被继续强化. 为记忆附来源、时间与版本, 可以在当前事实和历史事实之间条件化采样. 冲突样本也不应自动以新覆盖旧: 它可能表示概念漂移, 也可能只是标注错误. 保存冲突对并等待外部证据, 比一次梯度更新决定真伪更稳妥.
隐私删除揭示了参数记忆和外部记忆的差别. 从 buffer 删除样本并不能撤销它已经造成的参数更新;生成器与 logits 也可能泄露旧信息. 若任务要求可追溯删除, 外部检索或可隔离模块更容易给出明确边界. 回放因此只是在保持收益、存储、隐私和可撤销性之间的一种选择.
记忆还可以按未来效用而非过去频率估值. 罕见样本出现得少, 可能正好定义决策边界;常见样本重复很多, 新模型已经稳定掌握. 用反事实删除测每条记忆对旧风险的边际贡献, 再与随机保留比较, 可以判断选择器是否捕捉了真正价值. 估值本身会随模型变化, 因而需要定期复核并为不可恢复的旧模式留出随机覆盖.
当未来分布未知时, 随机覆盖仍是最稳健的参照, 复杂选择器必须在多种顺序上超过它.
参考文献
- Rebuffi, S.-A. et al. (2017). iCaRL.
- Lopez-Paz, D., & Ranzato, M. (2017). Gradient Episodic Memory.
- Chaudhry, A. et al. (2019). Efficient Lifelong Learning with A-GEM.
- Buzzega, P. et al. (2020). Dark Experience for General Continual Learning.
- Rolnick, D. et al. (2019). Experience Replay for Continual Learning.