369 lines
84 KiB
Text
369 lines
84 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Base math/data packages"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import pandas as pd"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Gaussian Process Modeling packages"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import gpflow\n",
|
|
"import tensorflow as tf"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from gpflow.utilities import print_summary"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Plotting package"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import matplotlib.pyplot as plt"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Notebook output parameters"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"%matplotlib inline\n",
|
|
"plt.rcParams[\"figure.figsize\"] = (12, 6)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"#tf.config.set_visible_devices([], 'GPU')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Basic Gaussian Process regression model with `GPflow`"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"size = 500"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"X = np.linspace(0, 25, num = size)\n",
|
|
"Y = 5 * X + 3 * np.sin(X) * np.exp(0.1*X)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df_func = pd.DataFrame({\n",
|
|
" 'X': X,\n",
|
|
" 'Y': Y\n",
|
|
"})"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Take n random samples from the function"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"n_sampl = 25"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"df_sampled = df_func.sample(n_sampl)\n",
|
|
"X_sampled = df_sampled['X'].to_numpy().reshape(-1, 1)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"Y_sampled = df_sampled['Y'].to_numpy().reshape(-1, 1)\n",
|
|
"\n",
|
|
"# Add noise to the output\n",
|
|
"mean, var = 0, 0.5\n",
|
|
"noise = np.random.normal(mean, var, size = Y_sampled.shape)\n",
|
|
"\n",
|
|
"Y_sampled = Y_sampled + noise"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAFlCAYAAADoCC5oAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABDTklEQVR4nO3dd3zV5d3/8deVk0nIICEECAkhIYAsGTGAgAstjop7olIXdbTa1p/dvet939Va6+iwDhwVFffEVcXFUFbYG0JISCCEDLLJOOdcvz8SvVFBNOt7xvv5ePSR5IycNz0cfOfK51yXsdYiIiIiIhLsQpwOICIiIiLiC1SMRURERERQMRYRERERAVSMRUREREQAFWMREREREUDFWEREREQEgFCnAwD07t3bpqenOx1DRERERALcqlWryq21SYe7zieKcXp6Orm5uU7HEBEREZEAZ4wpPNJ1GqUQEREREUHFWEREREQEUDEWEREREQFUjEVEREREABVjERERERFAxVhEREREBFAxFhEREREBVIxFRERERAAVYxERERERQMVYRERERARQMRYRERERASDU6QAiIiIinWV/TSO7Kxuob/YQHe4iNaEHfarWYQqXQPpUSM1xOqL4MBVjERER8WvbS2t5YUURH2zeR/GBg1+5bpzZznMRdxGGG+MKJ+SMv8DBCpVkOSwVYxEREfE/RSuo2foJb21vZM/ePWw0IxiWNZlrJg8iIymamMhQ6po8RK9YSlieGxde3O4mvG//ApcB4wqHWfNVjuUrVIxFRETEr9jdy/E8NYMeniYux2LDDCY0AnPKW5A66Ks3jpoBBY9jPc0YY7BeDwaL190MuxYTomIsh9Cb70RERMRvNLZ4mD//JfA0E2osGAjBYjwtULD4m3dIzYFZ8zGn/A7XWffhCovAQwhN1sW925Kob3J3/x9CfJZWjEVERMQvVDU0c/3TuXj2DODMqDCstwWDF0wIuMJb54YPJzXny5EJkzyckF2LWVCTwSOfhfPxw5/z1NU59I2L7MY/ifgqFWMRERHxeZX1zVzy6FIKKxq479JLCEuY3LpCHJX4/d5Ml5qDSc1hBhA3pIyb563m8seW8cKPJ9InRuU42BlrrdMZyM7Otrm5uU7HEBERER9U1+Rm5mPL2Lqvln9ffRzHZ/butO+dW1DJVU+uICU+iudnT6R3z4hO+97i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\n",
|
|
"text/plain": [
|
|
"<Figure size 864x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.figure()\n",
|
|
"plt.plot(X, Y)\n",
|
|
"plt.plot(X_sampled, Y_sampled, '.')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Gaussian Process regression"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"k = gpflow.kernels.SquaredExponential() + gpflow.kernels.Linear()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"╒═════════════════════════════╤═══════════╤═════════════╤═════════╤═════════════╤═════════╤═════════╤═════════╕\n",
|
|
"│ name │ class │ transform │ prior │ trainable │ shape │ dtype │ value │\n",
|
|
"╞═════════════════════════════╪═══════════╪═════════════╪═════════╪═════════════╪═════════╪═════════╪═════════╡\n",
|
|
"│ Sum.kernels[0].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"├─────────────────────────────┼───────────┼─────────────┼─────────┼─────────────┼─────────┼─────────┼─────────┤\n",
|
|
"│ Sum.kernels[0].lengthscales │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"├─────────────────────────────┼───────────┼─────────────┼─────────┼─────────────┼─────────┼─────────┼─────────┤\n",
|
|
"│ Sum.kernels[1].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"╘═════════════════════════════╧═══════════╧═════════════╧═════════╧═════════════╧═════════╧═════════╧═════════╛\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print_summary(k)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"╒════════════════════════════════════╤═══════════╤══════════════════╤═════════╤═════════════╤═════════╤═════════╤═════════╕\n",
|
|
"│ name │ class │ transform │ prior │ trainable │ shape │ dtype │ value │\n",
|
|
"╞════════════════════════════════════╪═══════════╪══════════════════╪═════════╪═════════════╪═════════╪═════════╪═════════╡\n",
|
|
"│ GPR.kernel.kernels[0].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────┤\n",
|
|
"│ GPR.kernel.kernels[0].lengthscales │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────┤\n",
|
|
"│ GPR.kernel.kernels[1].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 1 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────┤\n",
|
|
"│ GPR.likelihood.variance │ Parameter │ Softplus + Shift │ │ True │ () │ float64 │ 1 │\n",
|
|
"╘════════════════════════════════════╧═══════════╧══════════════════╧═════════╧═════════════╧═════════╧═════════╧═════════╛\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"m = gpflow.models.GPR(\n",
|
|
" data = (X_sampled, Y_sampled), \n",
|
|
" kernel = k, \n",
|
|
" mean_function = None\n",
|
|
" )\n",
|
|
"print_summary(m)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"opt = gpflow.optimizers.Scipy()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"╒════════════════════════════════════╤═══════════╤══════════════════╤═════════╤═════════════╤═════════╤═════════╤═════════════╕\n",
|
|
"│ name │ class │ transform │ prior │ trainable │ shape │ dtype │ value │\n",
|
|
"╞════════════════════════════════════╪═══════════╪══════════════════╪═════════╪═════════════╪═════════╪═════════╪═════════════╡\n",
|
|
"│ GPR.kernel.kernels[0].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 194.668 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────────┤\n",
|
|
"│ GPR.kernel.kernels[0].lengthscales │ Parameter │ Softplus │ │ True │ () │ float64 │ 1.33927 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────────┤\n",
|
|
"│ GPR.kernel.kernels[1].variance │ Parameter │ Softplus │ │ True │ () │ float64 │ 24.6737 │\n",
|
|
"├────────────────────────────────────┼───────────┼──────────────────┼─────────┼─────────────┼─────────┼─────────┼─────────────┤\n",
|
|
"│ GPR.likelihood.variance │ Parameter │ Softplus + Shift │ │ True │ () │ float64 │ 0.0654709 │\n",
|
|
"╘════════════════════════════════════╧═══════════╧══════════════════╧═════════╧═════════════╧═════════╧═════════╧═════════════╛\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"opt_logs = opt.minimize(m.training_loss, m.trainable_variables, options=dict(maxiter=1000))\n",
|
|
"print_summary(m)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 864x432 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"## generate test points for prediction\n",
|
|
"xx = np.linspace(-1, 26, 100).reshape(100, 1) # test points must be of shape (N, D)\n",
|
|
"\n",
|
|
"## predict mean and variance of latent GP at test points\n",
|
|
"mean, var = m.predict_f(xx)\n",
|
|
"\n",
|
|
"## generate 10 samples from posterior\n",
|
|
"tf.random.set_seed(1) # for reproducibility\n",
|
|
"samples = m.predict_f_samples(xx, 10) # shape (10, 100, 1)\n",
|
|
"\n",
|
|
"## plot\n",
|
|
"plt.figure(figsize=(12, 6))\n",
|
|
"plt.plot(X_sampled, Y_sampled, \"kx\", mew=2)\n",
|
|
"plt.plot(xx, mean, \"C0\", lw=2)\n",
|
|
"plt.fill_between(\n",
|
|
" xx[:, 0],\n",
|
|
" mean[:, 0] - 1.96 * np.sqrt(var[:, 0]),\n",
|
|
" mean[:, 0] + 1.96 * np.sqrt(var[:, 0]),\n",
|
|
" color=\"C0\",\n",
|
|
" alpha=0.2,\n",
|
|
")\n",
|
|
"plt.plot(xx, samples[:, :, 0].numpy().T, \"C0\", linewidth=0.5)\n",
|
|
"#plt.plot(X, Y, color = 'darkorange', lw = 2)\n",
|
|
"_ = plt.xlim(-0.1, 25.1)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"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.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|