From 2827eb2a0f903b526a0844abeb4c49046592b9fd Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:18:21 +0800 Subject: [PATCH 01/20] Delete core/svgp_stable.py --- core/svgp_stable.py | 181 -------------------------------------------- 1 file changed, 181 deletions(-) delete mode 100644 core/svgp_stable.py diff --git a/core/svgp_stable.py b/core/svgp_stable.py deleted file mode 100644 index 18bc0dd..0000000 --- a/core/svgp_stable.py +++ /dev/null @@ -1,181 +0,0 @@ -# Author: Zidong Chen -# Date: 2024/07/17 -# This is the implementation of the Stochastic Variational Gaussian Process (SVGP) model. Key references: GP for big data - -import os -import torch -import torch.nn as nn - -os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS -from matplotlib import pyplot as plt -from torch.utils.data import TensorDataset, DataLoader -from core.kernel import ARDKernel -import core.GP_CommonCalculation as GP -import data_sample.generate_example_data as data - -JITTER = 1e-3 -PI = 3.1415 -torch.manual_seed(4) - - -class svgp(nn.Module): - def __init__(self, X, Y, num_inducing, batchsize=None): - super(svgp, self).__init__() - - self.X_all, self.Y_all = X, Y - self.num_data = X.size(0) - self.kernel = ARDKernel(1) - self.num_inducing = num_inducing - input_dim = X.size(1) - - # Inducing points - self.xm = nn.Parameter(torch.rand(self.num_inducing, input_dim, dtype=torch.float64)) # Inducing points - self.qu_mean = nn.Parameter(torch.zeros(self.num_inducing, 1, dtype=torch.float64)) - self.chole = nn.Parameter(torch.rand(self.num_inducing, 1, dtype=torch.float64)) - - # kernel - self.kernel = ARDKernel(input_dim) - # Gaussian noise - self.log_beta = nn.Parameter(torch.ones(1, dtype=torch.float64) * 0) - - # normalize - self.normalizer = GP.DataNormalization(method='standard') - self.normalizer.fit(self.X_all, 'x') - self.normalizer.fit(self.Y_all, 'y') - self.X_all = self.normalizer.normalize(self.X_all, 'x') - self.Y_all = self.normalizer.normalize(self.Y_all, 'y') - self.batchsize = batchsize - if self.batchsize is not None: - # Create TensorDataset and DataLoader for minibatch training - dataset = TensorDataset(self.X_all, self.Y_all) - self.dataloader = DataLoader(dataset, batch_size=self.batchsize, shuffle=False) - self.iterator = iter(self.dataloader) - else: - self.iterator = None - - def new_batch(self): - if self.iterator is not None: - try: - X_batch, Y_batch = next(self.iterator) - except StopIteration: - # Reinitialize the iterator if it reaches the end - self.iterator = iter(self.dataloader) - X_batch, Y_batch = next(self.iterator) - return X_batch, Y_batch - else: - return self.X_all, self.Y_all - - def loss_function(self, X, Y): - K_mm = self.kernel(self.xm, self.xm) + JITTER * torch.eye(self.xm.size(0), dtype=torch.float64, - device=self.xm.device) - Lm = torch.linalg.cholesky(K_mm) - K_mm_inv = torch.cholesky_inverse(Lm) - K_mn = self.kernel(self.xm, X) - K_nm = K_mn.t() - qu_S = self.chole @ self.chole.t() + JITTER * torch.eye(self.xm.size(0), - dtype=torch.float64, - device=self.xm.device) # Ensure positive definite - Ls = torch.linalg.cholesky(qu_S) - K_nn = self.kernel(X, X).diag() - batch_size = X.size(0) - # K_nm * K_mm_inv * m, (b, 1) - mean_vector = K_nm @ K_mm_inv @ self.qu_mean - - # diag(K_tilde), (b, 1) - precision = 1 / self.log_beta.exp() - K_tilde = precision * (K_nn - (K_nm @ K_mm_inv @ K_mn).diag()) - - # k_i \cdot k_i^T, (b, m, m) - # Expand dimensions and transpose for batch - K_nm_expanded = K_nm.unsqueeze(2) # Shape (b, m, 1) - K_nm_transposed = K_nm_expanded.transpose(1, 2) # Shape (b, 1, m) - - # Perform batch matrix multiplication - lambda_mat = torch.matmul(K_nm_expanded, K_nm_transposed) # Shape (b, m, m) - # K_mm_inv \cdot k_i \cdot k_i^T \cdot K_mm_inv, (b, m, m) - lambda_mat = K_mm_inv @ lambda_mat @ K_mm_inv - # Trace terms, (b,) - batch_matrices = qu_S @ lambda_mat - traces = precision * torch.einsum('bii->b', batch_matrices) - - # Likelihood - likelihood_sum = -0.5 * batch_size * torch.log(2 * torch.tensor(PI)) + 0.5 * batch_size * torch.log( - self.log_beta.exp()) \ - - 0.5 * self.log_beta.exp() * ((Y - K_nm @ K_mm_inv @ self.qu_mean) ** 2).sum(dim=0).view(-1, - 1) - 0.5 * torch.sum( - K_tilde) - 0.5 * torch.sum(traces) - - # Compute KL - logdetS = 2 * Ls.diag().abs().log().sum() - logdetKmm = 2 * Lm.diag().abs().log().sum() - KL = 0.5 * (K_mm_inv @ qu_S).diag().sum(dim=0).view(-1, 1) + 0.5 * (self.qu_mean.t() @ K_mm_inv @ self.qu_mean) \ - - 0.5 * logdetS + 0.5 * logdetKmm - 0.5 * self.num_inducing - variational_loss = KL - likelihood_sum * self.num_data / batch_size - return variational_loss - - def forward(self, Xte): - Xte = self.normalizer.normalize(Xte, 'x') - K_mm = self.kernel(self.xm, self.xm) + JITTER * torch.eye(self.xm.size(0), dtype=torch.float64, - device=self.xm.device) - Lm = torch.linalg.cholesky(K_mm) - K_mm_inv = torch.cholesky_inverse(Lm) - K_tt = self.kernel(Xte, Xte) - K_tm = self.kernel(Xte, self.xm) - A = K_tm @ K_mm_inv # (t, m) - mean = A @ self.qu_mean # (t, 1) - yvar = K_tt - K_tm @ K_mm_inv @ K_tm.t() + K_tm @ K_mm_inv @ (self.chole @ self.chole.t()) @ K_mm_inv @ K_tm.t() - yvar = yvar.diag().view(-1, 1) - # denormalize - mean = self.normalizer.denormalize(mean, 'y') - yvar = self.normalizer.denormalize_cov(yvar, 'y') - return mean, yvar - - -if __name__ == '__main__': - # Train and evaluate the model - torch.manual_seed(4) - # Train set - num_data = 3000 - xtr, ytr, xte, yte = data.generate(num_data, 500, seed=2, input_dim=1) - device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') - xtr = xtr.to(device) - ytr = ytr.to(device) - xte = xte.to(device) - yte = yte.to(device) - - # Training the model - num_inducing = 200 - batch_size = 600 - learning_rate = 0.1 - num_epochs = 800 - # Create an instance of SVIGP - model = svgp(xtr, ytr, num_inducing=num_inducing, batchsize=batch_size).to(device) - optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate) - import time - - iteration_times = [] - for i in range(num_epochs): - start_time = time.time() - optimizer.zero_grad() - X_batch, Y_batch = model.new_batch() - loss = model.loss_function(X_batch, Y_batch) - loss.backward() - optimizer.step() - end_time = time.time() - iteration_times.append(end_time - start_time) - if i % 10 == 0: - print('iter', i, 'nll:{:.5f}'.format(loss.item())) - - average_iteration_time = sum(iteration_times) / len(iteration_times) - print(f'Average iteration time: {average_iteration_time:.5f} seconds') - # Evaluate the model on the test set - model.eval() - with torch.no_grad(): - predictions, var = model(xte) - mse = torch.mean((predictions - yte) ** 2) - print(f'Test MSE: {mse.item()}') - plt.figure() - plt.plot(xte.cpu().numpy(), yte.cpu().numpy(), 'r.') - plt.plot(xte.cpu().numpy(), predictions.cpu().numpy(), 'b-') - plt.fill_between(xte.cpu().numpy().reshape(-1), (predictions - 1.96 * var.sqrt()).cpu().numpy().reshape(-1), - (predictions + 1.96 * var.sqrt()).cpu().numpy().reshape(-1), alpha=0.2) From ad98c107449b75f37a9f8a06fc73ccf74fa68f19 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:18:56 +0800 Subject: [PATCH 02/20] Delete core/cigp_DeepKernel.py --- core/cigp_DeepKernel.py | 81 ----------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 core/cigp_DeepKernel.py diff --git a/core/cigp_DeepKernel.py b/core/cigp_DeepKernel.py deleted file mode 100644 index ef3d1a3..0000000 --- a/core/cigp_DeepKernel.py +++ /dev/null @@ -1,81 +0,0 @@ -# Conditional independent Gaussian process (CIGP) for vector output regression based on pytorch -# -# CIGP use a single kernel for each output. Thus the log likelihood is simply a sum of the log likelihood of each output. - -# Author: Wei W. Xing (wxing.me) -# Email: wayne.xingle@gmail.com -# Date: 2023-11-26 -from data_sample import generate_example_data as data -import numpy as np -import torch -import torch.nn as nn -from core.kernel import ARDKernel -import core.GP_CommonCalculation as gp_pack - -import matplotlib.pyplot as plt - -EPS = 1e-10 - - -class CIGP_DKL(nn.Module): - def __init__(self, X, Y, normal_y_mode=0): - super().__init__() - # normalize X independently for each dimension - self.normalizer = gp_pack.DataNormalization() - self.normalizer.fit(X, 'x') - self.normalizer.fit(Y, 'y') - self.X = self.normalizer.normalize(X, 'x') - self.Y = self.normalizer.normalize(Y, 'y') - - # GP hyperparameters - self.log_beta = nn.Parameter( - torch.ones(1) * 0) # a large noise by default. Smaller value makes larger noise variance. - - input_dim = self.X.shape[1] - self.kernel = ARDKernel(input_dim=input_dim) - self.FeatureExtractor = torch.nn.Sequential(nn.Linear(input_dim, input_dim * 2), - nn.LeakyReLU(), - nn.Linear(input_dim * 2, input_dim * 2), - nn.LeakyReLU(), - nn.Linear(input_dim * 2, input_dim * 2), - nn.LeakyReLU(), - nn.Linear(input_dim * 2, input_dim)) - - def forward(self, x_test): - - x_train = self.FeatureExtractor(self.X) - x_test = self.FeatureExtractor(x_test) - - K = self.kernel(x_train, x_train) + self.log_beta.exp().pow(-1) * torch.eye(self.X.shape[0]) - K_s = self.kernel(x_train, x_test) - K_ss = self.kernel(x_test, x_test) - - mu, cov = gp_pack.conditional_Gaussian(self.Y, K, K_s, K_ss) - cov = cov.sum(dim=0).view(-1, 1) + self.log_beta.exp().pow(-1) - - return mu, cov - - def negative_log_likelihood(self): - - x_train = self.FeatureExtractor(self.X) - K = self.kernel(x_train, x_train) + self.log_beta.exp().pow(-1) * torch.eye(self.X.shape[0]) - - return -gp_pack.Gaussian_log_likelihood(self.Y, K) - # modified by Wei Xing to penalize the variance term - # return gp_pack.Gaussian_log_likelihood(y_train - mean_part_train, K) / x_train.shape[0] - torch.log(self.noise_variance) * 2 - - def train_adam(self, niteration=10, lr=0.1): - optimizer = torch.optim.Adam(self.parameters(), lr=lr) - optimizer.zero_grad() - for i in range(niteration): - optimizer.zero_grad() - loss = self.negative_log_likelihood() - loss.backward() - optimizer.step() - if i % 100 == 0: - print('iter %d, loss %.3f' % (i, loss.item())) - return loss - - def print_parameters(self): - for name, param in self.named_parameters(): - print(f"Parameter name: {name}, shape: {param.shape}") From 601785cf438323bcfda0f6a71ffaec29463c16f8 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 10:15:19 +0800 Subject: [PATCH 03/20] update structure --- GPmodels_Classic/01_simpleGP.ipynb | 456 ++++++++++++++----- GPmodels_Classic/04_neuralKernelGP.ipynb | 2 +- asset/Model_comparison.py | 2 +- asset/Regression_test.py | 6 +- autoGP_demo.ipynb | 200 ++++++++ core/deepkernelGP.py | 3 - core/{hogp.py => highOrderGP.py} | 2 +- core/inputWarpedGP.py | 2 +- core/kernel.py | 8 +- core/{cigp_baseline.py => simpleGP.py} | 10 +- core/{svgp.py => stochasticVariationalGP.py} | 5 +- core/{sgpr.py => variationalSparseGP.py} | 0 12 files changed, 564 insertions(+), 132 deletions(-) create mode 100644 autoGP_demo.ipynb rename core/{hogp.py => highOrderGP.py} (99%) rename core/{cigp_baseline.py => simpleGP.py} (96%) rename core/{svgp.py => stochasticVariationalGP.py} (97%) rename core/{sgpr.py => variationalSparseGP.py} (100%) diff --git a/GPmodels_Classic/01_simpleGP.ipynb b/GPmodels_Classic/01_simpleGP.ipynb index 5bdb840..2c0ea7d 100644 --- a/GPmodels_Classic/01_simpleGP.ipynb +++ b/GPmodels_Classic/01_simpleGP.ipynb @@ -2,8 +2,13 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, - "metadata": {}, + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:12.701025900Z", + "start_time": "2024-08-20T08:45:09.968582400Z" + } + }, "outputs": [], "source": [ "import os\n", @@ -24,12 +29,24 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:22.621167100Z", + "start_time": "2024-08-20T08:45:22.482207700Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [ { "data": { - "text/plain": "
", - "image/png": "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" + "image/png": "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", + "text/plain": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -39,18 +56,21 @@ " # generate example data\n", "xtr, ytr, xte, yte = data.generate(32, 100, seed=42)\n", "data.plot(xtr, ytr, xte, yte, figsize=(6, 4))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:49.372103500Z", - "start_time": "2024-07-30T08:46:49.277502500Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:22.678289600Z", + "start_time": "2024-08-20T08:45:22.641033700Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "normalizer = GP.DataNormalization(method=\"standard\", mode=0, learnable=False)\n", @@ -58,67 +78,79 @@ "normalizer.fit(ytr, 'ytr')\n", "xtr = normalizer.normalize(xtr, 'xtr')\n", "ytr = normalizer.normalize(ytr, 'ytr')" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:51.639597100Z", - "start_time": "2024-07-30T08:46:51.623879400Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 9, - "outputs": [], - "source": [ - "kernel = ARDKernel(1)" - ], + "execution_count": 4, "metadata": { - "collapsed": false, "ExecuteTime": { - "end_time": "2024-07-30T08:46:51.911183300Z", - "start_time": "2024-07-30T08:46:51.901441900Z" + "end_time": "2024-08-20T08:45:22.843437700Z", + "start_time": "2024-08-20T08:45:22.813096500Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false } - } + }, + "outputs": [], + "source": [ + "kernel = ARDKernel(1)" + ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:22.994462Z", + "start_time": "2024-08-20T08:45:22.987954200Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "#initiate_log_beta\n", "log_beta = nn.Parameter(torch.ones(1) * -4) # this is a large noise. we optimize to shrink it to a proper value." - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:52.142889600Z", - "start_time": "2024-07-30T08:46:52.133213400Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:23.167157900Z", + "start_time": "2024-08-20T08:45:23.161154Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "def negative_log_likelihood(xtr, ytr, kernel, log_beta):\n", " Sigma = kernel(xtr, xtr) + log_beta.exp().pow(-1) * torch.eye(\n", " xtr.size(0)) + JITTER * torch.eye(xtr.size(0))\n", " return -GP.Gaussian_log_likelihood(ytr, Sigma)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:52.337243800Z", - "start_time": "2024-07-30T08:46:52.322077100Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:23.345573Z", + "start_time": "2024-08-20T08:45:23.339084900Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "def forward(xtr, ytr, xte, kernel, log_beta):\n", @@ -139,18 +171,21 @@ " mean = normalizer.denormalize(mean, \"ytr\")\n", " var_diag = normalizer.denormalize_cov(var_diag, \"ytr\")\n", " return mean, var_diag" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:52.512902400Z", - "start_time": "2024-07-30T08:46:52.498325900Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:23.510132300Z", + "start_time": "2024-08-20T08:45:23.504624400Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "def train_adam(xtr, ytr, kernel, log_beta, niteration=10, lr=0.1):\n", @@ -173,18 +208,21 @@ "\n", " #print('log_beta:', log_beta.data)\n", " print('iter', i, 'nll:{:.5f}'.format(loss.item()))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:52.672361100Z", - "start_time": "2024-07-30T08:46:52.665150600Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:25.054623900Z", + "start_time": "2024-08-20T08:45:23.672951100Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [ { "name": "stdout", @@ -196,55 +234,66 @@ ], "source": [ "train_adam(xtr, ytr, kernel, log_beta, niteration=100, lr=0.1)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:54.212434400Z", - "start_time": "2024-07-30T08:46:52.845961900Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:25.061272200Z", + "start_time": "2024-08-20T08:45:25.056624600Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "with torch.no_grad():\n", " ypred, yvar = forward(xtr, ytr, xte, kernel, log_beta)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:54.216956700Z", - "start_time": "2024-07-30T08:46:54.213434400Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:25.066930400Z", + "start_time": "2024-08-20T08:45:25.062272300Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [], "source": [ "xtr = normalizer.denormalize(xtr, 'xtr')\n", "ytr = normalizer.denormalize(ytr, 'ytr')" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:46:54.224062500Z", - "start_time": "2024-07-30T08:46:54.218993100Z" - } - } + ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:25.173383800Z", + "start_time": "2024-08-20T08:45:25.069931200Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, "outputs": [ { "data": { - "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAGdCAYAAADT1TPdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe+UlEQVR4nO3deXhb5Zk28Psc7ZIlWd5kO3YSZ19JWEogYQlLAoGytAMtLe1Ap0NhKG0hHwVS+gFpC/mAkjIdCkyXoWUaCqVQSkuAhAJhXxIIhDj76njftO/nnO8P2Y5N7MSSJZ0j6f5dly7HspY3x5bOo+d93ucVFEVRQERERKRRotoDICIiIjoaBitERESkaQxWiIiISNMYrBAREZGmMVghIiIiTWOwQkRERJrGYIWIiIg0jcEKERERaZpe7QGMlSzLaGlpgd1uhyAIag+HiIiIRkFRFPj9ftTW1kIUj547yftgpaWlBfX19WoPg4iIiNLQ1NSEurq6o94m74MVu90OIPmfdTgcKo+GiIiIRsPn86G+vn7gPH40eR+s9E/9OBwOBitERER5ZjQlHCywJSIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrRERENCJJVtQeAoMVIiIiGp6iKOgJxtQeBoMVIiIiGl5vKI6ELKs9DAYrRERENLyuQFTtIQBgsEJERETD8EXiiMbVz6oADFaIiIhoGJ1+bWRVAAYrRERE9DmhWAKhqKT2MAYwWCEiIqIhtJRVARisEBER0SCRuARfOKH2MIZgsEJEREQDtLICaDAGK0RERAQASEgyPKG42sM4AoMVIiIiAgD0hGJQ1O+ufwQGK0RERKSZ1vrDYbBCRERE8EUSiCc0mFYBgxUiIiICNJtVARisEBERFb1IXEIgoq3lyoNlNVhZtWoVvvCFL8But6OqqgqXXnopduzYMeQ2iqLgrrvuQm1tLSwWCxYvXoytW7dmc1hEREQ0iJazKkCWg5UNGzbgu9/9Lt577z2sX78eiUQCS5cuRTAYHLjNfffdh9WrV+Ohhx7Chx9+iOrqaixZsgR+vz+bQyMiIiIAsqygN6TtYEVQlNwtUurs7ERVVRU2bNiAM844A4qioLa2FjfeeCNuvfVWAEA0GoXb7ca9996La6+99piP6fP54HQ64fV64XA4sv1fICIiKig9wRiae8Mj/rzCbkSN05Lx503l/J3TmhWv1wsAKCsrAwDs27cPbW1tWLp06cBtTCYTzjzzTLzzzjvDPkY0GoXP5xtyISIiovR0a7Bj7eflLFhRFAXLly/Haaedhjlz5gAA2traAABut3vIbd1u98DPPm/VqlVwOp0Dl/r6+uwOnIiIqEAFowlE4rLawzimnAUrN9xwAz799FP86U9/OuJngiAM+V5RlCOu67dixQp4vd6BS1NTU1bGS0REVOi0XljbT5+LJ/ne976H559/Hm+88Qbq6uoGrq+urgaQzLDU1NQMXN/R0XFEtqWfyWSCyWTK7oCJiIgKXEKS4Q1rbx+g4WQ1s6IoCm644QY8++yzePXVV9HQ0DDk5w0NDaiursb69esHrovFYtiwYQMWLlyYzaEREREVNU84rsl9gIaT1czKd7/7XTzxxBP429/+BrvdPlCH4nQ6YbFYIAgCbrzxRtxzzz2YOnUqpk6dinvuuQdWqxVf//rXszk0IiKiotabJ1NAQJaDlUceeQQAsHjx4iHXP/bYY7j66qsBALfccgvC4TCuv/569Pb2YsGCBVi3bh3sdns2h0ZERFS0wjEpLwpr++W0z0o2sM8KERFRapo9YfQERpdZKbo+K0RERKQuWVbg0XjH2s9jsEJERFREvOE45PyZAQLAYIWIiKio9ORZVgVgsEJERFQ0InEJoaik9jBSxmCFiIioSGh9d+WRMFghIiIqAoqiwBPKj461n8dghYiIqAj4IgkkpPzsVsJghYiIqAjk23LlwRisEBERFbiEJMMfSag9jLQxWCEiIipw3jzatHA4DFaIiIgKXG+eFtb2Y7BCRERUwCJxCeFY/vVWGYzBChERUQHL1+XKgzFYISIiKmD52ghuMAYrREREBcofiedtb5XBGKwQEREVqEKYAgIYrBARERUkSVbgDTNYISIiIo3y5XlvlcEYrBARERWgQiis7cdghYiIqMDEEjKC0fzurTIYgxUiIqIC4wkXTlYFYLBCRERUcAplFVA/BitEREQFJByTEI3Lag8joxisEBERFZBCmwICGKwQEREVlEKbAgIYrBARERWMQmmv/3kMVoiIiApEIWZVAAYrREREBUEuoPb6n8dghYiIqAD4IoXT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1YWampqsjTefpXOsP++BBx5AMBjEV77ylWwMsSCkc5x37dqF2267DW+++Sb0+qJ8K0hZOsd57969eOutt2A2m/HXv/4VXV1duP7669HT08O6lRGkc5wXLlyINWvW4Ktf/SoikQgSiQQuvvhi/Nd//Vcuhlw01DoXFmVmpZ8gCEO+VxTliOuOdfvhrqcjpXqs+/3pT3/CXXfdhaeeegpVVVXZGl7BGO1xliQJX//617Fy5UpMmzYtV8MrGKn8PcuyDEEQsGbNGpx88sm44IILsHr1avz+979nduUYUjnOjY2N+P73v4877rgDmzZtwksvvYR9+/bhuuuuy8VQi4oa58Ki/DhVUVEBnU53RITe0dFxRMTYr7q6etjb6/V6lJeXZ22s+S6dY93vqaeewre//W08/fTTOPfcc7M5zLyX6nH2+/3YuHEjPv74Y9xwww0AkidVRVGg1+uxbt06nH322TkZez5J5++5pqYG48aNg9PpHLhu5syZUBQFhw4dwtSpU7M65nyUznFetWoVFi1ahB/+8IcAgOOOOw42mw2nn346fvaznzH7nSFqnQuLMrNiNBpx4oknYv369UOuX79+PRYuXDjsfU499dQjbr9u3TqcdNJJMBgMWRtrvkvnWAPJjMrVV1+NJ554gnPOo5DqcXY4HNiyZQs2b948cLnuuuswffp0bN68GQsWLMjV0PNKOn/PixYtQktLCwKBwMB1O3fuhCiKqKury+p481U6xzkUCkEUh57SdDodgMOf/GnsVDsXZrV8V8P6l8X97ne/UxobG5Ubb7xRsdlsyv79+xVFUZTbbrtN+eY3vzlw+/7lWjfddJPS2Nio/O53v+PS5VFK9Vg/8cQTil6vV371q18pra2tAxePx6PWfyEvpHqcP4+rgUYn1ePs9/uVuro65bLLLlO2bt2qbNiwQZk6dary7//+72r9F/JCqsf5scceU/R6vfLwww8re/bsUd566y3lpJNOUk4++WS1/gt5we/3Kx9//LHy8ccfKwCU1atXKx9//PHAEnGtnAuLNlhRFEX51a9+pUyYMEExGo3KCSecoGzYsGHgZ1dddZVy5plnDrn966+/rhx//PGK0WhUJk6cqDzyyCM5HnH+SuVYn3nmmQqAIy5XXXVV7geeZ1L9mx6MwcropXqct23bppx77rmKxWJR6urqlOXLlyuhUCjHo84/qR7nX/7yl8qsWbMUi8Wi1NTUKFdeeaVy6NChHI86v7z22mtHfb/VyrlQUBTmx4iIiEi7irJmhYiIiPIHgxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjT/j+J59mTtmF5WQAAAABJRU5ErkJggg==" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAGdCAYAAADT1TPdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe+UlEQVR4nO3deXhb5Zk28Psc7ZIlWd5kO3YSZ19JWEogYQlLAoGytAMtLe1Ap0NhKG0hHwVS+gFpC/mAkjIdCkyXoWUaCqVQSkuAhAJhXxIIhDj76njftO/nnO8P2Y5N7MSSJZ0j6f5dly7HspY3x5bOo+d93ucVFEVRQERERKRRotoDICIiIjoaBitERESkaQxWiIiISNMYrBAREZGmMVghIiIiTWOwQkRERJrGYIWIiIg0jcEKERERaZpe7QGMlSzLaGlpgd1uhyAIag+HiIiIRkFRFPj9ftTW1kIUj547yftgpaWlBfX19WoPg4iIiNLQ1NSEurq6o94m74MVu90OIPmfdTgcKo+GiIiIRsPn86G+vn7gPH40eR+s9E/9OBwOBitERER5ZjQlHCywJSIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrRERENCJJVtQeAoMVIiIiGp6iKOgJxtQeBoMVIiIiGl5vKI6ELKs9DAYrRERENLyuQFTtIQBgsEJERETD8EXiiMbVz6oADFaIiIhoGJ1+bWRVAAYrRERE9DmhWAKhqKT2MAYwWCEiIqIhtJRVARisEBER0SCRuARfOKH2MIZgsEJEREQDtLICaDAGK0RERAQASEgyPKG42sM4AoMVIiIiAgD0hGJQ1O+ufwQGK0RERKSZ1vrDYbBCRERE8EUSiCc0mFYBgxUiIiICNJtVARisEBERFb1IXEIgoq3lyoNlNVhZtWoVvvCFL8But6OqqgqXXnopduzYMeQ2iqLgrrvuQm1tLSwWCxYvXoytW7dmc1hEREQ0iJazKkCWg5UNGzbgu9/9Lt577z2sX78eiUQCS5cuRTAYHLjNfffdh9WrV+Ohhx7Chx9+iOrqaixZsgR+vz+bQyMiIiIAsqygN6TtYEVQlNwtUurs7ERVVRU2bNiAM844A4qioLa2FjfeeCNuvfVWAEA0GoXb7ca9996La6+99piP6fP54HQ64fV64XA4sv1fICIiKig9wRiae8Mj/rzCbkSN05Lx503l/J3TmhWv1wsAKCsrAwDs27cPbW1tWLp06cBtTCYTzjzzTLzzzjvDPkY0GoXP5xtyISIiovR0a7Bj7eflLFhRFAXLly/Haaedhjlz5gAA2traAABut3vIbd1u98DPPm/VqlVwOp0Dl/r6+uwOnIiIqEAFowlE4rLawzimnAUrN9xwAz799FP86U9/OuJngiAM+V5RlCOu67dixQp4vd6BS1NTU1bGS0REVOi0XljbT5+LJ/ne976H559/Hm+88Qbq6uoGrq+urgaQzLDU1NQMXN/R0XFEtqWfyWSCyWTK7oCJiIgKXEKS4Q1rbx+g4WQ1s6IoCm644QY8++yzePXVV9HQ0DDk5w0NDaiursb69esHrovFYtiwYQMWLlyYzaEREREVNU84rsl9gIaT1czKd7/7XTzxxBP429/+BrvdPlCH4nQ6YbFYIAgCbrzxRtxzzz2YOnUqpk6dinvuuQdWqxVf//rXszk0IiKiotabJ1NAQJaDlUceeQQAsHjx4iHXP/bYY7j66qsBALfccgvC4TCuv/569Pb2YsGCBVi3bh3sdns2h0ZERFS0wjEpLwpr++W0z0o2sM8KERFRapo9YfQERpdZKbo+K0RERKQuWVbg0XjH2s9jsEJERFREvOE45PyZAQLAYIWIiKio9ORZVgVgsEJERFQ0InEJoaik9jBSxmCFiIioSGh9d+WRMFghIiIqAoqiwBPKj461n8dghYiIqAj4IgkkpPzsVsJghYiIqAjk23LlwRisEBERFbiEJMMfSag9jLQxWCEiIipw3jzatHA4DFaIiIgKXG+eFtb2Y7BCRERUwCJxCeFY/vVWGYzBChERUQHL1+XKgzFYISIiKmD52ghuMAYrREREBcofiedtb5XBGKwQEREVqEKYAgIYrBARERUkSVbgDTNYISIiIo3y5XlvlcEYrBARERWgQiis7cdghYiIqMDEEjKC0fzurTIYgxUiIqIC4wkXTlYFYLBCRERUcAplFVA/BitEREQFJByTEI3Lag8joxisEBERFZBCmwICGKwQEREVlEKbAgIYrBARERWMQmmv/3kMVoiIiApEIWZVAAYrREREBUEuoPb6n8dghYiIqAD4IoXT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1YWampqsjTefpXOsP++BBx5AMBjEV77ylWwMsSCkc5x37dqF2267DW+++Sb0+qJ8K0hZOsd57969eOutt2A2m/HXv/4VXV1duP7669HT08O6lRGkc5wXLlyINWvW4Ktf/SoikQgSiQQuvvhi/Nd//Vcuhlw01DoXFmVmpZ8gCEO+VxTliOuOdfvhrqcjpXqs+/3pT3/CXXfdhaeeegpVVVXZGl7BGO1xliQJX//617Fy5UpMmzYtV8MrGKn8PcuyDEEQsGbNGpx88sm44IILsHr1avz+979nduUYUjnOjY2N+P73v4877rgDmzZtwksvvYR9+/bhuuuuy8VQi4oa58Ki/DhVUVEBnU53RITe0dFxRMTYr7q6etjb6/V6lJeXZ22s+S6dY93vqaeewre//W08/fTTOPfcc7M5zLyX6nH2+/3YuHEjPv74Y9xwww0AkidVRVGg1+uxbt06nH322TkZez5J5++5pqYG48aNg9PpHLhu5syZUBQFhw4dwtSpU7M65nyUznFetWoVFi1ahB/+8IcAgOOOOw42mw2nn346fvaznzH7nSFqnQuLMrNiNBpx4oknYv369UOuX79+PRYuXDjsfU499dQjbr9u3TqcdNJJMBgMWRtrvkvnWAPJjMrVV1+NJ554gnPOo5DqcXY4HNiyZQs2b948cLnuuuswffp0bN68GQsWLMjV0PNKOn/PixYtQktLCwKBwMB1O3fuhCiKqKury+p481U6xzkUCkEUh57SdDodgMOf/GnsVDsXZrV8V8P6l8X97ne/UxobG5Ubb7xRsdlsyv79+xVFUZTbbrtN+eY3vzlw+/7lWjfddJPS2Nio/O53v+PS5VFK9Vg/8cQTil6vV371q18pra2tAxePx6PWfyEvpHqcP4+rgUYn1ePs9/uVuro65bLLLlO2bt2qbNiwQZk6dary7//+72r9F/JCqsf5scceU/R6vfLwww8re/bsUd566y3lpJNOUk4++WS1/gt5we/3Kx9//LHy8ccfKwCU1atXKx9//PHAEnGtnAuLNlhRFEX51a9+pUyYMEExGo3KCSecoGzYsGHgZ1dddZVy5plnDrn966+/rhx//PGK0WhUJk6cqDzyyCM5HnH+SuVYn3nmmQqAIy5XXXVV7geeZ1L9mx6MwcropXqct23bppx77rmKxWJR6urqlOXLlyuhUCjHo84/qR7nX/7yl8qsWbMUi8Wi1NTUKFdeeaVy6NChHI86v7z22mtHfb/VyrlQUBTmx4iIiEi7irJmhYiIiPIHgxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjT/j+J59mTtmF5WQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -258,35 +307,220 @@ "plt.plot(xte.squeeze().numpy(), ypred.squeeze().detach().numpy(), label='Predictive mean')\n", "plt.plot(xtr.detach().numpy(), ytr.detach().numpy(), 'b+')\n", "plt.show()" - ], + ] + }, + { + "cell_type": "code", + "execution_count": 5, "metadata": { + "ExecuteTime": { + "end_time": "2024-08-20T08:45:25.177864400Z", + "start_time": "2024-08-20T08:45:25.173887900Z" + }, "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "iter 0 nll:588.80095\n", + "iter 10 nll:150.93247\n", + "iter 20 nll:31.71950\n", + "iter 30 nll:-33.95577\n", + "iter 40 nll:-38.68688\n", + "iter 50 nll:-48.13526\n", + "iter 60 nll:-49.87885\n", + "iter 70 nll:-50.39096\n", + "iter 80 nll:-50.49309\n", + "iter 90 nll:-50.64249\n", + "iter 100 nll:-50.70226\n", + "iter 110 nll:-50.75017\n", + "iter 120 nll:-50.77841\n", + "iter 130 nll:-50.80850\n", + "iter 140 nll:-50.83808\n", + "iter 150 nll:-50.86548\n", + "iter 160 nll:-50.89053\n", + "iter 170 nll:-50.91314\n", + "iter 180 nll:-50.93285\n", + "iter 190 nll:-50.94937\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

Weight for ARD kernel: 0.00011614150981414522

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

Weight for Linear kernel: 0.016984231171673324

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

Weight for Periodic kernel: 4.258140421145017

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "

Weight for RationalQuadratic kernel: 0.00011278752915021044

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import time\n", + "import core.GP_CommonCalculation as GP\n", + "from data_sample import generate_example_data as data\n", + "from core.cigp_baseline import cigp\n", + "from core.kernel import NeuralKernel, ARDKernel\n", + "import matplotlib.pyplot as plt\n", + "JITTER = 1e-6\n", + "EPS = 1e-10\n", + "PI = 3.1415\n", + "torch.set_default_dtype(torch.float64)\n", + "torch.manual_seed(0)\n", + "xtr= torch.rand(200,1)*20\n", + "ytr= torch.sin(xtr)+torch.randn_like(xtr)*0.1\n", + "xte= torch.linspace(0,20,500).unsqueeze(-1)\n", + "yte= torch.sin(xte)+torch.randn_like(xte)*0.1\n", + "\n", + "normalizer= GP.DataNormalization()\n", + "normalizer.fit(xtr,'x')\n", + "normalizer.fit(ytr,'y')\n", + "xtr_normalized= normalizer.normalize(xtr,'x')\n", + "ytr_normalized= normalizer.normalize(ytr,'y')\n", + "xte_normalized= normalizer.normalize(xte,'x')\n", + "\n", + "model=cigp(kernel=NeuralKernel(1))\n", + "model.train_adam(xtr_normalized,ytr_normalized,200,1)\n", + "model.eval()\n", + "y_pred,yvar=model.forward(xtr_normalized,ytr_normalized,xte_normalized)\n", + "y_pred= normalizer.denormalize(y_pred,'y').detach()\n", + "yvar= normalizer.denormalize_cov(yvar,'y')\n", + "ystd= torch.sqrt(yvar)\n", + "plt.scatter(xtr.cpu().numpy(),ytr.cpu().numpy(),label='Training Data', color='b', marker='+')\n", + "plt.plot(xte.cpu().numpy(),y_pred.cpu().numpy(),label='Predicted')\n", + "plt.fill_between(xte.cpu().numpy().squeeze(),(y_pred-1.96*ystd).cpu().detach().numpy().squeeze(),(y_pred+1.96*ystd).cpu().detach().numpy().squeeze(),alpha=0.3,label='95% Confidence Interval')\n", + "plt.legend()\n", + "plt.show()\n", + "from IPython.display import display, HTML\n", + "softplus=nn.Softplus()\n", + "for name, param in model.kernel.weights.items():\n", + " display(HTML(f\"

Weight for {name} kernel: {softplus(param).item()}

\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { "ExecuteTime": { - "end_time": "2024-07-30T08:46:56.939462Z", - "start_time": "2024-07-30T08:46:56.854832500Z" + "end_time": "2024-08-20T08:45:25.178864600Z", + "start_time": "2024-08-20T08:45:25.176861600Z" + }, + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "

Weight for Example kernel: 0.5

" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" } - } + ], + "source": [ + "from IPython.display import display, HTML\n", + "\n", + "name = \"Example\"\n", + "param = 0.5 # Example value\n", + "model = lambda x: x # Example model for the sake of illustration\n", + "\n", + "display(HTML(f\"

Weight for {name} kernel: {model(param)}

\"))\n" + ] }, { "cell_type": "code", "execution_count": null, - "outputs": [], - "source": [], "metadata": { - "collapsed": false - } + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [] } ], "metadata": { - "language_info": { - "name": "python" - }, "kernelspec": { - "name": "python3", + "display_name": "Python 3 (ipykernel)", "language": "python", - "display_name": "Python 3 (ipykernel)" + "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.11.7" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/GPmodels_Classic/04_neuralKernelGP.ipynb b/GPmodels_Classic/04_neuralKernelGP.ipynb index 244414b..3340362 100644 --- a/GPmodels_Classic/04_neuralKernelGP.ipynb +++ b/GPmodels_Classic/04_neuralKernelGP.ipynb @@ -36,7 +36,7 @@ "import core.GP_CommonCalculation as GP\n", "from core.kernel import RBFKernel, LinearKernel, ARDKernel,RationalQuadraticKernel, PeriodicKernel\n", "import numpy as np\n", - "from core.cigp_baseline import cigp\n", + "from core.simpleGP import cigp\n", "# I use torch (1.11.0) for this work. lower version may not work.\n", "import os\n", "\n", diff --git a/asset/Model_comparison.py b/asset/Model_comparison.py index 9b4a789..451c419 100644 --- a/asset/Model_comparison.py +++ b/asset/Model_comparison.py @@ -5,7 +5,7 @@ from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score from core.autoGP import autoGP -from core.sgpr import vsgp +from core.variationalSparseGP import vsgp from core.kernel import ARDKernel, NeuralKernel import core.GP_CommonCalculation as GP torch.set_default_dtype(torch.float64) diff --git a/asset/Regression_test.py b/asset/Regression_test.py index 819d839..b4f36fa 100644 --- a/asset/Regression_test.py +++ b/asset/Regression_test.py @@ -7,9 +7,9 @@ from matplotlib import pyplot as plt import data_sample.generate_example_data as data from core.parametricGP import parametricGP -from core.svgp import svgp -from core.cigp_baseline import cigp -from core.sgpr import vsgp +from core.stochasticVariationalGP import svgp +from core.simpleGP import cigp +from core.variationalSparseGP import vsgp from torch.utils.data import DataLoader, TensorDataset import core.GP_CommonCalculation as GP from core.kernel import ARDKernel diff --git a/autoGP_demo.ipynb b/autoGP_demo.ipynb new file mode 100644 index 0000000..d130aa1 --- /dev/null +++ b/autoGP_demo.ipynb @@ -0,0 +1,200 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2024-08-21T02:07:52.027530500Z", + "start_time": "2024-08-21T02:07:52.015526Z" + } + }, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "from core.kernel import NeuralKernel\n", + "import core.GP_CommonCalculation as GP\n", + "from data_sample import generate_example_data as data\n", + "from core.autoGP import autoGP" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0YAAAH5CAYAAAClJy6RAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChCElEQVR4nOzdeXjU1fn38fckJCGEEJYEGCDsJARkS1AMiiCoIAoq1qoVta2FWLtZqrb+SgtYWp/WarXWaqC2VrEurWKlbqAIooBCwk4Ii+wMELaEACEkmeePw2RmkkkySWYySz6v65prJrOe+WYC5577Pvex2O12OyIiIiIiIs1YRKAHICIiIiIiEmgKjEREREREpNlTYCQiIiIiIs2eAiMREREREWn2FBiJiIiIiEizp8BIRERERESaPQVGIiIiIiLS7LUI9AB8raKigkOHDhEfH4/FYgn0cEREREREJEDsdjunT5+mS5cuRETUnhMKu8Do0KFDJCcnB3oYIiIiIiISJPbv30+3bt1qvU/YBUbx8fGAefNt2rQJ8GhERERERCRQioqKSE5OrowRahN2gZGjfK5NmzYKjERERERExKslNmq+ICIiIiIizZ4CIxERERERafYUGImIiIiISLMXdmuMvFVeXs6FCxcCPQwJU1FRUURGRgZ6GCIiIiLipWYXGNntdg4fPsypU6cCPRQJc23btqVz587aT0tEREQkBDS7wMgRFHXs2JFWrVpp0io+Z7fbOXv2LEePHgXAarUGeEQiIiIiUpdmFRiVl5dXBkUdOnQI9HAkjMXGxgJw9OhROnbsqLI6ERERkSDXrJovONYUtWrVKsAjkebA8TnTWjYRERGR4NesAiMHlc9JU9DnTERERCR0NMvASERERERExJUCo2ZszJgxPPjgg17ff8+ePVgsFtavX++3MdVk2bJlWCwWdRMUEREREb9oVs0XQlVdJVn33nsvL730Ur2f9+233yYqKsrr+ycnJ2Oz2UhMTKz3awXCmDFjGDp0KE8//XSghyIiIiIiQU6BUSPYbJCdDVlZ4M+OzDabrfLyG2+8wa9//Wvy8/Mrr3N0QHO4cOGCVwFP+/bt6zWOyMhIOnfuXK/HiIiIiIiEApXSNYLNBnPmmHN/6ty5c+UpISEBi8VS+XNJSQlt27blzTffZMyYMbRs2ZIFCxZw/Phx7rzzTrp160arVq0YNGgQr732mtvzVi2l69mzJ7/73e/47ne/S3x8PN27d2fevHmVt1ctpXOUt33yyScMHz6cVq1aMXLkSLegDWDu3Ll07NiR+Ph4vve97/GLX/yCoUOH1vqe33//fVJSUoiNjeXqq69mz549brfX9f6+/e1vs3z5cp555hksFgsWi4U9e/ZQXl7OfffdR69evYiNjSU1NZVnnnnG+1+GiIiIiIQlBUZh4uc//zk//vGPycvLY/z48ZSUlJCRkcH//vc/Nm/ezPTp07n77rv58ssva32eJ598kuHDh7Nu3ToeeOABvv/977Nt27ZaH/PLX/6SJ598krVr19KiRQu++93vVt726quv8tvf/pbf//735OTk0L17d55//vlan2///v1MmTKFiRMnsn79+spgylVd7++ZZ54hMzOTadOmYbPZsNlsJCcnU1FRQbdu3XjzzTfZunUrv/71r/m///s/3nzzzVrHJCIiTcdmg9mz/f/Fo4iIK5XS1ZPN5vyHOjfX/RxMSZ0/y+pq8uCDDzJlyhS36x566KHKyz/60Y/48MMP+fe//82IESNqfJ6JEyfywAMPACbY+tOf/sSyZcvo379/jY/57W9/y+jRowH4xS9+wQ033EBJSQktW7bk2Wef5b777uM73/kOAL/+9a9ZvHgxxcXFNT7f888/T+/evfnTn/6ExWIhNTWVTZs28fvf/77yPl27dq31/SUkJBAdHU2rVq3cyv8iIyOZM2dO5c+9evVi5cqVvPnmm3zzm9+scUwiItJ0HBUZkycH5v9UEWmelDGqp+xsyMgwp2nTzHXTpjmvy84OzLiGDx/u9nN5eTm//e1vGTx4MB06dKB169YsXryYffv21fo8gwcPrrzsKNk7evSo14+xXvwfzPGY/Px8LrvsMrf7V/25qry8PC6//HK3phOZmZlu92no+wN44YUXGD58OElJSbRu3Zr58+d79TgRERERCV/KGNVTVpb5BgtMpmjaNJg/H9LTzXWB+mYrLi7O7ecnn3ySP/3pTzz99NMMGjSIuLg4HnzwQUpLS2t9nqpNGywWCxUVFV4/xhHMuD6malc9u91e6/PVdTs0/P29+eab/PSnP+XJJ58kMzOT+Ph4nnjiiTpLDEVExL+CtSJDpKk1VXMvqU6BUT15+oc5Pd0ZGAWLFStWcNNNNzF16lTABCo7duwgLS2tSceR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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "xtr, ytr, xte, yte, x_combined, y_combined = data.generate_complex_data(600, seed=1)\n", + "\n", + "data.plot(xtr, ytr, x_combined, y_combined)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T02:07:52.475990700Z", + "start_time": "2024-08-21T02:07:52.369865500Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 21, + "outputs": [], + "source": [ + "device = torch.device('cuda')\n", + "xtr, ytr, xte, yte = xtr.to(device), ytr.to(device), xte.to(device), yte.to(device)\n", + "\n", + "# Normalize the data outside the model\n", + "normalizer = GP.DataNormalization(method='min_max').to(device)\n", + "normalizer.fit(xtr, 'x')\n", + "normalizer.fit(ytr, 'y')\n", + "normalizer.fit(xte, 'xte')\n", + "xtr_normalized = normalizer.normalize(xtr, 'x')\n", + "ytr_normalized = normalizer.normalize(ytr, 'y')\n", + "xte_normalized = normalizer.normalize(xte, 'xte')" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T02:07:53.128636300Z", + "start_time": "2024-08-21T02:07:53.107155200Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 22, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "AutoGP training completed in 5.17 seconds\n" + ] + } + ], + "source": [ + "model = autoGP(input_dim=xtr_normalized.size(1), device=device, kernel=NeuralKernel, inputwarp=False,\n", + " deepkernel=False).to(device)\n", + "\n", + "model.train_auto(xtr_normalized, ytr_normalized)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T02:07:58.684523500Z", + "start_time": "2024-08-21T02:07:53.507124800Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 23, + "outputs": [], + "source": [ + "mean, var = model.forward(xtr_normalized, ytr_normalized, xte_normalized)\n", + "mean = normalizer.denormalize(mean, 'y')\n", + "var = normalizer.denormalize_cov(var, 'y')" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T02:07:58.703231400Z", + "start_time": "2024-08-21T02:07:58.685524400Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 27, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MSE for autoGP: 0.003164923737775443\n" + ] + }, + { + "data": { + "text/plain": "
", + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mse = torch.mean((mean - yte) ** 2)\n", + "print(f'MSE for autoGP: {mse.item()}')\n", + "\n", + "# Sort xte and get the sorted indices\n", + "sorted_indices = torch.argsort(xte.squeeze())\n", + "\n", + "# Apply the sorted indices to xte, ypred, and yvar\n", + "xte_sorted = xte[sorted_indices]\n", + "yte_sorted = yte[sorted_indices]\n", + "mean_sorted = mean[sorted_indices]\n", + "yvar_sorted = var[sorted_indices]\n", + "std_sorted = torch.sqrt(yvar_sorted)\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.scatter(xtr.cpu().numpy(), ytr.cpu().numpy(), color='r',label='Train',marker='+')\n", + "plt.plot(xte_sorted.cpu().numpy(), yte_sorted.cpu().numpy(), label='True')\n", + "plt.plot(xte_sorted.cpu().numpy(), mean_sorted.detach().cpu().numpy(), label='Predicted')\n", + "\n", + "plt.fill_between(xte_sorted.cpu().numpy().squeeze(), (mean_sorted - 1.96 * std_sorted).cpu().detach().numpy().squeeze(),\n", + " (mean_sorted + 1.96 * std_sorted).cpu().detach().numpy().squeeze(), alpha=0.3, label='95% Confidence Interval')\n", + "plt.legend()\n", + "plt.show()" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T02:09:04.985520400Z", + "start_time": "2024-08-21T02:09:04.869460200Z" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/core/deepkernelGP.py b/core/deepkernelGP.py index 5979879..a09f105 100644 --- a/core/deepkernelGP.py +++ b/core/deepkernelGP.py @@ -1,6 +1,3 @@ -# Conditional independent Gaussian process (CIGP) for vector output regression based on pytorch -# -# CIGP use a single kernel for each output. Thus the log likelihood is simply a sum of the log likelihood of each output. # Author: Wei W. Xing (wxing.me) # Email: wayne.xingle@gmail.com diff --git a/core/hogp.py b/core/highOrderGP.py similarity index 99% rename from core/hogp.py rename to core/highOrderGP.py index c0e76e2..0bc63a9 100644 --- a/core/hogp.py +++ b/core/highOrderGP.py @@ -1,3 +1,4 @@ +## This is the implementation of the high order GP model. import numpy as np import torch import torch.nn as nn @@ -5,7 +6,6 @@ import tensorly import math import os -import matplotlib.pyplot as plt import unittest from tensorly import tucker_to_tensor diff --git a/core/inputWarpedGP.py b/core/inputWarpedGP.py index 3a664c7..384967d 100644 --- a/core/inputWarpedGP.py +++ b/core/inputWarpedGP.py @@ -8,7 +8,7 @@ # I use torch (1.11.0) for this work. lower version may not work. from core.kernel import ARDKernel import os -from core.cigp_baseline import cigp +from core.simpleGP import cigp os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS JITTER = 1e-6 diff --git a/core/kernel.py b/core/kernel.py index 80bf2a1..fe9dc03 100644 --- a/core/kernel.py +++ b/core/kernel.py @@ -30,16 +30,16 @@ def __init__(self, input_dim): # 定义核函数 self.kernels = nn.ModuleDict({ 'RationalQuadratic': RationalQuadraticKernel(input_dim), - 'linear': LinearKernel(input_dim), - 'periodic': PeriodicKernel(), + 'Linear': LinearKernel(input_dim), + 'Periodic': PeriodicKernel(), 'ARD': ARDKernel(input_dim) }) self.softplus = nn.Softplus() # 定义核函数的可学习权重 self.weights = nn.ParameterDict({ 'RationalQuadratic': nn.Parameter(torch.tensor(1.0)), - 'linear': nn.Parameter(torch.tensor(1.0)), - 'periodic': nn.Parameter(torch.tensor(1.0)), + 'Linear': nn.Parameter(torch.tensor(1.0)), + 'Periodic': nn.Parameter(torch.tensor(1.0)), 'ARD': nn.Parameter(torch.tensor(1.0)) }) diff --git a/core/cigp_baseline.py b/core/simpleGP.py similarity index 96% rename from core/cigp_baseline.py rename to core/simpleGP.py index 6ec3c99..df08bf2 100644 --- a/core/cigp_baseline.py +++ b/core/simpleGP.py @@ -1,12 +1,10 @@ +# # Conditional independent Gaussian process (CIGP) for vector output regression based on pytorch +# # +# # CIGP use a single kernel for each output. Thus the log likelihood is simply a sum of the log likelihood of each output. import torch -import os -import sys -# sys.path.append('/Users/zidongchen/PycharmProjects/MiniGP/Mini-GP') import torch.nn as nn -from core.kernel import ARDKernel, NeuralKernel, PeriodicKernel, MaternKernel, PolynomialKernel -import numpy as np +from core.kernel import ARDKernel import matplotlib.pyplot as plt -import data_sample.generate_example_data as data import core.GP_CommonCalculation as GP JITTER = 1e-6 diff --git a/core/svgp.py b/core/stochasticVariationalGP.py similarity index 97% rename from core/svgp.py rename to core/stochasticVariationalGP.py index a1d8be1..b0b918b 100644 --- a/core/svgp.py +++ b/core/stochasticVariationalGP.py @@ -1,3 +1,7 @@ +# Author: Zidong Chen +# Date: 2024/07/17 +# This is the implementation of the Stochastic Variational Gaussian Process (SVGP) model. Key references: GP for big data + import torch import torch.nn as nn from torch.utils.data import DataLoader, TensorDataset @@ -11,7 +15,6 @@ PI = 3.1415 torch.manual_seed(4) - class svgp(nn.Module): def __init__(self, num_inducing, input_dim, num_data): super(svgp, self).__init__() diff --git a/core/sgpr.py b/core/variationalSparseGP.py similarity index 100% rename from core/sgpr.py rename to core/variationalSparseGP.py From 6899d3fb947293122d758fb6ef4dd4799a799eac Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:34:06 +0800 Subject: [PATCH 04/20] update structure --- autoGP_demo.ipynb => Demo.ipynb | 1 - GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb | 251 ++++++++++---------- README.md | 42 +++- asset/Bayesian_Optimization.png | Bin 0 -> 188905 bytes core/{simpleGP.py => cigp.py} | 0 5 files changed, 156 insertions(+), 138 deletions(-) rename autoGP_demo.ipynb => Demo.ipynb (99%) create mode 100644 asset/Bayesian_Optimization.png rename core/{simpleGP.py => cigp.py} (100%) diff --git a/autoGP_demo.ipynb b/Demo.ipynb similarity index 99% rename from autoGP_demo.ipynb rename to Demo.ipynb index d130aa1..38634ee 100644 --- a/autoGP_demo.ipynb +++ b/Demo.ipynb @@ -13,7 +13,6 @@ "outputs": [], "source": [ "import torch\n", - "import torch.nn as nn\n", "from core.kernel import NeuralKernel\n", "import core.GP_CommonCalculation as GP\n", "from data_sample import generate_example_data as data\n", diff --git a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb index eae82c9..d691a2e 100644 --- a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb +++ b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 191, "outputs": [], "source": [ "import os\n", @@ -31,13 +31,12 @@ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "from data_sample import generate_example_data as data\n", - "from core.cigp_baseline import cigp\n", - "# from torch.autograd import Variable\n", + "from core.cigp import cigp\n", "import torch.optim as optim\n", "from core.kernel import ARDKernel\n", "\n", "os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS\n", - "JITTER = 1e-3\n", + "JITTER = 1e-6\n", "EPS = 1e-10\n", "PI = 3.1416\n", "torch.set_default_dtype(torch.float64)" @@ -45,8 +44,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:54:50.782713600Z", - "start_time": "2024-08-14T02:54:47.992183400Z" + "end_time": "2024-08-21T07:38:22.495620400Z", + "start_time": "2024-08-21T07:38:22.485220900Z" } } }, @@ -63,10 +62,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 192, "outputs": [], "source": [ - "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", + "device = torch.device('cuda')\n", "\n", "\n", "def conjugate_gradient(A, b, x0=None, tol=1e-1, max_iter=1000):\n", @@ -116,18 +115,18 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:54:52.469790900Z", - "start_time": "2024-08-14T02:54:52.438198500Z" + "end_time": "2024-08-21T07:38:23.320423500Z", + "start_time": "2024-08-21T07:38:23.314029900Z" } } }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 193, "outputs": [], "source": [ "# generate example data\n", - "xtr, ytr, xte, yte = data.generate(2000, 100, seed=42)\n", + "xtr, ytr, xte, yte = data.generate(5000, 100, seed=42)\n", "xtr = xtr.to(dtype=torch.float64, device=device)\n", "ytr = ytr.to(dtype=torch.float64, device=device)\n", "xte = xte.to(dtype=torch.float64, device=device)" @@ -135,14 +134,14 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:54:55.558700600Z", - "start_time": "2024-08-14T02:54:52.943236900Z" + "end_time": "2024-08-21T07:38:23.767060100Z", + "start_time": "2024-08-21T07:38:23.753369700Z" } } }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 194, "outputs": [], "source": [ "kernel = ARDKernel(1)\n", @@ -152,8 +151,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:54:56.078225600Z", - "start_time": "2024-08-14T02:54:56.069493500Z" + "end_time": "2024-08-21T07:38:24.132577900Z", + "start_time": "2024-08-21T07:38:24.122401800Z" } } }, @@ -168,29 +167,28 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 195, "outputs": [], "source": [ - "Sigma = kernel(xtr, xtr) + torch.eye(xtr.size(0), device=device) * torch.exp(log_beta) + JITTER * torch.eye(xtr.size(0),\n", - " device=device)\n" + "Sigma = kernel(xtr, xtr) + torch.eye(xtr.size(0), device=device) * torch.exp(log_beta) + JITTER * torch.eye(xtr.size(0), device=device)" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:54:59.433597Z", - "start_time": "2024-08-14T02:54:56.972573500Z" + "end_time": "2024-08-21T07:38:24.968385200Z", + "start_time": "2024-08-21T07:38:24.942730200Z" } } }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 227, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Conjugate Gradient Solution Time: 0.007002 seconds\n" + "Conjugate Gradient Solution Time: 0.006001 seconds\n" ] } ], @@ -203,20 +201,20 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:00.171487900Z", - "start_time": "2024-08-14T02:55:00.144375200Z" + "end_time": "2024-08-21T07:56:59.885134Z", + "start_time": "2024-08-21T07:56:59.860488700Z" } } }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 220, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Cholesky Solution Time: 0.215119 seconds\n" + "Cholesky Solution Time: 0.596621 seconds\n" ] } ], @@ -229,21 +227,21 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:06.924671800Z", - "start_time": "2024-08-14T02:55:06.705298800Z" + "end_time": "2024-08-21T07:55:40.343769400Z", + "start_time": "2024-08-21T07:55:39.741413200Z" } } }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 198, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Conjugate Gradient Residual Norm: 7.077787e-03\n", - "Cholesky Residual Norm: 6.066984e-12\n" + "Conjugate Gradient Residual Norm: 6.809222e-02\n", + "Cholesky Residual Norm: 2.271525e-11\n" ] } ], @@ -256,8 +254,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:09.788380700Z", - "start_time": "2024-08-14T02:55:09.770375900Z" + "end_time": "2024-08-21T07:38:28.186833900Z", + "start_time": "2024-08-21T07:38:28.177521900Z" } } }, @@ -272,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 199, "outputs": [], "source": [ "import torch\n", @@ -296,8 +294,8 @@ "\n", " for ii in range(nvecs):\n", " w = torch.sign(torch.randn(n, dtype=A.dtype, device=A.device)) # Random Rademacher vector\n", - " v0 = w / torch.norm(w)\n", - " #print(torch.norm(w))\n", + " v0 = w / (torch.norm(w)+EPS)\n", + " #print(v0)\n", " # Lanczos algorithm\n", " V = torch.zeros((n, m), dtype=A.dtype, device=A.device)\n", " alpha = torch.zeros(m, dtype=A.dtype, device=A.device)\n", @@ -305,23 +303,23 @@ " V[:, 0] = v0.clone()\n", "\n", " w = A @ V[:, 0].clone()\n", - " #print(A)\n", + "\n", " alpha[0] = torch.dot(V[:, 0].clone(), w)\n", " w = w - alpha[0].clone() * V[:, 0].clone()\n", "\n", " for j in range(1, m):\n", " beta[j - 1] = torch.norm(w)\n", " if beta[j - 1] != 0:\n", - " V[:, j] = w / beta[j - 1].clone()\n", + " V[:, j] = w / (beta[j - 1].clone()+EPS)\n", " w = A @ V[:, j].clone() - beta[j - 1].clone() * V[:, j - 1].clone()\n", " alpha[j] = torch.dot(V[:, j].clone(), w)\n", " w = w - alpha[j].clone() * V[:, j].clone()\n", "\n", " H = torch.diag(alpha) + torch.diag(beta, 1) + torch.diag(beta, -1)\n", " #print(V[:, j])\n", - " #print(w)\n", - " #print(torch.diag(alpha),torch.diag(beta, 1),torch.diag(beta, -1))\n", - " #print(H)\n", + " # print(w)\n", + " # print(torch.diag(alpha),torch.diag(beta, 1),torch.diag(beta, -1))\n", + " # print(H)\n", " eigvals, eigvecs = torch.linalg.eig(H)\n", " eigvals, eigvecs = eigvals.real, eigvecs.real\n", " #print(eigvals)\n", @@ -337,21 +335,21 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:10.964341300Z", - "start_time": "2024-08-14T02:55:10.959478200Z" + "end_time": "2024-08-21T07:38:34.740936400Z", + "start_time": "2024-08-21T07:38:34.729222700Z" } } }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 209, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Lanczos Quadrature Time: 0.220051 seconds\n", - "Log determinant (SLQ): 9.147460375653647\n" + "Lanczos Quadrature Time: 0.236053 seconds\n", + "Log determinant (SLQ): 18.97595262047382\n" ] } ], @@ -365,21 +363,21 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:21.734631400Z", - "start_time": "2024-08-14T02:55:21.509860200Z" + "end_time": "2024-08-21T07:39:19.031933400Z", + "start_time": "2024-08-21T07:39:18.792052800Z" } } }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 212, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Cholesky Decomposition Time: 0.202051 seconds\n", - "Exact log determinant (Cholesky): 16.38081520867417\n" + "Cholesky Decomposition Time: 0.528001 seconds\n", + "Exact log determinant (Cholesky): 17.12168046471974\n" ] } ], @@ -394,8 +392,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:55:23.653618300Z", - "start_time": "2024-08-14T02:55:23.448430900Z" + "end_time": "2024-08-21T07:39:31.809161600Z", + "start_time": "2024-08-21T07:39:31.275339400Z" } } }, @@ -410,7 +408,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 213, "outputs": [], "source": [ "def negative_log_likelihood(xtr, ytr, kernel, log_beta):\n", @@ -419,25 +417,25 @@ " device=device)\n", " Sigma_inv_y = conjugate_gradient(Sigma, ytr)\n", " #option1:\n", - " L = torch.linalg.cholesky(Sigma)\n", - " nll = L.diag().log().sum() +0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", + " # L = torch.linalg.cholesky(Sigma)\n", + " # nll = L.diag().log().sum() +0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", " #option2: torch autograd bug???\n", "\n", - " # nll = 0.5 * lanc_quad_logdet(\n", - " # Sigma) #0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", + " nll = 0.5 * lanc_quad_logdet(\n", + " Sigma) +0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", " return nll\n" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:58:11.043627700Z", - "start_time": "2024-08-14T02:58:11.037569100Z" + "end_time": "2024-08-21T07:39:43.043489900Z", + "start_time": "2024-08-21T07:39:43.036006Z" } } }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 214, "outputs": [], "source": [ "def forward(xtr, ytr, xte, kernel, log_beta):\n", @@ -470,14 +468,14 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:58:11.594181200Z", - "start_time": "2024-08-14T02:58:11.574815900Z" + "end_time": "2024-08-21T07:39:43.520271Z", + "start_time": "2024-08-21T07:39:43.495643300Z" } } }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 215, "outputs": [], "source": [ "def train_adam(xtr, ytr, kernel, log_beta, niteration=10, lr=0.1):\n", @@ -505,45 +503,45 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:58:11.893932400Z", - "start_time": "2024-08-14T02:58:11.890821200Z" + "end_time": "2024-08-21T07:39:45.112108600Z", + "start_time": "2024-08-21T07:39:45.103495900Z" } } }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 216, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Iteration 0, Loss: 15025.687401793451\n", - "Iteration 10, Loss: 3690.927888022656\n", - "Iteration 20, Loss: 2523.03069034738\n", - "Iteration 30, Loss: 2500.1777437991423\n", - "Iteration 40, Loss: 2406.9217345890074\n", - "Iteration 50, Loss: 2280.4290459614253\n", - "Iteration 60, Loss: 2157.144860285642\n", - "Iteration 70, Loss: 2057.972989349561\n", - "Iteration 80, Loss: 1991.6717345063005\n", - "Iteration 90, Loss: 1956.2368341705258\n", - "Iteration 100, Loss: 1942.1615564738447\n", - "Iteration 110, Loss: 1938.4791349310847\n", - "Iteration 120, Loss: 1937.885378256897\n", - "Iteration 130, Loss: 1937.5601565606112\n", - "Iteration 140, Loss: 1937.0875744725222\n", - "Iteration 150, Loss: 1936.6031670569084\n", - "Iteration 160, Loss: 1936.1685091333445\n", - "Iteration 170, Loss: 1935.7597247054507\n", - "Iteration 180, Loss: 1935.3726436221928\n", - "Iteration 190, Loss: 1934.9989925599975\n" + "Iteration 0, Loss: 13133.389463868345\n", + "Iteration 10, Loss: 10753.956066837043\n", + "Iteration 20, Loss: 7621.808055132352\n", + "Iteration 30, Loss: 5707.857269272505\n", + "Iteration 40, Loss: 4976.819992818509\n", + "Iteration 50, Loss: 5082.525002458684\n", + "Iteration 60, Loss: 4970.77230322258\n", + "Iteration 70, Loss: 4942.971378275089\n", + "Iteration 80, Loss: 4944.855096081037\n", + "Iteration 90, Loss: 4924.780036737617\n", + "Iteration 100, Loss: 4939.723503206766\n", + "Iteration 110, Loss: 4926.184142758282\n", + "Iteration 120, Loss: 4930.073199950462\n", + "Iteration 130, Loss: 4927.650690560781\n", + "Iteration 140, Loss: 4924.400280386099\n", + "Iteration 150, Loss: 4918.123378180415\n", + "Iteration 160, Loss: 4922.9038439711785\n", + "Iteration 170, Loss: 4912.8804969399\n", + "Iteration 180, Loss: 4912.108746554232\n", + "Iteration 190, Loss: 4921.0920456442045\n" ] } ], "source": [ "kernel = ARDKernel(1)\n", - "log_beta = nn.Parameter(torch.ones(1, dtype=torch.float64, device=device) * 0)\n", + "log_beta = nn.Parameter(torch.ones(1, dtype=torch.float64, device=device) * -4)\n", "start_time = time.time()\n", "train_adam(xtr, ytr, kernel, log_beta, niteration=200, lr=0.1)\n", "end_time = time.time()\n", @@ -552,19 +550,19 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:59:02.977134700Z", - "start_time": "2024-08-14T02:58:12.308369800Z" + "end_time": "2024-08-21T07:41:58.802235500Z", + "start_time": "2024-08-21T07:39:45.750275400Z" } } }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 217, "outputs": [ { "data": { "text/plain": "
", - "image/png": "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8DznBs9z7hTCuS7oZFUiIiIqbWU7I0JERET5x0CEiIiI8oaBCBEREeUNAxEiIiLKm5IORO655x7MmDEDer0eK1aswKuvvhr3+A0bNmDFihXQ6/WYOXMm7r333hyNtLilcp7/9re/4eyzz0ZdXR0sFgtOPvlkPPfcczkcbfFK9fUc8dprr0GtVmPZsmXZHWCJSPU8+3w+fOtb30J7ezt0Oh1mzZqF//u//8vRaItXquf5gQcewNKlS2E0GtHU1IQvfOELGBoaytFoi9Mrr7yC888/H83NzZAkCU888UTC78nLdVCUqIceekhoNBpx3333ie3bt4sbb7xRmEwmceDAgajH79u3TxiNRnHjjTeK7du3i/vuu09oNBrx6KOP5njkxSXV83zjjTeKH/3oR+Ltt98Wu3btEqtXrxYajUa89957OR55cUn1PEeMjo6KmTNninPOOUcsXbo0N4MtYumc5wsuuECceOKJYv369aKjo0O89dZb4rXXXsvhqItPquf51VdfFbIsi5/97Gdi37594tVXXxWLFi0SF110UY5HXlyefvpp8a1vfUs89thjAoB4/PHH4x6fr+tgyQYiJ5xwgrj++usn3Td//nxx6623Rj3+lltuEfPnz59033XXXSdOOumkrI2xFKR6nqNZuHChWLNmTaaHVlLSPc+XX365+Pa3vy1uu+02BiJJSPU8P/PMM8JqtYqhoaFcDK9kpHqef/zjH4uZM2dOuu/uu+8WLS0tWRtjqUkmEMnXdbAkl2b8fj82btyIc845Z9L955xzDl5//fWo3/PGG28cdfzHP/5xvPvuuwgEAlkbazFL5zwfSVEUOBwOVFdXZ2OIJSHd83z//fdj7969uO2227I9xJKQznl+8skncdxxx+HOO+/EtGnTMHfuXHzjG9+Ax+PJxZCLUjrneeXKlejq6sLTTz8NIQT6+vrw6KOP4pOf/GQuhlw28nUdLOimd+kaHBxEKBRCQ0PDpPsbGhrQ29sb9Xt6e3ujHh8MBjE4OIimpqasjbdYpXOej/STn/wELpcLn/70p7MxxJKQznnevXs3br31Vrz66qtQq0vyzzzj0jnP+/btw7///W/o9Xo8/vjjGBwcxA033IDh4WHmicSQznleuXIlHnjgAVx++eXwer0IBoO44IIL8POf/zwXQy4b+boOluSMSIQkSZP+Xwhx1H2Jjo92P02W6nmO+Mtf/oLbb78dDz/8MOrr67M1vJKR7HkOhUK48sorsWbNGsydOzdXwysZqbyeFUWBJEl44IEHcMIJJ+C8887DunXr8Pvf/56zIgmkcp63b9+Or3/96/jOd76DjRs34tlnn0VHRweuv/76XAy1rOTjOliSH5Vqa2uhUqmOiq77+/uPivYiGhsbox6vVqtRU1OTtbEWs3TOc8TDDz+ML37xi3jkkUdw1llnZXOYRS/V8+xwOPDuu+/i/fffx1e/+lUA4QumEAJqtRrPP/88zjzzzJyMvZik83puamrCtGnTJrU7X7BgAYQQ6Orqwpw5c7I65mKUznleu3YtTjnlFPzXf/0XAOCYY46ByWTCqaeeiu9///ucsc6QfF0HS3JGRKvVYsWKFVi/fv2k+9evX4+VK1dG/Z6TTz75qOOff/55HHfccdBoNFkbazFL5zwD4ZmQa665Bg8++CDXeJOQ6nm2WCzYsmULNm3aNH67/vrrMW/ePGzatAknnnhiroZeVNJ5PZ9yyino7u6G0+kcv2/Xrl2QZRktLS1ZHW+xSuc8u91uyPLky5VKpQJw+BM7TV3eroNZTYXNo8j2sN/97ndi+/bt4qabbhImk0ns379fCCHErbfeKj73uc+NHx/ZtnTzzTeL7du3i9/97nfcvpuEVM/zgw8+KNRqtfjlL38penp6xm+jo6P5+hGKQqrn+UjcNZOcVM+zw+EQLS0t4lOf+pTYtm2b2LBhg5gzZ4740pe+lK8foSikep7vv/9+oVarxT333CP27t0r/v3vf4vjjjtOnHDCCfn6EYqCw+EQ77//vnj//fcFALFu3Trx/vvvj2+TLpTrYMkGIkII8ctf/lK0t7cLrVYrli9fLjZs2DD+tauvvlqcdtppk45/+eWXxbHHHiu0Wq2YPn26+NWvfpXjERenVM7zaaedJgAcdbv66qtzP/Aik+rreSIGIslL9Tzv2LFDnHXWWcJgMIiWlhaxatUq4Xa7czzq4pPqeb777rvFwoULhcFgEE1NTeKqq64SXV1dOR51cXnppZfivt8WynVQEoLzWkRERJQfJZkjQkRERMWBgQgRERHlDQMRIiIiyhsGIkRERJQ3DESIiIgobxiIEBERUd4wECEiIqK8YSBCREREecNAhIiIiPKGgQgRERHlDQMRIiIiyhsGIkRERJQ3/z9KcwdeUR2hBwAAAABJRU5ErkJggg==" + "image/png": "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" }, "metadata": {}, "output_type": "display_data" @@ -596,68 +594,67 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T02:59:27.798732200Z", - "start_time": "2024-08-14T02:59:27.115944600Z" + "end_time": "2024-08-21T07:42:32.569969200Z", + "start_time": "2024-08-21T07:42:31.378104200Z" } } }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 218, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "iter 0 nll:5850.84470\n", - "iter 10 nll:4855.64257\n", - "iter 20 nll:3864.50022\n", - "iter 30 nll:2881.83439\n", - "iter 40 nll:1923.61515\n", - "iter 50 nll:1030.09092\n", - "iter 60 nll:296.90970\n", - "iter 70 nll:-115.45684\n", - "iter 80 nll:-169.68671\n", - "iter 90 nll:-154.64654\n", - "iter 100 nll:-174.45334\n", - "iter 110 nll:-176.20830\n", - "iter 120 nll:-175.85972\n", - "iter 130 nll:-176.82291\n", - "iter 140 nll:-176.81608\n", - "iter 150 nll:-176.84050\n", - "iter 160 nll:-176.87865\n", - "iter 170 nll:-176.87340\n", - "iter 180 nll:-176.87817\n", - "iter 190 nll:-176.87840\n" + "iter 0 nll:14670.65447\n", + "iter 10 nll:12258.78492\n", + "iter 20 nll:10005.62360\n", + "iter 30 nll:8181.30541\n", + "iter 40 nll:7267.93116\n", + "iter 50 nll:7272.31587\n", + "iter 60 nll:7253.54617\n", + "iter 70 nll:7209.38090\n", + "iter 80 nll:7215.41914\n", + "iter 90 nll:7210.18523\n", + "iter 100 nll:7209.70099\n", + "iter 110 nll:7209.58497\n", + "iter 120 nll:7209.35911\n", + "iter 130 nll:7209.38522\n", + "iter 140 nll:7209.34786\n", + "iter 150 nll:7209.35265\n", + "iter 160 nll:7209.34776\n", + "iter 170 nll:7209.34837\n", + "iter 180 nll:7209.34776\n", + "iter 190 nll:7209.34784\n" ] } ], "source": [ "start_time = time.time()\n", - "xtr, ytr = xtr.cpu(), ytr.cpu()\n", - "model = cigp(xtr, ytr)\n", - "model.train_adam(200, 0.1)\n", + "model = cigp().to(device)\n", + "model.train_adam(xtr, ytr,200, 0.1)\n", "end_time = time.time()\n", "standard_gp_time = end_time - start_time" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T03:01:42.911504300Z", - "start_time": "2024-08-14T03:00:15.255562100Z" + "end_time": "2024-08-21T07:52:30.821615600Z", + "start_time": "2024-08-21T07:42:38.809619500Z" } } }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 219, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "standard GP time: 87.65204405784607\n", - "CG GP time: 50.666510820388794\n" + "standard GP time: 592.0098221302032\n", + "CG GP time: 133.0477843284607\n" ] } ], @@ -668,8 +665,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-14T03:01:42.919017400Z", - "start_time": "2024-08-14T03:01:42.912575300Z" + "end_time": "2024-08-21T07:54:31.342927200Z", + "start_time": "2024-08-21T07:54:31.339255500Z" } } }, diff --git a/README.md b/README.md index e1a6c3a..b65c2b8 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,58 @@ # MiniGP -MiniGP is a minimalistic Gaussian Process (GP) library focused on regression tasks. It is designed to be simple and easy to understand. +MiniGP is a minimalistic Gaussian Process (GP) library focused on regression tasks. It is designed to be simple and easy to understand, super lightweight, and friendly to researchers and developers. + +## Motivation +Despite that there are many successful GP libraries, such as GPy, GPflow, and GPyTorch we find them difficult to use for beginners and very time-consuming to customize. It will take a lot of time to understand the structure of the library and the GP model, by which time the user (young research student) may give up. + +Thus we want to create a simple and easy-to-use GP library that can be used by anyone. MiniGP is designed to be simple and easy to understand. It is a great tool for educational purposes. We also try to make it easy for anyone to use without a lot of background knowledge of GP. + +## Useful and practical GP Models: +- [CIGP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/core/cigp.py): simple yet accurate multi-output regression model with complexity $O(n^3 d)$ for n training points with d outputs. +- [NeuralKernel](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/GPmodels_Classic/04_neuralKernelGP.ipynb): automatic kernel learning with neural network structured kernel. +- [GPU&GP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb): Inference method that leverage GPU acceleration for GP model. This can be used in sparse GP model to speed up the computation for large inducing point number. +- [AutoGP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/core/autoGP.py): A powerful GP model that incorporates a learnable input warp module, a deep neural kernel, and Sparse Gaussian Processes. -Despite that there are many successful GP libraries, such as GPy, GPflow, and Pyro, they are often too complex for beginners to understand. Things get worse when the user wants to customize the model. MiniGP is designed to be simple and easy to understand. It is a great tool for educational purposes. We also try to make it easy for anyone to use without a lot of background knowledge of GP. ## Installation We do not have a pip package yet. You can install it by cloning the repository and rune the code for your own purpose. At this stage we think it is better to keep it simple and customizable. It servers as rather demo code than a library, with some useful functions to make computation easier. +To start using MiniGP, you can clone the repository by running the following command: +```bash +git clone +``` +You can start by running the Demo.ipynb to have a taste of the library. You can also check the tutorial in the GPmodels_xxx folder to learn how to use the library. + +Most models have two version, the API version for direct call and the tutorial version for customized usage. The API version is in the 'core' folder, and the tutorial version is in the 'GPmodels_xxx' folder. + + + + ## Structure -- **core:** This folder contains all the core functions for Gaussian Processes (GP). It serves as the backbone of the library. Additionally, it includes Python scripts for GP models that are designed to be easy and quick to use for research and experimentation. The folder also contains a model comparison script and the corresponding results. More details can be found in the README file within the core folder. +- **core:** This folder contains all the core functions (computing likelihood, matrix inversion, kernels, etc.) for Gaussian Processes (GP). It serves as the backbone of the library. +Additionally, it includes API GP models (.py) that are designed to be directly called for research and experimentation. +More details can be found in the [README](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/core/README.md) file within the core folder. - - **GPmodels_Advance:** Advance GP models, including GP with GPU acceleration, and automatic GP. - 01_GP&GPU: a GP model leverage GPU acceleration. - 01_GP&GPU_GPTutorial: Algorithms for GP leverage GPU acceleration. - - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. [Original paper](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) + - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. [Gaussian Process Dynamical Models](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) - **GPmodels_Classic:** basic GP model and its variation, such as DeepKernel GP, InputWarp GP . It demonstrates how to build a GP model with the GP_CommonCalculation. - 01_simpleGP_GPTutorial: simple GP tutorial in both English and Chinese. This is a good starting point for beginners. - 01_simpleGP, a basic GP model. It demonstrates how to build a GP model with the GP_CommonCalculation. - - 02_deepKernelGP, a GP model with deep kernel. [Original paper](https://arxiv.org/abs/1511.02222) + - 02_deepKernelGP, a GP model with deep kernel. [Deep Kernel Learning](https://arxiv.org/abs/1511.02222) - 03_logTransformWarpGP, a GP model with log transform on the target values, this can improve the model performance when the noise does not follow Gaussian distribution. - 04_neuralKernelGP, a GP model with neural kernel. - **GPmodels_MultiOutput:** provides tools for implementing Gaussian Process models with multiple outputs. - 01_IntrinsicModel: Foundation work for multi-output GP. - - 02_hogp_GPTutorial_Chinese: high-oreder GP in Chinese. [Original paper](https://proceedings.mlr.press/v89/zhe19a.html) + - 02_hogp_GPTutorial_Chinese: high-oreder GP in Chinese. [Scalable High-Order Gaussian Process Regression](https://proceedings.mlr.press/v89/zhe19a.html) - **GPmodels_Sparse:** provides tools for implementing sparse Gaussian Process models. - - 01_sgpr_GPTutorial: A detailed tutorial for Sparse Gaussian Process with variational learning inducing points. [Original paper](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf) + - 01_sgpr_GPTutorial: A detailed tutorial for Sparse Gaussian Process with variational learning inducing points. [Variational Learning of Inducing Variables in Sparse Gaussian +Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf) - 02_svgp, A demo for implementing mini-batch gradient descent on SVGP allows training a GP with 10k inputs in 2 seconds. - - 02_svgp_GPTutorial, A detailed tutorial for Stochastic Variational Interference GP model that can allow mini-batch training. [Original paper](https://arxiv.org/abs/1411.2005) + - 02_svgp_GPTutorial, A detailed tutorial for Stochastic Variational Interference GP model that can allow mini-batch training. [Gaussian Process for Big Data](https://arxiv.org/abs/1411.2005) - **Debug_NaNError_FAQ:** Frequently asked questions for GP model. It contains some techniques to solve NaN problem in GP model. More details can be found in the README file in the Debug_NaNError_FAQ folder. - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. diff --git a/asset/Bayesian_Optimization.png b/asset/Bayesian_Optimization.png new file mode 100644 index 0000000000000000000000000000000000000000..46a04a2662fd3a7a9f21bf6835bed902859bc93b GIT binary patch literal 188905 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%0D}H_liQkwcrQ6q!OS-g_ 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

cCr}^T_QPG#zaQ$K6*dmf1k1-a)kf> zxbMIQ{LkP2kLe4<%f*QT^t)r@;!vog%@ndi^Ruy{7p|a zUB0b9!yYc7h;;(xmgh-)G%ycoCH6CCz(la|{$+tx)FD()wx$xr75yFd;*SL*v1jhg zg9Ho;3{=@a=D7XeC;9&}Zd4tDmwApJeehS`)#M$YC4oQ?k7{F++tP0J3MFFy{wRI> zKV)PQ>O~1Yj9n8=DG^$%%CZfhB&Z@$&=ndp&&ynXL`SUR5Qp6CMG6k zp(_?>{ex5T!Lmz?P)WTGyM$MyWP=N19txZ*`-u}WVq(^jQcG;L*{=y2a7qY#fg}YQ z$w2lckns4y!-p&~2)rTKvoZdS2km|UHVxO@57hSj`5wgHP4W(91FwJK`E)BoX_EybMG~Q+_;-(zJ7`pxU5oGm*=H>j)UhJ2pZ=GH3-mJ7 z$ek=)L00k<;18nXT=SF2z*?=)5{qre#FtM0H*+T9UVTe=AQosWh%XpTIQFqhXD>Hyhob`rmzk+V=nurb8n6}V2FN*&&qELezumiTt+^`gRI zp`oN1g{@n+!l|V{&oJxE*MLTd2zojCr>j1LR>{c7Ks1Tp&fk`?^i6fB<+Uu4fur05 zsAcW-^l4!AEskYDetvb>YZUe`G+~S?u7}S2U5)VKpvS_fo}Gn8A4SO_*#u@nC#J*) zm>?M=v+r`aP}6__1PaLn)gf#<{v20xOzH180Hu~u`VoUI>TnTn*N?4cXpge~7Ce%C&h>gj5jh>e`Zo2jWgs5Mg!9RUqAxSMpAS;>pr<~f^ zO28Ls1QZ8DLWBdhc?HABZs(z9jm&J@nParod_rOXVN5V9NS%#J`em`4l45J5Y_nOEyW4sQ=T3Dj8>4Pn@xF8G& z)UXWaLOf(7B${AVVWqPH(~`e`m#=<#=Au7wRcW^d>9lGVplnYGnj-e z%!6fwTSuo{2_za0p(zfrZK0?4dYP)3RgZ;cL2qeZOy*L?$e1p*M8a+r)8%jw`6jPw zonr*?pmf<9Q+eduP)mJX*lq%Sj@KHC+%}@ee%s~&y;V8c`^&qJV_-!R_74~_MgI?= zYOs;!QkEqlH&BCB<-Bsf5zAy~WCXrj2SZaQDEgj5H<>a;Xgtgye>u0KNbB4|RafK`m)1%I6gqv=u7Id-%dqjp-}6 zimi{ItP;ApJwT)@?-o0$fEsrpSIUX<{cfCHQ!~(1SF?bEejFP3kZ%x+b90LK)wJPbH2Zdd{a3EDE8k zAZ(G!Qhkw|8!sBzg5Fd@1Ud)$KXQr|Qki8$zF7v}sIt)Xhf-w99b{*Ge1v0?ygsp< zmEibrzkFkhWP+;F|I(}knGGrcu7-p}WnWHC4gvMRrS3-;gNdG~SNGRvCN(@0;I&MpOBgT?`axU zLy^BK44S_=LihKHQ_PNFH7$zPYzx+x$3S&RNs9kZpGcl!UIug2`1TSdfg7pURB%-i zh5LVT3!89}xAPQ$n0i$RS95)=oLrU*NJnsG-mW!hT#)dFSQ_1bAV=UVwVGF<)sO;# z&N0>_jxb?1k!SSF*|@pi5BmeZT=_!Wb3R$dU#ZF_xT zqli3$BO@c>r4_SlQOFng;>8u~R?sGryD0JS$B@*x^pI@VRfNaX`}fDZd`U|rCx{U% z*8N{!ME~{=2mm<;anF7#s%WI_jG-d1pcicas}_n{#W{Jl-E`>QHC;MJPpNsCal_9(BD+B(zTh$m_7?}>1V)$aqT?GzFBAe4W2nHd zXbd8xPh4MH;Sd(qB78k5rASml0$azus#6xu)OW}U@UPL%$%lyA=QU z>n4PLgq(`R-DK>IC!;@}KKPVY98~fez~8C_2k>PV|8Qolm@>?WoY`SU#x$TVUb7aZ zw^F{Chv&;<*_j_8HV>r&o_m&Hj$r&iVyJ;oC(=Viv_WioAaBH4vcKVEN?nY;zkCCa zk49V4D4VUrpb)usG3#NaaH|@@?GzMOaK7iKJwhN)Hl&g|V=vGg*b2mk8qqXM6ma^Pv$`aiyEw;mcPm@c9nxIB%OGN} zL_{wKi_sD!@G}FK?Q!$rdD)e7~V)(LgEnt^8xD!S|5c{ z@pI@XEbFi9wq`?QgpqN)0tl7`{*DlJfD0T2Da345eA;SIo`~=9k_o5!`O6nxgRjq{ zhdQ7X8>|kCCx{PE%ELbaeo|0bql+)p9_b?9xe8s-!4SF9!P3EawM3a&uv~ArBjKK+ zzJLC#-DNx1RBseXy`dfNXDy%ng^Dv@Nr-P&Mj?1NJzI{iVUVkK7@s)`7a>8t>otb2 zk8N+)mZ>Kw+Rr<W^u&$h(ZbrKt$E zj>-_BAi{r*4{Lb)$rSsJqrA4$A7fPZqj97ZEGNhI#z-_2i2fZA5HLqXdO(c2UgtV` z?hsa!Ncb}oNfshcSRka7Zj8!Kk|_4%?}S2xl~0`aFJcn;I!%2FWb+HC{fM+rettgH zC*nLPqC^5Ge*d05QAA3L;0+a*7U9s@m)+1&iy6%>gIUsmfFhZ113VE$x`gS(L7*|$ z|I|he#&mWD@huN9CGeq4YisNKw%@3OWSh=M#4C9|ml;$QwI~iYi4rxACgopMS;f~H zTbH(JQ?3YhzgawP}m0bpr47|97+o}zu5B}ckL}CyL)Of0AecB0spq6Y%{nVL6koV}i?E!Fs^1Dd_ zByvVBEDpi6xi2Ip-OWKR*Y_{DqJMj`U=N2$TR1kmfdbLW6uAW{_2MG|ZWv5N_$h~+UM zGH44Oc1_UxxB&5iSbN6q@*3ZF&H+LJ&VSK~1nlPr92f%V!HhNlI)QphfZrUMt~lI$ zky2D;L_Zhqml`JYZeRKBug{qX79Ey|0F*NI$b-a#a#n!^QUy){>4rC$fxOWGEYI$e z^7q@A@NIlm>{Y)qgE;rw)gF!u9_C=^prBBC@|f|Nlu`xY~|;BXLh+7QgNwfIbB6gQy+&F8kiXQn`Co4PHRmg@akuG-oTh+Mz+64j4}JAN*V zx4wl3B<%Lz6+Ug`Z0ubHt?Va%*F5ZOA~e! zCzTMfVh+?M5IrNoS{8{>>ZA}-O3l9J$-tzq7Gjl#jSFS*vBEk{1t<Nohnn29mlIythW!Eyesm4sBTB^g z3|SvFHZ#buUGxI)hCe=iy0Zf?hDhujJ$e-7B{XA*$o{)W>$LCNg+ih0aQTGi0FO#k zseFU*&NuPhJ0-joWu&#iIW(a~6C7n?DW*?4$nW7=BGJ}QezDJeb2%Ga3C17_4MPWKU{-5PR1ko9>ox~)z}w_SIcQ^ib} zb2$5v$f*zm5tD(C{h6U<1im9c6AV#~>&BWLA&9|XF|XY)@UygVR`md4>4a#ULp`k# z>8BKkDUy-CA?nXHHD4jR>%SvF5VFuSTt|`({gT8}-7vY0;1Cp-4#953B4 zd8bJJ-#JjVJ^+*-rs)N7aG&s@h*rP_9q146xgwWyJb3UW+@C7mlKr5rA!xsIZf zsP)A@N@;3aui|?!4VfXylaHP$#^{g(;T^G9k~SI z!ucx=v^L9wS!D-eEa97rJnnd|n35KD26H%yzp|A3UQVk)hcG8WHcz=?jl!_G^I{v}IamWiwbNkQ)NkZO- zSYi%bU&_V+K8KZz3QbE_a}klt8UXkrj76FGjgqw(}k6aHv2D8Gb4$ti9B zP`+Q$k~_egsUnyk?Z{iu5U0Tl7NPtf_WB-zUGK0^M=OL`NCHrNnMK6Xoz63tk%m)1 zKw`Ao0?SCqH3|J65qJ;|}EF{B( z)P|6=;rjA;BsDxKR1yZFI0cSCD7A~cD=RBw;dY&MNG}sA!GfvJJBZ|L=;3%|6YwIV ziBt?A``9bfv^pdbSV9v+31f!O$2m>pTmmEIXHhVxM)(K7uXyKn@CVvhI=t&pq=Zu; z)*QZ1&Zva6piR}OPYGCal;_;=sth>`N^A?Ee#BHm6Buf*HUhswt49cfjMhZ(Z~|GC zPpZ7YQOSL|#n7f5@BIzpS48!-)Ro zO|(Rm-Lxra##z7#LB?zFXgYw1v$fe> zp2{hLz;!RebmHPxi}cq+Gc(7e7xu$BYhqR)UbVBDsw8ob1(kjT6{y(j_m6ujKC^lA zwurmY_ese|v9wnpUNjy6Q?5kuq^ieTSkLM&=q$ed9drufRqMZuKS}x!e*J$?%>I8Y z{ctz=4zv!`6yF~AAG$m7uoYIBuoOA>1~hzsTN8U4AV+1GkiwG$fyT8$p)#Dn9>ZM; zEJPhFQba+_&70-{fQUTMpMwU1XwXzaoXg-5F+>r>Q7_v`n9)VLjHMCP_?GtC4uWi$ zQh~|*zZE1kH#c{DVQ1pwoBz-zAtj~uS-O(*lA9h*4JcOoJBR~W-|@iCi_kS6H&Lud3Pyv+T=x#2aB5<4mt zSyBKw&XH2~S41L!M*GhF=;&zliNCA^xydgip+n1qp_#|{Y_*NW3UQRf#X)0=ELTn` zA6WJu1lC606S8VF#kKqieTI*PxNBvC)oUV`h6D;>(SR2c5JV5JwO||~qs#0Sz$N@A zgRa+YO~?X6{dy6hG2u@z0c(c4fJic^=pe$CGIO2(3#$X`@K82=zWg{bIxJ~j1x}v` zX^iZypGN;X|NbDrA`gt2Og&=Rw@7P*^nL&K4V7l1aiF9|L2U*B^Q57dg&@5jx34*Z zVM0m_X$C>uVVL0IQ->fCbnSb#rl&>2MI|V}MR~TYj{m3uB@wj~ z)|!xrY6RPSHV-xgz`H%wU6PBIyzGX{#)!swVBuuyH!|(IdM*cDC#fj9oy+gRY5Znf zwX$>nrt{iQxakwNdCP0;e(b$(OKC}Y8ReBLN-5o&_r@yCvpGGxKz`~+!6pBdmAq6zAaPEro)BND9?m ziXeJG@GWq!e;eSaB%>C>xlo?lR3tFu`iQ=qL4V8+*F8iRdP1-ZJUg|pK;DhjjzyR@ zjyhOGRW!@5gV(Gic0yu{rjz( z7GPqv^X;e8B4%bs8g|m2cE=0o869Rp*7y zfv>t_XIGT3coS(9=OzlJE1i=s&*;AtvSEjz?#H|C8b zf8Ov%mW8!bp|C^I#m75)zK5O_SsBly7qNd1*RRt|diC#fUt{#Dp7bjnlw_5$Cf4Ce zTld(QR?14yaV;&abC;b8ULgAn1xh7|xo=3K%fU;^$jauvZEgekVAI8K{DVX(=oI>^ zNk~fS6m9?q$Hc_^0EH>+D5^A>@or&ga8820R`f8xj1b;nDRBH{dwT(} z^#%|bwZr8hA290IrGM@mfx$6g`Y}uq30!UkC_7l7Eyz2p;zZina3A^mb}Grds(lpn zX7Y~x*P2B&k3k2pyV$10aeV>d9cPe-k3~pU7B7zO00{SZn1R`ej+I=Ol$4Zfh0cP= z-)@1uP0BU0G(Uf+Pdnj9zA+=+IGAp z`2aVPuSQVsV8h2}KQ_sL{D_v{f*#=O?1IwwL8&66;6r_yquCz#sw*F5%yj>-JDRy> zc4b7DXa8gomHxZ2{v-g{U=hM#*AZPz&&{z22xQBv<^0`;+pa{&m~qO!Vy+`D!Zh(* zH$5JK`yk_E;-8Q9P)C#wMl;L&JDnHy=V6gwIc@v{Cmg$^@%;bWU}bC z=(21L*zfD(vqM)`R|JF;y|`;W^Yy=HiiPd$zTQ42&fU>(d&V^cY_{)actA?txDdj5 zUW&~4Rn8@j%3MyJ+|y9sT2a2e@H|`l@5S4nmJaf(N6XBjhJ+hY94L|+Y--<<8{LH~ z6UUAnd&_)Xjre348^1bB^}_Fm?@qV8-}=$gvm>v`+>`R6#1;vu&z%MDY>1cZTsL z_B*QVkBJXk(Fvpk^>rb>0ldu9WQ*%rCe%XVHS%wBt&phBM?@#txq*4oeN+2TR?OX+%jR9lwPfz=F!FGAZt$-*HV3JN_D_vRV#z)RVS~#>;7Yo18V@mlZTj{Yty$s163nG-jL4E&qG)J^2d)K z$@6X5caMPqE~%;64OtTy{YND?vYj`wl%+^FZ(i(vNNEpQBFNh}AV-|R(S%HVg{`@jc zpN4??9fY0H^nB032VIR>C)#-5;Cux!32&*2|kI&dT- zhd5j(-Ae~UVAS8svUrK1(gbst)zM%8 zge{)}l)n{OxIVKsHO&$j!LIVmmE5)?uds4J_Ensk@~#~mbvF@-1pqnULk@Fnq77yR z9+$VKrY7VQWRQB?p{Ub5hm(My9tS~2L17R;0{Jrfw{>4p;enC|nT=nr(0M`4%SrB4O?ac5n_zzA^=AB4qyHYUk=T%JKr=AT1??P{0#6|k z{yjo840m)E6y-h4UJ_--YQ%Q;N(PCDJ6xUPT9{W``z{xdCv5MKm^2$MtSUawot|+1 z1_ikf;n$&f&qubpxxvgANk5i2vV-**_xlbOt)*-E|!xgpCWbHJ29a! zR1@9`+k)UG#OY9H+G??O!-ugrbCV5K(hf7B_-bC|Bi2G4my`9+o$}8C+d&*NZ)%PN z^>jw$t%?GALbRwtw8*fG1Vn~B&Z=+oF- z)6hHj_4Z!S)~1KeGSHAu)L7yNlR(eFa8TS;1R&pNb#YoiNQfIhw4%h0kf8APx<7SC z)l0V^S94pV_V~C8^rS-LzqZCJh76lk_ z&E_9Jemr-6vJ9d#-QAUwIYSuUd;NM$gio<*$-9ypH$c(w0D!uKgCu^rszfkhYmm0K zc7j^!FNT7y)eM?o6-dSev5vQ3(zlS2{lPZ--+ z!-kPY)%)GuREK4uO|eIy6UuMdsrpIrwZIDyJ7)j`u!SqW1+Xqbxph#~adyDvj}sTC z*2nRCQJruQ1dFGp_Vbhz=VrJhchFrPATx>I1A$F=mrb;S_n48!f66HO3jZg=an7XE zb;VrQb;&Sg;!fqmkPw>PyLYGPjv`wLn-T<&HY_-ENahLU^x2M7P4roY`f zk|^}i%)_n_)Z11SA=UaG^7E+XO+aN|Z#>n8MlZ3~Qv72Z-KbQ3nODC_% zmH^SZsY+5Lbb8S7TlAyLz!q|H6bM_PnD)UWHMM|H_{2R)xhXeRY7{MJ=j7C(BID>> zQN$U2GT@3Bcu+)h#G?aUY(59+`64hm)D^5?_6$K{=YxF92d!(gfM1sHiqN z%PR&(M*H^e#nfKjj8C76GFd4o?q}$y>wf*(b$#oI%kuszfvO}x?5kjGAU~9YEbqJM zYwofChV-l6=ZhSRbj`)^gUA#0>jA88Um6o@Zy2hQ#qA+(^zN%Ts=gB^lICvSy|mRj)%h)27JxUeY11(LXuHMmPdibEP$(!ny zYpNww^x7segP)~|IGC>}D{Re=nzuaYgYnkqfq`Yib;3(Shv|@F@vfsKF`yaA$g@3Y z+*(h;8vljIH2C{ekLpNA-tn3mL;d9<1h!gLRS(}@Ql)kbVox%xtVUiY({1Abo=(Dk z@i-0q8p#)4N_DI5qLcu!@t%lJTjJ&x*OPM!I??x4xc=q@&WFz?|1Q zkzzmc>_UY$?Y$7_f*yab7dm}<8c*2OH<(%p2Rw{d{B&#ZyH8_^ga4(&SpWibeZBX5 z9uje`k3M%|<)4?dE$;{DO`9XSyGulBBGbJ~_H0|+bbV9N`ofb-_b1dvFRAQL(I6Gl zVctcT7Ij_RDc7#Zb3TLhovYz$)3;mV;;Pl=-@e`Qs+Ob(V0IKdKu1@>8hNsNrk4MC z@W-WBPCk5|U6qv-0pC!NRBqO~S?goILQ|6XUi#H-Tm?L@ex{PX%j8(kK)A!kNJdI8 zw$rF4A!#Cv+ScG!T;{!jqr^(c$b_Wj)_(coGgvLWZ-3*aOP7q~kMDbR>$AbtusY-J z@1bADTldLY&))W9?D$gm*6G^E@qM$7ri{*02g!E7Mvaf;q=%8=)~2MArI~kjTs-DU zNyAn93mDhOG}sVZ!NXt6vpsdz$h9)=@^zAqwCn|2N7EdAZU?L75B!kBp}344X=MHg z``+8&xG2WQnXe!Q4?f9H!>MyMb=StCK3AlhtJmUU+Bx6k`OFMK#bmW-Ke9||NH}$^ zdxq;6UdkUj9w23sRGwoM^!0m+Pn_z|*B89`3!P-U3&|Na?aEH#1)C*0*P)qboc~H6E6)$)SJmb(y#wOcDq6xl1ziO=jji zHV!BjDM(2jLRpbJl+`c$`|U}RRHkEX#w;Le3MDq4l&|Bkx4_ns&mP8~zwlEr7QPU5 zy5RLxgd#!AO($2R535f3ba}=lO5`Rd%f_fDsq}kxDrLwYr0zWs6Ye7||Gj@8 z*iLr^enz_m*4xcB(kt_w?N-kYKNHvW*+HXcv8=6{yqsaubfs{ymu;*$ ze&69DzuDP?8y#a$!*ysCMT5S4_DH>ZhpjF)9YOK_vk%X!`b7$p14#76M|QG^tnRh^v>WGOhE579y%&Bd#``8NO7i7nMPWAn52L6CLXhE zK1h^>PINdaXT~ww+41^zm25&#RSc%oV$nIhVEzz6`#3lxO{(b~1+tX7*3t#i{OE3a zd%EE*vgw0wx(T8B(c!}JbTytyd6xIA|7(c`pSXRTy4or65aROW5-Y*+8;HZ-QlU%F)c zb9{nEGU%L6Ael_Gy0(LZ)bc{t*YqN?=-ax*B=q#_QBDhQMCKYH&P()*j~9y5(7Grs zy$y6^!H5+K`)k3kkO#=jm0gytZz){chC-WtsP1_YvcO5g$G3MU-$je<+C zcHY6A&%<|VXqYtcJ)%0DJ(f!T;pW9ebt}1l%*$31skdI6NY@7{4!3RQboZ(ZT9{g$ z`6x20q`Y~vg@}h6ltRwf(zL!?sYe_OBGAhrlu!dbZ+_6IA}#yCVP<}+Nj)bf{?o=} zr?yFR=a&at=W-TwDK(y`Y-9S)c3dj!+}(TZ`5}uyo!`k1?<{yN0tS;2tt5_%I*EDM zP%so9JL>n|dPE+8>T#Vhi3+z%Wnh^~vRbBe?OwX%PGz41-L^EQA%o;sP|F~&-`3;& z6TRm_K{gI=Sh3{vVSJK6@gj+dr%2wt7gD@4<*Mseux}S#ZufxXo3jEJFI*t}H>gPU z4qXI7*zh}++iy6!+&WG#6!`hcUSSGKOA33E8>UXLdcHI)F81A`3L#Ez%x(5tlsn{Z zv}fyR=eLmlxM|oFs9W%h+kR@y-l_ShnC^hy>+q5)IhNXvjvZY7If;i|A$_yR(VA%P zy1CNcVD~3@;w1>Im<~2ha@;6wPtTdz;k$mNrMuDdj6v`7BiVMl>%2+o>gp`!7FVQS zhJ{su=oEBW<^jET3*k{qr*X{&_51fngf#mC6m2uCPZ$^`CN2r-a6cpq?`crfYFB-5 z5oAob*E3I1r^ct>O*uXyHd~x+2w7ShswLUB&A9kElk#v~AH{4ekNH_nPJhEHF(&5z z9Z=)kxpPNvb~to)jDIsna@eOMU&UJ!v^7}jEwiLYeQABA6kZG52T%-}{FtKigpOdG zkwrz%=gFiZE;--3r)=6|%M9viMeO%=IXBSX*^1m>#F~8gFFzrhS$oG$N89{5V`d(n zKIeArCew;m9QZY2Ta`dPlx5J-(xPv|63Kdc318DiiJM>K3 z?&U?lRh;Q`s@=y}NZ}rQD(|#mrQYhQNyqHn%Og8YOhdDE0tyw0CHJi)sjq@F1I)XWQ`~A1`Y&tW% z?cA52onAD$FRQdHcYUr(?iUxpZE|z_BSnRhcgL#FhprU%4<_l62qU6Dm!~HU zm~sZxOPro`-xTnzR8jntL1(@fAn<`4_Kq7$({8DnduYEhWU>F?@r9}c%;Mzgu5EYs zO-xKIE-q@@-7mkYuPw)5cbEMnXF5_2t*wFv294x=_0eUF2TqMj^p&d#2!>jwgod7W znisoO%UBvKw^BD^4O8Ft{S|L0DEp`O^WXpU95!{EUU zs_Pq^{QM!1#b_n2UOn(GBr0lVb=6ACr1@uv35(yJ3o82^9NxK! zOGw_2yk0VN9(V;khi+8AG9*EB%;!oL+wjOQ8@oxT$447Crfvse5w82R?pb->|mjZ-h0W}?G2g71CFnq zFLK?LF0?zWZKNR)(W)P>X)p;>OAC*F$!1#am^gw7z9LIR)emFkHuUDljbs#DX%}Bl zbWonQF_GicRiVzd8BMshu3)5jKt_7oQ-|FXu0hZZF(e-&D-- zwWrf*0c?i(bnaba-IGAHU~pJgjz-ISdENiw+0dMg~eSV+6Yxn^7e&k4Zl5B{n zgVT!Dtnrp0_8^7BZPAtAAHjYh$c}vSgmyPD;+evgH0}Z?r^;R_-0M@GU4Dl>!L@F6 zTtCAnC>U|&?L^<=bOG{{k9RpeJOA)Fb>gJ`g$K*c4ayzC5xXN@w}1O)!gP#_i#LmB zZ&v5El#59@k_B$nd^eaK)?{%q!~tP{-g2#_fUdngyItsrn3x}8TZkWS ziiqSdPJM~I{WGOuSL7FCm7wvBRnm?1WX;bai%0SoB67vKD1Ut_nx+-9xmw1dF4h%J z)@)SEI5ZIAwD+I`6*)O;r<>bBo!r^No^_y7(@t&G3E(Gu*5Hc6 z;xhN{8Ic^~X{nk2ZGOj!n~-KH+I}RxeOoCr z?v;i{{qL(5A$8l(v=@D~8G3p|NkkPCJT*S12#GpocMls+?A^yZ^2Ki)p&U8QXE!`i5%J3rvsRIggC6 zFTTq-AstmwCV9r%*r?{U;L~^`Ra7wPzoD?cto&`^;8~T=&cjOAGA^+ENKH}63v}k= zGx<3bBXinWKxCfQdVHJB*n{M;riO|7hBrovFGUXiOt~Kz*yg0TY17=&@)!egs#8*S z>N@>C6MQn%^~-_noSdUEeN#78&vPN`R9)Y9PpM*#QPf$`C3m0suavFw^uj;=eq}9K zjj9Cac(Oj)GvN1a3#&qL@qN>6yMAxtiIWMibm;Re9wU z{jyw}g_+rgu=@tw+=piR1A0<)T^{?;;AwAu^AAAYEQ`!N_CrWO+#$njH#y2Xt6c|s zCw5=-{26Wgd&}~C2RH;%u?>;uJ80Gor+Y1kbkQR)wV^x7n#x&tv!XT&A3y$J@3Gvw z>#G{h&Pg+^MjO3Dc70;3%JBz2T(rJ>pHrv1(@B-OI7@jo(q+C}|IDEsg`GLdTP58# zQu$0xgJRq!1R=~do~&-lqOuxV|5kDM*-(7sfp<4b#vty0#NV|_C7d@_%MHUVx!&{T zM-uhbgU2ks8LQAZx3_;6rMgK`DW|==yXR)vVD-XT`zf;EQ>JnkE?B+dZTmLS!F&5h zaYOr;eHWhGD=~P`SHThw%b=Qc?#pAPSnp7B%`HJ3U!o-! zek9bL2Ytuf+WL@IOvD#0ngMeXU4F?URUQ1gu_Z*}U z6B`{}14U*(U3Q};Qrsu;O9=FI(w6XV%C|H^R%n; zKDE>&sc@l)n7HFp<#ZjPr+d_QA682}?7^1gL(?SqCf-9QFNE3gAR2H`1)n^)IiJi} zo9^A%de|6T`gmB{X|3RE8t0XsiwfIXzfp{gbl-xs$sttJ@Q_p9k}HNr<5N$sq^bv+ zsQEJ?>7qCMqeeTQ_Tss7q=l>Z_Q8g8O}h1O+et_ER;uK>8?{JncgbnP?I?SQh!?n~ zk?0|I$@l8-o9heWS!yrhN*?d}wBfwA?0aK<)h0Vvt+%`6cmAT@>AQEYcobSRC5?Xm zJks!W$UFOu4~;67D1USNvAw}ZSXexaB1U%gD^_HzX45yGv8oIVPSFbSO}7-u$S|^B z?3qUwl;A2FE#x%X3(p$Ki_Et~(hJ2<4V(WOHz;|)S6X&HRg+!8_Ri^q;2rxz^DuL)NiNcI;;dVswVZ<)25m|1fhE(#l)Uj*NjAxgs{IODlI~hb`LMgQq|5*iogbz57Rj6Y2Vrk+AQfEY@Rh4;+))f==Z< z{?Z6ag!j;p>zC)(cPUh3c$LAk5+9sPk%Fbq!^2-nT`Zd7bQO&R}+6{5zoetOO>7+9GWHl4> z-Aw1QxP`2xt5xpUsv##~_p_ za8xQP^meKu4UnlGb?WixYRO;PRQxJQbz%DVr^~lnudhu zmCv2)+f196>vA%and?3FMDN+V_nqZ+*P|kySKd0lv$Lcnz!&zDN@6s3zxet#G@RPp zzC71c&EM23X((gO^Zhjix;{;=t={OBFz#9(eCG4)nSTG*33!N?vOyvm@478Vn@lx_ zXPg|)&kWvhThok*-t6st^(=Ri$`xh5IY*i3uHAAB3*kR_j9c%W#Q?qw@hjf98%$0c zNK^WZbvWet2ke3tPS)Dmjs$KGErwEAUJ&Nyc_;;v;;fVT4LcCi$Z=gBnyz5odpKQh zdU>v@t2gXb+^>5(53iGtH7}5uP0xya^=I+D-S)HcD2K1)Hz8N;R2h{5q2__rlT2Qm zzqKo$G{o;4{>4j&)#BqbddX+L^OR=b zZ)Ymyy?V8~U*?X@RysOgC>QS+IDNTu@1EiOxHu>4k4>XLPhAt3b=%-@qOewynaQ!b zS-vwXLEf6@DP!t^!v*%!<OolhH|@<;NyQ`zS_I^5BgvLhgBayqBKY#!C6xkRWg|#qxO684up4 z0AUjxLcZeweNXBq%^TdJl9QcWKR!)LfHc_I8FhY1F6yCBbAsv)WLKCR=ay-{_SeTA z7n%8f=A+q}Jv2rWd%fQ?3u;h5QcZJq+1znenyO%@v}|RJ!%SxXKvPBK=;pIVLUjds zV>Zfkl^j}HFHbW)A8Fu&8^e)%eot7Z4wXJqf3?9!O)w??fi96fr3 z^-`9~2bFfj6;$ch7jS_udZ)mzBJ-_~mMkdvd5l;Uw zt!J3j`+z~X_wP1NVE_G9dTRbL2thxtB4-+RnScXzX*!hai=>PW5-d+=n$pbUN;)^O zvf3{hF3xLZb=N0c8O`jurLEl#?E^!qrVY!nW4>qf8EKpW{@&St#(qjL!maQ?Q*xM-%HU0XQvGtC z8}sA)$A8Dacq!l&A2C`!(cu-?QL~0{<4=9P3RO$l*4>QlrRWk!Sq!qjKchm|pq1Nx z#T-Oyq$~H#jmfKP%kS*ZfSoNdUzsl{dFU}YIXwJ*yw&YTT89hR4Q|`ko!7pb|s^!DXAR^8p>rKsG06Z zD8?&q6-h6!J)B-txE=jh_$+m+<+xJy+W7X-Z~~!!*8cOS@u`XF*n827xoqq|BCT6z z8Wfqv+Z|}#BSaU_4B>ubnt4vaeeZ|9yPnc(gbY-zTut=n8meJ1D0bI1>wL|Q?7D=9 z0e525v16oHl@+H(lb`9G?!P-(utv)}N?N!?Cbp*XTlmhA{P|Z76uhNgo~pZ4^dnl*h?r0+n#&rmpc8JhFnxu3537Q-+pIUUFr6QR^2QJ+ zGEgSk5yd3 z-G#i^w9xS>A|}SkT}0RE)B(2*6P08#-$Sb3cPuP<%|i64IdJohhD>zWH>CU>dOS*s?S*V!RnLx?v$qFT(q(*n?8#^X&S>ne?flT} z$ful*^~~{(u-g-FVDu7wyzW~K6<41MpxC$U|LT>*jT>4hyPzvv|AnDpO|BO`lOzSJ z+J>HF@$#6)`49OVD0#AX{~`CbHsL=b@kRS+TY>`vC8YeuYg#iaxVkJ2V>NpuBoaO{ zMz1#T2)Jl&{oUC~EXWviOtr0<4R`Mhm$l~v-R|n#OGjt*EXnL$R#S%k^rhKJajM1V z4l|CR#~Ec}b}+G@e7m>YPp4wKZ-I1bv2SI#C4(u5Bl+W_U|n-3eruto@>^5gog#CA zT+bCQTsVdnwcGM+Z)@ixYWA)VeDUU&Z*ES|vof2i*2Is7geA6{tdNnDi`6YqfP9hd z5KqEOb#}|rUx$$4FKx3--}LKw=s}4P&I$p?+2hIIu{44K5ozr4;jeE@v}e2)b9qu3 zRIoJs_Bsp-`2kLqm0gF^K$hJ-9*}ufK8$QKpVZH95997y5z;)n>qY4S0Xt>}Q}J!L zn2+lk^nZ0iHp!(R9A@jP&mExQMB`X(HN12k?tPPo2}dl>WXu&hk3Ub zuK0~n381hIiW5K0tV4IF^>!YUvhMrr@t}T2Hs}b4+}x$wpt1J@YL2Yco+ zEWT#_YAC{VJI@=p4SopC$nV(kFC{bNjZvyPbfb_8M_xu1mPB_@4niLqR#|0MZ{ZM4r*FqA5w-;L2>Jq7BDmKpLL&}Qx)%0j!#qkyras9=kvFK zq|w-WhE~s{0u5ihxQ!;6K5<)n2l<|zQ0|P=?l0(U_v7Jbjq^0?x9M7{{}63L;Ky(W$Ynm269pXyqV{9%1w5qkDAM4)T* zBHK=!AhyW~skg88ns6t!mJWC@*U8m+Q(pq4+?{Hk}zXz;uS31AFwGRs4< z-=r8>YZIkkQLUZJ97@R~u@o3eQSpq_fZI^k?frXhv=8AZDN*K}>>J*;&}I3N>6LGR zC^$Hi$v^XL{Anf$SIa^qeb!4V;)M{y(ViXLRNtT)lh*t&K7RXnO(a)AhEM%o>a9k# zNn*nTv7?gv#ou0etCQD9yL0`TMtEOx`XS|_LS0uQ@8U0C{2<=!?S0R1$Dmi@Ix2Xc z=6JF|WGLHk6R9d5&@AC5RgVd;vgX1 z-QC^Y-F=tecgMJ6+<(B~;OzbE^{hGPZ?=99`r?O&S-gL~A%Y^zY2vx)U{yb^!CZLW zMjz5weP#AInp(2Cz-)+zTrk7MC}5wSTQ%O;*(Ju6rb#Aj_4ndr8BKz7GwO%NCfc|j z;f>c*<+iqJDvpkSO%w&r565tS^12p37xi;zP-F4AzoaDgWqqv5K225)tCV{veXJ z2+^e(h&Lim1NNyIWx7rsJ|s;xsfLNMqJtHp!cmfq6zy;RH@)jijoawzZEaJQ`6YhV zHCv6h@V=mFzb#rPns#^1(JCW+^@9;Ee%}D{wez-0>IG$hr3(jBMGeivW)VI( z(I9}Mmo6;Y|16oYl3Z#>g0IkeyH6cMK;X{3{=MUgoxY+CJJ9pMgjb)QNC}%u^{fm* z|F52njr(J&itxL?+ntqz#~a1=AqQR1#kO5bQ`2NhzHD&t?tsD+s0^$qcFTc=)#?VaAFSN%c^H=+|wMC70taR&M7CFev2yc^D$L@emq}FT9Aut ztSe12lYob?ca)ATI>@EI`%6(%i%!cdw=rDqKjKHX-dPuuOq~7Ym#{edU-UHfmuDi_ z7^}mUjAdnBtM>k#F-!gh1ql*C?P|Fz{b1sji`Cfc7SMe_c!=igym7XcUfvl?QWr`c zX*2!Aisi|F@oEw2O=7t;Qiu4C=ZB{5mo`s7d?jWs=CC!m_32Zm5JSiE;%&HEVz^xd zqw>FSb5Uy!o|4l^D3hf7a^H!b|It%wyVJ#RdT=O%vrclX{D@Xb`Ii*I5a#4Mu5g(g z-H@>mnIv!R8>yMCIYwWGgA zIM@`(=7e1FfNr>&--GoaSRc6TmMeYJOh-pw{+3>!7yndwHtk(1K*Ew?ngYYabnL6i z*2T6Ry%*$7?d#;QJP(AT>bZwH&&@}BL%^C#MiTW{J~2V^;#g5kLfR+be)1<$;ZI=II+lt&GIgxe#ohiVCePX$RcCNxe_@r<3Ehz5b*& zIPaPc-|7p*Owwn#d*ur=Q3LJ|Ol4 z;ZN)9?agRibwmqA?`T!L&L7|Axw+C$PCB9nSKd^M1Q5snV2lD|U5Y7^sHr<%^K`F8 z9R*@J3gmq60}41gqm>VDm-l55s{xz)uC=bN$prCd@1fz;yMTH|8k18X@Y!m5&Li6F z(KsSX3d<#7MSeTX*VK8OW5{0TPq2P7-qA6c^1x8t!a~p+Qv~m2u8#gg zwpaM8O9b4`FYU*WhVV1fbeIt@$Prvi>qVoHcJ9w96~Y(aN$1mgD3!j9GW}n+=qIOA{&x&awXc ztr`q2cR=h{8g*%kNLuBr|7ZLnqtPjx4v9Z8RCLP7 zx1TkBpg^#%k4Q&~Gw*$wb0ZDLRDIh4Y>2wQCdpeluBi z=?6WIgXJPx1|&tcrnTPAbnxitPgetoNxBMO?qU^NYQnHh!C}l@KQQ1c5mY-oJW0(c zA}E+7iD$js-33m9E7Bl2=c^;$$w>?F=V7WBG`?CS`SLsMbB#wIl`;E&ukUomXBkB< zFC&X`+S$w8RnhPX3P=S z5M}?qZ(QT(7how6nNF)o)!ki)q1`B!=yd+6G4(6*{dm4x%4vj$UQ}?+g)gHx$kqU{ zA*^t`3aF|o=l!tx(@^D=iaj8eZ`#|Wx?=9nOXz&mg9Eb=EkS>^*ZK~&{r3PCT9fTb zdBN+Cq$qxPPN|wD%L>l>3$MN*QBdF8aQCb0rO`Y>J3N^?PpqCZ+=C!* zOQHu08d`>uA?w43+u|-3F6GiH6Jwd*HX@l34y9!b*Wjp+{aO2Rbx^8E)y4sF_j=W2 zNOFo?mab@ZHHHfeYxfCm@y7@MTO<{kQ|<5D!gw_edyv@n2t@MLsSRR?wLPs;5VmIR zN*tJ9N<)Ll^x=VgjG|F=Pk%7O*S7CBA(QTO5R3LO>R;yqR^@b-a8-3UTtN0n^|<-C zzpo05HL%${l-wF$UK`L-JUxX1BOFjV2`wzC3;}-&^!~4I7qSq(bG4s0+TWi&G(9Tv zZrBnkc6D-~yl7|KZ6bLqwwFiK7ck~WwQYEF?TSMB;&Ir;_Ce{EE{%;brTb{q%~g+Q zP#3$BGGfaV9J!|?KRbFi+J0}^MTYiNA<@_CmR=8K@5YgA?6HvL z_@s=H5x;)3U@ctzclQ*fZoYo)r$~QR&S5-z>6}XISDHDgMF0SmTk^d8+j?vLIVzd& zw-piC{1nhf1T7lcckSl^!UOZWJJ-oy$WKSQoZ!+5RS|t}`}!bce#4v=OFI%xLgkU9|&VVOOWRld1B$^`YHC<+q*Z zp@ysW6Z`Q(vGt2>>lWQT)&$CFg^}Vp(qpw=sF#Pz)Z`Rfy!Oum0f7-$%FB^!3u3fS z>kb8v$2IBvg8m1`Ybq(JAsahye*){v($v(?i+UA~4E{Qiti#J{={&FvS##JxHVIQx zBLsr`k+Rs>U#zRWB!X1%PC}^>c*2^R0!CfuJ`zD1p>gCr8Hy(lsHgxStMPX~*&dV8 z4n7Xd-x<`ZuY3Z;n))kFRQvlM-Fn^`gYa=VS|my1R99bvqZY5qb;hp^oI@Ec>iGr* z|8q+40LxWsINKcWWr@`VRN*9I;G|k=nP%!xVBolT+AKt(Dc`}PsxRoFoZr=pexgDA zI}Q1BvTJLZtt_oB(F194*65EUG8L9#wE9lt!nQtr^_VW4)#d7;@Wmh6BC}{$F`^K8 z%qkbIm4hCSmgeRJ3IYCsty@Eup`q*bFHH|Sj`o$5(RV5ouE<4BQH;88 z3kZ-bcbpJ)GK=fNNC2@KDR zZLF2Gbn{km5{|#c#qZDdb63ZUc$}TxoUhMb8ubVpZR_2A(&)g>z7M8Wi`oY~B~^i> zeF-i{gW|4=E@p$Cq12ckZmyWU1fNpJ?oQfa@;d&p?dPJXyPJ5&_eXg`Lt5fQ$>Wt|xV3ks00 zcY6OrWN4~qW_tSj(^8R7Of(dlzIgxT{CZRU$ojW*0<27Mt*u466NH+7vf<5d#!0+S zM!t?pnz{^>7|If6dl0=wZ`E$V&So<&_!wPnWb4zhI*B@Vci`q$wtA5n$Z094PCD*m zv4$O~x{?2Wz@2J217jXkrH=<)$iY9E&=3HNgn3XCjO2cb)bMPLXJg2c3zIkY{=x*b z*`ZP1x7YxG#TD!6X`X2?$spXSt>XEeD1^0$IMr0}>``&ToL?L!hZ5HqJI8}MJbnPmh%)odLm6%9W>zM7f>(ADISYCI=*&@)83cWQRv z<&H%et*Rh9nW^!b)B^2=FqTo_r>LkX+oPam%CP$-KSEK#ix-ov>CxEUPC!Mai&XK- zRL;$1QIJ;BOp)j<%+&Z(Aedj^?TKPCqoe)oZ;4vO30%(4OH=LF8xbT`B4@Xcx6E5F z&phV-=LSv({|C0sOAMgfD1jJa$^^ebi1g2RVz{%lhtg#fn~? zM|uoZKZCqsVkKkv+DcE>^&ah%fOQKl(X3o7#*-(^aNpwsB_QAJg5Rk7)921k!C(qe zBhKjmR3q2rtT~@D^EEnH5y$3gmi+X%4lPY$GVM>jw=p8{Yb3GB#ww4u4TksG2^w9bG6PzSadw~|nZ z9^q!!fAd%5u*WiAur;iM{-XvkGyHhIlyzSg{y=pmoS@#kEhOXA>tC~%jb@k6DUV`v zbi7YI9Nip*5I@)TaF~x!b1z(N!e%HZi+|D5*w~w^D{^;KJer6KZ>NgKtFe(6YJNHZ ze*z0SHD=)#dNYwXvSg-FDk?6XG6-%axRcXh;c z$7k(b?C}5jll+3z%=YF=YU(?^hSgot0ne1@1JFaP>z9`(=jBT+A}&cquUDz`&z|Khv% zX&c~=Y9u>H-w7dY3P$?QJ^S`f4z*luItCg=a6oka@tc)cFI^*I_mK{ z55`6_C|$P3Gtm)3g0uDLh~J6v+LgJ#2kOATV;n3!P9=DU%6-(|IB_bls0arjaNvH@ zU0jqRU}I~#7@u#>+4QzT$SP)~nL@0}Ztp!Ipt=H9qaxgk~Gv*4m1wN!Vj5K-PX1x#=>F7WfHIS}1`x5b`(2jm{!s(*N@&)N@`Cxjw z<=dvFnN8fwVQ*0B{74ePlKXy2;Rg#nJ%#J>WJ9eN`0JDRn#p?f^z~a#+1&n)asl#h;A^<+Dr{IGb92D#C4}*+lIW34o_X~J^h3bi zaAT^1_}4GIfr1rDa-s5ANEg9V>@mBu^ZM;uQh-~Xo}c5BlLzX&KVYYZ#5{y`3d~1@ zh0hvW&kjnezat8a+$=0-TH4zD#)}+oWAN{778GS_mXK#hvM_bmdd0q$D#L7DUQ2Iz zQ&Eh|%4!!PJ^2;+x@4tdM|B`q*F!!bu6r;OkyjA#u0J(~DEa6&U%W_ecU@(r${rZO z)`wo0N18dQm$6sg2p5{zT|=uu&~!=W=}ISr3?%RX}W7J z_l?&_c9g&EY#z7fj#=&=9Wf7IiLKe$_UGBJeS&oQ>D5V*g)>*o%1n;*@4(Ly&+~%XP)juT6}E+APGtsLiT;B$nCQ?OQVK;y3yhZO^#)NBp$;tA!vc34pd6O83XFO&+17vvP`G4>4cW^;u zTtW(4_v@>zDYBM)!~akU&5FV)h4_^#iVJO?Z`kvj^fyND)aU{Xi~K3afd6x4M*I^kiK4WfO5du6}P@&rnV~r@te1aB*P}aLNIDf+e|NX?%+0 z$@lPZhmH{&dwW`*5(@?9UQ-_PrzS?wJOPpC(6F%2<_}w+!TKA%lUBTzD(M4rD=U&f z5?7J=VPk44p_6q*jKwO4S(tVH=xU_iKR&lgq5@BZvtgAXG7$Ugw|4#OOX|yWbGp91 zqrO7METv;esw8L>fy|(4H$T6QPboYX*)vgbq8TSV6@U6sC^M7Az-Sobo@(LW{BvM# z+?|{Ab3JGz2vN+AF{l@7gWQo26g?8jP23v%4Ky|$TpBO;5;)WYqU=@%8Fq_{8KSpm zKWwxRH-Y2yeo{5=-LubNpTYe4+qmaJ<<;>gjl#d>TMTRc2AoK7cWjKK3M2N+iT#>k zPKUWC9s?U#)x`zM%nqGw%c6dRhi_o#t4r$tmAAdzq2p{LcS%elp>$n1US6^*Cg={f zMM#tyPk;aV1CkZdo`h)7Mi-Ws>!LY=RdRDuWTL`66h;`#*{l>Jifkaqe|d={AR)oh z@{p#^D_er~fHyW}CEmy2`fFBHFi3L={}`=QfeE0aGn)Qw%`|{C9zVX>p~w1A*U%8< z>A4Ie`9f>xiS^khQQywlMt?^!$&J^th4jo_SSf6?--M2pD~<=ix?!F0DPLr3f`{?= zghotQZXiR$fzif>BCkN88Bb*Jm%gNV=Btty6UAWZo-oZXm_S*RjU{eLm2&u&eU z^6L$05NQ@>k^q(VYCQ_w<42=c3n7PVGc`Xj)vlM8{(JSgdAw)>hCEjF8h7>>)tzrb z_&dC-#cT04HZUgPj*W?+>aPuF z^FUsd76PQh*~_LvNv23M0T3w=$_yOrgFTN0G%4(YB#NxBYtBNd!eICQYN}ZR5m#DH zT&R*)f+^V&wn2h4Mb6C6HJA<86_GqkPU+b_nPGfeV#P;;OGfSQ12qW^Z6yq4ZqI|zs zbSP81;vUTU#>T0LER^^9*5pwaXJ7Fque<3B#qo1xS^YRumlnNzQ#;xs2{)bM} z{zmOTfM%sQ{+TG8fL=vwdqeY$mfa<!975fGSu4m`weKm~%dei9eA#tWX?Aa|mw}0~-#QM+sc2uq5=ymoEO%ZG>ElZ?8o@ zP@aFk~(!7ZgbQ^6_P6#RKdkD*aH$`A)^y-Ga1C@fTs?PqoeslXi$`^{luvs z7jLp#TCx(YmBPxq#?&pH!r$C%@eFM!Wb;#D2BzvY$k5P90IcV~4OFl~17Ak@51Ut7 zX6i@x_kxUAO3Fi#;VEG&XB)+9_UmrrqZwV}8WaLY=by!#^;$|8!#5>Tkb-RCh~QlwrTmb)Z%lZFjttpFWB&A`wQEyc48?%B|gD+Z?+_sP_X zLIlJ5&z;#1N5-x3jZ0^?c0+lmhihVR?Ewz%C74VoO~y%3cm;O!CwXt}R8QbDGT!ZM znhN;(8d4qPoLzptI6NS3#G6iObQusvn(j;+eD)3r4ei5ih0QDLXz|uU7XRxXVir0N z8k_4Agw~-7^_MdJk;AKcboa|WJAj&?`un42hi0kbBuR$Qm+n;412cYYsmCihjOJXM z!QAWIIFT7#G*3py`9WvJ+&v6@%BP-Vp`QAG6T1`2wSRHQR^JD6Y}!6$RY3RwJlvU> z>FeC)*vnefRj>FdBbURE-;TF1m2-74H#ZMekg4YnTt8;Kypm{{f`tH_o~}cF3tMq7 zjE#^ckT1OmqT z=Qm63PSesW^WsDq6XQr4H%CW0V5&2BMD;v*I{z%my;v^xINjwa)WD!ne@92a<EPx_jg^`>uDRt(_gh7!~T3qX~n9MztSi?Jh6T%1)-)>^D#E z)YVOY{Ft$@myI9jL>9Gz$3=@ioD*cUzsMmbQH(xlPvd$4D5!+yKkAl$iz9V#=DUUV z8cp0U^X?80PeJhNk#@!Sl666sP4&6ZXIHtw{r?D?Hfn6WeAzl+S(Q0 zTI;0@W>Gbklh;JV8DAq-wLSG_JbIv?646i1;FO=Q(r>msIl!b7C#s>5(s81$Ni|o8 ziMO{HelkD%=Ao05L((55arAZZEqxYR>ZV{~0=K#5_`SEG`#f zRiHhyv{2!4xK@qC<-_on&REe+`rwE`MOEbdkx+QJK6uL16rhxfI}`2ef+E+viQm8X z07Ck9?R2$3k(u06>J);NZtbas-|lX2i~r2J$}x^NJ%B%5bw1~|`&H!LK~H#w%D?6858#CsqoIjD4upQKOY6uU@I(WijGUG$V&jTdhfRcPKx%{ivDELDij^dB~H4 zFXUnmCMgQg$366lOCc1L=pHbk-b-k>H0RW-fMHSxfcHs*Lj%p0r3Fs-ZRyOT;Ydx zJ$TEVsAb8_IeUGQGQhI`Z***|;C<5*s6f7}Ynv}kSZwkOKPdUoG)DS7Ee&}S(kOOx zk{AzAv{ieCU+#tigytJrth-y&6z#inCGw~6(ZJw$+P390O$hzPGP!iZ&@;2I`F9i) zHxbv1{!AuT`Ixk6O?Nz7JiHXO$Xx8eAe0fj>c(-GXU{?#YwH@YpQWGT<}> z&?k^KIL!nt&x;>XB@JXs9~4{u(guG{c|p(p|9KSHw~Nd}4r*^*dxriJEjg&e6k7b8 z>cjCU2rk;TYyH19w;3Z=#qa-%Kx>zr`rLK!$)jRa|Ggo0b?ygdU11>?m8OY`O=hcv zcpN>wy+AUjpVX2XxAaCw1>3*e-FZMrSPRt{Ow43rp$10Fy{S^la3;xzP>KSGLvZ_T45z8urheWRnsT4` zgy@#VHdkJcYMk#at)V)DxvY2X1JXzI3qCwK+zGjxBb^$1ec?p@&T>Oyp}EQ9!?TdE zFcmB3tMjc-CsP++{Blu`Z$%GgJZLYqDS|2;vf*I{o1ckqpUY$!3-G_Ha^WXtHfvgJ zqmu~6HryC?;QTbpXX&E7J(iR^=2K27Y9O} z=)@l-d5SG@{bmhHkHCQ&)7m6{RS6T3pjNiAVkZ6$8vemPZ$*KfN!0>4#3;k@)j1N$;JSpir)EW7(g- zC4Q7bNWeo1UGB>eg8sVH`^y40tdJB0M&#kfh=K<9*A2nlTH@}wXzzdyP2hLQt`CLZ zc5x;k(<~gV%(y_@J~P+QB8$~6C%kotS&e>O-)BQ~brAw%1jx0gvHBT?68`DA(0lUw ze;HW+%3A(y5D#UDvkq1`PIpBe9;V922MJ!;Q&(1Y3O-Y0I=nj1J183YTDE*_l0>zO z^*#222oz?cnd;PjswDJY&Ipt73X|<9hlXFhU{e3P%jy{f7_L!&o){ zxExOgv@Hfi45_EdnS*LyQgbKzS;e^9>5~fg%g}2Ca+eT^=_2ST7ic+$K0hx5e-9zQ`n-ty*|5tK}qH-1}Qh`Y8X*SF@o*Gk<}U@^v~<96f*jjy8F z8okv*oTkah2h2;>t!;N*4tH02+H&W5 zm1eTW#uVD+gVq1_OZIUFLAhT*#mi^XfaaOcOjkk?(9(9|uz4?FHq3dFAtrSPw;ExA zJ3T#Qz&+pryZIcmIi*s;7@i%khzLxmnus(tLu#}<7ph94FcL2}QU}&CFaf`i=zR2o zG67(Qi$c*}P)!Z^xtJN+qL{gL-5df%{rFLK8wp5&?Dmj^gac2SutNCiqCk)(SdWbR z#pcD%nQ;R~cS6v+t#SX(M5=%Y1gC^PN{`S=+h|_J3&iZltML`#{ zYw5x3PV|f68bbSO=z!r{Dg^u^KD%X<$;WR;Je~MlReMTpK!Jt@0J2L;Jp4O~`3UjW zDFi`n1kX~PU7o1kj--qgIh}Rq?7}3Awd;%-3Nst(6nd(Ne}1x~07y-sB+LTm&=|mi zV&d`CEZc|}&b#REPPTJYvWml3SM3jQivwG`xc2L@G&5Azo@O~YGLCyQ6+Yr%k%!|j znM{y3aBz_LC7pHUoQyXHf51<-Css3E`gRma)WYt9S*qfy8L8HKU`83uOQxVsNrA*W zf>9au#S#!4a0S*kR zdwJ4Ce8G`~G9g{YUH6tY#}ZJm$&8Yu2&%}HJM!w^+tJgHmgHh7h*bG3b!ghGDG8X3 z2zOI?@b*`^HVG;Ya0bDs_`I~--v{sbUY2THi`b@$xxcyx5Lj4COq6uB6snHk<&KbRPcw#_Rx z@b^goo;B=)E32w<%cmwLVoOWwv-qK2rn_RNT2o21oEea))Ix5Lhle?w54!xIteiL@ zBZJ>5r#??V$9}WazqPgdi_es36blF7N7+6)1A8YCI`03UEb^%=B#X8~Apvl3^zt$vF%Q^T6F)%sv0~Uk+c-A{!_N%k@XL+v283}VsnXJar_YQY-?{hNp*HV5!?YG)}O`)UX z&S`BGEkz;ot}U-D&6G*^nt1pAP?pm|6N%=+n(4OUUAw>epQ+qeUw1_M{d`duJ2`nS zc-VV$=Wb?$D4qjGyS0`()Ipp=t!^~u8qV>K$GwjaU&CGas`5Zy^AF1>jD~a6@+|$4 z%k@ZT)9PWz`Z1ILgpO_*!&2LRbd0aR)aF2mD)yNs;1PN62WD@v8Fj8cHaAhZ@6)ur zHGz51fOj{LtR(Qq4<}OoL!noqGxJbOl-hOj#Hob~)Sd0#aP6n-)1l{|u_V zZ9DI`)tNpwiRrB$KTcCczLEMq);7&+Dbnov%U zC_IR)0SYJf_An5+&>PR@par3{)WpDm6f}&eKYxg7HNbh%9gle*f4|A2=gkN5t`ICg>}WZyI7$VD z=UUICB1vOG)B&=t8lCLvSDh-fOhi^(r#*qw=8)Pg)A2*WtMhC+E(gL8!LW|MdIWcH zt(w2w&5g_|z0^2Zp<3)<6Q#R53so!W#A0{{4Y*;?dI=yKFknhR|riyil=Y^w%+)hr{?d)oul%(o8&g=A1h5oC>es zAXZ}1kTnDSPt~hGG1OcYV}_eP=_U3YFEajceprz4Ich`y0BWyi`ovAZ8r?xbuHt1F z&%Yi=&sUZ-)zK6%3+nB9B;mkXVQhB04GE}=AWto(C%Vt)wNO@kx_~O~u@Y-4!1h)y z*`=nX%`Y!Y07N+_Cx@1;Ggey0yTR|*f47bj8O3xcnY7Cj?h;^x{UF3r!NAX%V7*C# zO`~+cz0n{EhZg~XU#2PwqB&Lw=@qzNYFlf{PL;|n$!dHd&FmVYtb4RiqXtpcxpnyxx zjfoL1_po{7x2zhyk`UXv5E26Zf>78H z0$-%#w+woVBJ`WUz|#d+sV7fg$(`pFV<_~5G5?U2SMAY#%~OJJ986jw2yI33nKvBj zgz}3ruUidvXB9yW9np%t-D;d^b5<0|EYLifw?;!#h&HTeITdiRP1Xi+;WTlq+H$b!B&LI{`S=dW2BbmArCBvyX8r3=)EEsf|NJ@L-z*5lel!@XQKVu% zp0CsS%M|&R5de6p3k%?v`d3pCAE)B*(bkq+Ci2tE*R3myOG{{so-H=^oG6>9Txb3CMFi0 z_$np}6Y?XA0Q8S$(y;dpr{8Gs=#tvpx-o41E=cK7iRtgJIy(O9XdQ|3pL6WFy^K#> zU~1~d*{nA!upoEX9*xXyeu~T1+<>)$_{E%xEQ~aqW`kb?10nMM69(;+ufeJ$KVvwb z^Q<7}aSe^LzSsfps@M|iC(jN7UJk(S&u5oJzA0GtzP#cAat^&bp`cYKDMZTL;zNJU zhxVIYgvH}PuruT)Vxg?qvbdz=p1o#K{|85%miZ=Y0Oebu#Klj2T#iOh!QLV4_i%WIJiC17v_AXQG zcqa3$BNt#d59k!+SNeZ*-%N!`7MW>A^A{0sjh{h~v6!ViGL5Wg8^{5IAwt}d;q*0V zn;+MHyLHBnbWb)A{Wh2^Rr|@YLI6nZI-VKwWEm1;a&kxyDXRW6U(ztWz2A~7eoPv) z{gNSwjMcC|)$8=Ud~PNE8{gzqhkWe#AEt;8@=}Uywl3x6a=B`JGW6-67d_t3i$mFo zek5z6q!r6cVrcD~^QRZ4;Vk50tx65s;^XTre13W!la8ZdlqQ`fDS-??r3+_xhWsma z2(37~(5|{aW}Mhp?dJNA?O6@`16(R$S$J5i&OY896jz6m%3p%}uSYbuOQ4bK6$vvl z7CZZFKkd+gAU}V!(==a0rg9g`k(8c!MRa;)9I5Tglrhi#i%IJ%J9x%zZ6)2{D^g&;rqP{PQs054QJC?VgR_wt zSS8n24E}NPZeL5LAJt|mW1@as3|)Z}i~)f>#eeWCY|Y~e9Y{)_H9U*VVda8AodsKY*HS2IdaH9JO)qFT(jHoL%Yq6}P#0yFp z{UK)D=1*{e3S7_mHu{$RPLAB!{2)Jq>Mq)Vw{O7fNV;$j9t+(7z}zn5RjR!xm& z=2t0uU`aa@J$fWPk`qZ0r7JbSx!f}Y#7$Eg`jXQfRf2>B&4&WRA(E7Lfmiljq=5`l zYq3d5S8({CV+-yza!0a8Iqm}1$s1VJ*#3K>-5k*~JRjb25iOt9)!wYWF zJxu{as2}XLfCMKGn`|;NGT7@fTtnv2J^&LChVSGRSWWuEYTnXks3&!IGo)49`ijfS z-kxzgVXL_={}~tes1|K<5?eOWN)CuWEIpml@~V5zZ|?uh^gf374Dq1r>;QSci+n>I zfZ@!2+f53Bd$$4m3Nd}xe_bJ@q^&?9Qcr!X{WYIONT~SrMN>1eWlcYT>CqwoJ48(3 z7Fu(C{sXd8FO8OOC!rr7Z#eI_$pVAg9XJqDvMOreja8v~%uclJ;^??L=a;>EDA>5z zHodsW30$$B{ezw|!TqmdR!c+sOErI;4>(?83JOutKdD>af0Z2elH?4cUEh(WAPhd1 ziQF`pt8e=!-+@KdBm532w&-UmQE5)!r;Ba2f|!u(6p{46h_+Rj;GeT;I!5 z%}jN<#$ec$mqTQK$jUmn?SB2R`Z9l)t)e39CAY{|3idA@3+>(A^I$q%p0GB4KtQlJ z<7%I*kf zPaLHyGr$S80n9r!B0*CXWGK3*&L3T^jZb&~)mr&`qQG9i^HvcGB5R!BL0?#NP{Y@6 z_l%mpy_;VUJ-gUpv1L(~H#8>uxF_CQsIHPV?0SvpbCreaBrJT$E-C`3Huqda zM2aFDXf^!ZOH#+he;A5q|7*^{fwO_6K;c$#>D!MA1mOhAOA<~TrL`zE5^ zxwG2ZfLBu&u5kRAYbYj;oGYT*NDi@PvVHRIE+-c;2GYGhJMClrFeEcAH zceEoKX!Dm>D`5%O#N6CtOqxa^DJjxM(zPu2!b5)%FI3t~A&Q{4*@w?g=bwiOMI~pm zVRvq)FKgu8pWHU?^z^Ljbw9kUFSc57<@a6YK1=(qD7ao;9+1&DqgJ2ai{Vn%y}9K0 z^Y$0Rg!$kzlL17E#9ToTJ^^b!g!-9uh5Z^E15ipU)aKwc=&iZQ=!jTRtDb2TD=L<) za&fwT7#8;je=RSsX=3{KQ`O`dW*Lf-XE)y-ML{J!drY8O7#|UAYGA z(WAic>WFl!k7V{hLwMeOs~*&Bpj2m@E)S@%^~zf+9Y5m8hio}(G9;cECdYS7g#oeK z5bhVAo+$6%zrUwWRQ>YZJJ?F;(J2V_`7$5|QHu+q(T1k(w~X0D5u-P>^>&0(bG?Y( zU!l%UQ%o@xytyQ^U+oP@rD24_=SZ(BhC$DU-V%+Wd?+hrZG;ue`xndi#?R<%*i@9y zNS?NbR=dqSp)tUJ*JGZ$)K^`FBNx;9DtUgne?V_XCqhdVHM?2l<_|z>r5YRKP?J=% zB?2FD#mmQ2mK%z^3YS73IYT`jD?lce)xG&^8WXd>vz_BEVr|Tigi4f&;-bs*jhoTJ zHJ(6;qL_?aYn*?liOY#QrR&8;&zpgPp%n#hj5j6QQ@UTe+7tt%6Zn54J-(&fQwAls zN2!Imy(YPNDL6O>`_UmC0X;7KwoyvtdUNn>*B6@Zf%yyV1BU!N^NF|wA-{p#8OGb- zigj^t=nP*xi{~KaEO*2)JTP+j1+yBh#T5U2P0i?O6&)bWNJX(kpwgE+OmqUxuRM;I za9$P4r5;H*JKulk?0>XDe=uP!^CDVy)n4EEP!ZD?hfEZtSd*ADK__8`vrexLEAs6ZJpdUiuhs}md$uy`^PwGaOYOV6F5waVSbRS&AG)1IJ!Uyf)6N?l0tQLYk?FK z-;KKB00DX}ZZ4PhxltTmz5bt(MvE6aJ^6ax!HbI;YMX9h7&wk>7H=)VUMTuL85hv_ zaU&TvD?*OqUVs0}9Iif)k?+2{x#hQ8b92=O-0tt;Nw)7Ae7o#7(lEydG8CUeI^aKe zT%LtG63nZ@b>gWIAAq+V_*=WW^p@JinRG6NpFj6U`4=GU743lo;qm2_%*lEukQq<6 zN@y>yFO=pNu*RvNbIg}Mkz6!{GDP1}`xG&EDIW5O#}~>mS@%**&A5j`sn@?WOS|8)PB39YrTFHbiaT7SIIasfj1kqj62M9t09fi#K*ur-B8 z44v+84G*WAjIo19AqKV?w6HiO5uvqWqKv@^5i0f{%2M_co^+bg|D#id?dr-mmuF8G z?i)2iiI1-_w^|zY_pcFvXTs-cZ8YcSRh|m*sC6+wlip+SWn#62)Sx$}47kb0avMX- zAXU7;NquwkarsJb;b$|uaH*-t#5W@wJC`35pz{RoSFn(}$#c6XzY$&_|6rRB;(FpQ z-5NDgzIJNn7X!e=gc?T4_u^!5j~xXiDy*=Tu-i<+n0RUI z?_TQSQfP#Ddt=RfI^c1;D2^a_iWM0i?wvTJHNT+SFwP&&T4SGTBxf>Je##o?zt2c3 zPTN1wKRBOs*79X=kf!?D1p~G;=%%J^Q72H7#8Ksfvpns3F}M2ml96obe+x|I+)X<7nSC~*EQ`0YRb=n=W`#}hX3se5y=e^p#8X)>@ZNI*ZlT!(2+>^k3N z!U@hJ9o5`x?;>-LmEK<~UQm4z>m4;>Md{oa-9m+z3}oBsX{3l3>VqL&I~DDh;(UL=GrkX?z$&rpfknKln;WMKM%$9 zByfG$okf>Vkfmks7c(&63Y0LeC3uZdJAEx~Hn>`k#X9(yw-lJc`~di>@0rk~un-dZ zz2Yq8AKbk-=SO95b1nB)vu9z-se;YfR#YlgGlOUPXEP?1;H|-TgBkXepL(N*vxjEB z-!GwlE`_KBn8?CzMB8j!oCUX)R+n`Rb6N7d81w8y!a>L`YQRdI5$2wMH9+MPf=Pfr zeL&>!ZFe_lb99f#^~CBaJw5!UPG@2a^O{~m^an~?mamew$!G6hV= zIlt1$0m;RkIW9gs;FBQmqud4kxy+xARSQK=Re+hQ{HN@dr{&Go(PKwPs=m}Vah;D( z;J{^A*vZv+-k!YpTfZ%A2>W3_Uig|m5@BA~7QSWk0k&YY{2s!T9yeODX~^5?KKm_H z+Nu4jlM#W~TpMf*(nO@=qqT`1^(8Y#1P^SM>IGxHbZ*~1y-zxNY^$YHVx_#fMPYS# z=)+EmtyOxzX>Y-mmA*SAML{=DQk0ych0VS=ey2wxuY)PFg6n#3-;tp3M8!avd1p-Wf7<)bsHW1k-5{gP zsNg6fDs5DXQk5zoMWsj=DWRj%yV849Mi@jvYN!FEL_+U`sv^CY0HLZ7dXXAJ{cfE1 zTkCxP&abo1I_u;QBH4RC`zd$7uPda==PGp6(7n&hYL>eBjK|S27;L`+GsSD27{6CM z)Q88Ev~wlmS*7-7`{%AeIb>vlotkrz#6Oi)**14fOujumaDUHm&(&4JVR$cWXy}$K zH=DmF25IW>SFr0T7a*c~^(sCBJ#&w|d`V4b&DFnF~rwn+670B_%iWGvoewC)Gq*Kl}Bo z+_MAU-{$6S3`#*6UoE(0lWV&8B9HJ1Mc-;=_2VaSuiq$74#gzpUSO8;(KY_+Tv4;m z03{t%U@ZPQ2-UVtxnosYu`-8Ht}GsbVg1b)p-OQQ5cnqS?rxQ3Bo2I=)b8#$k++$5 zOKp3$cNEfWE(e`i7^>U^l0Px&O|4B0^2RiT7%>bV>5cr+kp5vj}siozQ zL>ac{URBSooJ{NSBwPfm0Ea|HhcI%5hil%HYU!f~TtWvi9PglTg{Ni%{_fp*=KG_G zN7^L-q=yV{edha@7e4OftHL*4`Yw8smU3p9&U$h}97Btz^2jR=#;^O#TYD*v74qcsG zXbFydee?1=FgW9qB+GltmIA7`hFAJ=8IjVnKk`UZAK#$=`JLh7#7DmOnKsNawPDv3 z-Jb)(Z74Ib1Hujh0$W~H;Qd(-6%a`2UbzPE9IHNzL8k4Sx_b9V%{e6g;^}956%sAb zTyLnUbZ&o3ADDeB;@+NSNOl@e{Is))`t$7SnVy~?agWZ(>S_@&uc`Bo=TW9KRJ#Hb z;P(VY_IXuT_X5~x+;|O>Rw-_bl#b6{Na{#A+py5USiVL;Iw0(h9TR=NsK*6D?mbYP ztU&VSx&A7|q1BiOA1(g6Qg-Q4)*m(+&DI+TnGT3xO$ z=cU}^YurxswCo7%OBdvwDu##0e;)Tmux)tDFf$uKo3j_IUw;^|DFH1PGVrt}K7o$q zTVYd*-)_Q;^XU@|303&4tv4nn4Tr@*P3`UpX8X9o?Fxg#}{r zV_0>Ia7^BX>!n4#-E+cwd+y(7V}Ub-4}*E>=_Qh`UmWl0y<>J$FC2~KUI!mQBn|40 zo3(Lr!Mx_&juYY6vPx{-;&XDQWd&VkOnzjb=asLH9aD|{$x>{Y`+598>;ms?xv@%u z4PkyO+w}GIx1SL}#)<>V@(<+t4shc8v#5_S48DFn1>yv%t;+WD)i{rErLzo5ISDvI zx-B7IJNNR7fci0!(?@3gP09{nb>qFa<5h8&_nXfWPJXUWvkr@7-&rc|e|}2ye0-*X zJO@XX2ry|07TO_C`)nC~n`+_ZH||ZdsXTltN-L26th$Dr);IUed5wcFmy7nY_6G|U z6i(Nzu~VIeaeeX`Bcn}{-UZsrC9gA7MyR}j@#kw#+UKF62ain#%NX4bS+O|g_TD1C&oyLX;ZjpxA$Lqqh^M1H?^v^h?n z{<83OCO_Y_wC~^UMyGSPb{%!L9{EpS0nAq?F(NvntXFBum z(O3UygE(aZWx0y(1p_dC{b&w+7}x4s5|wqJ-|5_SV`v4C(RzQVx4DP_!1 zC8vNh^Ch*uW}Bcr0hw#}72Q=|=b~Y6av(NYcNfSBH14Fbu6$3$@SxULHKV81oLq7r zK{y@f?2>9CMX=SDI5Ua?HtsbuhA-_oxjJEd9^_Xe&_tDjNq*2ZA)Na-RnyS0lt^T- zKbK<|$f-6;tTj%9B2$QGJ?Z~wKTnWst0A9=^|Ai&Cud|ZMoKKrrYm(2E9m*maDGr= z%#bO|=B&W5!Xu zR#wqNTN~QN3INrR5M?LBmXk}^k$w46%%5LIMz2bjgnDzW$KmG3ia{b2^-D`f&~qyR z5%`DGt@%&Sl8}9w(L+V@u(Wnx-Pdkd6#d8_YYf$Ez zp+F1OCQ){Pz4KwU|3>Nc(zG<3_AL+D#ORFS_xP&pExvJiQ;(8<&{1!?scBALuoEG7 z9kHGg$@OPGPfgiRp-ra&gHD-Kt<}8o?ckJ9`rF_T6|3I#R>bzM)6=!7&R!bhsFP5F zfgt~UNSFdpJpDKfrd(`SrVg>@XcOcj^cY|ZHD7)b%mYk|EsAU+R5@8X3%^m*cteRgF{_$^gic@*wmZRRi2HO$ z@KMJjK^iC$PS<*rqRs-YhCOHZx|jF8^=Vv&zG^!mw+Bex{$cv#4}4HCy&)BZHtC_O zzc5abJ&#a4!+JV!UQb_sorLaKT^Az%BPTyO`;oh2q(pPo+qGmKZDO!$>Awa~@tY{Q zQDS}NkBwenA^>6rg}Zlk^h@WR0KS>tsw=a%a+9^p(LrOf(WCrZa)l5?U;aZ24;0+r zKB-s_PwE*q3Ax#_To#Qw?kzvpvq1PF%gT!5-X9ew3}+}u_u}6JjiQ?blv>MsEDeh- zQ|S*t!MNPcOKR?LliYZtJ?Qy=Zr6v^V83-M9J1Rl#m22c8M{M_GzlN1^Tha4g3|=% z^GoUgs*A$2$5)!Esd9*ld7jxozn zxp0Bu-ampsJRPvHnDs>P`1i$XAjD?+^UsGTbmy~WAIYn$aKI=7*Kgh%IcVto zxmCGoyhdtum3VSU(8ZEkdS^BT79@4_wrJRu8*_Z_i@)D$s{lUP++6MfK@=pDJbv-n zr!FTZ#n6)ahK6I_TzWSF*g{rT_R3vvX%+&G@_gCoH*b{=_BYO4bp&Oj#Car?(`LFz z-2Ny#KCm_5fK)w#vJ=tK>Ao!iCRsejAnOq&o;5x^)u8HY1A}(D3dg^?6j;|DsCQ;q zcI-o<BO&;WV$&b9juWAT|0KaiGB z^Y;v}TDQD1lx>sPkVu{LPx(43RJ1kCj3`cU5CzSLOLW;e9lx)4jhtf{!vHD?(5_>h zquaUdpv2BGLYAicpWxuDzzxkm-CXvE=I=Z_1g08g2FQjVpSg7lH_suiueRSW%<#`l zx$muu+CPl2JimW~V1Msulj7zx-h8P;$kED6oZkR`16ZBLv9Xx@L6%;D(kG(}0cV@)5NoD|e|DiiS=)oo2&mdV<*WBWj2nBq}zgqaSMcx3;%No?j#fLF3Zx&nXC3m^y z$_x|_wC{B87*mUh)otDxdm%we%ZrJG%6pGH@wm5k5h%a_Nw$$CubaJ7AnTNitF zT}6mJT~x?9mXvqHo|E_dDQ#>dp=8R__=E&O$5AyP1XmwkCZ&vEaX6gsPT%C3`a@HZ z9LDh)!O3)`NTZ71MgLl1m;)expL2-e5EhS7ezCC)Q=)5MUYtm_#tFK_Xbu%$ZC5{@ z3#areH%dHKTBc=3Qsro@>v7qVQ^R%wU0Wl`k(rroE}i20K(ePrVzmo^-AapJYpst^ zRSTjs%v;klHZ}%k?|9&ti?O<$(x8p3b1`5<=xO;ZEptrDTIYyDy>n}#r zYM1Gbk!$rqUCoQcwBFAb8r($P=C$yYY2!$Cv&Mc>Ad^XJqPS4;gWwOXW44wB6@wf4=r{si*bfRGMGFS~b4yxsh`qJf8Cs zI`?_*2Q5S0mPW^P!l1=Kj)ui2gwyrzwE^MD;b6LMb>AQK2{T(GXp8(BjEYv@3*Uov zROgsST?_*cra;n+RzyU^V!GYKy_mgauy(7I-D#$ve!R7Xi>I3kp(k{>%I0I4Uz0hr zT%~9=-QFYq^HUt9!^zz+4zvksaiy3-E2i2piYI4ePRH%-47&8@Cm&<6HjJ7@EH!`B zlyaVYCt$fagkIko3CpZKIOOzlBTc%wx#4F&gd}o36M;s7nCFv?qzo`dNS<97wl1+c zFI|A8>wAnql&CuHs&OZ6e@PATj%74oTvb)zK9|+sM_pM?p61qtVz6wYB(-4GZUKR zQKhLuN+)06o1dRw1Jnb`wsp0s>`0%9kfTo$Qwj&nXohLsL7a@~fDwI>c=te#O=IZ_ zT}o1%xQk^=cN}}e(_27K_SCX7k@!Zd)OcI~fiP%oj}ub4FdLjh@rO%HZX7+0%>M>o ziz!cC_oqU1KQiwqo!mb*%)=oeE7=Eh-=OFz!ei6e+1i5b8`{-@5`uno53tehYLb5VBR}oJ8LcK3j_p4?_Qj zaxV{zVEp>g2tXbfx%S8_Jrc|j6ETi|QopQXX69lSI>2e{MIv}DtD73*t(2t?ON3oj<>On72f<^7R7yP^a%^b`yt^Lg*dg(o(nVJ0?gZ z8hm}&ScRmEXAm!FWwY!}3`cmF99*A72#_i!MFGI!jsb>hbABf zU2#?>W$~!CW)M(1*Dr*yjm8fu2#bos!gA8m(#}DjI=+d@+9f_dUJ%&q00HbTDW5G> zn5j1nIA;HCzc`6aGo`JLmo&?X*?Bu&q9Zv)2NN4U6Fw3%iN*2})I}qX`$Ar8I+p~~ zV|SMgH}{L$j$1n{iAaU>T>+Ir;Z@4#GkIO&GtA*n z3&oQU_mIw;gu0KhSNDH}m^Qa?k=1)|89KP#&s3AVDY;VpT*8f;Y>rqG`!$T#rD)`M z^SBR60xB&YSGp3f)=@f)iFWy^B-U&lVKGJ^Kx@B4nZhWUw46b0H~B8v9Y!sWwMkw2 zBne_gS0Ulp!zU8%st22{=Qj-q-BUpckR!Yd>kYDA?uT0c#;W7qT8*K8 z{7r26vNXe791@>S;LMt)Hu}Qa$#sWpN}1Eq$VT(-l&1CBG!!4%ns0h*#I))(F%%E3~a`;M6Vg-y6K@v-Dp~_ z#~GRG+sPEwN4)MW3QYSNnW_{$g|P9fz_R2ch(LH^A0$h9%-Gj#?kkCQMk7PpW%m2t z3X7Byix>UPxe|Zwj{2_8vbS`n_PI1L_)Pl^o;_}j1hL6f5y}#IivME#DSo~8_ntff zc<)``t>OkFcVZ-o)uG15S}(E7e``xv#7!fJE{yc$RC&Aq?k0d-kuawbhy$d<5+@+? z85i$w^+mFiM}@cpXeJWGChWOa9xwEK4Hj}HT2yf=l@Tqy^XmMyceeP}A0ieW1k*jF z!r>ycG+1H*6Dd5DC0WD8#aR7zs$%W#m`pkzKiZd@0BLsds^v;6XrXD=)-jG|J1BS` zaAsW8&_QRp1%db$aHQ^6n-s0uW9O720E-*sU{KMs?+GMGp2XgvSW!AXwlvmcy*Fax z5*&wxMjVh2QXj&l1Mk2#xp)3#OKQ+o>)T6XkBs-5*vAB)e4z*OH?)3jwV(gr8?8Kt zi5h;k<``dRchQMzPML$%Cg*-l2#H{Ry}EKXPIYhe=|V3?VztcjG?SSwZ^v=Y0JSCtF9CR%LVlV^YTPyrN_;rgK5kqtw+aIqZ5KFD)byB<@<6g)z;&dc{oeny0e@7i{wqnoK z5fbYXoA=IKUAof*7Bplt`$T(T(}5_=mah9y>ibZZHYt`*J85z>A0LiYx;5ABkCa35 zb;EUeub$V~TdsD8P%HlJh2;8xp+m8fX=O?5-GGCrsuk8K_PL3}cq5;sgG)k|r?Ahc z5GiAq#hrJd`Hvc=n@fqVD=jP(+B-F-0rQ-jY|Sy|M?Q7wPQ{fFMwFn^{ZN^MFbZ%r zBs-M9)2cu)F{5&*vHt;od-ulNWMt~6KqWXJ-{F90pehZg zJ6YnxudQelT|LDZ+S;8O;LV4)rC?}7xmCH~`|Yl4>Tv0!n@^ku3U&ipCk zG`_Z2P;W-*$994-PR^+GE@t)^?H+wrPbI$AeD{(dJJEA;^KhLSA!}GjieUnJvs;uo zXri%9=ulou0vSpn!q`9sG}zc1VbU#JydsP|#v&<0O|@}CowotdcGJ>*==(b(&+j~7 zG`hM^_@&vG5xoySQw^uwE7Y@3K!&OG0)RCb2*Sd`>DgTi)Frsa#;Jo{)2qUjlP-fADWRIs@G z|0)nLD7iYZGr$H==$87Gt_jgi**Mm=)FA%m!P+t>>4VjKW#hy0Z(h*e_vxrua&vq^ z+hUiW3#hTi;lcEZ8F;UeoGv2_J9&)!sPoQx9Ml#x^^T6(kyahY4kTxi%GI_;@)f-| zl_hTHQx&{?_<_1$Tv!Yszo5EF8UuK*D|<^$TsfQM>*r6-jaBg@O{I7Mh|p-d!-qRe zYRek5|5&jv<>iX>Lau!+Dmo;z%c7v!y!4LcMksftpy&G*%74D=jQ5 z(rbDWt{0`5GvtXh9!d*j+>XQLPAvC~OpYBRNe0l0(Ztw~UwXj&& zBoA(M5(}SkRjpQ{Q>D$R)29#!rjKqNq=`LCEVK9QldLRpX#!y-@m^sjXI7r$%O_OB z;v5nPy9^wTo6*=+6a2FG=TE*Cp<4w1q{f>->enJG&2+k#A`qV{_0UG+RUXFv8)?*i zg=VR*vA+%7tiT8&>>R)eh?8)$^(HUZw5~3XRdIQ7#U6qrKit4Z_GYL=A7eov1_Hw3 z+XO1DA4#~MZ>1X04vC(HS{dI^$>j<_jQEQ{AQ0V09EAM$ws}o!t20c_z0f`KO`ue8 z9Y2HdaqbWqoC46amhAl6cqZ6x)K_Zr^7yr|>K)KC(YJy9rQe5~$DIxhZ7T z+5YPIsa|mI`UeNGty?ZHir&M0eUI+TeO{)Oz$N`5d2fmfztO9*4vUl5vkv9h&;}M6 z7#QffG+g=`OAY?u;03|u;pw$>hjv=feSPtkqq;Q()&O8zHuN+kB1`~sb!{&Y&w4U98i={0yMiNW+-;2v3$av=hhE5eFE zX#XwJLJGF0Lm*c47tZa&K-5zoZg-Ec9sCT^shuXFO*{Q}m(cgmNC}%#T9L~BE5)4> zJm6mOIDy~$WB5=Gfp|z|Ac*EF0zFf0mD?3uYu)pK*PvwfesW(O>d?NZg;Qz#k9o7k zw=MitixGekA;=<;eze z%+Yl}zt@9djm&X-2nK+z20snr#X!$f#tVK>ISkZ^vl{^9Hj|9<2Y|TJ=rF>-Kv{p= zF$4moc=S!TzNZi_E}y_yVZ1mYp`{A0zOI)&U)NvM2!yYkGYmT?;leKS%&jKo$ft!B z!%PT7x5Sh)0--0S9{4-r=)(aT`sioMZ?MUaK2a%hFcdg(=irbYeIC9#2YVAf${^;B ze#-s_Q#)}8AF5W=Sh z%oUeSQXypJty_#R&C~EU7_fJE^Ew#eTwaGJ|DEocBTFoZ#a+)4Pl^Fa9o>`=AOA>4 zC;D309l^RCLca7*x9pLnUg%mrvW@Hp^X!B;A&jR40|Veo{h7BT5%@dd9aM;+pSd=o zrVHo%)H)KxoT9^gq4}qcvVoOJItuHcjop=ujmKp6SQi%9F2c#uEpcx&X8Z3;A)Mw= z=<2nWu zU{&EVjel*E;ZlNW@>=0mbW0_Y-_8`D<45A28D*qkDc zuGo^`Z*9Z>d6WhBOl7{3sFRGL>90jiiH7*;(Z4|U?gY&OcTr;)TQVT=M*EyMh%3!k z9jN)w!_lQqra8#}c{5vqh4D-Q-jly>MKb65-;mzuXDu9PAU&lbnn$V$`fmROhS}oL zYdv2$)e~crAc}2V>Dn@2=#&&dCvn|nrjw7X7xnpTFg+Yg=hhq8C>Yk~J<7UEzoue_ z4|y3(eV0HwmUw_;s~9!w`J$Vn7rx?8uDW#du`Dh-ySPJiWQs;+`z|a=o7Clno*MFa z0yW+3zmDcP^={)PJ8EkB>2KmduIF< z-(G=XK22hMcVTOi?eMnDA*BlW?6HbyE>eB-bhMJFB7Z(F(8xrz@hJLqO}~B$LX7;U zL&uRF0bPWoUKIgjFZ=G4yW+Dc0g#ygDyXht=e<-qShP7{2$_{jM3*k9HYvK?$1M>Y z;DYJ#gZG{YiK|NzuGWC8p}kyaeHY9E%jK#SY01kx-80f;JivoptJ@<9AXz21zXkN+ zU1lH`QpZ1OUJ?cV#KhjT*wND>s*C$FkohL!q$n-t#!FW0N??V>uu6GPHOU-2hp6@@jHE(>-vcC?M%I*OS)7-Q=?|8;&&b%23tn8Gh67R9$kZ z1e^rcOM>PP@J*=<;B~vjiP-6~de5dhhu!1xhIMqA%Ro<;^r^R%*X=Lefr%6cJGu`v zg70dGDKFWxBn4dbYhXtb!MxN0y#r=xB4h`}p&Ji2OYT&SQF&!M8A`XK%-D7B!xr!O z?=8-Ojw}hY&yy2KeRw^`xlWJQ|Jy~TynNLDf)|WxZFl0Zb~LT~^_ez81ny|y#~R^zu8;hHKMpMo>$Q(-dP2;FRKoA7F-BANK(9AUdy-70YW}o zi$_Ojj*yM4-N+D#_PJva-aaU;hi&CdK+@r>om-C9bY`WL)Q*)yCG(Y!3W6KJHbjId z>6bHmPQNo{I{8jAL2@y{1rRL6|j}`GJ~!8pu682{OopS_={4624n+)shAP=z1)+U zd;J3goL*LgDqR>UBrBRSe1XVJtSoN9;43{ z!C5MYoo5Fb6bfu~j7?uA3C=_33o7bXsdKsJkh6i5sEZ&>M|AnwYYJ1%*TR78y7>4e z?GStq0|z9}c`*x%QLgjfZxue9OL9W(8cMk8iJXAx$iUCr)2{KRi6FBRH`} zY7;VRJRO%$3rmW&|0T6J&`5rKV!EHXi)0US@@U(@_DzC^0qbx0ksO-tNI-+BR5+T} z^Xf=$8M$CDH^WhP{T`0cF1zm(kU*D4-y ztg-;u0m>J~+V?bUzBjcpRa>HNXthdR=39J0P1g**VM49nE)XJr_L>S;bcUIQ;L3qB zUeQd-pvYVadb#4F$;q%q+c8p-hW3T>J6lT$TI%8)^uW6Q=_R$$vu~eNfs#H+(xdaN zBC}>=mX{2%S`Y-Z5`VtYf23Gd*R;Iuf|bm!exYfde*>&+#clhcf*;T|50lNu+hXg4 zG^+xQv)s_DF>+r0KDoR|<8{tfbjl2?t5jXx@$PrdqgK*q{6 V8cF;ew|(?rC3$tZynByd{TJMDk6r)( literal 0 HcmV?d00001 diff --git a/core/simpleGP.py b/core/cigp.py similarity index 100% rename from core/simpleGP.py rename to core/cigp.py From f05040e6e989f3dfb5a09d9924714190f2bd3bdc Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 16:36:21 +0800 Subject: [PATCH 05/20] update structure --- README.md | 4 ++-- core/{variationalSparseGP.py => sgpr.py} | 2 ++ core/{stochasticVariationalGP.py => svgp.py} | 0 3 files changed, 4 insertions(+), 2 deletions(-) rename core/{variationalSparseGP.py => sgpr.py} (99%) rename core/{stochasticVariationalGP.py => svgp.py} (100%) diff --git a/README.md b/README.md index b65c2b8..d6a5661 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Despite that there are many successful GP libraries, such as GPy, GPflow, and GP Thus we want to create a simple and easy-to-use GP library that can be used by anyone. MiniGP is designed to be simple and easy to understand. It is a great tool for educational purposes. We also try to make it easy for anyone to use without a lot of background knowledge of GP. ## Useful and practical GP Models: -- [CIGP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/core/cigp.py): simple yet accurate multi-output regression model with complexity $O(n^3 d)$ for n training points with d outputs. +- [CIGP](https://github.com/IceLab-X/Mini-GP/blob/6899d3fb947293122d758fb6ef4dd4799a799eac/core/cigp.py): simple yet accurate multi-output regression model with complexity $O(n^3 d)$ for n training points with d outputs. - [NeuralKernel](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/GPmodels_Classic/04_neuralKernelGP.ipynb): automatic kernel learning with neural network structured kernel. - [GPU&GP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb): Inference method that leverage GPU acceleration for GP model. This can be used in sparse GP model to speed up the computation for large inducing point number. - [AutoGP](https://github.com/IceLab-X/Mini-GP/blob/64873663f7efb63de9a6f33d1de207e7a2db1f5d/core/autoGP.py): A powerful GP model that incorporates a learnable input warp module, a deep neural kernel, and Sparse Gaussian Processes. @@ -36,7 +36,7 @@ More details can be found in the [README](https://github.com/IceLab-X/Mini-GP/bl - **GPmodels_Advance:** Advance GP models, including GP with GPU acceleration, and automatic GP. - 01_GP&GPU: a GP model leverage GPU acceleration. - 01_GP&GPU_GPTutorial: Algorithms for GP leverage GPU acceleration. - - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. [Gaussian Process Dynamical Models](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) + - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. ([Gaussian Process Dynamical Models](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) ) - **GPmodels_Classic:** basic GP model and its variation, such as DeepKernel GP, InputWarp GP . It demonstrates how to build a GP model with the GP_CommonCalculation. - 01_simpleGP_GPTutorial: simple GP tutorial in both English and Chinese. This is a good starting point for beginners. diff --git a/core/variationalSparseGP.py b/core/sgpr.py similarity index 99% rename from core/variationalSparseGP.py rename to core/sgpr.py index 178f2d8..965b5f3 100644 --- a/core/variationalSparseGP.py +++ b/core/sgpr.py @@ -82,6 +82,8 @@ def forward(self, X, Y, Xte_normalized): return mean, var_diag + + def train_adam(self, X, Y, niteration=10, lr=0.1): optimizer = torch.optim.Adam(self.parameters(), lr=lr) optimizer.zero_grad() diff --git a/core/stochasticVariationalGP.py b/core/svgp.py similarity index 100% rename from core/stochasticVariationalGP.py rename to core/svgp.py From 6db9d67b21ddf7c77b4a76373387b855028d4fb7 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:03:43 +0800 Subject: [PATCH 06/20] update structure --- GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb | 33 ++++------ core/GP_CommonCalculation.py | 72 ++++++++++++++++++--- core/deepkernelGP.py | 2 +- core/{highOrderGP.py => hogp.py} | 0 core/inputWarpedGP.py | 2 +- 5 files changed, 75 insertions(+), 34 deletions(-) rename core/{highOrderGP.py => hogp.py} (100%) diff --git a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb index d691a2e..b55f286 100644 --- a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb +++ b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb @@ -9,7 +9,7 @@ "\n", "Introduction\n", "\n", - "With the advancement of hardware technology, leveraging GPUs for parallel computing in Gaussian processes has become a prominent question. After significant progress in developing scalable GP models, I am excited to introduce a new inference method for standard Gaussian processes that enables GPU acceleration. This method allows for training exact Gaussian processes with thousands of data points in seconds, using just a single GPU on a laptop.\n" + "With the advancement of hardware technology, leveraging GPUs for parallel computing in Gaussian processes has become a prominent question. After significant progress in developing scalable GP models, I am excited to introduce a new inference method for standard Gaussian processes that enables GPU acceleration. This method achieved over a fourfold speedup in this demo, using just a single GPU on a laptop.\n" ], "metadata": { "collapsed": false @@ -17,15 +17,12 @@ }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 228, "outputs": [], "source": [ "import os\n", "import time\n", "import sys\n", - "\n", - "sys.path.append('..') # Add parent folder to sys.path\n", - "\n", "import torch\n", "import torch.nn as nn\n", "import numpy as np\n", @@ -34,7 +31,7 @@ "from core.cigp import cigp\n", "import torch.optim as optim\n", "from core.kernel import ARDKernel\n", - "\n", + "sys.path.append('..') # Add parent folder to sys.path\n", "os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS\n", "JITTER = 1e-6\n", "EPS = 1e-10\n", @@ -44,8 +41,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-08-21T07:38:22.495620400Z", - "start_time": "2024-08-21T07:38:22.485220900Z" + "end_time": "2024-08-21T08:43:29.702787500Z", + "start_time": "2024-08-21T08:43:29.698236Z" } } }, @@ -66,8 +63,6 @@ "outputs": [], "source": [ "device = torch.device('cuda')\n", - "\n", - "\n", "def conjugate_gradient(A, b, x0=None, tol=1e-1, max_iter=1000):\n", " if x0 is None:\n", " x = torch.zeros_like(b)\n", @@ -295,7 +290,7 @@ " for ii in range(nvecs):\n", " w = torch.sign(torch.randn(n, dtype=A.dtype, device=A.device)) # Random Rademacher vector\n", " v0 = w / (torch.norm(w)+EPS)\n", - " #print(v0)\n", + "\n", " # Lanczos algorithm\n", " V = torch.zeros((n, m), dtype=A.dtype, device=A.device)\n", " alpha = torch.zeros(m, dtype=A.dtype, device=A.device)\n", @@ -316,13 +311,10 @@ " w = w - alpha[j].clone() * V[:, j].clone()\n", "\n", " H = torch.diag(alpha) + torch.diag(beta, 1) + torch.diag(beta, -1)\n", - " #print(V[:, j])\n", - " # print(w)\n", - " # print(torch.diag(alpha),torch.diag(beta, 1),torch.diag(beta, -1))\n", - " # print(H)\n", + "\n", " eigvals, eigvecs = torch.linalg.eig(H)\n", " eigvals, eigvecs = eigvals.real, eigvecs.real\n", - " #print(eigvals)\n", + "\n", " theta = torch.abs(eigvals)\n", " gamma2 = eigvecs[0, :] ** 2\n", "\n", @@ -416,10 +408,11 @@ " Sigma = kernel(xtr, xtr) + torch.eye(n, device=device) * torch.exp(log_beta).pow(-1) + JITTER * torch.eye(n,\n", " device=device)\n", " Sigma_inv_y = conjugate_gradient(Sigma, ytr)\n", - " #option1:\n", + " # Original Implementation:\n", " # L = torch.linalg.cholesky(Sigma)\n", " # nll = L.diag().log().sum() +0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", - " #option2: torch autograd bug???\n", + "\n", + " # New inference method:\n", "\n", " nll = 0.5 * lanc_quad_logdet(\n", " Sigma) +0.5 * (torch.matmul(ytr.t(), Sigma_inv_y) + 0.5* n * torch.log(2 * torch.tensor(PI)))\n", @@ -451,7 +444,6 @@ " #option 1 (standard):\n", " # K_ss= kernel(xte, xte)\n", " # var=K_ss- (K_s.t()@conjugate_gradient(Sigma, K_s))\n", - "\n", " # var_diag=var.sum(dim = 0).view(-1, 1)\n", "\n", " #option 2 (fast):\n", @@ -460,9 +452,6 @@ " # The first term of above equation might be different if you use a different kernel!\n", "\n", " var_diag = var_diag + log_beta.exp().pow(-1)\n", - "\n", - " # Denormalize\n", - " #mean, var_diag = data_normalizer.denormalize_result(mean, var_diag)\n", " return mean, var_diag" ], "metadata": { diff --git a/core/GP_CommonCalculation.py b/core/GP_CommonCalculation.py index 5ad3547..b463e67 100644 --- a/core/GP_CommonCalculation.py +++ b/core/GP_CommonCalculation.py @@ -53,6 +53,58 @@ def conjugate_gradient(A, b, x0=None, tol=1e-1, max_iter=1000): return x +def lanc_quad_logdet(A, m=10, nvecs=10): + """ + Estimate the log-determinant of a symmetric positive definite matrix using + the Stochastic Lanczos Quadrature (SLQ) method. + + Parameters: + A (torch.Tensor): The symmetric positive definite input matrix. + m (int): Number of Lanczos steps (degree). + nvecs (int): Number of starting vectors. + + Returns: + z1 mean: The average of estimates for starting vectors. + """ + n = A.shape[0] + z1 = torch.zeros(nvecs, dtype=A.dtype, device=A.device) + + for ii in range(nvecs): + w = torch.sign(torch.randn(n, dtype=A.dtype, device=A.device)) # Random Rademacher vector + v0 = w / (torch.norm(w)+EPS) + + # Lanczos algorithm + V = torch.zeros((n, m), dtype=A.dtype, device=A.device) + alpha = torch.zeros(m, dtype=A.dtype, device=A.device) + beta = torch.zeros(m - 1, dtype=A.dtype, device=A.device) + V[:, 0] = v0.clone() + + w = A @ V[:, 0].clone() + + alpha[0] = torch.dot(V[:, 0].clone(), w) + w = w - alpha[0].clone() * V[:, 0].clone() + + for j in range(1, m): + beta[j - 1] = torch.norm(w) + if beta[j - 1] != 0: + V[:, j] = w / (beta[j - 1].clone()+EPS) + w = A @ V[:, j].clone() - beta[j - 1].clone() * V[:, j - 1].clone() + alpha[j] = torch.dot(V[:, j].clone(), w) + w = w - alpha[j].clone() * V[:, j].clone() + + H = torch.diag(alpha) + torch.diag(beta, 1) + torch.diag(beta, -1) + + eigvals, eigvecs = torch.linalg.eig(H) + eigvals, eigvecs = eigvals.real, eigvecs.real + + theta = torch.abs(eigvals) + gamma2 = eigvecs[0, :] ** 2 + + # Sum of gamma2 * log(theta) + count = torch.sum(gamma2 * torch.log(theta)) + z1[ii] = (count * n).real + + return z1.mean() def compute_inverse_and_log_det_positive_eigen(matrix): """ @@ -92,7 +144,7 @@ def Gaussian_log_likelihood(y, cov, Kinv_method='cholesky'): mean (torch.Tensor): The mean of the Gaussian distribution. cov (torch.Tensor): The covariance matrix of the Gaussian distribution. Kinv_method (str, optional): The method to compute the inverse of the covariance matrix. - Defaults to 'cholesky3'. + Defaults to 'cholesky'. Returns: torch.Tensor: The log-likelihood of the Gaussian distribution. @@ -121,23 +173,23 @@ def Gaussian_log_likelihood(y, cov, Kinv_method='cholesky'): else: gamma = torch.linalg.solve_triangular(L, y, upper=False) return -0.5 * (gamma.T @ gamma + 2 * L.diag().log().sum() + len(y) * np.log(2 * np.pi)) - - elif Kinv_method == 'torch_distribution_MN1': - L = torch.linalg.cholesky(cov) - return torch.distributions.MultivariateNormal(y, scale_tril=L).log_prob(y) - elif Kinv_method == 'torch_distribution_MN2': - return torch.distributions.MultivariateNormal(y, cov).log_prob(y) elif Kinv_method == 'eigen': K_inv, log_det_K = compute_inverse_and_log_det_positive_eigen(cov) return -0.5 * (y.T @ K_inv @ y + log_det_K + len(y) * np.log(2 * np.pi)) elif Kinv_method == 'conjugate': - L = torch.linalg.cholesky(cov) + Sigma_inv_y = conjugate_gradient(cov, y) return -0.5 * (torch.matmul(y.t(), Sigma_inv_y) - 0.5 * len(y) * torch.log( - 2 * torch.tensor(torch.pi))) - L.diag().log().sum() + 2 * torch.tensor(torch.pi))) - 0.5 * lanc_quad_logdet(cov) + elif Kinv_method == 'torch_distribution_MN1': + L = torch.linalg.cholesky(cov) + return torch.distributions.MultivariateNormal(y, scale_tril=L).log_prob(y) + elif Kinv_method == 'torch_distribution_MN2': + return torch.distributions.MultivariateNormal(y, cov).log_prob(y) + else: - raise ValueError('Kinv_method should be either direct or cholesky') + raise ValueError('Kinv_method is not supported.') def conditional_Gaussian(y, Sigma, K_s, K_ss, Kinv_method='cholesky'): diff --git a/core/deepkernelGP.py b/core/deepkernelGP.py index a09f105..0aa2864 100644 --- a/core/deepkernelGP.py +++ b/core/deepkernelGP.py @@ -141,7 +141,7 @@ def print_parameters(self): xte_normalized = normalizer.normalize(xte, 'x') # Define the layer structure for the neural network - layer_structure = [2,20,10, 2] + layer_structure = [2,20,40,10, 2] # Initialize and train the model model = deepkernelGP(input_dim=2, layer_structure=layer_structure) diff --git a/core/highOrderGP.py b/core/hogp.py similarity index 100% rename from core/highOrderGP.py rename to core/hogp.py diff --git a/core/inputWarpedGP.py b/core/inputWarpedGP.py index 384967d..d2631ef 100644 --- a/core/inputWarpedGP.py +++ b/core/inputWarpedGP.py @@ -8,7 +8,7 @@ # I use torch (1.11.0) for this work. lower version may not work. from core.kernel import ARDKernel import os -from core.simpleGP import cigp +from core.cigp import cigp os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS JITTER = 1e-6 From 2944faa167c70768c5be9eff59926c3e1305e60a Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:04:44 +0800 Subject: [PATCH 07/20] Delete GPmodels_Advance/01_GP&GPU.ipynb --- GPmodels_Advance/01_GP&GPU.ipynb | 381 ------------------------------- 1 file changed, 381 deletions(-) delete mode 100644 GPmodels_Advance/01_GP&GPU.ipynb diff --git a/GPmodels_Advance/01_GP&GPU.ipynb b/GPmodels_Advance/01_GP&GPU.ipynb deleted file mode 100644 index ed3b3e5..0000000 --- a/GPmodels_Advance/01_GP&GPU.ipynb +++ /dev/null @@ -1,381 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:41.212564800Z", - "start_time": "2024-07-30T02:34:38.680616300Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "cuda\n" - ] - } - ], - "source": [ - "import os\n", - "import time\n", - "import sys\n", - "sys.path.append('..') # Add parent folder to sys.path\n", - "\n", - "import torch\n", - "import torch.nn as nn\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from data_sample import generate_example_data as data\n", - "from core.kernel import ARDKernel\n", - "import core.GP_CommonCalculation as GP\n", - "# from torch.autograd import Variable\n", - "import torch.optim as optim\n", - "os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS\n", - "JITTER = 1e-6\n", - "EPS = 1e-10\n", - "PI = 3.1415\n", - "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", - "print(device)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "outputs": [], - "source": [ - "# generate example data\n", - "xtr, ytr,xte,yte = data.generate(2000,100,seed=42)\n", - "xtr = xtr.to(dtype=torch.float64,device=device)\n", - "ytr = ytr.to(dtype=torch.float64, device=device)\n", - "xte = xte.to(dtype=torch.float64,device=device)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:43.799887800Z", - "start_time": "2024-07-30T02:34:41.938718400Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 4, - "outputs": [], - "source": [ - "kernel= ARDKernel(1)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:43.803622600Z", - "start_time": "2024-07-30T02:34:43.800899600Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 5, - "outputs": [], - "source": [ - "log_beta = nn.Parameter(torch.ones(1, dtype=torch.float64, device=device) * -4)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:43.841179100Z", - "start_time": "2024-07-30T02:34:43.804622700Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 6, - "outputs": [], - "source": [ - "def negative_log_likelihood(xtr, ytr, kernel,log_beta):\n", - " n = xtr.shape[0]\n", - " Sigma = kernel(xtr, xtr) + torch.eye(xtr.size(0), device=device) * torch.exp(log_beta) + JITTER * torch.eye(xtr.size(0), device=device)\n", - "\n", - " return -GP.Gaussian_log_likelihood(ytr,Sigma,Kinv_method='conjugate')" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:43.846682300Z", - "start_time": "2024-07-30T02:34:43.844167400Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 7, - "outputs": [], - "source": [ - "def forward(xtr, ytr, xte, kernel,log_beta):\n", - "\n", - " Sigma = kernel(xtr, xtr) + torch.eye(xtr.size(0), device=device) * torch.exp(log_beta) + JITTER * torch.eye(xtr.size(0), device=device)\n", - "\n", - " K_s = kernel(xtr, xte)\n", - " K_ss=kernel(xte,xte)\n", - " mean,var=GP.conditional_Gaussian(ytr,Sigma,K_s,K_ss,Kinv_method=\"conjugate\")\n", - " var_diag=var.sum(dim = 0).view(-1, 1)\n", - " var_diag = var_diag + log_beta.exp().pow(-1)\n", - "\n", - "\n", - " return mean,var_diag" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:44.089537200Z", - "start_time": "2024-07-30T02:34:44.082025100Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 8, - "outputs": [], - "source": [ - "def train_adam(xtr, ytr, kernel, log_beta, niteration=10, lr=0.1):\n", - " # Adam optimizer\n", - " optimizer = optim.Adam([\n", - " {'params': kernel.parameters()},\n", - " {'params': [log_beta]}\n", - " ], lr=lr)\n", - "\n", - " for i in range(niteration):\n", - " optimizer.zero_grad()\n", - " loss = negative_log_likelihood(xtr, ytr, kernel, log_beta)\n", - " loss.backward()\n", - " optimizer.step()\n", - "\n", - " # Print kernel parameters\n", - " #for name, param in kernel.named_parameters():\n", - " #if param.requires_grad:\n", - " #print(f'{name}: {param.data}')\n", - "\n", - " #print('log_beta:', log_beta.data)\n", - " print('iter', i, 'nll:{:.5f}'.format(loss.item()))" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:34:44.725480300Z", - "start_time": "2024-07-30T02:34:44.718400500Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 9, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "iter 0 nll:382502.06290\n", - "iter 1 nll:299551.12541\n", - "iter 2 nll:220919.77021\n", - "iter 3 nll:156796.60055\n", - "iter 4 nll:113465.22244\n", - "iter 5 nll:87426.06698\n", - "iter 6 nll:71500.41040\n", - "iter 7 nll:60641.16830\n", - "iter 8 nll:52378.21319\n", - "iter 9 nll:45658.33479\n", - "iter 10 nll:40023.15320\n", - "iter 11 nll:35127.48869\n", - "iter 12 nll:30611.39181\n", - "iter 13 nll:26281.49448\n", - "iter 14 nll:22253.33022\n", - "iter 15 nll:18817.27484\n", - "iter 16 nll:16142.44942\n", - "iter 17 nll:14162.87250\n", - "iter 18 nll:12704.92916\n", - "iter 19 nll:11613.04566\n", - "iter 20 nll:10776.21731\n", - "iter 21 nll:10115.66322\n", - "iter 22 nll:9575.73884\n", - "iter 23 nll:9119.04415\n", - "iter 24 nll:8721.72755\n", - "iter 25 nll:8368.84263\n", - "iter 26 nll:8050.87485\n", - "iter 27 nll:7761.44815\n", - "iter 28 nll:7496.04140\n", - "iter 29 nll:7251.27441\n", - "iter 30 nll:7024.50625\n", - "iter 31 nll:6813.60053\n", - "iter 32 nll:6616.78275\n", - "iter 33 nll:6432.54961\n", - "iter 34 nll:6259.61008\n", - "iter 35 nll:6096.84465\n", - "iter 36 nll:5943.27521\n", - "iter 37 nll:5798.04295\n", - "iter 38 nll:5660.39018\n", - "iter 39 nll:5529.64619\n", - "iter 40 nll:5405.21513\n", - "iter 41 nll:5286.56598\n", - "iter 42 nll:5173.22533\n", - "iter 43 nll:5064.76840\n", - "iter 44 nll:4960.81452\n", - "iter 45 nll:4861.02178\n", - "iter 46 nll:4765.10946\n", - "iter 47 nll:4672.74874\n", - "iter 48 nll:4583.71122\n", - "iter 49 nll:4497.76934\n", - "iter 50 nll:4414.71608\n", - "iter 51 nll:4334.36427\n", - "iter 52 nll:4256.54306\n", - "iter 53 nll:4181.09727\n", - "iter 54 nll:4107.88511\n", - "iter 55 nll:4036.77738\n", - "iter 56 nll:3967.65599\n", - "iter 57 nll:3900.41262\n", - "iter 58 nll:3834.94790\n", - "iter 59 nll:3771.17120\n", - "iter 60 nll:3708.99870\n", - "iter 61 nll:3648.35366\n", - "iter 62 nll:3589.16513\n", - "iter 63 nll:3531.36803\n", - "iter 64 nll:3474.90112\n", - "iter 65 nll:3419.70835\n", - "iter 66 nll:3365.73889\n", - "iter 67 nll:3312.94422\n", - "iter 68 nll:3261.27898\n", - "iter 69 nll:3210.70270\n", - "iter 70 nll:3161.17472\n", - "iter 71 nll:3112.65987\n", - "iter 72 nll:3065.12405\n", - "iter 73 nll:3018.53517\n", - "iter 74 nll:2972.86344\n", - "iter 75 nll:2928.08045\n", - "iter 76 nll:2884.15942\n", - "iter 77 nll:2841.07566\n", - "iter 78 nll:2798.80528\n", - "iter 79 nll:2757.32615\n", - "iter 80 nll:2716.61606\n", - "iter 81 nll:2676.65473\n", - "iter 82 nll:2637.42346\n", - "iter 83 nll:2598.90405\n", - "iter 84 nll:2561.07810\n", - "iter 85 nll:2523.92877\n", - "iter 86 nll:2487.44145\n", - "iter 87 nll:2451.59813\n", - "iter 88 nll:2416.38567\n", - "iter 89 nll:2381.79021\n", - "iter 90 nll:2347.79598\n", - "iter 91 nll:2314.39184\n", - "iter 92 nll:2281.56314\n", - "iter 93 nll:2249.29889\n", - "iter 94 nll:2217.58565\n", - "iter 95 nll:2186.41390\n", - "iter 96 nll:2155.77005\n", - "iter 97 nll:2125.64497\n", - "iter 98 nll:2096.02724\n", - "iter 99 nll:2066.90655\n" - ] - } - ], - "source": [ - "train_adam(xtr, ytr, kernel, log_beta, niteration=100,lr=0.1)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:35:13.918021400Z", - "start_time": "2024-07-30T02:34:45.618554100Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 10, - "outputs": [], - "source": [ - "with torch.no_grad():\n", - " ypred, yvar = forward(xtr, ytr, xte, kernel,log_beta)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T02:35:16.351396700Z", - "start_time": "2024-07-30T02:35:16.053699700Z" - } - } - }, - { - "cell_type": "code", - "execution_count": 13, - "outputs": [ - { - "data": { - "text/plain": "

", - "image/png": "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OoIykpBGxWRZRkNDA6xWKwRBSOp9u91uVFVV4fjx48NuX02J43FODx7n9OBxTg8e5/RJ1bFWFAUejwcVFRUQxaGrUrI+syKKIiorK1P6GDabjX8MacDjnB48zunB45wePM7pk4pjPVxGJYYFtkRERKRqDFaIiIhI1RisDMFgMOCee+6BwWDI9FByGo9zevA4pwePc3rwOKePGo511hfYEhERUW5jZoWIiIhUjcEKERERqRqDFSIiIlI1BitERESkamM6WHn88ccxYcIEGI1GLFy4EO+9996Q19+4cSMWLlwIo9GIiRMn4le/+lWaRpr94jnWf/rTn7B8+XKUlJTAZrPh7LPPxt/+9rc0jjZ7xfuajvnggw+g1WpxxhlnpHaAOSLe4xwMBvG9730P1dXVMBgMmDRpEv7v//4vTaPNXvEe52eeeQbz5s2D2WxGeXk5vv71r6OtrS1No81O7777Li699FJUVFRAEAS88sorw94mI+dCZYx67rnnFJ1Opzz55JNKbW2tcvvttysWi0U5duzYgNc/cuSIYjabldtvv12pra1VnnzySUWn0ykvvvhimkeefeI91rfffrvyk5/8RNm6davy6aefKmvWrFF0Op3y0UcfpXnk2SXe4xzT2dmpTJw4UVmxYoUyb9689Aw2iyVynC+77DJlyZIlyoYNG5S6ujrlww8/VD744IM0jjr7xHuc33vvPUUUReV//ud/lCNHjijvvfeeMmvWLOWKK65I88izyxtvvKF873vfU1566SUFgPLyyy8Pef1MnQvHbLCyePFi5eabb+5z2fTp05W77757wOuvXr1amT59ep/LvvnNbypnnXVWysaYK+I91gOZOXOmsm7dumQPLackepyvvvpq5fvf/75yzz33MFgZgXiP81//+lfFbrcrbW1t6Rhezoj3OD/44IPKxIkT+1z26KOPKpWVlSkbY64ZSbCSqXPhmJwGCoVC2LFjB1asWNHn8hUrVmDTpk0D3mbz5s2nXf/zn/88tm/fjnA4nLKxZrtEjnV/sizD4/GgsLAwFUPMCYke59/+9rc4fPgw7rnnnlQPMSckcpxfe+01LFq0CA888ADGjRuHqVOn4q677oLf70/HkLNSIsd56dKlOHHiBN544w0oioLm5ma8+OKLuOSSS9Ix5DEjU+fCrN/IMBGtra2QJAkOh6PP5Q6HA01NTQPepqmpacDrRyIRtLa2ory8PGXjzWaJHOv+HnroIXi9XnzlK19JxRBzQiLH+eDBg7j77rvx3nvvQasdk28FcUvkOB85cgTvv/8+jEYjXn75ZbS2tuKWW25Be3s761YGkchxXrp0KZ555hlcffXVCAQCiEQiuOyyy/Dzn/88HUMeMzJ1LhyTmZUYQRD6fK8oymmXDXf9gS6n08V7rGP+8Ic/YO3atXj++edRWlqaquHljJEeZ0mScO2112LdunWYOnVquoaXM+J5PcuyDEEQ8Mwzz2Dx4sW4+OKL8fDDD+N3v/sdsyvDiOc419bW4rbbbsMPf/hD7NixA2+++Sbq6upw8803p2OoY0omzoVj8uNUcXExNBrNaRF6S0vLaRFjTFlZ2YDX12q1KCoqStlYs10ixzrm+eefx7/927/hhRdewIUXXpjKYWa9eI+zx+PB9u3bsXPnTtx6660AoidVRVGg1Wrx1ltv4YILLkjL2LNJIq/n8vJyjBs3Dna7veeyGTNmQFEUnDhxAlOmTEnpmLNRIsd5/fr1OOecc/Cd73wHADB37lxYLBace+65uPfee5n9TpJMnQvHZGZFr9dj4cKF2LBhQ5/LN2zYgKVLlw54m7PPPvu067/11ltYtGgRdDpdysaa7RI51kA0o3LjjTfi2Wef5ZzzCMR7nG02G3bv3o1du3b1fN18882YNm0adu3ahSVLlqRr6FklkdfzOeecg4aGBnR1dfVc9umnn0IURVRWVqZ0vNkqkePs8/kgin1PaRqNBsCpT/40ehk7F6a0fFfFYsvifvOb3yi1tbXKHXfcoVgsFuXo0aOKoijK3XffrVx//fU9148t17rzzjuV2tpa5Te/+Q2XLo9QvMf62WefVbRarfKLX/xCaWxs7Pnq7OzM1FPICvEe5/64Gmhk4j3OHo9HqaysVL785S8re/fuVTZu3KhMmTJF+fd///dMPYWsEO9x/u1vf6totVrl8ccfVw4fPqy8//77yqJFi5TFixdn6ilkBY/Ho+zcuVPZuXOnAkB5+OGHlZ07d/YsEVfLuXDMBiuKoii/+MUvlOrqakWv1ysLFixQNm7c2POzG264QTnvvPP6XP+f//ynMn/+fEWv1ys1NTXKL3/5yzSPOHvFc6zPO+88BcBpXzfccEP6B55l4n1N98ZgZeTiPc779u1TLrzwQsVkMimVlZXKqlWrFJ/Pl+ZRZ594j/Ojjz6qzJw5UzGZTEp5ebly3XXXKSdOnEjzqLPLO++8M+T7rVrOhYKiMD9GRERE6jUma1aIiIgoezBYISIiIlVjsEJERESqxmCFiIiIVI3BChEREakagxUiIiJSNQYrREREpGoMVoiIiEjVGKwQERGRqjFYISIiIlVjsEJERESqxmCFiIiIVO3/A3XqX9Ns6VSeAAAAAElFTkSuQmCC" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.fill_between(xte.cpu().squeeze().numpy(), ypred.cpu().squeeze().detach().numpy() - 1.96 * np.sqrt(yvar.cpu().squeeze().detach().numpy()), ypred.cpu().squeeze().detach().numpy() + 1.96 * np.sqrt(yvar.cpu().squeeze().detach().numpy()), alpha=0.2, label='95% Confidence interval')\n", - "subset_size = 100 # Adjust this to the desired subset size\n", - "indices = torch.randperm(xtr.size(0))[:subset_size]\n", - "\n", - "xtr_subset = xtr[indices]\n", - "ytr_subset = ytr[indices]\n", - "\n", - "# Move the subset data to CPU for plotting\n", - "xtr_subset_cpu = xtr_subset.cpu().numpy()\n", - "ytr_subset_cpu = ytr_subset.cpu().numpy()\n", - "\n", - "# Plot the subset of the training data\n", - "plt.plot(xtr_subset_cpu, ytr_subset_cpu, 'b+')\n", - "plt.plot(xte.cpu(),yte.cpu())\n", - "\n", - "plt.show()" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2024-07-30T08:18:34.352917500Z", - "start_time": "2024-07-30T08:18:34.259172800Z" - } - } - }, - { - "cell_type": "code", - "execution_count": null, - "outputs": [], - "source": [], - "metadata": { - "collapsed": false - } - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} From 309a93ff18f7979da11851554aacbc7e75c72a0e Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:07:56 +0800 Subject: [PATCH 08/20] update structure --- README.md | 11 +++++------ asset/Model_comparison.py | 2 +- asset/Regression_test.py | 6 +++--- core/README.md | 10 +++++----- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index d6a5661..746671a 100644 --- a/README.md +++ b/README.md @@ -34,25 +34,24 @@ More details can be found in the [README](https://github.com/IceLab-X/Mini-GP/bl - **GPmodels_Advance:** Advance GP models, including GP with GPU acceleration, and automatic GP. - - 01_GP&GPU: a GP model leverage GPU acceleration. - 01_GP&GPU_GPTutorial: Algorithms for GP leverage GPU acceleration. - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. ([Gaussian Process Dynamical Models](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) ) - **GPmodels_Classic:** basic GP model and its variation, such as DeepKernel GP, InputWarp GP . It demonstrates how to build a GP model with the GP_CommonCalculation. - 01_simpleGP_GPTutorial: simple GP tutorial in both English and Chinese. This is a good starting point for beginners. - 01_simpleGP, a basic GP model. It demonstrates how to build a GP model with the GP_CommonCalculation. - - 02_deepKernelGP, a GP model with deep kernel. [Deep Kernel Learning](https://arxiv.org/abs/1511.02222) + - 02_deepKernelGP, a GP model with deep kernel. ([Deep Kernel Learning](https://arxiv.org/abs/1511.02222) ) - 03_logTransformWarpGP, a GP model with log transform on the target values, this can improve the model performance when the noise does not follow Gaussian distribution. - 04_neuralKernelGP, a GP model with neural kernel. - **GPmodels_MultiOutput:** provides tools for implementing Gaussian Process models with multiple outputs. - 01_IntrinsicModel: Foundation work for multi-output GP. - - 02_hogp_GPTutorial_Chinese: high-oreder GP in Chinese. [Scalable High-Order Gaussian Process Regression](https://proceedings.mlr.press/v89/zhe19a.html) + - 02_hogp_GPTutorial_Chinese: high-oreder GP in Chinese. ([Scalable High-Order Gaussian Process Regression](https://proceedings.mlr.press/v89/zhe19a.html) ) - **GPmodels_Sparse:** provides tools for implementing sparse Gaussian Process models. - - 01_sgpr_GPTutorial: A detailed tutorial for Sparse Gaussian Process with variational learning inducing points. [Variational Learning of Inducing Variables in Sparse Gaussian -Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf) + - 01_sgpr_GPTutorial: A detailed tutorial for Sparse Gaussian Process with variational learning inducing points. ([Variational Learning of Inducing Variables in Sparse Gaussian +Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - 02_svgp, A demo for implementing mini-batch gradient descent on SVGP allows training a GP with 10k inputs in 2 seconds. - - 02_svgp_GPTutorial, A detailed tutorial for Stochastic Variational Interference GP model that can allow mini-batch training. [Gaussian Process for Big Data](https://arxiv.org/abs/1411.2005) + - 02_svgp_GPTutorial, A detailed tutorial for Stochastic Variational Interference GP model that can allow mini-batch training. ([Gaussian Process for Big Data](https://arxiv.org/abs/1411.2005)) - **Debug_NaNError_FAQ:** Frequently asked questions for GP model. It contains some techniques to solve NaN problem in GP model. More details can be found in the README file in the Debug_NaNError_FAQ folder. - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. diff --git a/asset/Model_comparison.py b/asset/Model_comparison.py index 451c419..9b4a789 100644 --- a/asset/Model_comparison.py +++ b/asset/Model_comparison.py @@ -5,7 +5,7 @@ from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score from core.autoGP import autoGP -from core.variationalSparseGP import vsgp +from core.sgpr import vsgp from core.kernel import ARDKernel, NeuralKernel import core.GP_CommonCalculation as GP torch.set_default_dtype(torch.float64) diff --git a/asset/Regression_test.py b/asset/Regression_test.py index b4f36fa..ab9dfc7 100644 --- a/asset/Regression_test.py +++ b/asset/Regression_test.py @@ -7,9 +7,9 @@ from matplotlib import pyplot as plt import data_sample.generate_example_data as data from core.parametricGP import parametricGP -from core.stochasticVariationalGP import svgp -from core.simpleGP import cigp -from core.variationalSparseGP import vsgp +from core.svgp import svgp +from core.cigp import cigp +from core.sgpr import vsgp from torch.utils.data import DataLoader, TensorDataset import core.GP_CommonCalculation as GP from core.kernel import ARDKernel diff --git a/core/README.md b/core/README.md index 8ba5c87..fda5daf 100644 --- a/core/README.md +++ b/core/README.md @@ -9,11 +9,11 @@ This README provides an overview of the folder's structure, key files, and instr ## Python scripts for the core models - autoGP.py: A GP model that automatically standardize the data and choose the kernel for you. It is a simple GP model that is easy to use for general users. - - deepkernelGP.py: A GP model that uses a deep kernel to model the data. It is a more complex GP model that is suitable for users who want to model complex data. [Original paper](https://arxiv.org/abs/1511.02222) - - cigp_baseline.py: A basic GP model that is used as a baseline methods, and it is used for compare the performance of the other GP models. - - hogp.py: A GP model that uses high-order output to model the data. It is suitable for users who want to model data with high-order output. [Original paper](https://proceedings.mlr.press/v89/zhe19a.html) - - sgpr.py: A sparse GP model that uses variational inference to approximate the posterior distribution. It is suitable for users who want to model data with size between 1k to 10k. [Original paper](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf) - - svgp.py: A sparse GP model that uses stochastic variational inference that allow Mini-Batch gradient descent. It is suitable for users who want to model data with size over 10k. [Original paper](https://arxiv.org/abs/1411.2005) + - deepkernelGP.py: A GP model that uses a deep kernel to model the data. It is a more complex GP model that is suitable for users who want to model complex data. + - cigp.py: A basic GP model that is used as a baseline methods, and it is used for compare the performance of the other GP models. + - hogp.py: A GP model that uses high-order output to model the data. It is suitable for users who want to model data with high-order output. + - sgpr.py: A sparse GP model that uses variational inference to approximate the posterior distribution. It is suitable for users who want to model data with size between 1k to 10k. + - svgp.py: A sparse GP model that uses stochastic variational inference that allow Mini-Batch gradient descent. It is suitable for users who want to model data with size over 10k. - parametricGP.py: A seemly self-contradict idea, but a highly efficient and accurate GP model for large dataset. It is suitable for users who want to model data with size over 10k. - inputWarpedGP.py: A GP model that uses input warping to model the data. It is suitable for users who want to model non-stationary data. From 461a90914d17bf6895473d9e6d95c2d2942de888 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:10:06 +0800 Subject: [PATCH 09/20] update structure --- GPmodels_Classic/01_simpleGP.ipynb | 180 ----------------------------- 1 file changed, 180 deletions(-) diff --git a/GPmodels_Classic/01_simpleGP.ipynb b/GPmodels_Classic/01_simpleGP.ipynb index 2c0ea7d..a16a5bf 100644 --- a/GPmodels_Classic/01_simpleGP.ipynb +++ b/GPmodels_Classic/01_simpleGP.ipynb @@ -309,186 +309,6 @@ "plt.show()" ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.177864400Z", - "start_time": "2024-08-20T08:45:25.173887900Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "iter 0 nll:588.80095\n", - "iter 10 nll:150.93247\n", - "iter 20 nll:31.71950\n", - "iter 30 nll:-33.95577\n", - "iter 40 nll:-38.68688\n", - "iter 50 nll:-48.13526\n", - "iter 60 nll:-49.87885\n", - "iter 70 nll:-50.39096\n", - "iter 80 nll:-50.49309\n", - "iter 90 nll:-50.64249\n", - "iter 100 nll:-50.70226\n", - "iter 110 nll:-50.75017\n", - "iter 120 nll:-50.77841\n", - "iter 130 nll:-50.80850\n", - "iter 140 nll:-50.83808\n", - "iter 150 nll:-50.86548\n", - "iter 160 nll:-50.89053\n", - "iter 170 nll:-50.91314\n", - "iter 180 nll:-50.93285\n", - "iter 190 nll:-50.94937\n" - ] - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

Weight for ARD kernel: 0.00011614150981414522

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

Weight for Linear kernel: 0.016984231171673324

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

Weight for Periodic kernel: 4.258140421145017

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "

Weight for RationalQuadratic kernel: 0.00011278752915021044

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import torch\n", - "import torch.nn as nn\n", - "import time\n", - "import core.GP_CommonCalculation as GP\n", - "from data_sample import generate_example_data as data\n", - "from core.cigp_baseline import cigp\n", - "from core.kernel import NeuralKernel, ARDKernel\n", - "import matplotlib.pyplot as plt\n", - "JITTER = 1e-6\n", - "EPS = 1e-10\n", - "PI = 3.1415\n", - "torch.set_default_dtype(torch.float64)\n", - "torch.manual_seed(0)\n", - "xtr= torch.rand(200,1)*20\n", - "ytr= torch.sin(xtr)+torch.randn_like(xtr)*0.1\n", - "xte= torch.linspace(0,20,500).unsqueeze(-1)\n", - "yte= torch.sin(xte)+torch.randn_like(xte)*0.1\n", - "\n", - "normalizer= GP.DataNormalization()\n", - "normalizer.fit(xtr,'x')\n", - "normalizer.fit(ytr,'y')\n", - "xtr_normalized= normalizer.normalize(xtr,'x')\n", - "ytr_normalized= normalizer.normalize(ytr,'y')\n", - "xte_normalized= normalizer.normalize(xte,'x')\n", - "\n", - "model=cigp(kernel=NeuralKernel(1))\n", - "model.train_adam(xtr_normalized,ytr_normalized,200,1)\n", - "model.eval()\n", - "y_pred,yvar=model.forward(xtr_normalized,ytr_normalized,xte_normalized)\n", - "y_pred= normalizer.denormalize(y_pred,'y').detach()\n", - "yvar= normalizer.denormalize_cov(yvar,'y')\n", - "ystd= torch.sqrt(yvar)\n", - "plt.scatter(xtr.cpu().numpy(),ytr.cpu().numpy(),label='Training Data', color='b', marker='+')\n", - "plt.plot(xte.cpu().numpy(),y_pred.cpu().numpy(),label='Predicted')\n", - "plt.fill_between(xte.cpu().numpy().squeeze(),(y_pred-1.96*ystd).cpu().detach().numpy().squeeze(),(y_pred+1.96*ystd).cpu().detach().numpy().squeeze(),alpha=0.3,label='95% Confidence Interval')\n", - "plt.legend()\n", - "plt.show()\n", - "from IPython.display import display, HTML\n", - "softplus=nn.Softplus()\n", - "for name, param in model.kernel.weights.items():\n", - " display(HTML(f\"

Weight for {name} kernel: {softplus(param).item()}

\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.178864600Z", - "start_time": "2024-08-20T08:45:25.176861600Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "

Weight for Example kernel: 0.5

" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from IPython.display import display, HTML\n", - "\n", - "name = \"Example\"\n", - "param = 0.5 # Example value\n", - "model = lambda x: x # Example model for the sake of illustration\n", - "\n", - "display(HTML(f\"

Weight for {name} kernel: {model(param)}

\"))\n" - ] - }, { "cell_type": "code", "execution_count": null, From ffba9d2a75bd3f051792cd92a8ec51c823de2ec2 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:15:00 +0800 Subject: [PATCH 10/20] update structure --- GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb index b55f286..a62a352 100644 --- a/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb +++ b/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb @@ -7,9 +7,7 @@ "\n", "Date:2024/07/04\n", "\n", - "Introduction\n", - "\n", - "With the advancement of hardware technology, leveraging GPUs for parallel computing in Gaussian processes has become a prominent question. After significant progress in developing scalable GP models, I am excited to introduce a new inference method for standard Gaussian processes that enables GPU acceleration. This method achieved over a fourfold speedup in this demo, using just a single GPU on a laptop.\n" + "Introduction: With the advancement of hardware technology, leveraging GPUs for parallel computing in Gaussian processes has become a prominent question. After significant progress in developing scalable GP models, I am excited to introduce a new inference method for standard Gaussian processes that enables GPU acceleration. This method achieved over a fourfold speedup in this demo, using just a single GPU on a laptop.\n" ], "metadata": { "collapsed": false From 3d2cf98fa9e672720b8f76205f3105c313fb0531 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:16:24 +0800 Subject: [PATCH 11/20] update structure --- GPmodels_Advance/01_GP&GPU.ipynb | 356 +++++++++++++++++++++++++++++++ 1 file changed, 356 insertions(+) create mode 100644 GPmodels_Advance/01_GP&GPU.ipynb diff --git a/GPmodels_Advance/01_GP&GPU.ipynb b/GPmodels_Advance/01_GP&GPU.ipynb new file mode 100644 index 0000000..97d3bf5 --- /dev/null +++ b/GPmodels_Advance/01_GP&GPU.ipynb @@ -0,0 +1,356 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "Author: Zidong Chen\n", + "\n", + "Date:2024/08/21\n", + "\n", + "Introduction: This is a demonstration of how to use the inference method mentioned in [01_GP&GPU_GPTutorial.ipynb](https://github.com/IceLab-X/Mini-GP/blob/ffba9d2a75bd3f051792cd92a8ec51c823de2ec2/GPmodels_Advance/01_GP&GPU_GPTutorial.ipynb) for standard GP using GP_Common_Computation pack" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "import torch\n", + "import torch.nn as nn\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "from core.kernel import ARDKernel\n", + "import torch.optim as optim\n", + "import core.GP_CommonCalculation as GP\n", + "from data_sample import generate_example_data as data\n", + "os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS\n", + "JITTER = 1e-6\n", + "EPS = 1e-10\n", + "PI = 3.1415" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:09.997233500Z", + "start_time": "2024-08-21T09:12:09.990071900Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:10.395316200Z", + "start_time": "2024-08-21T09:12:10.295269700Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + " # generate example data\n", + "xtr, ytr, xte, yte = data.generate(32, 100, seed=42)\n", + "data.plot(xtr, ytr, xte, yte, figsize=(6, 4))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:10.497828200Z", + "start_time": "2024-08-21T09:12:10.493036Z" + } + }, + "outputs": [], + "source": [ + "normalizer = GP.DataNormalization(method=\"standard\", mode=0, learnable=False)\n", + "normalizer.fit(xtr, 'xtr')\n", + "normalizer.fit(ytr, 'ytr')\n", + "xtr = normalizer.normalize(xtr, 'xtr')\n", + "ytr = normalizer.normalize(ytr, 'ytr')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:10.700724500Z", + "start_time": "2024-08-21T09:12:10.690979900Z" + } + }, + "outputs": [], + "source": [ + "kernel = ARDKernel(1)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:10.932089500Z", + "start_time": "2024-08-21T09:12:10.923040400Z" + } + }, + "outputs": [], + "source": [ + "#initiate_log_beta\n", + "log_beta = nn.Parameter(torch.ones(1) * -4) # this is a large noise. we optimize to shrink it to a proper value." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:11.131314400Z", + "start_time": "2024-08-21T09:12:11.121923100Z" + } + }, + "outputs": [], + "source": [ + "def negative_log_likelihood(xtr, ytr, kernel, log_beta):\n", + " Sigma = kernel(xtr, xtr) + log_beta.exp().pow(-1) * torch.eye(\n", + " xtr.size(0)) + JITTER * torch.eye(xtr.size(0))\n", + " return -GP.Gaussian_log_likelihood(ytr, Sigma,Kinv_method='conjugate')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:11.329133800Z", + "start_time": "2024-08-21T09:12:11.318235400Z" + } + }, + "outputs": [], + "source": [ + "def forward(xtr, ytr, xte, kernel, log_beta):\n", + " n_test = xte.size(0)\n", + " xte = normalizer.normalize(xte, 'xtr')\n", + " Sigma = kernel(xtr, xtr) + log_beta.exp().pow(-1) * torch.eye(\n", + " xtr.size(0)) + JITTER * torch.eye(xtr.size(0))\n", + "\n", + " K_s = kernel(xtr, xte)\n", + " K_ss = kernel(xte, xte)\n", + "\n", + " mean, var = GP.conditional_Gaussian(ytr, Sigma, K_s, K_ss,Kinv_method='conjugate')\n", + "\n", + " var_diag = var.sum(dim=0).view(-1, 1)\n", + " var_diag = var_diag + log_beta.exp().pow(-1)\n", + "\n", + " # Denormalize\n", + " mean = normalizer.denormalize(mean, \"ytr\")\n", + " var_diag = normalizer.denormalize_cov(var_diag, \"ytr\")\n", + " return mean, var_diag" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:11.525121900Z", + "start_time": "2024-08-21T09:12:11.516925800Z" + } + }, + "outputs": [], + "source": [ + "def train_adam(xtr, ytr, kernel, log_beta, niteration=10, lr=0.1):\n", + " # Adam optimizer\n", + " optimizer = optim.Adam([\n", + " {'params': kernel.parameters()},\n", + " {'params': [log_beta]}\n", + " ], lr=lr)\n", + "\n", + " for i in range(niteration):\n", + " optimizer.zero_grad()\n", + " loss = negative_log_likelihood(xtr, ytr, kernel, log_beta)\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " # Print kernel parameters\n", + " #for name, param in kernel.named_parameters():\n", + " #if param.requires_grad:\n", + " #print(f'{name}: {param.data}')\n", + "\n", + " #print('log_beta:', log_beta.data)\n", + " print('iter', i, 'nll:{:.5f}'.format(loss.item()))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:16.838996500Z", + "start_time": "2024-08-21T09:12:11.726952500Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "iter 99 nll:-15.36603\n" + ] + } + ], + "source": [ + "train_adam(xtr, ytr, kernel, log_beta, niteration=100, lr=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:16.838996500Z", + "start_time": "2024-08-21T09:12:16.830796200Z" + } + }, + "outputs": [], + "source": [ + "with torch.no_grad():\n", + " ypred, yvar = forward(xtr, ytr, xte, kernel, log_beta)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:16.842153900Z", + "start_time": "2024-08-21T09:12:16.836795600Z" + } + }, + "outputs": [], + "source": [ + "xtr = normalizer.denormalize(xtr, 'xtr')\n", + "ytr = normalizer.denormalize(ytr, 'ytr')" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "ExecuteTime": { + "end_time": "2024-08-21T09:12:16.941489400Z", + "start_time": "2024-08-21T09:12:16.845154400Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAGdCAYAAADT1TPdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABeyUlEQVR4nO3dd3hc1Z0+8Pfe6V29WbIsd8s2BttgbFMMwQ6E0BIILCwL+8uyYdmEEG9CYJMATgLekIRkWQKpS8pCIEAgBQcwAUxvxgbjXmRbsnqZ3u89vz9Gki1bsjWjKXdm3s/zzCNrNDM6upbmvveU75GEEAJEREREGiXnugFEREREx8OwQkRERJrGsEJERESaxrBCREREmsawQkRERJrGsEJERESaxrBCREREmsawQkRERJqmz3UDJkpVVbS3t8PhcECSpFw3h4iIiMZBCAGfz4e6ujrI8vH7TvI+rLS3t6OhoSHXzSAiIqIUtLa2or6+/riPyfuw4nA4ACR+WKfTmePWEBER0Xh4vV40NDQMn8ePJ+/DytDQj9PpZFghIiLKM+OZwsEJtkRERKRpDCtERESkaQwrREREpGkMK0RERKRpDCtERESkaQwrREREpGkMK0RERKRpDCtERESkaQwrREREpGkMK0RERKRpDCtERESkaQwrREREpGkMK0RERKRpDCtEREQ0JkUVuW4CwwoRERGNTgiBgWA0181gWCEiIqLReUNxxBQ1181gWCEiIqLR9QYiuW4CAIYVIiIiGkUwGkcwouS6GQAYVoiIiGgUff7cz1UZwrBCREREI8QUFZ5QLNfNGMawQkRERCP0+aMQuV+xPIxhhYiIiIapqkB/QDtDQADDChERER3BHYppohDckRhWiIiIaFifXxvLlY/EsEJEREQAgEAkjnAs90XgjsawQkRERACgubkqQxhWiIiICHGNLVc+EsMKERERYSAY09Ry5SMxrBAREZEmdlceC8MKERFRkfNH4ohocGLtEIYVIiKiIjeg0Ym1QzIaVtauXYtTTz0VDocDVVVVuPTSS7Fz584RjxFC4K677kJdXR0sFgtWrFiBrVu3ZrJZRERENEjLE2uHZDSsbNiwAf/+7/+Ot99+G+vXr0c8HseqVasQCASGH3PvvffivvvuwwMPPID33nsPNTU1WLlyJXw+XyabRkRERND2xNohkhDZa2JPTw+qqqqwYcMGnHXWWRBCoK6uDrfccgu+/vWvAwAikQiqq6vxve99D1/4whdO+JperxculwsejwdOpzPTPwIREVFB2dXlO+58lQqHEbUuS9q/bzLn76zOWfF4PACAsrIyAEBLSws6OzuxatWq4ceYTCacffbZePPNN0d9jUgkAq/XO+JGREREydP6xNohWQsrQgisXr0aZ5xxBubNmwcA6OzsBABUV1ePeGx1dfXw1462du1auFyu4VtDQ0NmG05ERFSgtD6xdkjWwsoXv/hFfPTRR/j9739/zNckSRrxuRDimPuG3H777fB4PMO31tbWjLSXiIiokCmq0PzE2iH6bHyTL33pS/jzn/+MV199FfX19cP319TUAEj0sNTW1g7f393dfUxvyxCTyQSTyZTZBhMRERU4dzCq+Ym1QzLasyKEwBe/+EX88Y9/xEsvvYSmpqYRX29qakJNTQ3Wr18/fF80GsWGDRuwbNmyTDaNiIioqA0E86NXBchwz8q///u/49FHH8Wf/vQnOByO4XkoLpcLFosFkiThlltuwT333IMZM2ZgxowZuOeee2C1WnH11VdnsmlERERFKxxTEIoquW7GuGU0rDz00EMAgBUrVoy4/+GHH8b1118PALj11lsRCoVw0003YWBgAEuWLMELL7wAh8ORyaYREREVLXce9aoAWa6zkgmss0JERDR+Qgjs6PQhrozv9F90dVaIiIgot/yR+LiDilYwrBARERWRgUB+DQEBDCtERERFQ1EFvGGGFSIiItKofKqtciSGFSIioiKRT7VVjsSwQkREVATyrbbKkRhWiIiIikC+1VY5EsMKERFREXCH8mOH5dEwrBARERW4QCSOWDwPZ9YOYlghIiIqcAPB/O1VARhWiIiICpoQAp5Q/s5XARhWiIiICpo3FIeq5roVE8OwQkREVMDyeWLtEIYVIiKiAqWoAr5wPNfNmDCGFSIiogKVr+X1j8awQkREVKDceT6xdgjDChERUQGKxBUEI/lZXv9oDCtEREQFyJPH5fWPxrBCRERUgAplCAhgWCEiIio4oaiCSCzPi6scgWGFiIiowBRCbZUjMawQEREVGHcBzVcBGFaIiIgKij8SR1wpgOIqR2BYISIiKiDuPN9heTQMK0RERAWiEHZYHg3DChERUYHwhvN/h+XRMKwQEREViEIqBHckhhUiIqICoKgC3jDD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7bbb8Nprr0GvL8q3gqSlcpz37duH119/HWazGU8//TR6e3tx0003ob+/n/NWxpDKcV62bBkeeeQRXHnllQiHw4jH47j44ovxP//zP9loctHI1bmwKHtWhkiSNOJzIcQx953o8aPdT8dK9lgP+f3vf4+77roLjz/+OKqqqjLVvIIx3uOsKAquvvpqrFmzBjNnzsxW8wpGMr/PqqpCkiQ88sgjOO200/CpT30K9913H37961+zd+UEkjnO27Ztw80334w77rgDGzduxHPPPYeWlhbceOON2WhqUcnFubAoL6cqKiqg0+mOSejd3d3HJMYhNTU1oz5er9ejvLw8Y23Nd6kc6yGPP/44Pv/5z+OJJ57Aeeedl8lm5r1kj7PP58P777+PTZs24Ytf/CKAxElVCAG9Xo8XXngB5557blbank9S+X2ura3FpEmT4HK5hu+bM2cOhBBoa2vDjBkzMtrmfJTKcV67di2WL1+Or33tawCAk046CTabDWeeeSa++93vsvc7TXJ1LizKnhWj0YhFixZh/fr1I+5fv349li1bNupzli5deszjX3jhBSxevBgGgyFjbc13qRxrINGjcv311+PRRx/lmPM4JHucnU4ntmzZgs2bNw/fbrzxRsyaNQubN2/GkiVLstX0vJLK7/Py5cvR3t4Ov98/fN+uXbsgyzLq6+sz2t58lcpxDgaDkOWRpzSdTgfg8JU/TVzOzoUZnb6rYUPL4n71q1+Jbdu2iVtuuUXYbDaxf/9+IYQQt912m7j22muHHz+0XOsrX/mK2LZtm/jVr37FpcvjlOyxfvTRR4Verxc/+clPREdHx/DN7Xbn6kfIC8ke56NxNdD4JHucfT6fqK+vF5dffrnYunWr2LBhg5gxY4b4l3/5l1z9CHkh2eP88MMPC71eLx588EGxd+9e8frrr4vFixeL0047LVc/Ql7w+Xxi06ZNYtOmTQKAuO+++8SmTZuGl4hr5VxYtGFFCCF+8pOfiMbGRmE0GsXChQvFhg0bhr923XXXibPPPnvE41955RVxyimnCKPRKKZMmSIeeuihLLc4fyVzrM8++2wB4Jjbddddl/2G55lkf6ePxLAyfske5+3bt4vzzjtPWCwWUV9fL1avXi2CwWCWW51/kj3O999/v2hubhYWi0XU1taKa665RrS1tWW51fnl5ZdfPu77rVbOhZIQ7B8jIiIi7SrKOStERESUPxhWiIiISNMYVoiIiEjTGFaIiIhI0xhWiIiISNMYVoiIiEjTGFaIiIhI0xhWiIiISNMYVoiIiEjTGFaIiIhI0xhWiIiISNMYVoiIiEjT/j/tTCsXaY8bawAAAABJRU5ErkJggg==" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.fill_between(xte.squeeze().numpy(),\n", + " ypred.squeeze().detach().numpy() - 1.96 * np.sqrt(yvar.squeeze().detach().numpy()),\n", + " ypred.squeeze().detach().numpy() + 1.96 * np.sqrt(yvar.squeeze().detach().numpy()), alpha=0.2,\n", + " label='95% Confidence interval')\n", + "plt.plot(xte.squeeze().numpy(), ypred.squeeze().detach().numpy(), label='Predictive mean')\n", + "plt.plot(xtr.detach().numpy(), ytr.detach().numpy(), 'b+')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + } + }, + "outputs": [], + "source": [] + } + ], + "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.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From bf66c980d55934d037992cd70625bd692ea02aaa Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:23:21 +0800 Subject: [PATCH 12/20] update structure --- README.md | 10 +++++----- .../Model_comparison.py => experiment/Experiment_01.py | 0 .../Regression_test.py => experiment/Experiment_02.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename asset/Model_comparison.py => experiment/Experiment_01.py (100%) rename asset/Regression_test.py => experiment/Experiment_02.py (99%) diff --git a/README.md b/README.md index 746671a..8e48f3e 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ More details can be found in the [README](https://github.com/IceLab-X/Mini-GP/bl - **GPmodels_Advance:** Advance GP models, including GP with GPU acceleration, and automatic GP. - 01_GP&GPU_GPTutorial: Algorithms for GP leverage GPU acceleration. + - 01_GP&GPU: Algorithms for GP leverage GPU acceleration. - 02_DynamicModel_GPTutorial: GP dynamic model in Chinese. ([Gaussian Process Dynamical Models](https://www.dgp.toronto.edu/~jmwang/gpdm/nips05final.pdf) ) - **GPmodels_Classic:** basic GP model and its variation, such as DeepKernel GP, InputWarp GP . It demonstrates how to build a GP model with the GP_CommonCalculation. @@ -56,13 +57,12 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. -- **asset:** This folder contains the python scripts for the model comparison and regression test. As well as the result in both .csv and .png format. For more details, please refer to the README.md in the folder. - - - **Model_comparison.py:** A Python script that compares the performance of different GP models on various synthetic datasets, including periodic, warped, and polynomial. The default models are set as autoGP and its base model vsgp. - +- **experiment:** This folder contains the python scripts of the experiment. + +- **asset:** This folder contains the result of the experiment in both .csv and .png format. - - **Regression_test.py:** A Python script that tests the accuracy and training speed on different sizes of training sets. The results are stored in result1.csv and result2.csv. + - **result1.csv:** The result of the regression test for different training set sizes. diff --git a/asset/Model_comparison.py b/experiment/Experiment_01.py similarity index 100% rename from asset/Model_comparison.py rename to experiment/Experiment_01.py diff --git a/asset/Regression_test.py b/experiment/Experiment_02.py similarity index 99% rename from asset/Regression_test.py rename to experiment/Experiment_02.py index ab9dfc7..ef0bcd4 100644 --- a/asset/Regression_test.py +++ b/experiment/Experiment_02.py @@ -124,7 +124,7 @@ filename = f'results_{timestamp}.csv' # Save all results to CSV -filename = 'results1.csv' +filename = '../asset/results1.csv' with open(filename, 'w', newline='') as csvfile: fieldnames = ['Model', 'Training Size', 'Batch Size', 'Number of Inducing Points', 'Iteration', 'Training Time per Iteration (MilliSeconds)', 'MSE'] From 82924abe3011342199beac86eda406c459ddeb8f Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:27:29 +0800 Subject: [PATCH 13/20] update structure --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8e48f3e..c32a6a9 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ To start using MiniGP, you can clone the repository by running the following com ```bash git clone ``` -You can start by running the Demo.ipynb to have a taste of the library. You can also check the tutorial in the GPmodels_xxx folder to learn how to use the library. +You can start by running the [Demo.ipynb](https://github.com/IceLab-X/Mini-GP/blob/bf66c980d55934d037992cd70625bd692ea02aaa/Demo.ipynb) to have a taste of the library. You can also check the tutorial in the GPmodels_xxx folder to learn how to use the library. Most models have two version, the API version for direct call and the tutorial version for customized usage. The API version is in the 'core' folder, and the tutorial version is in the 'GPmodels_xxx' folder. @@ -57,7 +57,7 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. - + <-img src="https://github.com/IceLab-X/Mini-GP/blob/bf66c980d55934d037992cd70625bd692ea02aaa/asset/Bayesian_Optimization.png"/> - **experiment:** This folder contains the python scripts of the experiment. - **asset:** This folder contains the result of the experiment in both .csv and .png format. From 83b0c36e5dbd643de0bca8581836f5852f5f6759 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:28:08 +0800 Subject: [PATCH 14/20] update structure --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c32a6a9..6157e46 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. - <-img src="https://github.com/IceLab-X/Mini-GP/blob/bf66c980d55934d037992cd70625bd692ea02aaa/asset/Bayesian_Optimization.png"/> + <-img src="https://github.com/IceLab-X/Mini-GP/blob/bf66c980d55934d037992cd70625bd692ea02aaa/asset/Bayesian_Optimization.png" /> - **experiment:** This folder contains the python scripts of the experiment. - **asset:** This folder contains the result of the experiment in both .csv and .png format. From 520f37ba06e167aeaa9b89d73236542699e397b1 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:28:57 +0800 Subject: [PATCH 15/20] update structure --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6157e46..4fbaeee 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. - <-img src="https://github.com/IceLab-X/Mini-GP/blob/bf66c980d55934d037992cd70625bd692ea02aaa/asset/Bayesian_Optimization.png" /> + - **experiment:** This folder contains the python scripts of the experiment. - **asset:** This folder contains the result of the experiment in both .csv and .png format. From 76aa0bfdb4fc394c5bfb1894429150a6bbe008d7 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:30:48 +0800 Subject: [PATCH 16/20] update structure --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4fbaeee..ae862c4 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. - + - **experiment:** This folder contains the python scripts of the experiment. - **asset:** This folder contains the result of the experiment in both .csv and .png format. From 057ad8fb87a5d2dc55be40650e986286b52b43cd Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:33:25 +0800 Subject: [PATCH 17/20] Delete GPmodels_Classic/01_simpleGP.ipynb --- GPmodels_Classic/01_simpleGP.ipynb | 346 ----------------------------- 1 file changed, 346 deletions(-) delete mode 100644 GPmodels_Classic/01_simpleGP.ipynb diff --git a/GPmodels_Classic/01_simpleGP.ipynb b/GPmodels_Classic/01_simpleGP.ipynb deleted file mode 100644 index a16a5bf..0000000 --- a/GPmodels_Classic/01_simpleGP.ipynb +++ /dev/null @@ -1,346 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:12.701025900Z", - "start_time": "2024-08-20T08:45:09.968582400Z" - } - }, - "outputs": [], - "source": [ - "import os\n", - "import sys\n", - "import torch\n", - "import torch.nn as nn\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from core.kernel import ARDKernel\n", - "import torch.optim as optim\n", - "import core.GP_CommonCalculation as GP\n", - "from data_sample import generate_example_data as data\n", - "os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' # Fixing strange error if run in MacOS\n", - "JITTER = 1e-6\n", - "EPS = 1e-10\n", - "PI = 3.1415" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:22.621167100Z", - "start_time": "2024-08-20T08:45:22.482207700Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - " # generate example data\n", - "xtr, ytr, xte, yte = data.generate(32, 100, seed=42)\n", - "data.plot(xtr, ytr, xte, yte, figsize=(6, 4))" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:22.678289600Z", - "start_time": "2024-08-20T08:45:22.641033700Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "normalizer = GP.DataNormalization(method=\"standard\", mode=0, learnable=False)\n", - "normalizer.fit(xtr, 'xtr')\n", - "normalizer.fit(ytr, 'ytr')\n", - "xtr = normalizer.normalize(xtr, 'xtr')\n", - "ytr = normalizer.normalize(ytr, 'ytr')" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:22.843437700Z", - "start_time": "2024-08-20T08:45:22.813096500Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "kernel = ARDKernel(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:22.994462Z", - "start_time": "2024-08-20T08:45:22.987954200Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "#initiate_log_beta\n", - "log_beta = nn.Parameter(torch.ones(1) * -4) # this is a large noise. we optimize to shrink it to a proper value." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:23.167157900Z", - "start_time": "2024-08-20T08:45:23.161154Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "def negative_log_likelihood(xtr, ytr, kernel, log_beta):\n", - " Sigma = kernel(xtr, xtr) + log_beta.exp().pow(-1) * torch.eye(\n", - " xtr.size(0)) + JITTER * torch.eye(xtr.size(0))\n", - " return -GP.Gaussian_log_likelihood(ytr, Sigma)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:23.345573Z", - "start_time": "2024-08-20T08:45:23.339084900Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "def forward(xtr, ytr, xte, kernel, log_beta):\n", - " n_test = xte.size(0)\n", - " xte = normalizer.normalize(xte, 'xtr')\n", - " Sigma = kernel(xtr, xtr) + log_beta.exp().pow(-1) * torch.eye(\n", - " xtr.size(0)) + JITTER * torch.eye(xtr.size(0))\n", - "\n", - " K_s = kernel(xtr, xte)\n", - " K_ss = kernel(xte, xte)\n", - "\n", - " mean, var = GP.conditional_Gaussian(ytr, Sigma, K_s, K_ss)\n", - "\n", - " var_diag = var.sum(dim=0).view(-1, 1)\n", - " var_diag = var_diag + log_beta.exp().pow(-1)\n", - "\n", - " # Denormalize\n", - " mean = normalizer.denormalize(mean, \"ytr\")\n", - " var_diag = normalizer.denormalize_cov(var_diag, \"ytr\")\n", - " return mean, var_diag" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:23.510132300Z", - "start_time": "2024-08-20T08:45:23.504624400Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "def train_adam(xtr, ytr, kernel, log_beta, niteration=10, lr=0.1):\n", - " # Adam optimizer\n", - " optimizer = optim.Adam([\n", - " {'params': kernel.parameters()},\n", - " {'params': [log_beta]}\n", - " ], lr=lr)\n", - "\n", - " for i in range(niteration):\n", - " optimizer.zero_grad()\n", - " loss = negative_log_likelihood(xtr, ytr, kernel, log_beta)\n", - " loss.backward()\n", - " optimizer.step()\n", - "\n", - " # Print kernel parameters\n", - " #for name, param in kernel.named_parameters():\n", - " #if param.requires_grad:\n", - " #print(f'{name}: {param.data}')\n", - "\n", - " #print('log_beta:', log_beta.data)\n", - " print('iter', i, 'nll:{:.5f}'.format(loss.item()))" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.054623900Z", - "start_time": "2024-08-20T08:45:23.672951100Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "iter 99 nll:23.50842\n" - ] - } - ], - "source": [ - "train_adam(xtr, ytr, kernel, log_beta, niteration=100, lr=0.1)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.061272200Z", - "start_time": "2024-08-20T08:45:25.056624600Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "with torch.no_grad():\n", - " ypred, yvar = forward(xtr, ytr, xte, kernel, log_beta)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.066930400Z", - "start_time": "2024-08-20T08:45:25.062272300Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [ - "xtr = normalizer.denormalize(xtr, 'xtr')\n", - "ytr = normalizer.denormalize(ytr, 'ytr')" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "ExecuteTime": { - "end_time": "2024-08-20T08:45:25.173383800Z", - "start_time": "2024-08-20T08:45:25.069931200Z" - }, - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAisAAAGdCAYAAADT1TPdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe+UlEQVR4nO3deXhb5Zk28Psc7ZIlWd5kO3YSZ19JWEogYQlLAoGytAMtLe1Ap0NhKG0hHwVS+gFpC/mAkjIdCkyXoWUaCqVQSkuAhAJhXxIIhDj76njftO/nnO8P2Y5N7MSSJZ0j6f5dly7HspY3x5bOo+d93ucVFEVRQERERKRRotoDICIiIjoaBitERESkaQxWiIiISNMYrBAREZGmMVghIiIiTWOwQkRERJrGYIWIiIg0jcEKERERaZpe7QGMlSzLaGlpgd1uhyAIag+HiIiIRkFRFPj9ftTW1kIUj547yftgpaWlBfX19WoPg4iIiNLQ1NSEurq6o94m74MVu90OIPmfdTgcKo+GiIiIRsPn86G+vn7gPH40eR+s9E/9OBwOBitERER5ZjQlHCywJSIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrRERENCJJVtQeAoMVIiIiGp6iKOgJxtQeBoMVIiIiGl5vKI6ELKs9DAYrRERENLyuQFTtIQBgsEJERETD8EXiiMbVz6oADFaIiIhoGJ1+bWRVAAYrRERE9DmhWAKhqKT2MAYwWCEiIqIhtJRVARisEBER0SCRuARfOKH2MIZgsEJEREQDtLICaDAGK0RERAQASEgyPKG42sM4AoMVIiIiAgD0hGJQ1O+ufwQGK0RERKSZ1vrDYbBCRERE8EUSiCc0mFYBgxUiIiICNJtVARisEBERFb1IXEIgoq3lyoNlNVhZtWoVvvCFL8But6OqqgqXXnopduzYMeQ2iqLgrrvuQm1tLSwWCxYvXoytW7dmc1hEREQ0iJazKkCWg5UNGzbgu9/9Lt577z2sX78eiUQCS5cuRTAYHLjNfffdh9WrV+Ohhx7Chx9+iOrqaixZsgR+vz+bQyMiIiIAsqygN6TtYEVQlNwtUurs7ERVVRU2bNiAM844A4qioLa2FjfeeCNuvfVWAEA0GoXb7ca9996La6+99piP6fP54HQ64fV64XA4sv1fICIiKig9wRiae8Mj/rzCbkSN05Lx503l/J3TmhWv1wsAKCsrAwDs27cPbW1tWLp06cBtTCYTzjzzTLzzzjvDPkY0GoXP5xtyISIiovR0a7Bj7eflLFhRFAXLly/Haaedhjlz5gAA2traAABut3vIbd1u98DPPm/VqlVwOp0Dl/r6+uwOnIiIqEAFowlE4rLawzimnAUrN9xwAz799FP86U9/OuJngiAM+V5RlCOu67dixQp4vd6BS1NTU1bGS0REVOi0XljbT5+LJ/ne976H559/Hm+88Qbq6uoGrq+urgaQzLDU1NQMXN/R0XFEtqWfyWSCyWTK7oCJiIgKXEKS4Q1rbx+g4WQ1s6IoCm644QY8++yzePXVV9HQ0DDk5w0NDaiursb69esHrovFYtiwYQMWLlyYzaEREREVNU84rsl9gIaT1czKd7/7XTzxxBP429/+BrvdPlCH4nQ6YbFYIAgCbrzxRtxzzz2YOnUqpk6dinvuuQdWqxVf//rXszk0IiKiotabJ1NAQJaDlUceeQQAsHjx4iHXP/bYY7j66qsBALfccgvC4TCuv/569Pb2YsGCBVi3bh3sdns2h0ZERFS0wjEpLwpr++W0z0o2sM8KERFRapo9YfQERpdZKbo+K0RERKQuWVbg0XjH2s9jsEJERFREvOE45PyZAQLAYIWIiKio9ORZVgVgsEJERFQ0InEJoaik9jBSxmCFiIioSGh9d+WRMFghIiIqAoqiwBPKj461n8dghYiIqAj4IgkkpPzsVsJghYiIqAjk23LlwRisEBERFbiEJMMfSag9jLQxWCEiIipw3jzatHA4DFaIiIgKXG+eFtb2Y7BCRERUwCJxCeFY/vVWGYzBChERUQHL1+XKgzFYISIiKmD52ghuMAYrREREBcofiedtb5XBGKwQEREVqEKYAgIYrBARERUkSVbgDTNYISIiIo3y5XlvlcEYrBARERWgQiis7cdghYiIqMDEEjKC0fzurTIYgxUiIqIC4wkXTlYFYLBCRERUcAplFVA/BitEREQFJByTEI3Lag8joxisEBERFZBCmwICGKwQEREVlEKbAgIYrBARERWMQmmv/3kMVoiIiApEIWZVAAYrREREBUEuoPb6n8dghYiIqAD4IoXT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1YWampqsjTefpXOsP++BBx5AMBjEV77ylWwMsSCkc5x37dqF2267DW+++Sb0+qJ8K0hZOsd57969eOutt2A2m/HXv/4VXV1duP7669HT08O6lRGkc5wXLlyINWvW4Ktf/SoikQgSiQQuvvhi/Nd//Vcuhlw01DoXFmVmpZ8gCEO+VxTliOuOdfvhrqcjpXqs+/3pT3/CXXfdhaeeegpVVVXZGl7BGO1xliQJX//617Fy5UpMmzYtV8MrGKn8PcuyDEEQsGbNGpx88sm44IILsHr1avz+979nduUYUjnOjY2N+P73v4877rgDmzZtwksvvYR9+/bhuuuuy8VQi4oa58Ki/DhVUVEBnU53RITe0dFxRMTYr7q6etjb6/V6lJeXZ22s+S6dY93vqaeewre//W08/fTTOPfcc7M5zLyX6nH2+/3YuHEjPv74Y9xwww0AkidVRVGg1+uxbt06nH322TkZez5J5++5pqYG48aNg9PpHLhu5syZUBQFhw4dwtSpU7M65nyUznFetWoVFi1ahB/+8IcAgOOOOw42mw2nn346fvaznzH7nSFqnQuLMrNiNBpx4oknYv369UOuX79+PRYuXDjsfU499dQjbr9u3TqcdNJJMBgMWRtrvkvnWAPJjMrVV1+NJ554gnPOo5DqcXY4HNiyZQs2b948cLnuuuswffp0bN68GQsWLMjV0PNKOn/PixYtQktLCwKBwMB1O3fuhCiKqKury+p481U6xzkUCkEUh57SdDodgMOf/GnsVDsXZrV8V8P6l8X97ne/UxobG5Ubb7xRsdlsyv79+xVFUZTbbrtN+eY3vzlw+/7lWjfddJPS2Nio/O53v+PS5VFK9Vg/8cQTil6vV371q18pra2tAxePx6PWfyEvpHqcP4+rgUYn1ePs9/uVuro65bLLLlO2bt2qbNiwQZk6dary7//+72r9F/JCqsf5scceU/R6vfLwww8re/bsUd566y3lpJNOUk4++WS1/gt5we/3Kx9//LHy8ccfKwCU1atXKx9//PHAEnGtnAuLNlhRFEX51a9+pUyYMEExGo3KCSecoGzYsGHgZ1dddZVy5plnDrn966+/rhx//PGK0WhUJk6cqDzyyCM5HnH+SuVYn3nmmQqAIy5XXXVV7geeZ1L9mx6MwcropXqct23bppx77rmKxWJR6urqlOXLlyuhUCjHo84/qR7nX/7yl8qsWbMUi8Wi1NTUKFdeeaVy6NChHI86v7z22mtHfb/VyrlQUBTmx4iIiEi7irJmhYiIiPIHgxUiIiLSNAYrREREpGkMVoiIiEjTGKwQERGRpjFYISIiIk1jsEJERESaxmCFiIiINI3BChEREWkagxUiIiLSNAYrREREpGkMVoiIiEjT/j+J59mTtmF5WQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.fill_between(xte.squeeze().numpy(),\n", - " ypred.squeeze().detach().numpy() - 1.96 * np.sqrt(yvar.squeeze().detach().numpy()),\n", - " ypred.squeeze().detach().numpy() + 1.96 * np.sqrt(yvar.squeeze().detach().numpy()), alpha=0.2,\n", - " label='95% Confidence interval')\n", - "plt.plot(xte.squeeze().numpy(), ypred.squeeze().detach().numpy(), label='Predictive mean')\n", - "plt.plot(xtr.detach().numpy(), ytr.detach().numpy(), 'b+')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [], - "source": [] - } - ], - "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.11.7" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From f3cb6ff84ef2bc9cc6e1a661fd7591965e8f2e59 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:34:19 +0800 Subject: [PATCH 18/20] update structure --- ...cModel_GPTutorial.ipynb => 02_DynamicModel_GPTutorial.ipynb} | 0 README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename GPmodels_Advance/{03_DynamicModel_GPTutorial.ipynb => 02_DynamicModel_GPTutorial.ipynb} (100%) diff --git a/GPmodels_Advance/03_DynamicModel_GPTutorial.ipynb b/GPmodels_Advance/02_DynamicModel_GPTutorial.ipynb similarity index 100% rename from GPmodels_Advance/03_DynamicModel_GPTutorial.ipynb rename to GPmodels_Advance/02_DynamicModel_GPTutorial.ipynb diff --git a/README.md b/README.md index ae862c4..f3e6bb8 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Processes](https://proceedings.mlr.press/v5/titsias09a/titsias09a.pdf)) - **Bayesian_Optimization:** This folder contains useful tools for Bayesian optimization - acq: A Python scripy including several widely used acquisition functions. - BO_demo: A demonstration of the process of Bayesian optimization. - + - **experiment:** This folder contains the python scripts of the experiment. - **asset:** This folder contains the result of the experiment in both .csv and .png format. From 129f68b2c318a1810ad10cc815e710db9d9a134f Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:26:22 +0800 Subject: [PATCH 19/20] update structure --- core/cigp.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/cigp.py b/core/cigp.py index df08bf2..19e244e 100644 --- a/core/cigp.py +++ b/core/cigp.py @@ -1,6 +1,11 @@ # # Conditional independent Gaussian process (CIGP) for vector output regression based on pytorch # # # # CIGP use a single kernel for each output. Thus the log likelihood is simply a sum of the log likelihood of each output. +import sys +import os +_path = os.path.dirname(__file__).split(os.sep) +sys.path.append(os.sep.join(_path[:_path.index('MiniGP')+1])) + import torch import torch.nn as nn from core.kernel import ARDKernel @@ -24,7 +29,7 @@ def __init__(self, kernel=ARDKernel(1), log_beta=None, K_inv_method='cholesky'): self.kernel = kernel self.K_inv_method = K_inv_method - def forward(self, xtr, ytr, xte): + def forward(self, xtr, ytr, xte, ytr_var=None): Sigma = self.kernel(xtr, xtr) + self.log_beta.exp().pow(-1) * torch.eye(xtr.size(0), device=self.log_beta.device) \ + JITTER * torch.eye(xtr.size(0), device=self.log_beta.device) @@ -37,10 +42,11 @@ def forward(self, xtr, ytr, xte): return mean, var_diag - def negative_log_likelihood(self, xtr, ytr): + def negative_log_likelihood(self, xtr, ytr, ytr_var=None): Sigma = self.kernel(xtr, xtr) + self.log_beta.exp().pow(-1) * torch.eye( xtr.size(0), device=self.log_beta.device) + JITTER * torch.eye(xtr.size(0), device=self.log_beta.device) - + if ytr_var is not None: + Sigma = Sigma + ytr_var.diag()* torch.eye(xtr.size(0)).to(xtr.device) return -GP.Gaussian_log_likelihood(ytr, Sigma, Kinv_method=self.K_inv_method) def train_adam(self, xtr, ytr, niteration=10, lr=0.1): From 010819ae0ae4e9abea719245211538264d815280 Mon Sep 17 00:00:00 2001 From: ZidongChen25 <164652964+ZidongChen25@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:37:21 +0800 Subject: [PATCH 20/20] create _initial_.py --- __init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 __init__.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..e69de29