{"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/sample-efficient-bayesian-optimisation-using","title":"Sample-efficient Bayesian Optimisation Using Known Invariances","arxiv_id":"2410.16972","date":"2024-10-22","proceeding":null,"authors":["Theodore Brown","Alexandru Cioba","Ilija Bogunovic"],"abstract":"Bayesian optimisation (BO) is a powerful framework for global optimisation of costly functions, using predictions from Gaussian process models (GPs). In this work, we apply BO to functions that exhibit invariance to a known group of transformations. We show that vanilla and constrained BO algorithms are inefficient when optimising such invariant objectives, and provide a method for incorporating group invariances into the kernel of the GP to produce invariance-aware algorithms that achieve significant improvements in sample efficiency. We derive a bound on the maximum information gain of these invariant kernels, and provide novel upper and lower bounds on the number of observations required for invariance-aware BO algorithms to achieve $\\epsilon$-optimality. We demonstrate our method's improved performance on a range of synthetic invariant and quasi-invariant functions. We also apply our method in the case where only some of the invariance is incorporated into the kernel, and find that these kernels achieve similar gains in sample efficiency at significantly reduced computational cost. Finally, we use invariant BO to design a current drive system for a nuclear fusion reactor, finding a high-performance solution where non-invariant methods failed.","url_abs":"https://arxiv.org/abs/2410.16972v1","url_pdf":"https://arxiv.org/pdf/2410.16972v1.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":"sample-efficient-bayesian-optimisation-using","repo_url":"https://github.com/theo-brown/bayesopt_with_invariances","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"sample-efficient-bayesian-optimisation-using","repo_url":"https://github.com/theo-brown/invariantkernels","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"bayesian-optimisation","task_name":"Bayesian Optimisation"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.16972","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.16972"}},"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/theo-brown/invariantkernels","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/theo-brown/bayesopt_with_invariances","reach":null}],"summary":{"ran":1,"ran_fixture":1,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"repositories":2}},"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":1,"samples":[{"code_sha256_prefix":"2e884741e3cb6419","entry":"GroupInvariantKernel","repo":"theo-brown/invariantkernels","repo_kind":"official","path":"invariantkernels/group_invariant_kernel.py","file_url":"https://github.com/theo-brown/invariantkernels/blob/HEAD/invariantkernels/group_invariant_kernel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2e884741e3cb6419"}},{"code_sha256_prefix":"5b2ffae7f1c781b8","entry":"block_permutation_group","repo":"theo-brown/invariantkernels","repo_kind":"official","path":"invariantkernels/transformation_groups.py","file_url":"https://github.com/theo-brown/invariantkernels/blob/HEAD/invariantkernels/transformation_groups.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5b2ffae7f1c781b8"}},{"code_sha256_prefix":"f353317f327e7a3d","entry":"permutation_group","repo":"theo-brown/invariantkernels","repo_kind":"official","path":"invariantkernels/transformation_groups.py","file_url":"https://github.com/theo-brown/invariantkernels/blob/HEAD/invariantkernels/transformation_groups.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f353317f327e7a3d"}},{"code_sha256_prefix":"a28b6130765074f5","entry":"InvariantKernel","repo":"theo-brown/bayesopt_with_invariances","repo_kind":"official","path":"src_py/invariant_kernel.py","file_url":"https://github.com/theo-brown/bayesopt_with_invariances/blob/HEAD/src_py/invariant_kernel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a28b6130765074f5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}