{ "cells": [ { "cell_type": "markdown", "id": "11209acf", "metadata": {}, "source": [ "# Kernel Composition\n", "\n", "A single kernel can only model one kind of structure. Real signals usually have\n", "several: a trend plus a seasonal cycle, growth times oscillation, and so on.\n", "LightGP exposes kernel composition via familiar Python operators:\n", "\n", "- `k1 + k2` — `SumKernel` (additive structure)\n", "- `k1 * k2` — `ProductKernel` (multiplicative structure)\n", "- `gp.Scale(k)` — wraps a kernel with a learnable output scale\n", "\n", "We will demonstrate the additive pattern on a Mauna Loa-CO₂-shaped signal." ] }, { "cell_type": "code", "execution_count": 1, "id": "330f4b20", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T06:51:06.928059Z", "iopub.status.busy": "2026-05-15T06:51:06.927949Z", "iopub.status.idle": "2026-05-15T06:51:07.084896Z", "shell.execute_reply": "2026-05-15T06:51:07.084453Z" } }, "outputs": [], "source": [ "import os\n", "import sys\n", "\n", "# Make the locally-built lightgp importable. Real users install via 'pip install lightgp'.\n", "sys.path.insert(0, os.path.abspath(os.path.join(\"..\", \"..\", \"..\", \"python\")))\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import lightgp as gp\n", "\n", "rng = np.random.default_rng(0)\n", "plt.rcParams.update({\"figure.figsize\": (8, 3.5), \"figure.dpi\": 90})" ] }, { "cell_type": "markdown", "id": "48db03cb", "metadata": {}, "source": [ "## Generate synthetic data\n", "\n", "Linear trend + slight curvature + annual seasonality + small noise." ] }, { "cell_type": "code", "execution_count": 2, "id": "2e9ccd90", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T06:51:07.086254Z", "iopub.status.busy": "2026-05-15T06:51:07.086162Z", "iopub.status.idle": "2026-05-15T06:51:07.088151Z", "shell.execute_reply": "2026-05-15T06:51:07.087875Z" } }, "outputs": [], "source": [ "N = 300\n", "t = np.linspace(0, 30, N, dtype=np.float32).reshape(-1, 1) # 30 years, monthly samples\n", "y = (1.5 * t[:, 0]\n", " + 0.04 * t[:, 0]**2\n", " + 3.0 * np.sin(2 * np.pi * t[:, 0])\n", " + 0.5 * rng.standard_normal(N)).astype(np.float32)\n", "t_test = np.linspace(0, 35, 400).reshape(-1, 1).astype(np.float32) # extrapolate beyond training" ] }, { "cell_type": "markdown", "id": "ecd20faa", "metadata": {}, "source": [ "## Baseline: a single RBF\n", "\n", "A wide RBF + LinearMean can capture the trend but not the seasonality." ] }, { "cell_type": "code", "execution_count": 3, "id": "e7dd18bb", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T06:51:07.089302Z", "iopub.status.busy": "2026-05-15T06:51:07.089229Z", "iopub.status.idle": "2026-05-15T06:51:07.269692Z", "shell.execute_reply": "2026-05-15T06:51:07.269343Z" } }, "outputs": [], "source": [ "m_rbf = gp.GPExact(\n", " gp.RBF(length_scale=2.0, signal_var=10.0),\n", " mean=gp.LinearMean(input_dim=1),\n", " noise_var=0.5,\n", ")\n", "m_rbf.fit(t, y)\n", "m_rbf.optimize(steps=80)\n", "p_rbf = m_rbf.predict(t_test)" ] }, { "cell_type": "markdown", "id": "6150b6cc", "metadata": {}, "source": [ "## Composed kernel\n", "\n", "`Scale(RBF_long) + Scale(Periodic) + Scale(RBF_short)`:" ] }, { "cell_type": "code", "execution_count": 4, "id": "8fbf6aec", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T06:51:07.270776Z", "iopub.status.busy": "2026-05-15T06:51:07.270707Z", "iopub.status.idle": "2026-05-15T06:51:09.766083Z", "shell.execute_reply": "2026-05-15T06:51:09.765689Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "kernel: ((Scale(RBF) + Scale(Periodic)) + Scale(RBF))\n", "num parameters: 10\n" ] } ], "source": [ "kernel = (gp.Scale(gp.RBF(length_scale=10.0)) # decade-scale trend wiggle\n", " + gp.Scale(gp.Periodic(length_scale=1.0, period=1.0)) # annual cycle\n", " + gp.Scale(gp.RBF(length_scale=0.5))) # short-term irregular\n", "print(\"kernel:\", kernel.name())\n", "print(\"num parameters:\", kernel.num_params())\n", "\n", "m_comp = gp.GPExact(kernel, mean=gp.LinearMean(input_dim=1), noise_var=0.5)\n", "m_comp.fit(t, y)\n", "m_comp.optimize(steps=120)\n", "p_comp = m_comp.predict(t_test)" ] }, { "cell_type": "markdown", "id": "f41504b4", "metadata": {}, "source": [ "## Compare side-by-side" ] }, { "cell_type": "code", "execution_count": 5, "id": "91406b5a", "metadata": { "execution": { "iopub.execute_input": "2026-05-15T06:51:09.767175Z", "iopub.status.busy": "2026-05-15T06:51:09.767111Z", "iopub.status.idle": "2026-05-15T06:51:09.834562Z", "shell.execute_reply": "2026-05-15T06:51:09.834256Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def panel(ax, p, title):\n", " mu, sd = p[\"mean\"], np.sqrt(np.maximum(p[\"var\"], 0))\n", " ax.fill_between(t_test[:, 0], mu - 2*sd, mu + 2*sd, alpha=0.15, color=\"#2563EB\")\n", " ax.plot(t_test[:, 0], mu, lw=2, color=\"#2563EB\")\n", " ax.scatter(t[:, 0], y, s=6, color=\"black\", zorder=3)\n", " ax.axvline(30, color=\"#6B7280\", ls=\":\", lw=0.8)\n", " ax.set_title(title); ax.set_xlabel(\"year\")\n", "\n", "fig, (a, b) = plt.subplots(1, 2, figsize=(11, 3.8), sharey=True)\n", "panel(a, p_rbf, \"Single RBF\")\n", "panel(b, p_comp, \"Scale(RBF) + Scale(Periodic) + Scale(RBF)\")\n", "a.set_ylabel(\"y\")\n", "plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "9bab65a5", "metadata": {}, "source": [ "## What to compose, when?\n", "\n", "| Pattern | Combiner | Example |\n", "|---------|----------|---------|\n", "| Two independent structures present at the same scale | `+` | Trend + seasonality |\n", "| One signal modulates the amplitude of another | `*` | Growing seasonal wave |\n", "| Two patterns each need their own output scale | `Scale(k1) + Scale(k2)` | Almost always — gives the optimizer per-component freedom |\n", "\n", "A common starting recipe:\n", "\n", "```python\n", "kernel = gp.Scale(gp.RBF()) + gp.Scale(gp.Periodic(period=p_initial))\n", "```\n", "\n", "The next tutorial scales these ideas up with sparse inducing-point GPs." ] } ], "metadata": { "kernelspec": { "display_name": "lightgp-docs", "language": "python", "name": "lightgp-docs" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 5 }