选自medium
作者:Théo Szymkowiak
机器之心编译
参与:黄小天、吴攀
通用人工智能(articial general intelligence/AGI)至今看起来仍然是遥不可及的一个技术圣杯,但这没有妨碍研究者向这个方向的努力。近日,一直研究成果不断的 DeepMind 又在 arXiv 上发布了一篇也许向这个方向迈进了一步的新论文,该论文提出了一种 PathNet,宣称能够实现某种巨型神经网络(giant neural network)。麦吉尔大学学生兼该校人工智能协会社长 Théo Szymkowiak 在 Medium 上发了一篇短文介绍了这篇论文。机器之心对这篇短文进行了编译,并对原论文进行了摘要介绍,原论文可点击文末「阅读原文」下载。
自从科学家开始构建和训练神经网络以来就一直没能跨过「迁移学习(transfer learning)」的难关。迁移学习是指人工智能学习不同任务并将预学习到的知识应用于全新任务的能力。很显然,具备预先知识的人工智能将在面对新任务时比全新开发的神经网络能表现得更好、训练得更快。
也许 DeepMind 能用 PathNet 达到这一目标。PathNet 是一个由神经网络组成的网络(network of neural networks),通过随机梯度下降和遗传选择方法做训练。
PathNet 由模块构成的层组成,其中每个模块都可以是一个任意类型的神经网络——可以是卷积网络、循环网络、前馈网络等等。
图 1:一个随机初始化的路径(框图 1 中的紫色线)的集合在学习任务 A Pong 游戏的过程中进化。在训练结束时,最好的路径是固定的(框图 5 中的暗红色线),并且会有一个针对任务 B 的新的路径(框图 5 中的淡蓝色线)集合被生成出来。这个路径集合然后在 Alien 游戏上得到训练,然后在 Alien 游戏上逐渐进化,在训练结束时固定达到最佳路径,如框图 9 中的深蓝色线所示。
这 9 个框图是在不同迭代时的 PathNet。在这个案例中,PathNet 被训练用 Advantage Actor-critic(A3C)玩两个不同的游戏。尽管在一开始 Pong 和 Alien 看上去很不同,但我们确实观察到(看一下得分图)了一个使用 PathNet 的迁移学习。
它如何训练
首先,我们需要定义模块。设 L 为层数,N 为每一层的最大模块数(论文表明,N 通常是 3 或 4)。最后一层是密集的,并且不在不同任务之间共享。通过 A3C,最后一层表示价值函数(value function)和策略评估(policy evaluation)。
那些模块定义完之后,网络之中生成 P 基因型 (=路径)。由于 A3C 的异步属性,需要多个工作器(worker)评估每一个基因型。在 T 个 episode 之后,一个工作器从其他路径中选一对进行比较,如果这些路径中的一些有更好的适配,那就采用它,并用那个新路径继续训练。如果不,则工作器继续评估其路径的合适程度。
迁移学习
在学习了一个任务之后,网络会固定最优路径上的所有参数。所有其它参数将被重置,因为照论文上讲,如果不这样做,PathNet 将会在新任务中表现很差。