用 AI 算 EWC 弹性约束:旧任务梯度平均为零,重要参数为何仍然不该随便改

昨天 3阅读

模型继续学习新任务时,旧任务能力可能下降。弹性权重巩固EWC用围绕旧参数的二次惩罚,让对旧任务较重要的方向更难移动。这里的“重要”不能直接从一批梯度的平均值读出:正负变化相互抵消后,敏感性仍可能很大。

用 AI 算 EWC 弹性约束:旧任务梯度平均为零,重要参数为何仍然不该随便改

AI模型生成的概念插图:不同强度的弹性连接表示参数受到不同约束;不是实际弹簧实验、模型结构或精确梯度图。

先平方再平均,不是先平均再平方

给出两条虚构的旧任务对数似然梯度记录,分别为[3,1]和[-3,-1]。它们的逐坐标平均都是0;逐坐标平方再平均,却得到[(9+9)/2,(1+1)/2]=[9,1]。把平均梯度0再平方,会丢掉这两项变化的幅度。

EWC原方法使用Fisher信息的对角近似衡量局部参数重要性。这里用给定梯度的平方平均构造一份经验估计,仅供演示;有限数据的经验估计与模型分布下的真实Fisher不是可以无条件互换的对象,也没有真的训练出这些数。

新任务想往同一处走,旧任务的牵引不同

设旧参数w旧=(0,0),新任务的损失为[(w₁-1)²+(w₂-1)²]/2。若只看新任务,最优点是(1,1)。给定重要性F=(9,1),固定λ=1,EWC惩罚为[9w₁²+w₂²]/2,总目标是新损失与该惩罚之和。

对w₁求导得到(w₁-1)+9w₁=10w₁-1,令其为0得到w₁=0.1。对w₂求导得到(w₂-1)+w₂=2w₂-1,得到w₂=0.5。两个方向都能移动,但第一项受到更强牵引,只走了较短距离。

此处二阶导数分别为10与2,均为正,交叉项为0,因此(0.1,0.5)确实是这个二次目标的唯一最小值。它不是冻结第一项,也不是给两项统一一个更小的学习率;即使求到收敛,两项的折中位置仍然不同。

把三个位置的目标完整核对

在旧点(0,0),新任务损失为1,惩罚为0,总计1。直接走到新任务最优点(1,1),新损失为0,但惩罚为5,总计5。在折中点(0.1,0.5),新损失为0.53,惩罚为0.17,总计0.7,比前两者都低。

程序用精确分数计算三处目标,并检查折中点的两项导数都为0。让AI报告新任务损失与惩罚的分项,而不只报告总数,才能看见它为了保留旧约束牺牲了多少新目标。总目标下降不等于新任务单独达到最好。

本例旧参数恰好为0,写起来像普通权重衰减;一般EWC围绕的是已学到的旧值,惩罚应使用(wᵢ-w旧ᵢ)²,不能擅自换成wᵢ²。若把λ设为0,就回到新任务最优点;若某项F为0,该项在这份近似里不受旧任务惩罚。

真实模型中,Fisher对角近似忽略参数之间的关联,重要性估计也依赖数据和计算方法。F为0不能据此断言那个参数怎样改都不会伤害旧任务。任务冲突、模型容量不足或连续积累约束,都可能限制新旧能力同时保留。

EWC适合用来理解持续学习中“有选择地限制变化”的思路。算清二次惩罚能帮助审查实现,却不能代替旧任务与新任务各自的验证;尤其不要把一组漂亮的约束系数当成已经消除了遗忘的证据。

资料核对日期:2026年10月2日。算例为原创教学设定,已用独立程序复核,未进行真实模型训练或效果测试。

参考资料

Kirkpatrick等:Overcoming catastrophic forgetting in neural networks

文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。