{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "0lgWNn8De8CX" }, "source": [ "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/google/vizier/blob/main/docs/guides/developer/predict.ipynb)\n", "\n", "\n", "# Predictors\n", "This documentation will allow a developer to understand and use the `Predictor` API." ] }, { "cell_type": "markdown", "metadata": { "id": "h1XxlFxbwX9I" }, "source": [ "## Installation and reference imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "XjqwHNpkfDBk" }, "outputs": [], "source": [ "!pip install google-vizier[jax,algorithms]" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "BaCMlfFEsasY" }, "outputs": [], "source": [ "import numpy as np\n", "from vizier._src.benchmarks.experimenters.synthetic import bbob\n", "from vizier.algorithms import designers\n", "from vizier import algorithms as vza\n", "from vizier import pyvizier as vz\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": { "id": "CXvvU4xufUJB" }, "source": [ "## Predictors\n", "\n", "The `Predictor` exposes a `predict()` method which takes `TrialSuggestion`s as inputs and returns their corresponding objective value predictions, represented by a `Prediction` class.\n", "\n", "The source of truth for predictors can be found [here](https://github.com/google/vizier/blob/main/vizier/_src/algorithms/core/abstractions.py).\n", "\n", "```python\n", "class Prediction:\n", " \"\"\"Container to hold predictions.\"\"\"\n", "\n", " mean: chex.Array\n", " stddev: chex.Array\n", " metadata: Optional[Metadata] = None\n", "\n", "\n", "class Predictor(abc.ABC):\n", " \"\"\"Mixin for algorithms to expose prediction API.\"\"\"\n", "\n", " @abc.abstractmethod\n", " def predict(\n", " self,\n", " trials: Sequence[TrialSuggestion],\n", " ...\n", " ) -\u003e Prediction:\n", "\n", "```\n", "\n", "In some cases involving a underlying probabilistic model, there's a need to sample the posterior distribution in order to obtain the mean and standard deviation. In this case, the API allows specifying the the random key and number of samples (hidden arguments as `...` in `predict()` above).\n" ] }, { "cell_type": "markdown", "metadata": { "id": "yWfKHymzjYZj" }, "source": [ "## GP-Bandit Predict Example\n", "\n", "The `VizierGPBandit` class acts as both a `Designer` and a `Predictor` and allows users to obtain the underlying GP model's mean and standard deviation for a given set of points. The example below demonstrates this capability." ] }, { "cell_type": "markdown", "metadata": { "id": "HDYMLbOreL6s" }, "source": [ "Setup problem statement and objective:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "OdDv7f3y3E1i" }, "outputs": [], "source": [ "# The problem statement (which parameters are being optimized)\n", "problem = vz.ProblemStatement()\n", "problem.search_space.root.add_float_param('x', -5.0, 5.0)\n", "problem.metric_information.append(\n", " vz.MetricInformation(\n", " name='obj', goal=vz.ObjectiveMetricGoal.MAXIMIZE))\n", "\n", "# The real objective function used for generating observations.\n", "f = lambda x: bbob.Weierstrass(np.array([x]))" ] }, { "cell_type": "markdown", "metadata": { "id": "QKgT1f6YkKmL" }, "source": [ "Create observations (i.e. completed trials) of the objective function." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "kmKEC5DwkGko" }, "outputs": [], "source": [ "# Generate suggestions.\n", "observations = designers.QuasiRandomDesigner(problem.search_space).suggest(30)\n", "\n", "# Compute the real objective value and complete the trials.\n", "trials = []\n", "for idx, obs in enumerate(observations):\n", " trials.append(\n", " obs.to_trial(idx).complete(\n", " vz.Measurement(metrics={'obj': f(obs.parameters['x'].value)})\n", " )\n", " )" ] }, { "cell_type": "markdown", "metadata": { "id": "6fhc8Yxf2_MR" }, "source": [ "Create a `VizierGPBandit` designer and update it with the observations.\n", "\n", "**Note:** When two `VizierGPBandit` designers are updated with identical trials, they may still produce slightly different models and predictions due to inherent stochasticity during the training process." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "T2XjzPOj3AkJ" }, "outputs": [], "source": [ "# Create the GPBandit designer.\n", "gp_designer = designers.VizierGPBandit(problem)\n", "\n", "# Update the GP-Bandit designer with completed trials.\n", "gp_designer.update(vza.CompletedTrials(trials), vza.ActiveTrials())" ] }, { "cell_type": "markdown", "metadata": { "id": "aWVNWADFlGsI" }, "source": [ "Generate predictions in arbitrary points." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "oSFFlcZg1smQ" }, "outputs": [], "source": [ "# Generate predictions.\n", "suggestions = designers.GridSearchDesigner(problem.search_space, double_grid_resolution=500).suggest(500)\n", "predictions = gp_designer.predict(suggestions)" ] }, { "cell_type": "markdown", "metadata": { "id": "FDUzgsLTmWOw" }, "source": [ "Plot the predictions." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "height": 404 }, "executionInfo": { "elapsed": 540, "status": "ok", "timestamp": 1682633166918, "user": { "displayName": "", "userId": "" }, "user_tz": 420 }, "id": "RBJxB2eUcqdp", "outputId": "a9a8ccf9-de5f-4145-d0a1-828ada49f0ed" }, "outputs": [ { "data": { "image/png": "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\ndascPXq0lFLKW2+9VU6ZMkX6fD4ppZR33323/N3vfiellLK0tFSOGjVKSillXV2dDIfDUkop33rr\nLXnKKadIKaV87LHH5BVXXJHoa/LrE044QT7++ONSSikfffRRedJJJ0kppZw/f76cN2+ejEajctWq\nVXLEiBFSSinvuusu+cc//lFKKWUkEpH19fWtfh9d+k0Uig5YvbpRSy65RMpHH+3+c8T1tPlfVyzm\nI6WUk2Rj+rAbgHeklKOAd2KvEUKMAc4AxgJzgAVCCOMePjfsEW63vownH1co+pSbb4aY1ZrA59O3\n7wUff/wxP/nJT3A6nbhcLk455RQ++ugjiouLOfTQQwE455xz+Pjjj0lLS8Nms3HRRRfx0ksv4XA4\nAHj77be58sormTRpEieeeCL19fWJYhcnnngidrsdgNNOO43nn38egOeee46f/vSngF704qc//Snj\nxo3jl7/8ZROrui2WLVvGWWedBcC5557Lxx9/nHjv5JNPxmAwMGbMGMpjiYmnTZvGY489xm233cZ3\n332HO/4PrlD0IMFg4/rZZ8PPftZ7594bV/ZJwBOx9SeAk5O2PyOlDEopN6NbztP34jxdJj4kpqZM\nKVKCmKu209s7iWwjz71oNqdDCIHJZOKLL77g1FNP5eWXX2bOnDkAaJrGsmXLWLlyJStXrmTnzp0J\n4YsXtgAoKioiOzubb7/9lmeffZYzzjgDgFtuuYUjjzyS77//nldffXWPSkQm99dqtbb4fLNmzeLD\nDz+kqKiIc889l//85z9dPodC0VWShbm35i/H6awwS2CpEOIrIcQlsW15UspdALFlbmx7EbA9ad8d\nsW1NEEJcIoRYLoRYXlFRsWe9b4NYBbvEUqHoU4YM6dr2TjJr1ixefvllfD4fXq+XRYsWcdhhh7Ft\n2zaWLVsGwNNPP83MmTPxeDzU1dVx/PHHc++997Jy5UoAjj32WP71r38ljhnf3hpnnHEGf/3rX6mr\nq2P8+PGAbjEXFen/3o8//niibfMyk8nMmDGDZ555BtDrP8+cObPdz7l161Zyc3O5+OKLufDCC/n6\n66/bba9QdAfJhl2qCvOhUsopwFzgCiHErHbatjYFu8WjvZTyISnlVCnl1JycnE52o2M0rdFi3oNg\nUoWi+7njDoi5jhM4HPr2vWDKlCmcf/75TJ8+nYMOOoiLLrqIzMxMDjjgAJ544gkmTJhAdXU1l112\n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\n", "text/plain": [ "\u003cFigure size 800x600 with 1 Axes\u003e" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8, 6))\n", "\n", "# Visualize the real objective function.\n", "xs = np.linspace(-5, 5, num=1000)\n", "ys = [f(x) for x in xs]\n", "plt.plot(xs, ys, label='actual', color='blue', alpha=0.6)\n", "\n", "# Visualize the observation points.\n", "obs_x = [obs.parameters['x'].value for obs in observations]\n", "obs_y = [f(x) for x in obs_x]\n", "plt.scatter(obs_x, obs_y, label='observations', marker='o', color='red')\n", "\n", "# Visualize the predictions and confidence bounds.\n", "pred_x = [suggestion.parameters['x'].value for suggestion in suggestions]\n", "plt.plot(pred_x, predictions.mean, label='prediction', color='green')\n", "lower = predictions.mean - predictions.stddev\n", "upper = predictions.mean + predictions.stddev\n", "plt.fill_between(pred_x, lower, upper, color='grey', alpha=0.2)\n", "\n", "# Add legend and title.\n", "plt.legend(loc='best')\n", "plt.title(f'GPBandit Prediction vs. Actual')\n", "plt.xlabel('x')\n", "plt.show()" ] } ], "metadata": { "colab": { "name": "Predictors.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }