diff --git a/README.md b/README.md
index c3defa3..df2f618 100644
--- a/README.md
+++ b/README.md
@@ -4,46 +4,46 @@
This repository is a collection of notebooks about *Bayesian Machine Learning*. The following links display
some of the notebooks via [nbviewer](https://nbviewer.jupyter.org/) to ensure a proper rendering of formulas.
+Dependencies are specified in `requirements.txt` files in subdirectories.
- [Bayesian regression with linear basis function models](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-linear-regression/bayesian_linear_regression.ipynb).
- Introduction to Bayesian linear regression. Implementation from scratch with plain NumPy as well as usage of scikit-learn
- for comparison. See also
- [PyMC4 implementation](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-linear-regression/bayesian_linear_regression_pymc4.ipynb) and
+ Introduction to Bayesian linear regression. Implementation with plain NumPy and scikit-learn. See also
[PyMC3 implementation](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-linear-regression/bayesian_linear_regression_pymc3.ipynb).
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes.ipynb)
[Gaussian processes](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes.ipynb?flush_cache=true).
- Introduction to Gaussian processes for regression. Example implementations with plain NumPy/SciPy as well as with libraries
- scikit-learn and GPy ([requirements.txt](gaussian-processes/requirements.txt)).
+ Introduction to Gaussian processes for regression. Implementation with plain NumPy/SciPy as well as with scikit-learn and GPy.
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_classification.ipynb)
[Gaussian processes for classification](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_classification.ipynb).
- Introduction to Gaussian processes for classification. Example implementations with plain NumPy/SciPy as well as with
- scikit-learn ([requirements.txt](gaussian-processes/requirements.txt)).
+ Introduction to Gaussian processes for classification. Implementation with plain NumPy/SciPy as well as with scikit-learn.
+
+- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_sparse.ipynb)
+ [Sparse Gaussian processes](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_sparse.ipynb).
+ Introduction to sparse Gaussian processes using a variational approach. Example implementation with JAX.
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-optimization/bayesian_optimization.ipynb)
[Bayesian optimization](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-optimization/bayesian_optimization.ipynb).
- Introduction to Bayesian optimization. Example implementations with plain NumPy/SciPy as well as with libraries
- scikit-optimize and GPyOpt. Hyper-parameter tuning as application example.
+ Introduction to Bayesian optimization. Implementation with plain NumPy/SciPy as well as with libraries scikit-optimize
+ and GPyOpt. Hyper-parameter tuning as application example.
- [Variational inference in Bayesian neural networks](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-neural-networks/bayesian_neural_networks.ipynb).
- Demonstrates how to implement a Bayesian neural network and variational inference of network parameters. Example implementation
- with Keras ([requirements.txt](bayesian-neural-networks/requirements.txt)). See also
- [PyMC4 implementation](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/bayesian-neural-networks/bayesian_neural_networks_pymc4.ipynb).
+ Demonstrates how to implement a Bayesian neural network and variational inference of weights. Example implementation
+ with Keras.
- [Reliable uncertainty estimates for neural network predictions](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/noise-contrastive-priors/ncp.ipynb).
- Uses noise contrastive priors in Bayesian neural networks to get more reliable uncertainty estimates for OOD data.
- Implemented with Tensorflow 2 and Tensorflow Probability ([requirements.txt](noise-contrastive-priors/requirements.txt)).
+ Uses noise contrastive priors for Bayesian neural networks to get more reliable uncertainty estimates for OOD data.
+ Implemented with Tensorflow 2 and Tensorflow Probability.
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/latent-variable-models/latent_variable_models_part_1.ipynb)
[Latent variable models, part 1: Gaussian mixture models and the EM algorithm](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/latent-variable-models/latent_variable_models_part_1.ipynb).
- Introduction to the expectation maximization (EM) algorithm and its application to Gaussian mixture models. Example
- implementation with plain NumPy/SciPy and scikit-learn for comparison. See also
+ Introduction to the expectation maximization (EM) algorithm and its application to Gaussian mixture models.
+ Implementation with plain NumPy/SciPy and scikit-learn. See also
[PyMC3 implementation](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/latent-variable-models/latent_variable_models_part_1_pymc3.ipynb).
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/latent-variable-models/latent_variable_models_part_2.ipynb)
[Latent variable models, part 2: Stochastic variational inference and variational autoencoders](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/latent-variable-models/latent_variable_models_part_2.ipynb).
- Introduction to stochastic variational inference with variational autoencoder as application example. Implementation
+ Introduction to stochastic variational inference with a variational autoencoder as application example. Implementation
with Tensorflow 2.x.
- [Deep feature consistent variational autoencoder](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/autoencoder-applications/variational_autoencoder_dfc.ipynb).
diff --git a/gaussian-processes/gaussian_processes.ipynb b/gaussian-processes/gaussian_processes.ipynb
index fa60a46..2888fb3 100644
--- a/gaussian-processes/gaussian_processes.ipynb
+++ b/gaussian-processes/gaussian_processes.ipynb
@@ -400,7 +400,8 @@
}
],
"source": [
- "from numpy.linalg import cholesky, det, lstsq\n",
+ "from numpy.linalg import cholesky, det\n",
+ "from scipy.linalg import solve_triangular\n",
"from scipy.optimize import minimize\n",
"\n",
"def nll_fn(X_train, Y_train, noise, naive=True):\n",
@@ -437,14 +438,15 @@
" # in http://www.gaussianprocess.org/gpml/chapters/RW2.pdf, Section\n",
" # 2.2, Algorithm 2.1.\n",
" \n",
- " def ls(a, b):\n",
- " return lstsq(a, b, rcond=-1)[0]\n",
- " \n",
" K = kernel(X_train, X_train, l=theta[0], sigma_f=theta[1]) + \\\n",
" noise**2 * np.eye(len(X_train))\n",
" L = cholesky(K)\n",
+ " \n",
+ " S1 = solve_triangular(L, Y_train, lower=True)\n",
+ " S2 = solve_triangular(L.T, S1, lower=False)\n",
+ " \n",
" return np.sum(np.log(np.diagonal(L))) + \\\n",
- " 0.5 * Y_train.dot(ls(L.T, ls(L, Y_train))) + \\\n",
+ " 0.5 * Y_train.dot(S2) + \\\n",
" 0.5 * len(X_train) * np.log(2*np.pi)\n",
"\n",
" if naive:\n",
diff --git a/gaussian-processes/gaussian_processes_sparse.ipynb b/gaussian-processes/gaussian_processes_sparse.ipynb
new file mode 100644
index 0000000..ef60c00
--- /dev/null
+++ b/gaussian-processes/gaussian_processes_sparse.ipynb
@@ -0,0 +1,51250 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_sparse.ipynb)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "try:\n",
+ " # Check if notebook is running in Google Colab\n",
+ " import google.colab\n",
+ " # Get additional files from Github\n",
+ " !wget https://raw.githubusercontent.com/krasserm/bayesian-machine-learning/dev/gaussian-processes/gaussian_processes_util.py\n",
+ "except:\n",
+ " pass"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Sparse Gaussian processes\n",
+ "\n",
+ "## Introduction\n",
+ "\n",
+ "Exact Gaussian processes cannot be applied to larger training datasets because their time complexity scales with $O(n^3)$ where $n$ is the size of the training set. Approximate or sparse Gaussian processes are based on a small set of $m$ inducing variables that reduce the time complexity to $O(nm^2)$. \n",
+ "\n",
+ "In this article I give an introduction to sparse Gaussian processes as described in \\[1\\] and provide a simple implementation with [JAX](https://github.com/google/jax). The main reason for using JAX instead of plain NumPy was the need to compute gradients of the variational lower bound. The mathematical descriptions in this article are kept on a rather high level so that the focus is on intuition rather than on a detailed derivation of equations. \n",
+ "\n",
+ "### Exact Gaussian processes\n",
+ "\n",
+ "In a [previous article](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_classification.ipynb) I introduced exact Gaussian processes for regression. A Gaussian process is a [random process](https://en.wikipedia.org/wiki/Stochastic_process) where any point $\\mathbf{x} \\in \\mathbb{R}^d$ is assigned a random variable $f(\\mathbf{x})$ and where the joint distribution of a finite number of these variables $p(f(\\mathbf{x}_1),...,f(\\mathbf{x}_N)) = p(\\mathbf{f} \\mid \\mathbf{X}) = \\mathcal{N}(\\mathbf{f} \\mid \\boldsymbol\\mu, \\mathbf{K})$ is itself Gaussian. Covariance matrix $\\mathbf{K}$ is defined by a kernel function $\\kappa$ where $\\mathbf{K} = \\kappa(\\mathbf{X},\\mathbf{X})$. Mean $\\boldsymbol\\mu$ is often set to $\\mathbf{0}$. A GP can be used to define a prior over functions.\n",
+ "\n",
+ "A GP prior can be converted into a posterior by conditioning on a training dataset $\\mathbf{X}, \\mathbf{y}$ where $\\mathbf{y}$ are noisy realizations of function values $\\mathbf{f}$. For independent Gaussian noise we have $y_i = f(\\mathbf{x}_i) + \\epsilon_i$ where $\\epsilon_i \\sim \\mathcal{N}(0, \\sigma_y^2)$. Noise-free training function values $\\mathbf{f}$ are not directly observed i.e. are latent variables. The posterior over function values $\\mathbf{f}_*$ at inputs $\\mathbf{X}_*$ conditioned on training data is given by\n",
+ "\n",
+ "$$\n",
+ "\\begin{align*}\n",
+ "p(\\mathbf{f}_* \\mid \\mathbf{X}_*,\\mathbf{X},\\mathbf{y}) &= \\mathcal{N}(\\mathbf{f}_* \\mid \\boldsymbol{\\mu}_*, \\boldsymbol{\\Sigma}_*)\\tag{1} \\\\\n",
+ "\\boldsymbol{\\mu}_* &= \\mathbf{K}_*^T \\mathbf{K}_y^{-1} \\mathbf{y}\\tag{2} \\\\\n",
+ "\\boldsymbol{\\Sigma}_* &= \\mathbf{K}_{**} - \\mathbf{K}_*^T \\mathbf{K}_y^{-1} \\mathbf{K}_*\\tag{3}\n",
+ "\\end{align*}\n",
+ "$$\n",
+ "\n",
+ "where $\\mathbf{K}_y = \\mathbf{K} + \\sigma_y^2\\mathbf{I}$, $\\mathbf{K}_* = \\kappa(\\mathbf{X},\\mathbf{X}_*)$ and $\\mathbf{K}_{**} = \\kappa(\\mathbf{X}_*,\\mathbf{X}_*)$. It can be used to predict function values $\\mathbf{f}_*$ at new inputs $\\mathbf{X}_*$. Computation of $\\boldsymbol{\\mu}_*$ and $\\boldsymbol{\\Sigma}_*$ requires the inversion of $\\mathbf{K}_y$, an $n \\times n$ matrix, where $n$ is the size of the training set. Matrix inversion becomes computationally intractable for larger $n$. To outline a solution to this problem, we note that the posterior can also be defined as\n",
+ "\n",
+ "$$\n",
+ "p(\\mathbf{f}_* \\mid \\mathbf{y}) = \\int p(\\mathbf{f}_* \\mid \\mathbf{f}) p(\\mathbf{f} \\mid \\mathbf{y}) d\\mathbf{f} \\tag{4}\n",
+ "$$\n",
+ "\n",
+ "where the conditioning on inputs $\\mathbf{X}$ and $\\mathbf{X}_*$ has been made implicit. The second term inside the integral is the posterior over the training latent variables $\\mathbf{f}$ conditioned on observations $\\mathbf{y}$, the first term is the posterior over predictions $\\mathbf{f}_*$ conditioned on latent training variables $\\mathbf{f}$ (see also equation $(3)$ in [this article](https://nbviewer.jupyter.org/github/krasserm/bayesian-machine-learning/blob/dev/gaussian-processes/gaussian_processes_classification.ipynb)). Both terms are intractable to compute for larger training datasets for reasons explained above.\n",
+ "\n",
+ "### Sparse Gaussian processes\n",
+ "\n",
+ "Suppose there is a small set of $m$ inducing variables $\\mathbf{f}_m$ evaluated at inputs $\\mathbf{X}_m$ that describe the function to be modeled \"sufficiently well\" then we could use them as approximation to $\\mathbf{f}$ and $\\mathbf{X}$ and define an approximate posterior:\n",
+ "\n",
+ "$$\n",
+ "q(\\mathbf{f}_*) = \\int p(\\mathbf{f}_* \\mid \\mathbf{f}_m) \\phi(\\mathbf{f}_m) d\\mathbf{f}_m \\tag{5}\n",
+ "$$\n",
+ "\n",
+ "where $\\phi(\\mathbf{f}_m)$ is an approximation to the intractable $p(\\mathbf{f}_m \\mid \\mathbf{y})$:\n",
+ "\n",
+ "$$\n",
+ "\\phi(\\mathbf{f}_m) = \\mathcal{N}(\\mathbf{f}_m \\mid \\boldsymbol{\\mu}_m, \\mathbf{A}_m) \\tag{6}\n",
+ "$$\n",
+ "\n",
+ "Goal is to find optimal values for mean $\\boldsymbol{\\mu}_m$ and covariance matrix $\\mathbf{A}_m$. The quality of $\\phi(\\mathbf{f}_m)$ also depends on the location of the inducing inputs $\\mathbf{X}_m$, hence, our goal is to find their optimal values as well. The mean and covariance matrix of the Gaussian approximate posterior $q(\\mathbf{f}_*)$ are defined in terms of $\\boldsymbol{\\mu}_m$, $\\mathbf{A}_m$ and $\\mathbf{X}_m$:\n",
+ "\n",
+ "$$\n",
+ "\\begin{align*}\n",
+ "q(\\mathbf{f}_*) &= \\mathcal{N}(\\mathbf{f}_* \\mid \\boldsymbol{\\mu}_*^q, \\boldsymbol{\\Sigma}_*^q) \\tag{7} \\\\\n",
+ "\\boldsymbol{\\mu}_*^q &= \\mathbf{K}_{*m} \\mathbf{K}_{mm}^{-1} \\boldsymbol{\\mu}_m \\tag{8} \\\\\n",
+ "\\boldsymbol{\\Sigma}_*^q &= \\mathbf{K}_{**} - \\mathbf{K}_{*m} \\mathbf{K}_{mm}^{-1} \\mathbf{K}_{m*} + \\mathbf{K}_{*m} \\mathbf{K}_{mm}^{-1} \\mathbf{A}_m \\mathbf{K}_{mm}^{-1} \\mathbf{K}_{m*} \\tag{9}\n",
+ "\\end{align*}\n",
+ "$$\n",
+ "\n",
+ "where $\\mathbf{K}_{mm} = \\kappa(\\mathbf{X}_m, \\mathbf{X}_m)$, $\\mathbf{K}_{*m} = \\kappa(\\mathbf{X}_*, \\mathbf{X}_m)$ and $\\mathbf{K}_{m*} = \\mathbf{K}_{*m}^T$. For a single test input, this approximate posterior can be computed in $O(nm^2)$ after having found optimal values for $\\boldsymbol{\\mu}_m$, $\\mathbf{A}_m$ and $\\mathbf{X}_m$. \\[1\\] uses a variational approach for optimizing $\\boldsymbol{\\mu}_m$, $\\mathbf{A}_m$ and $\\mathbf{X}_m$ by minimizing the Kullback-Leibler (KL) divergence between the approximate posterior $q(\\mathbf{f})$ and the exact posterior $p(\\mathbf{f} \\mid \\mathbf{y})$ over training latent variables $\\mathbf{f}$.\n",
+ "\n",
+ "Minimization of this KL divergence is equivalent to maximization of a lower bound $\\mathcal{L}(\\boldsymbol{\\mu}_m, \\mathbf{A}_m, \\mathbf{X}_m)$ on the true log marginal likelihood $\\log p(\\mathbf{y})$. This lower bound can be optimized by analytically solving for $\\boldsymbol{\\mu}_m$ and $\\mathbf{A}_m$. The resulting lower bound after optimization is a function of $\\mathbf{X}_m$:\n",
+ "\n",
+ "$$\n",
+ "\\mathcal{L}(\\mathbf{X}_m) = \\log \\mathcal{N} (\\mathbf{y} \\mid \\mathbf{0}, \\sigma_y^2 \\mathbf{I} + \\mathbf{Q}_{nn}) - \\frac{1}{2 \\sigma_y^2} \\mathrm{Tr}(\\mathbf{K}_{nn} - \\mathbf{Q}_{nn}) \\tag{10}\n",
+ "$$\n",
+ "\n",
+ "\n",
+ "where $\\mathbf{Q}_{nn} = \\mathbf{K}_{nm} \\mathbf{K}_{mm}^{-1} \\mathbf{K}_{mn}$, $\\mathbf{K}_{nn} = \\kappa(\\mathbf{X},\\mathbf{X})$, $\\mathbf{K}_{nm} = \\kappa(\\mathbf{X},\\mathbf{X}_m)$ and $\\mathbf{K}_{mn} = \\mathbf{K}_{nm}^T$. Equation $(10)$ can be computed in $O(nm^2)$, as shown in section [Optimization](#Optimization), and used to optimize inducing inputs $\\mathbf{X}_m$ jointly with kernel hyperparamaters using a numeric optimization method. The first term on the RHS is an approximate log likelihood term. Optimizing this term alone could lead to overfitting.\n",
+ "\n",
+ "The second term is a regularization term which is a result of using a variational approach. This term can be interpreted as minimizing the error predicting $\\mathbf{f}$ from inducing variables $\\mathbf{f}_m$. The better the variables $\\mathbf{f}_m$ represent the function to be modeled the smaller this error will be. Hence, optimization will try to find optimal positions for inducing inputs $\\mathbf{X}_m$. With optimal values for $\\mathbf{X}_m$, we can optimize $\\boldsymbol{\\mu}_m$ and $\\mathbf{A}_m$ i.e. the parameters of $\\phi(\\mathbf{f}_m)$ analytically with \n",
+ "\n",
+ "$$\n",
+ "\\begin{align*}\n",
+ "\\boldsymbol{\\mu}_m &= \\frac{1}{\\sigma_y^2} \\mathbf{K}_{mm} \\boldsymbol{\\Sigma} \\mathbf{K}_{mn} \\mathbf{y} \\tag{11} \\\\\n",
+ "\\mathbf{A}_m &= \\mathbf{K}_{mm} \\boldsymbol{\\Sigma} \\mathbf{K}_{mm} \\tag{12}\n",
+ "\\end{align*}\n",
+ "$$\n",
+ "\n",
+ "where $\\boldsymbol{\\Sigma} = (\\mathbf{K}_{mm} + \\sigma_y^{-2} \\mathbf{K}_{mn} \\mathbf{K}_{nm})^{-1}$. $\\boldsymbol{\\mu}_m$ and $\\mathbf{A}_m$ are then substituted into equations $(8)$ and $(9)$ to compute the approximate posterior $q(\\mathbf{f}_*)$ at new inputs $\\mathbf{X}_*$. This is the minimum we need to know for implementing sparse Gaussian processes for regression. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Implementation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import jax.numpy as jnp\n",
+ "import jax.scipy as jsp\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "from jax import random, jit, value_and_grad\n",
+ "from jax.config import config\n",
+ "from scipy.optimize import minimize\n",
+ "\n",
+ "config.update(\"jax_enable_x64\", True)\n",
+ "%matplotlib inline"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Training dataset\n",
+ "\n",
+ "The training dataset is taken from [this example](https://gpflow.readthedocs.io/en/master/notebooks/advanced/gps_for_big_data.html#Generating-data) of the [GPflow](https://gpflow.readthedocs.io/)\\[2\\] project. We'll use `n` noisy training examples drawn from `func` with Gaussian noise `sigma_y`. The number of inducing variables is `m`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def func(x):\n",
+ " \"\"\"Latent function.\"\"\"\n",
+ " return 1.0 * jnp.sin(x * 3 * jnp.pi) + \\\n",
+ " 0.3 * jnp.cos(x * 9 * jnp.pi) + \\\n",
+ " 0.5 * jnp.sin(x * 7 * jnp.pi)\n",
+ "\n",
+ "\n",
+ "# Number of training examples\n",
+ "n = 1000\n",
+ "\n",
+ "# Number of inducing variables\n",
+ "m = 30\n",
+ "\n",
+ "# Noise\n",
+ "sigma_y = 0.2\n",
+ "\n",
+ "# Noisy training data\n",
+ "X = jnp.linspace(-1.0, 1.0, n).reshape(-1, 1)\n",
+ "y = func(X) + sigma_y * random.normal(random.PRNGKey(0), shape=(n, 1))\n",
+ "\n",
+ "# Test data\n",
+ "X_test = np.linspace(-1.5, 1.5, 1000).reshape(-1, 1)\n",
+ "f_true = func(X_test)\n",
+ "\n",
+ "# Inducing inputs\n",
+ "X_m = jnp.linspace(-0.4, 0.4, m).reshape(-1, 1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "