PerferredNetworks发布了其超参数优化框架的beta版本

电子说

1.2w人已加入

描述

近日,日本的深度学习公司PerferredNetworks 发布了其超参数优化框架的beta版本。这篇文章中将详细介绍这一框架的特性及其后面的原理。

关于超参数

超参数是控制机器学习算法行为的参数,在深度学习中主要包括了学习率、批量大小和训练周期、层数、每层神经元的数量和通道等。他们不仅仅是一个简单的数值,同时控制着模型训练的行为并在很大程度上影响着模型的性能。除了上述提到的数值外还包括了使用的优化方法(SDG或Adam等)。调参是深度学习的一项重要技术,由于需要众多的实践经验和对算法的理解,调参的过程常常被人们戏称作炼丹。这也是初学者所面临的最大困难。

对于机器学习算法来说,如果没有超参数算法的设计和模型的训练几乎不可能进行。对于深度学习来说,超参数的数量很可能十分庞大,工程师们需要花费巨量的时间来调整超参数来获取表现较好的模型。如何快速调整模型,甚至自动化搜索超参数,已经成为一个广泛的研究热点。

下面让我们来看看PFN提出的这一框架有什么特点。

Optuna

Optuna是一套能够自动优化超参数的的软件框架,它可以通过不断试错的方法找到最好表现的最优超参数值。值得注意的是,官方提供了Python接口,能够方便的集成到代码中使用。它主要基于运行的历史数据来确定接下来需要测试的超参数值。基于这些数据,它可以估计出超参数比较可能出现的区域并在这个区域中进行超参数搜索尝试。随着不断获取新的结果,它也将更新这一区域并继续搜索。在不断重复搜索、评价更新的过程中来获取表现更好的超参数。具体来讲,这一软件框架的优化方法属于贝叶斯优化算法中的树形帕曾(Parzen)优化器。

适用范围

Optuna作为超参数优化框架可以和PFN自己的深度学习框架Chainer充分结合使用。只需要在Chainer中写接受来自Optuna的超参数的代码即可。通过这一接口Optuna可以不断调用了用户编写的模型代码,神经网络也可以在你不同的超参数下得以训练并搜寻较好的结果。

目前在PFN的多个项目中都使用了Chainer深度学习架构和Optuna优化框架的组合。但我们用户来说这两个框架是相互独立的,同样可以将Optuna与其他机器学习软件结合起来使用。目前官方提供了使用scikit-learn、XGBoost和LightGBM等算法集成Optuna的实例代码供用户学习。事实上,除了机器学习问题外Optuna还广泛适用于各种需要优化的任务,比如计算加速就是一个典型的例子。只要可以编写接收超参数的接口并返回算法的计算结果即可使用这一框架来自动化冗长的调参过程。

新框架的优势

如果熟悉PFN的小伙伴可能会问,为什么在拥有诸如Hyperopt、Spearmint、SMAC等超参数自动化框架后还需要建立新的框架Optuna呢?这是因为目前的框架在某些环境下无法工作或者不能保持稳定的优化,同时这些框架已经落后于目前最先进的超参数优化机制。研究人员希望开发出一种可以在python中具体指定需要调优的超参数,而不是为优化器编写单独的代码。

新特点

和Chainer一样,Optuna提供了动态图模型(define-by-run)风格的接口,这使得用户可以在代码很复杂的情况下比其他框架更好地保持模块化特性。同时Optuna还可以在复空间中优化超参数,这是先前的框架所不能完成的。

在深度学习中定义计算图主要有两种主要的风格:动态图和静态图。在早期的深度学习框架中,Caffe和Tensorflow等静态图框架占据了主流;但随着技术的发展,Chainer首次提出了动态图框架,随后PyTorch和Tensorflow2.0更新的eager也引入了动态图模型,逐渐成为深度学习的主流方法。在超参数调优领域,同样存在着Define-and-Run和Define-by-Run两种风格。Optuna和市面上绝大多数的框架不同,它是基于Define-by-Run的概念,API风格非常独特。

这使得用于程序保持高度模块化成为可能,同时也使得复杂超参数空间中的参数搜索成为可能。当使用如深度学习或梯度推举算法等迭代算法时,对于训练粗略的预测可以通过学习曲线来得到。利用这样的方法,Optuna能根据这一预测终止可能性较小的超参数区域,把更多的算力用于可能性更高的区域以提高搜索效率。而上面提到已有的超参数学习框就缺乏这一功能。此外最近的研究表明在学习曲线上使用剪枝技术十分有效,下图显示了在一个简单深度学习任务上表现出的有效性,当Optuna和Hyperopt优化引擎使用相同TPE时,Optuna使用剪枝技术获取了更高的效率。

自动化

深度学习是计算密集型技术,训练也是耗时的过程。对于一个自动超参数优化框架来说,高效和稳定应当是其主要特征。Optuna支持异步分布式优化,使得算法可以同时在多个节点上进行多次尝试。并行计算的效果如下图所示,研究人员通过修改计算机的数量来探索了分布式优化的加速情况。

自动化

用户可通过简单的代码配置,就可以并行地分布式地执行包含分布式过程的目标函数。

可视化

面板可视化,基于http 优化过程或导出pandas数据。

可视化方便我们形象的理解并优化程序的运行。Optuna提供了可通过浏览器访问的面板来观察优化过程。用户可以通过这一方法从实验过程和结果中获取有效的信息来帮助分析。同时还提供了优化过程详细信息的导出,以便进行详细的分析。

在Optuna的支持下FPN参加了OpenImageChallange2018,并取得了第二名的好成绩。

PFN开源众多算法的目的在于加速深度学习的研发活动,Optuna作为在自动化超参数调优上的研究成果是十分重要的进步,让机器学习的自动化加速过程又进了一步。除此之外研究人员还在继续研究神经架构自动搜索和自动特征抽取等功能,十分期待PFN能够开发更多优秀的算法。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分