论文: Multi-Fidelity Automatic Hyper-Parameter Tuning via Transfer Series Expansion

我们都知道实现AutoML的基本思路是不断选取不同的超参数组成一个网络结构,然后使用这个网络结构在整个数据集上进行评估 (假设评估值为\(f_H(X)=\mathcal{L}(δ,D^{train},D^{valid})\),X表示某一组超参数) ,最后选择出评估性能最好的网络参数。

但是基于full dataset进行评估cost太大,所以很自然地想到基于一部分数据集进行评估,假设此时的评估结果是\(f_L(X)=\mathcal{L}(δ,D^{sub}_{r_L},D^{valid})\),其中\(D^{sub}_{rL}\)表示从训练集中以\(r_L\)的比例抽取数据。但是这样又存在另外一个问题,那就是基于一部分数据集进行评估得到的结果往往是不准确的,那怎么办呢?下面进行一波分析:

令\(R(X)=f_H(X)-f_L(X)\),用来衡量\(f_H\)与\(f_L\)之间的残差(residual)。所以如果我们能够得到\(R(X)\),那么我们就能够用\(R(X)+f_L(X)\)来代替需要花费大量算力的\(f_H(X)\),那么怎么得到\(R(X)\)呢?

本文为了求得\(R(X)\)提出了Transfer Series Expansion (TSE),该方法就是通过学习一系列的基预测器,并将他们线性组合得到了最终的预测器,预测结果即为\(R(X)\)。公式如下:
\[\Psi(x)=\sum_{i=1}^kw_i\psi_i(x)+b \tag{1}\]

由公式(1)可以知道我们需要构造出\(k\)个基预测器,换句话说我们需要k个不同的数据集,数据集可以表示为\(D^{predictor}=\{(x_1,y_1),...,(x_m,y_m)\}\),其中\(y_i=R(x_i)\)。很显然为了得到\(y_i\)还是得花费不少代价。所以作者提出了一个折中的办法就是令\(y_i=R(x_i)=f_M(x_i)-f_L(x_i)\),其中\(f_M\)表示介于\(f_L\)和\(f_H\)之间的评估,也就是说以\(r_M(0<r_L<r_M<<1)\)的比例从训练集中抽取出数据进行模型的评估。(文中并没有详细介绍如何构造基预测器,只是说使用Random Forest Regressor,所以这里不再对基预测器如何构造进行说明。)。

所以用来构建k个基预测器的数据集对即为\(\{(D^{sub1}_{r_L},D^{sub1}_{r_M}),...,(D^{subk}_{r_L},D^{subk}_{r_M})\}\),注意\((D^{sub1}_{r_L},D^{sub1}_{r_M})\)转变成一组用于生成基预测器的数据集\(D^{predictor}\)。除此以外其实还需要构造\(\{(D^{sub}_{r_L},D^{train})\}\)用于最后的回归问题。所以实际上随机初始化\(k\)个\(D^{sub}_{r_M}\)和\(k+1\)个\(D^{sub}_{r_L}\)。

好了现在假设基预测器都构建好了,那么就可以进入正式的TSE算法步骤了,算法如下:

未完待续...

MARSGGBO♥原创







2018-8-5

论文笔记系列-Multi-Fidelity Automatic Hyper-Parameter Tuning via Transfer Series Expansion的更多相关文章

  1. 论文笔记系列-Speeding Up Automatic Hyperparameter Optimization of Deep Neural Networks by Extrapolation of Learning Curves

    I. 背景介绍 1. 学习曲线(Learning Curve) 我们都知道在手工调试模型的参数的时候,我们并不会每次都等到模型迭代完后再修改超参数,而是待模型训练了一定的epoch次数后,通过观察学习 ...

  2. 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)

    [论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...

  3. 论文笔记系列-Neural Network Search :A Survey

    论文笔记系列-Neural Network Search :A Survey 论文 笔记 NAS automl survey review reinforcement learning Bayesia ...

  4. 论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Pytorch实现代码:https://github.com/MenghaoGuo/AutoDeeplab 创新点 cell-level and network-level search 以往的NAS ...

  5. 论文笔记系列-Well Begun Is Half Done:Generating High-Quality Seeds for Automatic Image Dataset Construction from Web

    ​ ​ ​ MARSGGBO♥原创 2019-3-2

  6. 论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing

    Summary 本文提出超越神经架构搜索(NAS)的高效神经架构搜索(ENAS),这是一种经济的自动化模型设计方法,通过强制所有子模型共享权重从而提升了NAS的效率,克服了NAS算力成本巨大且耗时的缺 ...

  7. 论文笔记系列-Neural Architecture Search With Reinforcement Learning

    摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...

  8. 论文笔记系列-AutoFPN

    原论文:Auto-FPN: Automatic Network Architecture Adaptation for Object Detection Beyond Classification 之前 ...

  9. 论文笔记系列-iCaRL: Incremental Classifier and Representation Learning

    导言 传统的神经网络都是基于固定的数据集进行训练学习的,一旦有新的,不同分布的数据进来,一般而言需要重新训练整个网络,这样费时费力,而且在实际应用场景中也不适用,所以增量学习应运而生. 增量学习主要旨 ...

随机推荐

  1. nginx buffered to a temporary 解决

    今天开启了nginx的error_log,发现了三个配置问题: 问题一: 2011/07/18 17:04:37 [warn] 2422#0: *171505004 an upstream respo ...

  2. mysql 游标的使用方法

    BEGIN /*计算用户提成总金额*/ declare amountPrice,pays,rates,goodsPrice DECIMAL(10,2) DEFAULT 0; DECLARE flag ...

  3. jq实现百度图片移入移出内容提示框上下左右移动的效果

    闲来无聊,看到百度图片hover的时候提示框的效果,遂想试一试自己能否实现. 百度图片hover的效果: 需求: 1. 当鼠标从图片上部移入的时候,提示框从上部移到正常位置.从上部移出的时候,提示框从 ...

  4. Spring_xml和注解混合方式开发

    1. spring核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...

  5. 剑指Offer_编程题_14

    题目描述 输入一个链表,输出该链表中倒数第k个结点. /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : va ...

  6. MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解

    MySQL高可用架构之Mycat-关于Mycat安装和参数设置详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Mycat介绍 1>.什么是Mycat Mycat背后是 ...

  7. dubbo基础

    一.什么是dubbo,有什么用 dubbo是阿里巴巴开源的一个RPC框架,用于多个应用相互通信.使用dubbo需要安装一zookepper 二.dubbo的基本使用 1.构建一个maven的多模块项目 ...

  8. js中的blob,图片base64URL,file之间的关系

    js的base64编码和解码 英文是这样的:// atob() 将base64解码 // btoa() 将字符串转码为base64 var str = 'javascript'; window.bto ...

  9. python 面向对象(二)成员

    ##################################总结########################### 类的成员: 变量: 实例变量      对象.属性=xxx 类变量    ...

  10. Mysql分页优化

    数据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是主键,vtype是tinyint,vtype是索引. ...