{"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/a-tutorial-on-bayesian-optimization","title":"A Tutorial on Bayesian Optimization","arxiv_id":"1807.02811","date":"2018-07-08","proceeding":null,"authors":["Peter I. Frazier"],"abstract":"Bayesian optimization is an approach to optimizing objective functions that\ntake a long time (minutes or hours) to evaluate. It is best-suited for\noptimization over continuous domains of less than 20 dimensions, and tolerates\nstochastic noise in function evaluations. It builds a surrogate for the\nobjective and quantifies the uncertainty in that surrogate using a Bayesian\nmachine learning technique, Gaussian process regression, and then uses an\nacquisition function defined from this surrogate to decide where to sample. In\nthis tutorial, we describe how Bayesian optimization works, including Gaussian\nprocess regression and three common acquisition functions: expected\nimprovement, entropy search, and knowledge gradient. We then discuss more\nadvanced techniques, including running multiple function evaluations in\nparallel, multi-fidelity and multi-information source optimization,\nexpensive-to-evaluate constraints, random environmental conditions, multi-task\nBayesian optimization, and the inclusion of derivative information. We conclude\nwith a discussion of Bayesian optimization software and future research\ndirections in the field. Within our tutorial material we provide a\ngeneralization of expected improvement to noisy evaluations, beyond the\nnoise-free setting where it is more commonly applied. This generalization is\njustified by a formal decision-theoretic argument, standing in contrast to\nprevious ad hoc modifications.","url_abs":"http://arxiv.org/abs/1807.02811v1","url_pdf":"http://arxiv.org/pdf/1807.02811v1.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":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/wujian16/Cornell-MOE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/Argaadya/intro-bayesian","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/baggepinnen/hyperopt.jl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/llenotre/bayesian_optimization","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/rdturnermtl/bbo_challenge_starter_kit","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/svedel/greattunes","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"a-tutorial-on-bayesian-optimization","repo_url":"https://github.com/wujian16/qKG","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}}],"tasks":[{"task_slug":"bayesian-optimization","task_name":"Bayesian Optimization"},{"task_slug":"hyperparameter-optimization","task_name":"Hyperparameter Optimization"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[{"method_slug":"gaussian-process","method_name":"Gaussian Process"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1807.02811","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1807.02811"}},"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/wujian16/qKG","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wujian16/Cornell-MOE","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/svedel/greattunes","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/baggepinnen/hyperopt.jl","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rdturnermtl/bbo_challenge_starter_kit","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/llenotre/bayesian_optimization","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Argaadya/intro-bayesian","reach":{"status":"ok"}}],"summary":{"ran_fixture":1,"ran_violates":1,"unverified":8},"by_repo_kind":{"listed":{"samples":10,"ran":2,"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":0,"samples":[{"code_sha256_prefix":"411a49873bfde4d6","entry":"copula_standardize","repo":"rdturnermtl/bbo_challenge_starter_kit","repo_kind":"listed","path":"example_submissions/turbo/optimizer.py","file_url":"https://github.com/rdturnermtl/bbo_challenge_starter_kit/blob/HEAD/example_submissions/turbo/optimizer.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"411a49873bfde4d6"}},{"code_sha256_prefix":"59d38e267656d07b","entry":"order_stats","repo":"rdturnermtl/bbo_challenge_starter_kit","repo_kind":"listed","path":"example_submissions/turbo/optimizer.py","file_url":"https://github.com/rdturnermtl/bbo_challenge_starter_kit/blob/HEAD/example_submissions/turbo/optimizer.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"59d38e267656d07b"}},{"code_sha256_prefix":"0a01ec9e2eb6b080","entry":"GP_kernel_transform","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/transformed_kernel_models/transformation.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/transformed_kernel_models/transformation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0a01ec9e2eb6b080"}},{"code_sha256_prefix":"ba6bb726a3331aef","entry":"only","repo":"rdturnermtl/bbo_challenge_starter_kit","repo_kind":"listed","path":"example_submissions/hyperopt/optimizer.py","file_url":"https://github.com/rdturnermtl/bbo_challenge_starter_kit/blob/HEAD/example_submissions/hyperopt/optimizer.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":"ba6bb726a3331aef"}},{"code_sha256_prefix":"fc29af0a780f575d","entry":"plot_1d_latest","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/_plot.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/_plot.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fc29af0a780f575d"}},{"code_sha256_prefix":"0f45cdcb76d7177e","entry":"plot_convergence","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/_plot.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/_plot.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0f45cdcb76d7177e"}},{"code_sha256_prefix":"2ccac6f41380031e","entry":"predictive_results","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/_plot.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/_plot.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ccac6f41380031e"}},{"code_sha256_prefix":"65b7ca0b92a6965c","entry":"pretty2tensor_covariate","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/data_format_mappings.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/data_format_mappings.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"65b7ca0b92a6965c"}},{"code_sha256_prefix":"81bbb13a7c92e0d5","entry":"pretty2tensor_response","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/data_format_mappings.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/data_format_mappings.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81bbb13a7c92e0d5"}},{"code_sha256_prefix":"3b51147c60c60db1","entry":"tensor2pretty_covariate","repo":"svedel/greattunes","repo_kind":"listed","path":"greattunes/data_format_mappings.py","file_url":"https://github.com/svedel/greattunes/blob/HEAD/greattunes/data_format_mappings.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3b51147c60c60db1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}