此外 , 为增大贝叶斯优化的探索性 , 保证算法收敛 , 我们设置每次推荐时使用随机搜索的概率为 0.1 。
代码实现
初赛代码仅需调用 OpenBox 系统中的并行贝叶斯优化器 SyncBatchAdvisor , 即可实现上述功能:
from openbox import SyncBatchAdvisor
【浏览器|腾讯QQ浏览器2021AI算法大赛,北大冠军团队经验分享,附详细代码】self.advisor = SyncBatchAdvisor(
config_space=self.config_space,
batch_size=5,
batch_strategy='reoptimization',
initial_trials=10,
init_strategy='random_explore_first',
rand_prob=0.1,
surrogate_type='gp',
acq_type='ei',
acq_optimizer_type='random_scipy',
task_id='thpo',
random_state=47,
文章图片
代码以图示为准
每轮执行推荐时 , 调用 advisor 的 get_suggestions 接口:
def suggest(self, suggestion_history, n_suggestions):
history_container = self.parse_suggestion_history(suggestion_history)
next_configs = self.advisor.get_suggestions(n_suggestions, history_container)
next_suggestions = [self.convert_config_to_parameter(conf) for conf in next_configs]
return next_suggestions
文章图片
代码以图示为准
决赛算法介绍
赛题理解
决赛问题在初赛的基础上 , 对每个超参数配置提供 14 轮的多精度验证结果 , 供算法提前对性能可能不佳的配置验证过程执行早停 。 同时 , 总体优化预算时间减半 , 最多只能全量验证 50 个超参数配置 , 因此问题难度大大增加 。 如何设计好的早停算法 , 如何利用多精度验证数据是优化器设计的关键 。
我们对本地公开的两个数据集进行了探索 , 发现了一些有趣的性质:
- 对于任意超参数配置 , 其第 14 轮的奖励均值位于前 13 轮置信区间内的概率为 95% 。
- 对于任意超参数配置 , 其前 13 轮中任意一轮的均值比第 14 轮均值大的概率为 50% 。
- 对于任意超参数配置 , 其 14 轮的置信区间是不断减小的 , 但均值曲线是任意波动的 。
- 在所有超参数配置之间 , 部分验证(1-13 轮)和全量验证(14 轮)均值大小关系一致的概率大于 95% 。
- 在空间中最终性能前 1% 的超参数配置之间 , 这种一致性大约在 50% 到 70% 之间 。
推荐阅读
- 安全|Redline Stealer恶意软件:窃取浏览器中存储的用户凭证
- 吴祖榕|上线 2 周年,用户数破 2 亿,腾讯会议和我们聊了聊背后的产品法则
- 硬件|上线两年用户破两亿,腾讯会议还能做什么?
- 设计|腾讯宣布企业级设计体系 TDesign 对外开源
- 警告!|冒充老干妈员工诈骗腾讯被判12年 两被告提出上诉
- Tencent|继百度网盘后腾讯微云也已解除限速 不用单独下载App
- 文化|“视频会员”的意义,藏在腾讯视频VIP九周年里
- 彩云|解除限速!腾讯微云 App 更新,提供无差别速率服务
- 公司|《Control》开发商正在与腾讯合作开发一款PVE射击网游
- 国计民生|25万亿级新蓝海!百度、华为、腾讯重磅出击,抢食智慧城市"大蛋糕",AI巨头如何赋能?来看真实案例