GPyTorch 1.2 Examples : Exact GP (回帰) – 不確かな入力による GP 回帰 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/05/2020 (1.2)
* 本ページは、GPyTorch 1.2 ドキュメントの以下のページを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
Exact GP (回帰) – 不確かな入力による GP 回帰
イントロダクション
このノートブックでは、訓練データの不確かさを扱う一つの方法を実演していきます。次の関数をモデル化する訓練データを集めているとしましょう。
\[
\begin{align}
y &= \sin(2\pi x) + \epsilon \\
\epsilon &\sim \mathcal{N}(0, 0.2)
\end{align}
\]
けれども、今は特徴について少し不確かであると仮定します。特に、総ての x_i 値は点ではなく代わりに分布であると仮定していきます。E.g.
\[
x_i \sim \mathcal{N}(\mu_i, \sigma_i).
\]
不確かな入力を扱うために distributional カーネルを使用する
変分法を使用するのではなく (変分例題の不確かな入力による GP 回帰チュートリアル参照)、入力の不確かさのタイプを明示的に知っているのであれば、それをカーネルに渡すことができます。より具体的には、ガウス入力を仮定した場合、ガウス入力の間の対称的な (= symmetrized) KL divergence を計算します。
import math import torch import tqdm import gpytorch from matplotlib import pyplot as plt %matplotlib inline %load_ext autoreload %autoreload 2
# Training data is 100 points in [0,1] inclusive regularly spaced train_x_mean = torch.linspace(0, 1, 20) # We'll assume the variance shrinks the closer we get to 1 train_x_stdv = torch.linspace(0.03, 0.01, 20) # True function is sin(2*pi*x) with Gaussian noise train_y = torch.sin(train_x_mean * (2 * math.pi)) + torch.randn(train_x_mean.size()) * 0.2
訓練 distributional データを効果的に渡すため、mean と log 分散をスタックする必要があります。
train_x_distributional = torch.stack((train_x_mean, (train_x_stdv**2).log()), dim=1)
f, ax = plt.subplots(1, 1, figsize=(8, 3)) ax.errorbar(train_x_mean, train_y, xerr=(train_x_stdv * 2), fmt="k*", label="Train Data") ax.legend()
多くの設定で標準的であるように、type-II 勾配降下を通して結果としての distributional GP のハイパーパラメータを訓練します。fully Bayesian 推論を行なうこともできるでしょう。
from gpytorch.models import ExactGP from gpytorch.kernels import GaussianSymmetrizedKLKernel, ScaleKernel from gpytorch.means import ConstantMean class ExactGPModel(ExactGP): def __init__(self, train_x, train_y, likelihood): super(ExactGPModel, self).__init__(train_x, train_y, likelihood) self.mean_module = ConstantMean() self.covar_module = ScaleKernel(GaussianSymmetrizedKLKernel()) def forward(self, x): mean_x = self.mean_module(x) covar_x = self.covar_module(x) return gpytorch.distributions.MultivariateNormal(mean_x, covar_x) # initialize likelihood and model likelihood = gpytorch.likelihoods.GaussianLikelihood() model = ExactGPModel(train_x_distributional, train_y, likelihood)
# this is for running the notebook in our testing framework import os smoke_test = ('CI' in os.environ) training_iter = 2 if smoke_test else 500 # Find optimal model hyperparameters model.train() likelihood.train() # Use the adam optimizer optimizer = torch.optim.Adam(model.parameters(), lr=0.25) # Includes GaussianLikelihood parameters # "Loss" for GPs - the marginal log likelihood mll = gpytorch.mlls.ExactMarginalLogLikelihood(likelihood, model) for i in range(training_iter): # Zero gradients from previous iteration optimizer.zero_grad() # Output from model output = model(train_x_distributional) # Calc loss and backprop gradients loss = -mll(output, train_y) loss.backward() print('Iter %d/%d - Loss: %.3f lengthscale: %.3f noise: %.3f' % ( i + 1, training_iter, loss.item(), model.covar_module.base_kernel.lengthscale.item(), model.likelihood.noise.item() )) optimizer.step()
Iter 1/500 - Loss: 1.274 lengthscale: 0.693 noise: 0.693 Iter 2/500 - Loss: 1.242 lengthscale: 0.826 noise: 0.576 Iter 3/500 - Loss: 1.173 lengthscale: 0.955 noise: 0.475 Iter 4/500 - Loss: 1.141 lengthscale: 1.102 noise: 0.389 Iter 5/500 - Loss: 1.121 lengthscale: 1.266 noise: 0.317 Iter 6/500 - Loss: 1.097 lengthscale: 1.442 noise: 0.261 Iter 7/500 - Loss: 1.093 lengthscale: 1.621 noise: 0.220 Iter 8/500 - Loss: 1.112 lengthscale: 1.801 noise: 0.192 Iter 9/500 - Loss: 1.112 lengthscale: 1.988 noise: 0.177 Iter 10/500 - Loss: 1.095 lengthscale: 2.188 noise: 0.172 Iter 11/500 - Loss: 1.081 lengthscale: 2.401 noise: 0.172 Iter 12/500 - Loss: 1.068 lengthscale: 2.624 noise: 0.177 Iter 13/500 - Loss: 1.049 lengthscale: 2.856 noise: 0.183 Iter 14/500 - Loss: 1.031 lengthscale: 3.095 noise: 0.188 Iter 15/500 - Loss: 1.020 lengthscale: 3.340 noise: 0.191 Iter 16/500 - Loss: 1.014 lengthscale: 3.589 noise: 0.189 Iter 17/500 - Loss: 1.007 lengthscale: 3.842 noise: 0.183 Iter 18/500 - Loss: 0.997 lengthscale: 4.098 noise: 0.173 Iter 19/500 - Loss: 0.983 lengthscale: 4.356 noise: 0.159 Iter 20/500 - Loss: 0.968 lengthscale: 4.616 noise: 0.144 Iter 21/500 - Loss: 0.951 lengthscale: 4.877 noise: 0.128 Iter 22/500 - Loss: 0.933 lengthscale: 5.139 noise: 0.112 Iter 23/500 - Loss: 0.913 lengthscale: 5.402 noise: 0.097 Iter 24/500 - Loss: 0.891 lengthscale: 5.667 noise: 0.083 Iter 25/500 - Loss: 0.870 lengthscale: 5.933 noise: 0.070 Iter 26/500 - Loss: 0.850 lengthscale: 6.202 noise: 0.059 Iter 27/500 - Loss: 0.832 lengthscale: 6.474 noise: 0.050 Iter 28/500 - Loss: 0.814 lengthscale: 6.748 noise: 0.042 Iter 29/500 - Loss: 0.794 lengthscale: 7.025 noise: 0.035 Iter 30/500 - Loss: 0.775 lengthscale: 7.304 noise: 0.029 Iter 31/500 - Loss: 0.756 lengthscale: 7.586 noise: 0.024 Iter 32/500 - Loss: 0.737 lengthscale: 7.868 noise: 0.020 Iter 33/500 - Loss: 0.719 lengthscale: 8.152 noise: 0.017 Iter 34/500 - Loss: 0.701 lengthscale: 8.437 noise: 0.014 Iter 35/500 - Loss: 0.684 lengthscale: 8.722 noise: 0.012 Iter 36/500 - Loss: 0.668 lengthscale: 9.007 noise: 0.010 Iter 37/500 - Loss: 0.653 lengthscale: 9.291 noise: 0.008 Iter 38/500 - Loss: 0.637 lengthscale: 9.575 noise: 0.007 Iter 39/500 - Loss: 0.621 lengthscale: 9.859 noise: 0.006 Iter 40/500 - Loss: 0.606 lengthscale: 10.142 noise: 0.005 Iter 41/500 - Loss: 0.591 lengthscale: 10.424 noise: 0.005 Iter 42/500 - Loss: 0.577 lengthscale: 10.705 noise: 0.004 Iter 43/500 - Loss: 0.564 lengthscale: 10.985 noise: 0.003 Iter 44/500 - Loss: 0.551 lengthscale: 11.263 noise: 0.003 Iter 45/500 - Loss: 0.539 lengthscale: 11.540 noise: 0.003 Iter 46/500 - Loss: 0.526 lengthscale: 11.815 noise: 0.002 Iter 47/500 - Loss: 0.514 lengthscale: 12.088 noise: 0.002 Iter 48/500 - Loss: 0.503 lengthscale: 12.359 noise: 0.002 Iter 49/500 - Loss: 0.492 lengthscale: 12.627 noise: 0.002 Iter 50/500 - Loss: 0.482 lengthscale: 12.892 noise: 0.001 Iter 51/500 - Loss: 0.472 lengthscale: 13.154 noise: 0.001 Iter 52/500 - Loss: 0.462 lengthscale: 13.412 noise: 0.001 Iter 53/500 - Loss: 0.453 lengthscale: 13.668 noise: 0.001 Iter 54/500 - Loss: 0.445 lengthscale: 13.919 noise: 0.001 Iter 55/500 - Loss: 0.437 lengthscale: 14.167 noise: 0.001 Iter 56/500 - Loss: 0.429 lengthscale: 14.410 noise: 0.001 Iter 57/500 - Loss: 0.422 lengthscale: 14.649 noise: 0.001 Iter 58/500 - Loss: 0.415 lengthscale: 14.883 noise: 0.001 Iter 59/500 - Loss: 0.409 lengthscale: 15.111 noise: 0.001 Iter 60/500 - Loss: 0.403 lengthscale: 15.335 noise: 0.001 Iter 61/500 - Loss: 0.398 lengthscale: 15.552 noise: 0.001 Iter 62/500 - Loss: 0.393 lengthscale: 15.764 noise: 0.001 Iter 63/500 - Loss: 0.389 lengthscale: 15.970 noise: 0.001 Iter 64/500 - Loss: 0.385 lengthscale: 16.170 noise: 0.000 Iter 65/500 - Loss: 0.381 lengthscale: 16.363 noise: 0.000 Iter 66/500 - Loss: 0.378 lengthscale: 16.551 noise: 0.000 Iter 67/500 - Loss: 0.375 lengthscale: 16.731 noise: 0.000 Iter 68/500 - Loss: 0.373 lengthscale: 16.905 noise: 0.000 Iter 69/500 - Loss: 0.371 lengthscale: 17.072 noise: 0.000 Iter 70/500 - Loss: 0.369 lengthscale: 17.231 noise: 0.000 Iter 71/500 - Loss: 0.367 lengthscale: 17.383 noise: 0.000 Iter 72/500 - Loss: 0.366 lengthscale: 17.527 noise: 0.000 Iter 73/500 - Loss: 0.365 lengthscale: 17.662 noise: 0.000 Iter 74/500 - Loss: 0.364 lengthscale: 17.791 noise: 0.000 Iter 75/500 - Loss: 0.363 lengthscale: 17.911 noise: 0.000 Iter 76/500 - Loss: 0.363 lengthscale: 18.024 noise: 0.000 Iter 77/500 - Loss: 0.362 lengthscale: 18.129 noise: 0.000 Iter 78/500 - Loss: 0.362 lengthscale: 18.227 noise: 0.000 Iter 79/500 - Loss: 0.362 lengthscale: 18.317 noise: 0.000 Iter 80/500 - Loss: 0.362 lengthscale: 18.400 noise: 0.000 Iter 81/500 - Loss: 0.362 lengthscale: 18.477 noise: 0.000 Iter 82/500 - Loss: 0.362 lengthscale: 18.546 noise: 0.000 Iter 83/500 - Loss: 0.362 lengthscale: 18.608 noise: 0.000 Iter 84/500 - Loss: 0.362 lengthscale: 18.664 noise: 0.000 Iter 85/500 - Loss: 0.362 lengthscale: 18.712 noise: 0.000 Iter 86/500 - Loss: 0.362 lengthscale: 18.755 noise: 0.000 Iter 87/500 - Loss: 0.362 lengthscale: 18.791 noise: 0.000 Iter 88/500 - Loss: 0.362 lengthscale: 18.822 noise: 0.000 Iter 89/500 - Loss: 0.362 lengthscale: 18.848 noise: 0.000 Iter 90/500 - Loss: 0.363 lengthscale: 18.868 noise: 0.000 Iter 91/500 - Loss: 0.363 lengthscale: 18.884 noise: 0.000 Iter 92/500 - Loss: 0.363 lengthscale: 18.896 noise: 0.000 Iter 93/500 - Loss: 0.363 lengthscale: 18.904 noise: 0.000 Iter 94/500 - Loss: 0.363 lengthscale: 18.909 noise: 0.000 Iter 95/500 - Loss: 0.363 lengthscale: 18.910 noise: 0.000 Iter 96/500 - Loss: 0.363 lengthscale: 18.907 noise: 0.000 Iter 97/500 - Loss: 0.363 lengthscale: 18.902 noise: 0.000 Iter 98/500 - Loss: 0.363 lengthscale: 18.894 noise: 0.000 Iter 99/500 - Loss: 0.362 lengthscale: 18.884 noise: 0.000 Iter 100/500 - Loss: 0.362 lengthscale: 18.873 noise: 0.000 Iter 101/500 - Loss: 0.362 lengthscale: 18.859 noise: 0.000 Iter 102/500 - Loss: 0.362 lengthscale: 18.844 noise: 0.000 Iter 103/500 - Loss: 0.362 lengthscale: 18.828 noise: 0.000 Iter 104/500 - Loss: 0.362 lengthscale: 18.811 noise: 0.000 Iter 105/500 - Loss: 0.362 lengthscale: 18.794 noise: 0.000 Iter 106/500 - Loss: 0.362 lengthscale: 18.776 noise: 0.000 Iter 107/500 - Loss: 0.362 lengthscale: 18.758 noise: 0.000 Iter 108/500 - Loss: 0.362 lengthscale: 18.740 noise: 0.000 Iter 109/500 - Loss: 0.362 lengthscale: 18.722 noise: 0.000 Iter 110/500 - Loss: 0.362 lengthscale: 18.704 noise: 0.000 Iter 111/500 - Loss: 0.362 lengthscale: 18.687 noise: 0.000 Iter 112/500 - Loss: 0.362 lengthscale: 18.670 noise: 0.000 Iter 113/500 - Loss: 0.362 lengthscale: 18.653 noise: 0.000 Iter 114/500 - Loss: 0.362 lengthscale: 18.638 noise: 0.000 Iter 115/500 - Loss: 0.362 lengthscale: 18.622 noise: 0.000 Iter 116/500 - Loss: 0.362 lengthscale: 18.608 noise: 0.000 Iter 117/500 - Loss: 0.362 lengthscale: 18.595 noise: 0.000 Iter 118/500 - Loss: 0.362 lengthscale: 18.583 noise: 0.000 Iter 119/500 - Loss: 0.362 lengthscale: 18.572 noise: 0.000 Iter 120/500 - Loss: 0.362 lengthscale: 18.561 noise: 0.000 Iter 121/500 - Loss: 0.362 lengthscale: 18.552 noise: 0.000 Iter 122/500 - Loss: 0.362 lengthscale: 18.543 noise: 0.000 Iter 123/500 - Loss: 0.362 lengthscale: 18.536 noise: 0.000 Iter 124/500 - Loss: 0.362 lengthscale: 18.529 noise: 0.000 Iter 125/500 - Loss: 0.362 lengthscale: 18.524 noise: 0.000 Iter 126/500 - Loss: 0.362 lengthscale: 18.519 noise: 0.000 Iter 127/500 - Loss: 0.362 lengthscale: 18.516 noise: 0.000 Iter 128/500 - Loss: 0.362 lengthscale: 18.513 noise: 0.000 Iter 129/500 - Loss: 0.362 lengthscale: 18.511 noise: 0.000 Iter 130/500 - Loss: 0.362 lengthscale: 18.510 noise: 0.000 Iter 131/500 - Loss: 0.362 lengthscale: 18.509 noise: 0.000 Iter 132/500 - Loss: 0.362 lengthscale: 18.510 noise: 0.000 Iter 133/500 - Loss: 0.362 lengthscale: 18.511 noise: 0.000 Iter 134/500 - Loss: 0.362 lengthscale: 18.512 noise: 0.000 Iter 135/500 - Loss: 0.362 lengthscale: 18.514 noise: 0.000 Iter 136/500 - Loss: 0.362 lengthscale: 18.517 noise: 0.000 Iter 137/500 - Loss: 0.362 lengthscale: 18.520 noise: 0.000 Iter 138/500 - Loss: 0.362 lengthscale: 18.524 noise: 0.000 Iter 139/500 - Loss: 0.362 lengthscale: 18.528 noise: 0.000 Iter 140/500 - Loss: 0.362 lengthscale: 18.532 noise: 0.000 Iter 141/500 - Loss: 0.362 lengthscale: 18.537 noise: 0.000 Iter 142/500 - Loss: 0.362 lengthscale: 18.542 noise: 0.000 Iter 143/500 - Loss: 0.362 lengthscale: 18.547 noise: 0.000 Iter 144/500 - Loss: 0.362 lengthscale: 18.552 noise: 0.000 Iter 145/500 - Loss: 0.362 lengthscale: 18.558 noise: 0.000 Iter 146/500 - Loss: 0.362 lengthscale: 18.563 noise: 0.000 Iter 147/500 - Loss: 0.362 lengthscale: 18.569 noise: 0.000 Iter 148/500 - Loss: 0.362 lengthscale: 18.574 noise: 0.000 Iter 149/500 - Loss: 0.362 lengthscale: 18.580 noise: 0.000 Iter 150/500 - Loss: 0.362 lengthscale: 18.586 noise: 0.000 Iter 151/500 - Loss: 0.362 lengthscale: 18.592 noise: 0.000 Iter 152/500 - Loss: 0.362 lengthscale: 18.597 noise: 0.000 Iter 153/500 - Loss: 0.362 lengthscale: 18.603 noise: 0.000 Iter 154/500 - Loss: 0.362 lengthscale: 18.608 noise: 0.000 Iter 155/500 - Loss: 0.362 lengthscale: 18.614 noise: 0.000 Iter 156/500 - Loss: 0.362 lengthscale: 18.619 noise: 0.000 Iter 157/500 - Loss: 0.362 lengthscale: 18.625 noise: 0.000 Iter 158/500 - Loss: 0.362 lengthscale: 18.630 noise: 0.000 Iter 159/500 - Loss: 0.362 lengthscale: 18.635 noise: 0.000 Iter 160/500 - Loss: 0.362 lengthscale: 18.640 noise: 0.000 Iter 161/500 - Loss: 0.362 lengthscale: 18.645 noise: 0.000 Iter 162/500 - Loss: 0.362 lengthscale: 18.650 noise: 0.000 Iter 163/500 - Loss: 0.362 lengthscale: 18.655 noise: 0.000 Iter 164/500 - Loss: 0.362 lengthscale: 18.659 noise: 0.000 Iter 165/500 - Loss: 0.361 lengthscale: 18.664 noise: 0.000 Iter 166/500 - Loss: 0.361 lengthscale: 18.669 noise: 0.000 Iter 167/500 - Loss: 0.361 lengthscale: 18.673 noise: 0.000 Iter 168/500 - Loss: 0.361 lengthscale: 18.678 noise: 0.000 Iter 169/500 - Loss: 0.361 lengthscale: 18.682 noise: 0.000 Iter 170/500 - Loss: 0.361 lengthscale: 18.686 noise: 0.000 Iter 171/500 - Loss: 0.361 lengthscale: 18.691 noise: 0.000 Iter 172/500 - Loss: 0.361 lengthscale: 18.695 noise: 0.000 Iter 173/500 - Loss: 0.361 lengthscale: 18.699 noise: 0.000 Iter 174/500 - Loss: 0.361 lengthscale: 18.704 noise: 0.000 Iter 175/500 - Loss: 0.361 lengthscale: 18.708 noise: 0.000 Iter 176/500 - Loss: 0.361 lengthscale: 18.713 noise: 0.000 Iter 177/500 - Loss: 0.361 lengthscale: 18.717 noise: 0.000 Iter 178/500 - Loss: 0.361 lengthscale: 18.721 noise: 0.000 Iter 179/500 - Loss: 0.361 lengthscale: 18.726 noise: 0.000 Iter 180/500 - Loss: 0.361 lengthscale: 18.731 noise: 0.000 Iter 181/500 - Loss: 0.361 lengthscale: 18.735 noise: 0.000 Iter 182/500 - Loss: 0.361 lengthscale: 18.740 noise: 0.000 Iter 183/500 - Loss: 0.361 lengthscale: 18.745 noise: 0.000 Iter 184/500 - Loss: 0.361 lengthscale: 18.750 noise: 0.000 Iter 185/500 - Loss: 0.361 lengthscale: 18.755 noise: 0.000 Iter 186/500 - Loss: 0.361 lengthscale: 18.760 noise: 0.000 Iter 187/500 - Loss: 0.361 lengthscale: 18.765 noise: 0.000 Iter 188/500 - Loss: 0.361 lengthscale: 18.771 noise: 0.000 Iter 189/500 - Loss: 0.361 lengthscale: 18.776 noise: 0.000 Iter 190/500 - Loss: 0.361 lengthscale: 18.782 noise: 0.000 Iter 191/500 - Loss: 0.361 lengthscale: 18.788 noise: 0.000 Iter 192/500 - Loss: 0.361 lengthscale: 18.794 noise: 0.000 Iter 193/500 - Loss: 0.361 lengthscale: 18.800 noise: 0.000 Iter 194/500 - Loss: 0.361 lengthscale: 18.806 noise: 0.000 Iter 195/500 - Loss: 0.361 lengthscale: 18.813 noise: 0.000 Iter 196/500 - Loss: 0.361 lengthscale: 18.820 noise: 0.000 Iter 197/500 - Loss: 0.361 lengthscale: 18.827 noise: 0.000 Iter 198/500 - Loss: 0.361 lengthscale: 18.834 noise: 0.000 Iter 199/500 - Loss: 0.361 lengthscale: 18.841 noise: 0.000 Iter 200/500 - Loss: 0.361 lengthscale: 18.848 noise: 0.000 Iter 201/500 - Loss: 0.361 lengthscale: 18.856 noise: 0.000 Iter 202/500 - Loss: 0.361 lengthscale: 18.863 noise: 0.000 Iter 203/500 - Loss: 0.361 lengthscale: 18.871 noise: 0.000 Iter 204/500 - Loss: 0.361 lengthscale: 18.880 noise: 0.000 Iter 205/500 - Loss: 0.361 lengthscale: 18.888 noise: 0.000 Iter 206/500 - Loss: 0.361 lengthscale: 18.897 noise: 0.001 Iter 207/500 - Loss: 0.361 lengthscale: 18.905 noise: 0.001 Iter 208/500 - Loss: 0.361 lengthscale: 18.914 noise: 0.001 Iter 209/500 - Loss: 0.361 lengthscale: 18.924 noise: 0.001 Iter 210/500 - Loss: 0.361 lengthscale: 18.933 noise: 0.001 Iter 211/500 - Loss: 0.361 lengthscale: 18.943 noise: 0.001 Iter 212/500 - Loss: 0.361 lengthscale: 18.953 noise: 0.001 Iter 213/500 - Loss: 0.361 lengthscale: 18.963 noise: 0.001 Iter 214/500 - Loss: 0.361 lengthscale: 18.974 noise: 0.001 Iter 215/500 - Loss: 0.361 lengthscale: 18.985 noise: 0.001 Iter 216/500 - Loss: 0.361 lengthscale: 18.996 noise: 0.001 Iter 217/500 - Loss: 0.361 lengthscale: 19.007 noise: 0.001 Iter 218/500 - Loss: 0.361 lengthscale: 19.019 noise: 0.001 Iter 219/500 - Loss: 0.361 lengthscale: 19.030 noise: 0.001 Iter 220/500 - Loss: 0.361 lengthscale: 19.043 noise: 0.001 Iter 221/500 - Loss: 0.360 lengthscale: 19.055 noise: 0.001 Iter 222/500 - Loss: 0.360 lengthscale: 19.068 noise: 0.001 Iter 223/500 - Loss: 0.360 lengthscale: 19.081 noise: 0.001 Iter 224/500 - Loss: 0.360 lengthscale: 19.095 noise: 0.001 Iter 225/500 - Loss: 0.360 lengthscale: 19.109 noise: 0.001 Iter 226/500 - Loss: 0.360 lengthscale: 19.123 noise: 0.001 Iter 227/500 - Loss: 0.360 lengthscale: 19.138 noise: 0.001 Iter 228/500 - Loss: 0.360 lengthscale: 19.153 noise: 0.001 Iter 229/500 - Loss: 0.360 lengthscale: 19.169 noise: 0.001 Iter 230/500 - Loss: 0.360 lengthscale: 19.185 noise: 0.001 Iter 231/500 - Loss: 0.360 lengthscale: 19.202 noise: 0.001 Iter 232/500 - Loss: 0.360 lengthscale: 19.219 noise: 0.001 Iter 233/500 - Loss: 0.360 lengthscale: 19.236 noise: 0.001 Iter 234/500 - Loss: 0.360 lengthscale: 19.254 noise: 0.001 Iter 235/500 - Loss: 0.360 lengthscale: 19.273 noise: 0.001 Iter 236/500 - Loss: 0.360 lengthscale: 19.292 noise: 0.001 Iter 237/500 - Loss: 0.360 lengthscale: 19.311 noise: 0.001 Iter 238/500 - Loss: 0.359 lengthscale: 19.332 noise: 0.001 Iter 239/500 - Loss: 0.359 lengthscale: 19.353 noise: 0.001 Iter 240/500 - Loss: 0.359 lengthscale: 19.374 noise: 0.001 Iter 241/500 - Loss: 0.359 lengthscale: 19.396 noise: 0.001 Iter 242/500 - Loss: 0.359 lengthscale: 19.419 noise: 0.001 Iter 243/500 - Loss: 0.359 lengthscale: 19.443 noise: 0.001 Iter 244/500 - Loss: 0.359 lengthscale: 19.467 noise: 0.001 Iter 245/500 - Loss: 0.359 lengthscale: 19.492 noise: 0.001 Iter 246/500 - Loss: 0.359 lengthscale: 19.518 noise: 0.001 Iter 247/500 - Loss: 0.358 lengthscale: 19.545 noise: 0.001 Iter 248/500 - Loss: 0.358 lengthscale: 19.572 noise: 0.001 Iter 249/500 - Loss: 0.358 lengthscale: 19.600 noise: 0.001 Iter 250/500 - Loss: 0.358 lengthscale: 19.630 noise: 0.001 Iter 251/500 - Loss: 0.358 lengthscale: 19.660 noise: 0.001 Iter 252/500 - Loss: 0.358 lengthscale: 19.690 noise: 0.001 Iter 253/500 - Loss: 0.358 lengthscale: 19.722 noise: 0.001 Iter 254/500 - Loss: 0.357 lengthscale: 19.755 noise: 0.001 Iter 255/500 - Loss: 0.357 lengthscale: 19.789 noise: 0.001 Iter 256/500 - Loss: 0.357 lengthscale: 19.823 noise: 0.001 Iter 257/500 - Loss: 0.357 lengthscale: 19.859 noise: 0.001 Iter 258/500 - Loss: 0.357 lengthscale: 19.896 noise: 0.001 Iter 259/500 - Loss: 0.357 lengthscale: 19.933 noise: 0.001 Iter 260/500 - Loss: 0.356 lengthscale: 19.972 noise: 0.001 Iter 261/500 - Loss: 0.356 lengthscale: 20.012 noise: 0.001 Iter 262/500 - Loss: 0.356 lengthscale: 20.052 noise: 0.001 Iter 263/500 - Loss: 0.356 lengthscale: 20.094 noise: 0.002 Iter 264/500 - Loss: 0.356 lengthscale: 20.136 noise: 0.002 Iter 265/500 - Loss: 0.355 lengthscale: 20.179 noise: 0.002 Iter 266/500 - Loss: 0.355 lengthscale: 20.224 noise: 0.002 Iter 267/500 - Loss: 0.355 lengthscale: 20.269 noise: 0.002 Iter 268/500 - Loss: 0.355 lengthscale: 20.315 noise: 0.002 Iter 269/500 - Loss: 0.355 lengthscale: 20.362 noise: 0.002 Iter 270/500 - Loss: 0.354 lengthscale: 20.409 noise: 0.002 Iter 271/500 - Loss: 0.354 lengthscale: 20.458 noise: 0.002 Iter 272/500 - Loss: 0.354 lengthscale: 20.507 noise: 0.002 Iter 273/500 - Loss: 0.354 lengthscale: 20.557 noise: 0.002 Iter 274/500 - Loss: 0.354 lengthscale: 20.607 noise: 0.002 Iter 275/500 - Loss: 0.353 lengthscale: 20.658 noise: 0.002 Iter 276/500 - Loss: 0.353 lengthscale: 20.709 noise: 0.002 Iter 277/500 - Loss: 0.353 lengthscale: 20.761 noise: 0.002 Iter 278/500 - Loss: 0.353 lengthscale: 20.813 noise: 0.002 Iter 279/500 - Loss: 0.353 lengthscale: 20.866 noise: 0.002 Iter 280/500 - Loss: 0.352 lengthscale: 20.919 noise: 0.002 Iter 281/500 - Loss: 0.352 lengthscale: 20.972 noise: 0.002 Iter 282/500 - Loss: 0.352 lengthscale: 21.025 noise: 0.002 Iter 283/500 - Loss: 0.352 lengthscale: 21.078 noise: 0.002 Iter 284/500 - Loss: 0.352 lengthscale: 21.132 noise: 0.002 Iter 285/500 - Loss: 0.352 lengthscale: 21.185 noise: 0.002 Iter 286/500 - Loss: 0.351 lengthscale: 21.239 noise: 0.003 Iter 287/500 - Loss: 0.351 lengthscale: 21.292 noise: 0.003 Iter 288/500 - Loss: 0.351 lengthscale: 21.345 noise: 0.003 Iter 289/500 - Loss: 0.351 lengthscale: 21.398 noise: 0.003 Iter 290/500 - Loss: 0.351 lengthscale: 21.451 noise: 0.003 Iter 291/500 - Loss: 0.350 lengthscale: 21.504 noise: 0.003 Iter 292/500 - Loss: 0.350 lengthscale: 21.556 noise: 0.003 Iter 293/500 - Loss: 0.350 lengthscale: 21.608 noise: 0.003 Iter 294/500 - Loss: 0.350 lengthscale: 21.661 noise: 0.003 Iter 295/500 - Loss: 0.350 lengthscale: 21.712 noise: 0.003 Iter 296/500 - Loss: 0.350 lengthscale: 21.764 noise: 0.003 Iter 297/500 - Loss: 0.349 lengthscale: 21.815 noise: 0.003 Iter 298/500 - Loss: 0.349 lengthscale: 21.867 noise: 0.003 Iter 299/500 - Loss: 0.349 lengthscale: 21.918 noise: 0.003 Iter 300/500 - Loss: 0.349 lengthscale: 21.968 noise: 0.003 Iter 301/500 - Loss: 0.349 lengthscale: 22.019 noise: 0.003 Iter 302/500 - Loss: 0.349 lengthscale: 22.070 noise: 0.003 Iter 303/500 - Loss: 0.348 lengthscale: 22.120 noise: 0.003 Iter 304/500 - Loss: 0.348 lengthscale: 22.170 noise: 0.003 Iter 305/500 - Loss: 0.348 lengthscale: 22.220 noise: 0.003 Iter 306/500 - Loss: 0.348 lengthscale: 22.270 noise: 0.003 Iter 307/500 - Loss: 0.348 lengthscale: 22.320 noise: 0.003 Iter 308/500 - Loss: 0.348 lengthscale: 22.370 noise: 0.003 Iter 309/500 - Loss: 0.347 lengthscale: 22.419 noise: 0.004 Iter 310/500 - Loss: 0.347 lengthscale: 22.469 noise: 0.004 Iter 311/500 - Loss: 0.347 lengthscale: 22.519 noise: 0.004 Iter 312/500 - Loss: 0.347 lengthscale: 22.568 noise: 0.004 Iter 313/500 - Loss: 0.347 lengthscale: 22.618 noise: 0.004 Iter 314/500 - Loss: 0.347 lengthscale: 22.668 noise: 0.004 Iter 315/500 - Loss: 0.347 lengthscale: 22.717 noise: 0.004 Iter 316/500 - Loss: 0.346 lengthscale: 22.767 noise: 0.004 Iter 317/500 - Loss: 0.346 lengthscale: 22.817 noise: 0.004 Iter 318/500 - Loss: 0.346 lengthscale: 22.867 noise: 0.004 Iter 319/500 - Loss: 0.346 lengthscale: 22.916 noise: 0.004 Iter 320/500 - Loss: 0.346 lengthscale: 22.966 noise: 0.004 Iter 321/500 - Loss: 0.346 lengthscale: 23.016 noise: 0.004 Iter 322/500 - Loss: 0.346 lengthscale: 23.066 noise: 0.004 Iter 323/500 - Loss: 0.345 lengthscale: 23.116 noise: 0.004 Iter 324/500 - Loss: 0.345 lengthscale: 23.166 noise: 0.004 Iter 325/500 - Loss: 0.345 lengthscale: 23.217 noise: 0.004 Iter 326/500 - Loss: 0.345 lengthscale: 23.267 noise: 0.004 Iter 327/500 - Loss: 0.345 lengthscale: 23.318 noise: 0.004 Iter 328/500 - Loss: 0.345 lengthscale: 23.369 noise: 0.004 Iter 329/500 - Loss: 0.344 lengthscale: 23.420 noise: 0.005 Iter 330/500 - Loss: 0.344 lengthscale: 23.471 noise: 0.005 Iter 331/500 - Loss: 0.344 lengthscale: 23.523 noise: 0.005 Iter 332/500 - Loss: 0.344 lengthscale: 23.574 noise: 0.005 Iter 333/500 - Loss: 0.344 lengthscale: 23.626 noise: 0.005 Iter 334/500 - Loss: 0.344 lengthscale: 23.679 noise: 0.005 Iter 335/500 - Loss: 0.343 lengthscale: 23.731 noise: 0.005 Iter 336/500 - Loss: 0.343 lengthscale: 23.784 noise: 0.005 Iter 337/500 - Loss: 0.343 lengthscale: 23.837 noise: 0.005 Iter 338/500 - Loss: 0.343 lengthscale: 23.891 noise: 0.005 Iter 339/500 - Loss: 0.343 lengthscale: 23.945 noise: 0.005 Iter 340/500 - Loss: 0.343 lengthscale: 23.999 noise: 0.005 Iter 341/500 - Loss: 0.342 lengthscale: 24.053 noise: 0.005 Iter 342/500 - Loss: 0.342 lengthscale: 24.108 noise: 0.005 Iter 343/500 - Loss: 0.342 lengthscale: 24.164 noise: 0.005 Iter 344/500 - Loss: 0.342 lengthscale: 24.219 noise: 0.005 Iter 345/500 - Loss: 0.342 lengthscale: 24.276 noise: 0.005 Iter 346/500 - Loss: 0.341 lengthscale: 24.332 noise: 0.005 Iter 347/500 - Loss: 0.341 lengthscale: 24.389 noise: 0.006 Iter 348/500 - Loss: 0.341 lengthscale: 24.447 noise: 0.006 Iter 349/500 - Loss: 0.341 lengthscale: 24.505 noise: 0.006 Iter 350/500 - Loss: 0.341 lengthscale: 24.563 noise: 0.006 Iter 351/500 - Loss: 0.340 lengthscale: 24.622 noise: 0.006 Iter 352/500 - Loss: 0.340 lengthscale: 24.681 noise: 0.006 Iter 353/500 - Loss: 0.340 lengthscale: 24.741 noise: 0.006 Iter 354/500 - Loss: 0.340 lengthscale: 24.801 noise: 0.006 Iter 355/500 - Loss: 0.340 lengthscale: 24.862 noise: 0.006 Iter 356/500 - Loss: 0.339 lengthscale: 24.924 noise: 0.006 Iter 357/500 - Loss: 0.339 lengthscale: 24.985 noise: 0.006 Iter 358/500 - Loss: 0.339 lengthscale: 25.048 noise: 0.006 Iter 359/500 - Loss: 0.339 lengthscale: 25.111 noise: 0.006 Iter 360/500 - Loss: 0.338 lengthscale: 25.174 noise: 0.006 Iter 361/500 - Loss: 0.338 lengthscale: 25.239 noise: 0.006 Iter 362/500 - Loss: 0.338 lengthscale: 25.303 noise: 0.006 Iter 363/500 - Loss: 0.338 lengthscale: 25.369 noise: 0.007 Iter 364/500 - Loss: 0.337 lengthscale: 25.435 noise: 0.007 Iter 365/500 - Loss: 0.337 lengthscale: 25.501 noise: 0.007 Iter 366/500 - Loss: 0.337 lengthscale: 25.568 noise: 0.007 Iter 367/500 - Loss: 0.337 lengthscale: 25.636 noise: 0.007 Iter 368/500 - Loss: 0.336 lengthscale: 25.704 noise: 0.007 Iter 369/500 - Loss: 0.336 lengthscale: 25.773 noise: 0.007 Iter 370/500 - Loss: 0.336 lengthscale: 25.842 noise: 0.007 Iter 371/500 - Loss: 0.335 lengthscale: 25.913 noise: 0.007 Iter 372/500 - Loss: 0.335 lengthscale: 25.983 noise: 0.007 Iter 373/500 - Loss: 0.335 lengthscale: 26.055 noise: 0.007 Iter 374/500 - Loss: 0.335 lengthscale: 26.127 noise: 0.007 Iter 375/500 - Loss: 0.334 lengthscale: 26.199 noise: 0.007 Iter 376/500 - Loss: 0.334 lengthscale: 26.273 noise: 0.007 Iter 377/500 - Loss: 0.334 lengthscale: 26.347 noise: 0.007 Iter 378/500 - Loss: 0.333 lengthscale: 26.421 noise: 0.008 Iter 379/500 - Loss: 0.333 lengthscale: 26.496 noise: 0.008 Iter 380/500 - Loss: 0.333 lengthscale: 26.572 noise: 0.008 Iter 381/500 - Loss: 0.332 lengthscale: 26.649 noise: 0.008 Iter 382/500 - Loss: 0.332 lengthscale: 26.726 noise: 0.008 Iter 383/500 - Loss: 0.332 lengthscale: 26.804 noise: 0.008 Iter 384/500 - Loss: 0.331 lengthscale: 26.882 noise: 0.008 Iter 385/500 - Loss: 0.331 lengthscale: 26.961 noise: 0.008 Iter 386/500 - Loss: 0.331 lengthscale: 27.041 noise: 0.008 Iter 387/500 - Loss: 0.330 lengthscale: 27.121 noise: 0.008 Iter 388/500 - Loss: 0.330 lengthscale: 27.202 noise: 0.008 Iter 389/500 - Loss: 0.330 lengthscale: 27.284 noise: 0.008 Iter 390/500 - Loss: 0.329 lengthscale: 27.366 noise: 0.008 Iter 391/500 - Loss: 0.329 lengthscale: 27.449 noise: 0.008 Iter 392/500 - Loss: 0.328 lengthscale: 27.532 noise: 0.008 Iter 393/500 - Loss: 0.328 lengthscale: 27.616 noise: 0.009 Iter 394/500 - Loss: 0.328 lengthscale: 27.701 noise: 0.009 Iter 395/500 - Loss: 0.327 lengthscale: 27.786 noise: 0.009 Iter 396/500 - Loss: 0.327 lengthscale: 27.872 noise: 0.009 Iter 397/500 - Loss: 0.326 lengthscale: 27.959 noise: 0.009 Iter 398/500 - Loss: 0.326 lengthscale: 28.046 noise: 0.009 Iter 399/500 - Loss: 0.326 lengthscale: 28.133 noise: 0.009 Iter 400/500 - Loss: 0.325 lengthscale: 28.222 noise: 0.009 Iter 401/500 - Loss: 0.325 lengthscale: 28.311 noise: 0.009 Iter 402/500 - Loss: 0.324 lengthscale: 28.400 noise: 0.009 Iter 403/500 - Loss: 0.324 lengthscale: 28.490 noise: 0.009 Iter 404/500 - Loss: 0.323 lengthscale: 28.580 noise: 0.009 Iter 405/500 - Loss: 0.323 lengthscale: 28.672 noise: 0.009 Iter 406/500 - Loss: 0.323 lengthscale: 28.763 noise: 0.009 Iter 407/500 - Loss: 0.322 lengthscale: 28.855 noise: 0.009 Iter 408/500 - Loss: 0.322 lengthscale: 28.948 noise: 0.010 Iter 409/500 - Loss: 0.321 lengthscale: 29.041 noise: 0.010 Iter 410/500 - Loss: 0.321 lengthscale: 29.135 noise: 0.010 Iter 411/500 - Loss: 0.320 lengthscale: 29.229 noise: 0.010 Iter 412/500 - Loss: 0.320 lengthscale: 29.324 noise: 0.010 Iter 413/500 - Loss: 0.319 lengthscale: 29.419 noise: 0.010 Iter 414/500 - Loss: 0.319 lengthscale: 29.515 noise: 0.010 Iter 415/500 - Loss: 0.318 lengthscale: 29.611 noise: 0.010 Iter 416/500 - Loss: 0.318 lengthscale: 29.708 noise: 0.010 Iter 417/500 - Loss: 0.317 lengthscale: 29.805 noise: 0.010 Iter 418/500 - Loss: 0.317 lengthscale: 29.903 noise: 0.010 Iter 419/500 - Loss: 0.316 lengthscale: 30.001 noise: 0.010 Iter 420/500 - Loss: 0.316 lengthscale: 30.099 noise: 0.010 Iter 421/500 - Loss: 0.315 lengthscale: 30.198 noise: 0.010 Iter 422/500 - Loss: 0.315 lengthscale: 30.297 noise: 0.010 Iter 423/500 - Loss: 0.314 lengthscale: 30.397 noise: 0.010 Iter 424/500 - Loss: 0.314 lengthscale: 30.497 noise: 0.010 Iter 425/500 - Loss: 0.313 lengthscale: 30.598 noise: 0.011 Iter 426/500 - Loss: 0.313 lengthscale: 30.699 noise: 0.011 Iter 427/500 - Loss: 0.312 lengthscale: 30.800 noise: 0.011 Iter 428/500 - Loss: 0.312 lengthscale: 30.901 noise: 0.011 Iter 429/500 - Loss: 0.311 lengthscale: 31.003 noise: 0.011 Iter 430/500 - Loss: 0.311 lengthscale: 31.106 noise: 0.011 Iter 431/500 - Loss: 0.310 lengthscale: 31.209 noise: 0.011 Iter 432/500 - Loss: 0.310 lengthscale: 31.312 noise: 0.011 Iter 433/500 - Loss: 0.309 lengthscale: 31.415 noise: 0.011 Iter 434/500 - Loss: 0.309 lengthscale: 31.519 noise: 0.011 Iter 435/500 - Loss: 0.308 lengthscale: 31.623 noise: 0.011 Iter 436/500 - Loss: 0.308 lengthscale: 31.727 noise: 0.011 Iter 437/500 - Loss: 0.307 lengthscale: 31.832 noise: 0.011 Iter 438/500 - Loss: 0.306 lengthscale: 31.936 noise: 0.011 Iter 439/500 - Loss: 0.306 lengthscale: 32.042 noise: 0.011 Iter 440/500 - Loss: 0.305 lengthscale: 32.147 noise: 0.011 Iter 441/500 - Loss: 0.305 lengthscale: 32.253 noise: 0.011 Iter 442/500 - Loss: 0.304 lengthscale: 32.359 noise: 0.011 Iter 443/500 - Loss: 0.304 lengthscale: 32.465 noise: 0.011 Iter 444/500 - Loss: 0.303 lengthscale: 32.571 noise: 0.012 Iter 445/500 - Loss: 0.303 lengthscale: 32.678 noise: 0.012 Iter 446/500 - Loss: 0.302 lengthscale: 32.785 noise: 0.012 Iter 447/500 - Loss: 0.301 lengthscale: 32.892 noise: 0.012 Iter 448/500 - Loss: 0.301 lengthscale: 32.999 noise: 0.012 Iter 449/500 - Loss: 0.300 lengthscale: 33.106 noise: 0.012 Iter 450/500 - Loss: 0.300 lengthscale: 33.214 noise: 0.012 Iter 451/500 - Loss: 0.299 lengthscale: 33.322 noise: 0.012 Iter 452/500 - Loss: 0.299 lengthscale: 33.430 noise: 0.012 Iter 453/500 - Loss: 0.298 lengthscale: 33.538 noise: 0.012 Iter 454/500 - Loss: 0.298 lengthscale: 33.646 noise: 0.012 Iter 455/500 - Loss: 0.297 lengthscale: 33.755 noise: 0.012 Iter 456/500 - Loss: 0.296 lengthscale: 33.863 noise: 0.012 Iter 457/500 - Loss: 0.296 lengthscale: 33.972 noise: 0.012 Iter 458/500 - Loss: 0.295 lengthscale: 34.081 noise: 0.012 Iter 459/500 - Loss: 0.295 lengthscale: 34.190 noise: 0.012 Iter 460/500 - Loss: 0.294 lengthscale: 34.299 noise: 0.012 Iter 461/500 - Loss: 0.294 lengthscale: 34.408 noise: 0.012 Iter 462/500 - Loss: 0.293 lengthscale: 34.517 noise: 0.012 Iter 463/500 - Loss: 0.292 lengthscale: 34.626 noise: 0.012 Iter 464/500 - Loss: 0.292 lengthscale: 34.736 noise: 0.012 Iter 465/500 - Loss: 0.291 lengthscale: 34.845 noise: 0.012 Iter 466/500 - Loss: 0.291 lengthscale: 34.955 noise: 0.012 Iter 467/500 - Loss: 0.290 lengthscale: 35.064 noise: 0.012 Iter 468/500 - Loss: 0.290 lengthscale: 35.174 noise: 0.012 Iter 469/500 - Loss: 0.289 lengthscale: 35.284 noise: 0.013 Iter 470/500 - Loss: 0.289 lengthscale: 35.394 noise: 0.013 Iter 471/500 - Loss: 0.288 lengthscale: 35.503 noise: 0.013 Iter 472/500 - Loss: 0.287 lengthscale: 35.613 noise: 0.013 Iter 473/500 - Loss: 0.287 lengthscale: 35.723 noise: 0.013 Iter 474/500 - Loss: 0.286 lengthscale: 35.833 noise: 0.013 Iter 475/500 - Loss: 0.286 lengthscale: 35.943 noise: 0.013 Iter 476/500 - Loss: 0.285 lengthscale: 36.052 noise: 0.013 Iter 477/500 - Loss: 0.285 lengthscale: 36.162 noise: 0.013 Iter 478/500 - Loss: 0.284 lengthscale: 36.272 noise: 0.013 Iter 479/500 - Loss: 0.284 lengthscale: 36.382 noise: 0.013 Iter 480/500 - Loss: 0.283 lengthscale: 36.491 noise: 0.013 Iter 481/500 - Loss: 0.282 lengthscale: 36.601 noise: 0.013 Iter 482/500 - Loss: 0.282 lengthscale: 36.711 noise: 0.013 Iter 483/500 - Loss: 0.281 lengthscale: 36.821 noise: 0.013 Iter 484/500 - Loss: 0.281 lengthscale: 36.930 noise: 0.013 Iter 485/500 - Loss: 0.280 lengthscale: 37.040 noise: 0.013 Iter 486/500 - Loss: 0.280 lengthscale: 37.149 noise: 0.013 Iter 487/500 - Loss: 0.279 lengthscale: 37.259 noise: 0.013 Iter 488/500 - Loss: 0.279 lengthscale: 37.368 noise: 0.013 Iter 489/500 - Loss: 0.278 lengthscale: 37.477 noise: 0.013 Iter 490/500 - Loss: 0.278 lengthscale: 37.586 noise: 0.013 Iter 491/500 - Loss: 0.277 lengthscale: 37.695 noise: 0.013 Iter 492/500 - Loss: 0.276 lengthscale: 37.804 noise: 0.013 Iter 493/500 - Loss: 0.276 lengthscale: 37.913 noise: 0.013 Iter 494/500 - Loss: 0.275 lengthscale: 38.022 noise: 0.013 Iter 495/500 - Loss: 0.275 lengthscale: 38.131 noise: 0.013 Iter 496/500 - Loss: 0.274 lengthscale: 38.239 noise: 0.013 Iter 497/500 - Loss: 0.274 lengthscale: 38.348 noise: 0.013 Iter 498/500 - Loss: 0.273 lengthscale: 38.456 noise: 0.013 Iter 499/500 - Loss: 0.273 lengthscale: 38.564 noise: 0.013 Iter 500/500 - Loss: 0.272 lengthscale: 38.672 noise: 0.013
今は、予測をテストします。単純性のために 0.01 の固定分散を仮定します。
# Get into evaluation (predictive posterior) mode model.eval() likelihood.eval() # Test points are regularly spaced along [0,1] # Make predictions by feeding model through likelihood with torch.no_grad(), gpytorch.settings.fast_pred_var(): test_x = torch.linspace(0, 1, 51) test_x_distributional = torch.stack((test_x, (1e-2 * torch.ones_like(test_x)).log()), dim=1) observed_pred = likelihood(model(test_x_distributional)) with torch.no_grad(): # Initialize plot f, ax = plt.subplots(1, 1, figsize=(8, 3)) # Get upper and lower confidence bounds lower, upper = observed_pred.confidence_region() # Plot training data as black stars ax.errorbar(train_x_mean.numpy(), train_y.numpy(), xerr=train_x_stdv, fmt='k*') # Plot predictive means as blue line ax.plot(test_x.numpy(), observed_pred.mean.numpy(), 'b') # Shade between the lower and upper confidence bounds ax.fill_between(test_x.numpy(), lower.numpy(), upper.numpy(), alpha=0.5) ax.set_ylim([-3, 3]) ax.legend(['Observed Data', 'Mean', 'Confidence'])
最後の説明として、入力として確率分布に渡る任意の距離関数を取る一般的な DistributionalInputKernel クラスを公開することにより distributional カーネル・クラスを拡張することを非常に容易なものとしました。
以上