@@ -52,7 +52,7 @@
|
|||||||
"# import libraries\n",
|
"# import libraries\n",
|
||||||
"import numpy as np\n",
|
"import numpy as np\n",
|
||||||
"import matplotlib.pyplot as plt\n",
|
"import matplotlib.pyplot as plt\n",
|
||||||
"# Define seed so get same results each time\n",
|
"# Define seed to get same results each time\n",
|
||||||
"np.random.seed(1)"
|
"np.random.seed(1)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
" for i in range(n_data):\n",
|
" for i in range(n_data):\n",
|
||||||
" x[i] = np.random.uniform(i/n_data, (i+1)/n_data, 1)\n",
|
" x[i] = np.random.uniform(i/n_data, (i+1)/n_data, 1)\n",
|
||||||
"\n",
|
"\n",
|
||||||
" # y value from running through functoin and adding noise\n",
|
" # y value from running through function and adding noise\n",
|
||||||
" y = np.ones(n_data)\n",
|
" y = np.ones(n_data)\n",
|
||||||
" for i in range(n_data):\n",
|
" for i in range(n_data):\n",
|
||||||
" y[i] = true_function(x[i])\n",
|
" y[i] = true_function(x[i])\n",
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"# Draw the fitted function, together win uncertainty used to generate points\n",
|
"# Draw the fitted function, together with uncertainty used to generate points\n",
|
||||||
"def plot_function(x_func, y_func, x_data=None,y_data=None, x_model = None, y_model =None, sigma_func = None, sigma_model=None):\n",
|
"def plot_function(x_func, y_func, x_data=None,y_data=None, x_model = None, y_model =None, sigma_func = None, sigma_model=None):\n",
|
||||||
"\n",
|
"\n",
|
||||||
" fig,ax = plt.subplots()\n",
|
" fig,ax = plt.subplots()\n",
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
"n_data = 15\n",
|
"n_data = 15\n",
|
||||||
"x_data,y_data = generate_data(n_data, sigma_func)\n",
|
"x_data,y_data = generate_data(n_data, sigma_func)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"# Plot the functinon, data and uncertainty\n",
|
"# Plot the function, data and uncertainty\n",
|
||||||
"plot_function(x_func, y_func, x_data, y_data, sigma_func=sigma_func)"
|
"plot_function(x_func, y_func, x_data, y_data, sigma_func=sigma_func)"
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
"# Closed form solution\n",
|
"# Closed form solution\n",
|
||||||
"beta, omega = fit_model_closed_form(x_data,y_data,n_hidden=14)\n",
|
"beta, omega = fit_model_closed_form(x_data,y_data,n_hidden=14)\n",
|
||||||
"\n",
|
"\n",
|
||||||
"# Get prediction for model across graph grange\n",
|
"# Get prediction for model across graph range\n",
|
||||||
"x_model = np.linspace(0,1,100);\n",
|
"x_model = np.linspace(0,1,100);\n",
|
||||||
"y_model = network(x_model, beta, omega)\n",
|
"y_model = network(x_model, beta, omega)\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"source": [
|
"source": [
|
||||||
"# Plot the median of the results\n",
|
"# Plot the mean of the results\n",
|
||||||
"# TODO -- find the mean prediction\n",
|
"# TODO -- find the mean prediction\n",
|
||||||
"# Replace this line\n",
|
"# Replace this line\n",
|
||||||
"y_model_mean = all_y_model[0,:]\n",
|
"y_model_mean = all_y_model[0,:]\n",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"# import libraries\n",
|
"# import libraries\n",
|
||||||
"import numpy as np\n",
|
"import numpy as np\n",
|
||||||
"import matplotlib.pyplot as plt\n",
|
"import matplotlib.pyplot as plt\n",
|
||||||
"# Define seed so get same results each time\n",
|
"# Define seed to get same results each time\n",
|
||||||
"np.random.seed(1)"
|
"np.random.seed(1)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
},
|
},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
"# Draw the fitted function, together win uncertainty used to generate points\n",
|
"# Draw the fitted function, together with uncertainty used to generate points\n",
|
||||||
"def plot_function(x_func, y_func, x_data=None,y_data=None, x_model = None, y_model =None, sigma_func = None, sigma_model=None):\n",
|
"def plot_function(x_func, y_func, x_data=None,y_data=None, x_model = None, y_model =None, sigma_func = None, sigma_model=None):\n",
|
||||||
"\n",
|
"\n",
|
||||||
" fig,ax = plt.subplots()\n",
|
" fig,ax = plt.subplots()\n",
|
||||||
@@ -220,7 +220,7 @@
|
|||||||
" &\\propto&\\text{Norm}_{\\boldsymbol\\phi}\\biggl[\\frac{1}{\\sigma^2}\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\mathbf{H}\\mathbf{y},\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\biggr].\n",
|
" &\\propto&\\text{Norm}_{\\boldsymbol\\phi}\\biggl[\\frac{1}{\\sigma^2}\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\mathbf{H}\\mathbf{y},\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\biggr].\n",
|
||||||
"\\end{align}\n",
|
"\\end{align}\n",
|
||||||
"\n",
|
"\n",
|
||||||
"In fact, since this already a normal distribution, the constant of proportionality must be one and we can write\n",
|
"In fact, since this is already a normal distribution, the constant of proportionality must be one and we can write\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\\begin{align}\n",
|
"\\begin{align}\n",
|
||||||
" Pr(\\boldsymbol\\phi|\\{\\mathbf{x}_{i},\\mathbf{y}_{i}\\}) &=& \\text{Norm}_{\\boldsymbol\\phi}\\biggl[\\frac{1}{\\sigma^2}\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\mathbf{H}\\mathbf{y},\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\biggr].\n",
|
" Pr(\\boldsymbol\\phi|\\{\\mathbf{x}_{i},\\mathbf{y}_{i}\\}) &=& \\text{Norm}_{\\boldsymbol\\phi}\\biggl[\\frac{1}{\\sigma^2}\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\mathbf{H}\\mathbf{y},\\left(\\frac{1}{\\sigma^2}\\mathbf{H}\\mathbf{H}^T+\\frac{1}{\\sigma_p^2}\\mathbf{I}\\right)^{-1}\\biggr].\n",
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
"D_k = 200 # Hidden dimensions\n",
|
"D_k = 200 # Hidden dimensions\n",
|
||||||
"D_o = 10 # Output dimensions\n",
|
"D_o = 10 # Output dimensions\n",
|
||||||
"\n",
|
"\n",
|
||||||
"# Define a model with two hidden layers of size 100\n",
|
"# Define a model with two hidden layers of size 200\n",
|
||||||
"# And ReLU activations between them\n",
|
"# And ReLU activations between them\n",
|
||||||
"model = nn.Sequential(\n",
|
"model = nn.Sequential(\n",
|
||||||
"nn.Linear(D_i, D_k),\n",
|
"nn.Linear(D_i, D_k),\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user