2021-AIAC-QQ-Browser-Hyperparameter-Optimization-Rank6

Overview

2021-AIAC-QQ-Browser-Hyperparameter-Optimization-Rank6

2021 AIAC QQ浏览器AI算法大赛 赛道二 超参数优化 初赛Rank3 决赛Rank6

赛题官网:https://algo.browser.qq.com/

赛题内容:在信息流推荐业务场景中普遍存在模型或策略效果依赖于“超参数”的问题,而“超参数"的设定往往依赖人工经验调参,不仅效率低下维护成本高,而且难以实现更优效果。因此,本次赛题以超参数优化为主题,从真实业务场景问题出发,并基于脱敏后的数据集来评测各个参赛队伍的超参数优化算法。本赛题为超参数优化问题或黑盒优化问题:给定超参数的取值空间,每一轮可以获取一组超参数对应的Reward,要求超参数优化算法在限定的迭代轮次内找到Reward尽可能大的一组超参数,最终按照找到的最大Reward来计算排名。

算法baseline主要来自华为HEBO,针对比赛做了一些参数和代码的修改。另外官方提供的代码修改了一些结构方便线下debug。

运行环境: win10 ,Python3.6,Pycharm20200101,git bash用于运行打包脚本。

官方代码主要修改点:

1、thpo/run_search.py函数,增加修改如下代码:

#run_cmd = common.PYTHONX + " ./thpo/run_search_one_time.py " + common.args_to_str(cur_args)
args = common.parse_args(common.experiment_parser("description"))
searcher_root = args[common.CmdArgs.searcher_root]
searcher = get_implement_searcher(searcher_root)
eva_func_list = args[common.CmdArgs.data]
repeat_num = args[common.CmdArgs.repear_num]
err_code, err_msg = run_search_one_time(args, searcher, eva_func_list[0], repeat_num)

2、初赛阶段,修改n_iteration为10次,总共50组参数,因为hebo线下很容易就到0.99+,将迭代的次数减小,方便继续优化,线下线上能保证同时上分。

hebo代码修改点:

1、修改代码结构,适配本次比赛,具体可以查看searcher.py.

2、searcher.py,name='gpy',MACE方法改为MOMeanSigmaLCB,EvolutionOpt修改iters参数为25.决赛优化check_unique的去重代码。在获得一批最优点后,增加通过距离选择其中一些点的方法,优于hebo原代码中的随机选择方式。具体在distance相关代码。

3、bo/models/gp/gpy_wgp.py,Matern32改为Matern52,去掉linear核,optimize_restarts修改为原来的三分之一,restarts改为一次,也就是优化一次。

总结

上面是本次比赛初赛和决赛的一些修改点,其它的漏掉的记起来了再补充。因为之前没做过超参数的优化,所以除了读大量论文和代码花了很多时间,调参也是花了很多时间。所以try.txt里面记录了大量调参的过程和结果,留作记录。另外初赛阶段把NeurIPS 2020开源的代码都试了下,特别是turbo这个试了很久,感觉应该有效果,但是实际使用效果不佳。初赛阶段之所以做上面这些修改,主要原因是一开始hebo代码调通以后,线下0.99线上0.001,后面发现是超时问题,所以相关的调参工作基本上是优化代码的运行时间,确保精度不下降的情况下提高速度,最终逐步从0.7+优化到0.95+,不过初赛最终切榜的时候显示超时,线上分数掉到0.899+,rank3.

复赛阶段基本上代码没做太大修改,因为试了很多策略效果都不怎么理想。最终还是没用early stop策略。线上0.712+

reference里面有使用的相关开源代码的链接,里面也能找到相应的论文,细节部分可以看下论文里面。

reference:

1、https://github.com/huawei-noah/HEBO/tree/master/HEBO

2、https://bbochallenge.com/leaderboard/

3、https://github.com/uber-research/TuRBO

Owner
Aigege
记录下数据挖掘、计算机视觉工作中编写的一些代码和总结,备份和分享下。 主要包括工作中的一些实现,自己刷比赛时编写的一些解决方案,包括分析和建模,另外还有些阅读最新论文实现的视觉CNN,结构化数据NN网络等,使用的tensorflow、keras框架,陆续加入阅最新sota论文实现的新算法
Aigege
Code and description for my BSc Project, September 2021

BSc-Project Disclaimer: This repo consists of only the additional python scripts necessary to run the agent. To run the project on your own personal d

Matin Tavakoli 20 Jul 19, 2022
Code for "Adversarial attack by dropping information." (ICCV 2021)

AdvDrop Code for "AdvDrop: Adversarial Attack to DNNs by Dropping Information(ICCV 2021)." Human can easily recognize visual objects with lost informa

Ranjie Duan 52 Nov 10, 2022
PyTorch Implementation of Exploring Explicit Domain Supervision for Latent Space Disentanglement in Unpaired Image-to-Image Translation.

DosGAN-PyTorch PyTorch Implementation of Exploring Explicit Domain Supervision for Latent Space Disentanglement in Unpaired Image-to-Image Translation

40 Nov 30, 2022
This is an official implementation for "DeciWatch: A Simple Baseline for 10x Efficient 2D and 3D Pose Estimation"

DeciWatch: A Simple Baseline for 10× Efficient 2D and 3D Pose Estimation This repo is the official implementation of "DeciWatch: A Simple Baseline for

117 Dec 24, 2022
QueryDet: Cascaded Sparse Query for Accelerating High-Resolution SmallObject Detection

QueryDet-PyTorch This repository is the official implementation of our paper: QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small O

Chenhongyi Yang 276 Dec 31, 2022
Source Code for DialogBERT: Discourse-Aware Response Generation via Learning to Recover and Rank Utterances (https://arxiv.org/pdf/2012.01775.pdf)

DialogBERT This is a PyTorch implementation of the DialogBERT model described in DialogBERT: Neural Response Generation via Hierarchical BERT with Dis

Xiaodong Gu 67 Jan 06, 2023
Self-training for Few-shot Transfer Across Extreme Task Differences

Self-training for Few-shot Transfer Across Extreme Task Differences (STARTUP) Introduction This repo contains the official implementation of the follo

Cheng Perng Phoo 33 Oct 31, 2022
CNN Based Meta-Learning for Noisy Image Classification and Template Matching

CNN Based Meta-Learning for Noisy Image Classification and Template Matching Introduction This master thesis used a few-shot meta learning approach to

Kumar Manas 2 Dec 09, 2021
Probabilistic Programming and Statistical Inference in PyTorch

PtStat Probabilistic Programming and Statistical Inference in PyTorch. Introduction This project is being developed during my time at Cogent Labs. The

Stefano Peluchetti 109 Nov 26, 2022
(NeurIPS '21 Spotlight) IQ-Learn: Inverse Q-Learning for Imitation

Inverse Q-Learning (IQ-Learn) Official code base for IQ-Learn: Inverse soft-Q Learning for Imitation, NeurIPS '21 Spotlight IQ-Learn is an easy-to-use

Divyansh Garg 102 Dec 20, 2022
Repository for GNSS-based position estimation using a Deep Neural Network

Code repository accompanying our work on 'Improving GNSS Positioning using Neural Network-based Corrections'. In this paper, we present a Deep Neural

32 Dec 13, 2022
Machine learning for NeuroImaging in Python

nilearn Nilearn enables approachable and versatile analyses of brain volumes. It provides statistical and machine-learning tools, with instructive doc

919 Dec 25, 2022
This repository consists of Blender python scripts and corresponding assets to generate variants of the CANDLE dataset

candle-simulator This repository consists of Blender python scripts and corresponding assets to generate variants of the IITH-CANDLE dataset. The rend

1 Dec 15, 2021
RM Operation can equivalently convert ResNet to VGG, which is better for pruning; and can help RepVGG perform better when the depth is large.

RM Operation can equivalently convert ResNet to VGG, which is better for pruning; and can help RepVGG perform better when the depth is large.

184 Jan 04, 2023
Multi-View Radar Semantic Segmentation

Multi-View Radar Semantic Segmentation Paper Multi-View Radar Semantic Segmentation, ICCV 2021. Arthur Ouaknine, Alasdair Newson, Patrick Pérez, Flore

valeo.ai 37 Oct 25, 2022
PyTorch Implementations for DeeplabV3 and PSPNet

Pytorch-segmentation-toolbox DOC Pytorch code for semantic segmentation. This is a minimal code to run PSPnet and Deeplabv3 on Cityscape dataset. Shor

Zilong Huang 746 Dec 15, 2022
Papers about explainability of GNNs

Papers about explainability of GNNs

Dongsheng Luo 236 Jan 04, 2023
Discovering and Achieving Goals via World Models

Discovering and Achieving Goals via World Models [Project Website] [Benchmark Code] [Video (2min)] [Oral Talk (13min)] [Paper] Russell Mendonca*1, Ole

Oleg Rybkin 71 Dec 22, 2022
Code for the paper 'A High Performance CRF Model for Clothes Parsing'.

Clothes Parsing Overview This code provides an implementation of the research paper: A High Performance CRF Model for Clothes Parsing Edgar Simo-S

Edgar Simo-Serra 119 Nov 21, 2022
一个免费开源一键搭建的通用验证码识别平台,大部分常见的中英数验证码识别都没啥问题。

captcha_server 一个免费开源一键搭建的通用验证码识别平台,大部分常见的中英数验证码识别都没啥问题。 使用方法 python = 3.8 以上环境 pip install -r requirements.txt -i https://pypi.douban.com/simple gun

Sml2h3 189 Dec 02, 2022