{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic usage of PHYSBO\n", "\n", "## Introduction\n", "\n", "In this tutorial, we will introduce how to define the simulator class and find the minimum value of a one-dimensional function using PHYSBO.\n", "\n", "First, we will import PHYSBO." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:30.091028Z", "start_time": "2021-03-05T04:50:29.600019Z" } }, "outputs": [], "source": [ "import physbo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the search space\n", "\n", "In the following example, the search space ``X`` is defined as a grid chopped by ``window_num=10001`` divisions from ``x_min = -2.0`` to ``x_max = 2.0``.\n", "Note that ``X`` must be in ``window_num`` x ``d`` ndarray format (``d`` is the number of dimensions, in this case one). In this case, ``d`` is the number of dimensions, in this case two, so we use reshape to transform it." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:30.097211Z", "start_time": "2021-03-05T04:50:30.092637Z" } }, "outputs": [], "source": [ "#In\n", "import numpy as np\n", "import scipy\n", "import physbo\n", "import itertools\n", "\n", "#In\n", "#Create candidate\n", "window_num=10001\n", "x_max = 2.0\n", "x_min = -2.0\n", "\n", "X = np.linspace(x_min,x_max,window_num).reshape(window_num, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining the simulator class\n", "\n", "Here, we define the simulator class to set as the objective function.\n", "\n", "In this case, the problem is to find the minimum $x$ such that $f(x) = 3 x^4 + 4 x ^3 + 1.0$ (the answer is $x=-1.0$).\n", "\n", "In the simulator class, we define the ``__call__`` function (or ``__init__`` if there are initial variables, etc.).\n", "(If there are initial variables, define ``__init__``.) The action indicates the index number of the grid to be retrieved from the search space, and is generally in the form of an ndarray so that multiple candidates can be calculated at once.\n", "In this case, we choose one candidate point from ``X`` as ``action_idx=action[0]`` to calculate only one candidate at a time.\n", "Since **PHYSBO is designed to find the maximum value of the objective function**, it returns the value of f(x) at the candidate point multiplied by -1." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:30.104491Z", "start_time": "2021-03-05T04:50:30.099622Z" } }, "outputs": [], "source": [ "# Declare the class for calling the simulator.\n", "class simulator:\n", "\n", " def __call__(self, action ):\n", " action_idx = action[0]\n", " x = X[action_idx][0]\n", " fx = 3.0*x**4 + 4.0*x**3 + 1.0\n", " fx_list.append(fx)\n", " x_list.append(X[action_idx][0])\n", "\n", " print (\"*********************\")\n", " print (\"Present optimum interactions\")\n", "\n", " print (\"x_opt=\", x_list[np.argmin(np.array(fx_list))])\n", "\n", " return -fx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Performing optimization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setting policy\n", "\n", "First, set the optimization `policy`. \n", "\n", "Next, set `test_X` to the matrix of search candidates (`numpy.array`)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:30.117205Z", "start_time": "2021-03-05T04:50:30.108470Z" } }, "outputs": [], "source": [ "# set policy \n", "policy = physbo.search.discrete.policy(test_X=X)\n", "\n", "# set seed\n", "policy.set_seed(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When `policy` is set, no optimization is done yet.\n", "Execute the following methods on `policy` to optimize it.\n", "\n", "- `random_search`. \n", "- `bayes_search`.\n", "\n", "If you specify the `simulator` and the number of search steps in these methods, the following loop will be executed for the number of search steps.\n", "\n", "i) Select the next parameter to be executed from the candidate parameters.\n", "\n", "ii) Execute `simulator` with the selected parameters.\n", "\n", "The default number of parameter returned by i) is one, but it is possible to return multiple parameters in one step.\n", "See the section \"Searching for multiple candidates at once\" for details. \n", "\n", "Also, instead of running the above loop inside PHYSBO, it is possible to control i) and ii) separately from the outside. In other words, it is possible to propose the next parameter to be executed from PHYSBO, evaluate its objective function value in some way outside PHYSBO (e.g., by experiment rather than numerical calculation), propose it in some way outside PHYSBO, and register the evaluated value in PHYSBO. For more details, please refer to the \"Running Interactively\" section of the tutorial.\n", "\n", "### Random Search\n", "\n", "First of all, let's perform a random search.\n", "\n", "Since Bayesian optimization requires at least two objective function values to be obtained (the initial number of data required depends on the problem to be optimized and the dimension d of the parameters), we will first perform a random search. \n", "\n", "**argument**. \n", "\n", "- `max_num_probes`: Number of search steps. \n", "- `simulator`: The simulator of the objective function (an object of class simulator). " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:30.149378Z", "start_time": "2021-03-05T04:50:30.120660Z" }, "scrolled": true }, "outputs": [], "source": [ "fx_list=[]\n", "x_list = []\n", "\n", "res = policy.random_search(max_num_probes=20, simulator=simulator())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When executed, the objective function value and its action ID for each step, and the best value up to now and its action ID will be printed as follows.\n", "\n", "````\n", "0020-th step: f(x) = -19.075990 (action=8288)\n", " current best f(x) = -0.150313 (best action=2949) \n", "````\n", "\n", "\n", "### Bayesian Optimization\n", "\n", "Next, we run the Bayesian optimization as follows.\n", "\n", "**argument**. \n", "\n", "- `max_num_probes`: Number of search steps. \n", "- `simulator`: The simulator of the objective function (an object of class simulator). \n", "- `score`: The type of acquisition function. You can specify one of the following\n", " - TS (Thompson Sampling) \n", " - EI (Expected Improvement) \n", " - PI (Probability of Improvement) \n", "- `interval`: \n", "The hyperparameters are trained at the specified interval. \n", "If a negative value is specified, no hyperparameter will be learned. \n", "0 means that hyperparameter learning will be performed only in the first step. \n", "- `num_rand_basis`: Number of basis functions. 0 means that a normal Gaussian process without Bayesian linear model will be used. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:32.482575Z", "start_time": "2021-03-05T04:50:30.151250Z" }, "code_folding": [], "scrolled": true }, "outputs": [], "source": [ "res = policy.bayes_search(max_num_probes=50, simulator=simulator(), score='TS', \n", " interval=0, num_rand_basis=500)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Checking the results\n", "\n", "The search result ``res`` is returned as an object of the ``history`` class (`physbo.search.discrete.results.history`). \n", "The following is a reference to the search results.\n", "\n", "- `res.fx` : The history of evaluated values of simulator (objective function).\n", "- `res.chosen_actions`: The history of action IDs (parameters) when the simulator was evaluated. \n", "- `fbest, best_action= res.export_all_sequence_best_fx()`: The history of best values and their action IDs (parameters) for all timings when the simulator was evaluated.\n", "- `res.total_num_search`: Total number of simulator evaluations.\n", "\n", "Let's plot the objective function value and the best value at each step. \n", "`res.fx` and `best_fx` should range up to `res.total_num_search`, respectively." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:32.747272Z", "start_time": "2021-03-05T04:50:32.484125Z" } }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:32.897286Z", "start_time": "2021-03-05T04:50:32.754938Z" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(res.fx[0:res.total_num_search])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.056830Z", "start_time": "2021-03-05T04:50:32.899063Z" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "best_fx, best_action = res.export_all_sequence_best_fx()\n", "plt.plot(best_fx)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Serializing the results\n", "\n", "The search results can be saved to an external file using the `save` method." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.064021Z", "start_time": "2021-03-05T04:50:33.058426Z" } }, "outputs": [], "source": [ "res.save('search_result.npz')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.067954Z", "start_time": "2021-03-05T04:50:33.065107Z" } }, "outputs": [], "source": [ "del res" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load the saved result file as follows:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.080105Z", "start_time": "2021-03-05T04:50:33.073810Z" } }, "outputs": [], "source": [ "res = physbo.search.discrete.results.history()\n", "res.load('search_result.npz')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, the candidate with the best score can be displayed as follows. You can see that we have arrived at the correct solution $x=-1$." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.112487Z", "start_time": "2021-03-05T04:50:33.081409Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.002]\n" ] } ], "source": [ "print(X[int(best_action[-1])])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prediction\n", "\n", "`policy` serves `get_post_fmean` and `get_post_fcov` methods for calculating mean value and variance of Gaussian process (post distribution). " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:33.700354Z", "start_time": "2021-03-05T04:50:33.118203Z" } }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "mean = policy.get_post_fmean(X)\n", "var = policy.get_post_fcov(X)\n", "std = np.sqrt(var)\n", "xs = X[:,0]\n", "\n", "ax = plt.subplot()\n", "ax.plot(xs, mean)\n", "ax.fill_between(xs, mean-std, mean+std, color=\"blue\", alpha=.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Acquisition function\n", "\n", "`policy` serves `get_score` method for calculating acquisition function." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:34.220216Z", "start_time": "2021-03-05T04:50:33.701874Z" } }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "scores = policy.get_score(mode=\"EI\", xs=X)\n", "plt.plot(scores)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Parallelization\n", "\n", "PHYSBO can calculate acquisition functions for candidates in parallel by using MPI via `mpi4py` .\n", "To enable MPI parallelization, pass a MPI communicator such as `MPI.COMM_WORLD` to a keyword argument, `comm` of the constructor of the `policy`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2021-03-05T04:50:34.224416Z", "start_time": "2021-03-05T04:50:34.222375Z" } }, "outputs": [], "source": [ "# from mpi4py import MPI\n", "# policy = physbo.search.discrete.policy(test_X=X, comm=MPI.COMM_WORLD)" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.1" } }, "nbformat": 4, "nbformat_minor": 2 }