持续学习的概念
“持续学习”的概念其实非常好理解,正如我们先后学习高数和线代,我们希望在学习线代的时候仍能够记住之前学的高数内容,同时用高数的思想来帮助理解和学习线代,这就是一种持续学习的能力。那我们也希望神经网络可以跟人一样具备这种能力,对多个任务不断学习,而不是再为每个任务训练一个网络。这种能力概括起来就是以下两点:
- 可塑性(学习新知识的能力):应用从之前任务学习到的经验,以更快更好地学习当前任务;
- 稳定性(旧知识的记忆能力):学习当前任务时,不会忘记之前已经学会的任务。
持续学习面对的挑战
然鹅,传统的神经网络要实现这一目标并不容易。试想一下,我们针对某一任务训练神经网络,其实就是把从这个任务提取出来的知识以参数的形式记录在每个神经元上,而如果把这个训练好的网络拿去学习另一个任务,那所有的参数都会被覆盖,也就是说我们辛辛苦苦训练好的模型最后只变成了一套初始化参数。这就是“持续学习”中的一大难题:灾难性遗忘
除此之外,要将持续学习部署到现实世界中,还有许多问题需要解决。首先,在实际场景中,模型需要学习的任务可能很多。在“终身学习”的环境中,模型甚至需要在无限的任务上不断地训练。然而,由于“灾难性遗忘”和“关于内存的使用和计算的效率”,传统的持续学习方法对大量任务的“可扩展性”尚未得到验证。
另一个重要但相对较少研究的问题是“任务顺序敏感性”问题。由于①“灾难性遗忘”导致模型偏移以及②知识只能从前一个任务向后一任务单向转移(不能用后一任务的知识辅助训练前一任务),模型在多个任务上的训练顺序对其在每个任务上的性能存在巨大影响。如果任务之间的公平性很重要(例如疾病诊断),这种顺序敏感性问题就不容被忽视。
综上,持续学习面对的主要挑战有三个,分别是灾难性遗忘,关于内存的使用和计算的效率,任务顺序敏感性。
Continual Learning With Additive Parameter Decomposition
针对上述问题,ICLR 2020的一篇文章《SCALABLE AND ORDER-ROBUST CONTINUAL LEARNING WITH ADDITIVE PARAMETER DECOMPOSITION》提出了一种新的持续学习方法,名为 Additive Parameter Decomposition(APD)。
APD将目标网络各层的网络参数分解为 task-shared and sparse task-specific parameters with small mask vectors。当任务每次到达带有 APD 的网络(APD - net)时,网络可以利用 task-shared parameters 进行学习,并使用 sparse task-adaptive parameters 学习 task-shared parameters 无法解释的增量差异。这里相当于把每一层模型的参数分解为 “所有任务共享的参数集” 以及“ 某一任务独有的参数集(该参数集具有稀疏性)”。
而由所有任务共享的 task-shared parameters 可能无法考虑到某几个任务间具有的一些共识知识,这将导致 sparse task-specific parameters 中存在冗余信息。文章进一步对 sparse task-adaptive parameters 进行聚类,获得 hierarchical shared parameters。
这段话举个例子就很好理解了,比如现在有三个任务 A(x, y, z)、B(x, y)、C(x, u),括号内分别为三个任务所带有的知识,现在根据 APD,task-shared parameters 就应为 x(理想情况下为 x,实际上还可能会有 y、z、u 的一项或多项),任务 A、B、C 的 sparse task-adaptive parameters 分别为 A: (y, z), B: (y), C: (u),可以看到,任务 A 和 B 的 sparse task-adaptive parameters 具有冗余项 y(共识知识),为了进一步减少内存占用,文章对 sparse task-adaptive parameters 进行了层次聚类。
公式化理解
带着上面的概念,我们进一步由浅入深地用公式理解 ADP。
ADP
将模型参数 θ 分解为 task-shared parameter matrix: σ 和 task-adaptive parameter matrix: τ,对于任务 t ,其模型参数 θ t = σ ⊗ M t + τ t θ_t = σ ⊗ M_t + τ_t θt=σ⊗Mt+τt,其中其中 mask vectors M t M_t Mt作为 task-shared parameter 的 attention,引导学习者只关注与当前任务相关的部分。
当一个新任务到来时,可以适当地更新共享参数 σ,但不要偏离之前的共享参数 σ ( t − 1 ) σ^{(t-1)} σ(t−1)。令 τ t τ_t

本文探讨了持续学习中如何通过AdditiveParameterDecomposition (APD)方法解决灾难性遗忘、内存效率和任务顺序敏感性问题。APD通过分解任务共享与特定参数,以及层次聚类减少冗余,实现稳定学习与可扩展性。
最低0.47元/天 解锁文章





