0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

nlfO_thejiangme 来源:lq 2018-12-14 09:47 次阅读

近日,日本的深度学习公司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能够开发更多优秀的算法。

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

    关注

    28

    文章

    5037

    浏览量

    77731
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130562
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119908

原文标题:Perferred Networks提出自动化超参数优化框架Optuna

文章出处:【微信号:thejiangmen,微信公众号:将门创投】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    苹果iOS 6.1 Beta 4发布 增语音拨号功能

    发布Apple TV软件Beta 3和Xcode 4.6第四个开发者预览版。相信很快iOS 6.1正式版就要跟大家见面
    发表于 12-19 09:25

    优麒麟Ubuntu Kylin发布最新测试版本 优化用户体验

    `近日,记者了解到国产操作系统优麒麟正式发布15.04 Beta 2测试版本,对重量级特色软件进行了升级,更好的方便用户体验,这款适合个人应用、大型企业和***机构办公的操作系统在细
    发表于 04-15 17:40

    改善深层神经网络--参数优化、batch正则化和程序框架 学习总结

    《深度学习工程师-吴恩达》02改善深层神经网络--参数优化、batch正则化和程序框架 学习总结
    发表于 06-16 14:52

    OpenHarmony v2.2 Beta2发布

    8 月 4 日,OpenHarmony v2.2 Beta2 发布,最新版本在 OpenHarmony 2.0 Canary 的基础上,针对轻量系统、小型系统和标准系统增加了新的特性。标准系统新增
    发表于 08-09 13:53

    DevEco Studio 2.2 Beta2新版本发布,SDK API6正式Release

    ,可以通过预览器Previewer来实现。之前的版本,Previewer仅支持几个固定尺寸的画布,无法满足不同屏幕分辨率的需求。本次2.2 Beta2版本,Previewer新增自定
    发表于 09-15 17:28

    HarmonyOS IDE工具DevEco 新版本3.0 Beta1发布

    3.0 Beta1新功能一览1. 新增特性:新增支持方舟开发框架ArkUI 3.0版本和eTS(Extended TypeScript)扩展语法。eTS是在TS的基础上支持声明式U
    发表于 10-26 18:16

    RT-Thread v4.1.0 正式发布

    自 v4.1.0 Beta 发布以来的更改日志核心src/clock.c 为 rt_tick_increase 添加钩子如果您打开 RT_USING_MODULE,则修复线程初始化错误修复所有
    发表于 04-14 14:00

    系统中常用的版本说明

    Support):长期支持版,Ubuntu会对这一版本的支持时间更长。目前Java也在运用这种方式。在比如说php的Laravel框架发布一些LTS
    发表于 04-21 10:08

    版本上线! OpenHarmony 3.2 Beta1 版本介绍

    /manifest.git -b OpenHarmony-3.2-Beta1 --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'从版本发布Tag节点
    发表于 06-01 17:17

    OpenHarmony 3.2 Beta1版本正式发布

    5 月 31 日,开放原子开源基金会正式发布 OpenAtom OpenHarmony(以下简称“OpenHarmony”)3.2 Beta1 版本。全球开发者可通过Gitee和镜像站点下载完整代码
    发表于 06-06 17:58

    HarmonyOS 3.0 Beta版本说明

    版本信息|版本介绍本次发布HarmonyOS 3.0 Beta,可用于开发基于API Version 8的应用。从本次发布起,变更
    发表于 07-07 14:16

    面向开发者的HarmonyOS 3.0 Beta发布

    2021年10月,我们面向开发者发布HarmonyOS 3.0 Developer Preview版,但开发的脚步永不停歇,现在我们又更新API版本,配套
    发表于 07-08 11:14

    OpenHarmony 3.2 Beta2 版本发布:支持电源管理重启恢复机制等

    版本概述当前版本在OpenHarmony 3.2 Beta1的基础上,更新支持以下能力:标准系统基础能力增强新增支持窗口多热区分发机制。支持电源管理重启恢复机制。多模输入新增支持Input手写笔压感
    发表于 08-02 10:31

    OpenHarmony 4.0 Beta1发布,邀您体验

    系统的ArkUI、应用框架、图形媒体等子系统能力,并提供首批API Level 10接口。 作为OpenHarmony 4.0的首个Beta版本,推出了系列新特性。期待社区开发者踊跃体验新特性,贡献智慧与力量
    发表于 06-08 14:14

    华为将发布HarmonyOS 2.0手机Beta版本

    12月14日,华为消费者BG软件部总裁@华为王成录 宣布,将于12月16日在北京发布HarmonyOS 2.0手机开发者Beta版本
    的头像 发表于 12-14 14:07 1733次阅读