想象一下学习弹钢琴。你花了几个月的时间练习音阶和简单的曲子。然后,你决定学习西班牙语。当你变得流利时,你会突然忘记如何弹奏《一闪一闪小星星》吗?当然不会。人类拥有一种非凡的持续学习能力——我们在一生中不断获取新知识和技能,而不会抹去之前学到的一切。

几十年来,这一直是我们最强大的人工智能模型——深度神经网络——的主要障碍。当你用一个新任务训练标准神经网络时,它常常会遭受一种称为灾难性遗忘的问题。网络为了掌握新任务而调整内部参数 (即“权重”) ,但在此过程中,会覆盖掉保存旧任务知识的参数。就好像在你学会第一个西班牙语动词变位的那一刻,你的钢琴课记忆被彻底抹去。

这一限制是构建真正智能、自适应AI的重大障碍——这样的模型应当能够在不断变化的环境中持续学习,而无需从头重新训练。我们能否构建出一种人工智能,它在学习识别鸟类后,再学习猫、汽车等,而不丧失之前的技能?

2017年,Zenke、Poole和Ganguli发表的研究论文《通过突触智能实现持续学习》(Continual Learning Through Synaptic Intelligence) 提出了一个优雅且受大脑启发的解决方案。研究者问道: 如果网络中的连接——也就是突触——能够变得更聪明呢?如果每个突触都能记住自己在过去任务中的重要性,并保护自己不被过度改变呢?

这正是突触智能 (Synaptic Intelligence,简称 SI) 的核心思想。它能显著减少灾难性遗忘,让我们离终身学习机器更近一步。


边学边忘的挑战

要理解灾难性遗忘的原因,最好把神经网络的训练过程进行可视化。可以将训练想象为一次穿越广阔、高维景观的旅程。这个景观中的每个点都代表网络参数 (权重与偏置) 的一种特定配置,每个点的海拔表示“损失”——即网络在给定任务上的表现有多差。学习就是找到一个损失较低的深谷。

当模型学习任务1时,梯度下降引导它的参数进入一个对应低损失的山谷。现在我们引入任务2 。 这个新任务拥有完全不同的损失景观。对任务1来说的山谷,可能对任务2来说是一座高山。为了学习任务2,网络开始朝新的山谷移动——爬出原本为任务1找到的谷底,从而忘记如何执行第一个任务。

一张示意图,展示了在新任务上训练如何抹去旧任务的知识。黑色路径表示标准训练,它为任务2找到了一个好的解,但对任务1来说却是一个糟糕的解。橙色路径表示一个能兼顾两个任务的理想解。

图1: 灾难性遗忘的问题。标准训练在任务2 (黑色路径) 上会使网络远离任务1的解。理想的巩固路径 (橙色) 找到能在两个任务上都表现良好的解。

研究者们尝试了多种策略来解决这一问题:

  1. 架构方法 (Architectural Approaches): 通过为每个新任务增加新的神经元或模块来改变网络结构。这样可以避免任务之间干扰,但模型会随着任务的增加无限膨胀。
  2. 功能方法 (Functional Approaches): 使用知识蒸馏等技术,鼓励新模型的输出与旧模型保持一致。这些方法有效,但计算成本高,通常需要保留旧网络的副本。
  3. 结构方法 (Structural Approaches): 添加正则化项,阻止对之前任务中最关键的参数进行更改。最著名的结构方法是弹性权重巩固 (Elastic Weight Consolidation,简称 EWC) ,它在训练结束后,通过损失景观的曲率——即费雪信息——识别重要参数。

突触智能建立在最后一种思路之上,但提出了关键改进: 它在整个学习过程中在线测量参数的重要性,而不是依赖训练后的单一快照。


核心理念: 让突触变得智能

突触智能基于一个简单却强大的洞见: 一个参数的重要性不应仅由其最终值决定,而应取决于它在学习过程中经历的完整轨迹 。 如果一个权重在训练中持续帮助降低损失,那么它就是重要的。

为了实现这一点,作者使用了路径积分这一数学工具——这是从物理学与微积分中借鉴而来的方法。

沿学习路径衡量重要性

我们来仔细看看训练过程中发生的事情。随着参数从起点 \( \boldsymbol{\theta}(t_0) \) 演变到终点 \( \boldsymbol{\theta}(t_1) \),总损失 \(L\) 的降低可以表示为:

\[ \int_{t_0}^{t_1} \boldsymbol{g}(\boldsymbol{\theta}(t)) \cdot \boldsymbol{\theta}'(t) \, dt = L(\boldsymbol{\theta}(t_1)) - L(\boldsymbol{\theta}(t_0)) \]

这里,\( \boldsymbol{g} \) 是损失相对于参数的梯度,而 \( \boldsymbol{\theta}'(t) \) 是这些参数随时间变化的速率。这个公式的直觉很清晰: 将每一步对损失改善的微小贡献累加起来,便得到总损失的下降。

研究者将这一总变化分解为每个参数的贡献。对于每个参数 \( \theta_k \),他们定义了一个重要性度量 \( \omega_k^{\mu} \),用于追踪突触 \(k\) 对任务 \( \mu \) 的损失降低贡献:

\[ -\sum_k \omega_k^{\mu} = \sum_k \int_{t^{\mu-1}}^{t^{\mu}} g_k(\boldsymbol{\theta}(t)) \theta_k'(t) \, dt \]

在实践中,这个计算相当直接。训练期间,每个突触都会维护一个关于当前梯度 \( g_k \) 与参数更新 \( \theta_k' \) 的累积和。若 \( \omega_k^{\mu} \) 较高,说明该突触在持续帮助降低损失——即它在该任务中十分重要。

关键在于,这项计算是在训练过程中实时进行的,因此几乎不会增加额外计算负担。


巩固重要的突触

完成任务1后,模型已经计算了所有参数的重要性分数 \( \omega_k^1 \)。在训练任务2时,我们希望保护那些对于任务1至关重要的参数。为此,SI通过在新任务损失函数中加入一个巩固惩罚项来实现:

\[ \tilde{L}_{\mu} = L_{\mu} + c \sum_k \Omega_k^{\mu} (\tilde{\theta}_k - \theta_k)^2 \]

释义如下:

  • \( L_{\mu} \): 当前任务 \( \mu \) 的标准损失函数。
  • 第二项: 让新参数 \( \theta_k \) 保持靠近先前值 \( \tilde{\theta}_k \)。
  • \( c \): 控制学习新信息与保留旧知识之间的权衡。
  • \( \Omega_k^{\mu} \): 每个参数对应的巩固强度,累积了所有过往任务的重要性。

巩固强度 \( \Omega_k^{\mu} \) 的计算公式为:

\[ \Omega_k^{\mu} = \sum_{\nu<\mu} \frac{\omega_k^{\nu}}{(\Delta_k^{\nu})^2 + \xi} \]

其中,\( \Delta_k^{\nu} = \theta_k(t^{\nu}) - \theta_k(t^{\nu-1}) \) 表示任务 \( \nu \) 期间参数的变化,\( \xi \) 是一个小常数,用于避免除零。这种归一化确保了参数的大幅变动不会受到过度惩罚。

一张示意图,展示了SI惩罚项如何充当原始损失函数的代理。

图2: SI巩固惩罚项充当旧任务损失函数 (黑色曲线) 的“代理损失” (绿色曲线) 。它近似表示总损失下降,最小值与原函数重合,有效保留旧解而无需原始数据。

这一机制确保了先前任务中关键参数在学习新任务时仅作微调,而不重要的参数则可继续自由调整,从而实现无灾难性遗忘的持续学习。


对突触智能的测试

为验证SI的有效性,作者在多个计算机视觉持续学习基准上对其进行了评估。

分割 MNIST (Split MNIST)

第一个测试使用手写数字数据集MNIST,将其分为五个连续任务: 任务1区分“0”和“1”,任务2区分“2”和“3”,依此类推。

一张图表显示了分割MNIST基准上的准确率。绿线 (使用SI) 在所有任务上保持高准确率,而蓝线 (不使用SI) 则遗忘旧任务。

图3: 分割MNIST结果。没有巩固 (c=0) 时,网络会遗忘早期任务,准确率跌至随机水平 (0.5) 。使用SI (c=1) 时,所有任务的准确率均维持较高水平。

结果十分显著。未巩固的网络 (蓝线) 会快速遗忘先前任务,到训练结束时,任务1的准确率已降至随机猜测。而启用SI后 (绿线) ,模型在所有已学任务上保持近乎完美的准确率——清楚地展示了智能突触有效防止遗忘。

置换 MNIST (Permuted MNIST)

更具挑战性的测试是置换MNIST , 其中每个任务都会将图像像素随机重排。这迫使模型在共享架构的同时学习不同的输入输出映射。

一张图表比较了SI、EWC和标准SGD在置换MNIST基准上的表现。SI和EWC明显优于其他方法。

图4: 置换MNIST平均准确率。SI (“Ours”,蓝色) 的表现与EWC (灰色) 相当,远超常规SGD (绿色) 和带dropout的SGD (红色) 。

SI与EWC在连续十个任务中均保持高准确率,而标准随机梯度下降 (SGD) 则出现严重遗忘。SI实现了稳健的持续学习,与EWC性能相当,同时完全在线计算完成。

为更好理解SI的工作机制,作者还分析了不同任务间的突触重要性分数 \( \omega_k^{\mu} \) 的相关性。

热力图显示任务间权重重要性的相关性。使用SI时,重要性不相关,意味着网络为不同任务使用不同权重。

图5: 跨任务的参数重要性相关性。无巩固 (上排) 时,后续任务重复使用相同权重,导致干扰与遗忘。使用SI (下排) 时,重要性不相关——每个任务使用不同突触集合。

没有巩固时,网络反复依赖同一组关键权重来处理新任务,造成干扰。SI打破这一模式,促使网络利用先前不重要的突触来学习新任务,从而显著提高记忆保持能力。

分割 CIFAR-10/100 (Split CIFAR-10/100)

最后,研究者将测试扩展到更复杂的场景: 一个结合CIFAR-10与CIFAR-100的持续学习设置。模型先学习CIFAR-10的十个类别,然后依次在CIFAR-100中抽取的五个任务上训练,每个任务包含十个新类别。

一张条形图显示分割CIFAR-10/100基准上的验证准确率。SI (绿色) 优于标准微调 (蓝色) ,某些情况下甚至优于从头训练 (灰色) 。

图6: 分割CIFAR-10/100基准上的验证准确率。与标准微调 (蓝色) 相比,巩固 (绿色) 在新旧任务上的准确率更高;某些任务中,SI的泛化能力甚至超越从头训练 (灰色) 。

在所有测试中,带巩固的网络准确率下降更慢,更引人注目的是,在部分任务上,SI不仅保留了性能,还提升了模型的泛化能力,甚至超过了从头训练的表现。对突触重要性的智能管理实现了正向的迁移学习——使旧任务的知识有助于新任务的学习。


结论: 更智能的突触,实现终身学习

《通过突触智能实现持续学习》提出了一个强大、高效且受生物启发的解决方案,用于克服深度学习中最古老的挑战之一。通过让突触追踪并保存自身的重要性,SI确保新任务的学习不需擦除旧任务的知识。

  • 高效 (Efficient): 重要性度量在常规反向传播中实时计算。
  • 有效 (Effective): SI在各类基准测试中,表现与EWC等领先方法相当甚至更优。
  • 优雅 (Elegant): 以极少的修改捕捉复杂行为,呼应生物突触的多维动态。

在生物系统中,突触不仅能编码信号强度,还能记录历史、新颖性与稳定性。SI借鉴了这种智慧——让每个连接都知道何时该适应,何时该稳固。

当我们继续推动人工智能前进时,这篇论文提醒我们,进步不一定依赖更大的网络或更多的数据。有时,关键在于让最微小的部分——突触——变得更聪明一点。借助突触智能,我们离真正的终身学习系统更近一步——那种像人类一样,能够不断学习而不遗忘的系统。