持续学习 可视化实验室
用交互式 SVG 呈现灾难性遗忘、EWC、经验回放、知识蒸馏、突触巩固等持续学习核心技术。八个模块,纯原生实现。
灾难性遗忘 Catastrophic Forgetting
顺序学习多个任务时,新任务的梯度会覆盖旧知识,导致旧任务精度骤降。播放动画观察多任务遗忘曲线,切换“无保护 / 有保护”对比遗忘程度。
多任务遗忘曲线
点击“播放”顺序训练 4 个任务。无保护时旧任务精度随新任务训练迅速崩塌至随机水平;开启保护(如回放)后衰减显著放缓。
EWC 弹性权重巩固
Elastic Weight Consolidation 用 Fisher 信息矩阵估计各参数对旧任务的重要性,对重要参数施加二次惩罚,使新任务解靠近旧任务最优。拖动 λ 观察参数轨迹。
损失函数
EWC 在新任务损失上叠加旧任务的二次正则:L = L_new(θ) + (λ/2) Σ Fᵢ (θᵢ − θ*ᵢ)²其中 Fᵢ 是 Fisher 对角元,θ* 为旧任务最优参数。λ 越大,参数越被“锁”在旧最优附近。
经验回放 Experience Replay
Replay Buffer 保存旧任务样本,训练时与新批次混合。ER 随机采样、MER 选最大干扰样本、A-GEM 将梯度投影到不增加旧任务损失的方向。切换策略观察梯度约束差异。
策略说明
ER:从缓冲区均匀采样旧样本混入当前批次。MER:选择会使旧任务损失上升最多的样本优先回放。A-GEM:估计旧任务梯度参考方向,将当前梯度投影到不与其成钝角的半空间。
渐进神经网络 Progressive Net
每来一个新任务就添加一列新网络,并通过侧枝连接复用旧列已学特征,旧列参数完全冻结从而零遗忘。点击“添加任务”观察列与侧枝的增长。
结构
第 k 列的隐藏层通过侧枝接收前面所有列对应隐藏层的输出:h⁽ᵏ⁾ = φ(W⁽ᵏ⁾x + Σ_{j<k} U^{(j→k)} h⁽ʲ⁾)。旧列权重冻结,知识被横向迁移且不会遗忘。
知识蒸馏 Knowledge Distillation
用旧任务教师模型的软目标(soft targets)指导新任务学生模型,迁移暗知识。温度 T 越高,分布越平滑,非正确类的相对信息越显著。拖动温度滑块观察。
蒸馏损失
L = α · CE(y, s) + (1−α) · T² · KL(softmax(z_t/T) ‖ softmax(z_s/T))高温放大概率分布的尾部,使学生学习到类间相似度等“暗知识”,T² 系数保证梯度量级与温度无关。
突触巩固 Synaptic Consolidation
生物突触巩固的算法化:估计每个参数的重要性,重要参数学习率被压低。散点显示参数重要性 vs 学习新任务后的权重改变量,切换“巩固开关”对比。
重要性引导的学习率
对参数 i 维护重要性 Ωᵢ(累积权值改变量或 Fisher 近似),更新时 θᵢ ← θᵢ − η · gradᵢ / (1 + Ωᵢ)。Ωᵢ 越大,有效步长越小,重要参数被“巩固”。
任务边界检测 Boundary Detection
无监督地检测数据分布偏移:用新颖性信号(特征变化率)发现任务切换点。播放数据流,调整阈值,观察检测器在分布跳变处触发边界标记。
检测原理
滑动窗口计算特征分布的距离(如 KL 或均值漂移),得到新颖性信号 s(t)。当 s(t) 超过阈值且距上次边界大于最小间隔时,判定为新任务起始。阈值过高漏检,过低误报。
评估指标 BWT / FWT / ACC
用准确率矩阵 R[i,j](学完任务 i 后在任务 j 上的精度)评估持续学习。ACC 为末行均值,BWT 度量后向迁移(遗忘),FWT 度量前向迁移。悬停单元格查看数值。
指标定义
ACC = (1/T) Σⱼ R[T,j] BWT = (1/(T−1)) Σ_{j<T} (R[T,j] − R[j,j]) FWT = (1/(T−1)) Σ_{j>1} (R[j−1,j] − R̃ⱼ)BWT<0 表示遗忘,FWT>0 表示前向迁移。