连云区| 玛纳斯| 连州| 溧水| 拉孜| 黄岩| 息县| 万州| 万山| 建昌| 新干| 大宁| 梨树| 上饶市| 安徽| 富锦| 丁青| 白银| 象州| 万载| 金堂| 大悟| 株洲市| 昭平| 临颍| 塔河| 大宁| 临潭| 宁南| 突泉| 威宁| 神农架林区| 泸西| 马边| 汨罗| 海淀| 达县| 平顶山| 乐业| 易县| 开远| 昌平| 扶沟| 麟游| 陕西| 寿阳| 平阳| 南丰| 榕江| 荣成| 崇仁| 巴青| 南丹| 肥西| 阳高| 将乐| 曲水| 芷江| 峨眉山| 巨鹿| 南山| 任丘| 郯城| 宣威| 秀山| 于田| 息烽| 临潭| 大荔| 新密| 内江| 吉水| 盱眙| 莫力达瓦| 九龙坡| 察哈尔右翼中旗| 巨野| 梁河| 南丰| 红古| 法库| 宜城| 神池| 哈密| 吉安市| 高密| 无锡| 孟连| 拜泉| 梅里斯| 虎林| 湘东| 赤水| 寿阳| 大兴| 含山| 葫芦岛| 汤阴| 镶黄旗| 广河| 鸡泽| 广饶| 潮州| 五河| 聂荣| 抚远| 莎车| 佳木斯| 阿瓦提| 邵阳县| 茶陵| 湖州| 庐山| 龙泉| 庆安| 云安| 竹山| 博湖| 孙吴| 冷水江| 蒲城| 会理| 虞城| 谢通门| 平江| 莎车| 武陟| 阎良| 安宁| 蔡甸| 贺兰| 包头| 横山| 永善| 屏东| 鹤壁| 榆树| 上杭| 乐至| 阳春| 宜君| 濠江| 南阳| 石城| 顺平| 屏边| 沙雅| 平原| 内黄| 察哈尔右翼前旗| 南乐| 甘谷| 西平| 集贤| 图们| 和县| 麻城| 和静| 柳州| 建德| 怀远| 怀集| 富宁| 志丹| 伊金霍洛旗| 抚松| 郧西| 柳州| 长兴| 什邡| 定襄| 乌伊岭| 青田| 汤原| 宜良| 浮梁| 连山| 墨脱| 乐平| 盈江| 双流| 清徐| 建始| 武乡| 灵台| 崇州| 靖州| 杂多| 陇县| 昭平| 巴东| 馆陶| 常山| 利津| 黄平| 吉木乃| 平江| 石台| 米泉| 龙泉驿| 沁水| 无为| 金华| 兴宁| 巩义| 新荣| 锦州| 南丰| 闽清| 天祝| 始兴| 唐山| 塔城| 汕尾| 丰镇| 阎良| 泸定| 桂平| 镶黄旗| 苍南| 启东| 佳县| 沙坪坝| 来凤| 琼中| 潜山| 芜湖县| 博鳌| 新化| 台南市| 通化县| 乐清| 泗阳| 茂县| 丁青| 普定| 乐陵| 临潭| 博野| 牡丹江| 鹰潭| 科尔沁左翼中旗| 封丘| 合阳| 喀什| 巧家| 伊宁县| 防城港| 冠县| 东兰| 大同区| 象州| 马尾| 武鸣| 开阳| 营山| 井冈山| 芜湖市| 吉水| 渑池| 临洮| 固始| 波密| 太仆寺旗| 九五至尊赌场
|
|
51CTO旗下网站
|
|
移动端

Facebook 发布无梯度优化开源工具 Nevergrad,可应用于各类机器学习问题

大多数机器学习任务——从自然语言处理、图像分类到翻译以及大量其他任务,都依赖于无梯度优化来调整模型中的参数和/或超参数。

作者:丛末来源:雷锋网|2019-01-22 09:35

大多数机器学习任务——从自然语言处理、图像分类到翻译以及大量其他任务,都依赖于无梯度优化来调整模型中的参数和/或超参数。为了使得参数/超参数的调整更快、更简单,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 测试以及作业调度等其他任务进行参数扫描。

【编辑推荐】

  1. 人工智能时代,荣之联助力新媒体开创新生态
  2. 中国首款国产量子计算机控制系统诞生
  3. 预测:2019将爆发的10项人工智能技术!
  4. Julia vs Python:哪种编程语言会是2019年机器学习界的No 1?
  5. 【WOT2018】如何利用数据训练人工智能?三位大咖教你挖掘数据价值
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
大家都在看
猜你喜欢

读 书 +更多

UNIX到Linux的移植

本书讲述怎样把UNIX环境下的应用程序移植到Linux环境上运行,是一本综合的开发和解决问题的参考手册 。本书详细描述了当前IT行业中被广泛应...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
梧桐社区 四山乡 大庆晚报 炮厂坝街 羊桥土家族乡
高山土家族乡 七甲坪镇 永安满族镇 古河乡 齐家庄新村
澳门龙虎斗游戏娱乐 澳门大富豪赌博官网 澳门永利会娱乐场官方网址 真钱麻将游戏 捕鱼游戏玩法
澳门大富豪网站 老虎机技巧 赚钱斗地主 澳门银河网址 澳门美高梅官网
澳门葡京平台 澳门大发888官网注册 赌博攻略 百家乐网页游戏 澳门威尼斯人官网
澳门威尼斯人网上注册 澳门威尼斯人官方网址 联合赌场 威尼斯人平台 真钱的棋牌游戏
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐