基于metarl的automl任务编码估计器

meta-ml的Python项目详细描述


元学习

m基于etral的e使用t的刺激器 a自动匹配机器学习

元学习是自动机器学习的一种深入学习方法 将机器学习软件的api参数化为 端到端选择机器学习管道的超参数 时尚,来自原始数据表示、插补、规范化、特征 表现和分类/回归。目前 sklearn api是唯一受支持的ml框架。

为什么?

随着数据和机器学习用例的多样性增加,我们需要 加速和扩展机器学习训练过程 系统。我们需要能够适应特定问题领域的工具, 数据集和(有时是不可微的)性能指标 试图优化。分类与回归任务的监督学习 鉴于中小型数据集的任务分布提供了一个有希望的 跳台编程生成强化学习 自动机器学习环境(automl)。

安装

安装metalearn库:

pip install -e .

然后您可以使用metalearncli运行一个实验。

# run an experiment with default values
$ metalearn run experiment

使用配置文件运行实验

或者,您可以创建一个实验配置文件来运行 你的实验。

# create experiment config file
$ metalearn create config my_experiment config/local --description "my experiment"

# output:
# wrote experiment config file to config/local/experiment_2018-37-25-21:37:11_my_experiment.yml

将配置文件参数部分编辑为参数集 你想继续训练,然后用

$ metalearn run from-config config/local/experiment_2018-37-25-21:37:11_my_experiment.yml

相关工作

算法选择与超参数优化的结合 (现金问题是我们需要解决的重要问题 在现实世界的用例中有效地扩展和部署机器学习系统, 它通常处理小(10 GB)到中等(10-100 GB)的数据。

现金是搜索所有ml框架空间的问题, 定义为一个算法a和一组相关的超参数lambda 并提出一组模型,在给定数据集和 一项任务。

为了解决这个问题,以前的工作类似于自动学习 使用贝叶斯优化技术与离线元- 利用欧氏距离缩小搜索空间学习"温启动"步骤 ml框架。这个元学习步骤是通过表示数据集来完成的 使用元数据特征(例如特征数、倾斜、平均值、方差等)来 学习在ml方面表现良好的数据空间的表示 框架选择任务。

神经架构搜索是另一种现金支付方法 问题,控制器网络提出"子"神经网络结构 使用 验证性能r作为强化学习的奖励信号 最佳架构建议策略。

贡献

元学习项目的贡献有两方面:它建立在神经系统的基础上 构造控制器输出空间的结构搜索范式 作为一个标记序列,条件是可能的可执行文件的空间 框架。这个项目的范围是定义一个框架 作为一组超参数,可以通过机器学习进行评估 框架,像sklearn,哪个ev计算为实例化的sklearn 管道。一旦定义,它可以安装在训练 在特定数据集的验证集上设置和计算

遵循神经架构方案,元学习使用强化算法 计算用于更新控制器的策略梯度以了解 提出能够实现高度验证的良好框架的政策 设置性能。

这个项目的第二个贡献是它提出了一个条件 mlframeworkgenerator通过扩展控制器网络使其具有编码器 作为数据集输入元数据的网络 实例,功能数)。编码器网络的输出将是 输入解码器网络,该网络提出一个ml框架。因此, 我们可以将d上的解码器网络元数据的输出设置为 定制的框架

训练算法

该环境是由k有监督的学习任务组成的 分别是特征和目标的一对(x,y)。开始的时候 一个事件,环境采样一个任务,对于i迭代产生 样本分割(x_-train,y_-train,x_-validation,y_-validation)从 任务数据集。

metalearncontroller通过元功能接收当前任务状态 关联任务,例如训练样本的任务,特征的任务, 目标类型连续特征分类特征

给定任务状态,控制器在一个状态上生成ml框架 算法空间和超参数值。控制器可以被视为 策略近似器,它根据一些预定义的 算法空间,表示为每个节点所在的直接非循环图 包含一组可供选择的超参数值。控制器遍历 该图通过一个顺序解码器通过softmax选择超参数 分类器,其中某些操作可能会从图形中移除某些边。 这将强制执行不兼容的超参数配置。

例如,可能的sklearn管道的算法空间将 由以下部件组成:

  • 分类编码器(例如OneHotEncoder)
  • 分类编码器超参数
  • 输入(例如SimpleImputer)
  • 输入超参数
  • 重标器(例如标准标度器)
  • 重缩放器超参数
  • 功能处理器(例如PCA)
  • 功能处理器超参数
  • 分类器/回归器(例如logisticRegression、linearRegression)
  • 分类器/回归器超参数

当控制器到达算法空间中的终端节点时,环境 评估所选的mlframework并生成验证分数 控制器用作奖励信号。验证性能校准如下 分数越高越有回报。使用强化政策 梯度法,控制器试图找到最优策略 通过任务分配最大化验证性能。

分析

/analysis子文件夹包含Jupyter笔记本,可以可视化 现金控制员的表现。目前有5项分析 在项目分析子文件夹中:

  • rnn_metalearn_controller_experience_analysis.ipynb:分析 使用静态绘图运行examples/example\u rnn_metalearn_controller.py
  • metalearn_controller_analysis.ipynb:基本交互分析 单个作业的输出。
  • metalearn_controller_multi_experiment_analysis.ipynb:分析多个 作业输出,假设每个作业都有一次试用(培训运行)。
  • metalearn_controller_multi_trail_analysis.ipynb:分析 一个作业的输出,但该作业有多个测试。
  • metalearn_controller_multi_trial_experiment_analysis.ipynb:分析 多个作业的输出,每个作业都有多个试验。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表