从围棋到Atari游戏到图像识别和语言翻译,神经网络在各个领域都取得了巨大的成功。但是经常容易被忽视的是,神经网络在某个特定应用中的成功通常取决于在研究初始时所做的一系列选择,包括选择要使用的网络类型以及用于训练的数据和方法。目前,这些选择(被称作超参数)是通过经验、随机搜索或计算密集型的搜索过程来实现的。
DeepMind在最近的一篇论文《基于群体的神经网络训练》(Population Based Training of Neural Networks)中,提出了一种新的训练神经网络的方法,使得实验者能够快速地为任务选择最佳的超参数集合和模型。这种技术被称为基于群体的训练(Population Based Training,PBT),它同时训练和优化一系列的网络,从而快速找到最优的设置。最重要的是,这种方法不会增加计算开销,可以像传统技术一样快速地完成,并且很容易集成到现有的机器学习流程中。
这项技术是两种最常用的超参数优化方法的结合:随机搜索和手动调优。在随机搜索中,神经网络群体(population)被并行地独立训练,在训练结束时,选择性能最优的模型。通常情况下,这意味着只有群体的一小部分会得到良好的超参数训练,更多的部分得到不好的超参数训练,浪费计算资源。
图:超参数的随机搜索,其中许多超参数是并行但独立地尝试的。一些超参数会导致性能良好的模型,但是其他的不会
通过手动调优,研究人员必须猜测哪些是最好的超参数,使用它们来训练模型,然后对性能进行评估。这个过程一遍遍地重复,直到研究人员对网络的性能感到满意为止。尽管这可能会带来更好的性能,但缺点是需要很长时间,有时需要几周甚至几个月才能找到完美的设置。虽然有一些方法可以自动化这个过程,例如贝叶斯优化,但是仍然需要很长的时间,并且需要大量的连续训练才能找到最好的超参数。
图:手动调优和贝叶斯优化等方法通过观察许多连续运行的训练来改变超参数,使得这些方法速度慢
PBT,就像随机搜索,一开始是以随机的超参数并行地训练许多神经网络。但是,这些网络不是独立的,而是使用来自群体(population)中其余部分的信息来调优超参数,并且将计算资源引导到有希望的模型。这是从遗传算法中获得启发的,在遗传算法中,population中的每个成员(被称为worker)都可以利用其他成员的信息。例如,一个worker可以从一个性能更好的worker中拷贝模型参数。它也可以通过随机改变当前的值来探索新的超参数。
随着神经网络population的训练继续进行,这种开发和探索的过程也周期性地进行,确保population中所有的worker都有一个良好的基础性能水平,并且一直不断地探索新的超参数。这意味着PBT可以快速利用良好的超参数,可以将更多训练时间分配给有希望的模型,并且,关键的是,可以在整个训练过程中调整超参数值,从而自动学习最佳配置。
图:基于群体的神经网络训练初始时就像随机搜索一样,但允许worker利用其他worker的部分结果,并在训练过程中探索新的超参数
我们的实验表明,PBT在众多任务和领域都非常有效。例如,我们在一系列挑战性的强化学习问题,用当前最优的方法在DeepMind Lab、Atari和星际争霸2中严格地测试了这个算法。在所有情况下,PBT训练稳定,快速地找到好的超参数,并且提供的结果超出了state-of-the-art的基线结果。
我们还发现PBT对于训练生成对抗网络(GAN)也有效,而众所周知GAN的调优很难。具体来说,我们使用PBT框架来最大化Inception Score(这是衡量视觉保真度的一个指标),从6.45提高到6.9。
我们还把它应用到谷歌最先进的机器翻译神经网络中,这些神经网络通常都是经过精心的手工调优超参数schedule进行训练,需要数月的时间才能完善。使用PBT,我们可以自动找到达到甚至超过现有性能的超参数schedule,但是不需要进行任何调优,同时通常只需要进行一次训练。
图:在CIFAR-10和Feudal Network(FuN)对“吃豆小姐”(Ms Pacman)游戏训练GAN的过程中population的演化过程。粉色的点代表最初的智能体,蓝色代表最终的智能体。
DeepMind认为,这项技术潜力很大。他们还发现PBT对于训练引入新的超参数的新算法和神经网络架构特别有用。随着这个过程的不断改进,PBT有望寻找和开发更复杂、更强大的神经网络模型。
论文:Population Based Training of Neural Networks
作者:Max Jaderberg,Valentin Dalibard,Simon Osindero,Wojciech M. Czarnecki,Jeff Donahue,Ali Razavi,Oriol Vinyals,Tim Green,Iain Dunning,Karen Simonyan,Chrisantha Fernando,Koray Kavukcuoglu
摘要
神经网络在现代机器学习领域占据主导地位,但它们的训练和成功仍然受到超参数经验选择的敏感性限制,例如模型架构、损失函数和优化算法。在这项工作中,我们提出基于群体的训练(Population Based Training ,PBT),这是一种简单的异步优化算法,能够有效地利用固定的计算预算来联合优化模型群体(a population of models)和它们的超参数,以最大限度地提高性能。更重要的是,PBT发现一个超参数设置的schedule,而不是遵循通常的次优策略来试图找到一个固定的集合以用于整个训练过程。
通过对典型的分布式超参数训练框架的小修改,我们的方法可以对模型进行强健、可靠的训练。通过对一系列超参数的优化,我们证明了PBT在深度强化学习问题上的有效性,显示了更快的时钟收敛速度和更高的最终性能。此外,我们还证明,同样的方法可以应用到机器翻译的监督学习中,利用PBT最大限度地提高BLEU score,并且也可应用于训练生成对抗网络(GAN),以最大化生成图像的Inception score。在所有情况下,PBT都能自动找到超参数的schedule和模型选择,从而获得稳定的训练和更好的最终性能。
原文发布时间为:2017-11-28
本文作者:马文
原文链接:DeepMind提出快速调参新算法PBT,适用GAN训练(附论文)