{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/automatic-prior-selection-for-meta-bayesian","title":"Pre-trained Gaussian Processes for Bayesian Optimization","arxiv_id":"2109.08215","date":"2021-09-16","proceeding":null,"authors":["Zi Wang","George E. Dahl","Kevin Swersky","Chansoo Lee","Zachary Nado","Justin Gilmer","Jasper Snoek","Zoubin Ghahramani"],"abstract":"Bayesian optimization (BO) has become a popular strategy for global optimization of expensive real-world functions. Contrary to a common expectation that BO is suited to optimizing black-box functions, it actually requires domain knowledge about those functions to deploy BO successfully. Such domain knowledge often manifests in Gaussian process (GP) priors that specify initial beliefs on functions. However, even with expert knowledge, it is non-trivial to quantitatively define a prior. This is especially true for hyperparameter tuning problems on complex machine learning models, where landscapes of tuning objectives are often difficult to comprehend. We seek an alternative practice for setting these functional priors. In particular, we consider the scenario where we have data from similar functions that allow us to pre-train a tighter distribution a priori. We detail what pre-training entails for GPs using a KL divergence based loss function, and propose a new pre-training based BO framework named HyperBO. Theoretically, we show bounded posterior predictions and near-zero regrets for HyperBO without assuming the \"ground truth\" GP prior is known. To verify our approach in realistic setups, we collect a large multi-task hyperparameter tuning dataset by training tens of thousands of configurations of near-state-of-the-art deep learning models on popular image and text datasets, as well as a protein sequence dataset. Our results show that on average, HyperBO is able to locate good hyperparameters at least 3 times more efficiently than the best competing methods on both our new tuning dataset and existing multi-task BO benchmarks.","url_abs":"https://arxiv.org/abs/2109.08215v6","url_pdf":"https://arxiv.org/pdf/2109.08215v6.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"automatic-prior-selection-for-meta-bayesian","repo_url":"https://github.com/google-research/gpax","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":null},{"paper_slug":"automatic-prior-selection-for-meta-bayesian","repo_url":"https://github.com/google-research/hyperbo","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"automatic-prior-selection-for-meta-bayesian","repo_url":"https://github.com/evensgn/hyperbo","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":null},{"paper_slug":"automatic-prior-selection-for-meta-bayesian","repo_url":"https://github.com/evensgn/hyperbo-mphd","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"bayesian-optimization","task_name":"Bayesian Optimization"},{"task_slug":"gaussian-processes","task_name":"Gaussian Processes"},{"task_slug":"global-optimization","task_name":"global-optimization"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2109.08215","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.08215"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/evensgn/hyperbo","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/google-research/hyperbo","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/evensgn/hyperbo-mphd","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/google-research/gpax","reach":null}],"summary":{"ran_honours":2,"ran_fixture":1,"unverified":11},"by_repo_kind":{"official":{"samples":3,"ran":1,"repositories":1},"listed":{"samples":9,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"8f37bd2af1f2794d","entry":"cholesky_cache","repo":"google-research/gpax","repo_kind":"official","path":"GPax/objectives/empirical_kl_divergence.py","file_url":"https://github.com/google-research/gpax/blob/HEAD/GPax/objectives/empirical_kl_divergence.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8f37bd2af1f2794d"}},{"code_sha256_prefix":"c6f39b26e6802a11","entry":"gamma_param_from_thetas","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"c6f39b26e6802a11"}},{"code_sha256_prefix":"b0d7dfcf0b48db2c","entry":"normal_param_from_thetas","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"b0d7dfcf0b48db2c"}},{"code_sha256_prefix":"d9680b18e3bb29b7","entry":"backtracking_linesearch","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/lbfgs.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/lbfgs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d9680b18e3bb29b7"}},{"code_sha256_prefix":"c5b462ef8acd58e9","entry":"bfgs","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/bfgs.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/bfgs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c5b462ef8acd58e9"}},{"code_sha256_prefix":"2d3ab739783d2452","entry":"expected_improvement_sub","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/bo_utils/acfun.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/bo_utils/acfun.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2d3ab739783d2452"}},{"code_sha256_prefix":"801f72fee92950ae","entry":"inverse_spdmatrix_vector_product","repo":"google-research/gpax","repo_kind":"official","path":"GPax/objectives/empirical_kl_divergence.py","file_url":"https://github.com/google-research/gpax/blob/HEAD/GPax/objectives/empirical_kl_divergence.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"801f72fee92950ae"}},{"code_sha256_prefix":"bddfcde9efc87eb1","entry":"kl_multivariate_normal","repo":"google-research/gpax","repo_kind":"official","path":"GPax/objectives/empirical_kl_divergence.py","file_url":"https://github.com/google-research/gpax/blob/HEAD/GPax/objectives/empirical_kl_divergence.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bddfcde9efc87eb1"}},{"code_sha256_prefix":"d5e0d85fb447b99f","entry":"lbfgs","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/lbfgs.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/lbfgs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d5e0d85fb447b99f"}},{"code_sha256_prefix":"0b15161fe95a8533","entry":"lbfgs_descent_dir_nocedal","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/lbfgs.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/lbfgs.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0b15161fe95a8533"}},{"code_sha256_prefix":"f4efbe0842e635b6","entry":"log_dataset","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/data_utils.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/data_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f4efbe0842e635b6"}},{"code_sha256_prefix":"53142f6caf250a8e","entry":"random_search","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/bo_utils/acfun.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/bo_utils/acfun.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"53142f6caf250a8e"}},{"code_sha256_prefix":"fcb5788c1b680975","entry":"sample_dataframe","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/bo_utils/data.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/bo_utils/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fcb5788c1b680975"}},{"code_sha256_prefix":"17224409b38690a2","entry":"solve_linear_system","repo":"evensgn/hyperbo-mphd","repo_kind":"listed","path":"hyperbo/basics/linalg.py","file_url":"https://github.com/evensgn/hyperbo-mphd/blob/HEAD/hyperbo/basics/linalg.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"17224409b38690a2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}