SMBO迁移学习

昨天完成了SMBO的迁移学习,现在记录一下具体做了哪些修改,方便以后复盘。

首先是在resource_manager.py中,调用from dsmac.runhistory.runhistory_db import RunHistoryDB的ORM类做数据库迁移。

修改了dsmac.runhistory.runhistory.RunHistory#get_incumbent,取最优解的时候加了等于当前instance的限制条件。

dsmac.optimizer.ei_optimization.LocalSearch#_get_initial_points,做近邻搜索的部分。configs_previous_runs表示之前搜索过的点,然后在这些点附近做近邻搜索。对于这些点同样加上了instance限制条件。

最后就是dsmac.intensification.intensification.Intensifier#intensify函数了。
首先在dsmac/intensification/intensification.py:191这里加了对于challenger是否存在runhistory中instance为当前instance的判断。

对于dsmac.intensification.intensification.Intensifier#_race_challenger函数,dsmac/intensification/intensification.py:371有个for循环有点诡异,删除了,后面try代码块中的表达式也做了相应的修改。

每次迭代完在dsmac/intensification/intensification.py:239这个地方都会打印个信息,其中有个run多少的信息,是从这来的:

inc_runs = run_history.get_runs_for_config(incumbent)

这个是什么意思呢,可以理解为对于当前最优解,从运行历史中取出所有config_id相同的RunKey。

在当前做了迁移学习重构的系统中,可以理解为:

1: 最优解第一次出现
2: 最优解第二次出现
类推


突然有了个idea,关于SMBO迁移学习的。
学习器在小样本上run了A,B,C … Z 这26个样本点,结果分别是p1,p2,…,p26

现在要将小样本的经验迁移到大样本上。从小样本中采样足够数量的样本,在大样本上对这些采样的超参(样本点)再run一次,假设是ABC,表现是p1,p2,p3

然后做一个线性回归,然后对小样本的数据进行修正。最后做一下数据库迁移,搞定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值