• 论文笔记系列-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_ipsi_i(x)+b ag{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算法步骤了,算法如下:

    未完待续...

    image.png

    image.png



    MARSGGBO原创





    2018-8-5



  • 相关阅读:
    【转载】实用VC++6.0插件
    关于无标题栏窗口拖动的问题
    VC6配置CXimage库
    扎实基础深入篇(七):函数和类没那么复杂
    扎实基础深入篇(六):while循环带动生产力
    扎实基础深入篇(五):字典也就是个弟弟
    扎实基础深入篇(四):听说if语句很叼?
    lxml类库的xpath的使用
    json与re的再次复习
    python基础汇总(四)
  • 原文地址:https://www.cnblogs.com/marsggbo/p/10122934.html
Copyright © 2020-2023  润新知