{ "cells": [ { "cell_type": "markdown", "source": [ "# Mauna Loa time series example\n", "\n", "*You are seeing the\n", "notebook output generated by\n", "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", "[Julia source file](https://github.com/JuliaGaussianProcesses/AbstractGPs.jl/blob/master/examples/1-mauna-loa/script.jl).\n", "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/AbstractGPs.jl/dev/examples/1-mauna-loa/).*" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "In this notebook, we apply Gaussian process regression to the Mauna Loa CO₂\n", "dataset. This showcases a rich combination of kernels, and how to handle and\n", "optimize all their parameters." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Setup\n", "\n", "We make use of the following packages:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using CSV, DataFrames # data loading\n", "using AbstractGPs # exact GP regression\n", "using ParameterHandling # for nested and constrained parameters\n", "using Optim # optimization\n", "using Zygote # auto-diff gradient computation\n", "using Plots # visualisation" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "Let's load and visualize the dataset." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "> **Tip**\n", ">\n", "> The `let` block [creates a new\n", "> scope](https://docs.julialang.org/en/v1/manual/variables-and-scoping/#scope-of-variables),\n", "> so any utility variables we define in here won't leak outside. This is\n", "> particularly helpful to keep notebooks tidy! The return value of the\n", "> block is given by its last expression." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=2}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 2 } ], "cell_type": "code", "source": [ "(xtrain, ytrain), (xtest, ytest) = let\n", " data = CSV.read(joinpath(\"/home/runner/work/AbstractGPs.jl/AbstractGPs.jl/examples/1-mauna-loa\", \"CO2_data.csv\"), Tables.matrix; header=0)\n", " year = data[:, 1]\n", " co2 = data[:, 2]\n", "\n", " # We split the data into training and testing set:\n", " idx_train = year .< 2004\n", " idx_test = .!idx_train\n", "\n", " (year[idx_train], co2[idx_train]), (year[idx_test], co2[idx_test]) # block's return value\n", "end\n", "# The utility variables such as `idx_train` and `idx_test` are not available outside the `let` scope\n", "\n", "function plotdata()\n", " plot(; xlabel=\"year\", ylabel=\"CO₂ [ppm]\", legend=:bottomright)\n", " scatter!(xtrain, ytrain; label=\"training data\", ms=2, markerstrokewidth=0)\n", " return scatter!(xtest, ytest; label=\"test data\", ms=2, markerstrokewidth=0)\n", "end\n", "\n", "plotdata()" ], "metadata": {}, "execution_count": 2 }, { "cell_type": "markdown", "source": [ "## Prior\n", "\n", "We will model this dataset using a sum of several kernels which describe\n", "\n", "- smooth trend: squared exponential kernel with long lengthscale;\n", "- seasonal component: periodic covariance function with period of one year,\n", " multiplied with a squared exponential kernel to allow decay away from exact\n", " periodicity;\n", "- medium-term irregularities: rational quadratic kernel;\n", "- noise terms: squared exponential kernel with short lengthscale\n", " and uncorrelated observation noise.\n", "\n", "For more details, see [Rasmussen & Williams (2005), chapter 5](http://www.gaussianprocess.org/gpml/chapters/RW5.pdf)." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "We will use\n", "[ParameterHandling.jl](https://invenia.github.io/ParameterHandling.jl/) for\n", "handling the (hyper)parameters of our model. It provides functions such as\n", "`positive` with which we can put constraints on the hyperparameters, and\n", "allows us to represent all required parameters as a nested NamedTuple:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "(se_long = (σ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(3.9999999997270757, exp, 1.4901161193847656e-8), ℓ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(3.9999999997270757, exp, 1.4901161193847656e-8)), seasonal = (per = (ℓ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-1.490116130486996e-8, exp, 1.4901161193847656e-8), p = ParameterHandling.Fixed{Float64}(1.0)), se = (σ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(0.9999999945181691, exp, 1.4901161193847656e-8), ℓ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(3.9999999997270757, exp, 1.4901161193847656e-8))), rq = (σ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-1.490116130486996e-8, exp, 1.4901161193847656e-8), ℓ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-1.490116130486996e-8, exp, 1.4901161193847656e-8), α = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-1.0000000405055565, exp, 1.4901161193847656e-8)), se_short = (σ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-2.000000110105522, exp, 1.4901161193847656e-8), ℓ = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-2.000000110105522, exp, 1.4901161193847656e-8)), noise_scale = ParameterHandling.Positive{Float64, typeof(exp), Float64}(-2.000000110105522, exp, 1.4901161193847656e-8))" }, "metadata": {}, "execution_count": 3 } ], "cell_type": "code", "source": [ "# initial values to match http://stor-i.github.io/GaussianProcesses.jl/latest/mauna_loa/\n", "θ_init = (;\n", " se_long = (;\n", " σ = positive(exp(4.0)),\n", " ℓ = positive(exp(4.0)),\n", " ),\n", " seasonal = (;\n", " # product kernels only need a single overall signal variance\n", " per = (;\n", " ℓ = positive(exp(0.0)), # relative to period!\n", " p = fixed(1.0), # 1 year, do not optimize over\n", " ),\n", " se = (;\n", " σ = positive(exp(1.0)),\n", " ℓ = positive(exp(4.0)),\n", " ),\n", " ),\n", " rq = (;\n", " σ = positive(exp(0.0)),\n", " ℓ = positive(exp(0.0)),\n", " α = positive(exp(-1.0)),\n", " ),\n", " se_short = (;\n", " σ = positive(exp(-2.0)),\n", " ℓ = positive(exp(-2.0)),\n", " ),\n", " noise_scale = positive(exp(-2.0)),\n", ")" ], "metadata": {}, "execution_count": 3 }, { "cell_type": "markdown", "source": [ "We define a couple of helper functions to simplify the kernel construction:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "RQ (generic function with 1 method)" }, "metadata": {}, "execution_count": 4 } ], "cell_type": "code", "source": [ "SE(θ) = θ.σ^2 * with_lengthscale(SqExponentialKernel(), θ.ℓ)\n", "Per(θ) = with_lengthscale(PeriodicKernel(; r=[θ.ℓ / 2]), θ.p) # NOTE- discrepancy with GaussianProcesses.jl\n", "RQ(θ) = θ.σ^2 * with_lengthscale(RationalQuadraticKernel(; α=θ.α), θ.ℓ)" ], "metadata": {}, "execution_count": 4 }, { "cell_type": "markdown", "source": [ "This allows us to write a function that, given the nested tuple of parameter values, constructs the GP prior:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "build_gp_prior (generic function with 1 method)" }, "metadata": {}, "execution_count": 5 } ], "cell_type": "code", "source": [ "function build_gp_prior(θ)\n", " k_smooth_trend = SE(θ.se_long)\n", " k_seasonality = Per(θ.seasonal.per) * SE(θ.seasonal.se)\n", " k_medium_term_irregularities = RQ(θ.rq)\n", " k_noise_terms = SE(θ.se_short) + θ.noise_scale^2 * WhiteKernel()\n", " kernel = k_smooth_trend + k_seasonality + k_medium_term_irregularities + k_noise_terms\n", " return GP(kernel) # `ZeroMean` mean function by default\n", "end" ], "metadata": {}, "execution_count": 5 }, { "cell_type": "markdown", "source": [ "## Posterior\n", "\n", "To construct the posterior, we need to first build a `FiniteGP`,\n", "which represents the infinite-dimensional GP at a finite number of input\n", "features:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "build_finite_gp (generic function with 1 method)" }, "metadata": {}, "execution_count": 6 } ], "cell_type": "code", "source": [ "function build_finite_gp(θ)\n", " f = build_gp_prior(θ)\n", " return f(xtrain)\n", "end" ], "metadata": {}, "execution_count": 6 }, { "cell_type": "markdown", "source": [ "> **`WhiteKernel` vs `FiniteGP` observation noise**\n", ">\n", "> In this notebook, we already included observation noise through the\n", "> `WhiteKernel` as part of the GP prior covariance in `build_gp_prior`. We\n", "> therefore call `f(xtrain)` which implies zero (additional) observation\n", "> noise.\n", "\n", " Alternatively, we could have omitted the `θ.noise_scale^2 *\n", " WhiteKernel()` term and instead passed the noise variance as a second\n", " argument to the GP call in `build_finite_gp`, `f(xtrain,\n", " θ.noise_scale^2)`.\n", "\n", " These two approaches have slightly different semantics: In the first one,\n", " the `WhiteKernel` contributes non-zero variance to the `[i, j]` element\n", " of the covariance matrix of the `FiniteGP` if `xtrain[i] == xtrain[j]`\n", " (based on the values of the features). In the second one, the observation\n", " noise variance passed to `FiniteGP` only contributes to the diagonal\n", " elements of the covariance matrix, i.e. for `i == j`.\n", "\n", " Moreover, the variance (uncertainty) of the posterior predictions\n", " includes the variance from the `WhiteKernel`, but does not include the\n", " variance of the observation noise passed to the `FiniteGP`. To include\n", " the observation noise in posterior predictions from the second approach,\n", " call `fpost_opt(xtest, noise_scale^2)`.\n", "\n", "> **Tip**\n", ">\n", "> For most use-cases and if in any doubt, we recommend that you pass in\n", "> observation noise to the `FiniteGP`, and omit the explicit `WhiteKernel`.\n", "> This is slightly faster (no need to check `xtrain[i] == xtrain[j]` for\n", "> all pairs `i`, `j`), and `WhiteKernel` will not give stable gradients if\n", "> you wish to compute the gradient of the log marginal likelihood\n", "> `logpdf(f(x), y)` w.r.t. `x`." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "We obtain the posterior, conditioned on the (finite) observations, by calling\n", "`posterior`:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "build_posterior_gp (generic function with 1 method)" }, "metadata": {}, "execution_count": 7 } ], "cell_type": "code", "source": [ "function build_posterior_gp(θ)\n", " fx = build_finite_gp(θ)\n", " return posterior(fx, ytrain)\n", "end" ], "metadata": {}, "execution_count": 7 }, { "cell_type": "markdown", "source": [ "Now we can put it all together to obtain a `PosteriorGP`.\n", "The call to `ParameterHandling.value` is required to replace the constraints\n", "(such as `positive` in our case) with concrete numbers:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "AbstractGPs.PosteriorGP{AbstractGPs.GP{AbstractGPs.ZeroMean{Float64}, KernelFunctions.KernelSum{Tuple{KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.KernelProduct{Tuple{KernelFunctions.TransformedKernel{KernelFunctions.PeriodicKernel{Float64}, KernelFunctions.ScaleTransform{Float64}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.RationalQuadraticKernel{Float64, Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.WhiteKernel, Float64}}}}, @NamedTuple{α::Vector{Float64}, C::LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, x::Vector{Float64}, δ::Vector{Float64}}}(AbstractGPs.GP{AbstractGPs.ZeroMean{Float64}, KernelFunctions.KernelSum{Tuple{KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.KernelProduct{Tuple{KernelFunctions.TransformedKernel{KernelFunctions.PeriodicKernel{Float64}, KernelFunctions.ScaleTransform{Float64}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.RationalQuadraticKernel{Float64, Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.WhiteKernel, Float64}}}}(AbstractGPs.ZeroMean{Float64}(), Sum of 5 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 0.018315638888734182)\n\t\t\t- σ² = 2980.957987041728\n\tProduct of 2 kernels:\n\t\t\tPeriodic Kernel, length(r) = 1\n\t\t\t\t\t- Scale Transform (s = 1.0)\n\t\t\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t\t\t- Scale Transform (s = 0.018315638888734182)\n\t\t\t\t\t- σ² = 7.3890560989306495\n\tRational Quadratic Kernel (α = 0.36787944117144233, metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 1.0)\n\t\t\t- σ² = 1.0\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 7.3890560989306495)\n\t\t\t- σ² = 0.018315638888734182\n\tWhite Kernel\n\t\t\t- σ² = 0.018315638888734182), (α = [-9.508930877725136, 19.389883608061695, -7.197900325224828, -4.730615302853674, -15.23471364637827, 18.62620628181198, 7.526138666092433, -0.03155846836128887, -13.788654737243691, 1.6524756606264315 … -4.04659725976334, -2.9334457010779236, 2.099011615147155, 4.200011736661871, 5.696790416685783, -11.011994620197953, 9.404617195251152, -5.495561190687362, 4.121759676625851, -1.6600889945065676], C = LinearAlgebra.Cholesky{Float64, Matrix{Float64}}([54.67525650985495 54.657791476465945 … 38.45054512284434 38.41521522921301; 2988.428769237939 1.381848520498082 … 2.1695516564590633 1.8834148423466848; … ; 2102.293417535266 2104.6198692274925 … 0.2317707151386545 0.1990883709260124; 2100.3617465385078 2102.293417535265 … 2988.4287692372563 0.2317686017127864], 'U', 0), x = [1958.2083333333333, 1958.2916666666667, 1958.375, 1958.4583333333333, 1958.5416666666667, 1958.625, 1958.7083333333333, 1958.7916666666667, 1958.875, 1958.9583333333333 … 2003.2083333333333, 2003.2916666666667, 2003.375, 2003.4583333333333, 2003.5416666666667, 2003.625, 2003.7083333333333, 2003.7916666666667, 2003.875, 2003.9583333333333], δ = [315.71, 317.45, 317.5, 317.1, 315.86, 314.93, 313.2, 312.66, 313.33, 314.67 … 376.48, 377.74, 378.5, 378.18, 376.72, 374.31, 373.2, 373.1, 374.64, 375.93]))" }, "metadata": {}, "execution_count": 8 } ], "cell_type": "code", "source": [ "fpost_init = build_posterior_gp(ParameterHandling.value(θ_init))" ], "metadata": {}, "execution_count": 8 }, { "cell_type": "markdown", "source": [ "Let's visualize what the GP fitted to the data looks like, for the initial choice of kernel hyperparameters.\n", "\n", "We use the following function to plot a GP `f` on a specific range, using the\n", "AbstractGPs [plotting\n", "recipes](https://juliagaussianprocesses.github.io/AbstractGPs.jl/dev/concrete_features/#Plotting).\n", "By setting `ribbon_scale=2` we visualize the uncertainty band with $\\pm 2$\n", "(instead of the default $\\pm 1$) standard deviations." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=3}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 9 } ], "cell_type": "code", "source": [ "plot_gp!(f; label) = plot!(f(1920:0.2:2030); ribbon_scale=2, linewidth=1, label)\n", "\n", "plotdata()\n", "plot_gp!(fpost_init; label=\"posterior f(⋅)\")" ], "metadata": {}, "execution_count": 9 }, { "cell_type": "markdown", "source": [ "A reasonable fit to the data, but poor extrapolation away from the observations!" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Hyperparameter Optimization\n", "\n", "To improve the fit, we want to maximize the (log) marginal likelihood with\n", "respect to the hyperparameters.\n", "[Optim.jl](https://julianlsolvers.github.io/Optim.jl/stable/) expects to\n", "minimize a loss, so we define it as the negative log marginal likelihood:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "loss (generic function with 1 method)" }, "metadata": {}, "execution_count": 10 } ], "cell_type": "code", "source": [ "function loss(θ)\n", " fx = build_finite_gp(θ)\n", " lml = logpdf(fx, ytrain) # this computes the log marginal likelihood\n", " return -lml\n", "end" ], "metadata": {}, "execution_count": 10 }, { "cell_type": "markdown", "source": [ "> **Work-in-progress**\n", ">\n", "> In the future, we are planning to provide the `optimize_loss` utility\n", "> function as part of JuliaGaussianProcesses -- for now, we just define it\n", "> inline.\n", "\n", "The L-BFGS parameters were chosen because they seem to work well empirically.\n", "You could also try with the defaults." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "optimize_loss (generic function with 1 method)" }, "metadata": {}, "execution_count": 11 } ], "cell_type": "code", "source": [ "default_optimizer = LBFGS(;\n", " alphaguess=Optim.LineSearches.InitialStatic(; scaled=true),\n", " linesearch=Optim.LineSearches.BackTracking(),\n", ")\n", "\n", "function optimize_loss(loss, θ_init; optimizer=default_optimizer, maxiter=1_000)\n", " options = Optim.Options(; iterations=maxiter, show_trace=true)\n", "\n", " θ_flat_init, unflatten = ParameterHandling.value_flatten(θ_init)\n", " loss_packed = loss ∘ unflatten\n", "\n", " # https://julianlsolvers.github.io/Optim.jl/stable/#user/tipsandtricks/#avoid-repeating-computations\n", " function fg!(F, G, x)\n", " if F !== nothing && G !== nothing\n", " val, grad = Zygote.withgradient(loss_packed, x)\n", " G .= only(grad)\n", " return val\n", " elseif G !== nothing\n", " grad = Zygote.gradient(loss_packed, x)\n", " G .= only(grad)\n", " return nothing\n", " elseif F !== nothing\n", " return loss_packed(x)\n", " end\n", " end\n", "\n", " result = optimize(Optim.only_fg!(fg!), θ_flat_init, optimizer, options; inplace=false)\n", "\n", " return unflatten(result.minimizer), result\n", "end" ], "metadata": {}, "execution_count": 11 }, { "cell_type": "markdown", "source": [ "We now run the optimization:" ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iter Function value Gradient norm \n", " 0 2.285662e+02 3.466984e+02\n", " * time: 4.506111145019531e-5\n", " 1 1.597968e+02 5.811062e+01\n", " * time: 0.5265400409698486\n", " 2 1.516902e+02 4.934826e+01\n", " * time: 1.0012779235839844\n", " 3 1.311976e+02 4.436594e+01\n", " * time: 1.2326030731201172\n", " 4 1.250485e+02 2.431021e+01\n", " * time: 1.7128939628601074\n", " 5 1.208493e+02 7.951627e+00\n", " * time: 1.9376680850982666\n", " 6 1.190798e+02 9.555929e+00\n", " * time: 2.411310911178589\n", " 7 1.172102e+02 7.308331e+00\n", " * time: 2.6527140140533447\n", " 8 1.161961e+02 5.340958e+00\n", " * time: 3.1252670288085938\n", " 9 1.157434e+02 2.651424e+00\n", " * time: 3.3527801036834717\n", " 10 1.156009e+02 1.236270e+00\n", " * time: 3.5666980743408203\n", " 11 1.155254e+02 7.741628e-01\n", " * time: 4.041176080703735\n", " 12 1.154964e+02 3.221284e-01\n", " * time: 4.284119129180908\n", " 13 1.154897e+02 1.036930e+00\n", " * time: 4.794978141784668\n", " 14 1.154860e+02 1.210659e+00\n", " * time: 5.05358099937439\n", " 15 1.154829e+02 3.334882e-01\n", " * time: 5.5147199630737305\n", " 16 1.154811e+02 2.493652e-01\n", " * time: 5.723245143890381\n", " 17 1.154783e+02 5.218759e-01\n", " * time: 5.967154026031494\n", " 18 1.154739e+02 6.706579e-01\n", " * time: 6.4355480670928955\n", " 19 1.154657e+02 2.451446e+00\n", " * time: 6.688038110733032\n", " 20 1.154480e+02 1.479048e+00\n", " * time: 6.903762102127075\n", " 21 1.154182e+02 4.592655e-01\n", " * time: 7.37571907043457\n", " 22 1.153886e+02 1.267364e+00\n", " * time: 7.612437009811401\n", " 23 1.153628e+02 9.849155e-01\n", " * time: 7.826198101043701\n", " 24 1.153570e+02 1.646326e+00\n", " * time: 8.038887023925781\n", " 25 1.153257e+02 2.741751e+00\n", " * time: 8.51312804222107\n", " 26 1.153176e+02 8.952727e-01\n", " * time: 8.72532606124878\n", " 27 1.153146e+02 4.115828e-01\n", " * time: 8.945369958877563\n", " 28 1.153093e+02 4.487567e-01\n", " * time: 9.42802906036377\n", " 29 1.153034e+02 4.656332e-01\n", " * time: 9.683174133300781\n", " 30 1.153010e+02 2.814319e-01\n", " * time: 9.95576000213623\n", " 31 1.152961e+02 2.402583e-01\n", " * time: 10.42322301864624\n", " 32 1.152938e+02 5.287938e-01\n", " * time: 10.672600984573364\n", " 33 1.152920e+02 1.309567e-01\n", " * time: 10.88507890701294\n", " 34 1.152914e+02 7.550968e-02\n", " * time: 11.09777307510376\n", " 35 1.152911e+02 1.123292e-01\n", " * time: 11.599746942520142\n", " 36 1.152905e+02 1.044834e-01\n", " * time: 11.827867031097412\n", " 37 1.152902e+02 4.074496e-01\n", " * time: 12.10360598564148\n", " 38 1.152899e+02 1.512259e-01\n", " * time: 12.592885971069336\n", " 39 1.152894e+02 1.065919e-01\n", " * time: 12.86594295501709\n", " 40 1.152890e+02 2.087131e-01\n", " * time: 13.32337212562561\n", " 41 1.152887e+02 1.105464e-01\n", " * time: 13.557969093322754\n", " 42 1.152886e+02 1.300625e-01\n", " * time: 13.778734922409058\n", " 43 1.152884e+02 1.726311e-01\n", " * time: 13.996907949447632\n", " 44 1.152883e+02 1.001641e-01\n", " * time: 14.48740005493164\n", " 45 1.152882e+02 2.566597e-02\n", " * time: 14.753740072250366\n", " 46 1.152881e+02 3.000688e-02\n", " * time: 14.982991933822632\n", " 47 1.152880e+02 8.008848e-02\n", " * time: 15.468786001205444\n", " 48 1.152879e+02 7.895790e-02\n", " * time: 15.735589981079102\n", " 49 1.152878e+02 2.456469e-01\n", " * time: 15.98135495185852\n", " 50 1.152876e+02 1.293619e-01\n", " * time: 16.44363498687744\n", " 51 1.152874e+02 4.788862e-02\n", " * time: 16.659332990646362\n", " 52 1.152874e+02 3.378284e-02\n", " * time: 16.88279891014099\n", " 53 1.152873e+02 6.138932e-02\n", " * time: 17.101464986801147\n", " 54 1.152872e+02 1.131192e-01\n", " * time: 17.616990089416504\n", " 55 1.152870e+02 6.160510e-02\n", " * time: 17.85941195487976\n", " 56 1.152868e+02 7.670725e-02\n", " * time: 18.06210494041443\n", " 57 1.152865e+02 1.136733e-01\n", " * time: 18.2756769657135\n", " 58 1.152861e+02 1.707358e-01\n", " * time: 18.853105068206787\n", " 59 1.152859e+02 3.296803e-01\n", " * time: 19.10324001312256\n", " 60 1.152857e+02 1.709746e-01\n", " * time: 19.323065042495728\n", " 61 1.152855e+02 5.870519e-02\n", " * time: 19.795124053955078\n", " 62 1.152855e+02 5.870449e-02\n", " * time: 20.342180013656616\n", " 63 1.152855e+02 5.870449e-02\n", " * time: 21.089613914489746\n", " 64 1.152855e+02 6.378579e-02\n", " * time: 21.617460012435913\n", " 65 1.152855e+02 6.380196e-02\n", " * time: 22.22872805595398\n", " 66 1.152855e+02 6.380196e-02\n", " * time: 23.16610598564148\n" ] }, { "output_type": "execute_result", "data": { "text/plain": " * Status: success\n\n * Candidate solution\n Final objective value: 1.152855e+02\n\n * Found with\n Algorithm: L-BFGS\n\n * Convergence measures\n |x - x'| = 0.00e+00 ≤ 0.0e+00\n |x - x'|/|x'| = 0.00e+00 ≤ 0.0e+00\n |f(x) - f(x')| = 0.00e+00 ≤ 0.0e+00\n |f(x) - f(x')|/|f(x')| = 0.00e+00 ≤ 0.0e+00\n |g(x)| = 6.38e-02 ≰ 1.0e-08\n\n * Work counters\n Seconds run: 23 (vs limit Inf)\n Iterations: 66\n f(x) calls: 122\n ∇f(x) calls: 66\n" }, "metadata": {}, "execution_count": 12 } ], "cell_type": "code", "source": [ "θ_opt, opt_result = optimize_loss(loss, θ_init)\n", "opt_result" ], "metadata": {}, "execution_count": 12 }, { "cell_type": "markdown", "source": [ "The final value of the log marginal likelihood is:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "-115.28552953175688" }, "metadata": {}, "execution_count": 13 } ], "cell_type": "code", "source": [ "-opt_result.minimum" ], "metadata": {}, "execution_count": 13 }, { "cell_type": "markdown", "source": [ "> **Warning**\n", ">\n", "> To avoid bad local optima, we could (and should) have carried out several\n", "> random restarts with different initial values for the hyperparameters,\n", "> and then picked the result with the highest marginal likelihood. We omit\n", "> this for simplicity. For more details on how to fit GPs in practice,\n", "> check out [A Practical Guide to Gaussian\n", "> Processes](https://infallible-thompson-49de36.netlify.app/).\n", "\n", "Let's construct the posterior GP with the optimized hyperparameters:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "AbstractGPs.PosteriorGP{AbstractGPs.GP{AbstractGPs.ZeroMean{Float64}, KernelFunctions.KernelSum{Tuple{KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.KernelProduct{Tuple{KernelFunctions.TransformedKernel{KernelFunctions.PeriodicKernel{Float64}, KernelFunctions.ScaleTransform{Float64}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.RationalQuadraticKernel{Float64, Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.WhiteKernel, Float64}}}}, @NamedTuple{α::Vector{Float64}, C::LinearAlgebra.Cholesky{Float64, Matrix{Float64}}, x::Vector{Float64}, δ::Vector{Float64}}}(AbstractGPs.GP{AbstractGPs.ZeroMean{Float64}, KernelFunctions.KernelSum{Tuple{KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.KernelProduct{Tuple{KernelFunctions.TransformedKernel{KernelFunctions.PeriodicKernel{Float64}, KernelFunctions.ScaleTransform{Float64}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}}}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.RationalQuadraticKernel{Float64, Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.TransformedKernel{KernelFunctions.SqExponentialKernel{Distances.Euclidean}, KernelFunctions.ScaleTransform{Float64}}, Float64}, KernelFunctions.ScaledKernel{KernelFunctions.WhiteKernel, Float64}}}}(AbstractGPs.ZeroMean{Float64}(), Sum of 5 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 0.006433770319418152)\n\t\t\t- σ² = 193702.65168343997\n\tProduct of 2 kernels:\n\t\t\tPeriodic Kernel, length(r) = 1\n\t\t\t\t\t- Scale Transform (s = 1.0)\n\t\t\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t\t\t- Scale Transform (s = 0.012141608741588681)\n\t\t\t\t\t- σ² = 6.021824896021731\n\tRational Quadratic Kernel (α = 0.000414331119017645, metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 0.03460188893362941)\n\t\t\t- σ² = 319.30676488252783\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 8.754567915780282)\n\t\t\t- σ² = 0.028265792449666365\n\tWhite Kernel\n\t\t\t- σ² = 0.03577915464642226), (α = [-6.405054233291955, 9.478105306102208, -3.9465447794003228, -2.2960659942451325, -7.262283464584002, 10.568438906760933, 4.764817643464915, -0.4524530569754075, -5.3032225545822405, 0.6818717130531068 … -2.41027458635354, -1.850374273887441, -0.08769478252709415, 2.9206620881820915, 3.8602291756555536, -4.849362941092445, 5.784746509096768, -2.596412769248565, 1.6291888793670009, -1.5585572426563472], C = LinearAlgebra.Cholesky{Float64, Matrix{Float64}}([440.48614543270895 440.4851485165153 … 421.8992014927274 421.83433071242655; 194027.60519039418 0.937152361691982 … 31.17812095066706 30.939700545184966; … ; 185840.75302666932 185869.5510782053 … 0.2838762410681556 0.18244279688867943; 185812.17834670338 185840.75302666402 … 194027.6051903926 0.2838618686957846], 'U', 0), x = [1958.2083333333333, 1958.2916666666667, 1958.375, 1958.4583333333333, 1958.5416666666667, 1958.625, 1958.7083333333333, 1958.7916666666667, 1958.875, 1958.9583333333333 … 2003.2083333333333, 2003.2916666666667, 2003.375, 2003.4583333333333, 2003.5416666666667, 2003.625, 2003.7083333333333, 2003.7916666666667, 2003.875, 2003.9583333333333], δ = [315.71, 317.45, 317.5, 317.1, 315.86, 314.93, 313.2, 312.66, 313.33, 314.67 … 376.48, 377.74, 378.5, 378.18, 376.72, 374.31, 373.2, 373.1, 374.64, 375.93]))" }, "metadata": {}, "execution_count": 14 } ], "cell_type": "code", "source": [ "fpost_opt = build_posterior_gp(ParameterHandling.value(θ_opt))" ], "metadata": {}, "execution_count": 14 }, { "cell_type": "markdown", "source": [ "This is the kernel with the point-estimated hyperparameters:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Sum of 5 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 0.006433770319418152)\n\t\t\t- σ² = 193702.65168343997\n\tProduct of 2 kernels:\n\t\t\tPeriodic Kernel, length(r) = 1\n\t\t\t\t\t- Scale Transform (s = 1.0)\n\t\t\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t\t\t- Scale Transform (s = 0.012141608741588681)\n\t\t\t\t\t- σ² = 6.021824896021731\n\tRational Quadratic Kernel (α = 0.000414331119017645, metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 0.03460188893362941)\n\t\t\t- σ² = 319.30676488252783\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- Scale Transform (s = 8.754567915780282)\n\t\t\t- σ² = 0.028265792449666365\n\tWhite Kernel\n\t\t\t- σ² = 0.03577915464642226" }, "metadata": {}, "execution_count": 15 } ], "cell_type": "code", "source": [ "fpost_opt.prior.kernel" ], "metadata": {}, "execution_count": 15 }, { "cell_type": "markdown", "source": [ "Let's print the optimized values of the hyperparameters in a more helpful format:" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "> **Work-in-progress**\n", ">\n", "> This is another utility function we would eventually like to move out of this notebook:" ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "se_long:\n", " σ = 440.117\n", " ℓ = 155.430\n", "seasonal:\n", " per:\n", " ℓ = 1.458\n", " p = 1.000\n", " se:\n", " σ = 2.454\n", " ℓ = 82.361\n", "rq:\n", " σ = 17.869\n", " ℓ = 28.900\n", " α = 0.000\n", "se_short:\n", " σ = 0.168\n", " ℓ = 0.114\n", "noise_scale = 0.189\n" ] } ], "cell_type": "code", "source": [ "using Printf\n", "\n", "show_params(nt::Union{Dict,NamedTuple}) = String(take!(show_params(IOBuffer(), nt)))\n", "function show_params(io, nt::Union{Dict,NamedTuple}, indent::Int=0)\n", " for (s, v) in pairs(nt)\n", " if v isa Union{Dict,NamedTuple}\n", " println(io, \" \"^indent, s, \":\")\n", " show_params(io, v, indent + 4)\n", " else\n", " println(io, \" \"^indent, s, \" = \", @sprintf(\"%.3f\", v))\n", " end\n", " end\n", " return io\n", "end\n", "\n", "print(show_params(ParameterHandling.value(θ_opt)))" ], "metadata": {}, "execution_count": 16 }, { "cell_type": "markdown", "source": [ "And, finally, we can visualize our optimized posterior GP:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=3}", "image/png": "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D/U1HV5KG4Sapo15XNf1/Q8e6M0IITQF2QskmGlYmpbjQePAKmQz3c3dDgIACYHEBTIgkTCTvDpLCSQlkgCI5TOWzrnie41ls+aeeqXACYQQkZNGJ1+ls5wAOWRXdVgqVRBedtllbrc7GAyGw+G7777bPmhZ1s0331xRUVFZWXnOOefE43vWhKbT6c985jOhUCgQCNxxxx0lahJCCE0iCSUJAITjuZmL8hwMyQQANNC7nbROYfb2McMyqUorlQY3LJEMT2aefb3TG5I48epFn6/zVNvnkbmP1JGYsmskDqJUQfj1r389Eolks9mnnnrqO9/5zqZNmwDgf//3f5944omdO3dGo9Gqqqqbb77ZfvNtt91mWVYsFtuyZcvatWvffffdErUKIYQmi+F8BACUXVsSne/vdpNnqnhaO0shMCDB/LSV8brjEhUscLuD8ws0xTPZZMKG52Fkaqhz5OGfT/KM3j57yq6ROIhS/Ysce+yxDocDAJYvX15bW9vX1wcA69ev//znPx8KhSilN95448MPP6woCgA89NBD3/jGNwRBmDFjxqWXXvrQQw+VqFUIITQppN95vvuvv0y+/CczFcvzpMtFUzzkjXxGpGmBzCH+hJVPO0Q/46tOu8yRUxoU8OtMGh4EAJGKMGpqqF/2SUduTd1xUcJZo5s3b961a9frr79eU1OzevVqAJBlOZfL2b/N5XL5fL6vr6+srCwajc6fP98+Pm/evKeeeupA57QsK5vNJhIJ+0dBENxud+kuASGEJp6ZGO5dd7fqJJGm3aHlqwsUuh0kx8FwaqAjIFUZVFI1arJ+TvcqRNyxVW48bnpy85BEKo8/FwDs/UKLw6FO3nEoL2YyKGEQ7ty585VXXtm0adOJJ55ICAGASy655Oqrr161alU4HP7+979PKU0kEpRSACjmmcfjKT47HPOc69ev/7d/+zf7R7/f//7779tnKJFcLkcIPlgeT/asKFHEeWvjCW/UcTfxNyoDppmaxEla03t5CkMSmZ6Hws53BmVCAbw663VCh6RX5ohT4QI6a3ORhgJzEsl14fXH928jjLkaVmSzWTAtRVH0gpZVreLJs2p2wi7kICb+RpVlmec/JulKGIRXXXXVVVddZRjGscce+8ADD3zlK18555xz7r333rvuuotSet1117322mt1dXUulwsAUqmU0+kEgGQyWVlZ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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 17 } ], "cell_type": "code", "source": [ "plotdata()\n", "plot_gp!(fpost_opt; label=\"optimized posterior f(⋅)\")" ], "metadata": {}, "execution_count": 17 }, { "cell_type": "markdown", "source": [ "
\n", "
Package and system information
\n", "
\n", "Package information (click to expand)\n", "
\n",
    "Status `~/work/AbstractGPs.jl/AbstractGPs.jl/examples/1-mauna-loa/Project.toml`\n",
    "  [99985d1d] AbstractGPs v0.5.23 `/home/runner/work/AbstractGPs.jl/AbstractGPs.jl#28319c5`\n",
    "  [336ed68f] CSV v0.10.15\n",
    "  [a93c6f00] DataFrames v1.7.0\n",
    "  [98b081ad] Literate v2.20.1\n",
    "  [429524aa] Optim v1.11.0\n",
    "  [2412ca09] ParameterHandling v0.5.0\n",
    "  [91a5bcdd] Plots v1.40.10\n",
    "⌅ [e88e6eb3] Zygote v0.6.75\n",
    "Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated`\n",
    "
\n", "To reproduce this notebook's package environment, you can\n", "\n", "download the full Manifest.toml.\n", "
\n", "
\n", "System information (click to expand)\n", "
\n",
    "Julia Version 1.11.4\n",
    "Commit 8561cc3d68d (2025-03-10 11:36 UTC)\n",
    "Build Info:\n",
    "  Official https://julialang.org/ release\n",
    "Platform Info:\n",
    "  OS: Linux (x86_64-linux-gnu)\n",
    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    "  WORD_SIZE: 64\n",
    "  LLVM: libLLVM-16.0.6 (ORCJIT, znver3)\n",
    "Threads: 1 default, 0 interactive, 1 GC (on 4 virtual cores)\n",
    "Environment:\n",
    "  JULIA_DEBUG = Documenter\n",
    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    "
\n", "
" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "---\n", "\n", "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" ], "metadata": {} } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.11.4" }, "kernelspec": { "name": "julia-1.11", "display_name": "Julia 1.11.4", "language": "julia" } }, "nbformat": 4 }