【新智元导读】10年前,当我们有了足够的数据和处理能力,深度神经网络也就实现了对传统算法的超越。今天,神经网络对数据和算力更加饥渴,甚至需要微调数百万甚至数十亿的参数来进行训练。不过,这种情况或许很快就会改变。
为了摆脱繁琐的训练过程,Boris Knyazev团队设计了一个「超网络」, 对于任意全新的深度神经网络,可以在几分之一秒内预测出该网络的参数,不再需要进行训练。开源项目:https://github.com/facebookresearch/ppuda项目在开源之后团队也没闲着,最近还发布了一波更新,极大地提升了训练的速度。
训练AI的AI训练师
从某种角度来说,人工智能就是一种数字游戏。
目前,训练和优化深度神经网络的最佳方法之一是使用随机梯度下降(SGD)。一个SGD算法通过大量的标记数据来调整网络的参数并减少错误或损失。梯度下降是一个迭代过程,从损失函数的高值爬升到某个最小值,这代表了足够好(有时甚至是最好的)参数值。当然了,首先得有一个网络需要优化时,SGD才能发挥作用。为了建立最初的神经网络,从输入到输出,研究人员都必须依靠直觉和经验法则。这些架构可以在神经元的层数、每层的神经元数量等方面有所不同。利用梯度下降找到全局最小值以最小化损失理论上,对于某个任务来说,可以先选出好几种架构,然后对每一个进行优化,并挑选出最好那的。然而,谷歌大脑的访问研究员Mengye Ren表示,训练和测试每个候选网络架构是不可能的,尤其是考虑到有数百万种可能的设计。因此,在2018年,Chris Zhang、Mengye Ren以及Raquel Urtasun一起,尝试了一种不同的方法。他们设计了一个所谓的图超网络(GHN),在给定一组候选架构的情况下,找到解决某些任务的最佳深度神经网络架构。论文链接:https://arxiv.org/abs/1810.05749「图」指的是深度神经网络的架构,可以认为是一个由线或边连接的点或节点的集合。这里的节点代表计算单元(通常是神经网络的整个层),而边代表这些单元相互连接的方式。论文提出的方法首先随机抽取神经网络架构,形成一个GHN;在图传播之后,GHN中的每个节点都产生了自己的权重参数;然后,对GHN进行训练,以最小化具有生成权重的采样网络的训练损失;最后,根据使用GHN生成的权重的性能,对随机网络进行排名,并选择表现最好的。当Knyazev和他的同事们发现图超网络的想法时,他们意识到可以在此基础上更进一步。论文链接:https://arxiv.org/abs/2110.13100在论文中,团队展示了如何使用GHN不仅从一些样本集中找到最佳架构,而且还能预测最佳网络的参数,使其在绝对意义上表现良好。通过在给定的图像数据集和我们的DEEPNETS-1M架构数据集上预测的参数进行反向传播训练Knyazev和他的同事们称他们的「超网络」为GHN-2。首先,他们依靠初代GHN的技术,将神经网络的结构描述为一个图。图中的每个节点都编码了关于进行某种特定类型计算的神经元子集的信息。图中的边描述了信息如何从节点到节点,从输入到输出。他们借鉴的第二个想法是训练超网络以对新的候选架构进行预测的方法,这需要另外两个神经网络。第一个实现了对原始候选图的计算,从而更新每个节点相关的信息,第二个将更新的节点作为输入,预测候选神经网络的相应计算单元的参数。而这两个网络也有自己的参数,在超网络能够正确预测参数值之前,必须进行优化。要做到这一点就需要训练数据,也就是人工神经网络(ANN)架构的随机样本。对于样本中的每个架构,从一个图开始,用图超网络来预测参数,并用预测的参数来初始化候选的ANN。然后,再用ANN去执行一些特定的任务,如识别图像。通过计算ANN的损失,更新最先做出预测的超网络的参数,而不是更新ANN的参数以做出更好的预测,这使得超网络在下一次能做得更好。通过在有标注的图像训练数据集中的每一幅图像和架构随机样本中的每一个ANN上进行迭代,每一步都减少损失,直到它不能做得更好。在某种程度上,最终会得到一个训练有素的超网络。ViT计算图的视觉化由于GHN的代码并没有开源,于是Knyazev的团队便从0开始写他们自己的软件。首先,他们确定了15种类型的节点,这些节点可以混合和匹配,以构建几乎任何现代深度神经网络。他们还取得了一些进展,以提高预测的准确性。最重要的是,为了确保GHN-2学会预测广泛的目标神经网络架构的参数,Knyazev创建了一个由100万个可能架构组成的独特数据集。因此,GHN-2的预测能力更有可能很好地归纳到未见过的目标架构。
比SGD更好用?
当然,真正的考验是让GHN-2发挥作用。通过训练的方式,让GHN-2预测给定任务的参数,例如对特定数据集中的图像进行分类,他们就测试了它预测任何随机候选架构参数的能力。新的候选架构可能和训练数据集中的上百万种架构有相似的属性,也可能属性不同。在前一种情况下,目标架构被称作分布式架构;后一种情况,被称作分布外架构。深度神经网络在对分布外架构进行预测的时候经常会失败,因此在此类数据上测试GHN-2非常重要。在可视化的图中,一个节点是15个基元中的一个,用底部的标记进行编码,它们在训练集中按频率排序。出于可视化的目的,一个蓝色的三角形标记将1×1卷积(相当于全连接层)与其他卷积区分开来,但其原始类型仍然只是卷积。有了充分训练过的GHN-2,该团队预测了500个随机目标网络架构的参数,这些架构此前是看不到的。之后,研究人员先将这500个网络的参数设置为预测值,再把它们和使用随机梯度下降法训练的相同网络进行对比。新的超级网络在经过数千次SGD迭代之后,基本还是能够稳住的,甚至有的时候还能做的比原来更好,虽说有的结果会出现弄混的情况。对于CIFAR-10图像数据集,GHN-2在分布式架构上的平均准确率达到66.9%,使用2500次SGD迭代训练的网络所达到的平均准确率为69.2%。对于分布外架构,GHN-2的表现出奇的好,达到了60%左右的准确率。特别是,它在ResNet-50上实现了58.6%的准确率,这个结果相当好。「ResNet-50架构比我们的平均训练架构大20倍左右,所以对这个架构的泛化效果尤其出色。」Knyazev 在该领域的旗舰会议NeurIPS 2021上表示。然而,GHN-2在ImageNet上表现不佳。平均来说,GHN-2的准确率只有27.2%左右。但就算是这样,这个准确率和使用SGD训练5000步的相同网络的准确率相比还是有优势的,后者只有 25.6%(当然,如果不计成本地一直执行SGD,最终可以获得95%的准确率)。最关键的是,GHN-2在不到一秒的时间内做出了对ImageNet预测。如果使用SGD来获得和预测参数相同的性能,要花10000倍的时间在GPU上。GHN-2会从很多架构样本中为一项任务找到最佳的神经网络,哪怕这个最佳选择还不够好,最起码胜者也得到了部分的训练并且在未来可以进一步优化。与其在一个用随机参数初始化的网络上使用SGD,不如用GHN-2的预测作为起点。Knyazev表示,「可以说,我们模仿的就是预训练这个环节。」
超网络的未来——在GHN-2之后
尽管取得了这些成功,Knyazev认为机器学习社区短时间内并不想使用图像超网络。就比如说在2012年之前,机器学习的研究人员更喜欢手写的算法,而不是神秘的深度网络。但是,当对大量数据进行训练的大型深度网络开始超越传统算法时,这种抵制发生了变化。在未来,他设想在更多样化的架构和不同类型的任务(例如图像识别、语音识别和自然语言处理)上训练图象超级网络。然后可以根据目标架构和手头的特定任务来进行预测。如果这些超级网络真的有一天可以推广,新的深度神经网络的设计和开发将不再局限于财力雄厚和有能力访问大数据的公司,任何人都可以参与其中。Knyazev非常清楚这种能「使深度学习接地气」的潜力,他把这称为一个长期的愿景。DeepMind的研究科学家Petar Veličković则表示:「神经网络就像一个黑盒子,你用一个神经网络预测另一个神经网络的参数,如果它出错了,你根本没办法解释它。」如果有一天像GHN-2这样的超级网络真的成为了优化神经网络的标准方法,Veličković表示,这种无法解释将会是一个大问题。而Kipf则看到了一线希望。「一些其它的东西让我对神经网络感到尤其兴奋,」他说道,「 GHN-2展示了图象神经网络在复杂数据中寻找模式的能力。」通常,深度神经网络会在图像、文本或音频信号中找到模式,这些是相当结构化的信息类型。GHN-2则可以在完全随机的神经网络架构图中找到模式。此外,GHN-2也可以泛化,对于那些看不见的,甚至分布外的网络架构参数来说,GHN-2也可做出合理的预测。「这项工作向我们展示了许多模式在不同架构中有相似之初,并且模型可以学习如何将知识从一种架构转移到不同的架构,」Kipf 说,「这可能会激发一些神经网络的新理论。」如果是这样的话,它可能会引发对这些黑盒的更新、更深入的理解。
参考资料:
https://www.quantamagazine.org/researchers-build-ai-that-builds-ai-20220125/