召唤新一代超参调优开源新神器,集十大主流模块于一身

2020 年 1 月 24 日 CSDN
整理 | 凯隐
编辑 | Jane
来源 | AI科技大本营(ID:rgznai100)
 
Optuna是一款为机器学习任务设计的自动超参数优化软件框架,是一款按运行定义(define-by-run) 原则设计的优化软件,允许用户动态地调整搜索空间,在同类软件中尤属首创,是下一代超参调优框架的代表。接下来,带大家了解 Optuna——新一代超参调优框架。  
               

超参调优简介

 
在训练神经网络时,模型结构尺度,例如深度,宽度,每层分辨率等,都会影响到模型的最终性能,从这些参数组合中找到最适合当前任务的参数,就是常说的超参调优。
               
传统的超参调优方法是经验性的手动调整参数,并记录实验结果,然后通过人工分析对比确定下一步的参数调整方向,这种方法吃力且效率低,还容易出错。Optuna的出现大大降低了超参调优的难度,下面让我们来看看Pptuna是如何工作的吧!
 

Optuna工作方式和特点
 
1、按运行定义
 
首先通过 pip 命令安装 Optuna:
 
              
 
以层数搜索为例,我们需要优化的是一个用于分类的多层感知器的层数以及每一层的神经元个数:
               
将运行代码(5-11行)重新嵌入到试验(trial)函数中,试验函数通过单次执行代码来得到一组参数组合下的结果:
               
然后添加一个关于层数的 for 循环:
                 
以及每层中神经元个数的 for 循环:
                
最后定义一个 study 对象,将trial训练结果作为优化目标,便可以通过多次实验找出最优超参数组合,这里设置的实验次数(n_trials=100)是 100 次:
                  
完成以上步骤,便可以运行程序,让optuna来自动完成搜索过程,因此 Optuan 是一个专门为自动化设计的框架。此外我们可以看到代码编写是非常简单的,且非常灵活,可以随时调整搜索空间和次数上限,这也体现了Optuna按运行定义的特点。
 
2、并行分布式计算
 
上面的例子中我们使用的只是一个很简单的示例网络,但大部分情况下网络和数据集都要比示例大得多,此时 Optuna 的另一个特点就体现出来了:
               
在上述代码中,我们将搜索过程做了并行化处理,这样实际运行时效果就如同下图:
               
并行化处理能大幅减低调优所需时间,从而加速优化过程。此外 Optuna 还具有剪枝优化功能,即提前结束并行化实验中的低质量参数实验,从而提高效率。
 
3、支持多类型任务和框架
 
Optuna 不仅可以用于实验调参,也可以轻松地部署到生产作业以及数据分析任务中:
               
Optuna 的环境依赖非常简单,并且能独立地完成任务:
               
此外,Optuna 还支持许多其他深度学习框架和模块,例如 Tensorflow,Keras,PyTorch,MXNet等。
                 

使用 Optuna
 
Optuna可以通过 pip 或 conda 指令进行安装,目前支持 python3.5 以上的版本,更多相关资料详见官网,官方文档,以及 Github 主页。
                
相关阅读:
https://optuna.org/
https://optuna.readthedocs.io/en/stable/
https://github.com/optuna/optuna


你点的每个“在看”,我都认真当成了喜欢
登录查看更多
2

相关内容

【干货书】高级应用深度学习,294页pdf
专知会员服务
153+阅读 · 2020年6月20日
专知会员服务
73+阅读 · 2020年5月21日
专知会员服务
31+阅读 · 2020年4月24日
【2020新书】如何认真写好的代码和软件,318页pdf
专知会员服务
63+阅读 · 2020年3月26日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
自动机器学习:最新进展综述
专知会员服务
119+阅读 · 2019年10月13日
【CPS】CPS应用案例集
产业智能官
84+阅读 · 2019年8月9日
干货 | 让算法解放算法工程师——NAS 综述
AI科技评论
4+阅读 · 2018年9月12日
干货——图像分类(下)
计算机视觉战队
14+阅读 · 2018年8月28日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
【干货】使用Pytorch实现卷积神经网络
专知
13+阅读 · 2018年5月12日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Panoptic Feature Pyramid Networks
Arxiv
3+阅读 · 2019年1月8日
Arxiv
8+阅读 · 2018年11月21日
VIP会员
相关资讯
【CPS】CPS应用案例集
产业智能官
84+阅读 · 2019年8月9日
干货 | 让算法解放算法工程师——NAS 综述
AI科技评论
4+阅读 · 2018年9月12日
干货——图像分类(下)
计算机视觉战队
14+阅读 · 2018年8月28日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
【干货】使用Pytorch实现卷积神经网络
专知
13+阅读 · 2018年5月12日
Gluon —— 微软和亚马逊联合推出深度学习库
开源中国
7+阅读 · 2017年10月24日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Top
微信扫码咨询专知VIP会员