From f263050011c3b6571b300ba52ef882d9aa4489ce Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Thu, 21 Oct 2021 08:10:45 +0200 Subject: [PATCH] update on today's lectures --- doc/BookChapters/chapter1.dlog | 9 + doc/BookChapters/chapter1.do.txt | 11 +- .../_build/.doctrees/Clustering.doctree | Bin 411605 -> 411603 bytes .../_build/.doctrees/chapter1.doctree | Bin 879930 -> 877942 bytes .../_build/.doctrees/chapter10.doctree | Bin 419044 -> 419100 bytes .../_build/jupyter_execute/Clustering.ipynb | 8 +- .../_build/jupyter_execute/chapter1.ipynb | 91 +++++--- .../_build/jupyter_execute/chapter1.py | 11 +- .../_build/jupyter_execute/chapter10.ipynb | 8 +- .../_build/jupyter_execute/chapter1_11_0.png | Bin 6389 -> 6560 bytes .../_build/jupyter_execute/chapter1_13_1.png | Bin 9608 -> 9334 bytes .../_build/jupyter_execute/chapter1_27_0.png | Bin 14971 -> 14335 bytes .../_build/jupyter_execute/chapter1_3_0.png | Bin 10096 -> 10146 bytes .../_build/jupyter_execute/chapter1_61_13.png | Bin 27173 -> 25559 bytes doc/LectureNotes/chapter1.ipynb | 11 +- doc/pub/week42/html/._week42-bs000.html | 52 +++-- doc/pub/week42/html/._week42-bs001.html | 50 ++-- doc/pub/week42/html/._week42-bs002.html | 50 ++-- doc/pub/week42/html/._week42-bs003.html | 50 ++-- doc/pub/week42/html/._week42-bs004.html | 50 ++-- doc/pub/week42/html/._week42-bs005.html | 50 ++-- doc/pub/week42/html/._week42-bs006.html | 50 ++-- doc/pub/week42/html/._week42-bs007.html | 50 ++-- doc/pub/week42/html/._week42-bs008.html | 50 ++-- doc/pub/week42/html/._week42-bs009.html | 50 ++-- doc/pub/week42/html/._week42-bs010.html | 50 ++-- doc/pub/week42/html/._week42-bs011.html | 50 ++-- doc/pub/week42/html/._week42-bs012.html | 50 ++-- doc/pub/week42/html/._week42-bs013.html | 50 ++-- doc/pub/week42/html/._week42-bs014.html | 50 ++-- doc/pub/week42/html/._week42-bs015.html | 50 ++-- doc/pub/week42/html/._week42-bs016.html | 50 ++-- doc/pub/week42/html/._week42-bs017.html | 50 ++-- doc/pub/week42/html/._week42-bs018.html | 50 ++-- doc/pub/week42/html/._week42-bs019.html | 50 ++-- doc/pub/week42/html/._week42-bs020.html | 50 ++-- doc/pub/week42/html/._week42-bs021.html | 50 ++-- doc/pub/week42/html/._week42-bs022.html | 50 ++-- doc/pub/week42/html/._week42-bs023.html | 50 ++-- doc/pub/week42/html/._week42-bs024.html | 50 ++-- doc/pub/week42/html/._week42-bs025.html | 50 ++-- doc/pub/week42/html/._week42-bs026.html | 50 ++-- doc/pub/week42/html/._week42-bs027.html | 50 ++-- doc/pub/week42/html/._week42-bs028.html | 50 ++-- doc/pub/week42/html/._week42-bs029.html | 50 ++-- doc/pub/week42/html/._week42-bs030.html | 50 ++-- doc/pub/week42/html/._week42-bs031.html | 50 ++-- doc/pub/week42/html/._week42-bs032.html | 50 ++-- doc/pub/week42/html/._week42-bs033.html | 50 ++-- doc/pub/week42/html/._week42-bs034.html | 50 ++-- doc/pub/week42/html/._week42-bs035.html | 50 ++-- doc/pub/week42/html/._week42-bs036.html | 50 ++-- doc/pub/week42/html/._week42-bs037.html | 50 ++-- doc/pub/week42/html/._week42-bs038.html | 50 ++-- doc/pub/week42/html/._week42-bs039.html | 50 ++-- doc/pub/week42/html/._week42-bs040.html | 50 ++-- doc/pub/week42/html/._week42-bs041.html | 50 ++-- doc/pub/week42/html/._week42-bs042.html | 50 ++-- doc/pub/week42/html/._week42-bs043.html | 50 ++-- doc/pub/week42/html/._week42-bs044.html | 50 ++-- doc/pub/week42/html/._week42-bs045.html | 50 ++-- doc/pub/week42/html/._week42-bs046.html | 50 ++-- doc/pub/week42/html/._week42-bs047.html | 50 ++-- doc/pub/week42/html/._week42-bs048.html | 50 ++-- doc/pub/week42/html/._week42-bs049.html | 50 ++-- doc/pub/week42/html/._week42-bs050.html | 50 ++-- doc/pub/week42/html/._week42-bs051.html | 50 ++-- doc/pub/week42/html/._week42-bs052.html | 50 ++-- doc/pub/week42/html/._week42-bs053.html | 50 ++-- doc/pub/week42/html/._week42-bs054.html | 50 ++-- doc/pub/week42/html/._week42-bs055.html | 50 ++-- doc/pub/week42/html/._week42-bs056.html | 50 ++-- doc/pub/week42/html/._week42-bs057.html | 50 ++-- doc/pub/week42/html/._week42-bs058.html | 50 ++-- doc/pub/week42/html/._week42-bs059.html | 50 ++-- doc/pub/week42/html/._week42-bs060.html | 50 ++-- doc/pub/week42/html/._week42-bs061.html | 50 ++-- doc/pub/week42/html/._week42-bs062.html | 217 ++++-------------- doc/pub/week42/html/._week42-bs063.html | 80 ++++--- doc/pub/week42/html/._week42-bs064.html | 91 ++++++-- doc/pub/week42/html/._week42-bs065.html | 86 ++++--- doc/pub/week42/html/._week42-bs066.html | 122 +++++++--- doc/pub/week42/html/._week42-bs067.html | 74 +++--- doc/pub/week42/html/._week42-bs068.html | 65 +++--- doc/pub/week42/html/._week42-bs069.html | 104 ++++----- doc/pub/week42/html/._week42-bs070.html | 86 +++---- doc/pub/week42/html/._week42-bs071.html | 94 ++++---- doc/pub/week42/html/._week42-bs072.html | 80 ++++--- doc/pub/week42/html/._week42-bs073.html | 112 +++++---- doc/pub/week42/html/._week42-bs074.html | 87 ++++--- doc/pub/week42/html/._week42-bs075.html | 99 +++++--- doc/pub/week42/html/week42-bs.html | 52 +++-- doc/pub/week42/html/week42-reveal.html | 40 +++- doc/pub/week42/html/week42-solarized.html | 48 +++- doc/pub/week42/html/week42.html | 48 +++- doc/pub/week42/ipynb/ipynb-week42-src.tar.gz | Bin 87691 -> 87691 bytes doc/pub/week42/ipynb/week42.ipynb | 36 ++- doc/src/week39/codes/test10.py | 44 ++++ doc/src/week39/codes/test8.py | 77 +++++++ doc/src/week39/codes/test9.py | 84 +++++++ doc/src/week42/week42.do.txt | 28 ++- 101 files changed, 3251 insertions(+), 1854 deletions(-) create mode 100644 doc/src/week39/codes/test10.py create mode 100644 doc/src/week39/codes/test8.py create mode 100644 doc/src/week39/codes/test9.py diff --git a/doc/BookChapters/chapter1.dlog b/doc/BookChapters/chapter1.dlog index 6162c8df1..875fd7507 100644 --- a/doc/BookChapters/chapter1.dlog +++ b/doc/BookChapters/chapter1.dlog @@ -34,3 +34,12 @@ Translating doconce text in chapter1.do.txt to ipynb Failed to remove ans_at_end environment Failed to remove sol_at_end environment output in chapter1.ipynb +Translating doconce text in chapter1.do.txt to ipynb +*** replacing \bm{...} by \boldsymbol{...} (\bm is not supported by MathJax) + +*** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. + +*** warning: latex envir \begin{bmatrix} does not work well in Markdown. Stick to \[ ... \], equation, equation*, align, or align* environments in math environments. +Failed to remove ans_at_end environment +Failed to remove sol_at_end environment +output in chapter1.ipynb diff --git a/doc/BookChapters/chapter1.do.txt b/doc/BookChapters/chapter1.do.txt index e822f162e..fd8d5748f 100644 --- a/doc/BookChapters/chapter1.do.txt +++ b/doc/BookChapters/chapter1.do.txt @@ -2163,16 +2163,13 @@ TestError = np.zeros(maxdegree) TrainError = np.zeros(maxdegree) polydegree = np.zeros(maxdegree) x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) -scaler = StandardScaler() -scaler.fit(x_train) -x_train_scaled = scaler.transform(x_train) -x_test_scaled = scaler.transform(x_test) + for degree in range(maxdegree): model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) - clf = model.fit(x_train_scaled,y_train) - y_fit = clf.predict(x_train_scaled) - y_pred = clf.predict(x_test_scaled) + clf = model.fit(x_train,y_train) + y_fit = clf.predict(x_train) + y_pred = clf.predict(x_test) polydegree[degree] = degree TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) ) TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) ) diff --git a/doc/LectureNotes/_build/.doctrees/Clustering.doctree b/doc/LectureNotes/_build/.doctrees/Clustering.doctree index 10fd7631cdcab032850880ba09e9b3f38536d746..cef131b012553df6cea829acce5d9e9d26e5f867 100644 GIT binary patch delta 155 zcmccGFL}9NvY~~sg{g&k3yY62zqy6Esj0c4k*R^Dp{c3ybO$E3lJ@h)EZff;vu<0; z*wVz%$jrjh$iTwV!USyR_E~mpmYe`u CG%8sD diff --git a/doc/LectureNotes/_build/.doctrees/chapter1.doctree b/doc/LectureNotes/_build/.doctrees/chapter1.doctree index 5009331e60dd387d4aa59e6f7c6b9c363b491e9f..0c4e5642bd59b57c2fc7bc64142d1caf210c5cad 100644 GIT binary patch delta 112335 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%0A|ef7xW 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 Ieuwn`0C*0R2mk;8 delta 114924 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 B#LoZ# diff --git a/doc/LectureNotes/_build/.doctrees/chapter10.doctree b/doc/LectureNotes/_build/.doctrees/chapter10.doctree index 75555916a1f3dbfddeb53b62a633946cd93c4c38..ea0cecd8551f16b97023bbc48d795e557558d600 100644 GIT binary patch delta 6696 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 delta 6734 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 diff --git a/doc/LectureNotes/_build/jupyter_execute/Clustering.ipynb b/doc/LectureNotes/_build/jupyter_execute/Clustering.ipynb index be93f392e..802668d7d 100644 --- a/doc/LectureNotes/_build/jupyter_execute/Clustering.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/Clustering.ipynb @@ -475,7 +475,7 @@ "output_type": "stream", "text": [ "Converged at iteration 5\n", - "Runtime: 0.4884450435638428 seconds\n" + "Runtime: 0.4787557125091553 seconds\n" ] } ], @@ -604,7 +604,7 @@ "output_type": "stream", "text": [ "Converged at iteration: 5\n", - "Runtime: 0.44310808181762695 seconds\n" + "Runtime: 0.4250478744506836 seconds\n" ] } ], @@ -745,7 +745,7 @@ "output_type": "stream", "text": [ "Converged at iteration: 11\n", - "Runtime: 0.8929829597473145 seconds\n", + "Runtime: 0.8499350547790527 seconds\n", " " ] } @@ -877,7 +877,7 @@ "output_type": "stream", "text": [ "Converged at iteration: 5\n", - "Runtime: 0.0037839412689208984 seconds\n" + "Runtime: 0.003952980041503906 seconds\n" ] } ], diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter1.ipynb index 315fd696c..e4f0ebb84 100644 --- a/doc/LectureNotes/_build/jupyter_execute/chapter1.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/chapter1.ipynb @@ -310,7 +310,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -461,7 +461,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -526,18 +526,18 @@ "output_type": "stream", "text": [ "The intercept alpha: \n", - " [2.13202326]\n", + " [1.76691438]\n", "Coefficient beta : \n", - " [[4.81994803]]\n", - "Mean squared error: 0.22\n", - "Variance score: 0.90\n", + " [[5.37626646]]\n", + "Mean squared error: 0.25\n", + "Variance score: 0.92\n", "Mean squared log error: 0.01\n", - "Mean absolute error: 0.36\n" + "Mean absolute error: 0.40\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -730,7 +730,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAA3bElEQVR4nO3deXhU5dn48e+dSSArEEjYoawugKwBZdGq4FoqrtStgkUpWqu2b7VQ9ae21tJWy6ti5cUVqcrWurZWAUERXAgQdpCAoGFLgLBln5nn98eZkEmYSSazz+T+XBdXZs45c85zJuGeZ+5nE2MMSiml4ktCpAuglFIq+DS4K6VUHNLgrpRScUiDu1JKxSEN7kopFYcSI10AgKysLNOtW7dIF0MppWLKmjVrDhljsj3ti4rg3q1bN3JzcyNdDKWUiikissfbPk3LKKVUHNLgrpRScUiDu1JKxaGoyLl7UlVVRUFBAeXl5ZEuStxJTk6mc+fOJCUlRbooSqkQidrgXlBQQEZGBt26dUNEIl2cuGGM4fDhwxQUFNC9e/dIF0cpFSJRm5YpLy+nTZs2GtiDTERo06aNfiNSKs5FbXAHNLCHiL6vSoVY2UFYfAEsaGH9LDsY9iJEdXBXSqmY9PkNcOgLsJ+wfn5+Q9iLoMG9HgcOHODGG2+kZ8+eDBkyhCuvvJJvvvmm3td069aNQ4cOnbZ91qxZvP766z5f22azMXDgwFP/du/ezYgRIwDYvXs3b775ZuNuRikVPsV5YOzWY2O3nodZ1DaoRpoxhmuuuYYJEyYwb948ANavX8/Bgwc544wzGn2+KVOmNOr4lJQU8vLyam1btWoVUBPcb7755kaXQykVBpkDrRq7sYMkWs/DTGvuXixbtoykpKRaQXnAgAGcf/75LF++nLFjx57afs899/Daa6+dev6Xv/yFc845h2HDhpGfnw/AY489xlNPPQVAfn4+Y8aMYcCAAQwePJidO3f6VKb09HQApk6dyooVKxg4cCAzZswI9FaVUsE2aiFkDYfEDOvnqIVhL0JM1Nwff38zW/YdD+o5+3RswaM/7ut1/6ZNmxgyZIhf527ZsiUbN27k9ddf5/777+eDDz6otf+WW25h6tSpXHPNNZSXl+N0Ok87R1lZGQMHDgSge/fuvP3226f2TZ8+naeeeuq08yqlokRKO7jks4gWISaCe6y56aabTv381a9+VWvfiRMn2Lt3L9dccw1gDSjyxFNaRimlfBUTwb2+Gnao9O3bl0WLFnncl5iYWKu2XbfPuHtXQ+12qJSKBM25e3HxxRdTUVHB7NmzT23bsGEDK1as4Ac/+AFbtmyhoqKCo0ePsnTp0lqvnT9//qmfw4cPr7UvIyODzp0788477wBQUVFBaWlpo8qWkZHBiRMn/LgrpVSjREF/dX9pcPdCRHj77bdZsmQJPXv2pG/fvkybNo327dvTpUsXxo8fT79+/Rg/fjyDBg2q9dri4mL69+/PM88847HBc+7cuTz77LP079+fESNGcODAgUaVrX///thsNgYMGKANqkqFUhT0V/eXGGMiXQZycnJM3cU6tm7dytlnnx2hEsU/fX+V8sGCFlZgr5aYAeOD27kjECKyxhiT42mf1tyVUsqbzIFWP3UIfn/1EKd8NLgrpZQ3oeyvHuKUT4PBXUReEZFCEdnkYd//iIgRkSzXcxGRZ0UkX0Q2iMjgoJZWKaXCqbq/+vjj1s+UdsE7d4inKPCl5v4acHndjSLSBbgU+M5t8xVAb9e/ycALgRdRKaXiUChTPvgQ3I0xnwFHPOyaATwIuLfIjgNeN5YvgVYi0iEoJVVKqXgS4ikK/BrEJCLjgL3GmPV1Bul0Ar53e17g2rbfwzkmY9Xu6dq1qz/FUEqp2BXiKQoa3aAqIqnA74D/F8iFjTGzjTE5xpic7OzsQE4VEocPHz413W779u3p1KnTqeeVlZVBuUZVVRVTp06ld+/eDB48mOHDh/Phhx/W+5qJEyd6HDmbm5vLvffeG5RyKdXkxPBgJW/8qbn3BLoD1bX2zsBaERkG7AW6uB3b2bUt5rRp0+bU3C6PPfYY6enp/OY3vzm13263k5gY2OwNjzzyCPv372fTpk00b96cgwcP8umnn/p1rpycHHJyPHZ3VUo1pLrnirHX9FyJ8MRfgWp0zd0Ys9EY09YY080Y0w0r9TLYGHMAeA+4zdVr5jzgmDHmtJRMrJo4cSJTpkzh3HPP5cEHH6w1jS9Av3792L17NwD/+Mc/GDZsGAMHDuTnP/85Doej1rlKS0t58cUXee6552jevDkA7dq1Y/z48UDN9L4AixYtYuLEiaeeL1myhJycHM4444xTM0O6T0N88uRJbr/9ds455xz69+/PP//5z6C/F0rFlShYXCPYGqx6ishbwIVAlogUAI8aY172cvh/gCuBfKAUuD0opbz/fgj2DIkDB8L//m+jX1ZQUMCqVauw2Ww89thjHo/ZunUr8+fPZ+XKlSQlJXH33XfzxhtvcNttt506Jj8/n65du9KiRYtGl2H37t18/fXX7Ny5k4suuujUnPHV/vCHP5yadhis6RCUUvWIgsU1gq3B4G6MuamB/d3cHhvgF4EXK3rdcMMN2Gy2eo9ZunQpa9asYejQoYA1N3vbtm2DVobx48eTkJBA79696dGjB9u2bau1f8mSJadWjwLIzMwM2rWVikujFlqpmOI8K7BHYHGNYIuJKX/9qWGHSlpa2qnH3qb+NcYwYcIE/vSnP3k9T69evfjuu+84fvy4x9q7ey+k+qYU9vRcKdVIUbC4RrDp9AMB6NatG2vXrgVg7dq1fPvttwCMHj2aRYsWUVhYCMCRI0fYs2dPrdempqYyadIk7rvvvlO9b4qKili40KoxtGvXjq1bt+J0OmutwgSwcOFCnE4nO3fuZNeuXZx55pm19l9yySU8//zzp55rWkappkeDewCuu+46jhw5Qt++fZk5c+aphbP79OnDE088waWXXkr//v255JJL2L//9HblJ554guzsbPr06UO/fv0YO3bsqVr89OnTGTt2LCNGjKBDh9rjwLp27cqwYcO44oormDVr1mmrOT388MMUFxfTr18/BgwYwLJly0L0DiilopVO+dtE6furVOzTKX+VUqqJ0eCulFJxSIO7UkrFIQ3uSikVhzS4K6VUHNLgrpRSoRaBWSc1uNfDZrMxcOBA+vbty4ABA3j66adrjUj1ZPfu3bz55pthKqFSKiaEeL1UTzS41yMlJYW8vDw2b97M4sWL+fDDD3n88cfrfY0Gd6XUaSIw66QGdx+1bduW2bNnM3PmTIwx7N69m/PPP5/BgwczePBgVq1aBcDUqVNZsWIFAwcOZMaMGV6PU0o1ISFeL9WT2Jg4zBdlB0+f1S2YK5UDPXr0wOFwUFhYSNu2bVm8eDHJycns2LGDm266idzcXKZPn85TTz11ap710tJSj8cppZqQCMw6GT/BPcwrqVRVVXHPPfeQl5eHzWbjm2++Ceg4pVQci8Csk/ET3MOQ09q1axc2m422bdvy+OOP065dO9avX4/T6Txt8q5qM2bM8Ok4pVScCkNWwZP4ybmHOKdVVFTElClTuOeeexARjh07RocOHUhISGDu3LmnltHLyMjgxIkTp17n7TilVBMRgZ4y4ENwF5FXRKRQRDa5bfuriGwTkQ0i8raItHLbN01E8kVku4hcFqJyn27UQsgaDokZ1s8g5LTKyspOdYUcM2YMl156KY8++igAd999N3PmzGHAgAFs27bt1CIe/fv3x2azMWDAAGbMmOH1OKVUExGh9VkbnPJXRC4ATgKvG2P6ubZdCnxijLGLyJ8BjDG/FZE+wFvAMKAjsAQ4wxhTb3VVp/wNP31/lQqTxRfUXp81a3jQ8u8BTflrjPkMOFJn28fGVH8U8SXQ2fV4HDDPGFNhjPkWa6HsYX6XXCmlQikcI0dDkFXwRTAaVH8GzHc97oQV7KsVuLadRkQmA5PBWllIKaXCLhy97CK0PmtADaoi8hBgB95o7GuNMbONMTnGmJzs7GxvxwRSPOWFvq9KuUQoHx4Ofgd3EZkIjAVuMTXRYi/Qxe2wzq5tjZacnMzhw4c1EAWZMYbDhw9rl0yloHG97CIw+Vcg/ErLiMjlwIPAD40xpW673gPeFJG/YTWo9ga+9ucanTt3pqCggKKiIn9eruqRnJxM586dGz5QqXjXmJGjYR4oGagGg7uIvAVcCGSJSAHwKDANaA4sFhGAL40xU4wxm0VkAbAFK13zi4Z6yniTlJRE9+7d/XmpUkr5pjH58BhL4TQY3I0xN3nY/HI9x/8R+GMghVJKqaiTObB2l8YwTP4ViPgZoaqUUqEUoS6N/oqfuWWUUiqUItSl0V9ac1dKqTikwV0ppeKQBnelVPyLsT7qwaDBXSkV/yI07W4kaXBXSsU/T33U47w2r8FdKRX/3KcZwAYIvN0RilbEbW1eg7tSKv6591FPTANHKeCs2R8DI04bS/u5K6Xin3sf9QUtalI01WJgxGljac1dKdW01ErRAGKLiRGnjaXBXSnVtLinaLLPh6v3WrX6lHaRLllQaVpGKdW0xNg0Av7SmrtSSsUhDe5KKRWHNLgrpVQc0uCulFIREso1ohsM7iLyiogUisgmt22tRWSxiOxw/cx0bRcReVZE8kVkg4gMDlnJlVIqhtkdTm5/bTVvrysIyfl9qbm/BlxeZ9tUYKkxpjew1PUc4AqsRbF7A5OBF4JTTKWUii/PLN3B8u1FhKry3mBwN8Z8Bhyps3kcMMf1eA5wtdv2143lS6CViHQIUlmVUk1ZHE309fmOQ8xcls8NQzpz7eDOIbmGvzn3dsaY/a7HB4Dq3v+dgO/djitwbVNKqcDEybS9hcfLuX/+Onplp/P4uL4hu07ADarGahFo9BcLEZksIrkikltUVBRoMZRS8c7TtL0xxuE03D8/j5MVdp6/ZTCpzUI3jtTf4H6wOt3i+lno2r4X6OJ2XGfXttMYY2YbY3KMMTnZ2dl+FkMp1WS4zwkToxN9zVj8Dat2Hub34/pxRruMkF7L3+D+HjDB9XgC8K7b9ttcvWbOA465pW+UUsp/7nPCxOBEX59sO8jMZfn8JKcL43O6NPyCADX4nUBE3gIuBLJEpAB4FJgOLBCRScAeYLzr8P8AVwL5QClwewjKrJRqimJ4Tpjvj5Ry/7w8+nRoEdI8u7sGg7sx5iYvu0Z7ONYAvwi0UEopVa+yg1aDanGelZ4ZtTBqZ3Usr3Jw1xtrMMCsW4eQnGQLy3V1hKpSKvbEUM+Zx9/fwqa9x/nb+IF0bZMatutqcFdKxZ4Y6TmzaE0Bb339HXdd2JNL+nj4ZvHcc7BjR0iurcFdKRV7YqDnzNb9x3no7Y0M79GG/7nkjNMPmDsX7r0XXgjNQH4N7kqp2BPlPWeOlVVx1z/W0DIliWdvGkSizS3Ulh2E/x0AP7sNBrSEx34dkjLoSkxKqdhTt+dM9dQEUdDA6nAa7p+3joLiMt6afB7ZGc1rHzB/LDyyAbKAX5yEr24OSS8grbkrpWJfFDWwzlj8Dcu2F/HoVX0Z2q117Z2HD8Pv1oAADwBpjpC1F2hwV0rFvihpYP1w435mLsvnxqFduPXcrrV3lpfD1VfDIeB/bNCekLYXaHBXSsW+KGhg3X7gBP+zcD2Durbi8XF9EZGanU4n3H47fP45vDILRowIeXuB5tyVUrFv1MLTBzWFS9lBji77KXd+eSNppDHr+r40T6wzUOmRR2DePJg+HW6djLXcRWhpcFdKxb4ITk3gWDGeX669hP1VrZnX82HarW9duyyvvAJPPgl33gkPPhi2cmlwV0qpAPxl81msODmI6Z2eZUjqZih2m+1x8WL4+c/h0kvh+efBPVUTYppzV0rFjihbjemddXv5v4NXcWubD7mxzce18/3r1sG118LZZ8PChZCUFNayaXBXSsWOKOryuGbPER5ctIFzf5DO/+u/qXYD6a5dcMUV0Lo1fPghtGgR9vJpWkYpFR7BmMkxSro8fn+klMmvr6Fjq2Rm3TacZmnLa3YWFsJll0FVFSxbBp0is9Ko1tyVUuERjFp3FHR5PFFexR1zcql0OHlpwlAy05rV7Dx5EsaOhb174YMPrJRMhGhwV0qFRzBq3RGeU8bhNNw3L4/8opO8cMsQerVNr9lZVQXXXw9r1sD8+TB8eFjLVpemZZRS4ZE50KqxG7v/te4Ir8b05Htr+GRbIX/o8jKjdk+Hzq7UkjEwaRJ89BG8+CL8+McRK2M1rbkrpcIjymdybMhbX3/Hy18eZGLWB/w08+3aqaWpU60pfH//e7jjjsgW1CWgmruI/Aq4AzDARqw1UzsA84A2wBrgp8aYygDLqZSKdTG8Buqq/EM88s4mftgij4c7zLY2GjsUrYBJ3eGV3XDXXfDwwxEtpzu/a+4i0gm4F8gxxvQDbMCNwJ+BGcaYXkAxMCkYBVVKqUjYduA4P5+7hh7ZaTw3aBmJCW5hcwlWYL8oG2bODOsgpYYEmpZJBFJEJBFIBfYDFwOLXPvnAFcHeA2llIqI/cfKuP3V1aQ2t/Ha7cNoceEbVkoJYCXwGjAIuKMMEuqE0wgPuPI7uBtj9gJPAd9hBfVjWGmYo8ZUN4lTAHjs5Ckik0UkV0Ryi4qK/C2GUiqe+RIgQxRET5RXcfurqzlRbufVicPo2CqlJrWU3wdmAWcB99kge9DpJ4jwgKtA0jKZwDigO9ARSAMu9/X1xpjZxpgcY0xOdna2v8VQSsUzXwJkCIJopd3JXf9YS37hSV64dTB9OrqNMF2+HJ7cCb3T4bfp0HGE58bhCA+4CqRBdQzwrTGmCEBE/gWMBFqJSKKr9t4Z2Bt4MZVSTZIvATLIQdQYw7R/beTz/EP89fr+nN/brfK5erXVzbFnT/jsM2jTxvuJgtH1MwCB5Ny/A84TkVSxZqUfDWwBlgHXu46ZALwbWBGVUk2WLyNSgzxqdcaSHfxzbQG/GnMGN+R0qdmxfr01rUB2tjXbY32BHSLe9TOQnPtXWA2na7G6QSYAs4HfAr8WkXys7pAvB6GcSqmmyJcAGcQgOu/r73h26Q5+ktOFe0f3qtmxaROMGQNpabB0KXTs2PDJqvPz449bP8O8YLcYY8J6QU9ycnJMbm5upIuhlGrC/rtpP3e/sZYLzsjmxdtySLK56r7btsEPfwg2m5WK6dWr/hOFkYisMcbkeNqnI1SVUk3eqvxD3PtWHgO7tOLvtwyuCew7dsDFF1v91z/5JKoCe0N0bhmlVJO2oeAod76eS/esNF6ZOJTUZq6wuGuXFdirqqweMmedFdFyNpbW3JVSwVO3z3nxptAN5AlC//b8wpNMfHU1mWnNeH3SMFqluqbv3bPHCuylpbBkCfTtG7xyh4kGd6VU8NTtc754ZOgG8gTYv33f0TJue/krEgTmTjqXdi2SrR3Vgf3YMatXzIABwStzGGlwV0oFT90+5/bjje+D7muNPID+7UdKKvnpy19xotzOa7cPo3tWmrXj22+txtPDh63pewcP9vmc0UaDu1IqeOr2OU9s0fg+6L7WyP3s3368vIqJr37N98VlvDghh36dWlo78vOtwH78GDzZA3aPicpUkq80uCulgqdun/NLVja+D7qvNXI/+reXVNi5/dXVbNl3nBduGcx5PVwDkbZvtwJ7aSk82R0yN0ZlKqkxtLeMUip4PM3Z3tg53H0dtt/I+eHLKh1MmrOavO+PMvOmQYw+2zWoaMsWGD0aHA5rQeutI8EeojlhwjjfjNbclVLRJQTD9ivsDibPzeWrb4/wt/EDuOKcDtaOTZvgwgutx8uXwznnhHYR7jAu8K01d6VUdAnyik1VDie/eGMdK3Yc4i/X9WfcQNcs5GvXWnPFNGtmDVA680xr+6iFVrqkOM8KvsGcEyaU565Dg7tSKm7ZHU7un5fHkq0H+f24vowf6poIbMUKGDsWMjOtfuzuI09DuRxgGJca1LSMUiouOZyGBxZt4N8b9/PQlWdz2/Bu1o4PP4RLL7Um//r885iaUqAxNLgrpeKO3eHk1wvyeHvdXn5z6RnceUEPa8eCBXDVVdCnjzUJWOfOkS1oCGlwV0rFFbvDya8WrOfdvH08cNmZ3HNxb2vHSy/BjTfC8OFWjj3OV4DT4K6UOl2EF3f2V5XDyX3z8nh//T6mXnEWv7jIlXJ5+mm48064/HL473+hZcvIFjQMNLgrpU4X4cWd/VHlcHLvW+v498b9PPyjs5nyw55gDEydCr/5DYwfD++8A6mpkS5qWGhvGaXU6SK8uHNjVdqd/PKttXy0+SCPjO3DpFHdral6J02CuXPhrrvgueesBTeaiIBq7iLSSkQWicg2EdkqIsNFpLWILBaRHa6fmcEqrFIqDMoOAlLzPAKLOzdGeZWDu9+wAvtjP3YF9pMnrYWs586FJ56A559vUoEdAk/LPAP81xhzFjAA2ApMBZYaY3oDS13PlVKx4vMbwF5S89yWGvbFnX1VUmFn0pzVLNl6kD9c3Y+JI7tDYSFcdJHVf/2ll+Chh6yVlJoYv9MyItISuACYCGCMqQQqRWQccKHrsDnAcqxFs5VSsaA4D3C4bTBhX9zZF8dKq5j42tdsKDjGjJ8M4JpBnWHnTmvU6b598O678KMfRbqYERNIzb07UAS8KiLrROQlEUkD2hlj9ruOOQB4/KsQkckikisiuUVFRQEUQykVVGGc/8RfhSfK+cnsL9i89zh/v2WwFdhXr4YRI+DoUaurYxMO7BBYcE8EBgMvGGMGASXUScEYYwxgPL3YGDPbGJNjjMnJjvP+pkpFlYa6OQZr4q4QdacsKC5l/Kwv2HO4lFcmDuWyvu3hX/+ypuxNTYWVK+G884JyrVgWSHAvAAqMMV+5ni/CCvYHRaQDgOtnYWBFVEoFVUPdHKvnPxl/3Prpb0omBN0pdxadZPysLzhSUsk/7jiXUb3awFNPwfXXW8vhffVVzQRgTZzfwd0YcwD4XkSq38nRwBbgPWCCa9sE4N2ASqiUCq5wdXP0dh0/a/QbCo4yftYXVDqczJs8nCEd02HKFHjgAbjhBisV07ZtSG4lFgXaW+aXwBsisgEYCDwJTAcuEZEdwBjXc6VUtAhXTt3bdfyo0S/bXsiNs78kpZmNBT8fTp80Y+XUZ8+GadPgrbcgJSU09xGjAhrEZIzJA3I87BodyHmVUiEUrjnFvV2nkd8cFuZ+z9R/beSs9hm8evtQ2h4+ABeNtZbGe/ll+NnPgl/2soOnlz0KewzVR0eoKtXUhGtOcW/X8XEZPWMMf1++k79+tJ1RvbJ44dbBZHy1ysqvV1VZc8SMDlE9svrbhbHXfLsI0zzswaJzyyilwsuH3jgOp+H/vbuZv360nXEDO/LKxKFkvPYyjBkDbdrA11+HLrBDzE2/4InW3JVSgWlsCqOBbw5llQ5+NT+P/24+wOQLejD14h4k/PIXMGsWXHGFlV/3NqtjsNIpvi7SHcW05q6UCkwQuzwWnijnxtlf8NGWAzwytg+/G5pFwmWXWoH9wQfh/ffrn643WGUJwSLd4aY1d6VUYIKUwti6/zh3zMnlSEkls24dwmVVB2DoRXDggDUB2K23hq0s4VzrNFS05q6UCkwQulYu21bI9S+swu50snDKcC5b87G1YlJVlbWYtS+BPUhliRca3JVSgQkwhfHaym+ZNGc13bLSePeOofT74zSYMMGaQmDtWhg6NGxliSeallFKBcbPFIbd4eQPH2xhzhd7GHN2O54d2YbUH19q9YR54AF48klIbGSIioN0SrBocFdKhd2RkkrueXMtq3Ye5o5R3ZnWfB+24VdARQUsWgTXXRfpIsY8TcsopcJqy77jXDXzc3L3FPPXa/vx8IZ3sF1+mTUvzOrVGtiDRGvuSqmweX/9Ph5YtJ5WKc3417U96Tf1Tli8GG66yZonJj090kWMGxrclVIh53Aa/vrRdmZ9upMhP8jkpc7HyPzRD62FNV580VrIOtaXwouy+Wg0LaOUCqljpVX87LXVzPp0J7fmdGTB3g/JHPcjyMy00jB33BH7gR1CMn99ILTmrpQKmQ0FR7nrH2spPFHO30Zmce1T98Nnn8Htt8Nzz0FaWqSLGDxRNh+N1tyVigchWtLO3+sZY5j7xW6uf+ELAD7qUsS1E6+ENWus0aavvBJfgR2ibgCVBnel4kG4UwL1XO9khZ175+XxyLubGd0pmU+2vE6PuyZCjx7WoCRfR5uGQig/BKNsAJWmZZSKB+FOCXi53vYDJ7jrjTXsPlTC051KuPbpe5Hdu+Ghh+DRRyEpyfs5vTVIBrOhMpTztEfZAKqAa+4iYhORdSLyget5dxH5SkTyRWS+iDQLvJhKqXqFOyVQ53qm1UAW5H7P1c+vpORkOZ+eXM5199+EOJ3w6afwxBP1B3bw/m0gmN9KoiwvHkrBSMvcB2x1e/5nYIYxphdQDEwKwjWUUvXxNyXgb5rC7XrHWl7IPQen8+CiDVyZeJTP33+ELjOfstIveXkwapRv56wbeItWWuU6tCp4ATnK8uKhFFBwF5HOwI+Al1zPBbgYWOQ6ZA5wdSDXUCruBSMPXJ0SGH/c+ulr2sLfWrHrernDdnPlhmks3nyYN49+xlN/mkjSt7tg/nyYM6f+udfrcg+8ADitchlHzaZAA3KU5cVDKdCc+/8CDwIZrudtgKPGVH/MUgB08vRCEZkMTAbo2rVrgMVQKoaFMg/cUL7azzSF3eFk5rJ8nl26g+H2Q3z8yfOkrV0N11wDL7wA7fzIibsvqO0orR3USYDENN8W9K7vnqMsLx5KftfcRWQsUGiMWePP640xs40xOcaYnOzsbH+LoVTsC2UeuKGauR9pioLiUm568Uue/XgbMwqW8o+ZU0j7Nh/eeAP++U//AjvU/vaRNaJ2ubJH+v6tJMoGE0VKIDX3kcBVInIlkAy0AJ4BWolIoqv23hnYG3gxlYpjoVyvs6EPDvfacgO1YmMMC3ML+P0HW+hRtIfVq16kzfpcuOoqaxm8Dh2CV+5GlOs0TajRtD5+B3djzDRgGoCIXAj8xhhzi4gsBK4H5gETgHcDL6ZScSyQQNaQhj44fExTFB4vZ9q/NvL5pgL+tPU9rln8BpKRYQ1IuuWW4E8fEEj6JA4Wtw6GUPRz/y0wT0SeANYBL4fgGkrFD/dAFuzJpxrzweHl2u+v38cj726i/zdr+frT/6NlwW746U/h6achGlOqofywjCFijIl0GcjJyTG5ubmRLoZSkbf4gtq1zqzh4WtcrXPtIy0u5pFjf2LlV9t5+qt/MPqr/0DPnlYKZsyY4JRJBURE1hhjcjzt0+kHlAoXX7o8RrJx1XVtY+DdIyO4ZNVtpMx7ky/m/IKL13wM06bBxo0a2GOETj+gVLj40uUxmPniujX14nX1f3BkDmTvvh08UjCZ73e145XlTzBg1zZroerZs+Gcc/wviwo7rbkrFS6+1MqDOcimbk2dBK/dHh1Ow5xmz3Pdhr9w4Ttr+Oi1e+hffAD+/ndYuVIDewzSmrtS4eJLrTyYg2zqfpgYh/WBUaeh8ZuDJ5i2MI+e/17ExyvnknHyKDJ5sjUfTFZWcMoSy6JshSVfaXBXKlwa24ujvqDiS8Cp+2HSenCtXjknl9/Cs1t7sWZ9T36/5EX67tuBGTkSee45GDQoiDce40I5gjiEtLeMUtGqvp4zvvSq8fIBYIzh32/8nFm5fZiw9N/csGkJztbNSXj2Zbj55vhY8i6YFrSwUlvVEjOs0bJRoL7eMlpzVypaecrRVwfsohU1x3nL33tI8eQXnmT6gq85560TLFr9W5o5K2EsJFyfZA1GUqeL0UFRGtyVilaegkp1isCdDwHnZIWdFxZv5eTMWfz58zdpU3IU53kJJIwH2idClqZhvIrRQVEa3JWKVp6Cyvu9a2rzpxhwVlq1+jp5d4fTsHD1d+Q+8yp3ffQSPY/spXLkKHjydyRU/CnmAlZExOhMkhrclYoWnnLk9fWDr2YccGTNaQ19q/IPsXDmQm5eNJMb926hvFMLeDCFZqOBoYMhJfYClvKd9nNXKlr4MlWtez94sdVsd8u7f3uohD889jrll13BjGfu5pyKQ5j7epE8vQQGlMHhL/2fBtd9lO1H51n/6o64DeUi1MpnGtyViha+DHKqZ87zwtSRzJyxkPwRY3jk8QmMOJRP1R+fJPnbnciIg5DgqP/c3rgH6/fPqPkAOvyV9S+Ua56GU5x9KGlwVypaNHbhDFct/hjteGXL7ax74AT3/Ho8o/Zt5uTDj5L8/R6SfjcN0tMDWzvUPVjbj3vI+VP7AyNW51OP1Q8lLzS4KxUtGjn1QJkti/n7fscXT57FxCde4oI96zn6wDRSCr4j/Q+PQYsWfp+7Fvdg7Y37B0asLkIdqx9KXmiDqlKNEcqh6D72yiivcrDklXfJeOZpfrJ1FeXNUzj8y1+T/djvSGndOqBze1SrEddmrWWKgZZ9rP3HttTucROjXQdjtT+7NzpCVSl3jZzzPKjzrTegvNLO8plvkjXzb+R8u56TqRkcu+MuOj3yQGjngInRuVUaLQbvs74RqhrclXL/T42Ao9R78A7XUHS3MpWlDWHV11fS8aUXOXvfDg63yubE3ffSbdr9Vj49VsVgMI02IVmsQ0S6iMgyEdkiIptF5D7X9tYislhEdrh+Zvp7DaXCwluDoZc5z0/LJ3vrZRFI74vPb+DYnvV8uqAXhbdtY/TvH6Slo4Jd05+hzYHv6fbHh2M7sINrGoVV1vtetMLqiRPjPVSiSSANqnbgf4wxfYDzgF+ISB9gKrDUGNMbWOp6rlT0qq/BsG7e1VPDpLdeFn72vijcuJ0vnjyO3GPnh/9chz3FRv5dPei4dxc9fnsvNG/u961GleI8wFHz3H485nuoRBO/G1SNMfuB/a7HJ0RkK9AJGAdc6DpsDrAca9FspaKTp1GfACSc3hjoqWHSWy+LxvS+MIbv3/uY4if/St/Vy2gNbDjnDFr96Bg9++6HpHT4Z2Z8pS8yB9aeAA1ivodKNAlKV0gR6QYMAr4C2rkCP8ABIA7+ClVcq66Nu/93kETIHulbEHVP1WADxErFIA12CXSeLGHbn55ld7ez6XL15XTd+DWrrr2dwq9XMvipbHoMPGkFdkdp3PS/PmXUQkh0664ZBz1UomkgVMDBXUTSgX8C9xtjarUsGau11mOLrYhMFpFcEcktKioKtBhK1a++/3TVtfFr9kH2+Q33Ba97rpy/16RqEtNqArG9BGypHs9XujaPrTdMpKRte8763X04y8tZev/vce75jvMXvUTHnPNqRqJi4qr/9Skp7eDH3/j2nvsjEoE2igZCBdRbRkSSgA+Aj4wxf3Nt2w5caIzZLyIdgOXGmDPrO4/2llEhF8wujPWdq77eNKWlFL48l4q/z6LLtjwqbIl8OegibD+fzLAJ19AsyXb6tYJd9lCJxp4v7u8bWHPxZI0IbdnCvLBHqHrLCPAysLU6sLu8B0xwPZ4AvOvvNZRqlPpqasEcfVjfuTz0pqnIXcuun9zKyTZZtL13CpWFRbx98y/ZnruVH67+mFF3XO89sENwF80OlYZqrJGoRddtKDeO0Nemo2h0biAjVEcCPwU2ikiea9vvgOnAAhGZBOwBxgdUQqV8Vd9al/6MPvRWG63vXNW9Z3atpeiLbjiW76f9niF0siXy2VmDOXlhKiOHbuKajnkwsJdv9xUL84k39OEZiXVIPU6PHOK0VhSNzg2kt8zngLfFFkf7e16l/FZfgPHnP523gOTtXKWllC/8mKP/l0D2l2Vkm83kdTyT5RN/S7cBSxmdvZoEMTVljScNfXhGYt6W6t9T0UrAaW0LdW06ij6IdW4ZFVu81abLDlKrriGJ1twniy/wPw/sLSC5/weuqsKxeAmFL71O5ofvkVxeir1FNm9dfDNJE29jzNUXMDC9uSv/a4ubeUtO09CHZyTmban+PXn6m2kCdPoBFVu8NS4uvsAa7Vg9KCaxBbQ821qhyN+GSG/Xstsxn3zCkVffIOXf75J64hgnmqWwtM/5HLr2Jwy45SpyurfBapZyicYGx3Bq6vcfIvU1qGrNXcWWurXpopVW4Kg72hFjzVYYSCrAvTbaYgCm4h6O/fRnNHv/HVKPFdO8WQpLep/LvkvH0uvW67iifxeaJ3ppGI2ir+sR0dTvPwI0uKvYctqoRqcVgL197Q8kFWBPxRy7l6Pz3qT5x/8lteQnJDZLYXHPYXxz0+V0v/laLsnpTsuUpKDcmlLBpMFdxZZRC+GdTla3tmrFefDjHZ7zqo3NtRYU4Hz3PU4s/BdpKz8j0V4FyRl81PNcdp/TgXY5RxlzpmHcWJ0ySUU3De4qtqS0swai1K2Re/va31AqoKoKvvyS8g/+Q8V7H9By2yYSgCOZHVg4ZCxFF15Gr07vM7rlCq5JrB6MlBHsu1Iq6DS4q9jg3iDXsg+0HnL6CkC+2rkT89FHlLz/H5p9tpxmpSUkSgIbO57FyksmUXLZlfS7eBjjz25Hi+QkWPwGHCq1JtIIVk8PfxoYtVFSNYL2llHhE0hwCmQIfmEhfPoppf95H+d/3iW90KqBf9+yHZ91H8SuQSNp+aNLGZnTi4FdMrEl1Bm+EYqg6s/9+PIa/QAInyh4r3UlJhUdAgnQjZmz48AB+PRTKpZ8QtUny0jftQOAk81S+LJLP1b37EtZvxTO7pfARdc+RfuWyQHemB/8mYPEl9d46hL642+CE3SiIJhFlSiY80e7QqroEMgoRW+9YZxO2L4dvviCkk9X4PxsBRm7dwJQ2SyF3M59WHPxzygZPpKOWR8zPD2X36bMsUaKJmZAy5lBvMFG8GdQjy+v8bYARjCCTiSmEIhmkRh12wga3FX4+DtKsewgOCvBOKEsAQ72xLH5XEqfvIRmuV/T/KRVe7U3TyO3cx/WjrmQY8NGkHX+eYw4sz33dmlFs8QEWPwaHNoD1d9WHaXw0XnWY/f8fThqo/5Mh+DLa0K5AEaUB7Owi8So20bQtIwKjvqmBXBvCAXfA2lxMaxbh/OtOzi5sRC+NaQXlZJgwInwTVZX1nY6i509z8EMP48u5w4kp3sWZ3fIINHmYcLT6rK4zzXizv2rdaymIMoOWmuR2l3pmmCmC6IgDRFVouBvRHPuKjBlB+GzcXB4NYhA6xy44N3af8j1TQtQd3vdGujIBXDUCas/perthyjZdITE7wzpRTX55IIW2Wxu15Pt7X/AsR4taH7FJM48szND2jnotPFW5Gie7//B6uau3VXnsWM5kIUq6IQymEVBoIxFGtxVYBZfcPpX/ezzawc7b4197tsNUJIGR7vj2LSVku+a4yiwkbKvnOSyqlMv/TazA5vb9WJb+26U9BtMSqd99MxYR/+U7fRIPogt+9yaa/vb68S90bGa++vDvOhCkxfLH6YRpA2q6nSNqSl5yq0WrbQCYHWqxV5Ss6/KBie6YR7tQ8k2O6X7MmGfIf1AGamlJcAmbIAj2cY3WV3ZcWYXDrdrhaNzAs27V9Kj9T76Ju/kitT12H7yultZj0LmubVzzf7kgUctrJ26ANcqPW4LYdTNpwY6w6Q3WmO1aD4/6DS4NwXVAeTIWiuI4QQSrAZFX3o+1G2kM8BxJxw+QUXRGk7sS6PiQGtsB5ykFlXQ4lgJsBEB0oHy1Gbsat2JnWd0prh9Cyo7JZPUqYJ2WYfolbKXa5OXkZpQUfuakgithtQOqD/ecXrga6hRy2vwrPON1ZZa+/7rpo6clb73FGlMO4P2QLFEeeNkLNK0TLxyDzBITSD3JjHDCp4rrod9eeA4k7JWUzjx6d8p/64QZ5FgO1RJSnEFLYpLaGavfa6i1FbsyezAd5ntOZqVQVl2cxI6OMnoUErnzIP0bL6XjklF2MQJtjTrQ8buJc1Rvdals7LhKXu9zdXt6d4baguoL6g2Jk1Td+3OU/fl4Tqa/rHoNxi/aFomFjRU24Oa2nd1wBKBVgMgIQmObqrZfoqrR4gByqDiuI0Tx9MpLU6mojgJe7ENOQa2o06aHbeTdlcfMk6coHlVFbCGFO4kxXWmorRW7G3RlgNZbTneM4XyNknQxtA8u4r09qW0b3mErs0OMDhxW81qQ55IIrQeXFMzPrIWHCW1j6muRS9oUf9XdW8BwVtwdT9HY7sieqpZevudOUprT2xW9/p1P3glMbAaazw0dOqUwEEXspq7iFwOPAPYgJeMMdO9HRvTNffG/PG79zoBsCWDo9wK0rYU67GH2p4jM4eyop2UH6+gsrQZlaVJlJckUVHajKrSRBylNkyJICWGxJMOkkqqSC6pIqW0nLTSMjLKSklyegg2wLHmaRSmt+ZIegtOZKRS2iIZe0sbtIKkTDvJWZVktC2hbWoxbZOrSM86y3NjpDdiq/kA8paaaExPG/cA4G2/t94wgTTUefo9u6dUfHovXNcHt9fZIDENMP4Hz1A2RmpDZ1QLe81dRGzA88AlQAGwWkTeM8ZsCdpF3PPI7jXWxFRrsEt1ThnAloyxl1NlEnHYUrHbq3AYG1UJaTgcVdiNDXtCKna7HQc2qiQVh8OO3ZmAQ1JwVDlwOBJwOpvjqHRgHILDmYzTAc5KB8YBxtEfp91g/n0DOATjTMJU2cEOYk8gocJOQpUDW1UCCVVDsVU6sFU5SahyklBlSKgy2KocJLr+Na+oJKWygrSKMtIr15JuryS9gbekwpbIsZR0TqSkUZKaQnF2BuWpzahKS8SZnkBCupOkDDvNMu0ktyqnRZtSWqWcoIdtL73l+4bf86zzPSyK4S4BJKFOsBMreNUXENxr0S37WOmY+enWa43T+oBoPeT02rW3RrhaCyN7CJ7+8FSzdL/+aRKs63r6FvZ+b7fXOayyBZKKCbQxsr4KijZ0xqxQpWWGAfnGmF0AIjIPGAcEL7h/fgMb3zlA+7nWQgliMhDXtxAxCYgxiEl1PTeISUYwCBUkGEOisZNMuWufQTjk+gk242GAS5A5ESqSkqhMTKIyKYmqpETsiTbszWw4kmzY02wcb57GkeQWOFISMCkCyYJJMSSkGpJS7TRLqSIlrYLU9HLS0spITamgbcJR2nK0nit7CsC+SKi/tiqJVgBOaFan8dWHgOAeOD2mVBKt8/ramOop5RKKVEKtDxE3DdVwg914GOj56mvU1YbOmBWq4N4JcK8KFgDnuh8gIpOByQBdu3Zt/BWK80hs1ZodZ3RBBEiwArOIgQRDguuxiEESjBXYTz239iWI09qegPXYtT+hep/rsdiq/4EkOkmwGRJspuZxopMEmxNbokFsThJPPXeQkAQkAc3cfjaDhERDilSSQmXj753q0Zd1P4TcRmUmptZsc29QrA7A7nniw6s9nMtNdbBKaXd6LRtOT7fU/SrfmIDgqTbs7QPCW948XPnbht4LX14XjAWbAz1ffbXzYJdVhU1Icu4icj1wuTHmDtfznwLnGmPu8XS8Xzl3b41mMSOhJudeK7C6pRHq9nKp7kXiaWi/txpqY4+pDlJHN9V0m8wc1Ljab7Cm9q2mud7Q0rx6zAr7CFURGQ48Zoy5zPV8GoAx5k+ejvcruDcy524F0SA+rr6OJAJOaNkXnFU1tR5Pr/M2dN+XeVmaSvcwT33yG/vhohqnKf6dxYlIBPdE4BtgNLAXWA3cbIzZ7On4mO4to5RSERL23jLGGLuI3AN8hNUV8hVvgV0ppVTwhWwQkzHmP8B/QnV+pZRS3nmY9FoppVSs0+CulFJxSIO7UkrFIQ3uSikVh6Jiyl8RKQL2NHBYFnAoDMWJRk353qFp339Tvndo2vfvy73/wBiT7WlHVAR3X4hIrrf+nPGuKd87NO37b8r3Dk37/gO9d03LKKVUHNLgrpRScSiWgvvsSBcggpryvUPTvv+mfO/QtO8/oHuPmZy7Ukop38VSzV0ppZSPNLgrpVQcirrgLiKXi8h2EckXkake9jcXkfmu/V+JSLcIFDMkfLj3X4vIFhHZICJLReQHkShnqDR0/27HXSciRkTipoucL/cuIuNdv//NIvJmuMsYKj783XcVkWUiss71t39lJMoZCiLyiogUisgmL/tFRJ51vTcbRGSwzyc3xkTNP6zpgXcCPbAWpFsP9KlzzN3ALNfjG4H5kS53GO/9IiDV9fiueLl3X+/fdVwG8BnwJZAT6XKH8XffG1gHZLqet410ucN477OBu1yP+wC7I13uIN7/BcBgYJOX/VcCHwICnAd85eu5o63mfmphbWNMJVC9sLa7ccAc1+NFwGgRkTCWMVQavHdjzDJjjGt5Kb4EOoe5jKHky+8e4A/An4HycBYuxHy59zuB540xxQDGmMIwlzFUfLl3A7RwPW4J7Atj+ULKGPMZcKSeQ8YBrxvLl0ArEengy7mjLbh7Wli7k7djjDF24BjQJiylCy1f7t3dJKxP9HjR4P27vpJ2Mcb8O5wFCwNffvdnAGeIyEoR+VJELg9b6ULLl3t/DLhVRAqw1oj4ZXiKFhUaGxdOCdliHSp0RORWIAf4YaTLEi4ikgD8DZgY4aJESiJWauZCrG9sn4nIOcaYo5EsVJjcBLxmjHnatT7zXBHpZ4xxNvTCpizaau57gS5uzzu7tnk8xrVWa0vgcFhKF1q+3DsiMgZ4CLjKGFMRprKFQ0P3nwH0A5aLyG6s/ON7cdKo6svvvgB4zxhTZYz5FmuN4t5hKl8o+XLvk4AFAMaYL4BkrEm1mgKf4oIn0RbcVwO9RaS7iDTDajB9r84x7wETXI+vBz4xrpaHGNfgvYvIIOD/sAJ7vORcq9V7/8aYY8aYLGNMN2NMN6w2h6uMMfGwsrovf/fvYNXaEZEsrDTNrjCWMVR8uffvgNEAInI2VnAvCmspI+c94DZXr5nzgGPGmP0+vTLSrcVeWoe/wWpBf8i17fdY/5HB+sUuBPKBr4EekS5zGO99CXAQyHP9ey/SZQ7n/dc5djlx0lvGx9+9YKWltgAbgRsjXeYw3nsfYCVWT5o84NJIlzmI9/4WsB+owvp2NgmYAkxx+70/73pvNjbmb16nH1BKqTgUbWkZpZRSQaDBXSml4pAGd6WUikMa3JVSKg5pcFdKqTikwV0ppeKQBnellIpD/x/o4MUMhJANrAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -747,7 +747,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.004999999999999987\n" + "0.0050000000000000044\n" ] } ], @@ -1322,7 +1322,7 @@ "270 3344 160 110 270 Ds 7.253775 7.253775\n", "\n", "[267 rows x 6 columns]\n", - "0.009883615646716184\n" + "0.009883615646716186\n" ] } ], @@ -1419,8 +1419,6 @@ "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1430,6 +1428,16 @@ "text": [ "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", @@ -1459,8 +1467,6 @@ "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1473,8 +1479,6 @@ "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n", "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", - " warnings.warn(\n", - "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", " warnings.warn(\n" ] }, @@ -1508,16 +1512,36 @@ " warnings.warn(\n" ] }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/neural_network/_multilayer_perceptron.py:582: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJjCAYAAADQ22+yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABoM0lEQVR4nO3de5yM5f/H8dfMHol13F02he2gko5UKKLCOm+RU3KopFhKySaHkuOmnCsdRJJQsSkbkVUiUb5EJz85n3Ydai32NDO/P252bbtuO/bemT28nz32kbnnnrmvz8zcM9e8r+u+x+ZyuVyIiIiIiGXs3m6AiIiISHGjDpaIiIiIxdTBEhEREbGYOlgiIiIiFlMHS0RERMRi6mCJiIiIWMzX2w0QKclGjx7Nxo0bAdi5cyeXX345gYGBACxYsCDz3xfzxBNPMGTIEK6++uoLrjNlyhSqV69O+/bt893uc6Kiovjpp5+Ij4+nVKlSlt2viEhRZ9N5sEQKh6ZNmzJlyhTq1Knj7abkyZEjR2jXrh0333wz9957L126dPF2k0RECg0NEYoUUtOmTeOxxx6jTZs2PP/88xw9epSnn36aTp060bRpU7p3786xY8cAo3P266+/smHDBjp37szgwYNp3749LVu25McffwQgOjqa999/H4A6deowbdo0OnfuTNOmTZk9ezYADoeDcePG8cADD/Dggw/y8ssv071791zbt3DhQurXr09kZCQffvgh539X27JlCx07dqR169ZERkayfv160+W1atXi+PHjmbc/d3nDhg20bduWzp0707ZtW9LS0hg9ejQdO3akZcuWRERE8PPPPwNw6tQpXnzxRZo3b07Lli154403OH36NPXq1WPXrl2Z992rVy9WrlxpxVMkInJB6mCJFGIHDhxg8eLFTJw4ka+++opbbrmFBQsWsGrVKgIDA4mNjc1xm61bt9K7d2+WLFlChw4dmD59eo510tLSqFChAp988glTp07l9ddfJzU1lUWLFrF9+3a+/PJLPvnkE/bt25druzIyMli4cCFt27aladOmHDt2jO+++w6A9PR0+vXrR79+/fjyyy959dVXGTt2LGlpabkudzqdpo/Bjh07eP311/niiy/Yvn07CQkJLFiwgGXLlhEZGcm7774LwNSpU0lNTWXZsmUsWbKEX375hV9//ZX27duzaNEiAPbu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EREREYspwRIRERFTOtGo+5RgiYiIiFhMCZaIiIiY0hws9ynBEhEREbGYEiwRERExpRONuk+PmIiIiIjFlGCJiIiIKc3Bcp8SLBERERGLKcESERERUzoPlvuUYImIiIhYTAmWiIiImNIcLPcpwRIRERGxmBIsERERMaUEy31KsEREREQspg6WiIiIiMU0RCgiIiKmNEToviLfwapkv8zbTRARERHJpsh3sERERKRgKcFyn+ZgiYiIiFhMCZaIiIiY0k/luE8JloiIiIjFlGCJiIiIKc3Bcp8SLBERERGLKcESERERU0qw3KcES0RERMRiSrBERETElBIs9ynBEhEREbGYEiwRERExpQTLfUqwRERERCymBEtERERMuZRguU0JloiIiIjF1MESERERsZiGCEVERMSUfuzZfUqwRERERCymBEtERERM6TQN7lOCJSIiImIxJVgiIiJiSqdpcJ8SLBERERGLKcESERERU5qD5T4lWCIiIiIWU4IlIiIipjQHy31KsEREREQspgRLRERETGkOlvuUYImIiIhYTB0sERERMeVyee7PSgkJCfTp04f27dvTuXNn9u/fD0BSUhJ9+vQhIiKCbt26kZiYCEBaWhqDBw8mIiKCyMhIdu7cecnbVgdLREREiqUXXniBJk2asGTJEtq1a8fEiRMBmDx5MnXr1iUuLo6OHTsyZswYAObOnUupUqWIi4tj6NChREdHX/K2NQdLRERETDnx3ByspKQkkpKSciwPCgoiKCgoz/dz/Phx/vjjDz744AMAHnroIerXrw9AfHw88+bNA6B169aMGjWK9PR04uPjGThwIAD16tXjxIkTHDx4kLCwMLfrUAdLRERECo05c+Ywffr0HMv79+9PVFRUnu9n3759hIWFMXbsWDZs2EBYWBjDhw8HjKHD4OBgAHx9fSlTpgzHjx/PthwgODiYw4cPq4MlIiIiRVuPHj2IjIzMsdwsvYqLi2PcuHHZllWvXp3ffvuNqKgoXnrpJRYtWkR0dDRz587N9T7s9txnTV1o+cWogyUiIiKmPHmiUXeHAgEiIiKIiIjItmzv3r1ERkbSpEkTwBgKHD16NAAhISEcPXqUKlWqkJGRQXJyMuXLlyckJITExESqV68OQGJiIiEhIZdUhya5i4iISLFz5ZVXEhoaypo1awBYvXo1tWvXBqBx48YsWbIEgGXL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EhEREXNKsNymBEtERETEYkqwRERExJRONOo+JVgiIiIiFlOCJSIiIuY0B8ttSrBERERELKYES0RERExpDpb7lGCJiIiIWEwJloiIiJjTHCy3KcESERERsZgSLBEREbkIzcFylxIsEREREYspwRIRERFzmoPlNiVYIiIiIhZTB0tERETEYhoiFBEREXMaInSbEiwRERERiynBEhEREXP6qRy3KcESERERsZgSLBERETHl0hwstynBEhEREbGYOlgiIiJizuXBPwvt37+fbt260a5dO7p3786BAwcASEtLY/DgwURERBAZGcnOnTuNMl0uJkyYQIsWLWjZsiU///zzJW9bHSwREREplqZMmUKrVq2IjY2lWbNmTJo0CYC5c+dSqlQp4uLiGDp0KNHR0QAsX76cnTt3smzZMmbMmEF0dDQZGRmXtG3NwRIRERFzHjyKMCkpiaSkpBzLg4KCCAoKcuu+nE4nycnJAJw5c4bAwEAA4uPjGThwIAD16tXjxIkTHDx4kDVr1tCyZUvsdjs1a9YkLCyMzZs3U69ePbfrUAdLRERECo05c+Ywffr0HMv79+9PVFSUW/c1cOBAOnfuzNy5c0lPT2fBggUAJCQkEBwcnLlecHAwhw8fJiEhgZCQkBzLL4U6WCIiImLK5sGjCHv06EFkZGSO5WbpVVxcHOPGjcu2LDw8nNTUVEaNGsX999/P8uXL6d+/P1988UWu92G323Hlcrik3X5ps6nUwRIREZFC41KGAiMiIoiIiMi27Pjx40RERHD//fcD0Lx5c0aOHMmJEycICQkhMTGR6tWrA5CYmEhISAihoaEkJiZm3se55ZdCk9xFRETEXBE8irBChQoEBASwadMmAH7++Wcuu+wyKlasSOPGjYmNjQVg06ZNBAQEEBYWRqNGjVi6dCkOh4M9e/awe/du6tSpc0nbV4IlIiIixY7NZmP69Om8+uqrpKSkcNlllzFt2jQAunfvzogRI2jVqhX+/v7ExMQA0KJFC7Zu3Urbtm0BGDNmTObEeLe378ptwLEIcR6+1ttNEBER8Sh7lb88ur0aMyd6bFu7n3zeY9sqSBoiFBEREbGYOlgiIiIiFtMcLBERETFXpCcTeYcSLBERERGLKcESERERc0qw3KYES0RERMRiSrBERETEnBIstynBEhEREbGYEiwREREx57J5uwVFjhIsEREREYspwRIRERFTNs3BcpsSLBERERGLKcESERERc0qw3KYES0RERMRiSrAuIH49THoH0tKhVjiMHgJlLsu6fsnXMGdR1uWTyXAkEVZ/CpUrZi2PGgYhlWH4Mx5ruiXyW//Hi+HTryA1FWrXgtEvgL+/5+u4VPmp39cXXnkD/vg/KBUID0bAIw95voZLld/nvkFbCA3Our53Z2jzgOfan1/5qf/VybD3QNZ1+w9BvZvhzXEea36+6fkvufu+WMvmcrmKdPDnPHyt5fd5/B9o0wPmzYAa1WDi23DqNIwclPv66RnQPQoiI6BT26zl730Msz6BiKZFq4OV3/pXfAdT3jVuH1QGnhkJda6DJ7p5tIxLlt/6o8eCjw+Meh4cTuj/EnRpD00aeLKKS5Pf2nfthadehK/nebTZlrFq3wf49XcYOBLmTYeqIQXedEvo+S86+769yl/W36mJmtNe99i2dkU957FtFSSPDRHu3r2bI0eOALBo0SJGjx7NsmXLPLV5t/ywEW68ztjBALq0gy9XwoW6ou99DJUqZH+D3fALrP0JOrUr+PZaLb/1f7EcenaC8kFgt8PLz0HbZp5puxXyW//2v6BdM+ON1t8PGteHFWs80/b8ym/tm7eBjx16DIR2vWDGbHA4PNJ0S1ix74ORfrw4Dl7sX3Q6V6DnvyTv+xdjc3nur7i46BDhrFmzmD59Og6Hg7CwMGrVqpX5d+2111KtWrWLbmT27NnMnTsXp9PJXXfdxaFDh3jggQf47LPP2LVrF/369bOkGKscTsj+phgaDMmnbJw67coWFQOc+AdmL4DP3stalnAUxk6DdyfCwi880mRL5bf+3fvOJlaDjcfi9pvg+b4eabol8lv/TddD7Aq4tQ6kpcE3a4yhg6Igv7VnOKBBXRj8FKSkQt9oY3ilR0ePND/f8lv/OZ99BcGV4YFGBdpcy+n5L7n7vljvok/9zJkziYmJ4aabbmLfvn389ddf/Pnnn3z33Xfs2LEDgGuuuYb58+df8D4+++wzli1bxtGjR2ndujU//vgjAQEBdOzYkQ4dOhS6DpbTmftyey5538Kl0PRuqFbVuJyeAYNegRejIKRSwbWxIOWnfjAeg3WbYMZYY97Vi2Nh8nswNKpg2mu1/NY/5GmIeQsefByCKxofOJu3FUxbrZbf2h9uk/Vvf3/o+TDM/azofMDmt/5z5iwyhomKGj3/uS8vCfv+RelM7m67aAerTJky3Hvvvfj6+hISEsLtt9+e7fr9+/dndrQuxOl04u/vz+WXX07v3r0JCAjIvM5RCPPjqqGw9fesy0eOQrmyLkqXyrlu3GoYOiDr8rY/4MAhmDDDuHz0uBGRp6YZE72LgvzUD8ak/vvvyZoY2qYZvDWn4NprtfzWn3zaSOzKBxmX3/0Yrrx40Fso5Lf22OVw3dVQ6yrjsstVtL7B57d+gN/+Mvb5ercUWDMLjJ7/krvvi/UuOgerT58+LFq06ILXV6tWjSZNmpjeR7NmzXjkkUdwOBxERRkxxh9//EHXrl2JiIhws8kFr2E92PIb7N5vXF7wBTRtmHO9f08aRwzdemPWsltvNI4mWfy+8deprTHJvah0riB/9QM0bwzL440hApcLVn1vzGsoKvJb/4JYmDbL+PfR4/Dpl9D6voJts1XyW/uOXUbtDofx/M9bDBHmbw+FSn7rB9i4Be68DWxF8Au/nv+Su++L9S763WL8+PGkp6fz/fffc88993D99ddTq1YtSpXKpUt/AQMHDmTjxo34+PhkLvP39ycqKorGjRtfWssLUKUKMCYanhkB6elwxeUwfqiRTg1/zeg4AezdD8GVwK8IfUPLi/zW36W98QbU4QnjSJobroEhhWsU2FR+6+/zCAwZA216Gh3Mfj2hzvWeruLS5Lf2fj1h9GRjgnN6BrS4Fzq29nAR+WDFvr9nP1xexbPttoqe/5K7719UMZp87ikXPU3Dvn37+OOPP/jzzz/5888/+eOPPzh48CDVqlVj+fLlnmrnBRXEaRpEREQKM0+fpiF88hse29bfz1zgvBhFzEWzlyuuuIIrrriCBx7IOlPc6dOn+esvzz65IiIi4iVKsNx2SefBKl26NLfccovFTREREREpHorZ7CERERGxWnE6Aain6MeeRURERCymBEtERETMKcFymxIsEREREYspwRIRERFzSrDcpgRLRERExGJKsERERMSUjiJ0nxIsEREREYspwRIRERFzriL46+VepgRLRERExGJKsERERMSc5mC5TQmWiIiIiMXUwRIRERGxmIYIRURExJRO0+A+JVgiIiIiFlOCJSIiIuaUYLlNCZaIiIiIxZRgiYiIiCnNwXKfEiwRERERiynBEhEREXNKsNymBEtERETEYkqwRERExJwSLLcpwRIRERGx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yd1tSrBERERELKYES0REREzZPPAjzMWNEiwRERERiynBEhEREXOag+U2JVgiIiIiFlOCJSIiIuYUYLlNCZaIiIiIxZRgiYiIiCmb5mC5TQmWiIiIiMWUYImIiIg5JVhuU4IlIiIiYjElWCIiImJOZ3J3mxIsEREREYspwRIRERFTOorQfUqwRERERCymDpaIiIiIxTREKCIiIuY0ROg2JVgiIiIiFlOCJVJEHXCc9HYTvOqRvoO83QSv8v/qJ283wWv+nljf203wup2efvkrwXKbEiwRERERiynBEhEREXM60ajblGCJiIiIWEwJloiIiJjSiUbdpwRLRERExGJKsERERMScEiy3KcESERERsZgSLBERETGnBMttSrBERERELKYES0RERMwpwXKbEiwRERERiynBEhEREXM6k7vblGCJiIiIWEwdLBERERGLaYhQRERETOmnctynBEtERETEYkqwRERExJwSLLcpwRIRERGxmBIsERERMedUguUuJVgiIiIiFlOCJSIiIuY0B8ttSrBERERELKYES0RERMwpwXKbEiwRERERiynBEhEREXNKsNymBEtERESKtSlTpjBt2rTMy8nJyTz33HO0b9+e9u3bs337dgDS0tIYPHgwERERREZGsnPnTgBcLhcTJkygRYsWtGzZkp9//vmi21QHS0RERMw5XZ77s9DJkycZOnQos2bNyrZ83LhxVK1alSVLljBo0CBefvllAObOnUupUqWIi4tj6NChREdHA7B8+XJ27tzJsmXLmDFjBtHR0WRkZJhuW0OEIiIiUmgkJSWRlJSUY3lQUBBBQUFu3deqVauoUaMGvXr1ylzmcrlYsWIFq1atAqBRo0ZUrVoVgPj4eAYOHAhAvXr1OHHiBAcPHmTNmjW0bNkSu91OzZo1CQsLY/PmzdSrV++C21YHS0RERMy5nB7b1Jw5c5g+fXqO5f379ycqKsqt+2rfvj1AtuHBY8eO4e/vz0cffcSKFSsICgpi6NChACQkJBAcHJy5bnBwMIcPHyYhIYGQkJAcy82ogyUiIiKFRo8ePYiMjMyx3Cy9iouLY9y4cdmWhYeHM3v27BzrOhwOjh49Srly5ViyZAk//PAD/fr1y0y0/stut+PKZZK/3W4+y0odLBERESk0LmUoMCIigoiIiDytW6FCBXx9fWndujUADRs25PTp0xw7doyQ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6eVWecayZcv44YcfaNeuHVOnTuXbb79l7Nix3m6Wx2zatIn169dnXna5XCVqLlblypWpX78+FStWJDAwkPvuu69EjVyIe9TBukQNGjRg/fr1HD9+nDNnzrBixQoaNWrk7WaJBxw6dIh+/foxceJEWrVq5e3meNz+/fsZNmwYaWlppKWlsWrVKm6//XZvN8sjPvjgA7788ktiY2MZMGAATZs2ZejQod5ulsecPHmSmJgYUlNTSU5OZvHixSXm4A6AJk2asHbtWpKSknA4HHz//ffUrl3b282SQqrkfPWwWGhoKM8++yyPPvoo6enpdOjQgZtuusnbzRIPeP/990lNTWX8+PGZyzp37kyXLl282CrPady4MVu2bKF9+/b4+PjQrFmzEtnRLImaNGmS+dw7nU66du3Krbfe6u1meczNN9/M448/TteuXUlPT6dhw4Y89NBD3m6WFFI2V26TiURERETkkmmIUERERMRi6mCJiIiIWEwdLBERERGLqYMlIiIiYjF1sEREREQspg6WiIiIiMXUwRIRERGxmDpYIuK2iIgIGjVqxI4dO7zdFBGRQkkdLBFx25dffkmNGjVYvny5t5siIlIoqYMlIm7z8fHh9ttvLzE/8iwi4i79FqGIuC0lJYWvvvoK/dKWiEjulGCJiNsmTZpEaGgo+/bt49SpU95ujohIoaMOloi4ZfPmzXz99ddMmzaNsmXL8tdff3m7SSIihY46WCKSZ6mpqbz44ou88sorlC9fnuuuu07zsEREcqEOlojk2ZQpU7j11lu59957Abjuuuv4448/vNsoEZFCSB0sEcmTrVu38vXXXzN06NDMZddff70SLBGRXNhcOgxIRERExFJKsEREREQspg6WiIiIiMXUwRIRERGxmDpYIiIiIhZTB0tERETEYupgiYiIiFhMHSwRERERi/0/fVEyGJnxF94AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl4AAAJjCAYAAADdxR/1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABjRElEQVR4nO3deZyVc//H8dc5M02LSmSm1VKWkLJliVvJ2qIN3bIka7jJnpIlS1GJpLqtRbKHNkoRlSVLuHXLTUQpbVNhtM5yzu+P66dF0zE1Z65pptfT4zx0rrNcn+91neV73t/vdU0kHo/HkSRJUpGLFncBkiRJOws7XpIkSSGx4yVJkhQSO16SJEkhseMlSZIUEjtekiRJIUkt7gKknVnv3r357LPPAJg7dy61atWiXLlyALz88ssb/v13Lr/8crp3785+++231fsMGjSIvffem3bt2hW67j917dqVTz/9lKlTp1K+fPmkPa8klVYRz+Ml7RhOOukkBg0aRIMGDYq7lAJZunQpbdu25dBDD+XEE0/k3HPPLe6SJGmH51CjtIMaPHgwl156Ka1bt+bmm29m+fLl/Otf/+Kcc87hpJNOolOnTqxYsQIIOm3//e9/+eSTT+jYsSPdunWjXbt2tGzZko8//hiAHj16MGzYMAAaNGjA4MGD6dixIyeddBLPPPMMAHl5edx///2ceuqpnHnmmdx111106tQp3/peeeUVGjduTPv27Xn22WfZ9DfcV199RYcOHTjjjDNo3749M2bMSLi8Xr16rFy5csPj/7z+ySef0KZNGzp27EibNm3Izs6md+/edOjQgZYtW9KiRQs+//xzAFavXs2tt97K6aefTsuWLXnooYdYs2YNRx11FD/99NOG57744ot55513krGLJGmb2fGSdmC//PILo0ePZsCAAbz55pscdthhvPzyy0yZMoVy5coxduzYLR4za9YsLrnkEsaMGcPZZ5/NkCFDtrhPdnY2u+22Gy+99BKPPPIIDz74IOvXr2fUqFHMnj2bN954g5deeokFCxbkW1dubi6vvPIKbdq04aSTTmLFihVMnz4dgJycHK6++mquvvpq3njjDe69917uu+8+srOz810ei8USboPvv/+eBx98kHHjxjF79myWLVvGyy+/zIQJE2jfvj1PPvkkAI888gjr169nwoQJjBkzhi+++IL//ve/tGvXjlGjRgHw888/89NPP9GsWbNt2g+SlCzO8ZJ2YIcddhipqcHbtHPnzsycOZOnn36aefPm8f3333PooYdu8ZiaNWty0EEHAXDwwQczevTofJ/75JNPBqB+/fpkZ2ezZs0apk2bRtu2bSlbtiwA55xzDiNHjtzisVOmTCEWi3HCCSeQmppKy5YtGTFiBE2bNmXOnDlEo1FOPPFEAA455BDGjx/P7Nmz813+d2rUqEGtWrUAOPzww9l11103dAo/+eQTdtllFwA++ugjbr31VlJSUkhJSeG5554DICMjgwsuuIAbbriBl19+mbPPPpuUlJS/Xa8kFQU7XtIOrEKFChv+/cADDzBr1izOOussjjnmGHJzc8lviuamE/IjkUi+9wE2dK4ikQgA8Xh8QyfvT9Fo/qH4iy++yLp16zjttNOAIEHLzMzk+++/JyUlZcNz/mnOnDlbXV63bt3NlmVnZ292fdNtMHXqVPr06cPFF1/MySefTN26dRk3bhwAqampmz3/4sWLKVeuHHXq1KFevXpMmTKF8ePHb0i/JKk4ONQolRAffPABnTt3pl27dlStWpWPPvqIvLy8pK6jadOmjBs3juzsbHJzc/NNy3766Sc+/fRTRo8ezbvvvsu7777LBx98QKNGjRgxYgR169YlEonw4YcfAjB79mw6d+681eWxWIzdd9+d//73vwC8/fbbW63vww8/pFmzZpx33nk0aNCAd955Z8M2aNy4MaNHjyYWi5Gdnc2111674YjR8847j/79+3PooYdSrVq1pG4zSdoWJl5SCXH11VfTv39//v3vf5OSksIRRxzBzz//nNR1nHnmmfz000+0a9eOChUqULt27S1OE/Hiiy9yyimnsNdee222/JprruGKK67gxhtvZPDgwdx3333079+fMmXKMHjwYNLS0ra6/Pbbb+eee+6hcuXKHHfccaSnp+dbX8eOHbn55ptp3bo1KSkpNGrUiMmTJxOLxbjmmmvo06cPbdu2JS8vj5YtW25I5Jo1a8btt99Ox44dk7q9JGlbeToJSRt88MEHrFixgrZt2wLBecbKli1Lt27dirmywvniiy+44447eOONN7YY7pSkMNnxkrTB0qVL6dGjBytWrCAvL48DDzyQu+66i0qVKhV3adute/fufPrpp/Tr14+jjz66uMuRtJOz4yVJkkq88ePH8+ijj5KTk8NF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\n", "text/plain": [ "
" ] }, "metadata": { "filenames": { - "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_61_10.png" + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter1_61_13.png" } }, "output_type": "display_data" @@ -3264,15 +3288,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "[1.95320466 0.26945878 4.72145114]\n", + "[1.95042842 0.23671948 4.75963006]\n", "Training R2\n", - "0.9972598270118292\n", + "0.9951052834261356\n", "Training MSE\n", - "0.0068740175620408865\n", + "0.009330116621524378\n", "Test R2\n", - "0.9981645034105093\n", + "0.9946376411631981\n", "Test MSE\n", - "0.005584729797915798\n" + "0.014653795785269241\n" ] } ], @@ -3376,13 +3400,13 @@ "output_type": "stream", "text": [ "Training R2\n", - "0.9999901489260536\n", + "0.9999867383482111\n", "Training MSE\n", - "3.593710335647101\n", + "6.594186465773493\n", "Test R2\n", - "0.999963138868375\n", + "0.9999026871593244\n", "Test MSE\n", - "27.494711856278172\n" + "6.7878553902416146\n" ] } ], @@ -4552,16 +4576,13 @@ "TrainError = np.zeros(maxdegree)\n", "polydegree = np.zeros(maxdegree)\n", "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", - "scaler = StandardScaler()\n", - "scaler.fit(x_train)\n", - "x_train_scaled = scaler.transform(x_train)\n", - "x_test_scaled = scaler.transform(x_test)\n", + "\n", "\n", "for degree in range(maxdegree):\n", " model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", - " clf = model.fit(x_train_scaled,y_train)\n", - " y_fit = clf.predict(x_train_scaled)\n", - " y_pred = clf.predict(x_test_scaled) \n", + " clf = model.fit(x_train,y_train)\n", + " y_fit = clf.predict(x_train)\n", + " y_pred = clf.predict(x_test) \n", " polydegree[degree] = degree\n", " TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n", " TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) )\n", diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1.py b/doc/LectureNotes/_build/jupyter_execute/chapter1.py index be4c4230e..e0298542b 100644 --- a/doc/LectureNotes/_build/jupyter_execute/chapter1.py +++ b/doc/LectureNotes/_build/jupyter_execute/chapter1.py @@ -2120,16 +2120,13 @@ TestError = np.zeros(maxdegree) TrainError = np.zeros(maxdegree) polydegree = np.zeros(maxdegree) x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2) -scaler = StandardScaler() -scaler.fit(x_train) -x_train_scaled = scaler.transform(x_train) -x_test_scaled = scaler.transform(x_test) + for degree in range(maxdegree): model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False)) - clf = model.fit(x_train_scaled,y_train) - y_fit = clf.predict(x_train_scaled) - y_pred = clf.predict(x_test_scaled) + clf = model.fit(x_train,y_train) + y_fit = clf.predict(x_train) + y_pred = clf.predict(x_test) polydegree[degree] = degree TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) ) TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) ) diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb b/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb index e0377854a..6f379efd6 100644 --- a/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/chapter10.ipynb @@ -2400,7 +2400,13 @@ "Learning rate = 10.0\n", "Lambda = 0.01\n", "Accuracy score on test set: 0.08888888888888889\n", - "\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "Learning rate = 10.0\n", "Lambda = 0.1\n", "Accuracy score on test set: 0.10555555555555556\n", diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_11_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_11_0.png index a447113fcad88b5522fb5dfb55623768980c539a..da4825958cb2f81c01f48187b197fe746aaec430 100644 GIT binary patch literal 6560 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 F{tuR=xk~^5 literal 6389 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 BTQL9t diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_13_1.png index feeef644979d9f39740ff48595865cc4d96f5ef2..16904dc91cd5c6115bbf8328369a1842463a8863 100644 GIT binary patch literal 9334 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 XuD0&>4k43r1_&_HH$&81bxZg^u~lVI literal 9608 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 h{~uFB|0jXe)9QF?KUU)Rb=p)Eps!T=E zj!HHrjxGlF#(*CNj<%LIj+W*>$(@bu9n5X4zcNC<7|6{W9c>+Wn3$~op8uUtWrjw zQW)dOVu&VP`AnIg7_DYWy-l6`bwT~ylo7J z%EVKU@;F61N&gl_slJcsCsMSyK_4h}06wLq4AW&=4U+gGw0S>=Q`kWm1cuf8$6=w6 zwK6SEdj|(f9kjf-P+E%Wfn|XoBQ*b)sI0=lCa|K4irBYrFgrUt(Tq|n-(_X<9rnhl zsHw%8X{3tYhb%#K<>iIM#SvGVokT<_bW$4)!Z*$~dT?-X{nSmF0Lm}#9t0q;H zbajtzyZ^2-qteUEOJpG|v#X6134<8YPh^v8I+2b>!1{~6qBX{*{XTzf-tllQLL>+y zt=@C4RHOCf;ZQ(t*`$WW7SgHo>U_F37K}v+SZD)tLPwiyS&P%+3iP?@AI%vWHlzn> z%y1Nnr?3Qq%9{dFus<=|tnmTnD)c70{E@h~!oL!Fw$m!*v;Dh^i^I9NxUjI&s-2$1^?tc$&}&bvG8{-> z@|xhkJzD}*q`AK&c02_*jB^JW^aMs{WMFn0M)CJ6$?+oyd3gyK_J59&ob+$#()U=o&@St0ZG{;G9D zg87g8(b2LiNATp(={5hyA0Vqyu-=~aVl_1pr}g&ryx!i++{WW!Of2hfwY2j_kXpQba~mLQoN1ZHNkiv zKly=6n-22-$UZ;KR(Pp^)!Z_L^eSnJ)8={LVt2K*6FL`O9WN(} zh2goaBqk-Pm(=StOf-VkM2?*c<3i!bn!tAFefUZW3SCEwHF8$Vl?HJ1s-+Ml!8;hO zddsZrY`+|dsA|W9Db0#BLGPEMjGiFOiaI7rO8@aR-pg^`Q-HjJ!Z&ks^PJ&?=;$u! zOrGBSBS-X`x0AQI?X9q=>*H~QMzs+NKlmosX1!hJ4@bn!@$z(@G=6^+nOuk0Gf>cr z&mR%J_BQFwzOAY*hm(~izQ?1QtJC!iEJ|^xP5Fw)mwCUwELd_Nq5(6} zi=_e-ajw*E6M=>lI*9i6_A;w|JoVPA!;7XFBv~K&1Up0G=qYBc^I640=9Z_AZXko0yZG-jK z;9#t1hIt39Xj3sNJyDL}K}cqTDs5hOQFF(`-PYVhoO2hiOK<_rS>Emop{?6$1jQ6W zBhKBp)g`Ww&3wmD=R03~1t^5b(#Hf+6nQ%5w_h0tP5GHU+>}mWH@_ruvAwf*e5Slw15j8 zOSqazM^V&y>hp>}7!biy6T!mWpOkuZbR;B;`ymLEOn`mW`tj!YV5VrgXfHlK{#%o{ ziVCh$foz`3>DrsIZ}bFRZUm9dJ*Gfc&z+e2&!0adZMSPgarU&c+r4M{)HY8=O}FsP zaIi*;XiYt5&3XI2=a_-}v*2M15PoE_YC>(&jiNx+38^eDay z=8^t zP&;}98o=w_fFO{=5(xF9?LEO)Zj7Luxh5%TX*Z~qyPY)cnXR>Q1CE#K44>}Kg~qPh z0bzJwes1=L6r?k0RR4lbY@BN=T#rAjWj%Vj_?mgl+vlM*2pUCXMm+FhB zQP-wiAS`tc9n|U!5K0Kf0YniR>fYGjdHc}&dSv1>^3&wCzIq|wpoPF8b-%vYzR#;G zq(l&WUwnG^Rofo)1R18ey& z?ETCJ-S9701%ht;auvF5cPA~UTwYI&14}Jnrrd{ooSQ3c+F413%0}_ZgDW_g{kbwC z(0n<9K2-l6P*ebflk%rPkx4;a9l0}_QevUTRIY43KR=(u&Vyhp72ppDqj1L7L)4`4awM zKzYjvPb4w7@OryvGPlESQ9#Y()jy`7)=X6)Uqa(|Q zs{@fYNaA%qD$;zqI+!Nlb!MOx56=_{TH5Mtc0L}iH0WvE45d$E2hEw6aPvQ%_2A&+ zPgm#(LNTec+IU3x3WFvuJ6`sFS@htsMEPi%);nIYIArqw&lmoSNMzypYJ6sIobUNh z@DzHuIUezWfpdL0C;&xBUK>G8p!I(Dj{#klBHgE7u5HS4Y>o4j)YJj3t$Z9dYonWe zVfSY}m~Kz!1Badwh%R|E<`m3_xri=gbymv>i#4WS9d>2HS&r7){#;H7WHg+M2YZTuYNiJjdOA>uN9KZWj=Z3Ak zy1FFPR5V&$S%!v&juxu?|5!JNtgL9~%Vms1iT zLt{ok!sN){Afz`0yFhpE7air)5<425;-Wsd)_$4u zhvK? zfC*>mz>OB@)aqo;q^yMJ>H#X*IH?pop}&PI)Yv}!8Qlzakn7)zQ@m?Qk&Fl#DU*W>iW&mE1Zzljs44Xu0 z$Vf4~kX*2mk;4(JS=c9kGX3p4t{gA7ibzOJ9fbxA_V)W)f)m|$rU1%mi_tJE$ASVMSK?^Be zB!i=rC6az@qR-pR0FzxKe6dhuoBgTZYi?*hrb9bhJ0mp-_!$<0RS=N}6*pVkSYTE? z5ma)kS@#g<9L=a9Zw@7Kv$eeoY_Km=DgTvb{19L-(FVO&y5Zx~9v@`b8}H zoRu@z#1Pa{u_`cJtS`Qwk_JaFxbVOzI+ zGas=dof#kOh^(j)ulPfQ_{Y`teWb{!cESX@2#>=tWc*`OUxEr({dCqDrDU7C>S8Z0Ax zwP-HD6(&Dm7N$-N7529CL?GtQQmvrhsYdTc zoSc3YE7INc%1f2 z$@z*yrJ;mmdD)xAf`4Z2jm|v}xa}WDpq)+zzBX-#Ph%$W;-9qP>mrW{c|p_Iq6O?7 ze$&W!6}x%CxxcK`A*MEjqS<3#W)et#y^;U~ThI|}e+_t%#IWv5$v{UdHSEb;&%i7E z?fhp;c#_c&>9@(cmf}IWNH7K>WAgJQ1Hc5BNB*wEH+y@bb{cd2XWK0=6ULFf{w$rw>y`34mxRQg zS+$;z5O2%B>A&m$XP}w>suu+QwZ@j;zqx+%+|Cm#Iwei^^NJU*#|w8W>pSsqWH+$y zE|l|E+01lLBe4faFMf+;e57^pa-%fQWjTCkXOk=aDt{0yp})qLBtT-F7GAd^X7(Sa zZ%3B>0a0g3*DG)P^{i5sJb!7hRA!^o!cfr)D<^>BvW9{w0Iauv8(Rc;GQQL(<>C%L zNJ}@C{AWVr{O8#2{O8^M#Kx5L#{FIwzY6xx6e!sAMbcqd}>_C4oo2teJ z>MoxT=ep|VyBAG+x&wa4;mlS4X9kfp|1KI$Ca_4gYkeKOe~-T&b`&|o9hB?X_Tm0* zX7{-JSZjuLbMXckxTIZ4Lo8Cwd|uwUaYGdqS%xJ>CaWB&Cgvj`XFR-aOmF23EMH3yz~3pMq{5iGzKSBbS?bw>;}~%Ip!J+lT(hfHv@kKW1s1%&)ga z36Nm6Sj9?LdhLaR&`A~e_i01xV zTt(FKT6cn6(SNlK2HhEHee~YHV9jxs3mPwt-%4j{jU%`!Ak%M?M)R`$Q!B41-aLk?JrR++) zfJ+~aPC`gQf6_2uq$n=biKP|sU-6R&-^KVRuLX*zAl}h>4nkg>GN13O8}X~Q^Ezi| zJy>4~csoER6jLaT_=7C{S8$e{5uF*n1pP_6LM+U*Km=$~Cb{4Y;S$Vf2_#)K=i@XZ z2tlzna6nPj@1P+v8Am%L&kKZ4N%#)0C`yGTiEsml4;QBWxCc-}az%&2Xz=sEaO3mr zY%WK``OsFVN+Es*77k zGJ!FLxm_d&|2_B|eCAUkG{u_S$(70b7fTY3@%H+&;gNi+p%b|%BzjNOvt&Oec8~{mxN;N`s?r1M>Tcy0#H@+w@-i?-*wmy zyl9Woliy58S*cP*`Gbi7f?jf-)5B9&=K~C{nCSqp#BK3nl{t1e0i3ycr6aB5(ZbnK z@#W=Kl$Kymt9}E}u-pBc+*?V(+S)odEGy2U`=!NP(50g);obP)Zr`%KWOdWO_T~C6 zOmAe4Kk=alvn4Os0nx#wEdATAO9hn5(D|=HEpO#fl@zX}cJs6WtsLcu*SWI~U+Z~Z z@Sds|7A)duO^~M?Tb~7?acNJNzAa_bP3DT5F)6QX1SR4wloXeevYMvhPTF%Mym@Mu zQp1GXdH!GYZ4}|xo2Twr84oA+Wb-js&nafjyypDV)tUj+qrALIBb2LSqE`E$kT)W8 zHgoLI?rOA;cmcoA;kiD^Y7M@p{{X)$%aiE*C8msI*7tdVr9^Gi2d0bO0r&eV+kp``-2fZyX=*5Py=QTST&_?YuTo(f4V2A>;Q~}d2^pSDgH)( zT>ss0%UMp|3GBDe4L%>Od$qQPhE#Zs-S!!`a(xW)O4HQjy|^sv^m+pFEy6iRg$ygl zRJ_p{zXI!wOKDY(cFg7qc6-5xhD7CsCaA|)F1n=RTN8}B@oU3H*V{C}g3W397D-q+ z#f|BTSZW)>q0i(STU=YNcHu*_a)Hi8G_CnUxI zeLF0p>>|zPHt6PB4}a6>BsF}`4gC?ur-`wh5}T;AhI6>a%~XuJ$RB?o-S5f4`a=cdbBC)T3B5D%Ce!@2>59-i!!~GM)1i+IWP&cwb14IQ zEDTU>&gGgwZSP9O{uH-YF7l=wYbgCX$w(ZCDMPw{Zfp-H`R2MSaJJ?2^#Q2u$@);TM)&LqP{mC{lyIVKY;|drDv!DuXJy< z)sxS5F?q$o&IU9f&D0ga*?qR58p%Jd<}(e=Q+afL;k(?Z#rF((US7C*KMUmR+TnFH z4#wNNJ(xFM$~HdP-<^7A8IKI&v7x=qK^A|bFYQ@j$JYK->+tTj|C#S8rzZKLCtV*+ zCJnXY9zC24^RyMNs3@AzLfy=UAaCY?qP5Y%P-Q9Y>7uO8qxPOWD*U)7S7EiR$o=yV zzb1!`@)k(bUMT`+O0bUw6q}_)@j?bUuomekdc<<;f*J6lNy;;lyXZ<4>ClETU==U< zV8eJh#ogllTh=RK9}NYa5pH5Xmj#sWjR$;A_u0#^QS>E&l^fxMdzuG2;4uRhP-PGj z2o2rgq;)2sv|#g+s8d(*awUQArZ3G?MbW@?Ds`4&(fzle_G(lJWs8WxM{URGS?}k( zL`YUpX?$D?uw$B)V(LR9APHGNya=97%!t@F>#&l$)4o)!1}ZU=3)8mIirGMKWf6Zs zswC-dY2K2Ct3Nyg4U+OL&0tR!G;`4Id3MrrmP01ioP>ofIo8H258p~haVWY?jrARF ziNNrtC6XK9`c(2hdWa&1o}x)iObiAGTKZNtNPX?q3-~;IKXk;j(0a?|-CKb0~qI5ftoeZttOZa?18d#%nt`tc(mo_?eC($Bt39Z%Ah34j{T zqSutp)Qx(BB$f;3b7*RyFQzPopdzwLT(T!f;Jxy2U?cSjewEe*FU<%lkxNl=NbrO! zQK4U!5Iw8D3%D_XohG}(y<;n(*AEyF`reWVKGP|Izd z9Il*61VL9ssFAE*bNI?UsiS}RQa_SR8w}&PLSPy<5b1HJ>#ZcMsqqk&w009ai72XJ zfXI9(GDwVA(IlO~d51jZT4XiZ)n%ur!bzrO-NA^O4ywH52n0bg*$g(rof*@KK=Wxx zSpzvWHQOy#4lH4>QTPy?J>L-_$)H=j;zyiv?!Gpig6MT(yj`z}8E9N9y&-6If0SP$ z6#(Ez)Ft$T?~U&kC;aqos{IQR`BA}Wvl0@8bh9(RK(cl=^XGO1{Dx@WdhM|tUbSfo zZPl(Db6rLrb;H9IYAPBIz2O)N{M8T30af!JEy&Y+M_t(t&~2gak)Sm$jDn5VwwC0# z`|RL&FNS-wj9PD4p+U=PsdHX0h_O;+^hXCI&z3@fK-+Zm@w`f7K}<4|SZxA5Vm)9m#x>YYs{!11xx zV|Eawh(URxrtfnX(#G@cVMaNpx-m)@#p*`>8wTq8#dR+Z4(&*Or>?Ok={8nD z(%%=eh4`?;ER;0_mN9H-AF?U`ANkFyjLWKn*G#3|Cyv#&!?uiCmsNE?6;qzBFu;%x22IT0P}@8<}N?(7~BEon$d^hD^`m`j;C7#`WU6q@_`CsK29B<$pNqYIKa$iJQZh zx3n)(VKsTqgRFi-O-KxZK@)yn2mgSgpYLrWuG?ayeM_7D(!u@~=W-tOczzb>QmNyW z%+56WZx*_VCJKV4N0n|+I3!iCO;@EIyPL1$Kj6HURc{4aHxH$J{>0BeB^FNf_BJ2) zYzbc;CY?<@n`1u;4sPd-4-7s{VwMH4>v~LT4)V+;c868po3VY#i9;uA)qhB-uhOF1}NJH_m>g7xT2BFyUTN&X*oCZi)rG#!$GX!#Vz*Tqfjj+JhE zOf$NU8+sfjzG-Uah5`8$ILIQP1`&$%QFCg1{gA*g>9Nnc+O~lqGC_YgB^0);=`~NCWTfoDa7AAy}nNmaA`-jcWNM97Q^pNu?+8 zCs3G15I)Be5Dz8xp-3CDD6UOwH*lXD4NB$U(N|3iom^_X^89^Kui-p6%RJE%ESDMm3CxEha_IejDAXLSaw+8?6?Q4)gz^ z|DlFi+7&ffm>9Q9_HcDS4bk2?yt{iw(%M(34Vo>{%^iEtZv00FB51`R@l!hyk2_@h zQ8-yE04+2cjfpGz&xd`fz2-01ctVVcHb9qb-bsMSk-e9Epu)gwzzCGTa(Mm1EGL={n1f*of)Gme zVcrVi9Ss!_UUqHlES*-Y4^W<3XTNfS?jNRKbBw#J?+)ZP4hlXJDivovRfd2386M(D zFgP^C($v%x%^0W{-Eil(R5xC_u>sO9b2z5_!nhl4=>2m?ZQ1Ri#GCn{vA+s!&z8A4VmDI1Mut#U`fu}r&9eqr+-Xw&&! z{SkxiyjT8+-=Krxj!each_ivt4uuQygIhU9!{2h z3AjJFop1x$Xo5LOw}iR*8$V}%xI=``JjC)JRSvT@l5+(y>HlIPp_ z=|&HJ72JDe*bJJ_S}EN01`Jf%8Aj;hiUnbl-xQ!o9IBe`C*>5{nT83o2Sqo0Je!^E zQH`hjOHOkodz?Kt6smBfrO(0%`39|_|L+~ck8L1}%L1USDzqBQZp`H6NHR#mijUnb`5VR-5G+t=6r6(+>CMq}pao+THURkpjr z*1Bx5M7P#itxE4)nFCC6e6##NQs2NPT%_H+z1AJ8N*P$twQAPVWu(O$T=+|n?}le5 zQKu{1^kg?RR3z!qJ({l#9x<+KgXuW~ao#iTSYl7(^T~nY&w3~ zJrg~eTJ`%0%g}ZE93`A9PHvVggX(@cZ7|sXH>B`&WvvnE@OGl`9>DVyf6WvJN)J>@ z^`v=QT1__R4K%ecFTi709rxZ1dNzDXJ18~0(a$gH2e+j#P^cujIOYiIbth?#Qf5`pN$)YdC9P;AWVn!oG4l-et&j*W9bx33q2q ziR)=ZFZOxiRMLEvC({9}T!J-kQf3_Lo8VdcJWxM#VuzihgJf7I*uu#ptU~J&k$TBj zcv;4o**Z0Tk!%ygerdDq(UKlpL_plK#mK{dA!N4a6EfMPLih#ow5A=a7^*(|SGfqE zoEh*L#=N{^18aO9y20$c+SGX-J~wzB1EXPhw|Dh+%4+FZRe)c$PoFu00 zAS>1)1;rn+ZGrilIf`m^QRhZ4lLs(*UU#>ae^w&*gxtty@S!o5Z~j=v6z2 zzfb%{hkw7(1)tvw%*1AMa$6=Izsc9BaJk~ew+k*5#qJ$4+f=$2f2XqwOa zK>o**pj^j0QxlIoCRU`mbO8F#_8=)X6e%@HtOGo#bZq;d-U|$kClq9Mc&LmNU|gT^ec*?5}qmSMS(M%G=VqE7Vx;iY(pH z_{5>HnClBD3Geac@6-3cATh!353}YFkbcAgTZ@0UWE9uzg%)EveF@EV2iftekV4)iEWj9aJ8hqQs+gn@^{^p0c4 zy(Z((f$T_JZstmgVi$C?voAs6-A0_Doqc_;G1no-VT(wf!mP z0`o&-%Clu&sSsC zlG;C@3bijaVP8&4#I?SXrFhn-n&eSaNx>5FruPj?e^RhtjK6Ae1#V4PON4DxsXrkS z)75>NLROW-^dDJZi0K^<)aThbQQ2-(ZvqsIen-m4qgp7$Dc+uvee@AYbu3@5VQ z@^6&p_c_u8$UHGX(8ep_%_Cp6@OQp8?1jG_Dm+)SqxkU{U@?B-dnz%jhIcFL8|ORJ4ySUUyPg@=QHu0x^*qWMBFC6W8-ctHeV;nFx&}e{1a$KQon&VyZZ=2Z%HK$x`LN4>pMgIxQm; zuBhDI@k&)4k#o^^ab+>UVBGXp-D^u_wEi+_(wlzDRRPy=%275rkj+Il{Wk0o|LyeR z7S2_}f9q^6R?`cw{zOQ;1UI{`N|JXr={9G0`{c=Gk@F%G1Q`JdHvz=skZLN!dJC7u z|JH`1Mn2>t*xDc?tizexu|RhwFUxqjnyTKnv*+T+$LM#4oc&N$n{(y~OXHvDLKBQ) z+{2(M0OOgu43bao8gx(pt8ScN-yDA~aVpIxAI8uGMK9?br0D0r%O*$1Qptwch&r6m zF&iUo)Y#d&vIh$t5;sCtm%InBf4q}-0k0D74dx~}-#(ux; zhqq{HJs*2~?A=*K`o+wvk7}H+=BvmO_kQiU>b6<>>1)@&-SSnHy(&ZQ-vM;{zgUyR zzGa4sL3O8(r)T@1_Iz{+LgKZF@H|;Ymybb|XxUn*jgL7^*`le8uC7Skt}a$$dgiEs z`?GxgQ|r+>?utl8s=)JVR9)gV?)XYlAo$DUN($(4`LMTbvMS~Au%~rjI2M0|EFUWu zz4)JFL=mmqa2Z}%Ev&v%ai6YYO~o+c=Vk-aW04^a-n>UvgN%>QLIg#5)SaI!eJB_E zIW=?^?M(178bAR#4zOb_YEwDa0uP@~w?k*H7rZW-wKSrHcbn=Q#$L94CBBrVH3R19 z_^sa=%#0Nv^7Q0#Y8uv=2?#=+ixXiMW_wVRK6nHELn)$|p1Z(|RqoeLyU)Y|-^3;f zWsjtDHibZzNU6DaDt|ZCQ7W-urhG4EOpYv8L()tg^BXGb76o^BAX*lJZJuJeO++Sl^;rqTMm%HO5z5Wa*;o0(L2 zmS@kX9t|CJx+EWSr^J8LaCZ2>!!@)oFSR%7e`VR882Mdnp%rfI*(=4W%EfUD5C5$khgQ%D+Ooz=)#Wm7ZVRB$T; zaZafEobt14RgbKoB{K~x?zOK07aZUJ_W$K;3B9_>tF>|aRX&En%w?xFW+9R;Nl{Cx zt@Kr(8jqN|E~=<8oI}+jll=E;FB26GTlZ(G|hh7|8(AR%L7wM?Vq!PI#rKzSQWICPWd&c zIy)_ntRl0zmLNXwdt4%wg2GaG@sucW9*0Z_Idx!fEJln}u_R*=MP6-c?G!8Pu+(>Z zcVv#vs$FxO{Dxgg_jj^Jxr$2^1Yl{RTEAQw-XV>6quMW7Ru(K)u_cldJR=Ts z?g1AGDP}TqM7IElRY$`bvoG6>+XH_~fwG4?llDAP!~7yS3p(=)(u6#RxP^$R@;mUD zj;LklWhb=|Or@si+Sh(dlqIp1%fS=&xn5;ZrL>bQL1#jERicvd2fGEus^t<}Adw1+ zITx|YLIgTkn9jL{1c{@V3OA@Hay8jUMA256+m`EtEzh5=LPvdKzn-q<)zG zNwR`f{TEL-F8D2(Zso-;jGuDkS>3Y2@o-uyuqY}bRVqA{D%{@-?PKJPB@0;>iixS3 zU)U=Osq(7*YC~D4=;vdsE2!Fh8*;l72CL#6Wpi^CVp4?doDp}5#tNmRdy~_Jgqve? z(RjyLkEt5y3dH^>YUZV823aw+?K}pqUzT3-GlXt1!cb+&R$|k;&f>pc0Zo2+R6j_% zKbQkWOh5RT@o!%()isDWYQCccBd5QdDc3l5yqJF|J#>G-yYaGVnCC97Mu-VTsb#5d zM-An0>@StiGY*8g?@!VJP_SYGk>Hscy}jUw*13fqo92X3ezLxwZ+Opw63i0(-HD$w z_`5hWGAg=5RWNBTE67F|qCp^Qv6D{V+|uINz+$I+N2SB&Mt zv?Z}kdVlmb9+%<=W?I-Gzwazmxr8x_$86F?6x3yYGgtOgQ^S%!iZZRb6_)I4)9Jye zo$Zo^9rbh}ssLFt)q?ZcARh=R7k|F;hqB9urKEqfJ0C)oh08FpIMHWq{a0Oq`}hAq zGqZu?Nw~$3H5A(lR6M|5GZ{HWtnUy&r^VUo2{-go(sDM1#MJQ{yksS8O|UP#h~HsV z@V5`)xC?Up4L8)m(@W_-*9&!mS?(E!RSU(hzEnKlD+xYW=I`2N$HM=?*2?~7Df>Z= z-{tpjcq*8&6)z6|U!o$R$}z&mTc>INCKH_mf31icf6AY;bg+>x#ppb7+w3XfPaXN; zR4HZd;{Jt5R<2>@nQlGF2U5gwbPU(6wZ^A?zZ|&sPEQv<9N`Zfzn*8^rGBDHzz<3L z6AF8N+a{J>jQPt9*gZnSlXJ&bJ#H792on~{tWSHo^p(wdSpRP9i%!Hg&CNO*2rUew ziZB!)*|q1Q{_wgdmKV=mc0hxM>%VQ<)M)$wd;(E38ef84KSnXh{*wY!)t z-JXuLy>UlZsIxpMtqs{Ow#*fDrxHgynKKVkE;P-eWiBImA za?vI--Ts>Iar(FRR4@}9m7EIgd!t?NQ-pTR<;6w4Z8a(rhc-hPDH6j5ow0`Sql-vy zIPs(J%b)c^BpZ-%zEXKK-s*)7;$bb4Q%H+#BSq7g7P2|MS`X-arVtn1%nwUtx@Dx; z(&=~|qqs0>90Ae^JgvImMjKO9k6$-<8&eGvp#D!c9n+(jXu4AyCy}U8<-}*se$g?( z(gR-?SpG`9TrJG2B8Sn{PKNm{BH#OHMi=1eGX?qV^2g zmxY0qp$xTrTV;KVT_^GUmRP45Ry1=0i!xy=v{=e&7!GoyZHMOxY6{QV9yuk2U_v`q zE^P4_dp(+Nd42aHSo#3{N!`qeEXp2DE^xKB{MIN(?+ovShk=&_wz=sd{V)|oBZ)%v zSO<`irkpR0U`_Rw*apLJ7H0_X?SJX}H|d|8ympCojSqT8zENOuOg zBOe$kVgOI*Nx%*0ITi|4i(TPT8_SH4LFie9oM;B+q!sv9lW@1CI)O`VtOL_OJ>2Z{Yi%XNeqTE zoY3!5j-Zlomh;N$W+w03Q~lW`=s}TEwz2ZJm4dFssm~;U!k$CbmI)O^OS#7n;ZUnc zzVw0K|18kPI#t%Es~ObMW%12>uK4-u->MhmsbxU@+G3w*=1e>lj&2d%BAo@rX&-&gKuB(D#;4FADlT* zl3-=*9@_*@-EBBHc5QSE$e<@ixNxk@37`)C?X9)-fA_k^g^EB+V2X4YZ!H4<-2@B$ c;FWA2(uelzH+m`bFdpE$n5<~Iu)g2_0z-s>ng9R* literal 14971 zcmZ|$1yqz@)HaL{3|)eBcXxM+C?z@)Qc{96NOwsosdR@7ox;#DfPjQFLzf7H#Ly-6 zzxln-^REB*t@SNp2Ijuc+4qTSU;Enoe0urf86h4G9tZ>?RDZ4t0fErGf%lg=sWp;0-1tos{S|}_o^r#+mL0yPlBh&;v2~l`Fc&6bcr%AbtHf(w~S^q`lhDZK|u=Sgt z=?jfAce+JcFn0F&u(zXZ9K=2hVxI%CH?^=R7=H8x&OmqUPR;`2duG1={IWUjXxWWz ziNCyecFh@U0o)tH8JduiM)Jf#UfUt33O4#e+fy3b42PLz_H)+Swta0X^{T-V8H!?N z-NAJXTVW!S5hR<4PKVJdwV#HXL$J{+1f&}~w?v4J$t5vAiFBROGpKWzt;SkS%E%a; z`1VX^@$P)l<>c=Apv@=Bfg|ZtC>R?Nw7Iz{Z21ERbbNe#dD#1?LzbFZ)jZ`-NFz-G zY{rK{IiTaondq9O`6oy@B{4P~CIyI*2YMGToWDSN$qd>jkggJ+HT9<7=#R5H-ej70~s;9Vw72jj|)Szmhj}THjnkXmlcG6)S+i5xWzU;n2ERi|x(#cer(R zb)I2v`uY@{UpwdUv6|VZgiaQxjyI``<9?Elx7xWh&)?#>B<4R`>^ae`|8!J&}C=EeJYBW z2w*zU$E%Db6>d+b7G^ngaz~Q6U%!y8CT0mY@(9;Vi)bTveyX}&YwNyS)r1HN-m4qf zY1h}+@9+MI-GXY}1#LvK7??n#Ns28GX9Nz_B0a}YistYV(p6MM&A>gR6(;Bv(={a zoq@6`DJgWaUa@^Kl(W7E+0yRzU5^+Q+D9Eeefm^XQgSl?J`e4sp`p63Z;OGGrj}Mw zW#vdz{bQAIt@IKN4Oj0c+$vE76OwOOD~%mbo)=( zYwryfA&oAwgPon7fJ!K2)+~5=GXy!3A?mvkCrKq_4q{b{T{~RweG7AfhoGfvaeV*& z{hg9t^mFp9vacEr^plS~*kxsnXU!_D2IA?n1JCCz>|dQG<<$@?H@d!CF8j*e3swMC zBpcPhM!n85PnRNyS*UvC^uDVTl;Sa~CXoWoOuAG4ztQUP!*zJ-uHN5DOG_J(%3kBGNz~leCGT66Q{jdlTlUrue;mJ+`w}~B6^u0h$`bx2?@xb zUswa~Z!Z++d1Ym@_8iluOe2VYC7v#IxB{E*1F*e5pjwc}*Q@uPFR0BzfHC}%mWB<- zW(T*tRpmE4^l-u9Z5O|yVxC@wzJ*AJ&)pT$6jg6EK(sZI(L0pF`zbEY`uC4dBbnkc zvIp(;UU^GPCL$stwo}D%vra#Uhc}`agUrWr=Y?Jc#`kM066RBkGdmv7qUg?8=8oJp_a@FTnh?_FRV7JxMV@EN60M5|fH zECY5isLW{hTl~}SX4uu}L!oUA2-+KG=p*?(b2|XS_N~03!7xNDtzQd z0|O)-bkjV%(&k>a7O8>P<|h!2!=#fo6;sR5$tivD7fyaA$pdW#rJ-HtNSJ-9bGFwp zM?ciL&!TD(5fz=U?Y>-uS@dEB-Cey0sm0OswfmlMadCn2o14=Eug_}~OwOA@;Bco+T3pF(?0E{<>cx(RbH?1l-iI*te9VH|uCy&>dDFXW# zKy~%RAaoTmu(-HoKZ9gvnh_H{;7fRkY0Z0;Qy9P12!py1*vkUV84@{ z6fr|jf+2Y6uKBU<@?me0ztc&D{4U8w522VdUeh%$bKx6|WR~dM@67D^pirG4U3y~jrK+_x6F?<^J<(}# zkhXd4A3G=l&ng{^`kV8MI3{Qo8WR%1S;j)RJLa^Z>BBg)+3> zSz8|gtfF-p=#_&+NL!dpj^~QjaejWj^^WOVauK1x)zxPkhxMPWA9J{SJ9G+Ee}45N zOu326%>{_EPfym7w0Fl1PWr$K)x%_L^*#JUSq^=xPLiYWqd!|wY~hz1lc)7tzb>=e zm>4WHcUm6Ty=EqT{FsY}hecYNdZ3Vr1=N5bBPSnB)|v?L71f?t{`H(hD4|1`gm!6a zYHDz7tfaP9Xi58%3@$D%;D)2xs8v)I{zlaekwGzCWJw z*C+${s(y)64Hwjl2Py&ZE5lVc2#*2xSrTODmPN z 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 aupfvnszKQh)kFwOYkI?EeSgjc&;R diff --git a/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png b/doc/LectureNotes/_build/jupyter_execute/chapter1_3_0.png index 3c1c5f710cbac16537b56c70bb8c587b8aa42027..e3b21a8a95ae36389a3fa40a018059011f42e954 100644 GIT binary patch literal 10146 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 literal 10096 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
  • U>ugU5Z}z6`|lR@2_M;Mny+A-=ot1db*ruIKjHuDF(KN z+`GD9S;oR8SvVXvWaHurk6;jY>f&o-ITx^MX^DtuQ5Z8eH8Xn`8(ZG8*AdI9QSG$o z!?fQo&*ZpK+@_wTNP(d&jc}RrTIVXLUP}CU)3r9{Bx3li#TA8Az7eZ_EtUA5cp=nd zP5>GItp50F`57d=fTv>NdEXBq6U|{C)Lg63u%7I2f&RX4SBY7tusH24Fq^=rpm-7< zq&A1%v2qVqCaMKC$1A5zPJaw=UzsMmxBW?;cYGJU!G+zGeWR<9uOsxVC%Jm|3>@Oy zw{Q2|EES9mI2EEUzX>{-J`&xknor<+io>Z@V7fV0{vcK2{q={5ES{V!!6D!ZZ}fkD zl-EiuGSL`BWpH0vnZ!KJSD2Vi_~us0-lMtR`Nf5^lz1|masg*2L=V?S`=PPla9sZG zQ;YQ*B=ugPhwsd(X0RwIvde`q(vPPncql}%1bzLg6ve_?RwqwqrF8x09?XYsFaBce z2HBMj)dx@(@I8|`@a@ZcpIR4w{wF~Q1CK&f=36is!P_0qpZF|){hX7N@7}KmU%=Ol zZbP4jg9UvCj;pA|1KO*XUl@oiJC0n1 zsk{=oF7L6lNPg{hwUeWlOSl@UF>2S@qytWhM7R+2<7pO9k!UWxSOYyt3G{Rs&&oEmq!u-V$f;$}Qyv^k} zFz}{$<{Ga#_r&r280p6{iUbEW9C8RRn5{}!7_Xhv%Lxe!U#nz)eR4MSH%oKKNhE5} zwNhSTnz?6lI6mxnzrthokew$YLYZk zy^R=XZ9i;(I(LZjONPWxCNwSNwtG5G9y<`o3x)|iyUTq%9oO0Io>k<=aDE^laiC2Q zdDLt6y-2Ud<&9%=3WvfIb2Z&cM!U`Erbh38F%=0Z#+`TCAc!*R8?`Fn8Da!rm zxIT)f?5p+GMD>G2!4OuZxJ%)3?ccu5yd+cpAQOmV9Q(FUDI=rInlwYMb;-9snV$N@ zBj&x~y^xlfM#S7fm2l*nS{rEZ=5db0cVoV>3Ov8XrKP3=8d5KVG~C7)@MeSZIiC~D zmw`tR^^XUiVNW3iROY80Mv`V7F9*JFQg&j^6sp3CS7s>BSX3-=P0g zrL+nkg21RYwrXM0;}VdI_S zXY-50DpFT_^dWb@wd32Zd+IZCaL8O9TNn|wR|y?BsDjRM)!=P}Z6l=Ld$6johYSO> z(;F@_g?AgE;7^7PQW#(h!EFwPKr&u74DFv$=c|nGg_?{Is;R5bEV4Oyx@vQ;dVlpi z3Hh1?wv4Nkfs=VQdXKpn;-1NUdW4lINb-X$viW&BN3w^WPw=)2rsgM%%IO689BXy4 z(=VD}dMv);h6P)*T*%FJu-+!`fr`e;1-Fcv_nL55;hmq+g?WhGi7cQCR$tV@ZSV4bA5;1^^pytSOA)0*~IOhX~(mkbs^`~rd?d>5ux|D(vqCIr>^6l+GLe?{z ztE6#-H>bQpn|jWswDy9cJS5>8rD%M(x7cZ4aSnF8Y+v}1o>M!kaZIs(cJJ$*w$FG> zy+l%K&Q8Y1H)PsYp?T`x+9QfQXuz2Wdg};+g3vA9AiujFlg-NL738Alr5hnjL8w>6a%VGaXxM zQ=VdS5^4JMTv-fn8@5o%dR3=e?31;v!kHskY8kTgdZS{I>)ZEPX+s7J%#!sv+c=^L zMD%0Z0wc3`dOOt>3Tbm3Gel9RH3wPD;_Kchm12+8@thXcm+?{4hggmCX0-8JY+p}zqDsUYPXu$hTnG4K2ylr$k)wboG=oHA^ZFlEoKSw zc}Hx3KaVcS&_Lig6;Dusq(*M7R-ALW%jHQ8kNJ!=BoO9D1fqti`1q3Ni;neuucGhUXo6yoCv^^#*0SZXs!BKwQ=!vu7(nd~?p<5X_z z(8S#gq$?!4K88i)f3?G)T+wYDy&%1L%+65ASqO~+bhN+9@#(-|pvpp5*8?f!$y2+k z*;l-ZBTYl`Hg%=tx$_Zkb_Z72+Zai^jH|3~^S(PMu+vq^Ro9q(+3F}49_qAu%D2=N zRK3qEc!@ZoemHhyW6S$7 zs^5uFe`q>*WM1%GI3=SCNwPK^_}&n^xwG8*cIkW|PZCM~d}elILI~+tIlKO5@cA*y zIQXJ`CBhQSRX;?Ex})Yi=%_TmS4sscW?irKZfsqMl%~sSQQ*5q>S3lAGn5y&O3V4U z$=d$zs=Imn{oTrE=KkBuZDI!PWQuKh0Hf3U9`tu5@CBN6#*s$0S$_XS3V?r>PPvtF zOwnXP6>n=`q}=K9V(!8scJ#VEa(Id9MxFiSp6t@m`u@t{ZGuf6Mb^tN;9g5=xz{B4 z_&dP#+k&f2`T9S-cCa8@tvOo$ElGpDjh;05*?iQx28RZYTRyqDYT69d&O@!met5c( zpBBpnHUx9)srlv!L#OTT{+*GG8!@Mywb@T=MH^6<4BQZsMo|ltXr-Qhjg-$|Uek;e z-xdS4+2*bLoLG=)x(u69qmPJV>DE;bvzTOh(N!kLu~dVaF^KLoN<8qEH!N$pMHKZ} z)5KBqqfD}HA)(YUx45)iuN2Ijq45#bVr)%MThBRIknYXxdW87JelgUmtWr|tQwWLK zNPm#aySJC5R~fxi2gx1s$8+^fLqJt5)^AxAdZy>+iJq**vM3O=D^n*bMP=H~s)Yk^ z@Dn(Z0TdVWR$l0OBpPL@-{1HP5vI$5w^a=$lCM9Rh(fC}e<8w_F3YG^E)F!}`s<51 z(f1kAzh%BfqrJ?R5})}zfBQo6e5~ManDYG~OSrE3zky(+)dR-LO!TSI_)+~1GQV}f zQArUEOVN;C{XV@_3>u5JNWQQt`433>OIuXC$Ua^F?a<2}tdYN-s&_tC;;*)F?1pH) zzaL`Xb~1v6)PGhm+ZIR191NKoc9;P)4zzj&IIB;sb;(b@ zmSs0t)1RZl)EdE{wEiQ1b+T3j10sFS8%`@^GWRtEtujgZo?-AhE!^*j=jr_#Lbf_u z$|mV`fMGO{snC@o9*<9Uo!4bW6^JA%x;qQxj>I-;ObybG@y;&b2WelK#YNwt{RYM zoS~FlCSzrm=$2auDyH0W{q&^tx}o3cqMNN!BzkO#hmkVN@tS^n%N1wn+%4n+Xjfxz zbX*)-pTT_HVnRg2|58I)4Es4)eBPy|lH3Lx9tG!P)5VV1Bre?hDk|pfQLHz0E5g7Z zt~h%Lng?>EoA%ZzW&(kz%zoN0bTO7wYijN3b>-x5KqP7yEdfHwUY9`c+mw_#V~ZU? z>qpj{?`E7<^3jH0j%*|JK{Y%@_roUd4XuLYqUhK(N-iC6lR~-T3JvNK^9pL-+<5eP z2M}fT><2U${QUgd^*&-ld0K2DBJq#%9;*Se3*P+J)n&R}cZ_pIKp;9Sj0jN23gZjN z?9R$y=bz)E*n_1^i61Pl;b@f%pV4OoEP2i1y*1R+6)`NFfM6i< zr)eb$RHR5pHO#&(}WLNUK1D{P27dxl3l1?Sir_aJ>e^6wfAEA2o&UyWy8lm_(^)KpMDrD_mjNY{qhD1weCK_Qnivi<0VMoK6%kr znRCi3+II8S%9MBqmzF&;>uee&6STKexTQ9xPoA~?7H|CrmBzb!EaG&?V=Re%^_Zjh zyVY9}?4fZum7A3+$w`H8Z10Oea&bfB;_3~9b;nUjYlpXE2vIc49}u!PZ(a;Jl5U*v zKR^&5vLHm?bZ;E)#fJio#H1D8XvL9(!cb(dAZID?mh@eH^vVU|8IZb1L(zS*c%io!2o=@KE zWq&v>fBKZd#X_TItYCpKYrfo~|KrQ}sHGS(qgK(Xvujo7OEX$3%G^GJWH?jU8L7{w zOJ`)a42;ctcqol5p(E zeJauctQ~HrsLWE?bx~iOd#BDl88K<9J@de=x&f9t39rMomUr@u@4qjTfIVNJAs}fx zs9yzU_sFPAcc+V!_nD}~F)j3vQR2{ux7B|c3q~65u4m|SNIvWd^?O2O%M-!BpKpZV z2@m1*GI>cFc`If37N3SKWHe0Oo!;n6WW zWP)b?wGb{F%KTE>2S1;E+)F{=FC)Dmlr47iVJ4Nw#bhRAuSmQrw7hkLMK7IzQ z9EELdkY#r>|s zs4`~)@!guOPG?!&;SbG*L}1@YC-3?S49R;Ol*cT1?Q_2ZF$jQ?p??A7zfdaUP{O~U z?3674VbP+d}`e zrJO>;ys?q(ia74tP|(z5`W$!Cw0V!-3Igwo4t76z75w@qLkNHhJB|rQe0Q0P+-NpRisn-kSOua z18SObD8Uk+5cC zusGhgXV<{-B7Tl_9Jt?0l#d@2^<^0T)qQp<7yt&=y!qI$BNaIH786luTqB{Zl3iO~ z(KOaQE*)Rx{z6l-;5tuvi}f>=Ja1X_60+&OBEAi6{`QXf6qr9Ey2!mwp5RA!Uih9o z*)c9w*_=76ww(=k7nXi85u64yC=U>!YgA~nKX0j=mU7sC1f$|M)hZ+lCFsGRBi6aen6sd9f5Fw z@}o>lqt-c9c=Xn`*an;4S#)9qTMiN^3wdSj71t%AYCNtxaO`V5KE3nd%H|UQ4^ln% z8NTU}qT6gd-rz;-(g4|7$E?-FYd|(Bw!#tZxQc#z#6c*=w-wi8B8JN>2R+tubAGyX zvq4nUf))m|y*g+*J2_0jA19@GWl{mJ9JNFVm=CJW5TueD9-%rlM-l!=bY$5V6)+jS5h* zd)Z9#f}hpmx~1{Bzc*^8bmn=@?Dr%a@o~81J5ygs4COAGdstE_wsA5>l7(EPb58R; zn%!+<%27#^^4V)=ql??VZ>2eYu5~uBSY(|gO3`7j7pEq4G9z{{GjrCCdJdJ)E@H1j zwo}34RcejIMhaL9T6Vw}7 z4?pK=cvawjdpZ?X2#fl1W&9dYp%`BTg$AzkM7;2V-#H{wOm3>E%-n`IRiNr1vjv!R z!IN^(3;8O<<@iDBBS$L!lGJ{5l0-EI7vzPB2GXNU(5+J+*?uw53YOzL;-4Ksw!+lZ zv}n5?Zl_)0v1{@Q!qj71X^XmQc+XLj`J((1kYJq0vqdMW{@$z|5TUn@Y*?8&3+4`^f^a2o(p^!rwxV(tJpWYHAl4 zhwy^njOxfqL#y zx5%`^x2wT6RjDZ{4}qHvKr}WmZq0#Zgzd6L-o*&?|sM(0ftGYhXyz0IkCafFZOC zRqedYZ`^cosW(j}o?AZwd|=vVpLo7C{OQI>@fV%)H_km`!N3qt1l-=nSrWbZSOx<- zyQL|Ju(AqR+qT2|hnwT^q1-hVrDh;ylm((881$~+)y~0yys1<68VDc#C1y$=``OXK ziD%u3KBtTEATE=lp&}Uz{ATrXt49%1XBOGYDK+|s=pM~{*_1plWbzg76%kEI%bs;X z^{WE?TDw8#hk(2TWuPDGx!)bf1JsR!g9GB>!NI{NC8qcwnZgYIOfM4C3XYhZ9u=X* zAUA4sAOkofx;G2;s`nl<2{_K(-D*G~yW@uPbYA;y`n4hijOBkuxp=^hc2|#rFMh6Yi7-;Pi3wI2um#qDOW}Y{}O=QL%r^d4D6t zPo}*%)4$D%XLG-6t+5qkpD5XWk!QdDsmA_^i<~30enqVa;y-Y&2>^Js|2ggWz_e@q z#ogyanX3MJ99DAo-w(|CM^i)ogv;cP|NAfeA`^#*RZIPrLlF3=~e6LlSeObi*lX|lgk;8HH;THY&Y}n z=gm}HZ@W{OcSZdU3BipA=PGSb z2gU4^u2G>*(sa)H=G$W22}fUxEH<#E8IB#Jrt6R>P4(l3H>n}R)7qzW6F;bMCJD*X z0>^}AVQnG}y@2d$@H7oVU@OKjD%(QL7Iiyy^33kdL|j`2Ng@MJiIc`^#MunWH~2OX zWm@q(R@D-a_|RiD$1+nmc?DwrdNUN8_sEi3l3of9d5}m8(1^V8xRmED3Dhkjf4tVn z=dSA_sHm}iicG}%57}d>oo{t8VGB2j15Z=XZHE_pq&Uk;qO*%Or)iG-KMteP6xWbi zqIcFkx|2jAvy|d5@LGLm_d4F{27$dM9fTWvM?iGp_DGJK17f0Lr&avYv?VBp|8v^H~=Se~>! zty2FSA{FF3_DajW1RO=Y89Dvk&=93sa_oQYorg#Kz?OY5Z7|q>LC*18XJ-ajg1_f! z**7mf$0GRvbWs1=DDza$SMQkRFNd~>9*sPG0`=g_N%gu>Sa(DVf|g_;&FQL6t3eJd zL|PiULM^4>M|sR&49KQ0NsEZGQ(K*z;eY>3lEHRIS^4F3$(*SsS85Gm#uZ!SU||DH zfT!77#a8df&J}8L8WQ_UE)r9zltj{T74%zlL@FfDwOWG={f#Mp zUN}m_uMibgkD`cZK-}^<-)&o+Zjc61BvV)bcGr7>U;sxVfF!>U1aGV&6cWA@) zF$3>Sq3aJ48iAKC1|q8`C-af$5G2Dbml?1~PNj<*6l)_pGm=b$6&8NYR)$kW`iOn$Gt{n1Fp@&a(pjaPhO&{W;+z~HoiRQ=HGDO1k-@a3)` z`848J1IM4SnGJ*1w_d8LG={r3=j(I4ldk&Uu*oE80|FQRXY1?IY?TY!sFxDXz60mB z!yiB>HQ8e>Br`iZ>fJjSPFCe`}V@n(PgZqiaGk%j+ADVTX&Hv+rhE-JN`8#?Es>wq<&)MGPyf z9`0}+_Z~@~Uf4K1hOLlf6m9y$eX9^-MhQas4|v&32g;)QcW>B?3!u&J5mB1zL(83& z*B|plM!{W$NCh@SMn&JBLy!90*?olQfRcoGh0_^dNc3v)hdC};mr_7e8LD#HJpzHs zX{bjwAS)KO{e$N1mpxop2ZGcxDx}0qz!(+;xzJhXWVbO(JqH*z(Et0(t#<~O$L$*y zq5C}<_d+ShwVkRWqzUTJaF)1;3K}Fxl+QYg`b!r3PS3)f85w;kbyD=4B23_U0cA8Z z$I>&)h5?Y-hjkK^I1mW3&W9CxhLh~*)c+&-L69v92FGRUxCC^pV_DIInUDEmPYA}3 z29t1_zpVej-8adGGIhP@Ko8qM$a4U?4aPAvr0~=u<$`hKD-dG4XUW2SbD2?xS-J^F z+mFq_4Sb7QNA1WeBEf2d6y9AMujCOE6N7>gn(WYoPw&zv17>XG-s1i#ei6m6zB>aN z#ev`?U0fEhC(5n05`}GRd}D(%*X;UoaP|Dz78V*)%Rkun&J1@mKrY%B0V{WL878K6 z=O&4~Ap2DGRGDJW{r2zH?!aim)h-xB}%0>1-rbr*PC?*%Q@ zwO#EV*|cK2 z0QdW|l&EydEMPzfQF-?4I>zYes0;Aw&{kl*ulG_<3gK-D#vH>2KSBGcWN?T*@Iia` zhd(`Elif=^3ND>om3?2H2mpd83(QO!wB7dqgFCy)TT)V@UF9%K8UN+W7hA7X;BM}L z1lU0FQ+W(@V!WUM>4gC}h9aD-oA=`T|D{1|8Qfp(Y(7?L-|#alY=6iHG?4`)e0$nvbjo`h zkV7AI(zklEVw_sYiX6@27QVeZm68`sL|riwq-ABCE?KTFhocyN+P%e>$O=K^m~F#! zF$XMwfWw%Snn|P1(NW+WkPyDjn>kYJZvX%4)aI6g47eId4ujspX$0Iy9{BN?7Gq@` zPg}zy%2bHH9>ye{3WZ7l=GhDQoJHRUnA;FV z$Z~vI?3H3xTyl4O5VyDi^tey!;#JFyfS`B#im+@}`}<3JrTx+^5=y4gDX29S@iQ*`VA3&7_aFdkgN5_a_o?3io6PGmHz*zmAz`A);Tga57Pg_mo(yZfiA&eriiVZQeUNn7~~ zt5rJthD_!%DIlm3TASOWvI%Or6cbZ?r`fFi-Rl@Y7)`tYl7EnSQhS7TKt~Xr-Bb`8 zxDMaI$J!3quvyv1^Et=fP-j$@AStM({>W-!lXYb?O@PWv`a<4g8A0r=di=HFaS!hw zOns|5D}xLqV!RV)<@2Fm=XWnpMuu~VU0Lm|-V?Eyq)BBWfPa6583|hx>RWF;-%g7r zOsTm8r*u%JJ6ScaT6+vU+RS*$Hz{?9q#GL*?3QjvzG+_&i0_1G&D2r7ea(ZS48c$s zu%*>J8*EeWv*VC(C`~;;*Aer=01HHAXU+v=t?#6hXCkbJVV27{3?Pp~KiArx&mi`!?}yx3UjMM!!h1mTt&=e8Aai7Nydk&AE;QwTuC6}Ay`WJ?$FwwqocPbW_Nr3y+639ue~`7hlRDr^osS#&f}6wj1Fp8t^1y^712_A2t|Xjr zC;t$<51sPC<<}xt(XEh|8I!h`;m!2Xl|HfK*8GeoVpzS)ry_O9t~;Hh|LIflxN9oV z&ziYSU{MtVi5ao8l??PNS2exqmH+l@lj8IEWf7Ixe*HM-#R$R(qEZ-!b4#k`rITlE$UdHSNEj7c;Uc!7!=W6sr#t07=M6iLco?2Set!8(LxLoi zb)^~96#aXW0sF+zpRnO3$@SFA266*Ns!Zw1W1h2`XfTUVc6LQ+A{3FbRs_Jo{Z$Wc zc4ECJGnS?%wBo|(<=}u=@W0r+N=O-`YrQge)j+XYb;(1>ZXy9FLCI7G9xuS!_O3Ee z^u>6o_o%q?)DDnsV-JOK5bW@p#xe_USC)-O(EB!Ts zCMj9Fdw_p3h-`-7N7&Fy-mC&lH9>D09_L`C@+zQA`aeWsk8N3y1MMT#t;3Ons+UAq zaNUQih+a<+m4?^OoS7S9k7u&5O%iBXM6c(8yAC4mpL8p^S65g4QO`{@T}4&~u?iZ< zbX)_(q?@?3a2qVf4QqD&eu7e6xm7L0i?xplu2WUkQIixx7<%x4^!!^>-763XEo@5^ zrfcBrLY^J*)_xD1ccy2iLO{34?$L+CdwsJ67E?sZ(!~k1r3_$30k5|TG9kcgVLp8o zP5d#jv!1XpPGyyW+KeccSYG2a<+-AQ*%akD=|H99RTjn3Z6P28y0G5*I9eR@VILoa zpJHv$YcNN8it*MX?SG}*esL(j0*CTnTGU@cX0l$|{}cTBm*e**JX2+{Tlm`n{OOm5 z(EOtX{hE?|i#A|?71{pKn69E@h`)Hpf1c;<{{T(@G<>xuzHvVJ&+d5nKV1HuciN6x zs$RctmrL}&gWzxbf3y_&ZsYeFoIkwhU-su;L^yn~UH)T{qCwpL#n1nr!1#Y$ao4}D zSUtDQVfGF>s5n+(s|57d6Mz*l{#Sv;W@q9*_51d()|}Zr&tItAb|d+oM_5-Y+oCVr z(7RvQ9QqX02Gv;7w{>(* zHb*G2EuBBY5yb>{+Yo6a(JpnFElGSDmBdoz%@qN>rJg|7QILh`J33HJI<5q)4=S-D zLN0Z3^W?Z?`F2}HlJrrz$ZX2-Y=8Z1nWZqU*ehQ%IXzRxd+N4O@2vef`ng<%W4zI zZ-PofdumXp`Lr#A&4vNC#qrR`+uz|CwKyH~eGX?B28%=sq^WE5Z zY?BmFcDlWF{H^FisU(udW6{yW@}|$JtAlPYJaF8A38$IqC9u+1JMUQOVX|Z(cp?Km z35_QPW#DPP6weUAW39YdwJx)=|1AP>s{eKq)NJiEX6$^$f_cL`2xrH{1IDEgm#;$! z3neLRfXX&oJuGW4_bx#k!d;I!IW$hwO#Pz^acG(@aFw(zpqVcZ@kv#X&iDQ(WL zEc@2cVFGxXt{&h*6{poE#ngF^^Dh_yVjaV&Me-cfm=A!WYmA6nYwUiALoGnsz5*lG z0@z8w{8Pyts##7BFisZKp zacy~CrT1RMzpVg7g2<$cR4HV7k$+2^l}~knTfc{vP)5=7=7U#Yv{QhNg`Y#SM1 z6I{mcu+8;WO{mK6zNB_N|NU=!CPh->D?SSgIE61tvRF<%jfu+aF}ss&>!B?5(}Xwr z>!-e>>VrW>ZNd$92t=IaSGP0C@6n;hw6gE}(PhGHZxB}9Faa_U7bWPn_uf|{5KI#)jO(H<4M%)yyC2jH^uYffY?VuW@%+SqQOgL+S zlbg>DBT%^M-C2^)duI^Ey{S9B!n2hb>_F|`K}9x<_;@P#G*D@N^sUSFB>eE$bwzvu z^yzU|&ITYjc(3{GM+F$Vp42 zN#mqioF3toOCvit3wOY>;M9MQ$`QPFL5_SMJP{%2$(DMRh;Ff?ZT7TiIu;2)Zq!sRHe6)#`^?VC4GpNMzH+?oFYY5q z2{02<@`97I@$4KP1t$oJ%)-P2AuFTPtT{)f_vPUGwOm;*5p&aV!^p&P2U(s36yd}; zm-f+EQjr7x1AoaXkW4@XQ|i}=2SlCtO+P-}Tz|N@1fw!+Rttu8M#@B5&$QMCMtrK! z2Vvq|{n{hS_`3{+U{3P-o*i^^LnIF_Nh42~bCR71FhDi`t@rQWqb*h7s=q}$i@V_8 z;CEH9a@y+DOWrxv?&|Jlr3_UAb}G=mii|yVbjI9{sYBJntzfGCX>r`a`kXDfs($k& zr-ZZn;mn_shxilpPT@?vZUe1`XP3^^6}e=B`GA8!<9(5#(co=frmb%{bj#8d@uroi!b&bs zJyo&ooI66kP!54vBcOSK_y^34Bz{JiP=r*O6zd4e(h?R~q=F=SeAr&Tx<21~nsmy+ zv3(qHW?frZQ796tMsY*yWi*OZ&)(zG#uKc1#MSQup^qgPr&tx-#%)DF$#*Bv6fjS~ z%^x+3*B|jco&-)R2iOL%jh4FJ$8hP!f#nKp8D!w$1S$pwjQh*I<{%z}u9inTte$(O zKMM3afk<)+B!A0^s$C#KC>EMmPP(CM_QBH&AO~whgm_C{t{_kYjMQMYCSfr&xK1+q z$a^vRmC7x@eYk1C^Q5g80Nocv`isAgbswjwN8tn2c*!+i7t$N~iqii*RWUQC4P3<@ zuxcFJ$Ts5+_$d>%=0riA%RCIiBYAdg`|9iXGr%Ey>OCY9#szjIMVDS*IYfuApH2~M zRr;{{h>0igs3%8FBBLXNhuJRT8~$M8HSTET`55)_N+DvpWTwe__WSi6)xw$kmC_7Q zX{e;+2+pp@&bBNB+(6T@gG0y7EZqh}1^=7zprb{K3&z#Yv^J9mVM1FKL0&x|Ngt&#VfX+pDw-+5hI{mdf#IzmsKJR9NZxij)@=It3&d&kV>xcf9M(MUeZFey*- zRbj&pC?Lx{cpwmuQUHCeG3f#cEDdm_+NvMCL}`F|2c2w zWh+}BU&naWFSN?r>JzNwc{R((oGK-DVcebvprGo_TC1JmQpE8mHq(@)yo?ao?GtnuXs>|(csiR!p}dq-CJ5<@2yW(yvVLa z0_t;{VYqgvU@+4iwz14kj^KE^qI%=3@z2;U%HQ=pu#8Dp$%=}{?Pu3>_T+A3U_kb( z=lr67?Rj4d)pjvf(>~ZLnAq*-KcPZqyAXmqWlw*@&-%1}1p7+I3 zO!7Q9A0A|BlGNMSyXC6c)ea|BN=1&UbS+1ETEA|ar+2Wk<&PN4zyBjE$~cG7O7G8z zMCGR6--KePV}55Nk9XZ4Mzss^KPr%4}qt1bU4%I{C zs3=G8uO$^oS$Z+^OcF1d zy%`%(uTWhz6r=Y_3a(K^2D@`C-tj&J=`lEP!Z3NCby1_SDo78M7d=iZ1d6RJ$xB}= z+~HnZLVIZGqMwRO11Q`P(7kPSV?zgDC-veyo2(8^!Wk{S&uxc>pwJJBi!-~W%Z(s8 z3hK?*bA(?g3^rNr|6qBlOYh3A=V|=bG&8eN2HyNJ3x=parv(qrKtZonJxFCV7_WH5 zU(r&s$h(N;0X3{Dx6cD4N4}DNAP;94Joe$~sUj#gDUcT858CHe$(YZwobb@4;g7dR zp0uSZFBa#BKzgRVr90l6FJP)>&Dsp&Cb_BJn&w6m$>1+cvv|YK4PJhzGBb9@ zW>c|IHg@Q-+Qx&a4ZR);i95d!W|~RM*$}tiK0;tr{$hLZ)=XTA7*>|$`k|uM;ck;yY_e1Ck5PLulDC|#1` ziSEH4C678B=AH(t7g*62Lq)CQ3v(W{gcojuS!&XnKh2xbhISTkf8=*fZR|<|&jh?W zpLND{pNEgJWnroMMV4sVYQJY?Dm))|%{?HfJesNNWOshlz5(F@ z9{UDrP~E9n7p&X)KfNp7^(uGKF27aM!n1StST_oP2<0>$)ipD1rfz(yD7w30^lf** zIdG8}65uZV($GIpo2XSepo`+(z}E{(trbAq{ZwjRbRN$tbLM^)0z2GW{4m5JbHf9b z@6apD3$MLqJKzRB_iY3V=lB)k2tR9K^Kq$MG8rwdq13LZglHMj!^lvzY$7NhM+Zb& z&hx1M3b8nHg!))Qb;&->d9?&@Xh7shU0`7TW_MVTE`=x}Gu+T6QYr;JHDLbxXVNL2 ziK%d%y}1dV)1yi={B04BBe=vq!h8X-nE7t=*z$JWjn(ASBL^K7zc;y|%T6e@e56~Q z&<)LJyNO?jhvUDT2Ch*A7@Ab?QWLx7!GiM(vz|^idmh2xkN1~s3S_SHPI=mO8p<$u zmof8*v^LPXE_XE77MtuUa&LP3H7$?1Mt0oIAoVk>FHU(+s8uAt`9aGc@ly2*?On_m6&|HC(nlCzRqdjwety85cj@8e9w%=i?c#BD-h018t#f`eG4B*cXgk$I z!=BIB)?(SmGJ;#WX$Q@2i%D$Di2qaCc}F#su4^0*j)+obU__cQ3JeI+6anedi-3X< zdR37oMIh2eL`RCKR7INfj(`*?Q7}M6iXgoP2)zYF5-GXwcIK|5_uRYIJ!k$*vR9J5 zzqY^kd7j^1e%)Wxnr+b=m1jLT+GBz_&5wWWqX`N=v-Z|kXx%FiGtJD*M1Wxk{|-=B z(tu1ubmc~YWE(nvI52efnkw@dpa8qEN%dTh1v`84C+Fqe{)xV$h)cqs<`TNtU zMWK3T9@@>7q@JbKw8drjAph$=7Nv##Q5gocr7sDuTBvr6uWGJOid*f@3pp7Lc-N+6m`3eNS2*c5KleLH zb@K5+fB&;NyUMXYG@`7WTFm?H(SJ`s4TB z#r03Lv+k2gDr6pqU7y}Wx|Rx=C*ekd?$amf_i5_t5UQ?XsMlH}w>5>#?|rWSGEo}C zfd8;)Ccd5F=9}KRNLE0d5>;O;(1Vtb*3!plysGa}ac;3D6t~%bvEMMMI+4WVw}k24 zUVgnQ@|-kady3Mz8t{?gugCi7_6O0RS!iAIbfw$v3Dp(f#n3=fDowDB>x^F?g~coP zw8Ne{`EwbkPfrjzbuBPvOC@Mgusi~Xa%6cwCJbOVgbW7WUD&FW0SynD)TGu&I4=+1 z@P>=+00jAV{Cl0G(^i^?|JqBJ`o7SE&2?ST&I&4HXvVR(jBrtyC$V##c=WB<38h`? zw6UPI-RRQc;`3j7z++Qc(hyQF_0)?i{)*e-+fq6EnU~x!3?0&EP2v-1z|@}HamP|{ zf7|5#rgGWv7XvJ^`5O0gPA@l2#9-!$;zO_A6TYT6ei{_&U}khMT%j{kR{zA-%KRFkGLr%7rYrM-G)*h$Z+bS2EW|G^3fgHMaH?l0y?5} zBnd5PR9QkXwCU&Wz8mArMWv*7DtbLHFH&*&Gz_p<9ooIX`OgU^l{bt+QbhTf2t-Qz zL|BbA)gu<&bWbxewy*h&);|r1eIT_iZAr=9AU+$%37{Sm7LBPd7Af=XZ7mv{es7d% z6-PH_z0O0`ld#j8KeD-G=^@py=dHz5`DR9DJdh#ETFR>EW5$1#U*fGx}lW;uQH*V1>VFhbT7pl^d{XY#Qe+UzjE}1or zEqc^!Z!M?fWG3iH2n`80%5 zJKlQ~v8f;jw;d(XDh>9<;P!NvIGgPv%Go4sf0Sl*@o8^#8e@y%@_wz$Cdz}g{T4Ur z5gr=snUJBM6F8GdhBHIz*h2<|4DE6k8G z(kPe>%s8&4X_5KP6^C}SM6sXzMt|LD#MEr@ur%MjjCL$1}5G7)wZrd z?u(LqaT@GZIitf(PcaLqhwTGNv6`{mW%2w04a;X=^tYKWySOfF;3(#Mm}hM>Xa2e$ku7 zQ54?AX?W>qCskgQ-Ecyz_Yo?eLOHFk!M>2Ol=*cwr#%LJF(l-38lNojBKm0*$htX_>7mt%v3!)*Sa;8OZrh4@Go-=2TM9;xT&M%V|5AIfQq_2 z_LQBEiS|jMY%SptQHn>+x$jLNb!d;)yY-1~y_yOc;pV$l86#u-QM(K8Bsu)*wkkQl zl+-SBtI+452WMJ#<~tvvn)yLWcJTJ5X1>n`&^kxLkTPRt)v{e5oA5%P?@ zdSaLM`Z~w1%nvCt6_+SGv8|jd`w8hj+PsZjZVFeHc1re1*Zau7?o$l8#aZUr_i?tZ ziab-56+Cu*(>uEYhDtX+3IqU!6Ru_KJZI#sWQDe+F+C(o> zbUU~cU$vxP1GfubaU~xD1AlpZFwR#XkKe6$QE3!7C;KpmI=%o*m}P-O%di8@eH5GpPJOMd!| zE4rt|S`o>;fiaH^2TIBHui={<$Lh`@#qk(^{k>r`L;}xzH%VL*(fSOYh^}%6eaM|P z46fhj4oXyyVi$+-kBrxx5|l5gSkHO#650|RfC%$>X)p%J$5djD-MrvnYy)#YtBjWb z*vWo_d<;0{#BYp9gM+Q@uxOnUWp9@ZzCxzHZ%~;3VLJ>eK53X;+NrSZPQ)H{s|@%X zC>Xw;9R1l(hWc4x&qipnNCpc8yx$9P2zS)+K8R2Ml8<`j+|OWBZma(Pp~3_tNL}x; zi6A`q)(;+pku=I=(JKhVxyr-}QbI)v*Wl71#OEa80`P4B1NuTpKS$Jz;z8CZ^#`+O z_CLGsdjj#Obu(lD+m%+{6Zq-vK&SDy9ECH^pax z=1m!=x=PDr?y2OF@Y|7ySHw-AfWCB+uGc}Tkqar?sgok<1Dw)lil7?l6B>O>;nQYv zypI)x3!m>QBX%<+-VSi7Z-gro&6_1Y2fnlV(PCAgy65Qd9USXB$1&fY98zcG3;Ute z_owyYFH6YZd2yr>wy{Xy5DA1JlqHV@=GPFL^Jr#sD0Rm-PKxk(sobMWhqo%6dcy%S zd=z~yodYC&Ve?9apCbpPZmgx=OGHh85hbv4S{V(A-|l=PA;d5N7GUy1K}mRR=EeH$ zm0E;4j5vqK>iyw+1VaoWYHvSrn(xj+Tmj(XOs=Sq0BCrtcnfC}@YGQwSz(g}B@L4R z8AgO1tflrG0+?1HO;7_|S(ldyU)Clv1>(@Rcz6GbjIpRC!h}zhT*eMUhZi={uofbN_HebS0jd)LUFJMeO;}7M(n1IawqzE7~Ar}pNP)H|) z^LZb863QtnZGcijjzgRaa$sqNb1$YVdn6orHXgJc6+%tpNr*$Spiic6 z!)ZKFJz)XZC{Xe50c5$jTIWzNWFB;3j?A;FmjPyp?Zlf9PQSTytYy4*V)81#&J%8pyiCOtpZaEvA$XP&1cya3IxEn;2}R^OIpJtO#@lM zBWSJk8i*Oz;O}vm)ZOy%NML$hSa=E`@EvoQ1+mT>aMEO5lx zMCv~qKvL4NuaFHI6N>d&OwI3{WwBF4;dr$ZkL_|*u>{C7&myrD05XHXs{nmx4iS)$ zrU3xAFPwaM?emL~>}SK-&pLI1I6NtmWx^Rm!XxBqAXS$_H@XQN`ZLfhlOjSAz^z9p zeKcIRZlkPx!w`UWB$qq@o(*X2TbyN~i$=jZ;8xuL6K%5RfUCnMSk`YMx^j=M)JHHm zOp5SdhBb%~Oxfn9f%+ky-~0FZe?Q7Hy8!T_y@>xysXi3ZxTG7)&)8^Gcg z11uJD&5$Pu_xvtU{*^oEqGGf|XQZ zbFp7^rR;L!lANN^6G#9%jkq__Tin8jO;1m|!*%T`wQZUd(K*g4>B0(}`W&#ya>OJ0 z=*>>~D%OHS`Y>}NLmCMVKtu(}K z;3}H5=8Va71-6M}5X{3ae_v6z?H{> zG8e}RUw&i>Sv^GOvMNnP-r72)bd~Mjfvs2Q0gnZIIkPh|II_Jcs=gfVZE9!7DuW zf;VqJoJ*b(G!E9>tzNA&MPBNZ>|9zXSnM1*R42LOA=C2fp&vr8e+qPe-PHXrFLtqXC_QwBK=4V>KNyhYR7wcM@}=@kx%(ce8!%s=o_*Bk?avaD zDd9FDwnZ;kSYEyv2(7-l=*2|As;OLkJC@aD!HL*OlQgz-sMsctC+k+$4PSkiK+@{T zm_?`Y>LcWKhuLe>&oYwc=H8RF8wtA-6d8vIpRdQM!=4RO8NH=ddb|`&;ExG)elZOr z_{ZJ8_f40HiHQYX<8gxz;<&v3{@uE8w%Fg+-u4g(8ktCdJLCMij&)THf>w;nOE zzj?oB$<3Xx9Mu#-*VX&0-}2_xa^}CpGAmk4HAuUzeShaT*Y2|Ry=PeUGI58P@J)`F z>Z&QCk)P?kBPwmj1s{L86h$xHIjAnHn#ikfF;>ng?X@>OQfeBYnQA*;83}Jhr5EYf z3c4(7Tyt5zp08DSv{?&>Jd27l`CM!xPz`tvFciY_3~jrSSMMONy91&h*~O zVBJ;=ez`?|kXE7Yb~}x|!(ulTwXj7~hX2{??U8z~eUqUN56oV@v^7 z{tT?ss02c;<@);LY7Vz8Uwn$5qa8uuiNl-p0GGby})^u1G| zAm`R`==aqwHi#TtnFqUTGb`)=@PKQvH$(mA&2y6Oo1d&I2C5uQAy&ghJv$3s$Hz+< zW%_;+3tfr1CT%Yu-}1GiU$Uy0k@`>hqolReqS&b?f2ot%WGMG znFsk=Z6>89cCc#@^vmXTuk|dnjFfcGCyw(a&_lFI0in2{VN1cLa=(5}wINKI}FYoTVaJ9w~hnXA6V)kDv zh7D4lc%sgbo;w}vp5V=XEow^*zQM}I_Oz+#Iv4@BG&K5H6Qd~wg1~jf$HZLPtXbo| zAunHMYdBn_PbK*HJeX=&!J|LfU)x<%>8FrzHdfK0dZY#Bv~n znE6&8m~8H4@PXmnZ%KWVr4`(#u2R#_==shlH8)==mgyqhwQrw!y3!c@Ph-JMxHD>= zp)Y)glj$YJeWT|}Pni{?F458TfbW30>RZ9XxI{z0*VEHRhGH8p2xvqj82pX`FOaY~ zfM?)58rE@y@LjM4WrqbL4GxA`x`Z0hOV>=`~c zG&C-OcWNO@a?=5^YwW3to$&10vw0d$PR_S)-|Cf1v9N^1#KhRZ%lwdDn{~Ttx8tv3 zUkCHb(QG*1@>HY0f#?uVBVUOc!-w@XwxfvbnCML$i;qrOW<2xeua(_jd%qyu=DR}H zEgf{^lp2=rZL7bVNciP|g5%^6-Wz~{^|4<4?%lfy+0m^nEh9Cq*69@j?57Rrh!h)? zZQh#>W?TL8)4MBVF&h`+eSJTb{0LedViN?|2Dd#t#8bdjUX}Xl)lD6pq*2vfrJ1iI z3O8@ge@rzvh2NfV9oDxQDG8kW9PNCt{;=V6M}=C%>hVt5G!?532!*r5Ev>ESK^rZ# zbADxI#bx!|^A!7r(Olad#IBL$OYfO?%A27nY}M8;y^R+)lsEIjJ{X+cV&lAfMpRtL z#YeU&{R-SJCHlTgS>Us3;jKe-lHP?M`(|Rh7sLvVVW+>+?;H9WytC+7%lYF8K=BZo zYuYz1pzrmwj#oy{!N;R(FZ!Hsm)rz@?&M&qfR9g)shLQ@m!P!NOnXVc?m)N$_Rq%W z&>K$-JijHK`{SRV9{ z_ELX69IcKI>|A5^U%S8h*I8b<0nW~`D{oNP%8*q z!%WLch?x2K(SanF7QWuSj<#n@1JyOJiXYh&6*ra&dK)m3$}^5W*~ zH%q14l`$p4@poBgB43M&o*K1n1}N5uFMn&8wmIBo>$zz3>ACm4}Gq zlRe1Un7#3sM=f7+lDUi_aZ{Lz5EQjC=)f}CvZV6WxUBi8BXE7f_MMKV#rS|)VidMH zqIS)@`y1l{-4~y11}U4F?=@uq{8e;cl&|;WPB8F>{>Hsk5Dnd>vRPDg_(v5$&nIPbnh$EP7IPA^8Qbj4pN4 zC(FP)R2l8*jojeQ94*7{8;S|3SB)P``I$d?U;<(Is@7^1>eq{_DbnAGRK@%H+H|bk zVIU`TJ1f>M>@zOTwuQUoliRH?b+X^<>==N^*pjV|t65ePHzr12AP~wk&J)4#WGP{6 z^w7F(SZh{W7hkUtLl^4MR}-o!Ji5_mu0ibOrjmQd(!*1au`Rs$<>6h&YsO!`FkXG- z?r7f{w0+_}e0ZVwG5K9tl-ZS&1;%uS`wj=kFC`7QO5EU+Juk?(#C?wVwesUjO87VH z4-L?AuaIqi%$=t2{)g$=bje6M#ZNG`tFOc+?>s1W-nnDQE+^M+Ydz%fk)_gTs924? zO3z{SmE&>uLzP?p&@-DhtI&qv;3M|78-uq9y<~0J8JpZUMB-{~QTt+Ax}xqH1xb$M zZaj3KiZ60#V1Ex?^e4T(lCSS#W$v@=gN%%ivZWibxpevBp_uFCM!^7ZA5ux#c?kT* zpUfcJFe1_}4&M*Cf?R(^BvynndLN*&(n^#3JuydMf`uq`o242_d1ZAF?Bi`NPEtn=7$vn4q+v6SP5zxU8KR&*| zqg(!kNw}N z#07Xabo+X35J?;sDIX5sMYW|;3f@P%M?$i9TIBUvSSh;G`lr~9nlIBZ)W;q7AeCN*ZuNB!`+K|(*Y_ta zU}8R|6s{U-Yhqu&-+;5oSGm(2E=pc+y0rd~QlPy(zn{==Qj;Hw@MJ#=BuX67;g=N3 zEAq{bJL1E7|7cuU_nHq<6;g@0)3$nJbRSt)bp+{5aO|I-4AQ>e8NYiwa33fb5*iwn z(p|%C6p$W#Kqa2$G<_U5h8=2|sj6kG@klOKW6ov*)t^?^(2@*L!8B;IVR`@QE@bC8HL9PDQKv<>c)Pg+KJ-0tI( z@jVn;*3BRI1bucMLL%XAcT0WDa?2!ZI5GqF8%;cu1g;3hu8p>JNWyU)w)pR)(On;o zQv2}0mFx)9den&~a?|bc=vl8++ShMTOwZ-#Os{z6W)H?wZIIOg^^h+O@Fkv8S(?@i zt`YfQHSK0U+a>H`QXSD0f?DM4Opx=^S7J)aUaexnE;w1cc<3(#e=NiXLiY3e_NdeYI-}3L_-?opy4ox8j~C*jn?QaskR^|cPNXa>IE*e5`yImEFVahm(5P0K zsP9+qerv=S?>FsR>1R6q*m|Ronpf1m)Ts1&n-g!Pjo8b4$LxV>L{!l3t+nxSwW-N= z+_rXx!a8!2FQs!DIl=|U-*1OH@!pOPf%)qmS=lm@7$`Ht2vrhBEk-9A!@E=M5YN0* zyVK3*0!0ZiF^!HXFv@LLrhLN+khrGH-cuO(Vkq;M?sML$U|#NfpA}bTZrrAgQFl~; z@=x)vfd=QIHc)VXon?`}TlLq}t|o-BI%?TfO)7X$7MzNg6+2$g(kd(^f0lio&j;Sx zIF8B;t*I#6oRT>c4j44&mXhU2GyQz!pbT;=dJmqx>@?;c(DSH3`27;Mh9ZHvqH~GV zQaolp5R(&rhz+zzdHa?Hr0V-?!{$u^7$IR{-q{y&I3D4!MXH&ezPkQ3J+z52>Bx#& z;YHIpoJxJ6d{i{2N7T-+v@TpZ8;J^Dtiyp`^Q;O_YX}a%WDy*5iGoCtMsk4NYwY=J zY9;9B7e-L|vh%ofx(NSR$MjlT2FJv>DU?IsTpr`VVAeKFZLFL_T;aeIj69AcUo+vRcYX#jd%KohxTN}mn zi?B)eiX&zdDq=F&C14L68k(Lh-MD(XFtl%bn*U<>`_S~5w80~7gR2wX96)r$N=+{f z#sHzmQoO=(qxYw(68I^y990yFz5W(CKtuy=m2^iw1TFUxTHi^v-}7n*dI^ZEpSsEE zYV>wex&YYeKkCdS8Rx(4vN!49a!swLdFMA#M%!sBm1BMf?ED`IMyIeWA#Dnd{f``6 zfu5Jn{cEG&gwzaL!@c`e!=+h#bN=mwS8rz14+^n?ePZ9WvEe?Pa3_UX>F@9V)Ye8!LGgLIIT*uZAzpiVvR=~AXB)f1df05S`!(dwYr#;E_Qb`+TnAYx zm5^CCS@EO)Bn<0Qji@(`uU?TxGgyyT+J0(pA1Kn7e0q_p1vmuqz)_$PvwN!$P7ZNd zABp8_IKmA0^ywxzGX8ZS;&p1>cz^=e{zgRhLzySEKG`0dIz8UC{9Z7s;J>@ndsqd_ z%F4P($sbTvCEl6H*PCD5&%ccY9_1 z`;j~eDj7;cR`nmbJK^};G#CwbLA^RWyoO@Uxdo(~Lim!L6XR3Q2ZvR+@~*4Qzz&}u zdhUKsm%njig8bg-^N0u*K|#T;k8$kkg7%YA^uBwV5HP+)QzAho?7aGola>${WUegi z>?GvmIM;P_C>5jW-|1C5jcmB7rCn11iEGh&h94O~EM~69_G}%nscc3+Vh0e(90i~) zE0D0R4i~HY_(&PiT8_NeWQKrO;#p)QHY4y{z;hy@r1Vf&g8~Dv@r*jv>-~q~lxd+* z>1K_f2USpiWA&1P6F?D-M_-EB$KEY!FXKW()<^0Ei(0>36{mV^mQdl5h9ioa4N z37z!c@}fnMJpFZEzs)Q1@*%$;`bIQ~5$?ew*%7jPec zd#_TQw>1#hps}q-zJg#$2>G&@ek6>ds`Z?$QzN$-jr_`ce&xuDUMdZJ7{Yg6q|bJ z;ad|K9Om1{&o}xJ)>)-#`3ISjzzG$@P@R^lf8IOd3*eg?uK<6xL8zUvz%I6*rm5Cm7!5m+UOX}bb zglMmF`@n}Q3iE(o(woqL)^x7g?;-y4jmC!@1{ZN|jxT@fYF`_~5>H&szO@+J(y%c& zFb&lwpERUx3XUH2uzM9LuP9h-c;pBvt~X*YkAROQB@PUr6%w4UvVWnJ@o5BJ_W)|w zAjM)X3wPsNRn|1CN9aBhzF7fGLSCFh*Gr_2^@<*}wq-G63#~Ys?2j4BX*zh#vIdGW zGc^{MMKVBjmoHiR#Ft5C8vC-_w~2e$e@NS>;qlp1Zuat0RL9G__lRBWe$UB_~c3% zv5Vh}^BpIJ0%bw96_Ta^&(X|Hh%-05*tsm*R0A)hRsPslXo`_vgnFPeh1xVgxY|28 zn!3&%D@j}^TY6N@_h$NHB4f>g@_l*Qj5G~j{3z!W>B!S* zo-i9bP7=oH_#TbxG)x{$!!}Tcyc83I*J4Mp;VASxC^;)t|7Zcj~@qF^>w1Yk4ac{bGNNDKxl-F0_d3x|vj4o_ZS=41QXFJIAwFqei zBgRxoTp}5>Ry$}+ve~Kk$vH{z@@mXpttu?qt|JX;ke``6h;c<|e}JgMT?ZD=y5Hnv z?(N>4Otv=dX&i4f!KP5%bbUPNKexYicwyu$KVG?*EcMMB{zjCv=Z5`hN6T*Uh(~#T za5}byN#lIFHeNv}KE(iVU=6%hSnX;zMC}U(gppp7E5qX+gEo^^GsoIkIwwVG`6|sz z`P}zw34zw0LY0?TMaGL6xW?FpDRdQ-*Yq|{*{C17ZMne16EjdawewTTu;**s-F{P@ zsd;Xgwk1Y+@raZY_o*xgd+#qbNPkr8jp9Jj)gi~brBd9_%Rn~6+tTVY-d?wN-(FH( zzYp~p2S>9wDprRl693Bp3T0b%H~(pzNt@5GK^fWNp}(3T0yS=D44x9ntxAbFEl zyPXSL3+Mn!X)j@wMBe>c%(WX(*!t{qdNnUu(^hgw))W0ZRJQAnPYzrJ?LG)}jM{}E zs3ko!U1vO6U9Hw0qvY^m>E}Of@-Lc79V;~_hus~4`c{14eS>?A@+gQPckqVJ`|xdM z`~%H6iVs>tZM#^5o{OQ^Y1PgXxeB;FUbLhwG^pygmzfWna0ROLkuJEg2mr^DRx!<2IxQ$1{)~Y{0uDbdCeXmW-6o z<~AgBg8fz(D_m6zp?%hCohsOS1!yLYnov`Ir44 z<@uLGmX$!2PJ1L?(b56g@*2j>6fdR^EE*!D3vFI|K_n{qHQ<1RU$plrha;u>iJt<;_ zZfQSs^(P*7@?zxcmHCdiiwrWU)y_+14`rTolA<-!jT@Mtnr8+?4uo5$Bmfk8Vq;>O zwq{zNM@8WnwY?x)pR7*-#VoLeoQsRFTPsL(U>TSi2@9b9Qf@m=9w2HvR^qmy3(R-rJ9pj!e;p!h(HGE&I!giK{G(Y9H7F8< z4p}YKtQBS72*o?y8&tO&E|mBwe8CIQlOdb2GMH;vUgwWG1B$mP`}1mF7S{EI8My$E zCW3MV22i}OI5dNRvu*y6@Deq3=S*vu^6lG9+}!JL7B+uW0b+grG0=gHKmYPjSxL!g zqRR1M!h=HHc+cI%1&?|y>w{n~t$eb?uK2m}jNBi-^Tdu>5ZUF+vz1AmYM^up?zKdN z?|;*$=kf8GK}`x&eX(LvQ}2LHW@cunNM`u-Hlr4Q+^sC&VKbkgf@QhEc6EM)1k{_0h60P{^#(5Bu>xbKb`xpuP#70jL&J}=s4i_Wh46>sbe=iG%xRxAHmtcdtJ!r}_7SfFZ-OcQODd)tPDh#&Xr{ym1HOX!f1z*;FQs46x#($zJ z?uu7{vDNA9aF1ZFW(6+SqTRle@_}ZUjB^(0rgyFpT8)~3$-MScHPxlbLN8< zBX`?X!|D+;8{3oCwNy@JNF=g?sCun&@Istfb27ZiDzGztI{u1A&8tMoSp4eI!*}m! ziUWI44LFZ+@Fv`Zo7EjNZH5d@QA;KqVQ;mnZ|%@*b<}FGoX3d>@Tx#A$&0chW$k)hG&WZ$rxM?ED@TF1RJ5GVLaIj+KfF*Zd0&cgJdWUJgG!uU)9y7KDv|v{u~s zk=wA&qZFDPW4b1KVurrDs=&;Ou18V3)Q%r8eEMBHt ze>0c+z+z9^$G43f_iRf?GGtrs8(3E63;rcV{rPSRa2ZobFuJqUc_oN33i zEITnGkSc=@oigzW*1v{NNEaw(=3P&t%?+O4pt;eA4kZnNHrb)wcu&muhJU(j1NsRT zYmX;g#@OmrPCAw;w^<+Joqs`vXt0cMLGc$LKON=Y zr#CV4$lU-#2qmkFQwj0N+<(VlesVLD!{+cvwnN)Lo(GExK15)it{!?)i)$h#Z*u*^)rtedg{b%uyo zI95J(P?AaTJpQ7|LACzIqqO^p@skL;J22h$1+&9|RtyATOQ(INt@9j>k4DV4+#V8D zHx{bbp^P$Z46v1CTov$eN)ot8zE8N+GH7%SHqIv+dTB%$!@G=rgMejUMhFUd=Ou%hIj1QI4jU9;q1;FQ0u%V`l{P zjMQ$o5JgW%C())IyOT(uBRu&!$bk1w7}{1TV5_#8d!V})hv7Z)fJe|>1-6GyY5 zxYFh+v4Y4oY>{LL95n78q?EpRHN>1gC%tNt@^)=DeFWtziIri7`NazVtS1*rOd|d1 z6wX(VpG{8{`+m_!dCTID`w2Bzq-&Sb-eH(aY0!HOojh+zI1_3cQYhI^s1S38CIQ)Iz*&7bBzm+?iAPh6H?Pjk) z!RIXgne_JsnqTASRVBqk&+xy3=HH0j)APWH{KNyihu`$THI?As)%qX)Q#zZm=YQ(# zKbV2!;01|ajjU=A(SMike?)Y3pe%kkSW1DSfW#}%;=;nY2r-&#kKBV#WjHN#Vrb-R z@c`^k5h!r^rx%TZzxRq)KbiAh4v?C+0ci#7Tc&ZSeJ)U1cfdRgqQ&IKHIX0c1bd(( zj-5)zM;w&FdOrF9CwLFwX~44uGcfR5X(9J=?qvBPPgq!3`T!u;9zliG1R@THRsrRO z3m4E*eR+AgtLUe(T(#ij3Fl*F4Midj4fhgXzMOTe1u)ltBsbW-DS(5}xDTi|IW6~H zfm|jbu^g}Df!L0f8-qIQ+uYnZKp_G;4`R`miQ$hzis2H`yVTnKupM98cLT9))|0Hi zC+2_V6U~qhUT6T(g#osUyDK<2*mFKs5tynV`3hI*Os0pZML4c2Ynf12A>CrZK z7X}dI5$SA*WRbNukGssuh{?&@0bDJMu#$R>&ufB2%LS3$OA1gK4rI|TzL z8^BpuO__4Rzy;0$0{kx*7~-|J-27fM+X7Z2A}1$D1$F;C>vVjmE`E(j`_PpHi0Qgc zT|3}AyTfqjc>S5@pOPa2H9 zUk8!*Ngi$VuN9=OcM`utG3l4Nf7?hMl$n0r(ihl7#4-*!6^@kI5B$b&beB(kPvxRpw$@CFahGoW%QNBp(YbCxTPazG5RSVR%KGX z;lHPI{(OLTSU~Fqq+y61U1o>=AL^c70`RO0bIc+r3$epNl@5sYzKPKR00 z=X|LgjxDqp*g6xRlfuM~bQh24%2lID>`e`2Lgfhmyus?)P1*XH_n*bC*Pqgs*G@^= zipkp{;0`UL&h1cCx$qp;`)3UA+^aWGy^>i-WP6y62IEcP5WZow(Ca(k1Engu@GftE z?6xOi=Rx(Z3(Rqj;d`ZEZ_?k7v^dqf zx)&+Rw3wb&KX9torHm@RYUh)`_Pv*bEmiHvp~f*y_D~i&?$_JkPm-S%<3egzOZ9Yb z|MsA2?D&~tMF`pRz9Wn|R|j`23n!?Uu3gl`0cw%v%BISD?av(iT15g+BTqvs{bwf6 zOp3bfPJo0YCLw7BymL2*1S8eX?2>NlMj!yJk5%9Y(AZT40=v^-M?mK6$aHpYPQq)C z14M|KT6jY?;4ob_CticH+d?g7*GjivwMa^xeTS2U7t#Hz8P)5}m9J5RctMH`A=nHE z#Xt;+HPlzw)_26#sE_I7P!K9uE<56iy#J=Z9n`mm?z?>um1$%{BR_dg9eykBysCFk z!uVNll6iOQG28c~;O{5}4|{>V)t3~7B8GMd*>%fjp7_^f2(#Wr@=?p$_NG)WV%wtD z6Dbll;0a&nH%q(7by#n|$^>-$h>a+i>+gNUZIB|nJF(dsf+GssCKOYmGuD(c{A(Yp$TZ5Rzg10EtvekLLz95y z8jsW{c3XUVu&K%Khm(4Q``r)Ti0s{{B;vyFf%l}6jvx4WSo=*@4BLSBtJB`-({)o1 z7LH5T%0tMkPnWPnp-5TRb|r3=P|C!q$C+jz9(Qv45%0w z=G|pY7Iu^k-Ud9-(o7gb`-}s>QNZ?tGXTbBdmnDzymiZKWWLVb9cyFDO6wTVNRw|q?7dbNq`mr?#&+dr&H#A zIS(f*NAHZCg?b~xt9iXijRBLdq^_Q;nSE=*8(u%*F&BxZr%l>Ea<0HesvMaKsD-~& zor2L(Vm~DVv|v%e0;&_JV2tlR=CmJD(g^`ow%uxslA}DX5x9s`vY}16LtSvhvF6*G z9^8K~Ld>d$PFM7)dHPnde7y4jiYT#JG2^-s7VsZu!Wb--|m(;xvpxCz+HZ-c1}O2&s8P zT#10n#zq@|w7zxiq%n9j%+RYhTcRrKJc?-zq}}Pkxc&M_X)v9n+t#>!qvO`J94O;{ z0tjE-&{vhtd~}pzX}lX4kJ3NzZW9^SYeoO~9zIED-RXWUv_7!{i{t{=E^{|PEn}KT z+l9UWpx4e_JkX>GG{71g)Es@Q9j$yR@CGhiuUC*g;0BxjU61`Qq4i(R*I(6Gw0HfB z%_g0gahhZ!^XAuI{wo0g8uxkrG|2u5u6G%2C+lA0(t89PY>W?!+ z*$g-g2oPvNuv&K#28Ld+1<+RQcFK4(!8inOfQE&j z-%X%jG0<%{KpA6L4CWA64;QgYOQ)e(iwbMp>tNF(1iVqgV~f%HdqEapA9M<}ifT8n zUA_OlNnI8>?}khcMwc2kJskSuUf;1;(nmnBMMzG%|P^Ck8gpJ+4C1KYAigJl)kXS0Zh_V2{1Ja_- z;uzTFo~wDe91lK_+Sl)s2L=X0Kw-{tZ&?%A(_t{XC18@gy87S+piu#WnWtAR2p{r+BV)VM3xPu%--`_5+L=?;Frc5x1{ z{z0;W!T&PfebO^bE*OWHj!qTrWD^pa&3<|g*<0=p2D42+VBv#;f}TBpj)AUi*Z?7I zig}tOV9KFe{(gM_k=`f)_X#nuA_0{G&RY9n*9I`Lt?EQat=Gl`oJxkj$0z=Di~m!z zp+z(3j=ja~B*#zxdt&M@r5arPs}@G*ihujOKgVM3xj!;YP$2r1mH2Z^tNc*~l4kv% zMD}0JX`nUbhxPu4nf*V1`=@jLZxZb1HFyIH<0ts_526L8j9=~g|DxId^{pSn8_;8a z!SAzcI7e50Nx?TQU)F-`TK~o@PLdSOz(Cfm2f(qotrzdM)oY3%DbE+O1W^(jNAP%2w-T zV7P5Q?YD2qyJtiYpq&mN4$5Iwf1=9`f(cXiVO2#+#PGwp+rWG!F>88p6OhAtMNR~F z{6>!s6RnND&9&Rn1DY=jplfjSCE41Fps!&5k>q zT&&x(Ie@A|<)bk!kzLRqYfj2DDs9=qa9HFn_a$YE3h}B?wYN$KK^Aq2pYDaxaMYLI zBdTD$DG8k0rFsN$xBj_URV1`YaIJcaU1DW-)Y-vbEc@tL6^WKVew>-yDdy1(yT>uX z(Y*d#_+kKYyC1yNPG;?H)Pjq*yD#3;{aO$I2Bg?reWL~2eQu(;9C@p&b*Flh<-@vm z=95xetlxaifJamDq|*ppqCb92`2A>m&bM@o_7RlWYFK#kF$6Z&YMwuR_uXihxGlTtR46qW981efdQ9+f+XSF8b2ly-g{B8*`tl_S5YZAA3ri28+rD+V^W{{n=0qpT&9CDc*y(~LSDVXxBN}@2&mqHT#(jHbfZe!9Lx@W#zyIM9 zY)Z_xgTxPQg?XkMfuiUO5Ob`)7j$eur@n$8we8t9p|dmwiL_BZsM)R!&qG30c;M{? zz6M^ia|O}C{%S4V$BUH$d<&H*qRLPTTse(PA?I4NiCR9`@8lGkaiIsnzATKew*iyy zVnB(Y=kP6i0c+W5b*BOITCDGW=5^mu_M%b~#3zJ818LE+VaPD!4fb}!cRQDaS|x3J z3sd*%?|LTDfm>zm6T1l`JG*8a|y=R&NPMElK+YZ41Z8|#QLuLJ(;K`LBbX6b z*ETHyvx`33uSGt__Jsr9Tq=e6%+3HECYv#1mc)v#IvwIm%AmJD!xBo;E)640H6H zBWLdU+uWwMjOu!FitxFTFtzX&PL3bpOLD*<$jcWY@)Wx(R4)9y&Mw`lZMUECg087r zBB_Bv%De$Ew{q0dZiDXF3j_r9r*uB=yNCGMsMD#i3%#4Z%1$5qwTtb&|14;KIP5n! zetX*g@(W}2){eoxA_|vPQ`&}8CH5a~{y54n`bLM5=}UKnfd-syd7>SCD?_W{F^Dq? zmeB3$FUlG6T}|ZzTdR-f&aZ3_&h!jN+!K&GF443pU$Lw^LrGY!6CuHV4fNr+-EU9O9XVOp(Kp!APA5qz7sOiHS@ zqH@S028Brj;Cet3z05tm_F|g=NsjIz`==cY+tTh8l;ekf_@`6*uV4s3$=^aUXjA)t z2H-yf`8%|z{$WAky#?TeklVV>x|`&?+wmqK8$c(Nku+ihjsE^XLE&C6)U80fw?J}U zq!J7Pu(4*1izQmj0yh-2Yu15=K%1$Cv^NUjf&c?8YCQ9Tu6_SWbS~}8W;}mNNY@GE z3#k2P1L!@1UYa@peD>G6+XG)1{MHnZ34apC7a{oM+?hJ1CcrJ`_c?NSlby}?k8=w; z6iYx79DW7_v6NS8dATr}6#xyu7{GeO0S&L15t!EhF^A2#)d7tG4hku^9DE9(=9lT| zY9=O3z#_l`4kpei@^Fe)%A;@N)6LCbKflH#aXtG03Jr zk+=@-R~QjP4lq>{^&0CP5HCz<&9F988x@UU!oFqa5$$W+jZQJeprVy?E0`$=~M3WHYrtJ+1~KwAS4 z12baY^8eplo^|uM)HLhl>1ZTEB>tN_tc@xa0~VXAbGpcaqu=oY1!x<3uT@Abnj&CC z0Ss_ScwH-KM5hD|RqX2NZ-K|~>C-0-fG4Y^ilez5#K8vhPiEvUa31d7yGJErMGDFm z>>M1=fO+mbs47;i|MMBh&TU}k%h|)pbZC~6?*TOHN2vzrJY{sLXExn1+VvmN{8J!9 z_e^{LpM&myqk0q2T=5TS{rBMa=2g&1zx$(o^grtT=UDpRjP$PAy+44B!~aqj^86h_ zkw%V`{XVn&S%&(T6aJe>XL0ZSEqP$4-v5m+`;$2NClCLpM*>Y_|C)0w-49vd{6}WH z27V&o_Y{5mPCoJjzZd1Js?ObUy4yiT>T>I}RW+|l*KguQyv73%LA9{QjG8<+MsL@^qK!y|4T21?A!SPuYxHo!jm<+llvMoS5>`YUEfE8em>zC@ ztr@Sn#06=bmLy}1+8p<>v_}#vhriP+N-Dtu_ATzREf3l`pspIu+8Y>^a67oz#zN%V%-iBxFq~d=+v2BJFFWZH6BP z)28qw$y`{gb1|i%_}eWs^nk{@{Ov)b6nf1K5MnBAMrR|3mcG0KdMR;T7AQB^r2L2q2O@jR7kI+%3|R=mcwFfS`9Y9elc7vFLF5 z6;W3mEj?bY+9Ppawk0S&7yjTa`HHI#;k&~a=XtPp6Rscn_2mIPpX3EuPuZqNcf=Wk zn&^vM{9?&e8=nz3tF&sLj$Dx1eXHlRKQVcVz7fnB9e!1ZX~S6t8&cLL>0gu^57&b~ zzME;g&~9CQ=zL2T!(lfvW{WIU#?8YlgAy%O1T$jS!*Ah#vn-x2Dl09ba z4bz)A4lt4S9jvfO;aY_`Df^lg&|lY15b0m5cWY;I-Y$EqrZ3%Bqm(uxgHZp38gV>t z+HNh6$5(83#;TIA1>9rj{h{`Ap}?{4&%4J??{{QuFUtH#&HSJXCF#zR3$2ZT5h92l za%fJpDGC|E{Y)uKZ?n$PIQSXeLY39>PRkzpFUgylBfhR3d&{)P+bjh!vLh=cjW*o* z?eV@9K6zW|8`iwq);>|g3BL}_y~0Atl+qFfGq9{#k@6%EZX7;(^pQ555|c}2XKMJx zYeY+ids6`MmIkSCbyw=aam(wncHwCGjxDwBw&8KQtvR>lA+k3JntRMAQuY_)!;UqB zcoxA+{RBGhcrEP}=e?)EFg52U!ozD>ZLRN1ah_h=Z*Npjd%F5Ss94g8^fpc{hXMDR zFGxD<)4O1sH9lZ)YQLjXRTvhtsnL{N_It1LaDiqD#xpKc@qUJd`Rb9{DN4bb z4YRo&tU^HSOlQQk^H()~3HO~@%8z`$$&4eHg4n4JoTR2g;SebSgf6%2`RPQ(o zH`bv#&uLso(WK;5%t_RUGzh>eSYK3p_Q)X5uBhR}3Ix(4ps|FW;-d)?u$+eF=*M?r z$uWh2(NrW9i9LY|_RR@~g6sx-XWx<@?HIa?eHq>0y`Lxb?ZYP10sh=h|J>GKZ@WhW z-)k7k%)OO;`<6+f)8$!h^G%0z&kJg4fzf93y|Z{l>&F}xPCF+JhlJuDBTDQLQ9FUC zk`MRk8w_yy)P)b)a(kOjS^K_6%jogFid$kjrj$Codg|L!Rp;~0ktI)-Oxx(J!ARka zBV%tZ2{OMbsGzrvIc+93(7}+|WA2?w?&iLgJOGbQaF0xjw?nhr_b08P^Rl3F>HTB{ z^pME`Y63dpgbx<|Sp@X4u-$~XcJzvr9xS!pn08+T1g_jx5wb{Tx!a*l2UAA#jf$~V zwXjgTh>{YSuknt_Pk~2Z?~EV}?6RzLtSuKRT*(2h%7)uB&#t7tjC8xbVt4H$M;fVb zQ#azR^&Yxu^h&>OBr^TFvg*$I0617nrd0F{IlO5C4jWH#m0*5I5T8nE5r`w`)16WSWh zNsfQz*$;UgO&(SY|04m=Ub5YvIw2SGyEi#V`&Z#U789)gq>Ao61Xlb2)ZXyy`16s- zCg@i@*;|nZpfi#5-X-7(L%>Qm0zlZJt>qUlOb$0;5YR%$b|>jNSa8U4=mQyetPSfm zKXCA8kI*x6_g)J=A83>Za#&|)2zx?$sV~VQ))wHb!AcBk zMYU1D%h&=dXjSV&e`@#!f#32QNHjecKYt9U1@(bGeH&4lUKs@U|Bu5D>IN^p|2FxL zkM}qw0sDfsv${T_m-zv`kXB&fEYP3$u-t+e@bG5+Zxlvlo(?4=Gt-Bx+TvAFe6EPy zpLkLO@h@r2!-RKW87r%yt3OgMK=dT>8)HI@jg4ugyaR3J&F+cwp zBqtZIJ2?r0O+ZJr`JIqPhib{6Ep)LJ;sGUZSDF zr`#?76^3aiex~q(Gz;Wy!dBm&f%T#09K=Uz-TAx^*0Vqy+8nkw(Ejlj19S+2US0>p zW3Xrs`na?_;ud|3Aa}I{Hhyz+GeD+@1L&o__^rNi=tAvOK|U!UAOI=18GQ+oNV7Wu z3_@lXL8q*1tzS4-ZJ>heESNloRWA_}Z(p^pPBYM-@^z0s7^~4LqM1Rn2L!|~fOGJ7 zm-BziRk+Wj^~c$N)zp9b_(Izk*Fr;o1-<{>NAe4WzG?aF-;E-l)TP~zw9w75Z1ISG zbW453Z%|BJf=N*%u) z1k^4~ua@xsPSP)&x&cG3qN8L(Y_3A*@D`;6~EYEspI(VISg!7=(BTPHxF3y7j#& zEnU~R9FYY1e1;Q7LcfMbr@MGO7}GYxpjKkNa-~G)eBIT6Yw8AF4;EhNZO^^Sd0Xb% zZt#^YHyC?$uli}e^()A9li26uxj|;5(n}hjZWk(YX|A5knz^#7-$}yYx}5d+nPYXQ z2>0TH&F}hJIbE zhVEE>AKhF}ZcPw2O__h)ahk9?pqGu!-&a1%y3*oLCyT)s6_!^l*Mh5&hj}M?VRU2C z0OE%G>1$|J^{r+B1lC;5%-ofaoZKl`_~tFM>NB+r^+UB?U2A9RezaON(;o;rd{2?$s2OLBZ(6K9s1-Cli6@dupc6U)h&o&g)0sy)h>AagcN$$31M@!6W& zqKHtIzP_+(tBa`6i~4zo;eCcN4#JIVZhfMMmc{45rgW(KMwM4wS6fZ_Ht)L}9MiXl zCl{P|p6Sl+s><2toU5BT_2KxZ*; zLk#4xbxG2)c?>K+`A5tUY3<|^))OyV6|`hAQ3sm?-G_e}etl`h;X&!mbE#_`pH3}l zjOuTuC{>oUt(1}uNW}M*a8}RObUj5=UHTrK$eJ$3EMY|wsXwHBP>@hfXSU6g>b~HV z*z0vxM%d1;uHEvk{kgj%5LX7u;zcn z#EJK_D(0vrj*I!lje)WBlzejW6mf}?o>7mhZ5-D8?WGdzw$~D9a+yq*^abf^Se7tm z3@%x@fYOTcE?)n!J3Z+@zRrGI>8F$91u@QZ{kA5)Ft!?}ii{bp*o%9qktv*G?P?^|x1Ks4V+Js>{<*xQXf5TQaSi{$4mD z!ue%%p>L4lmWScIqdc zu{Vm75S?$=9)|T-yy9)%tgI{qVgV0tWGMwG!nRMnY1O?!9V$u86OG5^LP7w1!>ga# zwl)JseS*1-3<{zTO5NPs(T>}j!vyKHN#9jsk86)GW>7eK0!>eyVY1A0 zaPqV2OrK`wCo<{AVQMM`;vpJXYuh5;$O-kx2KET%bhpOvp*uDF*c&_VQ0zH`EzOTp zv0X>ZdKny0cRBZI&E7y0oxYeq{;4ZOYFqy4l^wAR>|W8h`f40er#GAF{X*~Avgo+G zeO$7Kckhlb$hkTFW4EwDnzzZW24_W;Dff!i~=h&rheKBmLjZs9cEUtam7x@9FKdt{vZMJ#3a0(dvZ1 z#A=Y9Z#R`H5Er7UHNPB%(($@>ZMbK1{WPy1l_!ecsqEn25qX(guH$|YZ=c&_NX|$_ zNU!j0?rcvy^G`08&Mn>0K-B`j~nth#5r-fX*1 z#UA(9)Inw`7Y*BQ*;dNV@iC2_*T67x&W(onV=|_ zY-RY1CoQrzBjKlAf2lm>r4VT|WUy%Ocifmz9_DayqR{g3z>@`o4P{m{ds=ga%`FA~ zyVw-!F(oM^ck?{X*DJVeRH^1i#Cy2;$&FvJ_gz%UZNc+XC*%Y)I-A4IH_K~^)ttpB zhtfDEY2`-&4opH7Jd3d~7ui}c#Z!Pbljvlr=9xpj+IoXR9 zbGSS)8Ag(s84|w7kp1jcK+A^p)w0sdRVqP+bp20`p5$er)ziU@>~S^)CbB*d5Ew%x94aw(-qkL* z#Qo@QUqHw7E2EyUpn(&YB;f*fE0FJ#W{)W{*o5Z)l)L+~gQK6Bt4ai=-{AcZGS*dP zJ;DZ=Cbz_TReTj9^>{oDUtPaA>pjh~EpXA&2Ti*D%O%XsyK==Yk1^F9wj2`{HsxmhXgRSfLfB8W6A6_fYOKSv3#i1il)H>R!X{m5ffs zf2!HVJ=)xPcFxw+jx+!G(sSy&)n+=wVV^4(1H%M|Jgpi@_l}(_x9#fjQ$`<1(FE znm1?hwCps0AC_@`)IWla5J&#(p5Z=x$bjSKhewALBb7D@wOjRcr_t`tkf9~*MK_;r zbKTb?ZqK#fNYz~@jkugFxJfo**v7Q&uxY0^k;9~1XuplOYYTyBJ3I%|@(-LfVQHBW zzpBclGuI019#UA9dL0sHJ2L0XxVl2EPSOX|VV}g>#0x&j>ywumbz`fVrG3jlW9x^4 z95%#uy{TTxq86*{hVC`XpWqWSXS6x)(O)T7(=);;i>=)I zP<}BZtbeKJ(S*FK2nC_pB@O_Ztlt3EU;9>pq~ z`r;Es_X&H;GtD40y2{<$7`TJ2VAoZppla!;vEtKi%I1!V%Y3JK@uCNdSxk21@-m3wq*j;`U;PhT_H6J^o(W!p24`<>Oej|H4UBT5W-Zu!|hv2f97<+@YUNZ zmwz>iN+ry_DfC;4qo-kObsPgu0#~@F`|gw07PQw8OJ-vmHI=SIk&H}kK%?_A+;epu z&u<3zORMQAMb_mdLBTC7(x z)U7sL}yvq)aJltoCSR-A^>m`okC=2(f4+7l};?_|P@|!D_ zZb8Ej_t+GFBC&p~FMVGohNAX5hs2jzZ5<-xWoII+#pKxvFXHxPjve03jN=GMq%AG_ z-FS5Djt}XUphZHwvT?S@K5|9d!zr#r!-q4bk2^=@o)mnLVUEprGn~_9wlw6>PKdGO z6Z*I+m+7i(9&}k&YetQ*+eEc)hMbY2V?UHrdn)EB3vYRWwx&Ae!Tg3~$oq=%o%IB} zNRByv)5sTAJuzR-PgHsE&wfj{3B)QGGw+S?HMb+OG_{&wIo`fNDPdeTpQTuoc% zpnnn&$yM9mv2{O;WnsKYWLU_JXOKa_>SFDK1 z4(IDQrFXx1+g5@?db3`O()fMJOZ)>;vI6 zK&j8U6)`a}y)UpqYPx>(Eo!mzh~PcIREuE7cfn2zvWiyoR^&3_n15}E@T_#!bLRuI z_e zGxv8)n+~Ap0p@?t?Z)-r{ltMA%TwkAs3xZWINvDh%e7;N)#7+tgrFi@NaI;=Z||0i z0ssFP9;wKa@w;)@K=psB*_G5=m|J!{vVhP4-;p_tlR4)6?=Ikp#WA6rKy|?O!_OZu z#ihCT=hR+)x8(n2ppA=K%X0j=0y)(OwXQ!W_m0Ma8{#jCIY_zwIR*Dmh5!E+c>@<~ zU)^iOO!e@O|M$IedHFjI^56N=NLI$OCJ7okxDm0`1qijQ_IT_z@f4VZ%~5VEm*-3h6!e_n(8+ql!_Fy!Tew2{D5#~@r@Xap#&t408I4j;TdV4p@{~tADRw&cc-9 zH==-h2fZuAv?8paCST(mM##0SO>wE+iUn7>b%BZZ=0dA!g}VfxSyOR|lY3E{^GxtP zgptM$5G;kS1vl$iSc_rdNbmElnLq?dgCr6h$++U0ENzv{4SCyw_iV)0R)}4BPiMp- z4IW@&{}Sl!FhM*B4c%d>q_+qrY2%yVpC86dB_l?B5Ip-|X|mU>jG7PlHqV|t=OB#=LGv>Z+5L(xs+xqT$`ojbt#(Cj(5nI%ip}ACROAm$ z4|$MN0H0wUf5d_ci5x5Vc4H4EZxZr^Mg8UjaEaqrq>b~^VbnjBHjV-m4HW5rf)R-w zk!j0hBO33F5toqIB`BESrVQ!4ZioesJjl6ZF!$@j=z*Vg~|L)E2=6Avz4i z&V~qjOJVR#*v-%X#wPlV7U&ev4ukaEK4k%2B%XRH5FLC?mY~@o!yC?h^jwB#g;ef@f-H{QRs|3}1U9At{1)!J)L)HpBA_hnk+VpG ztS+*$9?UT%Q|vI20Na80RMFNcGNy$=@XRTI&I^`G7Z#7~H8DP{s+t5hnB6sfU0tcC zjkdu9lU<45`UuQcOofJpEuuZD96%V`T&Lg|_DCB=K%gWQ6r>lzVUl!8iNJ|u`0?be*y+>e>2^_o53=dn7?h1gyhQQ3=rjmw!A7_wmCrI-A zl@f*zYpbXh?cHL(L8Rl~tS3UEw4CWAm5fip1KXoNv} zjF^==!mYps4MAMt$;j8PUL@}Tk?)pLFO}pwbEC;V%b(ZqrWS@}&gLTin{IfoIej>| z7ZIz(tvY`X`R7lYpN-r&2;*>9#r5Cg-2dqa{UhY`UEcWDFBeQe;Y3m@AiKlZ1&~!b zEJReH1xD({4Bfp(IVL2^FVOkn0?gV?Hed)G_8f8wp43j!Jg1sLggyk(0L+T&LD7Y_ z`eH+MR*;Fc6&XO#g8{@dGDLxDoTK2dX~#&7ga-S4W-|7oVDiE0q0Zz))g SBtXk1hVz>G=knC80{;UHG6V1c diff --git a/doc/LectureNotes/chapter1.ipynb b/doc/LectureNotes/chapter1.ipynb index 9dab26cdc..d2273f8f7 100644 --- a/doc/LectureNotes/chapter1.ipynb +++ b/doc/LectureNotes/chapter1.ipynb @@ -3411,16 +3411,13 @@ "TrainError = np.zeros(maxdegree)\n", "polydegree = np.zeros(maxdegree)\n", "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)\n", - "scaler = StandardScaler()\n", - "scaler.fit(x_train)\n", - "x_train_scaled = scaler.transform(x_train)\n", - "x_test_scaled = scaler.transform(x_test)\n", + "\n", "\n", "for degree in range(maxdegree):\n", " model = make_pipeline(PolynomialFeatures(degree=degree), LinearRegression(fit_intercept=False))\n", - " clf = model.fit(x_train_scaled,y_train)\n", - " y_fit = clf.predict(x_train_scaled)\n", - " y_pred = clf.predict(x_test_scaled) \n", + " clf = model.fit(x_train,y_train)\n", + " y_fit = clf.predict(x_train)\n", + " y_pred = clf.predict(x_test) \n", " polydegree[degree] = degree\n", " TestError[degree] = np.mean( np.mean((y_test - y_pred)**2) )\n", " TrainError[degree] = np.mean( np.mean((y_train - y_fit)**2) )\n", diff --git a/doc/pub/week42/html/._week42-bs000.html b/doc/pub/week42/html/._week42-bs000.html index d836f3987..cbef1a23a 100644 --- a/doc/pub/week42/html/._week42-bs000.html +++ b/doc/pub/week42/html/._week42-bs000.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -386,7 +400,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 20, 2021

    +

    Oct 21, 2021


    @@ -410,7 +424,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs001.html b/doc/pub/week42/html/._week42-bs001.html index 6b5cf1166..114bc3739 100644 --- a/doc/pub/week42/html/._week42-bs001.html +++ b/doc/pub/week42/html/._week42-bs001.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -419,7 +433,7 @@ MathJax.Hub.Config({
  • 10
  • 11
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs002.html b/doc/pub/week42/html/._week42-bs002.html index adb90d7e3..541095256 100644 --- a/doc/pub/week42/html/._week42-bs002.html +++ b/doc/pub/week42/html/._week42-bs002.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -391,7 +405,7 @@ we will also study the usage of 11
  • 12
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs003.html b/doc/pub/week42/html/._week42-bs003.html index 736b8e062..dc7f4212c 100644 --- a/doc/pub/week42/html/._week42-bs003.html +++ b/doc/pub/week42/html/._week42-bs003.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -408,7 +422,7 @@ and output layer to any given precision.
  • 12
  • 13
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs004.html b/doc/pub/week42/html/._week42-bs004.html index 72a59fbf2..92d65523f 100644 --- a/doc/pub/week42/html/._week42-bs004.html +++ b/doc/pub/week42/html/._week42-bs004.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -411,7 +425,7 @@ for the solution to be unique.
  • 13
  • 14
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs005.html b/doc/pub/week42/html/._week42-bs005.html index 849c19ea5..3158ec573 100644 --- a/doc/pub/week42/html/._week42-bs005.html +++ b/doc/pub/week42/html/._week42-bs005.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -416,7 +430,7 @@ As described previously, an optimization method could be used to minimize the pa
  • 14
  • 15
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs006.html b/doc/pub/week42/html/._week42-bs006.html index 22d2f9d49..28822d027 100644 --- a/doc/pub/week42/html/._week42-bs006.html +++ b/doc/pub/week42/html/._week42-bs006.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -418,7 +432,7 @@ The neural net should then find the parameters \( P \) that minimizes the cost f
  • 15
  • 16
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs007.html b/doc/pub/week42/html/._week42-bs007.html index ecdd75585..d89802fd6 100644 --- a/doc/pub/week42/html/._week42-bs007.html +++ b/doc/pub/week42/html/._week42-bs007.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -400,7 +414,7 @@ Automatic differentiation is a method of finding the derivatives numerically wit
  • 16
  • 17
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs008.html b/doc/pub/week42/html/._week42-bs008.html index 1dfcfff2c..5e5562f23 100644 --- a/doc/pub/week42/html/._week42-bs008.html +++ b/doc/pub/week42/html/._week42-bs008.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -418,7 +432,7 @@ Having an analytical solution at hand, it is possible to use it to compare how w
  • 17
  • 18
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs009.html b/doc/pub/week42/html/._week42-bs009.html index d61f6ebe0..47e7f704a 100644 --- a/doc/pub/week42/html/._week42-bs009.html +++ b/doc/pub/week42/html/._week42-bs009.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -409,7 +423,7 @@ In this example, \( \gamma = 2 \) and \( g_0 = 10 \).
  • 18
  • 19
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs010.html b/doc/pub/week42/html/._week42-bs010.html index 819950858..0e1ed0f8e 100644 --- a/doc/pub/week42/html/._week42-bs010.html +++ b/doc/pub/week42/html/._week42-bs010.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -403,7 +417,7 @@ with \( h_1(x) \) ensuring that \( g_t(x) \) satisfies some conditions and \( h_
  • 19
  • 20
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs011.html b/doc/pub/week42/html/._week42-bs011.html index 57659d870..db4c0b075 100644 --- a/doc/pub/week42/html/._week42-bs011.html +++ b/doc/pub/week42/html/._week42-bs011.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -415,7 +429,7 @@ $$
  • 20
  • 21
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs012.html b/doc/pub/week42/html/._week42-bs012.html index 1b1fa9e4c..5eebd5097 100644 --- a/doc/pub/week42/html/._week42-bs012.html +++ b/doc/pub/week42/html/._week42-bs012.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -424,7 +438,7 @@ is fulfilled as best as possible.
  • 21
  • 22
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs013.html b/doc/pub/week42/html/._week42-bs013.html index 91aa9eec4..62de6019e 100644 --- a/doc/pub/week42/html/._week42-bs013.html +++ b/doc/pub/week42/html/._week42-bs013.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -420,7 +434,7 @@ for an input value \( x \).
  • 22
  • 23
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs014.html b/doc/pub/week42/html/._week42-bs014.html index dc8704f7a..c8cffe1e2 100644 --- a/doc/pub/week42/html/._week42-bs014.html +++ b/doc/pub/week42/html/._week42-bs014.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -418,7 +432,7 @@ $$
  • 23
  • 24
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs015.html b/doc/pub/week42/html/._week42-bs015.html index 57a841ecf..dcad8812e 100644 --- a/doc/pub/week42/html/._week42-bs015.html +++ b/doc/pub/week42/html/._week42-bs015.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -403,7 +417,7 @@ The input layer will consist of \( N_{\text{input} } \) neurons, passing its ele
  • 24
  • 25
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs016.html b/doc/pub/week42/html/._week42-bs016.html index a8e7a530d..d56208013 100644 --- a/doc/pub/week42/html/._week42-bs016.html +++ b/doc/pub/week42/html/._week42-bs016.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -412,7 +426,7 @@ $$
  • 25
  • 26
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs017.html b/doc/pub/week42/html/._week42-bs017.html index 1bca0dab2..b770e5d47 100644 --- a/doc/pub/week42/html/._week42-bs017.html +++ b/doc/pub/week42/html/._week42-bs017.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -413,7 +427,7 @@ $$
  • 26
  • 27
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs018.html b/doc/pub/week42/html/._week42-bs018.html index 89053614f..b16c86f2a 100644 --- a/doc/pub/week42/html/._week42-bs018.html +++ b/doc/pub/week42/html/._week42-bs018.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -428,7 +442,7 @@ it is assumes that the number of neurons in the output layer is one.
  • 27
  • 28
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs019.html b/doc/pub/week42/html/._week42-bs019.html index 68256d1ef..36913c414 100644 --- a/doc/pub/week42/html/._week42-bs019.html +++ b/doc/pub/week42/html/._week42-bs019.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -411,7 +425,7 @@ $$
  • 28
  • 29
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs020.html b/doc/pub/week42/html/._week42-bs020.html index 31cd5cb96..b67affdde 100644 --- a/doc/pub/week42/html/._week42-bs020.html +++ b/doc/pub/week42/html/._week42-bs020.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -412,7 +426,7 @@ In this case we seek a continuous range of values since we are approximating a f
  • 29
  • 30
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs021.html b/doc/pub/week42/html/._week42-bs021.html index 8b7e4e320..145c04b4a 100644 --- a/doc/pub/week42/html/._week42-bs021.html +++ b/doc/pub/week42/html/._week42-bs021.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -411,7 +425,7 @@ Here, gradient descent with a constant step size has been chosen.
  • 30
  • 31
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs022.html b/doc/pub/week42/html/._week42-bs022.html index 38608ef8d..358d76e3c 100644 --- a/doc/pub/week42/html/._week42-bs022.html +++ b/doc/pub/week42/html/._week42-bs022.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -433,7 +447,7 @@ $$
  • 31
  • 32
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs023.html b/doc/pub/week42/html/._week42-bs023.html index 23a977b9c..2bb8c7c0d 100644 --- a/doc/pub/week42/html/._week42-bs023.html +++ b/doc/pub/week42/html/._week42-bs023.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -543,7 +557,7 @@ MathJax.Hub.Config({
  • 32
  • 33
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs024.html b/doc/pub/week42/html/._week42-bs024.html index aa491419e..c4922abb5 100644 --- a/doc/pub/week42/html/._week42-bs024.html +++ b/doc/pub/week42/html/._week42-bs024.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -563,7 +577,7 @@ The number of neurons within each hidden layer are given as a list of integers i
  • 33
  • 34
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs025.html b/doc/pub/week42/html/._week42-bs025.html index 0d35b2101..bdeea7b05 100644 --- a/doc/pub/week42/html/._week42-bs025.html +++ b/doc/pub/week42/html/._week42-bs025.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -415,7 +429,7 @@ Here, we stay with a more simple approach and implement for comparison, the simp
  • 34
  • 35
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs026.html b/doc/pub/week42/html/._week42-bs026.html index 2f9a16bff..ee6ea7225 100644 --- a/doc/pub/week42/html/._week42-bs026.html +++ b/doc/pub/week42/html/._week42-bs026.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -411,7 +425,7 @@ In this example, we let \( \alpha = 2 \), \( A = 1 \), and \( g_0 = 1.2 \).
  • 35
  • 36
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs027.html b/doc/pub/week42/html/._week42-bs027.html index 51a25b4db..57ecb7d72 100644 --- a/doc/pub/week42/html/._week42-bs027.html +++ b/doc/pub/week42/html/._week42-bs027.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -416,7 +430,7 @@ $$
  • 36
  • 37
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs028.html b/doc/pub/week42/html/._week42-bs028.html index 7450e5623..c61d9aeff 100644 --- a/doc/pub/week42/html/._week42-bs028.html +++ b/doc/pub/week42/html/._week42-bs028.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -565,7 +579,7 @@ The network will be the similar as for the exponential decay example, but with s
  • 37
  • 38
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs029.html b/doc/pub/week42/html/._week42-bs029.html index cab10f322..f26d78b32 100644 --- a/doc/pub/week42/html/._week42-bs029.html +++ b/doc/pub/week42/html/._week42-bs029.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -519,7 +533,7 @@ extending the program that uses the network using Autograd:
  • 38
  • 39
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs030.html b/doc/pub/week42/html/._week42-bs030.html index bfa68bff7..308fbb861 100644 --- a/doc/pub/week42/html/._week42-bs030.html +++ b/doc/pub/week42/html/._week42-bs030.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -421,7 +435,7 @@ In addition, it could be interesting to see how a typical method for numerically
  • 39
  • 40
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs031.html b/doc/pub/week42/html/._week42-bs031.html index 28043a4c8..89ec009ca 100644 --- a/doc/pub/week42/html/._week42-bs031.html +++ b/doc/pub/week42/html/._week42-bs031.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -428,7 +442,7 @@ $$
  • 40
  • 41
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs032.html b/doc/pub/week42/html/._week42-bs032.html index 1cfbb4412..20987bc82 100644 --- a/doc/pub/week42/html/._week42-bs032.html +++ b/doc/pub/week42/html/._week42-bs032.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -549,7 +563,7 @@ MathJax.Hub.Config({
  • 41
  • 42
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs033.html b/doc/pub/week42/html/._week42-bs033.html index 06fa1b87e..721c309f8 100644 --- a/doc/pub/week42/html/._week42-bs033.html +++ b/doc/pub/week42/html/._week42-bs033.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -488,7 +502,7 @@ which makes it possible to solve for the vector \( \boldsymbol{g} \).
  • 42
  • 43
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs034.html b/doc/pub/week42/html/._week42-bs034.html index cbb761dc8..62ee97617 100644 --- a/doc/pub/week42/html/._week42-bs034.html +++ b/doc/pub/week42/html/._week42-bs034.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -592,7 +606,7 @@ We can then compare the result from this numerical scheme with the output from o
  • 43
  • 44
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs035.html b/doc/pub/week42/html/._week42-bs035.html index 507cfa53d..50e0d85c9 100644 --- a/doc/pub/week42/html/._week42-bs035.html +++ b/doc/pub/week42/html/._week42-bs035.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -413,7 +427,7 @@ where \( f \) is an expression involving all kinds of possible mixed derivatives
  • 44
  • 45
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs036.html b/doc/pub/week42/html/._week42-bs036.html index 251e92dd9..33e9673b8 100644 --- a/doc/pub/week42/html/._week42-bs036.html +++ b/doc/pub/week42/html/._week42-bs036.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -413,7 +427,7 @@ The role of the function \( h_2(x_1,\dots,x_N,N(x_1,\dots,x_N,P)) \), is to ensu
  • 45
  • 46
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs037.html b/doc/pub/week42/html/._week42-bs037.html index 832b00ada..38f99f949 100644 --- a/doc/pub/week42/html/._week42-bs037.html +++ b/doc/pub/week42/html/._week42-bs037.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -413,7 +427,7 @@ $$
  • 46
  • 47
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs038.html b/doc/pub/week42/html/._week42-bs038.html index 4d67376ae..7f325a6f7 100644 --- a/doc/pub/week42/html/._week42-bs038.html +++ b/doc/pub/week42/html/._week42-bs038.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -409,7 +423,7 @@ $$
  • 47
  • 48
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs039.html b/doc/pub/week42/html/._week42-bs039.html index ef2217815..ed3b5cac7 100644 --- a/doc/pub/week42/html/._week42-bs039.html +++ b/doc/pub/week42/html/._week42-bs039.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -415,7 +429,7 @@ with \( u(x) \) being some given function.
  • 48
  • 49
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs040.html b/doc/pub/week42/html/._week42-bs040.html index 1de5b9aa6..b9e9ae624 100644 --- a/doc/pub/week42/html/._week42-bs040.html +++ b/doc/pub/week42/html/._week42-bs040.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -422,7 +436,7 @@ First, we will look into how Autograd could be used in a network tailored to sol
  • 49
  • 50
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs041.html b/doc/pub/week42/html/._week42-bs041.html index 1c46d4057..16ea3ed35 100644 --- a/doc/pub/week42/html/._week42-bs041.html +++ b/doc/pub/week42/html/._week42-bs041.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -452,7 +466,7 @@ network at each possible pair \( (x,t) \), given an array for the desired
  • 50
  • 51
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs042.html b/doc/pub/week42/html/._week42-bs042.html index 64db9f808..9088ae409 100644 --- a/doc/pub/week42/html/._week42-bs042.html +++ b/doc/pub/week42/html/._week42-bs042.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -419,7 +433,7 @@ since \( (0) = u(1) = 0 \) and \( u(x) = \sin(\pi x) \).
  • 51
  • 52
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs043.html b/doc/pub/week42/html/._week42-bs043.html index 26ac6cfd9..6e30681d3 100644 --- a/doc/pub/week42/html/._week42-bs043.html +++ b/doc/pub/week42/html/._week42-bs043.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -457,7 +471,7 @@ mixed derivatives of \( g(x,t) \).
  • 52
  • 53
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs044.html b/doc/pub/week42/html/._week42-bs044.html index 63fe51927..746d20cf7 100644 --- a/doc/pub/week42/html/._week42-bs044.html +++ b/doc/pub/week42/html/._week42-bs044.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -641,7 +655,7 @@ Using TensorFlow results in a much better execution time. Try it!
  • 53
  • 54
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs045.html b/doc/pub/week42/html/._week42-bs045.html index b0c8b4810..a01d76ba7 100644 --- a/doc/pub/week42/html/._week42-bs045.html +++ b/doc/pub/week42/html/._week42-bs045.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -419,7 +433,7 @@ where \( \frac{\partial g(x,t)}{\partial t} \Big |_{t = 0} \) means the derivati
  • 54
  • 55
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs046.html b/doc/pub/week42/html/._week42-bs046.html index 7028af6e7..947f910bc 100644 --- a/doc/pub/week42/html/._week42-bs046.html +++ b/doc/pub/week42/html/._week42-bs046.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -420,7 +434,7 @@ In this example, let \( c = 1 \) and \( u(x) = \sin(\pi x) \) and \( v(x) = -\pi
  • 55
  • 56
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs047.html b/doc/pub/week42/html/._week42-bs047.html index c2dc521fc..fbcbf1419 100644 --- a/doc/pub/week42/html/._week42-bs047.html +++ b/doc/pub/week42/html/._week42-bs047.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -414,7 +428,7 @@ Note that this trial solution satisfies the conditions only if \( u(0) = v(0) =
  • 56
  • 57
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs048.html b/doc/pub/week42/html/._week42-bs048.html index df1bdba67..06766f951 100644 --- a/doc/pub/week42/html/._week42-bs048.html +++ b/doc/pub/week42/html/._week42-bs048.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -402,7 +416,7 @@ $$
  • 57
  • 58
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs049.html b/doc/pub/week42/html/._week42-bs049.html index 786b57a9f..703f34ef3 100644 --- a/doc/pub/week42/html/._week42-bs049.html +++ b/doc/pub/week42/html/._week42-bs049.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -619,7 +633,7 @@ MathJax.Hub.Config({
  • 58
  • 59
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs050.html b/doc/pub/week42/html/._week42-bs050.html index 71ff8ed29..2e8ae2ee9 100644 --- a/doc/pub/week42/html/._week42-bs050.html +++ b/doc/pub/week42/html/._week42-bs050.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -401,7 +415,7 @@ MathJax.Hub.Config({
  • 59
  • 60
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs051.html b/doc/pub/week42/html/._week42-bs051.html index eaecaa6c0..6adb3f2c8 100644 --- a/doc/pub/week42/html/._week42-bs051.html +++ b/doc/pub/week42/html/._week42-bs051.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -429,7 +443,7 @@ Another good read is the article here 60
  • 61
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs052.html b/doc/pub/week42/html/._week42-bs052.html index bbf7e558a..eb05abcaa 100644 --- a/doc/pub/week42/html/._week42-bs052.html +++ b/doc/pub/week42/html/._week42-bs052.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -404,7 +418,7 @@ before the transformation.
  • 61
  • 62
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs053.html b/doc/pub/week42/html/._week42-bs053.html index badd1e515..21ab949db 100644 --- a/doc/pub/week42/html/._week42-bs053.html +++ b/doc/pub/week42/html/._week42-bs053.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -418,7 +432,7 @@ in the input).
  • 62
  • 63
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs054.html b/doc/pub/week42/html/._week42-bs054.html index d0c2972f9..20dbf54f9 100644 --- a/doc/pub/week42/html/._week42-bs054.html +++ b/doc/pub/week42/html/._week42-bs054.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -418,7 +432,7 @@ would quickly lead to possible overfitting.
  • 63
  • 64
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs055.html b/doc/pub/week42/html/._week42-bs055.html index 37b126799..660ddab75 100644 --- a/doc/pub/week42/html/._week42-bs055.html +++ b/doc/pub/week42/html/._week42-bs055.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -430,7 +444,7 @@ dimension.
  • 64
  • 65
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs056.html b/doc/pub/week42/html/._week42-bs056.html index d4b0d36c3..a87e28613 100644 --- a/doc/pub/week42/html/._week42-bs056.html +++ b/doc/pub/week42/html/._week42-bs056.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -413,7 +427,7 @@ A simple CNN for image classification could have the architecture:
  • 65
  • 66
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs057.html b/doc/pub/week42/html/._week42-bs057.html index ceca9f7f2..c42f64393 100644 --- a/doc/pub/week42/html/._week42-bs057.html +++ b/doc/pub/week42/html/._week42-bs057.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -409,7 +423,7 @@ are consistent with the labels in the training set for each image.
  • 66
  • 67
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs058.html b/doc/pub/week42/html/._week42-bs058.html index 89b2ce73c..2633fe27a 100644 --- a/doc/pub/week42/html/._week42-bs058.html +++ b/doc/pub/week42/html/._week42-bs058.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -411,7 +425,7 @@ and the slides of 67
  • 68
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs059.html b/doc/pub/week42/html/._week42-bs059.html index 539716f0c..e949475d4 100644 --- a/doc/pub/week42/html/._week42-bs059.html +++ b/doc/pub/week42/html/._week42-bs059.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -429,7 +443,7 @@ How can we use this? And what does it mean? Let us study some familiar examples
  • 68
  • 69
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs060.html b/doc/pub/week42/html/._week42-bs060.html index a05956e0b..301b1ada8 100644 --- a/doc/pub/week42/html/._week42-bs060.html +++ b/doc/pub/week42/html/._week42-bs060.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -399,7 +413,7 @@ Let us remind of this and recast it in terms of the mathematical operation of co
  • 69
  • 70
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs061.html b/doc/pub/week42/html/._week42-bs061.html index a3b57b303..39a1511d8 100644 --- a/doc/pub/week42/html/._week42-bs061.html +++ b/doc/pub/week42/html/._week42-bs061.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -395,7 +409,7 @@ MathJax.Hub.Config({
  • 70
  • 71
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs062.html b/doc/pub/week42/html/._week42-bs062.html index f9461869d..b826c1a4a 100644 --- a/doc/pub/week42/html/._week42-bs062.html +++ b/doc/pub/week42/html/._week42-bs062.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -369,10 +383,18 @@ MathJax.Hub.Config({

    Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)

    +

    +For problems with so-called harmonic oscillations, given by for example the following differential equation +$$ +m\frac{d^2x(t)}(dt^2}+\eta\frac{dx}{dt}+x(t)=F(t), +$$ + +where \( F(t) \) is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations. +

    If one has several driving forces, \( F(t)=\sum_n F_n(t) \), one can find the particular solution to each \( F_n \), \( x_{pn}(t) \), and the particular -solution for the entire driving force is +solution for the entire driving force is then given by a series like $$ \begin{equation} @@ -381,163 +403,6 @@ x_p(t)=\sum_nx_{pn}(t). \end{equation} $$ -

    -This is known as the principal of superposition. It only applies when -the homogenous equation is linear. If there were an anharmonic term -such as \( x^3 \) in the homogenous equation, then when one summed various -solutions, \( x=(\sum_n x_n)^2 \), one would get cross -terms. Superposition is especially useful when \( F(t) \) can be written -as a sum of sinusoidal terms, because the solutions for each -sinusoidal (sine or cosine) term is analytic, as we saw above. - -

    -Driving forces are often periodic, even when they are not -sinusoidal. Periodicity implies that for some time \( \tau \) - -$$ -\begin{eqnarray} -F(t+\tau)=F(t). -\end{eqnarray} -$$ - -

    -One example of a non-sinusoidal periodic force is a square wave. Many -components in electric circuits are non-linear, e.g. diodes, which -makes many wave forms non-sinusoidal even when the circuits are being -driven by purely sinusoidal sources. - -

    -The code here shows a typical example of such a square wave generated using the functionality included in the scipy Python package. We have used a period of \( \tau=0.2 \). - -

    - - -

    import numpy as np
    -import math
    -from scipy import signal
    -import matplotlib.pyplot as plt
    -
    -# number of points                                                                                       
    -n = 500
    -# start and final times                                                                                  
    -t0 = 0.0
    -tn = 1.0
    -# Period                                                                                                 
    -t = np.linspace(t0, tn, n, endpoint=False)
    -SqrSignal = np.zeros(n)
    -SqrSignal = 1.0+signal.square(2*np.pi*5*t)
    -plt.plot(t, SqrSignal)
    -plt.ylim(-0.5, 2.5)
    -plt.show()
    -
    -

    -For the sinusoidal example the -period is \( \tau=2\pi/\omega \). However, higher harmonics can also -satisfy the periodicity requirement. In general, any force that -satisfies the periodicity requirement can be expressed as a sum over -harmonics, - -$$ -\begin{equation} -F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). -\tag{22} -\end{equation} -$$ - -

    -We can write down the answer for -\( x_{pn}(t) \), by substituting \( f_n/m \) or \( g_n/m \) for \( F_0/m \). By -writing each factor \( 2n\pi t/\tau \) as \( n\omega t \), with \( \omega\equiv -2\pi/\tau \), - -$$ -\begin{equation} -\tag{23} -F(t)=\frac{f_0}{2}+\sum_{n>0}f_n\cos(n\omega t)+g_n\sin(n\omega t). -\end{equation} -$$ - -

    -The solutions for \( x(t) \) then come from replacing \( \omega \) with -\( n\omega \) for each term in the particular solution, - -$$ -\begin{eqnarray} -x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin(n\omega t-\delta_n),\\ -\nonumber -\alpha_n&=&\frac{f_n/m}{\sqrt{((n\omega)^2-\omega_0^2)+4\beta^2n^2\omega^2}},\\ -\nonumber -\beta_n&=&\frac{g_n/m}{\sqrt{((n\omega)^2-\omega_0^2)+4\beta^2n^2\omega^2}},\\ -\nonumber -\delta_n&=&\tan^{-1}\left(\frac{2\beta n\omega}{\omega_0^2-n^2\omega^2}\right). -\end{eqnarray} -$$ - -

    -Because the forces have been applied for a long time, any non-zero -damping eliminates the homogenous parts of the solution, so one need -only consider the particular solution for each \( n \). - -

    -The problem will considered solved if one can find expressions for the -coefficients \( f_n \) and \( g_n \), even though the solutions are expressed -as an infinite sum. The coefficients can be extracted from the -function \( F(t) \) by - -$$ -\begin{eqnarray} -\tag{24} -f_n&=&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~F(t)\cos(2n\pi t/\tau),\\ -\nonumber -g_n&=&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~F(t)\sin(2n\pi t/\tau). -\end{eqnarray} -$$ - -

    -To check the consistency of these expressions and to verify -Eq. (24), one can insert the expansion of \( F(t) \) in -Eq. (23) into the expression for the coefficients in -Eq. (24) and see whether - -$$ -\begin{eqnarray} -f_n&=?&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~\left\{ -\frac{f_0}{2}+\sum_{m>0}f_m\cos(m\omega t)+g_m\sin(m\omega t) -\right\}\cos(n\omega t). -\end{eqnarray} -$$ - -

    -Immediately, one can throw away all the terms with \( g_m \) because they -convolute an even and an odd function. The term with \( f_0/2 \) -disappears because \( \cos(n\omega t) \) is equally positive and negative -over the interval and will integrate to zero. For all the terms -\( f_m\cos(m\omega t) \) appearing in the sum, one can use angle addition -formulas to see that \( \cos(m\omega t)\cos(n\omega -t)=(1/2)(\cos[(m+n)\omega t]+\cos[(m-n)\omega t] \). This will integrate -to zero unless \( m=n \). In that case the \( m=n \) term gives - -$$ -\begin{equation} -\int_{-\tau/2}^{\tau/2}dt~\cos^2(m\omega t)=\frac{\tau}{2}, -\tag{25} -\end{equation} -$$ - -

    -and - -$$ -\begin{eqnarray} -f_n&=?&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~f_n/2\\ -\nonumber -&=&f_n~\checkmark. -\end{eqnarray} -$$ - -

    -The same method can be used to check for the consistency of \( g_n \). -

    @@ -564,7 +429,7 @@ The same method can be used to check for the consistency of \( g_n \).

  • 71
  • 72
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs063.html b/doc/pub/week42/html/._week42-bs063.html index 332aeb540..b86b86e53 100644 --- a/doc/pub/week42/html/._week42-bs063.html +++ b/doc/pub/week42/html/._week42-bs063.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,18 +381,32 @@ MathJax.Hub.Config({ -

    CNNs in more detail, building convolutional neural networks in Tensorflow and Keras

    +

    Principle of Superposition

    -As discussed above, CNNs are neural networks built from the assumption that the inputs -to the network are 2D images. This is important because the number of features or pixels in images -grows very fast with the image size, and an enormous number of weights and biases are needed in order to build an accurate network. +This is known as the principle of superposition. It only applies when +the homogenous equation is linear. If there were an anharmonic term +such as \( x^3 \) in the homogenous equation, then when one summed various +solutions, \( x=(\sum_n x_n)^2 \), one would get cross +terms. Superposition is especially useful when \( F(t) \) can be written +as a sum of sinusoidal terms, because the solutions for each +sinusoidal (sine or cosine) term is analytic.

    -As before, we still have our input, a hidden layer and an output. What's novel about convolutional networks -are the convolutional and pooling layers stacked in pairs between the input and the hidden layer. -In addition, the data is no longer represented as a 2D feature matrix, instead each input is a number of 2D -matrices, typically 1 for each color dimension (Red, Green, Blue). +Driving forces are often periodic, even when they are not +sinusoidal. Periodicity implies that for some time \( \tau \) + +$$ +\begin{eqnarray} +F(t+\tau)=F(t). +\end{eqnarray} +$$ + +

    +One example of a non-sinusoidal periodic force is a square wave. Many +components in electric circuits are non-linear, e.g. diodes, which +makes many wave forms non-sinusoidal even when the circuits are being +driven by purely sinusoidal sources.

    @@ -406,7 +434,7 @@ matrices, typically 1 for each color dimension (Red, Green, Blue).

  • 72
  • 73
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs064.html b/doc/pub/week42/html/._week42-bs064.html index 1b3079d7f..352aa8962 100644 --- a/doc/pub/week42/html/._week42-bs064.html +++ b/doc/pub/week42/html/._week42-bs064.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,13 +381,44 @@ MathJax.Hub.Config({ -

    Setting it up

    +

    Simple Code Example

    -It means that to represent the entire -dataset of images, we require a 4D matrix or tensor. This tensor has the dimensions: -$$ -(n_{inputs},\, n_{pixels, width},\, n_{pixels, height},\, depth) . +The code here shows a typical example of such a square wave generated using the functionality included in the scipy Python package. We have used a period of \( \tau=0.2 \). + +

    + + +

    import numpy as np
    +import math
    +from scipy import signal
    +import matplotlib.pyplot as plt
    +
    +# number of points                                                                                       
    +n = 500
    +# start and final times                                                                                  
    +t0 = 0.0
    +tn = 1.0
    +# Period                                                                                                 
    +t = np.linspace(t0, tn, n, endpoint=False)
    +SqrSignal = np.zeros(n)
    +SqrSignal = 1.0+signal.square(2*np.pi*5*t)
    +plt.plot(t, SqrSignal)
    +plt.ylim(-0.5, 2.5)
    +plt.show()
    +
    +

    +For the sinusoidal example the +period is \( \tau=2\pi/\omega \). However, higher harmonics can also +satisfy the periodicity requirement. In general, any force that +satisfies the periodicity requirement can be expressed as a sum over +harmonics, + +$$ +\begin{equation} +F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). +\tag{22} +\end{equation} $$

    @@ -402,7 +447,7 @@ $$

  • 73
  • 74
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs065.html b/doc/pub/week42/html/._week42-bs065.html index 8b920ef6f..025064c86 100644 --- a/doc/pub/week42/html/._week42-bs065.html +++ b/doc/pub/week42/html/._week42-bs065.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,20 +381,36 @@ MathJax.Hub.Config({ -

    The MNIST dataset again

    +

    Wrapping up Fourier transforms

    -The MNIST dataset consists of grayscale images with a pixel size of -\( 28\times 28 \), meaning we require \( 28 \times 28 = 724 \) weights to each -neuron in the first hidden layer. +We can write down the answer for +\( x_{pn}(t) \), by substituting \( f_n/m \) or \( g_n/m \) for \( F_0/m \). By +writing each factor \( 2n\pi t/\tau \) as \( n\omega t \), with \( \omega\equiv +2\pi/\tau \), + +$$ +\begin{equation} +\tag{23} +F(t)=\frac{f_0}{2}+\sum_{n>0}f_n\cos(n\omega t)+g_n\sin(n\omega t). +\end{equation} +$$

    -If we were to analyze images of size \( 128\times 128 \) we would require -\( 128 \times 128 = 16384 \) weights to each neuron. Even worse if we were -dealing with color images, as most images are, we have an image matrix -of size \( 128\times 128 \) for each color dimension (Red, Green, Blue), -meaning 3 times the number of weights \( = 49152 \) are required for every -single neuron in the first hidden layer. +The solutions for \( x(t) \) then come from replacing \( \omega \) with +\( n\omega \) for each term in the particular solution, + +$$ +\begin{eqnarray} +x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin(n\omega t-\delta_n),\\ +\nonumber +\alpha_n&=&\frac{f_n/m}{\sqrt{((n\omega)^2-\omega_0^2)+4\beta^2n^2\omega^2}},\\ +\nonumber +\beta_n&=&\frac{g_n/m}{\sqrt{((n\omega)^2-\omega_0^2)+4\beta^2n^2\omega^2}},\\ +\nonumber +\delta_n&=&\tan^{-1}\left(\frac{2\beta n\omega}{\omega_0^2-n^2\omega^2}\right). +\end{eqnarray} +$$

    @@ -408,7 +438,7 @@ single neuron in the first hidden layer.

  • 74
  • 75
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs066.html b/doc/pub/week42/html/._week42-bs066.html index e1c0abda7..13365f352 100644 --- a/doc/pub/week42/html/._week42-bs066.html +++ b/doc/pub/week42/html/._week42-bs066.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,20 +381,72 @@ MathJax.Hub.Config({ -

    Strong correlations

    +

    Finding the Coefficients

    -Images typically have strong local correlations, meaning that a small -part of the image varies little from its neighboring regions. If for -example we have an image of a blue car, we can roughly assume that a -small blue part of the image is surrounded by other blue regions. +Because the forces have been applied for a long time, any non-zero +damping eliminates the homogenous parts of the solution, so one need +only consider the particular solution for each \( n \).

    -Therefore, instead of connecting every single pixel to a neuron in the -first hidden layer, as we have previously done with deep neural -networks, we can instead connect each neuron to a small part of the -image (in all 3 RGB depth dimensions). The size of each small area is -fixed, and known as a receptive. +The problem is considered solved if one can find expressions for the +coefficients \( f_n \) and \( g_n \), even though the solutions are expressed +as an infinite sum. The coefficients can be extracted from the +function \( F(t) \) by + +$$ +\begin{eqnarray} +\tag{24} +f_n&=&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~F(t)\cos(2n\pi t/\tau),\\ +\nonumber +g_n&=&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~F(t)\sin(2n\pi t/\tau). +\end{eqnarray} +$$ + +

    +To check the consistency of these expressions and to verify +Eq. (24), one can insert the expansion of \( F(t) \) in +Eq. (23) into the expression for the coefficients in +Eq. (24) and see whether + +$$ +\begin{eqnarray} +f_n&=?&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~\left\{ +\frac{f_0}{2}+\sum_{m>0}f_m\cos(m\omega t)+g_m\sin(m\omega t) +\right\}\cos(n\omega t). +\end{eqnarray} +$$ + +

    +Immediately, one can throw away all the terms with \( g_m \) because they +convolute an even and an odd function. The term with \( f_0/2 \) +disappears because \( \cos(n\omega t) \) is equally positive and negative +over the interval and will integrate to zero. For all the terms +\( f_m\cos(m\omega t) \) appearing in the sum, one can use angle addition +formulas to see that \( \cos(m\omega t)\cos(n\omega +t)=(1/2)(\cos[(m+n)\omega t]+\cos[(m-n)\omega t] \). This will integrate +to zero unless \( m=n \). In that case the \( m=n \) term gives + +$$ +\begin{equation} +\int_{-\tau/2}^{\tau/2}dt~\cos^2(m\omega t)=\frac{\tau}{2}, +\tag{25} +\end{equation} +$$ + +

    +and + +$$ +\begin{eqnarray} +f_n&=?&\frac{2}{\tau}\int_{-\tau/2}^{\tau/2} dt~f_n/2\\ +\nonumber +&=&f_n~\checkmark. +\end{eqnarray} +$$ + +

    +The same method can be used to check for the consistency of \( g_n \).

    @@ -408,7 +474,7 @@ fixed, and known as a 75

  • 76
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs067.html b/doc/pub/week42/html/._week42-bs067.html index 4c18556fe..8c5861e99 100644 --- a/doc/pub/week42/html/._week42-bs067.html +++ b/doc/pub/week42/html/._week42-bs067.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -365,26 +379,20 @@ MathJax.Hub.Config({

     

     

     

    - + -

    Layers of a CNN

    -The layers of a convolutional neural network arrange neurons in 3D: width, height and depth. -The input image is typically a square matrix of depth 3. +

    CNNs in more detail, building convolutional neural networks in Tensorflow and Keras

    -A convolution is performed on the image which outputs -a 3D volume of neurons. The weights to the input are arranged in a number of 2D matrices, known as filters. +As discussed above, CNNs are neural networks built from the assumption that the inputs +to the network are 2D images. This is important because the number of features or pixels in images +grows very fast with the image size, and an enormous number of weights and biases are needed in order to build an accurate network.

    -Each filter slides along the input image, taking the dot product -between each small part of the image and the filter, in all depth -dimensions. This is then passed through a non-linear function, -typically the Rectified Linear (ReLu) function, which serves as the -activation of the neurons in the first convolutional layer. This is -further passed through a pooling layer, which reduces the size of the -convolutional layer, e.g. by taking the maximum or average across some -small regions, and this serves as input to the next convolutional -layer. +As before, we still have our input, a hidden layer and an output. What's novel about convolutional networks +are the convolutional and pooling layers stacked in pairs between the input and the hidden layer. +In addition, the data is no longer represented as a 2D feature matrix, instead each input is a number of 2D +matrices, typically 1 for each color dimension (Red, Green, Blue).

    @@ -412,7 +420,7 @@ layer.

  • 76
  • 77
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs068.html b/doc/pub/week42/html/._week42-bs068.html index 4af7f5239..884e01b3e 100644 --- a/doc/pub/week42/html/._week42-bs068.html +++ b/doc/pub/week42/html/._week42-bs068.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,17 +381,14 @@ MathJax.Hub.Config({ -

    Systematic reduction

    +

    Setting it up

    -By systematically reducing the size of the input volume, through -convolution and pooling, the network should create representations of -small parts of the input, and then from them assemble representations -of larger areas. The final pooling layer is flattened to serve as -input to a hidden layer, such that each neuron in the final pooling -layer is connected to every single neuron in the hidden layer. This -then serves as input to the output layer, e.g. a softmax output for -classification. +It means that to represent the entire +dataset of images, we require a 4D matrix or tensor. This tensor has the dimensions: +$$ +(n_{inputs},\, n_{pixels, width},\, n_{pixels, height},\, depth) . +$$

    @@ -405,7 +416,7 @@ classification.

  • 77
  • 78
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs069.html b/doc/pub/week42/html/._week42-bs069.html index a6d31362f..ec3baf136 100644 --- a/doc/pub/week42/html/._week42-bs069.html +++ b/doc/pub/week42/html/._week42-bs069.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,51 +381,21 @@ MathJax.Hub.Config({ -

    Prerequisites: Collect and pre-process data

    +

    The MNIST dataset again

    +

    +The MNIST dataset consists of grayscale images with a pixel size of +\( 28\times 28 \), meaning we require \( 28 \times 28 = 724 \) weights to each +neuron in the first hidden layer. - -

    # import necessary packages
    -import numpy as np
    -import matplotlib.pyplot as plt
    -from sklearn import datasets
    +

    +If we were to analyze images of size \( 128\times 128 \) we would require +\( 128 \times 128 = 16384 \) weights to each neuron. Even worse if we were +dealing with color images, as most images are, we have an image matrix +of size \( 128\times 128 \) for each color dimension (Red, Green, Blue), +meaning 3 times the number of weights \( = 49152 \) are required for every +single neuron in the first hidden layer. - -# ensure the same random numbers appear every time -np.random.seed(0) - -# display images in notebook -%matplotlib inline -plt.rcParams['figure.figsize'] = (12,12) - - -# download MNIST dataset -digits = datasets.load_digits() - -# define inputs and labels -inputs = digits.images -labels = digits.target - -# RGB images have a depth of 3 -# our images are grayscale so they should have a depth of 1 -inputs = inputs[:,:,:,np.newaxis] - -print("inputs = (n_inputs, pixel_width, pixel_height, depth) = " + str(inputs.shape)) -print("labels = (n_inputs) = " + str(labels.shape)) - - -# choose some random images to display -n_inputs = len(inputs) -indices = np.arange(n_inputs) -random_indices = np.random.choice(indices, size=5) - -for i, image in enumerate(digits.images[random_indices]): - plt.subplot(1, 5, i+1) - plt.axis('off') - plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') - plt.title("Label: %d" % digits.target[random_indices[i]]) -plt.show() -

    @@ -438,7 +422,7 @@ plt.show()

  • 78
  • 79
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs070.html b/doc/pub/week42/html/._week42-bs070.html index be0718ece..e38a96ffa 100644 --- a/doc/pub/week42/html/._week42-bs070.html +++ b/doc/pub/week42/html/._week42-bs070.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,33 +381,21 @@ MathJax.Hub.Config({ -

    Importing Keras and Tensorflow

    +

    Strong correlations

    +

    +Images typically have strong local correlations, meaning that a small +part of the image varies little from its neighboring regions. If for +example we have an image of a blue car, we can roughly assume that a +small blue part of the image is surrounded by other blue regions. - -

    from tensorflow.keras import datasets, layers, models
    -from tensorflow.keras.layers import Input
    -from tensorflow.keras.models import Sequential      #This allows appending layers to existing models
    -from tensorflow.keras.layers import Dense           #This allows defining the characteristics of a particular layer
    -from tensorflow.keras import optimizers             #This allows using whichever optimiser we want (sgd,adam,RMSprop)
    -from tensorflow.keras import regularizers           #This allows using whichever regularizer we want (l1,l2,l1_l2)
    -from tensorflow.keras.utils import to_categorical   #This allows using categorical cross entropy as the cost function
    -#from tensorflow.keras import Conv2D
    -#from tensorflow.keras import MaxPooling2D
    -#from tensorflow.keras import Flatten
    +

    +Therefore, instead of connecting every single pixel to a neuron in the +first hidden layer, as we have previously done with deep neural +networks, we can instead connect each neuron to a small part of the +image (in all 3 RGB depth dimensions). The size of each small area is +fixed, and known as a receptive. -from sklearn.model_selection import train_test_split - -# representation of labels -labels = to_categorical(labels) - -# split into train and test data -# one-liner from scikit-learn library -train_size = 0.8 -test_size = 1 - train_size -X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, - test_size=test_size) -

    @@ -419,6 +421,8 @@ X_train, X_test, Y_train, Y_test = train_tes

  • 78
  • 79
  • 80
  • +
  • ...
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs071.html b/doc/pub/week42/html/._week42-bs071.html index 9d354436a..5eca31447 100644 --- a/doc/pub/week42/html/._week42-bs071.html +++ b/doc/pub/week42/html/._week42-bs071.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,38 +381,25 @@ MathJax.Hub.Config({ -

    Running with Keras

    +

    Layers of a CNN

    +The layers of a convolutional neural network arrange neurons in 3D: width, height and depth. +The input image is typically a square matrix of depth 3.

    +A convolution is performed on the image which outputs +a 3D volume of neurons. The weights to the input are arranged in a number of 2D matrices, known as filters. - -

    def create_convolutional_neural_network_keras(input_shape, receptive_field,
    -                                              n_filters, n_neurons_connected, n_categories,
    -                                              eta, lmbd):
    -    model = Sequential()
    -    model.add(layers.Conv2D(n_filters, (receptive_field, receptive_field), input_shape=input_shape, padding='same',
    -              activation='relu', kernel_regularizer=regularizers.l2(lmbd)))
    -    model.add(layers.MaxPooling2D(pool_size=(2, 2)))
    -    model.add(layers.Flatten())
    -    model.add(layers.Dense(n_neurons_connected, activation='relu', kernel_regularizer=regularizers.l2(lmbd)))
    -    model.add(layers.Dense(n_categories, activation='softmax', kernel_regularizer=regularizers.l2(lmbd)))
    -    
    -    sgd = optimizers.SGD(lr=eta)
    -    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
    -    
    -    return model
    +

    +Each filter slides along the input image, taking the dot product +between each small part of the image and the filter, in all depth +dimensions. This is then passed through a non-linear function, +typically the Rectified Linear (ReLu) function, which serves as the +activation of the neurons in the first convolutional layer. This is +further passed through a pooling layer, which reduces the size of the +convolutional layer, e.g. by taking the maximum or average across some +small regions, and this serves as input to the next convolutional +layer. -epochs = 100 -batch_size = 100 -input_shape = X_train.shape[1:4] -receptive_field = 3 -n_filters = 10 -n_neurons_connected = 50 -n_categories = 10 - -eta_vals = np.logspace(-5, 1, 7) -lmbd_vals = np.logspace(-5, 1, 7) -

    @@ -423,6 +424,9 @@ lmbd_vals = np.

  • 78
  • 79
  • 80
  • +
  • 81
  • +
  • ...
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs072.html b/doc/pub/week42/html/._week42-bs072.html index fc372eb30..b0eef899c 100644 --- a/doc/pub/week42/html/._week42-bs072.html +++ b/doc/pub/week42/html/._week42-bs072.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,28 +381,18 @@ MathJax.Hub.Config({ -

    Final part

    +

    Systematic reduction

    +By systematically reducing the size of the input volume, through +convolution and pooling, the network should create representations of +small parts of the input, and then from them assemble representations +of larger areas. The final pooling layer is flattened to serve as +input to a hidden layer, such that each neuron in the final pooling +layer is connected to every single neuron in the hidden layer. This +then serves as input to the output layer, e.g. a softmax output for +classification. - -

    CNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)
    -        
    -for i, eta in enumerate(eta_vals):
    -    for j, lmbd in enumerate(lmbd_vals):
    -        CNN = create_convolutional_neural_network_keras(input_shape, receptive_field,
    -                                              n_filters, n_neurons_connected, n_categories,
    -                                              eta, lmbd)
    -        CNN.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=0)
    -        scores = CNN.evaluate(X_test, Y_test)
    -        
    -        CNN_keras[i][j] = CNN
    -        
    -        print("Learning rate = ", eta)
    -        print("Lambda = ", lmbd)
    -        print("Test accuracy: %.3f" % scores[1])
    -        print()
    -

    @@ -412,6 +416,10 @@ MathJax.Hub.Config({

  • 78
  • 79
  • 80
  • +
  • 81
  • +
  • 82
  • +
  • ...
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs073.html b/doc/pub/week42/html/._week42-bs073.html index fe0670070..7c092099a 100644 --- a/doc/pub/week42/html/._week42-bs073.html +++ b/doc/pub/week42/html/._week42-bs073.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,40 +381,49 @@ MathJax.Hub.Config({ -

    Final visualization

    - +

    Prerequisites: Collect and pre-process data

    -

    # visual representation of grid search
    -# uses seaborn heatmap, could probably do this in matplotlib
    -import seaborn as sns
    +
    # import necessary packages
    +import numpy as np
    +import matplotlib.pyplot as plt
    +from sklearn import datasets
     
    -sns.set()
     
    -train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    -test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +# ensure the same random numbers appear every time
    +np.random.seed(0)
     
    -for i in range(len(eta_vals)):
    -    for j in range(len(lmbd_vals)):
    -        CNN = CNN_keras[i][j]
    +# display images in notebook
    +%matplotlib inline
    +plt.rcParams['figure.figsize'] = (12,12)
     
    -        train_accuracy[i][j] = CNN.evaluate(X_train, Y_train)[1]
    -        test_accuracy[i][j] = CNN.evaluate(X_test, Y_test)[1]
     
    -        
    -fig, ax = plt.subplots(figsize = (10, 10))
    -sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis")
    -ax.set_title("Training Accuracy")
    -ax.set_ylabel("$\eta$")
    -ax.set_xlabel("$\lambda$")
    -plt.show()
    +# download MNIST dataset
    +digits = datasets.load_digits()
     
    -fig, ax = plt.subplots(figsize = (10, 10))
    -sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis")
    -ax.set_title("Test Accuracy")
    -ax.set_ylabel("$\eta$")
    -ax.set_xlabel("$\lambda$")
    +# define inputs and labels
    +inputs = digits.images
    +labels = digits.target
    +
    +# RGB images have a depth of 3
    +# our images are grayscale so they should have a depth of 1
    +inputs = inputs[:,:,:,np.newaxis]
    +
    +print("inputs = (n_inputs, pixel_width, pixel_height, depth) = " + str(inputs.shape))
    +print("labels = (n_inputs) = " + str(labels.shape))
    +
    +
    +# choose some random images to display
    +n_inputs = len(inputs)
    +indices = np.arange(n_inputs)
    +random_indices = np.random.choice(indices, size=5)
    +
    +for i, image in enumerate(digits.images[random_indices]):
    +    plt.subplot(1, 5, i+1)
    +    plt.axis('off')
    +    plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
    +    plt.title("Label: %d" % digits.target[random_indices[i]])
     plt.show()
     

    @@ -425,6 +448,11 @@ plt.show()

  • 78
  • 79
  • 80
  • +
  • 81
  • +
  • 82
  • +
  • 83
  • +
  • ...
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs074.html b/doc/pub/week42/html/._week42-bs074.html index a9d7403fe..6cf8283cc 100644 --- a/doc/pub/week42/html/._week42-bs074.html +++ b/doc/pub/week42/html/._week42-bs074.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -367,27 +381,32 @@ MathJax.Hub.Config({ -

    The CIFAR01 data set

    - -

    -The CIFAR10 dataset contains 60,000 color images in 10 classes, with -6,000 images in each class. The dataset is divided into 50,000 -training images and 10,000 testing images. The classes are mutually -exclusive and there is no overlap between them. - +

    Importing Keras and Tensorflow

    -

    import tensorflow as tf
    +
    from tensorflow.keras import datasets, layers, models
    +from tensorflow.keras.layers import Input
    +from tensorflow.keras.models import Sequential      #This allows appending layers to existing models
    +from tensorflow.keras.layers import Dense           #This allows defining the characteristics of a particular layer
    +from tensorflow.keras import optimizers             #This allows using whichever optimiser we want (sgd,adam,RMSprop)
    +from tensorflow.keras import regularizers           #This allows using whichever regularizer we want (l1,l2,l1_l2)
    +from tensorflow.keras.utils import to_categorical   #This allows using categorical cross entropy as the cost function
    +#from tensorflow.keras import Conv2D
    +#from tensorflow.keras import MaxPooling2D
    +#from tensorflow.keras import Flatten
     
    -from tensorflow.keras import datasets, layers, models
    -import matplotlib.pyplot as plt
    +from sklearn.model_selection import train_test_split
     
    -# We import the data set
    -(train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
    +# representation of labels
    +labels = to_categorical(labels)
     
    -# Normalize pixel values to be between 0 and 1 by dividing by 255. 
    -train_images, test_images = train_images / 255.0, test_images / 255.0
    +# split into train and test data
    +# one-liner from scikit-learn library
    +train_size = 0.8
    +test_size = 1 - train_size
    +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size,
    +                                                    test_size=test_size)
     

    @@ -410,6 +429,10 @@ train_images, test_images = train_images 78

  • 79
  • 80
  • +
  • 81
  • +
  • 82
  • +
  • 83
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/._week42-bs075.html b/doc/pub/week42/html/._week42-bs075.html index 9f13cf2fb..27b559e79 100644 --- a/doc/pub/week42/html/._week42-bs075.html +++ b/doc/pub/week42/html/._week42-bs075.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -365,30 +379,39 @@ MathJax.Hub.Config({

     

     

     

    - + -

    Verifying the data set

    - -

    -To verify that the dataset looks correct, let's plot the first 25 images from the training set and display the class name below each image. +

    Running with Keras

    -

    class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
    -               'dog', 'frog', 'horse', 'ship', 'truck']
    -​
    -plt.figure(figsize=(10,10))
    -for i in range(25):
    -    plt.subplot(5,5,i+1)
    -    plt.xticks([])
    -    plt.yticks([])
    -    plt.grid(False)
    -    plt.imshow(train_images[i], cmap=plt.cm.binary)
    -    # The CIFAR labels happen to be arrays, 
    -    # which is why you need the extra index
    -    plt.xlabel(class_names[train_labels[i][0]])
    -plt.show()
    +
    def create_convolutional_neural_network_keras(input_shape, receptive_field,
    +                                              n_filters, n_neurons_connected, n_categories,
    +                                              eta, lmbd):
    +    model = Sequential()
    +    model.add(layers.Conv2D(n_filters, (receptive_field, receptive_field), input_shape=input_shape, padding='same',
    +              activation='relu', kernel_regularizer=regularizers.l2(lmbd)))
    +    model.add(layers.MaxPooling2D(pool_size=(2, 2)))
    +    model.add(layers.Flatten())
    +    model.add(layers.Dense(n_neurons_connected, activation='relu', kernel_regularizer=regularizers.l2(lmbd)))
    +    model.add(layers.Dense(n_categories, activation='softmax', kernel_regularizer=regularizers.l2(lmbd)))
    +    
    +    sgd = optimizers.SGD(lr=eta)
    +    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
    +    
    +    return model
    +
    +epochs = 100
    +batch_size = 100
    +input_shape = X_train.shape[1:4]
    +receptive_field = 3
    +n_filters = 10
    +n_neurons_connected = 50
    +n_categories = 10
    +
    +eta_vals = np.logspace(-5, 1, 7)
    +lmbd_vals = np.logspace(-5, 1, 7)
     

    @@ -410,6 +433,10 @@ plt.show()

  • 78
  • 79
  • 80
  • +
  • 81
  • +
  • 82
  • +
  • 83
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/week42-bs.html b/doc/pub/week42/html/week42-bs.html index d836f3987..cbef1a23a 100644 --- a/doc/pub/week42/html/week42-bs.html +++ b/doc/pub/week42/html/week42-bs.html @@ -203,6 +203,16 @@ Automatically generated HTML file from DocOnce source 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -335,23 +345,27 @@ MathJax.Hub.Config({
  • Convolution Examples: Polynomial multiplication
  • Convolution Examples: Probability Theory
  • Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)
  • -
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • -
  • Setting it up
  • -
  • The MNIST dataset again
  • -
  • Strong correlations
  • -
  • Layers of a CNN
  • -
  • Systematic reduction
  • -
  • Prerequisites: Collect and pre-process data
  • -
  • Importing Keras and Tensorflow
  • -
  • Running with Keras
  • -
  • Final part
  • -
  • Final visualization
  • -
  • The CIFAR01 data set
  • -
  • Verifying the data set
  • -
  • Set up the model
  • -
  • Add Dense layers on top
  • -
  • Compile and train the model
  • -
  • Finally, evaluate the model
  • +
  • Principle of Superposition
  • +
  • Simple Code Example
  • +
  • Wrapping up Fourier transforms
  • +
  • Finding the Coefficients
  • +
  • CNNs in more detail, building convolutional neural networks in Tensorflow and Keras
  • +
  • Setting it up
  • +
  • The MNIST dataset again
  • +
  • Strong correlations
  • +
  • Layers of a CNN
  • +
  • Systematic reduction
  • +
  • Prerequisites: Collect and pre-process data
  • +
  • Importing Keras and Tensorflow
  • +
  • Running with Keras
  • +
  • Final part
  • +
  • Final visualization
  • +
  • The CIFAR01 data set
  • +
  • Verifying the data set
  • +
  • Set up the model
  • +
  • Add Dense layers on top
  • +
  • Compile and train the model
  • +
  • Finally, evaluate the model
  • @@ -386,7 +400,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 20, 2021

    +

    Oct 21, 2021


    @@ -410,7 +424,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 80
  • +
  • 84
  • »
  • diff --git a/doc/pub/week42/html/week42-reveal.html b/doc/pub/week42/html/week42-reveal.html index 7dd4ffbf7..654c56dbe 100644 --- a/doc/pub/week42/html/week42-reveal.html +++ b/doc/pub/week42/html/week42-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Oct 20, 2021

    +

    Oct 21, 2021


    @@ -3239,10 +3239,20 @@ Let us remind of this and recast it in terms of the mathematical operation of co

    Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)

    +

    +For problems with so-called harmonic oscillations, given by for example the following differential equation +

     
    +$$ +m\frac{d^2x(t)}(dt^2}+\eta\frac{dx}{dt}+x(t)=F(t), +$$ +

     
    + +where \( F(t) \) is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations. +

    If one has several driving forces, \( F(t)=\sum_n F_n(t) \), one can find the particular solution to each \( F_n \), \( x_{pn}(t) \), and the particular -solution for the entire driving force is +solution for the entire driving force is then given by a series like

     
    $$ @@ -3252,15 +3262,20 @@ x_p(t)=\sum_nx_{pn}(t). \end{equation} $$

     
    +

    + + +
    +

    Principle of Superposition

    -This is known as the principal of superposition. It only applies when +This is known as the principle of superposition. It only applies when the homogenous equation is linear. If there were an anharmonic term such as \( x^3 \) in the homogenous equation, then when one summed various solutions, \( x=(\sum_n x_n)^2 \), one would get cross terms. Superposition is especially useful when \( F(t) \) can be written as a sum of sinusoidal terms, because the solutions for each -sinusoidal (sine or cosine) term is analytic, as we saw above. +sinusoidal (sine or cosine) term is analytic.

    Driving forces are often periodic, even when they are not @@ -3279,6 +3294,11 @@ One example of a non-sinusoidal periodic force is a square wave. Many components in electric circuits are non-linear, e.g. diodes, which makes many wave forms non-sinusoidal even when the circuits are being driven by purely sinusoidal sources. +

    + + +
    +

    Simple Code Example

    The code here shows a typical example of such a square wave generated using the functionality included in the scipy Python package. We have used a period of \( \tau=0.2 \). @@ -3319,6 +3339,11 @@ F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). \end{equation} $$

     
    +

    + + +
    +

    Wrapping up Fourier transforms

    We can write down the answer for @@ -3352,6 +3377,11 @@ x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin( \end{eqnarray} $$

     
    +

    + + +
    +

    Finding the Coefficients

    Because the forces have been applied for a long time, any non-zero @@ -3359,7 +3389,7 @@ damping eliminates the homogenous parts of the solution, so one need only consider the particular solution for each \( n \).

    -The problem will considered solved if one can find expressions for the +The problem is considered solved if one can find expressions for the coefficients \( f_n \) and \( g_n \), even though the solutions are expressed as an infinite sum. The coefficients can be extracted from the function \( F(t) \) by diff --git a/doc/pub/week42/html/week42-solarized.html b/doc/pub/week42/html/week42-solarized.html index 1c707d3b4..c1d5beee2 100644 --- a/doc/pub/week42/html/week42-solarized.html +++ b/doc/pub/week42/html/week42-solarized.html @@ -223,6 +223,16 @@ div { text-align: justify; text-justify: inter-word; } 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -297,7 +307,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 20, 2021

    +

    Oct 21, 2021












    @@ -3242,10 +3252,18 @@ Let us remind of this and recast it in terms of the mathematical operation of co

    Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)

    +

    +For problems with so-called harmonic oscillations, given by for example the following differential equation +$$ +m\frac{d^2x(t)}(dt^2}+\eta\frac{dx}{dt}+x(t)=F(t), +$$ + +where \( F(t) \) is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations. +

    If one has several driving forces, \( F(t)=\sum_n F_n(t) \), one can find the particular solution to each \( F_n \), \( x_{pn}(t) \), and the particular -solution for the entire driving force is +solution for the entire driving force is then given by a series like $$ \begin{equation} @@ -3255,13 +3273,18 @@ x_p(t)=\sum_nx_{pn}(t). $$

    -This is known as the principal of superposition. It only applies when +









    + +

    Principle of Superposition

    + +

    +This is known as the principle of superposition. It only applies when the homogenous equation is linear. If there were an anharmonic term such as \( x^3 \) in the homogenous equation, then when one summed various solutions, \( x=(\sum_n x_n)^2 \), one would get cross terms. Superposition is especially useful when \( F(t) \) can be written as a sum of sinusoidal terms, because the solutions for each -sinusoidal (sine or cosine) term is analytic, as we saw above. +sinusoidal (sine or cosine) term is analytic.

    Driving forces are often periodic, even when they are not @@ -3279,6 +3302,11 @@ components in electric circuits are non-linear, e.g. diodes, which makes many wave forms non-sinusoidal even when the circuits are being driven by purely sinusoidal sources. +

    +









    + +

    Simple Code Example

    +

    The code here shows a typical example of such a square wave generated using the functionality included in the scipy Python package. We have used a period of \( \tau=0.2 \). @@ -3317,6 +3345,11 @@ F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). \end{equation} $$ +

    +









    + +

    Wrapping up Fourier transforms

    +

    We can write down the answer for \( x_{pn}(t) \), by substituting \( f_n/m \) or \( g_n/m \) for \( F_0/m \). By @@ -3346,13 +3379,18 @@ x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin( \end{eqnarray} $$ +

    +









    + +

    Finding the Coefficients

    +

    Because the forces have been applied for a long time, any non-zero damping eliminates the homogenous parts of the solution, so one need only consider the particular solution for each \( n \).

    -The problem will considered solved if one can find expressions for the +The problem is considered solved if one can find expressions for the coefficients \( f_n \) and \( g_n \), even though the solutions are expressed as an infinite sum. The coefficients can be extracted from the function \( F(t) \) by diff --git a/doc/pub/week42/html/week42.html b/doc/pub/week42/html/week42.html index 38205a2d2..b667683db 100644 --- a/doc/pub/week42/html/week42.html +++ b/doc/pub/week42/html/week42.html @@ -228,6 +228,16 @@ div { text-align: justify; text-justify: inter-word; } 2, None, 'convolution-examples-principle-of-superposition-and-periodic-forces-fourier-transforms'), + ('Principle of Superposition', + 2, + None, + 'principle-of-superposition'), + ('Simple Code Example', 2, None, 'simple-code-example'), + ('Wrapping up Fourier transforms', + 2, + None, + 'wrapping-up-fourier-transforms'), + ('Finding the Coefficients', 2, None, 'finding-the-coefficients'), ('CNNs in more detail, building convolutional neural networks in ' 'Tensorflow and Keras', 2, @@ -302,7 +312,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Oct 20, 2021

    +

    Oct 21, 2021












    @@ -3247,10 +3257,18 @@ Let us remind of this and recast it in terms of the mathematical operation of co

    Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)

    +

    +For problems with so-called harmonic oscillations, given by for example the following differential equation +$$ +m\frac{d^2x(t)}(dt^2}+\eta\frac{dx}{dt}+x(t)=F(t), +$$ + +where \( F(t) \) is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations. +

    If one has several driving forces, \( F(t)=\sum_n F_n(t) \), one can find the particular solution to each \( F_n \), \( x_{pn}(t) \), and the particular -solution for the entire driving force is +solution for the entire driving force is then given by a series like $$ \begin{equation} @@ -3260,13 +3278,18 @@ x_p(t)=\sum_nx_{pn}(t). $$

    -This is known as the principal of superposition. It only applies when +









    + +

    Principle of Superposition

    + +

    +This is known as the principle of superposition. It only applies when the homogenous equation is linear. If there were an anharmonic term such as \( x^3 \) in the homogenous equation, then when one summed various solutions, \( x=(\sum_n x_n)^2 \), one would get cross terms. Superposition is especially useful when \( F(t) \) can be written as a sum of sinusoidal terms, because the solutions for each -sinusoidal (sine or cosine) term is analytic, as we saw above. +sinusoidal (sine or cosine) term is analytic.

    Driving forces are often periodic, even when they are not @@ -3284,6 +3307,11 @@ components in electric circuits are non-linear, e.g. diodes, which makes many wave forms non-sinusoidal even when the circuits are being driven by purely sinusoidal sources. +

    +









    + +

    Simple Code Example

    +

    The code here shows a typical example of such a square wave generated using the functionality included in the scipy Python package. We have used a period of \( \tau=0.2 \). @@ -3322,6 +3350,11 @@ F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). \end{equation} $$ +

    +









    + +

    Wrapping up Fourier transforms

    +

    We can write down the answer for \( x_{pn}(t) \), by substituting \( f_n/m \) or \( g_n/m \) for \( F_0/m \). By @@ -3351,13 +3384,18 @@ x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin( \end{eqnarray} $$ +

    +









    + +

    Finding the Coefficients

    +

    Because the forces have been applied for a long time, any non-zero damping eliminates the homogenous parts of the solution, so one need only consider the particular solution for each \( n \).

    -The problem will considered solved if one can find expressions for the +The problem is considered solved if one can find expressions for the coefficients \( f_n \) and \( g_n \), even though the solutions are expressed as an infinite sum. The coefficients can be extracted from the function \( F(t) \) by diff --git a/doc/pub/week42/ipynb/ipynb-week42-src.tar.gz b/doc/pub/week42/ipynb/ipynb-week42-src.tar.gz index d0ff083896e049b5debb5257434a5d93c678b83b..e6627596269262872d28a10044ccab3ee6b43497 100644 GIT binary patch delta 21 ccmeBP%i6t`m0iA@gW(->VI%uicE*-408SzXwEzGB delta 21 ccmeBP%i6t`m0iA@gMsB}ek1! \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Oct 20, 2021**\n", + "Date: **Oct 21, 2021**\n", "\n", "Copyright 1999-2021, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -3362,9 +3362,27 @@ "\n", "## Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)\n", "\n", + "For problems with so-called harmonic oscillations, given by for example the following differential equation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "m\\frac{d^2x(t)}(dt^2}+\\eta\\frac{dx}{dt}+x(t)=F(t),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where $F(t)$ is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations.\n", + "\n", "If one has several driving forces, $F(t)=\\sum_n F_n(t)$, one can find\n", "the particular solution to each $F_n$, $x_{pn}(t)$, and the particular\n", - "solution for the entire driving force is" + "solution for the entire driving force is then given by a series like" ] }, { @@ -3386,13 +3404,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This is known as the principal of superposition. It only applies when\n", + "## Principle of Superposition\n", + "\n", + "This is known as the principle of superposition. It only applies when\n", "the homogenous equation is linear. If there were an anharmonic term\n", "such as $x^3$ in the homogenous equation, then when one summed various\n", "solutions, $x=(\\sum_n x_n)^2$, one would get cross\n", "terms. Superposition is especially useful when $F(t)$ can be written\n", "as a sum of sinusoidal terms, because the solutions for each\n", - "sinusoidal (sine or cosine) term is analytic, as we saw above.\n", + "sinusoidal (sine or cosine) term is analytic. \n", "\n", "Driving forces are often periodic, even when they are not\n", "sinusoidal. Periodicity implies that for some time $\\tau$" @@ -3418,6 +3438,8 @@ "makes many wave forms non-sinusoidal even when the circuits are being\n", "driven by purely sinusoidal sources.\n", "\n", + "## Simple Code Example\n", + "\n", "The code here shows a typical example of such a square wave generated using the functionality included in the **scipy** Python package. We have used a period of $\\tau=0.2$." ] }, @@ -3479,6 +3501,8 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "## Wrapping up Fourier transforms\n", + "\n", "We can write down the answer for\n", "$x_{pn}(t)$, by substituting $f_n/m$ or $g_n/m$ for $F_0/m$. By\n", "writing each factor $2n\\pi t/\\tau$ as $n\\omega t$, with $\\omega\\equiv\n", @@ -3529,11 +3553,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "## Finding the Coefficients\n", + "\n", "Because the forces have been applied for a long time, any non-zero\n", "damping eliminates the homogenous parts of the solution, so one need\n", "only consider the particular solution for each $n$.\n", "\n", - "The problem will considered solved if one can find expressions for the\n", + "The problem is considered solved if one can find expressions for the\n", "coefficients $f_n$ and $g_n$, even though the solutions are expressed\n", "as an infinite sum. The coefficients can be extracted from the\n", "function $F(t)$ by" diff --git a/doc/src/week39/codes/test10.py b/doc/src/week39/codes/test10.py new file mode 100644 index 000000000..946a8edd2 --- /dev/null +++ b/doc/src/week39/codes/test10.py @@ -0,0 +1,44 @@ + +from random import random, seed +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import sys + +# the number of datapoints +n = 100 +x = 2*np.random.rand(n,1) +y = 4+3*x*x+np.random.randn(n,1) + +X = np.c_[np.ones((n,1)), x, x*x] +XT_X = X.T @ X + +#Ridge parameter lambda +lmbda = 0.001 +Id = lmbda* np.eye(XT_X.shape[0]) + +beta_linreg = np.linalg.inv(XT_X+Id) @ X.T @ y +print(beta_linreg) +# Start plain gradient descent +beta = np.random.randn(2,1) + +eta = 0.1 +Niterations = 100 + +for iter in range(Niterations): + gradients = 2.0/n*X.T @ (X @ (beta)-y)+2*lmbda*beta + beta -= eta*gradients + +print(beta) +ypredict = X @ beta +ypredict2 = X @ beta_linreg +plt.plot(x, ypredict, "r-") +plt.plot(x, ypredict2, "b-") +plt.plot(x, y ,'ro') +plt.axis([0,2.0,0, 15.0]) +plt.xlabel(r'$x$') +plt.ylabel(r'$y$') +plt.title(r'Gradient descent example for Ridge') +plt.show() diff --git a/doc/src/week39/codes/test8.py b/doc/src/week39/codes/test8.py new file mode 100644 index 000000000..16adb5806 --- /dev/null +++ b/doc/src/week39/codes/test8.py @@ -0,0 +1,77 @@ +""" +Code to test Ridge and NNs using Scikit-Learn only +""" + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model +from sklearn.neural_network import MLPRegressor +from sklearn.metrics import accuracy_score +import seaborn as sns + + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(315) + +n = 100 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + +Maxpolydegree = 5 +X = np.zeros((n,Maxpolydegree-1)) + +for degree in range(1,Maxpolydegree): #No intercept column + X[:,degree-1] = x**(degree) + +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# Decide which values of lambda to use + +nlambdas = 10 +lmbd_vals = np.logspace(-4, 0, nlambdas) +MSERidgePredict = np.zeros(nlambdas) +for i in range(nlambdas): + lmb = lmbd_vals[i] + RegRidge = linear_model.Ridge(lmb) + RegRidge.fit(X_train,y_train) + ypredictRidge = RegRidge.predict(X_test) + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + +plt.figure() +plt.plot(np.log10(lmbd_vals), MSERidgePredict, 'g--', label = 'MSE SL Ridge Test') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() + +# Neural Network part + +n_hidden_neurons = 50 +epochs = 100 +# store models for later use +eta_vals = np.logspace(-4, 0, 10) +# store the models for later use +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +sns.set() +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = MLPRegressor(hidden_layer_sizes=(n_hidden_neurons), activation='logistic', + alpha=lmbd, learning_rate_init=eta, max_iter=epochs) + dnn.fit(X_train, y_train) + ypredictMLP = dnn.predict(X_test) + test_accuracy[i][j] = MSE(ypredictMLP, y_test) + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() diff --git a/doc/src/week39/codes/test9.py b/doc/src/week39/codes/test9.py new file mode 100644 index 000000000..d0e561644 --- /dev/null +++ b/doc/src/week39/codes/test9.py @@ -0,0 +1,84 @@ +""" +Code to test Ridge with own gradient descent and SGD +""" + +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from sklearn.model_selection import train_test_split +from sklearn import linear_model +from sklearn.neural_network import MLPRegressor +from sklearn.metrics import accuracy_score +import seaborn as sns +import autograd.numpy as np +from autograd import grad + + +def MSE(y_data,y_model): + n = np.size(y_model) + return np.sum((y_data-y_model)**2)/n +# A seed just to ensure that the random numbers are the same for every run. +# Useful for eventual debugging. +np.random.seed(315) + +n = 100 +x = np.random.rand(n) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2) + +Maxpolydegree = 5 +X = np.zeros((n,Maxpolydegree-1)) + +for degree in range(1,Maxpolydegree): #No intercept column + X[:,degree-1] = x**(degree) + +# We split the data in test and training data +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + + +nlambdas = 10 +lmbd_vals = np.logspace(-4, 0, nlambdas) +MSERidgePredict = np.zeros(nlambdas) +for i in range(nlambdas): + lmb = lmbd_vals[i] + RegRidge = linear_model.Ridge(lmb,fit_intercept=False) + RegRidge.fit(X_train,y_train) + ypredictRidge = RegRidge.predict(X_test) + MSERidgePredict[i] = MSE(y_test,ypredictRidge) + +beta = np.random.randn(X_train.shape[1],1) +loss = np.mean((y_train.reshape(-1,1) - X_train@beta)**2) +print(loss) +get_grad = grad(loss,argnum=2) +grad_beta = get_grad(X_train,y_train,beta) +#print(grad_beta) + +""" +print(beta) +print( (X_train.T @ y_train).T) +# Make own gradient descent and define precalculated quantities, saves cycles +XT_X = X_train.T @ X_train +XTy = X_train.T @ y_train +MSERidgeGDPredict = np.zeros(nlambdas) +for i in range(nlambdas): + lmb = lmbd_vals[i] + Id = lmb* np.eye(XT_X.shape[0]) + beta = np.random.randn(X_train.shape[1],1) + eta = 0.01 + Niterations = 2 +# beta_linreg = np.linalg.pinv(XT_X+Id) @ X_train.T @ y_train + for iter in range(Niterations): + XX = XT_X @ beta-XTy + gradients = (2.0/n)*XX *lmb*beta + beta -= eta*gradients + ypredictRidgeGD = X_test @ beta + MSERidgeGDPredict[i] = MSE(y_test,ypredictRidgeGD) + +plt.figure() +plt.plot(np.log10(lmbd_vals), MSERidgePredict, 'g--', label = 'MSE Sklearn Ridge Test') +plt.plot(np.log10(lmbd_vals), MSERidgeGDPredict, 'r', label = 'MSE GD Ridge Test') +plt.xlabel('log10(lambda)') +plt.ylabel('MSE') +plt.legend() +plt.show() +""" + diff --git a/doc/src/week42/week42.do.txt b/doc/src/week42/week42.do.txt index 6a88d2d44..a431401b8 100644 --- a/doc/src/week42/week42.do.txt +++ b/doc/src/week42/week42.do.txt @@ -2651,9 +2651,17 @@ Let us remind of this and recast it in terms of the mathematical operation of co !split ===== Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms) ===== +For problems with so-called harmonic oscillations, given by for example the following differential equation +!bt +\[ +m\frac{d^2x(t)}(dt^2}+\eta\frac{dx}{dt}+x(t)=F(t), +\] +!et +where $F(t)$ is an applied external force acting on the system (often called a driving force), one can use the theory of Fourier transformations to find the solutions of this type of equations. + If one has several driving forces, $F(t)=\sum_n F_n(t)$, one can find the particular solution to each $F_n$, $x_{pn}(t)$, and the particular -solution for the entire driving force is +solution for the entire driving force is then given by a series like !bt \begin{equation} @@ -2661,13 +2669,16 @@ x_p(t)=\sum_nx_{pn}(t). \end{equation} !et -This is known as the principal of superposition. It only applies when +!split +===== Principle of Superposition ===== + +This is known as the principle of superposition. It only applies when the homogenous equation is linear. If there were an anharmonic term such as $x^3$ in the homogenous equation, then when one summed various solutions, $x=(\sum_n x_n)^2$, one would get cross terms. Superposition is especially useful when $F(t)$ can be written as a sum of sinusoidal terms, because the solutions for each -sinusoidal (sine or cosine) term is analytic, as we saw above. +sinusoidal (sine or cosine) term is analytic. Driving forces are often periodic, even when they are not sinusoidal. Periodicity implies that for some time $\tau$ @@ -2683,6 +2694,9 @@ components in electric circuits are non-linear, e.g. diodes, which makes many wave forms non-sinusoidal even when the circuits are being driven by purely sinusoidal sources. +!split +===== Simple Code Example ===== + The code here shows a typical example of such a square wave generated using the functionality included in the _scipy_ Python package. We have used a period of $\tau=0.2$. !bc pycod @@ -2718,6 +2732,9 @@ F(t)=\frac{f_0}{2}+\sum_{n>0} f_n\cos(2n\pi t/\tau)+g_n\sin(2n\pi t/\tau). \end{equation} !et +!split +===== Wrapping up Fourier transforms ===== + We can write down the answer for $x_{pn}(t)$, by substituting $f_n/m$ or $g_n/m$ for $F_0/m$. By writing each factor $2n\pi t/\tau$ as $n\omega t$, with $\omega\equiv @@ -2745,11 +2762,14 @@ x_p(t)&=&\frac{f_0}{2k}+\sum_{n>0} \alpha_n\cos(n\omega t-\delta_n)+\beta_n\sin( \end{eqnarray} !et +!split +===== Finding the Coefficients ===== + Because the forces have been applied for a long time, any non-zero damping eliminates the homogenous parts of the solution, so one need only consider the particular solution for each $n$. -The problem will considered solved if one can find expressions for the +The problem is considered solved if one can find expressions for the coefficients $f_n$ and $g_n$, even though the solutions are expressed as an infinite sum. The coefficients can be extracted from the function $F(t)$ by