diff --git a/ax/generators/torch/botorch_modular/acquisition.py b/ax/generators/torch/botorch_modular/acquisition.py index 6e151412f52..31522f0cd62 100644 --- a/ax/generators/torch/botorch_modular/acquisition.py +++ b/ax/generators/torch/botorch_modular/acquisition.py @@ -8,7 +8,6 @@ from __future__ import annotations -import math import operator from collections.abc import Callable from functools import partial, reduce @@ -47,7 +46,12 @@ optimize_acqf_discrete_local_search, optimize_acqf_mixed, ) -from botorch.optim.optimize_mixed import optimize_acqf_mixed_alternating +from botorch.optim.optimize_mixed import ( + MAX_CARDINALITY_FOR_LOCAL_SEARCH, + MAX_CHOICES_ENUMERATE, + optimize_acqf_mixed_alternating, + should_use_mixed_alternating_optimizer, +) from botorch.optim.parameter_constraints import evaluate_feasibility from botorch.utils.constraints import get_outcome_constraint_transforms from pyre_extensions import none_throws @@ -63,13 +67,6 @@ logger: Logger = get_logger(__name__) -# For fully discrete search spaces. -MAX_CHOICES_ENUMERATE = 10_000 -MAX_CARDINALITY_FOR_LOCAL_SEARCH = 100 -# For mixed search spaces. -ALTERNATING_OPTIMIZER_THRESHOLD = 10 - - def determine_optimizer( search_space_digest: SearchSpaceDigest, acqf: AcquisitionFunction | None = None, @@ -119,17 +116,12 @@ def determine_optimizer( else: optimizer = "optimize_acqf_discrete" else: - n_combos = math.prod([len(v) for v in discrete_choices.values()]) - # If there are less than `ALTERNATING_OPTIMIZER_THRESHOLD` combinations of - # discrete choices, we will use `optimize_acqf_mixed`, which enumerates all - # discrete combinations and optimizes the continuous features with discrete - # features being fixed. Otherwise, we will use - # `optimize_acqf_mixed_alternating`, which alternates between - # continuous and discrete optimization steps. - if n_combos <= ALTERNATING_OPTIMIZER_THRESHOLD: - optimizer = "optimize_acqf_mixed" - else: + # For mixed (not fully discrete) search spaces, use the shared utility + # from BoTorch to determine whether to use mixed alternating optimizer. + if should_use_mixed_alternating_optimizer(discrete_dims=discrete_choices): optimizer = "optimize_acqf_mixed_alternating" + else: + optimizer = "optimize_acqf_mixed" return optimizer diff --git a/tutorials/bonsai/bonsai_tutorial.ipynb b/tutorials/bonsai/bonsai_tutorial.ipynb new file mode 100644 index 00000000000..6786b26f5e9 --- /dev/null +++ b/tutorials/bonsai/bonsai_tutorial.ipynb @@ -0,0 +1,1109 @@ +{ + "metadata": { + "kernelspec": { + "name": "python3", + "display_name": "python3", + "language": "python", + "isCinder": true + }, + "fileHeader": "" + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "af596e9d-b89a-48e9-bca4-c589607e8de2", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "# BONSAI + MAP-SAAS Tutorial: \n", + "\n", + "This tutorial demonstrates how to use **BONSAI** (Bayesian Optimization with Natural Simplicity and Interpretability) with **MAP-SAAS** to optimize the high-dimensional Hartmann50 benchmark problem and simplify proposals in order to only make necessary chagnes from the default (status quo) parameter values.\n", + "\n", + "## Overview\n", + "\n", + "- **Hartmann50**: A 50-dimensional synthetic benchmark where only 6 dimensions are relevant (the true Hartmann function), and 44 dimensions are \"dummy\" irrelevant dimensions.\n", + "- **BONSAI**: A Bayesian optimization method that removes irrelevant parameter changes to simplify proposals from Ax. This simplifies the proposals so that they change fewer parameters, making the proposals more interpretable and more likely to avoid regressions in metrics not captured in the optimization objective.\n", + "- **MAP-SAAS**: A fast Gaussian process model that has a SAAS (sparsity) prior.\n", + "\n", + "This combination is particularly powerful for high-dimensional problems with low effective dimensionality.\n", + "\n", + "These methods were proposed in **Daulton, et al. BONSAI: Bayesian Optimization with Natural Simplicity and Interpretabiltiy, ArXiv, 2026**." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "84a0e4c4-867f-416e-91d9-5c123e65355d", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 1. Imports" + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "dce8174d-f2c7-4fe9-9509-ac6d933c5d95", + "outputsInitialized": true, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Import Libraries and Check CUDA", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769816272615, + "executionStopTime": 1769816283140, + "serverExecutionDuration": null, + "collapsed": false, + "requestMsgId": "6c9a23b5-6c5d-4eb9-a63c-6fe850d63a34" + }, + "source": [ + "import numpy as np\n", + "import torch\n", + "\n", + "from ax.api.client import Client\n", + "from ax.api.configs import RangeParameterConfig\n", + "from ax.api.utils.generation_strategy_dispatch import choose_generation_strategy\n", + "from ax.api.utils.structs import GenerationStrategyDispatchStruct\n", + "\n", + "# Model configuration\n", + "from ax.generators.torch.botorch_modular.surrogate import ModelConfig\n", + "\n", + "# BoTorch model (the key component for BONSAI)\n", + "from botorch.models.map_saas import EnsembleMapSaasSingleTaskGP\n", + "\n", + "print(f\"Using torch version: {torch.__version__}\")\n", + "print(f\"CUDA available: {torch.cuda.is_available()}\")" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "db2e5191-a913-4699-8f16-45f21ec4f9e4", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 2. Understanding the Components\n", + "\n", + "### 2.1 Hartmann50 Problem\n", + "\n", + "The Hartmann50 problem is a 50-dimensional optimization problem where:\n", + "- The first 6 dimensions contain the actual Hartmann function (which has 6 local minima)\n", + "- The remaining 44 dimensions are \"dummy\" and do not affect the objective value\n", + "- This makes it an ideal test case for algorithms that can identify and focus on relevant dimensions\n", + "- The global minimum is approximately -3.32237\n", + "\n", + "### 2.2 A MAP-SAAS model (`EnsembleMapSaasSingleTaskGP`)\n", + "\n", + "This is a Gaussian Process model that uses an ensemble of independent GPs with different samples of the global sparsity level (integrating over the global sparsity level). It uses Maximum A Posteriori (MAP) estimation for fitting each member in the ensemble, which is significantly faster than using MCMC as in SAASBO. It levers the same sparsity prior as SAASBO, but is significantly faster.\n", + "\n", + "### 2.3 BONSAI\n", + "\n", + "BONSAI (Bayesian Optimization with Natural Simplicity and Interpretability) is a technique for post-processing candidates generated by BO to prune irrelevant parameter changes from the default (status quo or target) values. It is compatabile with any acquisition function and is easily enabled by specifying `simplify_parameter_changes=True` in Ax." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "0a5d4351-5dd7-46ae-aa04-c5def74a372a", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 3. Set Up the Hartmann50 Optimization Problem\n", + "\n", + "We'll create a Client and configure the experiment with 50 parameters." + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "edc7cc31-608c-41e6-8201-7f201bdbcae2", + "outputsInitialized": true, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Configure Optimization Experiment", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769816290575, + "executionStopTime": 1769816290835, + "serverExecutionDuration": 33.855004934594, + "collapsed": false, + "requestMsgId": "7daa59f2-ee6c-4aa7-9b16-9ec09d5dac30" + }, + "source": [ + "# Create a client\n", + "client = Client()\n", + "\n", + "# Define 50 parameters (x0 through x49) in the unit hypercube [0, 1]\n", + "parameters = [\n", + " RangeParameterConfig(\n", + " name=f\"x{i}\",\n", + " parameter_type=\"float\",\n", + " bounds=(0.0, 1.0),\n", + " )\n", + " for i in range(50)\n", + "]\n", + "\n", + "# Configure the experiment\n", + "client.configure_experiment(parameters=parameters)\n", + "\n", + "# Define the center of the search space as the pruning target\n", + "# Parameters that are \"pruned\" will be set to these default values\n", + "pruning_target = {f\"x{i}\": 0.5 for i in range(50)}\n", + "\n", + "# Configure optimization to minimize the objective\n", + "metric_name = \"hartmann\"\n", + "objective = f\"-{metric_name}\" # Negative sign indicates minimization\n", + "client.configure_optimization(\n", + " objective=objective,\n", + " pruning_target_parameterization=pruning_target,\n", + ")\n", + "\n", + "print(f\"Experiment configured with {len(parameters)} parameters\")\n", + "print(f\"Objective: minimize {metric_name}\")\n", + "print(f\"Pruning target: center of search space (0.5 for all parameters)\")" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Experiment configured with 50 parameters\nObjective: minimize hartmann\nPruning target: center of search space (0.5 for all parameters)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "c20cd49d-3c01-4a6b-ba37-80193268892e", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 4. Define the Hartmann50 Objective Function\n", + "\n", + "The Hartmann50 function uses the 6D Hartmann function on the first 6 dimensions, with 44 dummy dimensions that don't affect the output." + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "6fd90df3-758d-4f97-bf95-77c010b299a2", + "outputsInitialized": true, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Evaluate Hartmann Function", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769816295444, + "executionStopTime": 1769816295658, + "serverExecutionDuration": 6.3301690388471, + "collapsed": false, + "requestMsgId": "35cc934b-7d0b-4311-8daf-ef440375478e" + }, + "source": [ + "from botorch.test_functions import Hartmann\n", + "\n", + "# Create the 6D Hartmann function\n", + "hartmann_6d: Hartmann = Hartmann(dim=6, negate=False)\n", + "\n", + "\n", + "def hartmann50(**parameters) -> float:\n", + " \"\"\"Evaluate the Hartmann50 function.\n", + "\n", + " Only the first 6 dimensions (x0-x5) affect the output.\n", + " The remaining 44 dimensions (x6-x49) are ignored.\n", + "\n", + " Args:\n", + " **parameters: Dict of parameter values (x0 through x49)\n", + "\n", + " Returns:\n", + " The Hartmann function value (to be minimized).\n", + " \"\"\"\n", + " # Extract the first 6 parameters that actually matter\n", + " x = torch.tensor([[parameters[f\"x{i}\"] for i in range(6)]], dtype=torch.double)\n", + " return hartmann_6d(x).item()\n", + "\n", + "\n", + "# Test the function\n", + "test_params = {f\"x{i}\": 0.5 for i in range(50)}\n", + "print(f\"Test evaluation at center: {hartmann50(**test_params):.4f}\")\n", + "print(\"Global optimum is approximately: -3.32237\")" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Test evaluation at center: -0.5053\nGlobal optimum is approximately: -3.32237\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "711b63d2-76d1-4550-933f-b9719c399fd7", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 5. Configure the Generation Strategy with BONSAI and MAP-SAAS\n", + "\n", + "We use `choose_generation_strategy` with `GenerationStrategyDispatchStruct(method=\"custom\", simplify_parameter_changes=True)` to specify that we want to use BONSAI and we specify to use `EnsembleMapSaasSingleTaskGP`` to leverage MAP-SAAS." + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "b9311525-5e75-4c73-bf6f-7dc9335606bf", + "outputsInitialized": true, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Configure BONSAI Strategy", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769817000911, + "executionStopTime": 1769817001186, + "serverExecutionDuration": 7.064376026392, + "collapsed": false, + "requestMsgId": "bb78e4ac-d972-45cf-95cc-1b77c1dba7fd" + }, + "source": [ + "# Configuration parameters\n", + "NUM_SOBOL_TRIALS = 10 # Number of initial quasi-random trials\n", + "\n", + "# Configure the model for BONSAI with MAP-SAAS\n", + "model_config = ModelConfig(\n", + " botorch_model_class=EnsembleMapSaasSingleTaskGP,\n", + " name=\"BONSAI\",\n", + ")\n", + "\n", + "# Create the BONSAI generation strategy using choose_generation_strategy\n", + "generation_strategy = choose_generation_strategy(\n", + " struct=GenerationStrategyDispatchStruct(\n", + " method=\"custom\",\n", + " initialization_budget=NUM_SOBOL_TRIALS,\n", + " initialize_with_center=True,\n", + " simplify_parameter_changes=True,\n", + " ),\n", + " model_config=model_config,\n", + ")\n", + "\n", + "# Set the generation strategy on the client\n", + "client.set_generation_strategy(generation_strategy=generation_strategy)\n", + "\n", + "print(f\"Generation strategy configured: {generation_strategy.name}\")\n", + "print(\" - 1 Center trial\")\n", + "print(f\" - {NUM_SOBOL_TRIALS - 1} Sobol trials\")\n", + "print(\" - BONSAI with MAP-SAAS\")\n", + "print(\" - simplify_parameter_changes=True (pruning irrelevant dimensions)\")" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Generation strategy configured: Center+Sobol+MBM:BONSAI\n - 1 Center trial\n - 9 Sobol trials\n - BONSAI with MAP-SAAS\n - simplify_parameter_changes=True (pruning irrelevant dimensions)\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "3bf11740-d3c8-4733-bdb5-9ca4e958452c", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 6. Run the Optimization Loop" + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "9b9a3d2b-3c4f-49a7-8454-9c996ea68eb6", + "outputsInitialized": true, + "bentoAICellStatus": { + "status": "none" + }, + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Initialize Optimization Process", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769816304440, + "executionStopTime": 1769816496707, + "serverExecutionDuration": 191986.367804, + "collapsed": false, + "requestMsgId": "83ccc26c-988f-4297-b2ce-2f4e99a4f5cc" + }, + "source": [ + "import logging\n", + "\n", + "# Set the Ax logger to show only warnings and errors.\n", + "logging.getLogger(\"ax.api.client\").setLevel(logging.WARNING)\n", + "\n", + "# Total number of trials\n", + "TOTAL_TRIALS = 50\n", + "\n", + "# Track best values for visualization\n", + "best_values = []\n", + "all_values = []\n", + "current_best = float(\"inf\")\n", + "\n", + "print(f\"Starting optimization with {TOTAL_TRIALS} trials...\")\n", + "print(\"-\" * 60)\n", + "\n", + "for trial_idx in range(TOTAL_TRIALS):\n", + " # Get the next trial(s) from the generation strategy\n", + " trials = client.get_next_trials(max_trials=1)\n", + "\n", + " for index, parameters in trials.items():\n", + " # Evaluate the objective function\n", + " result = hartmann50(**parameters)\n", + " all_values.append(result)\n", + "\n", + " # Update best value (we're minimizing)\n", + " if result < current_best:\n", + " current_best = result\n", + " improvement_marker = \" *NEW BEST*\"\n", + " else:\n", + " improvement_marker = \"\"\n", + "\n", + " best_values.append(current_best)\n", + "\n", + " # Report the result back to Ax\n", + " client.complete_trial(\n", + " trial_index=index,\n", + " raw_data={metric_name: result},\n", + " )\n", + "\n", + " # Determine which phase we're in\n", + " if trial_idx == 0:\n", + " phase = \"Center\"\n", + " elif trial_idx < NUM_SOBOL_TRIALS:\n", + " phase = \"Sobol\"\n", + " else:\n", + " phase = \"BONSAI\"\n", + "\n", + " # Print progress (every 5 trials or when there's improvement)\n", + " if trial_idx % 5 == 0 or improvement_marker:\n", + " print(\n", + " f\"Trial {trial_idx + 1:3d}/{TOTAL_TRIALS} [{phase:6s}]: \"\n", + " f\"value = {result:8.4f}, best = {current_best:8.4f}{improvement_marker}\"\n", + " )\n", + "\n", + "print(\"-\" * 60)\n", + "print(\"Optimization complete!\")\n", + "print(f\"Best value found: {current_best:.4f}\")\n", + "print(\"Global optimum: -3.32237\")\n", + "print(f\"Gap to optimum: {current_best - (-3.32237):.4f}\")" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Starting optimization with 50 trials...\n------------------------------------------------------------\nTrial 1/50 [Center]: value = -0.5053, best = -0.5053 *NEW BEST*\nTrial 4/50 [Sobol ]: value = -1.2127, best = -1.2127 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 6/50 [Sobol ]: value = -0.0301, best = -1.2127\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:34 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 11/50 [BONSAI]: value = -0.7886, best = -1.2127\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:36 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:40 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:45 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:47 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:49 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 16/50 [BONSAI]: value = -0.7900, best = -1.2127\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:52 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 17/50 [BONSAI]: value = -2.3504, best = -2.3504 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:54 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:57 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:38:59 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:01 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 21/50 [BONSAI]: value = -2.5353, best = -2.5353 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:04 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:06 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:08 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:10 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 25/50 [BONSAI]: value = -2.8627, best = -2.8627 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:12 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 26/50 [BONSAI]: value = -2.0271, best = -2.8627\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 27/50 [BONSAI]: value = -2.9566, best = -2.9566 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:17 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 28/50 [BONSAI]: value = -2.9679, best = -2.9679 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:18 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:21 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:23 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 31/50 [BONSAI]: value = -2.9697, best = -2.9697 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:28 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:38 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 33/50 [BONSAI]: value = -2.9826, best = -2.9826 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:39:57 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:06 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:11 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 36/50 [BONSAI]: value = -2.9701, best = -2.9826\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:15 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:19 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:23 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:26 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:29 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 41/50 [BONSAI]: value = -2.9673, best = -2.9826\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:42 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:40:55 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:08 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 44/50 [BONSAI]: value = -3.1051, best = -3.1051 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:11 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 45/50 [BONSAI]: value = -3.1220, best = -3.1220 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:19 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 46/50 [BONSAI]: value = -2.8086, best = -3.1220\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:21 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Trial 47/50 [BONSAI]: value = -3.1354, best = -3.1354 *NEW BEST*\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:27 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:32 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[W 260130 15:41:36 cholesky:40] A not p.d., added jitter of 1.0e-08 to the diagonal\n" + ] + }, + { + "output_type": "stream", + "name": "stdout", + "text": [ + "------------------------------------------------------------\nOptimization complete!\nBest value found: -3.1354\nGlobal optimum: -3.32237\nGap to optimum: 0.1870\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "267b4003-c88c-4973-aec8-d421a9a5edc4", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 7. Visualize Optimization Performance" + ] + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "6d04b53f-4dc5-4086-a7c1-27c33c5eab14", + "outputsInitialized": true, + "bentoAICellStatus": { + "status": "none" + }, + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Plot Optimization Results", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769817024748, + "executionStopTime": 1769817025279, + "serverExecutionDuration": 302.34268680215, + "collapsed": false, + "requestMsgId": "c68e5132-4402-452a-95bb-20f13ea1d30c" + }, + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 6))\n", + "\n", + "trials_range = range(1, len(best_values) + 1)\n", + "\n", + "# Plot best values over trials (convergence plot)\n", + "ax.plot(trials_range, best_values, 'b-', linewidth=2, label='Best value found')\n", + "ax.axvline(x=1, color='purple', linestyle='--', alpha=0.5, label='Center')\n", + "ax.axvline(x=NUM_SOBOL_TRIALS, color='r', linestyle='--', alpha=0.7, label='Sobol → BONSAI')\n", + "ax.axhline(y=-3.32237, color='g', linestyle=':', alpha=0.7, label='Global optimum (-3.32)')\n", + "\n", + "# Scatter plot of all trial values\n", + "colors = ['purple'] + ['orange'] * (NUM_SOBOL_TRIALS - 1) + ['blue'] * (TOTAL_TRIALS - NUM_SOBOL_TRIALS)\n", + "ax.scatter(trials_range, all_values, c=colors, alpha=0.6, s=50)\n", + "\n", + "ax.set_xlabel('Trial', fontsize=12)\n", + "ax.set_ylabel('Objective Value', fontsize=12)\n", + "ax.set_title('BONSAI Optimization Progress on Hartmann50', fontsize=14)\n", + "ax.legend(loc='upper right')\n", + "ax.grid(True, alpha=0.3)\n", + "ax.set_xlim([1, TOTAL_TRIALS])\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJ8AAAJHCAYAAAA+MPcJAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2khJREFUeJzs3XV4VNfWx/HvzEQmDjEsOAR3dyulLS2lQt1oqbvf+q28daG37gZtoaUt2kILxd09uEtCiPvMnPePkwyEOIRMEn6f58mTyZF91pyZM7Ky99qWmJgYAxERERERERERkbPA6ukARERERERERESk+lLySUREREREREREzholn0RERERERERE5KxR8klERERERERERM4aJZ9EREREREREROSsUfJJRERERERERETOGiWfRERERERERETkrFHySUREREREREREzholn0RERERERERE5KxR8klERETKZOwHn3HvQ0+WW3vbtu/k3oeeZPqff5dbm6V170NPMvaDzyr8uCIiIiLnEktMTIzh6SBEROTctGTZSsb99Eu+ZRaLBbvdTp3akXTt3JF+fXpitRb8X0mOw8GSpStYs24Dhw4dITMzk8DAAGrViqRbl0507dIRby+vQo/n4+PN8089Rs2aNQq0Gx9/nOdffoOLhp3H8AuHupcbhsHK1WtZunwVBw4eIj09A5vNRmjNGrSIbsawoYOpERJc5H2dOGky8xYsJiwslBeffQKLxVLksTt2aMvto28s1TnMzMxi/sLFrN+4mdjYY2RlZxMcFETdurXp0a0zHdu3LfT8ldaOXbuJi4unV4+u7mXbd+wiJTWVzh3bn3a7J0tJTWX7jl3UqV2LOrVrlUubhVm+cjU1QkKIbt7UvWz12vUEBQbSvFmTs3bcomzbvpP3P/q8wHKr1UpAgD9NmzTi/CEDadigfoXHJsX7fvxElq1YxTNPPkzdOrUL3ea3ydOY/e8CHrz3jnzPufIwd8FimjZuRP2ouuXarqc988L/kZiUXOi6Jo0b8eiDd7v/NgyDhYuXsWDRUmLj4vDx9qFZs8ZcOvxCatWKqMCoRUSkNLxKsY2IiMhZ1btnN1q1jAbAcBkkJiWxfOUaJk6azMFDh7nu6ivybR8ff5xPvviWw0eO0rpVCy44fzBBgYGkpKaxeWsM4376hfkLFzNm9I2EhdYscLzs7BwmTZ7G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ja+9IuLzjAEDT9xettwbX7u3J8ORysrmBTabu6eT1WoFmxe2anxtiHha3ocEX7ufPpiLVABdcyIVR9ebSMWq1smnj8a+UaHH87Pb4aQeUKfKW27P3a4keS+CFoulWr8gtmwJYWEQHw+LF1swDChk1KKc63KvASPvWsi7LqrxtSFSGeS9B1Xn9yGRykTXnEjF0fUmUvWdk6kDX18fQoKDSExMcg8LOll8fAIAkZHhHoiu8rJYoE8f83ZCAmzd6umIRERERERERKSyOyeTTwDNmjbG4XCwd9/+Auu279gFQHSzJh6IrHLLSz4BLFrkyUhEREREREREpCqo9sknp9PJkaOxxB9PyLe8d68eAPwzZ36+5enpGSxcsoyAAH86dWhXobFWBUo+iYiIiIiIiEhZVIqaT2UVfzwhX4+llLRUADZtiSEwMACAsNBQGjaIIjExiZdfe4cG9evx5KMPuPdpGd2MXj26smTZSj75/Bs6dWxPVlYW8xYsJjk5hdtuub6CiptXLV26gI8PZGfDwoWejkZEREREREREKrsqmXzatn0n4376pcDyCb/+4b7do1sXbrr+qmLbue7qK4iKqsfiJcv5+ZffsNlsNGrYgGuvvpzmTTXkrjB2O3TtCosXw86dcPQo1Krl6ahEREREREREpLKqksmnXj260qtH11JtGxYWWuRselarlYH9ejOwX+9yjrB669vXTD6RO/Tu8ss9HZGIiIiIiIiIVFbVvuaTlD/VfRIRERERERGR0lLyScqs90kdxZR8EhEREREREZHiWGJiYgxPB1HVNazdEACLzYJPgI+nw6kQLVtCTAx4eUFSEvj7ezoiqTSSkiAnB8MwyMrMwNfuh8XHB0JCPB2ZSLWV73qzWDwdjki1p2tOpOLoehOpWIZhsH379nJvVz2fyoFvsC++wb7nTOKJk4beORywYoWno5FKJSQEwsPz/yjxJCIiIiIics5S8klOi+o+iYiIiIiIiEhpKPkkp6Vv3xO3lXwSERERERERkaIo+SSnpXlziIgwby9eDC6XpyMSERERERERkcpIySc5LRbLiVnvEhNhyxZPRyQiIiIiIiIilZGST3LaTq77tHChJyMRERERERERkcpKySc5bSo6LiIiIiIiIiIlUfJJTluXLuDra95W8klERERERERECuPl6QCqg7n/nQtAcFQwncd09nQ4FcbXF7p1M4fc7doFR45A7dqejko87rHHICYGAG+nE2w2aNEC3n7b05GJiIiIiIiIB6jnk5wRDb0TERERERERkeIo+SRnJF/R8QWGJ0MRERERERERkUpIySc5I707xbpvL5q1C5aMhh1fQnaCR+MSERERERERkcpBySc5fYkbCdvzAC0bHgRgzbZGpGcHwNE5sPJ+SN3j6QhFRERERERExMOUfJLT40iDTa+BdxB9O+4yFzltLN/cGLyDwOoLG18EV46nIxURERERERERD9Jsd3J6jvwNRg5YrPRpv5MvJ/cDYNrCdtQJTzK3yU4C1zoI6+rZWKVCRRwHn1TztssFVitkH4e4GE9HJp4WFQUBAZ6OQkREREREKpqST3J6js4F7xoA9Gm/0734nR/P550fz/dgYOJpbwEt3H/ZAIiZC49/48GgpFIIDIQVK6BlS09HIiIiIiIiFUnD7uT0GC6wWABoVj+WRnWOeToiEankUlPh5589HYWIiIiIiFQ09XyS0+NXF5K3gM2OxQKTXv+ULyb3IyPL+8Q2rhyw14HgaE9GKhWszQqok2zeNgwDi8WCVzDc3M3TkYmnpKbCpEnm7e3bPR2NiIiIiIhUNCWf5PTUvxLWPQU2OwCdW+7nk5Y/5t8mOxG6/A/8PBOieMhjQAwYgMvpwmqz0bEFXPi2pwMTT8nMhN9+A8OAHTs8HY2IiIiIiFQ0DbuT0xPUFEK7QHZy4euzEiByIPjVqujIRKSSsduhfn3ztno+iYiIiIice5R8ktNjsUCrxyCyH+SkQtZxyEmGrHjISYN6w6H5XZ6OUkQqiebNzd8JCRAf7+loRERERESkImnYnZw+qxdE3wONb4RjyyArDuy1IbwneGmsnYic0Lw5zJ5t3t6+HcLCPB2RiIiIiIhUlNNKPsXGHePfeQvZuWsPKampPPbQvQQHB7Fk6Qr69+1V/lFK5eYdBHXO83QUIlKJNWt24vb27dCzpyejERERERGRilTm5NOu3Xv54JMvsNvtNGnUkKNHYzFcLhISEvl9ygxsNit9evU4O9GKiEiVlDfsDlR0XERERETkXFPmmk9Tpv1FuzateOn5/3D7rTdi87IBEBkRzpWXXcz8hUvPRpwiIlKFnZx8UtFxEREREZFzS5mTT3v37+eC84fg7VWw01TL6ObExh0rr9hERKSaaNIErLnvOEo+iYiIiIicW8qcfLJarDidzkLXpaVnYLVayiMuERGpRnx9oUED8/b27WAYno5IREREREQqSpmTT40bN+SPqX+SkZFxYqHFgtPpZOY/c2jSqGE5hygiItVBXtHxpCQ4pk6yIiIiIiLnjDIXHB8x/ALGfvgpz/73NerVq4PD4WT8z78SGxtHZmYWD91/59mJtBKL6hUFgD3E7ulQRDyvf39o2RIMA1dODlZvb6hVy9NRSSXQvDn88495e8cOiIjwdEQiIiIiIlIRypx8alC/Hk89/hBz5i5gz959hNasQVZWFh3at2XQgL5EhIednUgrsWbDmpViK5FzxIgR5m/DwJmZgZfdDywajisFi4736uXJaEREREREpKKUOfkEEBEextVXjiz/aEREpNrSjHciIiIiIuemMieftu/cVex6l9NFi2j1BBIRkfyUfBIREREROTeVOfn0/oefl7jNh++9frrxiIhINdW4MVit4HIp+SQiIiIici4pc/LpnjtGF1iWk+Ng/4GDrN+4mcsvHV5esYmISDXi4wMNG8Lu3WbBccNQOTARERERkXNBmZNPrVu1KHR5h/ZtaN6sCfMXLaFli+aFbiMiIue25s3N5FNyMsTFQWSkpyMSEREREZGzzVqejUU3b0rMtp3l2aSIiFQjqvskIiIiInLuKdfk045du7FZy7VJERGpRpR8EhERERE595R52N3bYz8qdHlmZhaxccfo0qlDecRVpeyYuQMAe4idqJ5Rng5HxLOmTIHYWDAMbDk54O0NtWrBiBGejkwqgWYnTYaq5JOIiIiIyLmhzMknL5sXnFIg1mKxEBIcTPeunRjQr085hlc1HFhyAIDgqGAln0Tmz4eYGACsTifYbNCihZJPAqf0fNqxw5ORiIiIiIhIRSlz8umh++88O5GIiEi117ixmY90OtXzSURERETkXFGq5JPD4Shbo15lzmmJiMg5wNsbGjWCnTvN5JNhgMVSih1FRERERKTKKlWW6KHHny1Tox++9/rpxiMiItVc8+Zm8ik1FY4ehdq1PR2RiIiIiIicTaVKPl14/pACdZ5EREROx6lFx5V8EhERERGp3kqVfBp+4dBSNZadnc3O3XvONCYREanGTi063q+fJ6MREREREZGzzXomOzscDvdPjsPB9h27+Oa7n8ovOhERqXZOTj6p6LiIiIiISPVX5srgaWnp/DTxN7Zs3UZW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UysGVlSYngh/+IN/9VbX9t13JmzYv9+WbLemnhChGTOsBntE+aK42ARXBQXmzW/18/V4zGt78snS9df7H0A9/LAJRhoLbA4eNI87YULL6pZM4LJjhwnfBg40PeNaKj/f/PngdkuxsXXvKy01oeScOe0ngLJtae5c6dNPTbuo7vHk9Zrv5ZAh0u9/739QZNsmGFm0yLye1QGW12t+Hvr2lf74R9NL0B/FxaZno9db/1jbNq//rbeaYNZfL75oetclJdU83+rekunp0p/+1HCPQX8E6nec12u+L5s316+p+nW44QbpxBP9rc/8PKxYYb5vtUv0es15f/EL6YQTWlw60KZY7Q4AAABBFxsr3XmneUP1zDNmVTwdDpr+8x/zBjM62tyioqTVq6X33zehT1paze3or+PjzZuyqirpscfMtqPfR1qWefO2apXpZXTMMb7XvXJl871NoqOl7dtb8KIcrm34cHOzbanCVaXomIhWDal54AEzj9bRwU11T62FC00Q509IVFZmXoumgpqUFNNLoyXh0969Zj6wnTtNDysdfl1HjDBvsFsSED32mPm5aKiXTHy8eY2eecacvz14/30zdC09ve52h8Ns27LFzDt27bX+nXfpUunjjxs+b1qatHu3Cad++Uv/zvvaayZUbigEqu7J+PTT5ufBn5/nb76R3njDzKl29DlTUqSSEvMzPnu2f/UGy6pV0vr19V9fHa45Lc3Mfzd5sn+rfm7YYILIhs5b/TPx5JMm3IuJad1zAMIZ4RMAAAAadMIJJgBavrxmaFFVlbkdOlSz35YtzZ+reghKTExNb5bqECs6um4PKI/HBA2nnup7ratXmzqae9PodpteXa1h25LXE6GoaPO8HA4TGNW+Hb3t6K9LSsxQu4QE0zPCsmpu1Twe0+Pnppt8r239emnXrpphktUiI81rHxNjat671wRV/gyL2rvX9FCKiqofmK1fbyaxnzPHv2GYxcWmR1lToVVCggkOXK7Qv3m3bentt5vuYZeUZIKkWbN876Vk2yYkOvr7VltiohmS58/3zes1tTT1+joc5mdwwwb/5gN76aWme7zFxUmbNkn795uhpKH2+utN12tZpnfkp5/61/vplVfMz2hT562sNN8Hf65pQEcTtuFTfkGBFi5aqg25m5RfUKjY2Bh17ZKu43MmatyY0XL4MFGAx+PRx0s/1arP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" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "metadata": [], + "originalKey": "17cf3aa2-ef85-43b7-95cf-a1d6ece44ec9", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "origin": "initial", + "name": "Cell 17" + }, + "language": "python", + "executionStartTime": 1769815755528, + "executionStopTime": 1769815755942, + "serverExecutionDuration": 14.947107993066, + "collapsed": false, + "requestMsgId": "f5c8bf42-7623-402f-9f0e-543b80719280", + "customInput": null + }, + "source": [ + "## 8. Analyze Objective vs Simplicity trade-offs\n", + "\n", + "One of the key benefits of BONSAI is that it can prune irrelevant parameters (set them to default values). Let's analyze how the number of active parameters relates to the best objective value found." + ], + "attachments": {} + }, + { + "cell_type": "code", + "metadata": { + "metadata": [], + "originalKey": "672468bd-6dea-4d02-8adc-dc299dcf73fd", + "outputsInitialized": true, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "bentoCellName": { + "name": "Extract Trial Metrics", + "origin": "ai" + }, + "language": "python", + "executionStartTime": 1769817165873, + "executionStopTime": 1769817166644, + "serverExecutionDuration": 541.96859383956, + "collapsed": false, + "requestMsgId": "2a076b3b-3746-4f5a-ba28-182f2a9fd45a" + }, + "source": [ + "def count_active_parameters(\n", + " parameters: dict[str, float], default_value: float = 0.5, tol: float = 1e-6\n", + ") -> int:\n", + " \"\"\"Count the number of parameters that differ from the default value.\"\"\"\n", + " return sum(1 for v in parameters.values() if abs(v - default_value) > tol)\n", + "\n", + "\n", + "# Get all trials and their parameters\n", + "experiment = client._experiment\n", + "trials_data = []\n", + "\n", + "for trial_index, trial in experiment.trials.items():\n", + " arm = trial.arm\n", + " if arm is not None:\n", + " params = arm.parameters\n", + " num_active = count_active_parameters(params)\n", + " # Get the objective value for this trial\n", + " trial_data = trial.lookup_data()\n", + " if not trial_data.df.empty:\n", + " obj_value = trial_data.df[trial_data.df[\"metric_name\"] == metric_name][\n", + " \"mean\"\n", + " ].values[0]\n", + " trials_data.append(\n", + " {\n", + " \"trial_index\": trial_index,\n", + " \"num_active_params\": num_active,\n", + " \"objective_value\": obj_value,\n", + " }\n", + " )\n", + "\n", + "# Convert to arrays for plotting\n", + "num_active_params = [d[\"num_active_params\"] for d in trials_data]\n", + "\n", + "print(f\"Collected data for {len(trials_data)} trials\")\n", + "print(\"\\nNumber of active parameters per trial:\")\n", + "print(f\" Min: {min(num_active_params)}\")\n", + "print(f\" Max: {max(num_active_params)}\")\n", + "print(f\" Mean: {np.mean(num_active_params):.1f}\")\n", + "\n", + "# Compute best observed objective value for each number of active parameters\n", + "from collections import defaultdict\n", + "\n", + "# Group trials by number of active parameters\n", + "params_to_best_value = defaultdict(lambda: float('inf'))\n", + "for d in trials_data:\n", + " n_active = d[\"num_active_params\"]\n", + " obj_val = d[\"objective_value\"]\n", + " if obj_val < params_to_best_value[n_active]:\n", + " params_to_best_value[n_active] = obj_val\n", + "\n", + "# Sort by number of active parameters\n", + "sorted_n_active = sorted(params_to_best_value.keys())\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 5))\n", + "\n", + "# Modify best_values_by_n_active to represent the best objective for any point with <=k parameters active\n", + "cumulative_best_values = []\n", + "current_best = float('inf')\n", + "for n in sorted_n_active:\n", + " current_best = min(current_best, params_to_best_value[n])\n", + " cumulative_best_values.append(current_best)\n", + "\n", + "# Line plot: Best observed value versus number of active parameters based on cumulative best values\n", + "ax.plot(sorted_n_active, cumulative_best_values, color='steelblue', marker='o', linestyle='-', linewidth=2)\n", + "ax.axhline(y=-3.32237, color='g', linestyle=':', linewidth=2, label='Global optimum (-3.32)')\n", + "ax.axvline(x=6, color='r', linestyle='--', alpha=0.7, label='True relevant dims (6)')\n", + "ax.set_xlabel('Number of Active Parameters (<=k)', fontsize=12)\n", + "ax.set_ylabel('Best Objective Value', fontsize=12)\n", + "ax.set_title('Best Observed Value by Number of Active Parameters', fontsize=12)\n", + "ax.legend(loc='upper right')\n", + "ax.grid(True, alpha=0.3)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ], + "execution_count": 41, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collected data for 50 trials\n\nNumber of active parameters per trial:\n Min: 0\n Max: 50\n Mean: 12.8\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "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52hIXI15DrJM5tplkRqG7W6d2O7WQd+/722D3Js0rrqwCxOZhEgowHNDW9e6z7NDWmvdDBtapynO0ZzjIiIioubNXP++M4Egk+ndyg8fPNwZnk7aj+W8nCX44OHO1c57bGid3q380CPSG2IbkdZ2qZ2N0c5R37ga+xxERETU/Jnj33fOwmQEnIWpYRp9xefZs6G+lKi9EnXHthB++aVp4+JK1GQgS/h9J8Ox3a0T2936NIe/7/rOwsQxEGRyIqHA4KnJDK0jEAAu9mLtDc0groacQ+5rzz8sREREFsKc/r6zCxMREREREemNCQQREREREemNCQQREREREemNCQQREREREemNCQQREREREemNszCR5evbF4iO1t7m7W2qaIiIiIjMGhMIsnxjxpg6AiIiIiKLwS5MRERERESkNyYQRERERESkNyYQRERERESkNyYQRERERESkNyYQRERERESkNyYQRERERESkNyYQRERERESkN64DQZZvwwYgLU17m7c314cgIiIiqgcmEGT59u8HEhO1t0VFMYEgIiIiqgd2YTKC+XHzETA/AAHzA7A3ea9W2fXs65qyl7a8pFN3zPIxmvKqlpxeoilbc3GNVlm+PB8B8wMQ+FUgpm+coVN3xvoZmrqZRZlaZZuSNmnKfjzxo07dsK/DEDA/AMOWDdMpe2PHG5q6iRnaN+Vxt+I0ZZ8f+FynbtcfuyJgfgC6/thVp+zzA59r6sbditMqS8xI1JS9seMNnbrDlg1DwPwAhH0dplP244kf8cPxxdh5bRdSC1O1yjKLMjXHnbFe9z2csmaKpjxfnq9VtubiGk3ZktNLdOpWlI1ZrpukvLTlJU359ezrWmV7k/dqyubHzdep2/779giYH4A+v/XRKft478eauifuntAqO5t6VlP23u73dOoO/H0gAuYHIPrbaJ2yb49+q6m74+oOrbKU/BRN2cyNM3XqTvhngqZcrpBrlf119i9N2V9n/9IqkyvkmrIJ/0zQOe7MjTM15Sn5KVplO67u0JR9e/RbnbrR30YjYH4ABv4+UKfsvd3vaeqeTT2rVXbi7glN2cd7P9ap2/vX3giYH4D237fXKTPlZ0TA/ABMWTNFpy4/I8r8eOJHTd1NSZu0ysz5M6L3r711yvgZUYafEWX4GXFfc/yMCPwq0CSfEfriEwgjyJPn4U7+HaD8Q60ypVqp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" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "originalKey": "b959fed1-3fc2-41a3-884b-200a1462106e", + "showInput": false, + "outputsInitialized": false, + "bentoAICellStatus": "none", + "isCommentPanelOpen": false, + "language": "markdown" + }, + "source": [ + "## 10. Key Takeaways\n", + "\n", + "### Why BONSAI + MAP-SAAS?\n", + "\n", + "1. **MAP-SAAS**: MAP-SAAS is a variant of the Sparse Axis Aligned Subspace prior (Eriksson & Jankowiak. High-dimensional Bayesian optimization with sparse axis-aligned subspace, UAI, 2021), and places a half-Cauchy prior on the GP lengthscales. As a result, SAAS models encourage model sparsity, where less relevant inputs are driven toward long lengthscales. This improves performance on high-dimensional tasks, and is synergistic with BONSAI. Standard SAAS models use a time consuming, Bayesian (MCMC) inference procedure; MAP-SAAS provides many of the benefits of the fully Bayesian MAP SAAS by ensembling over just a few models estimated via MAP with significantly lower computational costs.\n", + "\n", + "2. **BONSAI**: BONSAI prunes irrelevant dimensions via `simplify_parameter_changes=True` and sets them to the `pruning_target_parameterization` (the status quo/default/production values or a target point of interest). This simplifies the proposals so that they change fewer parameters, making the proposals more interpretable and more likely to avoid regressions in metrics not captured in the optimization objective.\n", + "\n", + "### When to Use This Approach\n", + "- **Real-world optimization** where simple, interpretable changes are desired." + ] + } + ] +}