专栏首页marsggbo论文笔记系列-Multi-Fidelity Automatic Hyper-Parameter Tuning via Transfer Series Expansion

论文笔记系列-Multi-Fidelity Automatic Hyper-Parameter Tuning via Transfer Series Expansion

论文: 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 命令行神器之argparse使用笔记

    一般而言argparse都是写在main.py里的,但是有时参数设置有很多,main.py就显得很臃肿,所以可以考虑将参数设置单独写在一个文件里。示例如下:

    marsggbo
  • 论文笔记系列-Neural Network Search :A Survey

    论文 笔记 NAS automl survey review reinforcement learning Bayesian Optimization evol...

    marsggbo
  • 论文笔记系列-Simple And Efficient Architecture Search For Neural Networks

    本文提出了一种新方法,可以基于简单的爬山过程自动搜索性能良好的CNN架构,该算法运算符应用网络态射,然后通过余弦退火进行短期优化运行。

    marsggbo
  • 使用c语言计算3阶行列式

    很多学线性代数的小伙伴在计算3阶行列式的时候总会感到很麻烦,数据量大而且容易看错。我们在知道计算方法后就可以使用c语言写出计算3阶行列式的代码:

    诸葛青云
  • 研发:Print TCP Packet Data

    Below is an example which does exactly what you need: hook received TCP packets ...

    heidsoft
  • 注解简单详解

    在前几篇中,我们基本都是通过xml的方式来为对象织入增强的,但在实际的开发中,我们基本不会采用这种方式,因为spring为我们提供了更方便的注解的方式来实现和x...

    吉林乌拉
  • 人工智能将如何用于管理5G网络

    人工智能将在未来网络如何切片、支持多种用途(包括物联网和私有5G网络)方面发挥重要作用。

    用户4122690
  • 江晓东:企业如何做一个成功的大数据项目

    分享老师:江晓东 世界500强企业咨询师、曾担任奥巴马政府经济刺激计划MAMP项目顾问

    华章科技
  • scrapy(1)——scrapy介绍

    Mister24
  • IDC:2017 Q1云计算IT基础设施收入达80亿美元

    编译 研究分析机构IDC最近调研报告表明,云计算占全球IT支出的份额不断增加,2017年第一季度全球云计算IT基础设施收入达到80亿美元,同比增长15%,思...

    人称T客

扫码关注云+社区

领取腾讯云代金券