Facebook 发布无梯度优化开源工具 Nevergrad,可应用于各类机器学习问题
大多数机器学习任务——从自然言语处置、图像分类到翻译以及大量其他任务,都依赖于无梯度优化来调整模型中的参数和/或超参数。为了使得参数/超参数的调整更快、更简单,Facebook 创立了一个名叫 Nevergrad(https://github.com/facebookresearch/nevergrad) 的 Python 3 库,并将它开源发布。Nevergrad 提供了许多不依赖梯度计算的优化算法,并将其呈如今规范的问答 Python 框架中。此外,Nevergrad 还包括了测试和评价工具。
Nevergrad 现已对外开放,人工智能研讨者和其他无梯度优化相关工作者马上就能够应用它来辅佐本人的工作。这一平台不只可以让他们完成最先进的算法和办法,可以比拟它们在不同设置中的表现,还将协助机器学习科学家为特定的运用实例找到最佳优化器。在 Facebook 人工智能研讨院(FAIR),研讨者正将 Nevergrad 应用于强化学习、图像生成以及其他范畴的各类项目中,例如,它能够替代参数扫描来协助更好地调优机器学习模型。
这个库包含了各种不同的优化器,例如:
差分进化算法(Differential evolution)
序列二次规划(Sequential quadratic programming)
FastGA
协方差矩阵自顺应(Covariance matrix adaptation)
噪声管理的总体控制办法(Population control methods for noise management)
粒子群优化算法(Particle swarm optimization)
在此之前,运用这些算法常常需求研讨者本人编写算法的完成,这就让他们很难在各种不同的最新办法之间停止比拟,有时分以至完整无法比拟。如今,AI 开发者经过运用 Nevergrad,能够随便地在特定的机器学习问题上对不同办法停止测试,然后对结果停止比拟。或者,他们也能够运用众所周知的基准来评价——与当前最先进的办法相比,新的无梯度优化办法怎样样。
Nevergrad 中所包含的无梯度优化办法可用于各类机器学习问题,例如:
多模态问题,比方说具有多个部分极小值的问题。(如用于言语建模的深度学习超参数化。)
病态问题,通常在优化多个具有完整不同的动态特性的变量的时分,该问题就会呈现(如,未对特定问题停止调整的丢弃和学习率)。
可别离或旋转问题,其中包括局部旋转问题。
局部可别离问题,能够思索经过几个变量块来处理这类问题。示例包括深度学习或其他设计方式的架构搜索,以及多任务网络的参数化。
离散的、连续的或混合的问题。这些问题能够包括电力系统(由于有些发电站具有可调连续输出,而其他发电站则具有连续或半连续输出)或者请求同时选择每层的学习速率、权值衰减以及非线性类型的神经网络任务。
有噪声的问题,即针对这一问题,函数被完整相同的参数调用时能够返回不同结果,例如强化学习中的不同关卡。
在机器学习中,Nevergrad 可用于调整参数,例如学习率、动量、权值衰减(或许每一层)、dropout(丢弃)算法、深度网络每个局部的层参数及其他等。更为普遍地,非梯度办法同样被用于电网管理(https://www.sciencedirect.com/science/article/pii/S0142061597000409)、航空(https://www.sciencedirect.com/science/article/pii/S0142061597000409)、镜头设计(https://www.researchgate.net/publication/222434804_Human-competitive_lens_system_design_with_evolution_strategies)以及许多其他的科学和工程应用中。
为什么有无梯度优化的需求
在某些场景中,例如在神经网络权重优化中,以剖析法去计算函数的梯度是简单的。但是,在其他场景中,例如当计算函数 f 的速度慢,或者域不连续的时分,函数的梯度就无法预估出来。在这些应用实例中,无梯度办法提供理解决计划。
一个简单的无梯度处理计划是随机搜索,它由随机采样大量的搜索点、对每个搜索点停止评价、选择最佳搜索点三个步骤组成。随机搜索在许多简单场景中表现很好,但在高维场景中却表现不佳。通常被用于机器学习参数调整的网格搜索,也面临相似的限制。不过,也还有许多替代办法:其中一些来自应用数学,如序列二次规划,它对模仿器的二次近似停止更新;贝叶斯优化也树立目的函数模型,其中包括不肯定性模型;进化计算包含大量关于选择、变异以及混合有前景的变体的工作。
这个示例展现了进化算法如何运转。在函数空间中采样搜索点,并选择最佳点的群落,然后在已有点的四周引荐出新的点来尝试优化当前的点群落。
运用 Nevergrad 生成算法基准
Facebook 研讨团队运用了 Nevergrad 完成几个基准测试,来展现特定算法在特定状况下的表现最佳。这些众所周知的示例对应着各种不同设置(多峰或非多峰,噪声或非噪声,离散或非离散,病态或非病态),并展现了如何运用 Nevergrad 来肯定最佳优化算法。
在每个基准测试中,Facebook 研讨团队对不同的 X 值停止了独立实验。这确保了在几个 X 值上的各个办法之间的分歧排序在统计上是显著的。除了下面的两个基准示例,这里(https://github.com/facebookresearch/nevergrad/blob/master/docs/benchmarks.md)还有一份更全面的清单,并附上了如何运用简单的命令行重新运转这些基准的指南。
这个图展现了一个噪声优化示例
这个示例展现了运用 pcCMSA-ES 噪声管理原理(https://homepages.fhv.at/hgb/New-Papers/PPSN16_HB16.pdf)的 TBPSA 如何在表现上胜过几种替代计划。Facebook 研讨团队在这里只将 TBPSA 与算法的一个有限示例停止了比照,不过,比起其他的办法,它的表现同样更好。
Nevergrad 平台还能够执行在很多机器学习场景中都会呈现的离散目的函数。这些场景包括,举例来说,在一组有限的选项中停止选择(例如神经网络中的激活函数)和在层的各个类型中停止选择(例如,决议在网络中的某些位置能否需求跳过衔接)。
现有的替代平台(Bbob 和 Cutest)并不包含任何离散的基准。Nevergrad 能够执行经过 softmax 函数(将离散问题转换成有噪声的连续问题)或连续变量离散化停止处置了的离散域。
Facebook 研讨团队留意到在这个场景中,FastGA(https://arxiv.org/abs/1703.03334)的表现最好。DoubleFastGA 对应的是 1/dim 和 (dim-1)/dim 之间的突变率,而不对应 1/dim 和 1/2。这是由于原始范围对应于二进制域,而在这里,他们思索的是恣意域。在几种场景中,简单分歧的突变率混合(https://arxiv.org/abs/1606.05551)表现良好。
为研讨者和机器学习科学家扩展工具箱
Faacebook 将会持续为 Nevergrad 增加功用,从而协助研讨者创立和评价新算法。最初的版本具有根本的人工测试功用,不过 Facebook 方案为其增加更多功用,其中包括表示物理模型的功用。在应用方面,他们将继续让 Nevergrad 变得更易用,并尝试用它来对无法很好地肯定梯度的 PyTorch 加强学习模型中的参数停止优化。Nevergrad 还能够协助 A/B 测试以及作业调度等其他任务停止参数扫描。
时间:2018-12-26 23:18 来源:未知 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]Facebook新AI模型SEER实现自监督学习,LeCun大赞最有
- [机器学习]来自Facebook AI的多任务多模态的统一Transformer:向
- [机器学习]更深、更轻量级的Transformer!Facebook提出:DeLigh
- [机器学习]Facebook新AI模型SEER实现自监督学习,LeCun大赞最有
- [机器学习]来自Facebook AI的多任务多模态的统一Transformer:向
- [机器学习]抵近作战:DARPA启动“远射”无人机项目设计工作
- [机器学习]更深、更轻量级的Transformer!Facebook提出:DeLigh
- [机器学习]4纳米来了!全球首款10Gbps!高通发布第四代5G 骁
- [机器学习]全球第一架反潜无人机试飞,带声呐浮标和雷达
- [机器学习]英特尔x86大突破!一口气发布四款CPU:10nm、大小
相关推荐:
网友评论: