This commit is contained in:
ritchie46 committed 2019-02-15 10:19:55 +01:00
1 parent be12e61e15
commit 34a55eeadb
2 files changed
+807

No files matched your search

+806
View File
@@ -0,0 +1,806 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from scipy import stats\n",
"from mpl_toolkits.mplot3d import Axes3D"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 720x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"cov = np.array([[1, -0.6],\n",
" [-0.6, 1]])\n",
"n = 100\n",
"x = np.linspace(-2, 2, n)\n",
"x, y = np.meshgrid(x, x)\n",
"pos = np.zeros([n, n, 2])\n",
"pos[:, :, 0] = x\n",
"pos[:, :, 1] = y\n",
"\n",
"norm = stats.multivariate_normal(np.zeros(2), cov)\n",
"\n",
"fig = plt.figure(figsize=(10, 10))\n",
"ax = fig.gca(projection='3d')\n",
"ax.plot_surface(x, y, norm.pdf(pos),cmap='viridis',linewidth=0)\n",
"ax.set_zlim(0, 0.7)\n",
"ax.set_xlabel('X axis')\n",
"ax.set_ylabel('Y axis')\n",
"ax.set_zlabel('Z axis')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5c51fd0>]"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA7QAAAFpCAYAAACs+GR2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3Xd4lFXexvH7zGTSeyOVJJAeEhKIoBQF6R3sveHae0GwoQhix8XeRV1FxQZSIlVAQHoLqYSEFEhPSE9m5rx/JPpmXVDKJGfK/bmuXCRTkq+um4ffzPOcI6SUICIiIiIiIrI0GtUBRERERERERGeDAy0RERERERFZJA60REREREREZJE40BIREREREZFF4kBLREREREREFokDLREREREREVkkDrRERERERERkkTjQEhERERERkUXiQEtEREREREQWiQMtERERERERWSQ71QFnw9fXV4aHh6vOICIiIiIioi6wa9euCiml3z89ziIH2vDwcOzcuVN1BhEREREREXUBIUTB6TyOpxwTERERERGRReJAS0RERERERBaJAy0RERERERFZJA60REREREREZJE40BIREREREZFF4kBLREREREREFokDLREREREREVkkDrRERERERERkkUwy0AohPhZClAkhDp7ifiGEWCiEyBVC7BdC9Ot0341CiJyOjxtN0UNERERERETWz1Tv0H4KYOzf3D8OQFTHx20A3gEAIYQ3gNkABgIYAGC2EMLLRE1ERERERERkxUwy0EopNwKo+puHTAHwmWy3DYCnECIQwBgAq6WUVVLKagCr8feDMREREREREREAwK6bfk4wgMJOXxd13Haq24kskpQSzW1G1DW3oa5Fj7pmPeqb9QjydESErwuEEKoTiYiI6DRJKQGAx28iM9ZdA+3JfgvIv7n9f7+BELeh/XRl9OzZ03RlRH+juqEVG3PKUdvUhrrmjgG1pe3PQbWuWd8xuLahvqX9Nr3xpP8JI8zHGcNj/DEsxg/n9/KBo07bzf80RERE9E+klEgvOYHvdhdh2b4SVDa0wl6raf+w00Cn1UBnJ2Cvbf/c4Y/bOt3ffpuATquBu5MOI+N6YGCENzQaDsZEptZdA20RgNBOX4cAKOm4fdhfbt9wsm8gpXwfwPsAkJqaevKJgchEiqob8eGmI/h6RyGa2gx/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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n = 50\n",
"x = np.linspace(0, 10, n)\n",
"\n",
"# Define the gaussian with mu = sin(x) and negligible covariance matrix \n",
"norm = stats.multivariate_normal(mean=np.sin(x), cov=np.eye(n) * 1e-6)\n",
"plt.figure(figsize=(16, 6))\n",
"\n",
"# Taking a sample from the distribution and plotting it.\n",
"plt.plot(x, norm.rvs())"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[<matplotlib.lines.Line2D at 0x7fdac5e3b320>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac5e7c208>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac5e3ba58>]]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(18)\n",
"\n",
"# Define the gaussian with mu = 0 and a covariance matrix w/o any correlation, \n",
"# but w/ uncertainty\n",
"norm = stats.multivariate_normal(mean=np.zeros(n), cov=np.eye(n))\n",
"plt.figure(figsize=(16, 6))\n",
"\n",
"# Taking 3 sample from the distribution and plotting it.\n",
"[plt.plot(x, norm.rvs()) for _ in range(3)]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[<matplotlib.lines.Line2D at 0x7fdac411bef0>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac5cbcc18>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac41236a0>]]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def kernel(m1, m2, l=0.8):\n",
" return np.exp(- 1 / (2 * l**2) * (m1[:, None] - m2)**2)\n",
"\n",
"n = 100\n",
"x = np.linspace(0, 10, n)\n",
"cov = kernel(x, x, 0.215)\n",
"\n",
"norm = stats.multivariate_normal(mean=np.zeros(n), cov=cov)\n",
"plt.figure(figsize=(16, 6))\n",
"[plt.plot(x, norm.rvs()) for _ in range(3)]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{equation}\n",
"\\begin{pmatrix}\n",
"f \\\\\n",
"f_*\n",
"\\end{pmatrix}\n",
"= \\mathcal{N} \\begin{pmatrix}\n",
"\\begin{bmatrix}\n",
"\\mu \\\\\n",
"\\mu_* \\\\ \n",
"\\end{bmatrix},\n",
"\\begin{bmatrix}\n",
"K & K_* \\\\\n",
"K_*^T & K_{**}\n",
"\\end{bmatrix}\n",
"\\end{pmatrix}\n",
"\\end{equation}\n"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"\\begin{equation}\n",
"\\begin{pmatrix}\n",
"f \\\\\n",
"f_*\n",
"\\end{pmatrix}\n",
"= \\mathcal{N} \\begin{pmatrix}\n",
"\\begin{bmatrix}\n",
"\\mu \\\\\n",
"\\mu_* \\\\ \n",
"\\end{bmatrix},\n",
"\\begin{bmatrix}\n",
"K & K_* \\\\\n",
"K_*^T & K_{**}\n",
"\\end{bmatrix}\n",
"\\end{pmatrix}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1. , 0.89801781, 0.65033901, 0.3798084 ],\n",
" [0.89801781, 1. , 0.89801781, 0.65033901],\n",
" [0.65033901, 0.89801781, 1. , 0.89801781],\n",
" [0.3798084 , 0.65033901, 0.89801781, 1. ]])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# squared exponential kernel.\n",
"# Gives more correleation to values of x close by.\n",
"# https://www.cs.toronto.edu/~duvenaud/cookbook/\n",
"def kernel(m1, m2, l=1):\n",
" return np.exp(- 1 / (2 * l**2) * (m1[:, None] - m2)**2)\n",
"\n",
"n = 50\n",
"x = np.linspace(0, 10, n)\n",
"cov = kernel(x, x, 0.44)\n",
"# Note that x_ij close by are strongly correlated and x_ij+n less\n",
"cov[:4, :4]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[[<matplotlib.lines.Line2D at 0x7fdac6e54390>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac4208198>],\n",
" [<matplotlib.lines.Line2D at 0x7fdac6e54b38>]]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# We can plot a function defined by a gaussian. \n",
"# The mean dictates the mean of you distribution of functions\n",
"# The covariance matrix determines the variance at a certain point x_i, but als determines how x_j and x_i are correlated.\n",
"norm = stats.multivariate_normal(mean=np.zeros(n), cov=cov)\n",
"plt.figure(figsize=(16, 6))\n",
"[plt.plot(x, norm.rvs()) for _ in range(3)]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5e1ad68>]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(np.arange(50), cov @ np.random.normal(size=50))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5fdf278>]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# We can also force the function to only show the mean by downscaling the covariance matrix\n",
"norm = stats.multivariate_normal(mean=np.sin(x), cov=cov * 1e-6).rvs()\n",
"\n",
"plt.plot(x, norm)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5d294e0>]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"norm = stats.multivariate_normal(mean=np.ones(x.shape), cov=cov).rvs()\n",
"\n",
"plt.plot(x, norm)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5f3e668>]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAD8CAYAAABzTgP2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzt3Xd4VOeZ8P/vrd5QF+og0ZFANAGuODHdDezYjnESO4kTb7Jxkl+S3Y2T3WzyS9nXKe86vXgdl8SOibtxoYNtYgNGdBVAokqoS0gICdV53j9m5BVYIKQpZ8r9ua65ZubMOXNuSaO5z9PFGINSSinVL8jqAJRSSnkXTQxKKaUuoIlBKaXUBTQxKKWUuoAmBqWUUhfQxKCUUuoCmhiUUkpdQBODUkqpC2hiUEopdYEQqwMYieTkZJOTk2N1GEop5VN2797daIxJGWo/n0wMOTk5FBUVWR2GUkr5FBE5eSX7aVWSUkqpC2hiUEopdQFNDEoppS6giUEppdQFXJIYROQJEakXkeJLvC4i8msRqRCRAyIye8Br94tIueN2vyviUUopNXKuKjE8BSy7zOvLgYmO24PAHwBEJBH4PjAfmAd8X0QSXBSTUkqpEXBJYjDGvAs0X2aXFcBfjN0OIF5E0oGlwEZjTLMx5gywkcsnGKWUUm7mqXEMmUDlgOdVjm2X2q4GMMbQcK6LyuYOKpvPU9PaybUTkijIirc6NKXcpq2zh2MN7QSJIALBQUJwkBAkkBAVRlJMuNUh+i1PJQYZZJu5zPaPvoHIg9iroRgzZozrIvNSRxvO8fN1h6loOEfVmQ46e2wf2Wf5tDS+tWQyE0bHWBChUu5hjOGNAzX8YE0JTe3dg+4TEiQ8dOMEvvLxCYQGax8aV/NUYqgCsgc8zwKqHds/dtH2twd7A2PMY8BjAIWFhYMmD3+xrriGf3nhACHBwvzcRD42KYXsxCiyEyMZkxhFfFQYf91+kse3HWN9SS13zcnm64smkhEfaXXoSjmltrWT/3i1mE1ldRRkxfGT26cREhREnzEYY+izgc0YNpfV8ctN5WwoqeMXd80gLyPW6tD9ihjjmu9YEckB3jDGTBvktZuBh4CbsDc0/9oYM8/R+Lwb6O+ltAeYY4y5XHsFhYWFxh+nxOjts/GLDUf44ztHmZEdzx8/PZv0uEt/2Ted6+J3W4/yzI6TIPCZq8by0McnkBAd5sGolXKeMYbVuyr5rzfL6O6z8a0lk/j8tbmEXKY0sL6kln9/pZiWjm6+euNE/vnj47X0MAQR2W2MKRxyP1ckBhF5DvuVfzJQh72nUSiAMeaPIiLAb7E3LHcAnzPGFDmO/TzwXcdb/cQY8+RQ5/PHxNB0rouvrd7LexVN3Dt/DN+/NY/wkOArOrbqTAe/2lTOS3uqyEmO5pUvX0tcVKibI1bKNU42tfPwSwfZfqyJq8Yl8sgdBeQkR1/RsWfau/nB6yW8tq+a/IxYfnHXDKama+nhUjyaGDzN3xLD/soWvvzMbhrbu/nxymncXZg99EGD2H60ifue2Enh2ESe/vw8wkL06kl5t6ozHdz6m3/Q22f47s1TuWduNvbryOGxlx4O0nq+hyc/O4/rJia7IVrfd6WJQb85LLb1UD13/XE7IsJLX7pmxEkB4OrxSfzszgK2H2vi3185iC8mfRU4Onv6+Odn99DbZ3j1oWtZNW/MiJICwNL8NDZ84wZyk6P52uq9VLecd3G0gUUTg4Xqznbyzef3MWF0DG989TqmZ8U5/Z63z8riawsn8sLuKn7/9lEXRKmUe/xgTQkHqlr5v3fPYHyK8z3rEqPD+MOn59Dda+Mrf9tDd+9He/KpK6OJwSI2m+FfXtjP+Z4+fr1qlksbjL+xaCIrZmbw8/WHeX1/tcveVylXWf3BKVbvquQrHx/Pkvw0l73v+JQYfnZnAXtPtfBfb5W57H0DjSYGizzx3nG2lTfyvVvyXD4OQUT42Z0FzM1J4Fsv7Gf3yTMufX+lnHGgqoX/XFPCdROS+ebiyS5//5ump/PAdbk89f4J1uiF0YhoYrBAafVZfrbuMIumpnLvPPcM1gsPCeZPnykkPS6CB/9SxKmmDrecR6nhaG7v5svP7CElJpxfr5pFcNDI2hSG8vDyKRSOTeDhlw5QUd/mlnP4M00MHtbZ08fXV+8lLiqUn35i+ogb265EYnQYT352Lr02wxf/UkRPn9a5Kuv02QxfX72XhrYufv+p2SS6cbxNaHAQv713NlFhwXzpmT20d/W67Vz+SBODh/2ft8oorz/HL+6a4ZG5XsalxPDzOws4XNfGszuuaLlXpdzi0Y1H2FbeyP+/Ip8Z2e6f5ystLoJf3zOLYw3nePhl7aU3HJoYPGjroXqe3n6Sz1+byw2TUjx23sV5qVw3IZlHN5XT0jH43DNKudOBqhZ+u7WCuwuzWOWm6tPBXDMhmW8tmczr+6t5oajKY+f1dZoYPKShrYt/fXE/U9JG8W/LXN/gdjkiwn/cMpW2zh5+uanco+dWyhjDI2sPkRAVyvduyfP4+b98w3jmjE3gFxsOc767z+Pn90WaGDzkR2+Ucrazl1/dM4uI0Cub6sKVpqTFsmreGJ7ZcZKK+nMeP78KXNvKG3n/aBNfvXEioyI8P1VLUJDw8PIp1Ld18eT7xz1+fl+kicEDDtWe5fUD1Xzhulwmp42yLI5vLp5EZGiw9u9WHmOz2UsLWQmRfOoq66bLn5uTyMIpo/nj20dp7eixLA5foYnBA361qZzosBAeXDDO0jiSYsL56sIJbDlUzztHGiyNRQWG1w9UU1pzln9ZMvmKJ4V0l39dNpm2rl5+/06FpXH4Ak0MblZS3cra4lo+f10u8VHWT4d9/zU5jE2K4sdvlNKr3VeVG3X32vjFhsNMTY/lthkZVofDlLRYbp+ZyVPvnaCmVedSuhxNDG72y03ljIoI4YHrcq0OBbAPfPvuTVMprz/Hcx+csjoc5cf+tvMklc3neXj5FILcNJBtuL6xeBI2Y/iVdsK4LE0MbnSwqpWNpXV88fpxxEV6z/oIS/JSuWpcIv+98YjWtyq3aOvs4ddbKrhmfBILvGgK7OzEKD41fyzPF1VqJ4zL0MTgRo9uOkJcZCifuzbH6lAuICJ875Y8Ws738JsteuWkXO9/th2nub2bby+b4tbR/SPx0I0TiAwN5v9uOGx1KF7LJYlBRJaJyGERqRCRhwd5/VER2ee4HRGRlgGv9Q14bY0r4vEGe0+dYcuheh5cMM6SLnpDyc+I45OF2Tz1/glO69z1yoXq2zp5fNsxbi5I98gI5+FKjgnniwvGsba4ln2VLUMfEICcTgwiEgz8DlgO5AGrROSCUSzGmG8YY2YaY2YCvwFeHvDy+f7XjDG3ORuPt3h0UzmJ0WF89pocq0O5pK8tnIgB/vL+CatDUX7kN5sr6O618S9LPDuQczi+cP04kqLD+OnaQzpVxiBcUWKYB1QYY44ZY7qB1cCKy+y/CnjOBef1WkUnmnn3SANfumEc0eEhVodzSRnxkSyflsbfPjilk4wplzjZ1M5zH5xi1bwx5F7hus1WiAkP4aEbJ7D9WBPbyhutDsfruCIxZAKVA55XObZ9hIiMBXKBLQM2R4hIkYjsEJGVLojHco9uOkJyTDifuSrH6lCG9Pnrcmnr7OXF3TqPjHLek++dIEiEr944wepQhnTv/DFkxkfy683aznYxVySGwVqWLlU2uwd40RgzcMKSMY7Fqe8Ffiki4wc9iciDjgRS1NDgvYOzdhxr4r2KJr78sfFEhlk7oOdKzB6TwKwx8Tz53nFsNi1Sq5E712W/wLi5IJ3RsRFWhzOk8JBgPndtDkUnz1BS3Wp1OF7FFYmhChi4gn0WcKllk+7homokY0y14/4Y8DYwa7ADjTGPGWMKjTGFKSmem5l0uH61qZzRo8L51Hzrhv8P1+evzeVEUwdbDtVbHYryYS/vqeJcVy/3e3G72sXumpNNZGgwf92uU9IP5IrEsAuYKCK5IhKG/cv/I72LRGQykABsH7AtQUTCHY+TgWuBUhfEZInDtW1sP9bEA9flWjJR3kgtn5ZGRlwEf/6HTjCmRsYYw9Pvn2BGVhwzvbAn0qXERYWyclYGr+47rVPSD+B0YjDG9AIPAeuBMuB5Y0yJiPxQRAb2MloFrDYXdgGYChSJyH5gK/CIMcZnE8Pfdp4kLCSIuwqzh97Zi4QEB3H/NTlsP9ZEafVZq8NRPui9iiaONrT7VGmh32euyqGzx6brNQzgknEMxpi3jDGTjDHjjTE/cWz7T2PMmgH7/MAY8/BFx71vjJlujJnhuP+zK+KxQntXLy/vOc3N09PdumShu9wzdwyRocE88Z6WGtTwPfX+CZKiw7i5IN3qUIYtLyOWeTmJ/HXHSfq0nQ3Qkc8u8/r+atq6en2qbWGguKhQ7irMYs2+aurbOq0OR/mQyuYONh+qY9W8MZbPoDpS910zllPNHbxzRNvZQBODyzy78xRT0kYxZ2yC1aGM2GevyaG7z8azO3RyPXXlntlxkiARS9dbcNbS/DRGjwrn6fe1ERo0MbjE/soWDp5u5VPzx3jdvDDDMS4lhoVTRvPMjpN09ugSiGpo57v7WL2rkqX5qaTHRVodzoiFBgfxqfljeedIA8cb260Ox3KaGFzg2Z0niQoLZuWsQcf1+ZQHrsulqb2bNfsu1eNYqf+1Zv9pWs/3cN/VOVaH4rRV87MJDRae2aGlBk0MTmrt6GHN/mpWzMz0ysnyhuvq8UlMSRvFE+8d1zlk1GUZY3jq/ZNMSRvF/NxEq8Nx2uhRESyfls7zRZV0dAf2FDGaGJz08t4qOntsPtvofDER4fPX5XLIMSZDqUvZdeIMZTVnue/qHJ+uQh3ovqvH0tbZy6t7A7vErInBCcYYnt15ipnZ8UzLjLM6HJe5bUYGoyJCtF+3uqynt58gNiKElbOsX7bTVeaMTSALine truncated
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"f = lambda x: np.sin(x)\n",
"x = np.linspace(0, 10)\n",
"\n",
"plt.plot(x, f(x))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 10)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(512)\n",
"# True function\n",
"f = lambda x: np.sin(x)\n",
"\n",
"# Known domain of true function f\n",
"x = np.random.uniform(0, 10, 5)\n",
"\n",
"plt.figure(figsize=(16, 6))\n",
"plt.scatter(x, f(x))\n",
"plt.xlim(0, 10)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fdac5f7b3c8>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7b518>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7b668>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7b7b8>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7b908>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7ba58>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7bba8>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7bcf8>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7be48>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f7bf98>,\n",
" <matplotlib.lines.Line2D at 0x7fdac40f4dd8>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f59240>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f59390>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f594e0>,\n",
" <matplotlib.lines.Line2D at 0x7fdac5f59630>]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n = 200\n",
"# Domain of f* we want to infer \n",
"x_s = np.linspace(0, 10, n)\n",
"\n",
"# covariance matrix\n",
"K_ss = kernel(x_s, x_s, l=0.9)\n",
" \n",
"# Is square root of matrix (standard deviation)\n",
"L_ss = np.linalg.cholesky(K_ss + 1e-6 * np.eye(n))\n",
"\n",
"# N~(0, I) * L\n",
"f_prior = np.dot(L_ss, np.random.normal(size=(n, 15)))\n",
"\n",
"plt.figure(figsize=(16, 6))\n",
"plt.plot(x_s, f_prior)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Algorithm for GP\n",
"\n",
"### Mean\n",
"\n",
"\n",
"$\\text{L:= cholesky}(K + \\sigma^2_n I)$\n",
"\n",
"where $\\sigma^2_n$ is the noise level (can be close to zero if no noise), $I$ is the identity matrix, $K$ is the covariance matrix, and cholesky can be seen as the square root of the matrix.\n",
"\n",
"$\\alpha$:= $L^{T^I} \\cdot L^I y$\n",
"\n",
"$f_*$ := $k_*^T \\alpha$\n",
"\n",
"### variance\n",
"v:=$L^I k_*$ \n",
"\n",
"The variance of the function $f_*$:\n",
"\n",
"$\\mathbb{V}[f_*]$:= $k_{**} - \\text{v}^T\\text{v}$\n",
"\n",
"So the standard deviation is:\n",
"\n",
"B:= $\\text{cholesky}(\\mathbb{V}[f_*])$\n",
"\n",
"### posterior\n",
"$p(f|D) = \\mu + \\sigma[f_*] \\mathcal{N}(0, 1)$"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# find mean mu*\n",
"K = kernel(x, x, l=0.9)\n",
"K_s = kernel(x, x_s, l=0.9)\n",
"L = np.linalg.cholesky(K + 1e-6 * np.eye(len(x)))\n",
"alpha = np.linalg.solve(L.T, np.linalg.solve(L, f(x)))\n",
"mu = K_s.T @ alpha"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"v = np.linalg.solve(L, K_s)\n",
"variance = K_ss - v.T @ v"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 1152x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(18)\n",
"\n",
"# Sample 10 functions from the posterior\n",
"B = np.linalg.cholesky(variance + 1e-6 * np.eye(variance.shape[0]))\n",
"f_post = mu[:, None] + B @ np.random.normal(size=(n, 10))\n",
"\n",
"# Find standard deviation for plotting uncertainty values.\n",
"s2 = np.ones(n) - np.sum(v**2, axis=0)\n",
"std = np.sqrt(s2)\n",
"\n",
"plt.figure(figsize=(16, 6))\n",
"plt.plot(x, f(x), 'bs', ms=8, color='red')\n",
"plt.plot(x_s, f_post)\n",
"plt.fill_between(x_s, mu - 2 * std, mu + 2 * std, color=\"#dddddd\")\n",
"plt.plot(x_s, mu, 'r--', lw=2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{equation}\n",
"p(x|y) = \\mathcal{N}(\\underbrace{\\mu_x + \\Sigma_{xy} \\Sigma_y^{-1}(y - \\mu_y)}_\\textrm{conditional mean} , \n",
" \\underbrace{\\Sigma_x - \\Sigma_{xy}\\Sigma_y^{-1}\\Sigma_{xy}^T}_\\textrm{conditional covariance})\n",
"\\end{equation}\n"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"\\begin{equation}\n",
"p(x|y) = \\mathcal{N}(\\underbrace{\\mu_x + \\Sigma_{xy} \\Sigma_y^{-1}(y - \\mu_y)}_\\textrm{conditional mean} , \n",
" \\underbrace{\\Sigma_x - \\Sigma_{xy}\\Sigma_y^{-1}\\Sigma_{xy}^T}_\\textrm{conditional covariance})\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{equation}\n",
"p(x, y) = \\mathcal{N} \\begin{pmatrix}\n",
"\\begin{bmatrix}\n",
"\\mu_x \\\\\n",
"\\mu_y \\\\ \n",
"\\end{bmatrix},\n",
"\\begin{bmatrix}\n",
"\\Sigma_x & \\Sigma_{xy} \\\\\n",
"\\Sigma_{xy}^T & \\Sigma_y\n",
"\\end{bmatrix}\n",
"\\end{pmatrix}\n",
"\\end{equation}\n"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"\\begin{equation}\n",
"p(x, y) = \\mathcal{N} \\begin{pmatrix}\n",
"\\begin{bmatrix}\n",
"\\mu_x \\\\\n",
"\\mu_y \\\\ \n",
"\\end{bmatrix},\n",
"\\begin{bmatrix}\n",
"\\Sigma_x & \\Sigma_{xy} \\\\\n",
"\\Sigma_{xy}^T & \\Sigma_y\n",
"\\end{bmatrix}\n",
"\\end{pmatrix}\n",
"\\end{equation}"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\n",
"\\begin{equation}\n",
"\n",
"\\begin{pmatrix}\n",
" f(x_1) \\\\\n",
" f(x_2) \\\\\n",
" \\vdots \\\\\n",
" f(x_n)\n",
"\\end{pmatrix} \\sim \\mathcal{N}\n",
"\n",
"\\begin{pmatrix}\n",
" \\begin{pmatrix}\n",
" \\mu_1 \\\\\n",
" \\mu_2 \\\\\n",
" \\vdots \\\\\n",
" \\mu_n\n",
" \\end{pmatrix},\n",
" \n",
" \\begin{pmatrix}\n",
" \\sigma_{11} & \\sigma_{12} & \\cdots & \\sigma_{1n} \\\\\n",
" \\sigma_{21} & \\sigma_{22} & \\cdots & \\sigma_{2n} \\\\\n",
" \\vdots & \\vdots & \\ddots \\\\\n",
" \\sigma_n & \\sigma_{n2} & & \\sigma_{nn}\n",
" \\end{pmatrix}\n",
"\\end{pmatrix}\n",
"\n",
"\\end{equation}\n"
],
"text/plain": [
"<IPython.core.display.Latex object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%%latex\n",
"\n",
"\\begin{equation}\n",
"\n",
"\\begin{pmatrix}\n",
" f(x_1) \\\\\n",
" f(x_2) \\\\\n",
" \\vdots \\\\\n",
" f(x_n)\n",
"\\end{pmatrix} \\sim \\mathcal{N}\n",
"\n",
"\\begin{pmatrix}\n",
" \\begin{pmatrix}\n",
" \\mu_1 \\\\\n",
" \\mu_2 \\\\\n",
" \\vdots \\\\\n",
" \\mu_n\n",
" \\end{pmatrix},\n",
" \n",
" \\begin{pmatrix}\n",
" \\sigma_{11} & \\sigma_{12} & \\cdots & \\sigma_{1n} \\\\\n",
" \\sigma_{21} & \\sigma_{22} & \\cdots & \\sigma_{2n} \\\\\n",
" \\vdots & \\vdots & \\ddots \\\\\n",
" \\sigma_n & \\sigma_{n2} & & \\sigma_{nn}\n",
" \\end{pmatrix}\n",
"\\end{pmatrix}\n",
"\n",
"\\end{equation}"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}