{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Batch GP Regression\n", "\n", "## Introduction\n", "\n", "In this notebook, we demonstrate how to train Gaussian processes in the batch setting -- that is, given `b` training sets and `b` separate test sets, GPyTorch is capable of training independent GPs on each training set and then testing each GP separately on each test set in parallel. This can be extremely useful if, for example, you would like to do k-fold cross validation.\n", "\n", "**Note:** When operating in batch mode, we do **NOT** account for any correlations between the different functions being modeled. If you wish to do this, see the multitask examples instead." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import math\n", "import torch\n", "import gpytorch\n", "from matplotlib import pyplot as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set up training data\n", "\n", "In the next cell, we set up the training data for this example. For the x values, we'll be using 100 regularly spaced points on [0,1] which we evaluate the function on and add Gaussian noise to get the training labels. For the training labels, we'll be modeling four functions independently in batch mode: two sine functions with different periods and two cosine functions with different periods. \n", "\n", "In total, `train_x` will be `4 x 100 x 1` (`b x n x 1`) and `train_y` will be `4 x 100` (`b x n`)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Training data is 100 points in [0,1] inclusive regularly spaced\n", "train_x = torch.linspace(0, 1, 100).view(1, -1, 1).repeat(4, 1, 1)\n", "# True functions are sin(2pi x), cos(2pi x), sin(pi x), cos(pi x)\n", "sin_y = torch.sin(train_x[0] * (2 * math.pi)) + 0.5 * torch.rand(1, 100, 1)\n", "sin_y_short = torch.sin(train_x[0] * (math.pi)) + 0.5 * torch.rand(1, 100, 1)\n", "cos_y = torch.cos(train_x[0] * (2 * math.pi)) + 0.5 * torch.rand(1, 100, 1)\n", "cos_y_short = torch.cos(train_x[0] * (math.pi)) + 0.5 * torch.rand(1, 100, 1)\n", "train_y = torch.cat((sin_y, sin_y_short, cos_y, cos_y_short)).squeeze(-1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting up the model\n", "\n", "The next cell adapts the model from the Simple GP regression tutorial to the batch setting. Not much changes: the only modification is that we add a `batch_shape` to the mean and covariance modules. What this does internally is replicates the mean constant and lengthscales `b` times so that we learn a different value for each function in the batch." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# We will use the simplest form of GP model, exact inference\n", "class ExactGPModel(gpytorch.models.ExactGP):\n", " def __init__(self, train_x, train_y, likelihood):\n", " super(ExactGPModel, self).__init__(train_x, train_y, likelihood)\n", " self.mean_module = gpytorch.means.ConstantMean(batch_shape=torch.Size([4]))\n", " self.covar_module = gpytorch.kernels.ScaleKernel(\n", " gpytorch.kernels.MaternKernel(batch_shape=torch.Size([4])),\n", " batch_shape=torch.Size([4])\n", " )\n", " \n", " def forward(self, x):\n", " mean_x = self.mean_module(x)\n", " covar_x = self.covar_module(x)\n", " return gpytorch.distributions.MultivariateNormal(mean_x, covar_x)\n", "\n", "# initialize likelihood and model\n", "likelihood = gpytorch.likelihoods.GaussianLikelihood(batch_shape=torch.Size([4]))\n", "model = ExactGPModel(train_x, train_y, likelihood)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Training the model\n", "\n", "In the next cell, we handle using Type-II MLE to train the hyperparameters of the Gaussian process. This loop is nearly identical to the simple GP regression setting with one key difference. Now, the call through the mariginal log likelihood returns `b` losses, one for each GP. Since we have different parameters for each GP, we can simply sum these losses before calling `backward`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iter 1/50 - Loss: 16.613\n", "Iter 2/50 - Loss: 15.770\n", "Iter 3/50 - Loss: 14.921\n", "Iter 4/50 - Loss: 14.076\n", "Iter 5/50 - Loss: 13.241\n", "Iter 6/50 - Loss: 12.425\n", "Iter 7/50 - Loss: 11.637\n", "Iter 8/50 - Loss: 10.878\n", "Iter 9/50 - Loss: 10.129\n", "Iter 10/50 - Loss: 9.398\n", "Iter 11/50 - Loss: 8.699\n", "Iter 12/50 - Loss: 8.024\n", "Iter 13/50 - Loss: 7.340\n", "Iter 14/50 - Loss: 6.687\n", "Iter 15/50 - Loss: 5.954\n", "Iter 16/50 - Loss: 5.272\n", "Iter 17/50 - Loss: 4.678\n", "Iter 18/50 - Loss: 3.911\n", "Iter 19/50 - Loss: 3.255\n", "Iter 20/50 - Loss: 2.633\n", "Iter 21/50 - Loss: 1.999\n", "Iter 22/50 - Loss: 1.340\n", "Iter 23/50 - Loss: 0.734\n", "Iter 24/50 - Loss: 0.123\n", "Iter 25/50 - Loss: -0.441\n", "Iter 26/50 - Loss: -0.894\n", "Iter 27/50 - Loss: -1.469\n", "Iter 28/50 - Loss: -1.979\n", "Iter 29/50 - Loss: -2.391\n", "Iter 30/50 - Loss: -2.867\n", "Iter 31/50 - Loss: -3.188\n", "Iter 32/50 - Loss: -3.626\n", "Iter 33/50 - Loss: -3.907\n", "Iter 34/50 - Loss: -4.292\n", "Iter 35/50 - Loss: -4.468\n", "Iter 36/50 - Loss: -4.768\n", "Iter 37/50 - Loss: -4.809\n", "Iter 38/50 - Loss: -5.110\n", "Iter 39/50 - Loss: -5.076\n", "Iter 40/50 - Loss: -5.319\n", "Iter 41/50 - Loss: -5.360\n", "Iter 42/50 - Loss: -5.520\n", "Iter 43/50 - Loss: -5.388\n", "Iter 44/50 - Loss: -5.413\n", "Iter 45/50 - Loss: -5.245\n", "Iter 46/50 - Loss: -5.282\n", "Iter 47/50 - Loss: -5.185\n", "Iter 48/50 - Loss: -5.379\n", "Iter 49/50 - Loss: -5.259\n", "Iter 50/50 - Loss: -5.263\n" ] } ], "source": [ "# this is for running the notebook in our testing framework\n", "import os\n", "smoke_test = ('CI' in os.environ)\n", "training_iter = 2 if smoke_test else 50\n", "\n", "\n", "# Find optimal model hyperparameters\n", "model.train()\n", "likelihood.train()\n", "\n", "# Use the adam optimizer\n", "optimizer = torch.optim.Adam(model.parameters(), lr=0.1) # Includes GaussianLikelihood parameters\n", "\n", "# \"Loss\" for GPs - the marginal log likelihood\n", "mll = gpytorch.mlls.ExactMarginalLogLikelihood(likelihood, model)\n", "\n", "for i in range(training_iter):\n", " # Zero gradients from previous iteration\n", " optimizer.zero_grad()\n", " # Output from model\n", " output = model(train_x)\n", " # Calc loss and backprop gradients\n", " loss = -mll(output, train_y).sum()\n", " loss.backward()\n", " print('Iter %d/%d - Loss: %.3f' % (i + 1, training_iter, loss.item()))\n", " optimizer.step()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Make predictions with the model\n", "\n", "Making predictions with batched GPs is straight forward: we simply call the model (and optionally the likelihood) on batch `b x t x 1` test data. The resulting `MultivariateNormal` will have a `b x n` mean and a `b x n x n` covariance matrix. Standard calls like `preds.confidence_region()` still function -- for example `preds.var()` returns a `b x n` set of predictive variances.\n", "\n", "In the cell below, we make predictions in batch mode for the four functions and plot the GP fit for each one." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Set into eval mode\n", "model.eval()\n", "likelihood.eval()\n", "\n", "# Initialize plots\n", "f, ((y1_ax, y2_ax), (y3_ax, y4_ax)) = plt.subplots(2, 2, figsize=(8, 8))\n", "# Test points every 0.02 in [0,1]\n", "\n", "# Make predictions\n", "with torch.no_grad():\n", " test_x = torch.linspace(0, 1, 51).view(1, -1, 1).repeat(4, 1, 1)\n", " observed_pred = likelihood(model(test_x))\n", " # Get mean\n", " mean = observed_pred.mean\n", " # Get lower and upper confidence bounds\n", " lower, upper = observed_pred.confidence_region()\n", "\n", "\n", "# Plot training data as black stars\n", "y1_ax.plot(train_x[0].detach().numpy(), train_y[0].detach().numpy(), 'k*')\n", "# Predictive mean as blue line\n", "y1_ax.plot(test_x[0].squeeze().numpy(), mean[0, :].numpy(), 'b')\n", "# Shade in confidence \n", "y1_ax.fill_between(test_x[0].squeeze().numpy(), lower[0, :].numpy(), upper[0, :].numpy(), alpha=0.5)\n", "y1_ax.set_ylim([-3, 3])\n", "y1_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n", "y1_ax.set_title('Observed Values (Likelihood)')\n", "\n", "y2_ax.plot(train_x[1].detach().numpy(), train_y[1].detach().numpy(), 'k*')\n", "y2_ax.plot(test_x[1].squeeze().numpy(), mean[1, :].numpy(), 'b')\n", "y2_ax.fill_between(test_x[1].squeeze().numpy(), lower[1, :].numpy(), upper[1, :].numpy(), alpha=0.5)\n", "y2_ax.set_ylim([-3, 3])\n", "y2_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n", "y2_ax.set_title('Observed Values (Likelihood)')\n", "\n", "y3_ax.plot(train_x[2].detach().numpy(), train_y[2].detach().numpy(), 'k*')\n", "y3_ax.plot(test_x[2].squeeze().numpy(), mean[2, :].numpy(), 'b')\n", "y3_ax.fill_between(test_x[2].squeeze().numpy(), lower[2, :].numpy(), upper[2, :].numpy(), alpha=0.5)\n", "y3_ax.set_ylim([-3, 3])\n", "y3_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n", "y3_ax.set_title('Observed Values (Likelihood)')\n", "\n", "y4_ax.plot(train_x[3].detach().numpy(), train_y[3].detach().numpy(), 'k*')\n", "y4_ax.plot(test_x[3].squeeze().numpy(), mean[3, :].numpy(), 'b')\n", "y4_ax.fill_between(test_x[3].squeeze().numpy(), lower[3, :].numpy(), upper[3, :].numpy(), alpha=0.5)\n", "y4_ax.set_ylim([-3, 3])\n", "y4_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n", "y4_ax.set_title('Observed Values (Likelihood)')\n", "\n", "None" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "bento_stylesheets": { "bento/extensions/flow/main.css": true, "bento/extensions/kernel_selector/main.css": true, "bento/extensions/kernel_ui/main.css": true, "bento/extensions/system_usage/main.css": true }, "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.7.1" } }, "nbformat": 4, "nbformat_minor": 1 }