人工智能在很大程度上是一场数字游戏。当深度神经网络在 10 年前开始超越传统算法,是因为我们终于有了足够的数据和处理能力来充分利用它们。
今天的神经网络更依赖于数据和算力。训练网络时,需要仔细调整表征网络的数百万甚至数十亿参数值,这些参数代表人工神经元之间连接的强度。目标是为它们找到接近理想的值,这个过程称为优化。但训练网络要达到这一点并不容易。伦敦 DeepMind 的研究科学家 Petar Veli kovi 说:“训练可能需要花费几天、几周甚至几个月的时间”。
但上述这种情况可能很快就会改变。安大略省圭尔夫大学的 Boris Knyazev 和他的同事设计并训练了一个“超网络”一种其他神经网络的“霸主”,该网络可以加快训练过程。给定一个为某些任务设计的新的、未经训练的深度神经网络,超网络可以在几分之一秒内预测新网络的参数,理论上可以使训练变得不必要。由于超网络学习了深度神经网络设计中极其复杂的模式,因此这项工作也可能具有更深层次的理论意义。这项研究题为Parameter Prediction for Unseen Deep Architectures。
目前,超网络在某些环境中表现的出人意料地好,但仍有增长空间。Veli kovi 说:“如果他们能解决相应问题,这将对机器学习产生很大的影响”。
获得“超能力”
目前,训练和优化深度神经网络的最佳方法是一种称为随机梯度下降技术(SGD)的变体。训练涉及在给定任务中(例如:图像识别)最小化网络误差。SGD 算法通过大量标记数据来调整网络参数,并减少误差或损失。梯度下降是损失函数从高值向下降到某个最小值的迭代过程,它代表了足够好的(有时甚至时最好的)参数值。
但是这种技术只有在网络需要优化时才有效。为了构建最初的神经网络(一般由从输入到输出的多层人工神经元组成),工程师必须依靠直觉和经验法则。这些架构在神经元层数、每层神经元数等方面可能有所不同。

图1 梯度下降算法用来降低网络的“损失函数”,其中较高的值表示较大的损失。该算法试图找到全局最小值以最小化损失。
理论上,一个人可以从很多架构开始,然后优化每个架构并选择最好的。但现任 Google Brain 的访问研究员 MengYe Ren 说:“训练需要花费相当多的时间,训练和测试每个候选网络架构是不可能的。它不能很好地扩展,尤其是考虑到数百万种可能的设计。”
所以在 2018 年,Ren 和他在多伦多大学的前同事 Chris Zhang 及他们的顾问 Raquel Urtasun 尝试了一种不同的方法。他们设计了所谓的图超网络(Graph Hypernetwork: GHN),可以在给定一组候选架构的情况下,找到解决某些任务的最佳深度神经网络架构。
该名称概述了他们的方法。“图”指的是深度神经网络的架构,可以被认为是一个数学图由线或边连接的点或节点的集合。这里的节点代表计算单元(通常是神经网络的整个层),边代表这些单元互连的方式。
图超网络的工作原理是首先对于任何需要优化的架构(称其为候选架构),它尽最大努力预测候选者的理想参数。然后将实际神经网络的参数设置为预测值,并在给定任务上对其进行测试。Ren 的团队表明,这种方法可用于对候选架构进行排名,并选择表现最佳的架构。
当 Knyazev 和他的同事看到图超网络的想法时,他们意识到可以在此基础上进行构建。在他们的新论文中,该团队展示了如何使用 GHN,不仅从一组样本中找到最佳架构,还可以预测最佳网络的参数,使其在绝对意义上表现良好。在还没有达到最好的情况下,其可以使用梯度下降进一步训练网络。
Ren 说:“这是一篇非常扎实的论文,它包含了更多我们所做的实验。看到图超网络在非常努力地提升绝对性能,我们大家都很高兴。”
训练“教练”
Knyazev 和他的团队将他们的超网络命名为 GHN-2,它改进了Ren及其同事构建的图超网络的两个重要方面。
首先,他们依赖 Ren 等人将神经网络架构描绘为图的技术。图中的每个节点都是关于执行某种特定类型计算的神经元子集的编码信息。图的边缘描绘了信息如何从一个节点到另一个节点,从输入到输出。
第二,他们借鉴了训练超网络预测新的候选架构的方法。这需要另外两个神经网络。第一个启用对原始候选图的计算,从而更新与每个节点相关的信息,第二个将更新的节点作为输入,并预测候选神经网络的相应计算单元的参数。这两个网络也有自己的参数,必须在超网络正确预测参数值之前对其进行优化。
具体流程如下,首先你需要训练数据候选人工神经网络(Artifical Neural Network: ANN)架构的随机样本。对于示例中的每一个架构,先从一个图开始,之后使用图超神经网络预测参数,并使用预测的参数初始化候选 ANN。使用 ANN 来执行一些特定的任务,如图像识别。通过计算 ANN 的损失函数,来更新做出预测的超网络参数,而不是更新 ANN 的参数做出预测。这样可以使超网络在每一次迭代后做的更好;然后,通过迭代标记过的训练数据集中的每一个图像和架构的随机样本中的每一个 ANN,来减少每一步的损失,直到达到最优。一般这个情况下,你就可以得到一个训练有素的超网络。
因为 Ren 的团队没有公开源代码,所以 Knyazev 的团队采纳了这些想法,从头开始编写了自己的软件,并对其进行了改进。首先,他们确定了 15 种类型的节点,通过混合、匹配可以构建任何现代深度神经网络。他们还在提高预测的准确性上取得了一些进步。






