{ "cells": [ { "cell_type": "markdown", "id": "a4267b75", "metadata": {}, "source": [ "# Use a surrogate model to find the minimum of an expensive cost function\n", "\n", "Sometimes our cost function can be expensive to compute, e.g. it may take 10 seconds to compute one value of our cost function and so calling it hundreds or thousands of times in an optimization may take hours.\n", "\n", "One way to evaluate the minimum of an expensive cost function is to create a surrogate model.\n", "We can quickly evaluate the surrogate model, so we can call an optimization on the surrogate model to find its minimum.\n", "Then we can evaluate the the expensive cost function at that point and compare.\n", "This can result in a small number of calls to the cost function itself, but still find the minimum.\n", "\n", "The key concepts you should gain from this page:\n", "\n", " * How to create a surrogate model of an expensive cost function and use the surrogate model to guide the optimization." ] }, { "cell_type": "markdown", "id": "71a00559", "metadata": {}, "source": [ "## An interpolated surrogate model\n", "\n", "We start by defining a cost function like below.\n", "This should look familar from the previous section." ] }, { "cell_type": "code", "execution_count": 6, "id": "24089f94", "metadata": {}, "outputs": [], "source": [ "import numpy\n", "from scipy import stats\n", "\n", "def function(p):\n", " \"\"\" Executed for each set of drawn parameters in the optimization search.\n", " \"\"\"\n", "\n", " # get the x and y values from Mystic\n", " x, y = p[0], p[1]\n", "\n", " # get value at Gaussian function x and y\n", " var = stats.multivariate_normal(mean=[0, 0], cov=[[0.5, 0],[0, 0.5]])\n", " gauss = -50.0 * var.pdf([x, y])\n", "\n", " # get value at volcano function x and y\n", " r = numpy.sqrt(x**2 + y**2)\n", " mu, sigma = 5.0, 1.0\n", " stat = 10.0 * (numpy.exp(-r / 35.0) + 1.0 /\n", " (sigma * numpy.sqrt(2.0 * numpy.pi)) *\n", " numpy.exp(-0.5 * ((r - mu) / sigma) ** 2)) + gauss\n", "\n", " # whether to flip sign of function\n", " # a positive lets you search for minimum\n", " # a negative lets you search for maximum\n", " stat *= 1.0\n", " \n", " return stat" ] }, { "cell_type": "markdown", "id": "438db53a", "metadata": {}, "source": [ "Now we are going to use a ``WrapModel``.\n", "This will take our cost function and create an archive for it.\n", "\n", "We will sample for just a few points (e.g. 5) to create an initial surrogate model.\n", "We sample 5 points with ``truth.sample(bounds, pts=5)`` to initialize our surrogate model.\n", "You can change the ``truth.sample(bounds, pts=5)`` to ``truth.sample(bounds, pts=-5)`` to sample 5 points and run an optimization at each point.\n", "You should notice the number of data points in the surrogate model increase.\n", "Then we can use ``InterpModel`` to create the surrogate model.\n", "\n", "We are going to create a ``while`` loop that goes until the error between our surrogate model and the optimization search reaches below a threshold.\n", "At each iteration of the ``while`` loop we are going to:\n", "\n", " 1. Update our surrogate model.\n", " 2. Find the minimum of the surrogate model.\n", " 3. Compute our cost function at that minimum.\n", " 4. Compare the value of the minimum at the surrogate and the cost function." ] }, { "cell_type": "code", "execution_count": 19, "id": "b779299f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning: Maximum number of iterations has been exceeded\n", "truth [9.499999999999948, 9.499999998663952] 6.812281772564118\n", "surrogate [9.499999999999948, 9.499999998663952] -9.150964386952062\n", "error 15.96324615951618 15.96324615951618\n", "data 5\n", "Warning: Maximum number of iterations has been exceeded\n", "truth [-3.1699938681495423, 9.499999999999982] 7.511581413527667\n", "surrogate [-3.1699938681495423, 9.499999999999982] -119.41260291584939\n", "error 126.92418432937706 126.92418432937706\n", "data 6\n", "Warning: Maximum number of iterations has been exceeded\n", "truth [-9.5, -9.499999999999993] 6.812281772380233\n", "surrogate [-9.5, -9.499999999999993] -29.564642474061188\n", "error 36.37692424644142 36.37692424644142\n", "data 7\n", "Warning: Maximum number of iterations has been exceeded\n", "truth [0.00028208514725980044, -0.011770443619320524] -5.916635826059222\n", "surrogate [0.00028208514725980044, -0.011770443619320524] -5.916230755309444\n", "error -0.00040507074977824686 0.00040507074977824686\n", "data 8\n" ] } ], "source": [ "import os\n", "import shutil\n", "from spotlight.bridge.ouq_models import WrapModel\n", "from spotlight.bridge.ouq_models import InterpModel\n", "from mystic import tools\n", "from mystic.solvers import diffev2\n", "from mystic.math.legacydata import dataset, datapoint\n", "\n", "# set random seed so we can reproduce results\n", "tools.random_seed(0)\n", "\n", "# remove prior cached results\n", "if os.path.exists(\"volcano_surrogate\"):\n", " shutil.rmtree(\"volcano_surrogate\")\n", "\n", "# generate a sampled dataset for the model\n", "truth = WrapModel(\"volcano_surrogate\", function, nx=2, ny=None, cached=False)\n", "bounds = [(-9.5, 9.5), (-9.5, 9.5)]\n", "data = truth.sample(bounds, pts=5)\n", "\n", "# create surrogate model\n", "surrogate = InterpModel(\"volcano_surrogate\", nx=2, ny=None, data=truth, smooth=0.0, noise=0.0,\n", " method=\"thin_plate\", extrap=False)\n", "\n", "# go until error < 1e-3\n", "error = float(\"inf\")\n", "sign = 1.0\n", "while error > 1e-3:\n", "\n", " # fit surrogate data\n", " surrogate.fit(data=data)\n", "\n", " # find minimum/maximum of surrogate\n", " results = diffev2(lambda x: sign * surrogate(x), bounds, npop=20,\n", " bounds=bounds, gtol=500, full_output=True)\n", "\n", " # get minimum/maximum of actual expensive model\n", " xnew = results[0].tolist()\n", " ynew = truth(xnew)\n", "\n", " # compute error which is actual model value - surrogate model value\n", " ysur = results[1]\n", " error = abs(ynew - ysur)\n", "\n", " # print statements\n", " print(\"truth\", xnew, ynew)\n", " print(\"surrogate\", xnew, ysur)\n", " print(\"error\", ynew - ysur, error)\n", " print(\"data\", len(data))\n", "\n", " # add latest evaulated point with actual expensive model to be used by surrogate in fitting\n", " pt = datapoint(xnew, value=ynew)\n", " data.append(pt)\n", " \n", "import pox\n", "pox.rmtree(\"volcano_surrogate\")" ] }, { "cell_type": "markdown", "id": "8bee5a0c", "metadata": {}, "source": [ "We can also plot the surface our surrogate model to see what it currently looks like." ] }, { "cell_type": "code", "execution_count": 20, "id": "b792e24a", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import mystic\n", "# show what our model currently looks like\n", "mystic.model_plotter(lambda x: surrogate(x), depth=True, fill=True, bounds='-9.5:9.5,-9.5:9.5')" ] }, { "cell_type": "markdown", "id": "638329b2", "metadata": {}, "source": [ "## ML surrogate models\n", "\n", "Instead of interpolating the surface, we can use a machine learning technique such as an artificial neural network (ANN) or a Gaussian process regressor (GPR).\n", "Below, we show an example of using a Gaussian process regressor to accomplish the same analysis.\n", "You can change ``method`` below to switch between the GPR and an ANN.\n", "We recommend using the GPR for this example.\n", "\n", "To build a GPR we are going to use the [scikit learn](https://scikit-learn.org/stable/modules/generated/sklearn.gaussian_process.GaussianProcessRegressor.html) ``GaussianProcessorRegressor`` class.\n", "Illustration of a GPR on a 1D dataset is shown below.\n", "\n", "![](img_gpr.png)" ] }, { "cell_type": "code", "execution_count": 23, "id": "63541982", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "score = 1.0\n", "reached max tries\n", "no improvement\n", "Warning: Maximum number of iterations has been exceeded\n", "truth [1.4846419769916262e-07, -1.1220506456383777e-08] -5.915479484522285\n", "surrogate [1.4846419769916262e-07, -1.1220506456383777e-08] -5.915479384931473\n", "error -9.959081204158338e-08 9.959081204158338e-08\n", "data 5\n" ] } ], "source": [ "from sklearn.gaussian_process import GaussianProcessRegressor as GPRegressor\n", "from sklearn.gaussian_process.kernels import RBF, WhiteKernel\n", "from sklearn.neural_network import MLPRegressor\n", "from sklearn.preprocessing import StandardScaler\n", "from spotlight.bridge.ml import Estimator, MLData, improve_score\n", "from spotlight.bridge.ouq_models import LearnedModel\n", "\n", "# set random seed so we can reproduce results\n", "tools.random_seed(0)\n", "\n", "# remove prior cached results\n", "if os.path.exists(\"ml_surrogate\"):\n", " shutil.rmtree(\"ml_surrogate\")\n", "\n", "# generate a sampled dataset for the model\n", "truth = WrapModel(\"ml_surrogate\", function, nx=2, ny=None, cached=False)\n", "bounds = [(-9.5, 9.5), (-9.5, 9.5)]\n", "data = truth.sample(bounds, pts=5)\n", "\n", "# create surrogate model\n", "method = \"gp\"\n", "if method == \"gp\":\n", "\n", " # create our sklearn GPR\n", " kernel = RBF(length_scale=1.0, length_scale_bounds=(1e-05, 100000.0))\n", " regressor = GPRegressor(alpha=1e-10, optimizer=None, n_restarts_optimizer=0, kernel=kernel)\n", "\n", " # create our learned surrogate model in Mystic\n", " gpr = Estimator(estimator=regressor, transform=StandardScaler())\n", " best = improve_score(gpr, MLData(data.coords, data.coords, data.values, data.values), tries=10, verbose=True)\n", " surrogate = LearnedModel(\"ml_surrogate\", nx=2, ny=None, data=truth,\n", " estimator=best.estimator, transform=best.transform)\n", "\n", "else:\n", " \n", " # create our sklearn multi-layer perceptron regressor\n", " regressor = MLPRegressor(hidden_layer_sizes=(100, 75, 50, 25), max_iter=1000, n_iter_no_change=5, solver='lbfgs', learning_rate_init=0.001)\n", "\n", " # create our learned surrogate model in Mystic\n", " mlp = Estimator(estimator=regressor, transform=StandardScaler())\n", " best = improve_score(mlp, MLData(data.coords, data.coords, data.values, data.values), tries=10, verbose=True)\n", " surrogate = LearnedModel(\"surrogate\", nx=2, ny=None, data=truth,\n", " estimator=best.estimator, transform=best.transform)\n", " \n", "# go until error < 1e-3\n", "error = float(\"inf\")\n", "sign = 1.0\n", "while error > 1e-3:\n", "\n", " # fit surrogate data\n", " surrogate.fit(data=data)\n", "\n", " # find minimum/maximum of surrogate\n", " args = dict(bounds=bounds, gtol=500, full_output=True)\n", " results = diffev2(lambda x: sign * surrogate(x), bounds, npop=20, **args)\n", "\n", " # get minimum/maximum of actual expensive model\n", " xnew = results[0].tolist()\n", " ynew = truth(xnew)\n", "\n", " # compute error which is actual model value - surrogate model value\n", " ysur = results[1]\n", " error = abs(ynew - ysur)\n", "\n", " # print statements\n", " print(\"truth\", xnew, ynew)\n", " print(\"surrogate\", xnew, ysur)\n", " print(\"error\", ynew - ysur, error)\n", " print(\"data\", len(data))\n", "\n", " # add latest evaulated point with actual expensive model to be used by surrogate in fitting\n", " pt = datapoint(xnew, value=ynew)\n", " data.append(pt)\n", " \n", "import pox\n", "pox.rmtree(\"ml_surrogate\")" ] }, { "cell_type": "markdown", "id": "28abdd2d", "metadata": {}, "source": [ "You should now have an understand how to implement an optimization search if the cost function is expensive to compute. We will now move on to how the topics we have covered on the prior pages can be implemented in a Rietveld analysis using MILK.\n", "\n", "This tutorial is not meant as a comphrehensive tutorial on Mystic.\n", "For more Mystic documentation and examples, you can check out the [Mystic Documentation](https://mystic.readthedocs.io/en/latest/)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.13" } }, "nbformat": 4, "nbformat_minor": 5 }