参与:吴攀、李泽南、李亚洲 前几天,Google DeepMind 公开了一篇新论文《克服神经网络中的灾难性遗忘(Overcoming catastrophic forgetting in neural networks)》,介绍了这家世界顶级的人工智能研究机构在「记忆(memory)」方面的研究进展,之后该公司还在其官方博客上发布了一篇介绍博客,参见机器之心的报道《》。近日,加利福尼亚大学戴维斯分校计算机科学工程和统计学的毕业生 Rylan Schaeffer 在其博客上发表了一篇对该研究的深度解读文章,机器之心对该文章进行了编译介绍,论文原文可点击文末「阅读原文」查看。 引言 我发现网络上铺天盖地的人工智能相关信息中的绝大多数都可以分为两类:一是向外行人士解释进展情况,二是向其他研究者解释进展。我还没找到什么好资源能让有技术背景但对不了解更前沿的进展的人可以自己充电。我想要成为这中间的桥梁——通过为前沿研究提供(相对)简单易懂的详细解释来实现。首先,让我们从《Overcoming Catastrophic Forgetting in Neural Networks》这篇论文开始吧。 动机 实现通用人工智能的关键步骤是获得连续学习的能力,也就是说,一个代理(agent)必须能在不遗忘旧任务的执行方法的同时习得如何执行新任务。然而,这种看似简单的特性在历史上却一直未能实现。McCloskey 和 Cohen(1989)首先注意到了这种能力的缺失——他们首先训练一个神经网络学会了给一个数字加 1,然后又训练该神经网络学会了给数字加 2,atv,但之后该网络就不会给数字加 1 了。他们将这个问题称为「灾难性遗忘(catastrophic forgetting)」,因为神经网络往往是通过快速覆写来学习新任务,而这样就会失去执行之前的任务所必需的参数。 克服灾难性遗忘方面的进展一直收效甚微。之前曾有两篇论文《Policy Distillation》和《Actor-Mimic: Deep Multitask and Transfer Reinforcement Learning》通过在训练过程中提供所有任务的数据而在混合任务上实现了很好的表现。但是,如果一个接一个地引入这些任务,那么这种多任务学习范式就必须维持一个用于记录和重放训练数据的情景记忆系统(episodic memory system)才能获得良好的表现。这种方法被称为系统级巩固(system-level consolidation),该方法受限于对记忆系统的需求,且该系统在规模上必须和被存储的总记忆量相当;而随着任务的增长,这种记忆的量也会增长。 然而,你可能也直觉地想到了带着一个巨大的记忆库来进行连续学习是错误的——毕竟,人类除了能学会走路,也能学会说话,而不需要维持关于学习如何走路的记忆。哺乳动物的大脑是如何实现这一能力的?Yang, Pan and Gan (2009) 说明学习是通过突触后树突棘(postsynaptic dendritic spines)随时间而进行的形成和消除而实现的。树突棘是指「神经元树突上的突起,通常从突触的单个轴突接收输入」,如下所示:
具体而言,这些研究者检查了小鼠学习过针对特定新任务的移动策略之后的大脑。当这些小鼠学会了最优的移动方式之后,研究者观察到树突棘形成出现了显著增多。为了消除运动可能导致树突棘形成的额外解释,这些研究者还设置了一个进行运动的对照组——这个组没有观察到树突棘形成。然后这些研究者还注意到,尽管大多数新形成的树突棘后面都消失了,但仍有一小部分保留了下来。2015 年的另一项研究表明当特定的树突棘被擦除时,其对应的技能也会随之消失。 Kirkpatrick et. 在论文《Overcoming catastrophic forgetting in neural networks》中提到:「这些实验发现……说明在新大脑皮层中的连续学习依赖于特定于任务的突触巩固(synaptic consolidation),其中知识是通过使一部分突触更少塑性而获得持久编码的,所以能长时间保持稳定。」我们能使用类似的方法(根据每个神经元的重要性来改变单个神经元的可塑性)来克服灾难性遗忘吗? 这篇论文的剩余部分推导并演示了他们的初步答案:可以。 直觉 假设有两个任务 A 和 B,我们想要一个神经网络按顺序学习它们。当我们谈到一个学习任务的神经网络时,它实际上意味着让神经网络调整权重和偏置(统称参数/θ)以使得神经网络在该任务上实现更好的表现。之前的研究表明对于大型网络而言,许多不同的参数配置可以实现类似的表现。通常,这意味着网络被过参数化了,但是我们可以利用这一点:过参数化(overparameterization)能使得任务 B 的配置可能接近于任务 A 的配置。作者提供了有用的图形: (责任编辑:本港台直播) |