From 1f9e4412cb7943e5a2aca21d217ffd776df56f48 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Tue, 14 Sep 2021 22:56:12 +0200 Subject: [PATCH] updated book --- doc/BookChapters/chapter3.do.txt | 323 ++++++++++ .../_build/.doctrees/chapter3.doctree | Bin 337013 -> 442382 bytes .../_build/.doctrees/environment.pickle | Bin 172629 -> 177132 bytes .../_build/.doctrees/schedule.doctree | Bin 45950 -> 47398 bytes .../_build/html/_images/chapter3_38_4.png | Bin 0 -> 16322 bytes .../_build/html/_images/chapter3_41_10.png | Bin 0 -> 16300 bytes .../_build/html/_images/chapter3_54_0.png | Bin 0 -> 32458 bytes .../_build/html/_sources/chapter3.ipynb | 427 +++++++++++++ .../_build/html/_sources/schedule.md | 9 +- doc/LectureNotes/_build/html/chapter3.html | 417 +++++++++++-- doc/LectureNotes/_build/html/schedule.html | 7 +- doc/LectureNotes/_build/html/searchindex.js | 2 +- .../_build/jupyter_execute/chapter3.ipynb | 573 ++++++++++++++++-- .../_build/jupyter_execute/chapter3.py | 309 +++++++++- .../_build/jupyter_execute/chapter3_38_4.png | Bin 0 -> 16322 bytes .../_build/jupyter_execute/chapter3_41_10.png | Bin 0 -> 16300 bytes .../_build/jupyter_execute/chapter3_54_0.png | Bin 0 -> 32458 bytes doc/LectureNotes/chapter3.ipynb | 427 +++++++++++++ 18 files changed, 2373 insertions(+), 121 deletions(-) create mode 100644 doc/LectureNotes/_build/html/_images/chapter3_38_4.png create mode 100644 doc/LectureNotes/_build/html/_images/chapter3_41_10.png create mode 100644 doc/LectureNotes/_build/html/_images/chapter3_54_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_38_4.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_41_10.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/chapter3_54_0.png diff --git a/doc/BookChapters/chapter3.do.txt b/doc/BookChapters/chapter3.do.txt index 567f2e082..e29143ddf 100644 --- a/doc/BookChapters/chapter3.do.txt +++ b/doc/BookChapters/chapter3.do.txt @@ -1014,3 +1014,326 @@ plt.show() !ec +===== Exercises and Projects ===== + + + +The main aim of this project is to study in more detail various +regression methods, including the Ordinary Least Squares (OLS) method, +The total score is _100_ points. Each subtask has its own final score. + + +We will first study how to fit polynomials to a specific +two-dimensional function called "Franke's +function":"http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf". This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation and/or bootstrap in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off. + + +The Franke function, which is a weighted sum of four exponentials reads as follows +!bt +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +!et + +The function will be defined for $x,y\in [0,1]$. Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an $x$ and $y$ dependence of the form $[x, y, +x^2, y^2, xy, \dots]$. We will also include bootstrap first as +a resampling technique. After that we will include the cross-validation technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for $x$ and $y$, or as in +the example below just a set of fixed +values for $x$ and $y$ with a given step +size. We will fit a +function (for example a polynomial) of $x$ and $y$. Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) $\lambda$. + +Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best. + + +The Python code for the Franke function is included here (it performs also a three-dimensional plot of it) +!bc pycod +from mpl_toolkits.mplot3d import Axes3D +import matplotlib.pyplot as plt +from matplotlib import cm +from matplotlib.ticker import LinearLocator, FormatStrFormatter +import numpy as np +from random import random, seed + +fig = plt.figure() +ax = fig.gca(projection='3d') + +# Make data. +x = np.arange(0, 1, 0.05) +y = np.arange(0, 1, 0.05) +x, y = np.meshgrid(x,y) + + +def FrankeFunction(x,y): + term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2)) + term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1)) + term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2)) + term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2) + return term1 + term2 + term3 + term4 + + +z = FrankeFunction(x, y) + +# Plot the surface. +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm, + linewidth=0, antialiased=False) + +# Customize the z axis. +ax.set_zlim(-0.10, 1.40) +ax.zaxis.set_major_locator(LinearLocator(10)) +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) + +# Add a color bar which maps values to colors. +fig.colorbar(surf, shrink=0.5, aspect=5) + +plt.show() + +!ec + + +=== Exercise: Ordinary Least Square (OLS) on the Franke function === + +We will generate our own dataset for a function +$\mathrm{FrankeFunction}(x,y)$ with $x,y \in [0,1]$. The function +$f(x,y)$ is the Franke function. You should explore also the addition +of an added stochastic noise to this function using the normal +distribution $N(0,1)$. + +*Write your own code* (using either a matrix inversion or a singular +value decomposition from e.g., _numpy_ ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in $x$ and $y$ up to fifth order. Find the +"confidence intervals":"https://en.wikipedia.org/wiki/Confidence_interval" of the parameters (estimators) $\beta$ by computing their +variances, evaluate the Mean Squared error (MSE) + +!bt +\[ MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +\] +!et + +and the $R^2$ score function. If $\tilde{\hat{y}}_i$ is the predicted +value of the $i-th$ sample and $y_i$ is the corresponding true value, +then the score $R^2$ is defined as + +!bt +\[ +R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +\] +!et + +where we have defined the mean value of $\hat{y}$ as + +!bt +\[ +\bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +\] +!et + +Your code has to include a scaling of the data (for example by +subtracting the mean value), and +a split of the data in training and test data. For this exercise you can +either write your own code or use for example the function for +splitting training data provided by the library _Scikit-Learn_ (make +sure you have installed it). This function is called +$train\_test\_split$. _You should present a critical discussion of why and how you have scaled or not scaled the data_. + +It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (eventually also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately $2/3$ to $4/5$ of the data as training data. + + +You can easily reuse the solutions to your exercises from week 35 and week 36. + + + +=== Exercise: Bias-variance trade-off and resampling techniques === + +Our aim here is to study the bias-variance trade-off by implementing the _bootstrap_ resampling technique. + +With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance trade-off in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms. + +Before you perform an analysis of the bias-variance trade-off on your test data, make +first a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman. Figure 2.11 of this reference displays only the test and training MSEs. The test MSE can be used to +indicate possible regions of low/high bias and variance. You will most likely not get an +equally smooth curve! + +With this result we move on to the bias-variance trade-off analysis. + +Consider a +dataset $\mathcal{L}$ consisting of the data +$\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}$. + +Let us assume that the true data is generated from a noisy model + +!bt +\[ +\bm{y}=f(\boldsymbol{x}) + \bm{\epsilon}. +\] +!et + +Here $\epsilon$ is normally distributed with mean zero and standard +deviation $\sigma^2$. + +In our derivation of the ordinary least squares method we defined then +an approximation to the function $f$ in terms of the parameters +$\bm{\beta}$ and the design matrix $\bm{X}$ which embody our model, +that is $\bm{\tilde{y}}=\bm{X}\bm{\beta}$. + +The parameters $\bm{\beta}$ are in turn found by optimizing the means +squared error via the so-called cost function + +!bt +\[ +C(\bm{X},\bm{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]. +\] +!et +Here the expected value $\mathbb{E}$ is the sample value. + +Show that you can rewrite this as +!bt +\[ +\mathbb{E}\left[(\bm{y}-\bm{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\bm{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\bm{\tilde{y}}\right])^2+\sigma^2. +\] +!et + +Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations. + +Perform then a bias-variance analysis of the Franke function by +studying the MSE value as function of the complexity of your model. + +Discuss the bias and variance trade-off as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data using the _bootstrap_ resampling method. + +Note also that when you calculate the bias, in all applications you don't know the function values $f_i$. You would hence replace them with the actual data points $y_i$. + + +=== Exercise: Cross-validation as resampling techniques, adding more complexity === + + +The aim here is to write your own code for another widely popular +resampling technique, the so-called cross-validation method. Again, +before you start with cross-validation approach, you should scale your +data. + +Implement the $k$-fold cross-validation algorithm (write your own +code) and evaluate again the MSE function resulting +from the test folds. You can compare your own code with that from +_Scikit-Learn_ if needed. + +Compare the MSE you get from your cross-validation code with the one +you got from your _bootstrap_ code. Comment your results. Try $5-10$ +folds. You can also compare your own cross-validation code with the +one provided by _Scikit-Learn_. + + +=== Exercise: Ridge Regression on the Franke function with resampling === + +Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise. Perform the same bootstrap analysis as in the +Exercise 2 (for the same polynomials) and the cross-validation in exercise 3 but now for different values of $\lambda$. Compare and +analyze your results with those obtained in exercises 1-3. Study the +dependence on $\lambda$. + +Study also the bias-variance trade-off as function of various values of +the parameter $\lambda$. For the bias-variance trade-off, use the _bootstrap_ resampling method. Comment your results. + +=== Exercise: Lasso Regression on the Franke function with resampling === + +This exercise is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code (difficult and optional) or, in this case, +you can also use the functionalities of _Scikit-Learn_ (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the _bootstrap_ resampling technique and an analysis of the mean squared error using cross-validation. + +=== Exercise: Analysis of real data === + +With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in this exercise what was done in exercises 1-5. However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +URL:"https://earthexplorer.usgs.gov/", + +Or, if you prefer, we have placed selected datafiles at URL:"https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2021/Project1/DataFiles" + +In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be _SRTM +Arc-Second Global_ and download the data as a _GeoTIF_ file. The +files are then stored in *tif* format which can be imported into a +Python program using + +!bc pycod +scipy.misc.imread +!ec + +Here is a simple part of a Python code which reads and plots the data +from such files + +!bc pycod +import numpy as np +from imageio import imread +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D +from matplotlib import cm + +# Load the terrain +terrain1 = imread('SRTM_data_Norway_1.tif') +# Show the terrain +plt.figure() +plt.title('Terrain over Norway 1') +plt.imshow(terrain1, cmap='gray') +plt.xlabel('X') +plt.ylabel('Y') +plt.show() +!ec + +If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data. + + +Alternatively, if you would like to use another data set, feel free to do so. This could be data close to your reseach area or simply a data set you found interesting. See for example "kaggle.com":"https://www.kaggle.com/datasets" for examples. + + +Our final part deals with the parameterization of your digital terrain +data (or your own data). We will apply all three methods for linear regression, the same type (or higher order) of polynomial +approximation and cross-validation as resampling technique to evaluate which +model fits the data best. + +At the end, you should present a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here (either the terrain data we propose or other data sets). + diff --git a/doc/LectureNotes/_build/.doctrees/chapter3.doctree b/doc/LectureNotes/_build/.doctrees/chapter3.doctree index 720217ee9e539786fa57eeb517733d3f988979ae..9c94edfdfe0b28e6cbb728e5fb55fdd6eadc0c3f 100644 GIT binary patch delta 90460 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%0Ay-*?y4E9du?yDn&f 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 delta 2981 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
$Ul{^F^_H$!)(k`6|ym-3fW{k6|$A? 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 X1O?$i{?xE%bQS*_Khp2LR7(B>akcfa delta 3621 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 QPmiP^qbgnU#yIf*0H80FwEzGB literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/chapter3_41_10.png b/doc/LectureNotes/_build/html/_images/chapter3_41_10.png new file mode 100644 index 0000000000000000000000000000000000000000..df911b5f7bed8e241b5c2632951127711b381d95 GIT binary patch literal 16300 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 F{|Dg@tL6Xz literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/chapter3_54_0.png b/doc/LectureNotes/_build/html/_images/chapter3_54_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4b6a42efd46bec79a419c9be806785a921ec38 GIT binary patch literal 32458 zcmcG0g*7eXs2ty;%J#kzA}qkfBso(KYg+(K%opdk<}KJf7l6d(M}uMkQC z{*m@oHSyJdaze#g4__(c8!6k%yQd_|4Da?Cb04BO@gA@c+F) z@R9ceq2cV81>h!xo*Je;5C}2l%^xgCUI85h^6V~BMcE*rVE1WYz@7EZt3Pd~R*oOc zX}EO?r2aC=Mha3bSiRsUq=JU^b2@IRg*E7Uggk@`M4?}FcV~3anvF)$peTv3P&@+K zi%&kJ*{pEttb9B07)j&&u<+pR59YE*a`fXG?B?Db(i5xPsp4Yv0zSuYe?R_yM1g|) zZhk6Rb%A(=n3q-IU^dk)8=Y*CE_=z}$;Y(#MuD-2yMn2!#)>UZ6`z z8NU!nPjY+mDkax}J9wd#xcR_$7f^f}K}C}?R^s}$OqJXlf@2l_|M_njtQQ$<^oijc zft%A&U;xhzem;>AB`MkcdwGcv5fgiz@7vDI%&^?OON$?Y#g&dsc;kC0 zBT$l_iNEQP>9{YK>?sAtH~IN<^zyQ8ooOq+Q>&@g8KMOC)#EO>xVX4rq|qV|J~Cuv zXR|9RDhdjS(~$`0kAruS2`p3q6N}^9GD=bIV$DIJtf@(SczDPnN0cnVZMQ#StAG zINUr1AKyJcKM4p64BETvU)I=2rcg}Q+1be!xW2y5N<{=NEJ%V{S&nF)7FV}P<7yj- zlH2&2f2ES{85`5eF_B3=`c6_io7W_OF`&#{`}va%OvBO7aU6^RN8|VJR$4kbY>JA^ zgM))$jA|Ypf>KG8$>YQEs#Y?ATT+H4>4wi)1WE}al-t_cUbMAQ`T6+~;`Xf(x{@2! z41ott$kGChGY?_Hr?CZ_nfW>KPRkRm_@WyBS!_H&#OZ%fh^Te13;hUMK{2 zEs0XzX<|}RX=^KGtx-J!iA2s7=flD;FN4=MHp*&hh%(S%Q2pR(!7KV~V0d_VcJj4v z-Z1pp=zg_Me&buf3l{!)j9OWY3fqzt>BEN)q0s|Xjg8TRcDbh_>8eI%rvf}YO3KPu zH2fwI6dbJIryoDavOnN~@%8s3nt!T7m04ggB#K*zk(t=eB9thLf zw0;5CyU!~pLCgNHMWm!+oW*(5vd5ipSaDM|IFjC&tPReb%J`1q`?jEP4zqIE)st8# zVwZMWC!UXFT-29ml-AY~>r_&@eQr<{ryo2&m+I>3de37TA3h}+(FjYP0& zt56d~efs(}0ZiS@=g;h5Z=>VF!?Bx%_m2K7fiWv6kT!mfUs8YKs zFV!7McO?*nK~J9O?@WxqW+{+KGGE)m)20y#Ry{Xd#|X(X zs}nU~dlT19O)&Eg_sN+#1YGsO18xh!>>6Q%TamElj<$dUyFqB>t5+r*LS>Uu>De{6 zxzY(S7z~eq03PHf=R`$Cd3IWC?(N~Ts>oG>sA&Ec)6EsA-vPp+4LlsRM!P;3=1>x& zCjIRZauWPWFqL4kW@cwGv#pf|HpX$D?}vscHNr6uT4&jZi(bBX0fE3`RfNI3R!+x$ z{HP;RZ@?}TXk7;GI0KSDwu$(l7lVwftcZw6SXYYd--y}U9zma9M}IfBiK@=J{*}ZNpi=XKu(J8^@P?(E#$1U^5<`atw3 z!BwrTnL%a)L897k$B~+!FS~oBoo#^Gz=Qt2laAEb^#n^E7Z;ZT$_Gg8kS_A&+eu?ZAydBn?q-beUZ!}gYOY5`ok@__@C=_5!@87>)@|96# zq+=H>eDhJOVA6qeRtFCo>-glv7F7MJnwqJCQ@jXe@VUz#!I~6leSLi?uLXQ`L~`bW zAk)kf?eeB=;j6Q}kW(}z3BI0*NeoDghOz~3-pGL)vJ^Dm-0&6&iH(g7gqoV#q{$|% z;_B*|VqSi}GPJKkJ73(g36zNO@p1582uDW@o&2AxXRj;-eSLjnlAv-EWiMVR`RIjk z*<3}as;X8sG$gt8rMkUAp-?L-O}QL=a2|{>eWJ_a^6-e}V?Ft&p6^pL+hUj!)o#it zSTug~4ibgp`_m$7YHFXroEX*`Ef1%%=LydB^(h}8AKQ%QNvu#Py#ACs_#qsRxc5jd ziBa~s21oeZoRLbIo?+=QO}T)ScOoriU(3;QpaP!*#@B*VmZ5ke`rzO|N|u2u6BPPM zON0CD1$s9R3sOj1M~5Aly&SOzqzt440Y&$_6eo_Pf{uB@`)tfyet@D0z(teehpY?- zdyrDw&GdA2LqWpEEoF&}c_;;*vy~0sa5?}~;=W%erJbFo?!>&jyrUYp_u$%r4AtA# zc^{LKlgsMsZmPw$_m6hQD%)vo~v6H{YH7!y7-p$Sq z`$M)+^u)%%{=V?S!otcLbmSxab_HcKa{5aYF)hGO%``)K9{~(lIte0AR8u{)`!w=v z?Y+x=BTxZ;{&bpmmjtPJ=*pX$y|$!;)z{C@7EF6-d)%e;n)MDqF~0u(HGAnKBStvu zr5|*8aI-%|{rmR}Y)lp*q5G5mT=`&*m7hI(TZKs*B?kra9TqJpPk9nnauX9$i1dYJ zezP`>x~sq$cKIRBgFvb_MJ%Nsq5p zBc$pe&H_En(lTcr$5oGVb91N9Wh^~Ek}E1I+R%drLt2j&1F`Zj z$^!!fU<>d6y=q$Az3tvI!xS7^E0VBcOzx|bW&Zp zOYx82>HwYrEHb!U>Y7p!c9{9v!RB3mWQm#K?~$pGTCoU>1Vj8F+jiyJ$6FvzO6ET_ z8@%wH&~G?c31kA>N-$e;qvEMRjk1zJsyGO}0%1N7oj4{NDPMAL6% zr0izONA$sHkxhp3KT~>x4oqw<+#JNxM(j3YvI4rey9Ueo#gGm-p*7tHE>}a@kj_ z2ehottH?!rfPNowx@T!9HgVRn**T z#W^Ppm4Q(8K8Z}}&Okp_v-*mR(a)}3mpnw~rJB9rZ5rXPosQwfog^f`|{s~&@7JrGUCe)q0%+nqV|@kvlOSPf;+hWwl;CQDjHrzOqcKM%CP@IDt~ zf9uOF&PQF^Z6yR2;Ns#!6wPp-0NpM{X(2j}2AeIQXrgMo#mGDJuOldf3CYQ;=Lf6% ze}W0STHVt!sX#G~rxhyl8jpjCGWV`SKHifv9Vht2-T96A_3ySpxVq6)TXHAv%-mdD z$*ZiZzZVz6!os0`zvg27-&9lWxb79ZIt*TZ{^s%6Ot8##C?k0c&70Jk$&ZO)o3`0V zPfw4~&X(~pDVQCg2fD$VUXLPnY?Mw2bDXgCx}3?X zRkb2?|E=hhgD4?aUgpamT9tx4Aq`qEQH*c%T22qvJ`v`4&?M}NAQEO|F2&sYP3&2J zIvuyXDbm~t)Lj7iro7ic!vWG6NWb$Qw1BKZ-hkKX`aYN@%dZiSO406N;Yu$b>Rw(*{xc!O;BZwG2gD}ji9A*W; z2_W|E96q&ejL>c!c(<@UK>@3dSxcH*<-+3PG=&v5?7@|3{al;V6=+>;-QBhHeQ&Q=9tp-H?oz7YC`SsP0X&-#e}tH=*#Czv$_ysdkA1#y5NCv=Qqv zC>Nfs;A&pF^=GOts=?^QdW$kNJ*|!h0~!a=cQ%>TJ9~J%e-n5#wf)k*zlu@!fqW(L^SFkm; z6v@uubb7Y;`nO$humx4PlPlMX7WIyM9bM~&9{RFX{PCO(B%!mihj<&QZloojaQzVc0@#krxZh8?C8c(Np&@0JdFT=m7Hv; zF?NYA0PTQUVN~m9M4vRfZONZEyFF9{7v`S8Xl7%_aL1mW`cDeE$?z333~9@v)8m!a zCIi)+=HNmN3@RQO1-SB8IwG5wZpm z7WgnSJK`$IDp2af5Dj9Boq^Q;*Ia#GkHuIc5#$C$xcEh*l`muw4Qcd11Jl`-v2uC@Kvb;k-$V35S~_zwBQ;_W+s3ftc+z)R?=sHXHdOEN2gKs zcpQI?qwlh1ew2F}-K-&eJJ1o`C&|C(;Vm^apM;pMa!bUEB_b$l7v?nJg0e^R2>hBG>+x+}k7!M#KX!`lK zMj0oLoZZ|a0IYfXw7Y^Q*7T0Cv2pwcJQJ&_NdEP=BEJavz&NgU@x7g$NbsWj_mk)M z(n_eC%9B4_wd7=>T%`wGJr9}d+~W{FK0Y_NHu&n7_0ae3CtgF0k7ID0GCe;^Z@d7o z?ZgYU)x&Z3$8(nZ5bEzNlES?t2pi#F4w-&U&T$)oHw`{JJG)8GGkFlUj~_oCy~-q7 z;m6j%=MqVoYs+y^+WjzgfrXJ29*J898SI7<!=lB&P}kq@`GdJ|VxR!sGp?(683f`*;XsBU=8_7V0z{cG}H zw83P(Xasc3sIaaDKk$Rr4GDL2G&tKfGBT18IUsJV6%4mb%c?Lv+;BwW2Ws=>(su(C zyF-vc5x$^M*W370ONLV8$tfD+(rPQq{_t5=GIc&_>c@AS2HVSnYf$vPZqWM?#kZdP z6ONwK3WIqw;kI1BUMHhRvF4Saa4uXA`5Ojs0shmx&HamLvotj9PV>us_U@fG*ln@1FIAgk^ z4xG{2&;VLyD%A9V%KPTOF`mDKvaY7)SGu;n&UcY}7~ zJXitjWD$x25BX0UM=n;~I{1iT1Vjk(stCQn)!D9_l-TEv$N;J)Poo>?rn)5;pXGHyoGv&FqyY z>(7b%-!Avg{w^Q=(M6-vlw5PEqRi@z^dvr_nO)?gRb{5VP#W0=Gh_eOP8zo6y4sYO z+N%Qtn%_TgX|{4BtNHQ!^D*PApLuRgA=l3!CJm)l*OH-VNb=zKWFAZ#X|Dz3{@}I| zJ|c$6)R9O_cJR%ptgNiQS;erBiP6_NG>)Ch&}B`6nmuB*g#xhA0OBSw$rIJi*1%-| zs4sniu4PKl_7&vkR{;dl4aw`wZT?Wk9fH#uSl!ToKjcNn%$)3lve_sBZI%lz2RBiN z=cmQR_#5V0+M8pQm|&y;F)Q~5peS(TIFNDgGMYbh%+}sVMm;E|uCJsbQ-OEi?j0vO zyNfkH?9tdvs~3T6G#!UdvB~(1l0*;WsTnlKhi(J{rpMmS4$(SG#P{hX_;|8ZH4isG zH08a7q@>-}6ecgPFtBI{SY-He*H+rH^5u01R;~ z?#TuC?7=O7SwO)om(R@s8A8ev0_gd;!G{u{3+?@NVh8S%*CT#)bp?XVq&ujc=TH;> zbOE5PpX2%2X$CnD6F_GI2o05ow^=rQ0Q3}U*gH8p8(8*?`G{%dgl4MC96H(Ok8`Eb zPWL#nTiSCp82rxjpc)oVU+G@xy|pFn2fD8za)@H6WyaL=`R%3T zFaB<*he7mGmKyP!9xv~Jo~+c{oDZ}Rs;n5J=y4z_0Kx(n8w)50&TPC%t2bF6NCkkI z*R~dQSuR|aIuCwZzWAiu3S{Y_FYl{VIRPOFDl#CWO}c!mOIgGh;p{KIx{r;W+%Q#( zjz637kQ9b8MOi`FG}KSH;?E9!h@uBJx3-kc&F^@0ZE*pV3#!L?ljw3P=Fg42WrdoxeiHy^8kL&(~L?@4Iz+_Eb5;ZAc~w53A^=x&+WNx>-ROdq(A zcIU3-3tYQ$^3FYe2{>!OSUIEgz;e^yxic8^dvmf3d6vG=+tmMebJH0uKfkoZ0!BF9 zQkjb2g*xKdR3{LjL)9vBc1$;qzGT1pA62gBOe86>(#j3{qrACk40Qt;<`X>Lm(0h*bAV z*&R0fM%@L`RRC=P&CIEp)%*L*jf;0~wEub9+mku-ytl91dEoKi@$vBi5t_C)5cd^y zo8(WvrsaMYIh3Fy0UZ>rb^5|6;~jQp(r7(v>tdSJDn@-XNJC8xI>DdLmWrC%(eKX> zz<2`90(6W3EoidnsnPhqmf!6%?@GT#GuNh@8*UJuimHWSyqetk!$Qr{r@v7es{Tfu*6miO%~pj&SzF2r~; z3=NJ$wSHE9Bsx_n7E(@Z=wMFg1UdqXtwHuwDAAmgzLk|iy~v^2%WQSoF;sx3Crmw= zN!7}V38kso>Lfd$V9ZJ3=rH-?hY+ccqn)n6GixzcGfWUIyB}ac&VGa_t|D~dIcuzo zF_!0Ugjg*Z_*vu#Qk2K_UCeRM^t^SVd!@t`b}Gh2F=VKn73xul+pvO&wgl@vPRF@8bdCzHkykAn-R=tKyYuh?e2R^Geh&O=)RqQ~f3}?^*Qkyj$^(x8{kL z;v-WwSZ0FdT7qUJAbVVqUlBSwg_-nUblm1u)ka3`nmJP9%@#>&#p;530kcPYKB@MER(Kmp#9VGgQpzRNi{fRo-uKqGc-d7zy-4z`Q}qwcdE2n)rC5Dbhtj=AK@$kGSdw& zWTBp0z9aP$;_KkPH)mav;R&=*z?|wC8b;OB)MPO8E@sz%MaKWGJ|)JF2sr!pSmH^O zKI%riI5_YET<2>2p9c|Y6{Y#fe<{>Ih^@eRdHegLi1nF@J4Jw$(&sM8P7%vdH5}3R z!bCF=e7~N7LFClb)a~TwDEv;e`LnQ=yyQ3UGj54W&?kBc2%(N(w*y^vXYF&6G^;L; zY{|Dk76eRnmhSI3wX(cl5C5L-4lq9c8rIR#K?=FAi(*bu(1BLt@4G?PVQOR6>hRrU zd9LjY$uS{Cz1pzP%nmiFi z^<^bu!4)&>3Ycs>pr&RCSqmm5C_cM9uR~I1EO=(PYJI8M(3qC!RJ>eUE1$2Wja5-8 z%*|4b(4yK~Cx@rI13tKa-FtaM@mdgGcv?(HlU|nY1{J@Inae%*u>L zoXC_-E<)m9hkB4RoL36Ul`1hGgo#^O?u)nR7)8RsjpA0D+8Pjm%^@Kp8}N8(zq`<$ zC#a=Hq-C5QS9LnE$noz-&YfCn)${p>%bMeOE68>5V7e`Dp`FRscel5I;0EX<9GfO7N@C4^{ZG!iR8YotP-i#nqh;eJ^#0R;lzbsjy=9N(Vg`2CZ z68zTCw#*`y#)vC*Xydzo*LNX8@Bf8hamZj2iFv)!Xy(P@>gMV|9uo%o6sYobX6+~+ zj@~tFpt1mIe6Fq7fY{K=N{}>3cVIbQA z%}fYR>BsY6zVGhz0D>yASA3uKW;x>{muzw^++bLgUe+_dc;U&$dbxPQBmmlmR1;A561hbQjGvC}Zb6&^H#H z)2Ga+Nxc(s8P8RJKeL`s=YpQ$Hzwl=2P~`d2ab8>t$~+2y@%Hq#TmC+$7-K~j)7s5 zg)?bO#c0Gvm<|+k;{5UF(mp?9KKvfDa+C@GwAJe_8IL-3Af;d!0=l9;D%{&pUN(Dg zZ|@cLgs-uDdsif29px@I%U&&o6GN7uq1O5+GD^fAo@WZWixzS0tH>IO(7<_wM+L$) zbh9>Wixp@+%d~olp5^-XZ5JTlPk#AA_;RuSi^R+cbNJ>dqDccGHS4ZH?V+d>I38yAO!&Yh7YBTdT zt?=ox+;TUR3w^qa6ay(}ih=N5+pwceFhX@OrD4#u@?~l&Z7!hI*8(BbwaI4TJE;n3 ziu|Syzv@`KevP$bv|wDLzhI!RTB2^WrA)jGS-3b3J@2?JN&gnSasJ&$bI0p`S3{K| zz@kO8QGVB@Jh&BBKgkhUl0h1DA;0-{56z!6+eq<|yF+H!ECGN5Y%kCW**G}hG9?ob zkTFqV2)|4jBJoN9!-m#M&S5d|IL#g@?KY?&2N2iPG#2!PFI%`zKIDrdYHMAE}(!Sm!IctE$C4Z|xBqzKuFy%ufH+Mvz z4UnYmc0wOJhR?~ zeC)UGg1>z;&fgWuyH(Rx?k1)z+Nzke3exCcmvKdmrcSsw0ilZ`W=5H9He9)a=*+d| zBAWRb-RsA{-vhx$7ih-G&yLIDewbDVbpsy~fR3MsXMbf(329ngKg`K<62o0`N4fBH zAm*_VFDk=a5CXSIq7YJ^OQAo1+9>fLUbeThQpDQaFq0}t{Dv0)vVYiA7#O1E4WFP? zO-P74=3=hTPLoUic4;oZx-ze-s#5avYd`;Yxwc+yt(=a0B}8AyCXkeWah-gogORiT zuBKv{DQDSgR&O_hk&Jb!aA3Rp_YMO?!GEQ~>yToDdyKQ@UBpb)ee zw$A<@l#o5u@Tm{`Q*CT$=+Z%Gd++w#^=}_f#$U-H?)2~%3?tCmi+k-$Wuq&zptBcw z8gMM(kHxK~&qW!_4(GfKcm%v-D{k2Yt5Xu4lU9IX_ws6{^K;Z3_Ylo}*Oi3UlVN{tvrkR>stkOBPP^SU0Fs^$t1Egfo z-w$?JRfMmDgT7w{cq0H;*#XBZriZ+mIXXN9^*YC!xgyK@x@Thi_!#S*x?#0$yJPIi zm8v0TSbz`z+0j$Eu8ZbZLnh*QTB-)n{LiYaI9 zYMw%!HEz6#BQZ0_j8ifcBgcGy)Wn9qAG{FW7KfPb)q%W*V^$hjF>PeMGKgV0h|spn z5($e?%=ItpYgA{lZ!fl6Kt%?ZWq)>1Q{&apZwL!(%_twAij`^UhloChcQ*GPnKkm6 z`Z@~VHY}^XLl%N{-MS~jBR|$aogVuR6TY&_->bVN6SSFZIzT31YQ^5I-ww1Lv5sZIAoGcorP=X$EvUaI~z5IZF*9_ zI?SalO*uZuGQ3dtrRi;s$hOdwAbH?d19k>saq;p_7E&!~%CTHA?vExyUmBSfAMAbY z%q1x?CfO}^0T3Cxc)%=gvMM47niWdJXED%zFsb>UP#Dz1&ImQt(}bn)*+E8V3IOAshPsA_YT34sVpCp!;YjIz~l7LXafzz;Y$cc!n>N8d-tOZ+%F!UwInIRTk zSq8ox(J7f8>=UIyD_f)mv}AGt>Udvp&~SX-o&oYx%Ci97CGf?^v7pWy(AvNk5=myZ z8^7x*^=WRdVq5D4ZiS6?yDRnBwSeoUQdxlpdW5AISM-s7yM~DwTIuf!dM%TdkI7h| zi>(AS}VunpsCDd4g%%*@>vg$HfTcO*?%f) zTe6EIz6!;6HfCjIIn9V^TD>x!${Cs7@HO|md=@e)u3KZ3JQ7r7tlNl#9V@TC`eQQ_ z!UR$xA?`%2brH0MEs_rFlBBmsx#~4%fH$Y{>$C!qE<-=9;7iZb}|Sfv^#$zsZx$f4=Pc+Xn>D0e^uQx}~zVb##1O)x)DfYCgOjr+OSQcAP>s z&SI*Gqd$JjAn&>|(2z1z!vB&dlz;~##3h?sSBK9f7ppS(@#i+Ctn)BH4rsH&0J`ZO zO#HxBV$g#t3)D=Bl1#nz)LhZA08@3L6x)t+OcY zqakk7D$0%J$$*v05U1Ar|2rzap4myqDEGZ3?oAdp3<$|UU*NK?$w3se+`H^n<1k;? zYPCMz(lVLF)zyYGvP8~60@7hqTJT*1+1@%eBfzkLyfZ0ooE-MYzTW&LX<*|O1w@I6 zXeEZ15?~6~$iY%x$Z$RXEQ96xoS^ax%X0=T%laiE+!oQH81A%k{LDIkYQm$qckeWa zA>n;0pW}Tsh-0$3nqn%uyBUFkebeqgz)))-OP3DopRl+Eh$jBRLZrb{;%Rdcyx{HezBRCcn$K(wP6I1843i=J(g-;BMD8&x&6a? zjt~XtQlG>9tP^oh;2;B}CQztNI^1(B>;X+JE+J6@9G1Z23KM_tes@g;LuEM5fj7pn z#*u0M8h1GPOLTzzd7V&ElgUr#W+?4rlM>{D14oQXRn94rl~Vw-kolFHZ?m|@T06Tf zXWn3>(-v$5(EdDqw)7dtFX^Lr&QkbCAB_;a!|zqspMSl++a_Y9A9 zjREoy@|J-z0@X~}%MR(x;^uasGR}YQp} z<$h@dx`~Rwklu`^BV1eS2OYa9rQKBkSG2T8^XmSeyA*&Bo9p1hS zC+=k|5=R++MHy*ZG4;2t&h;O0{~tFsqhVAH|Bn_&Vqkem3#!IBu>X#EAM^|V2hGb= zbwhl&Bn@2@j}=f}B}MX=q`ww56{3lF2DOOyymF4URgG08gBPyu$ysrz7-!9&2^1`} zSVd;EUH)79eJ}&pBF|Lj>^+~lkIT1R9E`j|%%vG2e`(cSsVdBe!^bLr>HkOk2l_vs zaf3mDV$R2y010P5!r9Fp!K;%e*s<^_QbXy6`* zU7eZzinu-V{>`+Bvix2oCtu8^N-0;IT85B`5a!zrW=mb5WT;Hh2XX>KYM2Yx`Mn&7*eW~1}khMY& zeY*pJ>Zs65Ee=bW9>^tU@)^f1-(?9_p5^)qnxz+=owp?IGj`b{DfW4N*c5A^w6t45imXvs` zE+Opgsb<&7rd>6`IA^_* zQjCEB%{>IGRcw>o9t6TdzidG07VJ&|u^HFjQzeZY@!0-T3k5b zlG_W_Fd&)KutV+nX~$iYT~NmVKK!e2h9krj+`zvYAy7^ZV^3^%`&`=4Knk4Vz$ho> zy9uMGr~jW$sy%wJd_B{o8Ct= zTW}D#;9hhwvaS&!pq!C2$i3J3uqkDzv>LRN#a}2OLS!|B`;L=ppJ2Tya^nigNMld} zGaMJkGYD_*py@k3p6YLVA=1^=aPBB4_N+P}pFGPgIL@ZdXgQvWMCV&2$79drKeocK z{os`&6gvng5n=C^pQcnJ@ym+OJh1KF)+zpr3w(e2-nE?VG2C%{0yqxh@_6fqv}q5k zC&pYaV!4ZYDeudLfnyf#-@2%oFFr+64K{l#J3oCYzxVdtS z$cs5w$Pwf+3fAJjn>V`@Q-tsI6KS_Asg?CY@^|uH2-iQ-#4YBOXGBn_UM7_pp=Pyz zW~3Bq2o#tflwHj}v0>wtc51>aC0pe?I7}Ko!+Eme~ji%!C}oTLTFvYI^IP zrcgI75Fh{j+2Gz`r;P;t10^u20T$*r7O+e_rb9g(7UeSFrSC6G&=E?Zkq&Rx!U`2Zv7@W zGhhE+o6GhsLs+oJ?i0)sFPjh(6Ju&>ef;Ps3R+vG6mUONeP16$*E? zRh`B3YPyLwphn$D3>)Z-7O!BF&ITv(${)LRE_*Ec_IzdflHrYWw-ryAOTQ%mKZ&;X ztyh(A@A`ceM=MF!wYMvYcgpy1O;WS-LWI?^*=&(zwFhZ~CbAQWg4wt1nQ-_;M*3f6 zQ<8D2+S-zGaaE95g(OXhaw1`4iUm zfOUMY$g#lahG(rn_Pk`qf9Sc-M}n^dqh!1)#$k?rEbysRC1pG=pGd?Z!!t+|PH4(X zLLdo`plDpAp$SiLBqinK{KJQl7~Jbf8^;{uoNSmOk~~p`{6vdUzlf=#|LL_oj?IAm zV_FVzCb#x}9a?@nF(A8Ti5()P#Bv8W&;IJCWm>>4zWM;+^H&KDW(Ma)!ndSO^58^t zPzsC!vM-AmW`_~&v_rn*L8atdP|O)<;QPQ0Q&M8MOd*+1#00(s_!9kf}GqM#HZax$o9BTmLM{WkmEqt7SA_8DkTlAIAlDPER zZl;32pc;YlwK!w;AB`~NNT?WNA-5}4Oweo5U+sMHAZj?#op_XVhtzD`T>73*;QTZ= zhjq9(1GaQ_4a9Ql)P%K-+UpFCbj;Lf6?4;4=5Dk4Q68^0=%3Z@AL*&I%#@Aaj~}wm zhOE{4*a8U!7$8Kp5C2|?QAA=dxZ0x4?b~DJMiTzza_ArQm(@5Otf`#$XL{^!_7EyqZu2lDkT#m%4qL9OZz#xXqBZ?^mzmo=b+Q8p(y(N zK8+=R9aVLYN*2dqzR`#uvVMx|)vn;-nJUdwo2J6P*wGNi_QBlVX8j<8SO-cGy`T%F zz5mQQg-fG*`3bO-FxUE)Huw^s9mdMJUPaVl<-W!tSx}#?A>kIa{vuSa3J_VbKtYaW$Q=XKG0M&X24=N6dii=#$pvu=n^F!G*M=M+v zIUTqCsCd)GnyTXZR(%IneQ`d~7$R*uc+Msd^sG{==t@(0z}3*>2L1d)f}>_Qo8L4X z9AUGqN&S)l?3*_(Az+D!8d%oY-VvFeJOJm|Iyz_o!Ef?5SQ@B3Kr!=N>c#pBuq-(K zk@u`zA3jgWYRwwiMuEtKvW6u7$&P@bwV^I7kqm5+3|x`Hf*k|_uEXcWG%$oY(cZv7-(?C23$nP+Rv5iWiRg1AXPmc249|gfy2{dh511S=3U@a1>@#JwV;Yqm(ptv1XXfKSk|0pV7>&sOs2djHb13^8Xm%hgsvtE(@SNnYb%+o<3orotl|nxuA3JJ zV#g;|_h5B_PPkX(85z{QyT_d65lVKEoCM74!XlDIo*~VMBmYm#5LVm@jwy0ZPX+=z zmYNOk-Om*j53l!F`-Zd>Qn{&!fa#kAm>;~xCxAu5O%MZc$3}68!rSYs->Zd>zxSP= zzuHc2qQQGI_MmY2A>{MmUUmoN8cWt~J($XUt#RIOdKPF4$kHuTHDAZ?{~VU6TOe)a zdXfkf!G{kApWnJ8uBz^SY^0}04(LXG3PW*v)f)rOe;l1j^&91o$d$gqT92}Y=<6B9 zYRC9~Wg;EqM0h=s^JkFg_r8^g4N0J{Y!$}63XA;feH3-3PS1&96Wn4Wsx3nzHQ%z0 z#l)x5+yi#g6^3``Y)B)v3DFYJIr^yG zBpqvei>mc3P^V+4zg$n4TkacyBZGjZ0md6cCl+vK?H)+fS_)HnH?Xv8y#AJDkRxpa(BHW+rGaVIS?I#KG|JBDcRRi0$T06IcH%8;O9x|0w580;? zzcKSm>GQLCW{U)>kn7_36{d7GaB>59V#8Nof#(}mhK~oxlCiGIKwZ*IjuR|5e?eJ~ zAa69FU%K6A)jY-dB7{Xn;`plNePo7R>3IyZvokYYE;#K^xav>f6#>TPdKtW>rnVt~ zVgYH#%Uaj_U?cRgA*Uc)Fa|-4YIzz_jU3AaDg_t`iM`Pi6{y<6&9dQU*Ls>kCsQSzocRnk~^w!)^Mi8Y>UnKI%2OB3p=fW(8FZ5;iegPdUnWpk618@^(aB8zOzt)`FJ0Ed{CcSKwIP zB%^`m3^}UrbVD1HhZnAH9tkjWSWv174!1*zXNVks#q0zR*@qG zl*^QKWI`SIArHV5c~bxbk7nXG-wQ1Ea>h287-SOJpRPGQJKS{Tv7Rrgd>*+;q`|>Y zWBI2HQ8?-hJIy6APjM>>N+$OH@>fdL45Dk`j6H;7^#~U)s$YcZ?<6{Bgi6_@npu~H z7ZGKjBOSKJrpB5Vu*ui|M`Q}k#%qJJ$E%_=7N^jb`6W!>I&4()u=(nC!+E&y^5%E* z^j~#r?ShhW?Uj`TT!#-_7`; z0&8mKdp(P|)3FRRE$iA77?cdM=Q!vu;h@?DBZ`70s;xdt?Rx!sP$-hBP9f7hDrJNT z9F_+&0DhWCBvATomiwcS?B!?QpO67&aTA=?-=3}2Pr@Mv8fU;hOGjSjoyyE%6uc`f z&9G&2lp&WY7DWUiBrWr<=m{~?a%Ne>i02!LW^R^X8m8j?XPLA|Rf0?e5GuOWX>_}D z9C;=Mor_5D--GH!SG_cr2_RfdY|X#bLjk<&1mEC&CSgZ z(u*%~ClqSCaxzK8h~iz1A6EQdXYU=&b^pf?f6VN?DSL;=j%3D1*@Tp>%!mqE8JUqy zMum@ERzk_jmYtAfRYF3M&Ha2`-`{pmt(%bqE4TQo$M?WTQ zh@3(IDz!a2*p-*JQ#%x zN@mOV&PgZU!M3s zoHIOVrT_NJEwIl-jT_Rb-NqbHhxB7QF;kMRPU{2cIyeTAJYeE2$>ASyJfIbF-nT(|3f&%AS zOVEt(Q}N3F`P})jsMNaTx!f(r(?ha+2GPX@HUOp0^vYaLWO(#~<2x&X^PQDQ%C`NR zbM!i*HZ(?DXQQLSi7@wO9Kr>yLb`I9Vs^0Y{0R?JK6@2Rk)-KEBeE;`tpN8buSc7F zNYCnz<(2>B{PelL^Q0hHo+G#3!AGoTnEEK#TJ!5JxKF*d1#0L>zX$$oVTw4=h{9)? z{AF;Pb(kR0#-M7Zme`aL^|n~Tyc-w`NB&_``UqgMf~LIj_-G$0A%MU1bWA>U0z>>6 za7OtJH9Q1sYtz%k+~rV_Cm=890x9F=+=L5T>ghXIR^#bVSlt@c{FZl{hFv!H*Mo$47WVZ^b4R9iFcbx0X3^MY1?=yz>F=d+R!_%1e=hx8*6~+~it{{$ z8i}mi1jYvYQBe7YTN6uD?nmqSg@2dxdXn$te> ztK{-Bji-g`l*RVYUmv3yEdL;c#a3rjgULeYJN2K#9dl<@(<7S8`feip5)L* zpWOf;P+))qiew$tsvkjLUR6bl+)NyC&%Ep|58Vc?E$UjpXv4h8isbma27knJJHy_; zM1-jgYz4!Nv8C;Q4WnOXb7#5WU5m-28}p%krk289xIA1X-CJ!DP`?plWfe4O^^M6q z@#^D@+$=FC%_3srz(Am0O*vUy z8$9pLq>rjqF zY>=f1!_&}w*%CEi!!`eu11MZU%_=zMxFjx<=L>2KmUL>DXinSV`bN)juRP5+8M1KP zTXRr1WBfG|^bX;zFJ6c(1(iR9GLGqr?-ibtT<25E%F1+yhP$`D`75>n*M0fySlW6PUc`%Q_RBCXm~pBYF-!% zw_(h*%;Ulf9@8-mdc|ys3EO(<6i~-i`sU7$tCVZI2Bgod=?jyY(uE)WzSo?5>os!= zCFU!>Cx3{Xb2$kUyFeAeh3r(4GK-ww-Io0^TPu>>PC^XWQk%v9wD&-}ZUt(du_gQ2 z=Qm*XRQffBb=wd-3~C%mB5q&mX(8u2OLyd{LJ~pp;o9m@%`!R?0O=@P!etnAR;8b7 zm{1tCK^`YgR^68ycQ6pYUZd8SPS0a2Gm@l^H8;wWVz007uIOfaD0j0}P(t{iHVPU+>FHPjdKMawe4nXs`>^luMH6s#cfdiP(sJYi zzv@rO!`$?SM`SId8X2TNLuqs*vk9IhG;mycx1M~~y-&JY%`C+TnPhA&kJ)`rztnmP zREj@`xIuex;ZlFW<6ykWXHnn#((}v9Put!n4r>j84<01mVMZ~J*yZrGbN>N20RR2o zrPl6nZ;NzFm^KYj2KY;1L@nf^7O!({BBS&nPRqn{R82-(M_0HsiRY5o`a}AB3YoUO zcE1P`Z_S+*l|~+CJmdE7-d)u0salp4Bd1iIrQ4h2{_HXGigD%EAJNdqF)=dQf+7jD zWu9-RLA&Nr0MnhG(ffru6q z#zyunp_*!9>cXWXF&Ct(md56ozg8HS9LlwGO1|fmQr2{rWrR`4U4d>`{{==gZQqwM2Q9(2Yo$#hMQjFpZP8upB^|f@4q|l z3bIApDs!L{sFKijbyR?r!peBX{~`N=ga)bJP(lW><){Pug&pqZ!+%p%K1)XBFjl9e zq!d}y_{|%>Nvjr6z3)xJ-JGD{-K0)p!BsYhoiuU zDn6cS*j&OizXn>fTel=&R$FD$ieFV{@F*lhvFY_|vt-34n_&@oVr88=+u>BpJ;6tn zEQXQ=F_kPVwicJII`c%Hw0pF3GM*RIugA#7>fbqsA@PRuM@BhNO%nUOI^(^?jnwD) zt}Y$7+mvyYH^MuJjkI}1?c?g@En+fC6CTffx2~W)zIBFW-s%(>Ey+_s$5>y_BAW#c zN+7KU+4MnI@WF|rjf7z2v^0M0-pPUU`)*^FvzoMCQ4s#T-ICyqO>CUEs}j7IW{Jyr^0sHmWomRz=z z83Y|Oa{ozC`a{AbaXk*kWwT2~Pql;!URvB=!lkdT9UrZ6g(EiL2UBU)K6T;1tMg`D znxQvM63VN?;mxT>QauM7E1-K~oyR~_I1Fw&U%psD&C2tA1HILH zu>aJ(F+^voBRNf?`y#00OwpHcTTDL!TZUn)~Qbq8j!aPlCu%;&|5w*e%a;SSj ziLuKI68VMRHu?A9K?Ze49L%+L0(vA!au>Zef1)}Km0mzSGrMvn|IHgVuzmo7bxuwW z2_Zi6MFTgI;hP^F!pa{ygv+oAF&$TEnd>zhl)rxRQM7=bdoHi9M(Cot%M+Gl!(H-A zc1~=1!Fl4v(sH}|<%C-1e~LvIS!}l&3e6_n{5V8n6{PQxgcDt2{HtuAEEIJ)_+O8J z*4cS7A&U0~yf1vBu~ZNQp-BAV`JU2uwRT*(pRt=*h=}LL1-1;C>ZFU8AlU&GR(_?t zMw(Rp1TnEE;BM&p;i|7!?2Y*G(b1mNVHUS4Hh*fDd>K^PqMtut@Ow@IrVq}1AVwN1 zFH2O5t}M{#;1WEoWzuHfSrAS{QgVt$-!hY7P1BD+OCVyfP)bF)D9S|h9`0x9EhVoG z&lcgv<9~KGAA4FafcsSb%{~gDWHUa##)`s>>!NJf16!Md)R&rZY@m$u?3Wpz1-T&6 z^2&;7-TvfY(8DgyV2+SywIlNkPkuRbM``V6-ZY_!&|4sKz=S_0$2$-tR4Ee_!cljh zIwlLr;@+`Pzk^rwjr#?aPGMMgEM;__;ZRwg4u^S7#Dvhxr>ashu{70J z6l2I+_Gz@ds;ca$)qcAFKa4w<2g+=ZVsvZ3$s!yi(uz?@?hxoIZQm0c#+3+cva_?l z2U33}$TYw~A|}R1CJ(W`U~FwxZqEJiS2ztg1LXsP4U!*CclQ@8B`4)QFK}4DB#K=m z4b{UH$8fV;Zj$Fp(?Z-g`7Piu3D)CeDClkq8e zNW^Pe{>!-I-B5YU*6Tc3Y*D;@e@)wybnW6ojv8&NOrBCmh*o#TOnrCeBE3MoUr@WI z$$Tvw-q`7DZy4&n+$KMD|Ci*3q*^z3&oL)o_$EO&WE^1WM=NiNVsMhfKd)c{2pDGN zpKPd5(p>cF=nStiwBi8;YQBk&cL00n_};6>wcRe@`~V5di;BGGW5)=IPVTNpr^ zf(IBXpqy$HoTZ5{p!Wb4Dndw;L=yl0{R@7c5@h%}dV(OdLOpqPwG@0J`NhTBTMbNu zHMXyex7INsLHc;*PFvP$V#3^*a2~?v-5)RB?0dwRRzz#cU(=C8!7j-<(2=e7UEn5@ zsibdcS^*R*9|U5weU_CkGufu5EWTf*;VEmI50LD|=b|$kQo#isA10*kOBNA;pI+I^ zH)Kdkd46wrGx8OU+Ir2?!%G{I&MB(G@90}{$fo$Bv=+rbm#12dXclUDNwz;?B(QmO zQiW_554#lGqbK0%z(_${<<$SAe$S+uM0hfs?UO74AKQv#684kg==3yYLRT0VKorT` z76#M0zl(!i2fKg4#7h$F3?bqm8Vh7c2ok^-CGFUKqiM+T%P{EFVu8VZQY{J{QrC7- z4Iw{;Uh6gkzKt!Z6+7&MYPAT*{iOzzSe9G^!SZl#9X0brA)Tl~Bh~0iOv`Ep1Mg`C zXQIQ_IJ#7zf+9}}Xv9u1TY0K>#-B4bz$W6P&(H&!FO77r^>scyj%kuKzwt%06Cvv z$pM!=IO|nTpCB@n`u!c^j7#ukHIyu-P3uxgCEHWydr+AY74u-XNkMSlSeyTkoi-yR zBqeSQT->W~|IPfD@9As4!iJ}we)AvPI3~36T!Pi6PXFA3c7WI^>bt)t9^498V6Xp{ zq$_pz%O!5zL{pIhjt-*Y1jhXTo8fn&lD6envMKaoHZF|u3-tx`E)!L7jllD&1a2n^ zMSP`@bqfmxOw7zWmn^05!dfwJr>Wo#f_YZ#>U2!PvT&3gsfwb zm~*MY315wbjGVmnuM$}EA-5C4FxCGffoUwKpnAi{4OP1-wtJSEmL-`m(((j;4Fi1! zs~4sIw>F22^A8HKCn}2R+e%^V?)#43{Ow&a7`QbxiiPhyIAdH*T5{3f-CYb+AM%${(=BH0X(QcF($g?!pZfqIpfBd zo4g!;sD%x1tv|iE%6z5qhMGy_`v>RUbo{a%mQJd3F*!1R69|%a;dG>ny)7A&X`G!Q z&})1_p)(NQJB^Xwnu3MxZ0C#h9&W*MclJV_*HG1f%PeY`&SDqvqV8NQ8YKl6Q!p4c zv@SB~qaefwH_a0--~Lt%*c*MCJM3N564!p4kz979?Dx*q!U4^8dus`W!;4;cz0S|z zoeT}pKpr-xBgHWQX%bY62y7mjoQ%FV6Ns$!z`^vQj*d=SdR=p~b#_R;W6C{&q49CS z*DKxknQ&?!Wg0mvYWXCa{_4MDinYkR#$t#UA_296Wxj|EMFRQaOAX7C*-bWMy0k%R z)3zk2&x?g{^FH5XTt9vA4V9&_zE_aawz37XqNs%hi)l&lFak;0`1Si@==6ZES^rK$ z4JlUNyx+x4Qq=j`M?9aejef$>B5aQk-U7l>z+))EyanDd*bI>YT7g_cYip6L3I_cU ztbQ&p(?z>0ifk@57DCqnUl)XW$?p|S-~!jN66#wkT;;*TFM=Vt2y+`4gp+Am?ta>A zF2~k#YgtD4^^B51ye_8wG&J$?Mq*rLh;QEVuU{HM40bqfyR|m z60quOjUHm8%7HC<0Rz2%Z!o0r_!HN!Ip&mSWajiZsKJ#2>wIJtN0kp3=%uEw7WMOU zcgiAImmuCX*b72k4#v(kdS<_5zW?}9cvuD{~rb<@vo)vh;)F-)0n+QVi}<5VWgY#!4-C!RI5Uv{VG*2Gm4I5DJQwi3V@M>%Mal z77CF|p+?126Y@Ea$D{#PM2{0JK|4U54D#jNkDtL7H?neZFfBHh~d9!Ft6zN?k)o zm6N}|EbAla1wX_ls*~1CDlf^-EnxY0iH?~-m)u)=^KOEoLY(4*B)(hpyyd&Ya>HM* z$Mp2*02m98)H&B{>JoY4Y_+}hCPV7qM#e74= zv<8b_KqxN@Z#o#efLrkVau(fbCS9w(xX~pI2vHCXZR@7M(dhwL78O_0J*-BQ6E!o@gli=zd>`sV*?6X>e>eEvW9~PAL6G5|K>*sn~d5(_1r#bNJ>-m`#EB zZ*F@Z?3fjK-{$&2aBupPT7jInXO54y^%e5)xfmw4x|U-A^(S(5m5!xwaa`GePl zhC-{)*kTXRM}NOr5r=1b@bjX|ldAX?4b=>f{N%B?3nbC8<>m>T-k573y@5PsOvkuF zdRkP}IEOYvoPs#)=T%K%WM7RSRp^Al_SVG21dL*0M#3j|QfC^*5jnQN1Cm|cf$>{`Jc27qbs83CTWy!+XvB}735!EyajScLE1@km*$27h!^Ucx(vF9e(~ zV*p>K0R+3lA=iAgbz`Ax&PTB$dRQ(;@MnC`R^85GqLwLkeJ}iHVKG;t29#bL1Cr0} ztj(U7lc#8z8l7pwnwBNenE`hJxgLvIruc9Q7ffS}#$#W}J~ z9t8!(Y)Mh>lhi1MsUh-TtQg)rz!Z@>4}9qb1ut@tWX2T}pE!YXIbe)Vxa-de3(2oG z`bq*b5JS@Z8(@#NJk3}z1DNxaN9H;J5Og>zEUA@-Un%XF_PKt6uiONz$MtdeJ=(gY z4_ZE^Pb)AP@|~8sDOUPcnPcGUj(ALLtl>4~z^B3uD;?m(%Rv>n6V^7;ad6;!(FiLX zbg;mQEPa~~S8wT)=h0o*dSWU7f1ej1qb8=NwgcG;m6L8DO4EWi*4Y^xB}C@4*5zs`i05JQ~3HWGhC=n=+Roh-=!wdkbO4r{%P82dxUJ@`i;#Z2T zJ{5R5=M@e{6ysgbi(4|JN|V&t97{A!jpE+E7ZTUW5lBx-L4#K399=0IHKaKW4aG+@ z9G`pcAoV`O5)MR7u&xIjZ)0a60ddUU{~c6$nnt?NL)A-QwX>;DQ1jyrhD7%W7`EmO zxA`HB%#$r~bRn7xq(1Q0gj|jG1^_!6nb!L(jaXdOa?+zj5o<^06aGI-N)SiSG%4TFAm^y zUibUXsI)U11~WJ6^E+JP4d0S1L`845$2I+o_?PTqpV8HY4BdO zgE6hM@;I{!Hwmb?aS_FsmIc~8ewh)YwgUZ~j!$$lcs;!3lYAlb1aKJj$ojum=a(r}%vYNBA^GLTXFg#Gct9I-|5kgTE%t=uz z+Bk7m$La$q6jOFEOt#RGo9vy390(dqWGroD6bf`2FolY`Q-`bjGVfST^o?9UVlZz|`uBS}i&k~5DRAEtob>?D`x5ZCf2UKf ziFO+v5A+ZI z)irB^f5dC|sfW7a4G3=XYDWTw$;pz8P@Nn`cthYCX<%WYV1MUq86)eXP7C)n5RU^{ z2@G$w^z^9UOLuap>sw#fT{hI0s>a8}@<%U}>NimF@bdurb?Y8a_ww%I(=KCu<%lcS z{TwZq-f_SO27Zv>*C=NIo-M$PQ`-MkV_xf$THk-;{9jho^*;r{aYy1G5R8>j1(Nmt zxWQ?0nP9Dcf$B@p{wm18+ka2L^#ZVs2m0dl>;A&x?>3DZ|MZH2lW3R=S*Oz;IE-~^ z3WHH=H|Xx5#q90v9T7>ZX5xH19S_DK7Q7w}OpTVJdy{B!PTbo-bN-d(H>6fx8Is zmGojSu{!hfmf096xY!lom`pF9czP~aXq7WHb2jzL^;Z3$KlF`z%Vl}I7X>QsZ+rZj zs-xCd+91Rrn7I>4F)wlkntXABw1enuXi*7h<L70wmq*+m5)Ad{C z#wp*oF5OXLp8PmEQDODt!F$PQn7spWv8qG(>gR@W>)?|BoNISRV?~i!>aWkWsB|$mFLtvM;uj(2Z+o*i|=q8<(3nZT_7O4mh|JwvOzla3ROe%>5jF!=zp?FUAXRLuAuv$>|S!fpy+uvl13 zzWSp69mZV1*cUo|`jW-HK0dH;g$hwaRjh2XMCNK4Z5o@QBm>ir0zNcZ^6AEsF{vtY zP#I=*@@V6p%)DJ|ij@dl(na@hpNRU}h~6N(Jy#v}(>{Iy3kJ2$?3P{M-4xd_eI*lrEUR zK*t)R?r`xU+K#ojmTV?c{YRfLG3%*6ri-`E(L?*hRV6RQoV*pZ`v#P$$OavO z=n_pkc50vR$Ed=77J0`WYzzbpmE+w(-@T=xjk@MTO3vNxi=KUAb+e#?xnLRL?w4Q< zJ7>UL-}sYZ2A>@ad07o{u0-C^;4T$CVa7ug%LNzG@x}nK2DO^4x*&BK+EfOYf>fQn zq%hhI^kPBSt8xLl{)FHId#j+`??rnqS$c42EFUv+X|Qk}tw(yTz1xQM2=nr=48f!q62cFMP!o+3duzv{h zyMXl7;H?`yM7g)C@l!}evm82Fmet*fRpn@d`e2SaxCI`FKJb@VQ51#GXZY0*QX_0fkY?SK7?uRAEaN#8q{@DTgsdxO zW&LO71pNZ;oyyq?`-&pi!%-zX1&)V3-IB&z z`*>h~MgvW$d`#*`;LSdc$}QKQ7&wXcs3_qXj~55z=M z;JNc~+>7`fZHQ(e?#k!r0SNISOO6^omzw!^9a^C;uDzAz70oPv)HCM^CYfz6wew5I zSuUJ9nkEzty9yS9Wk8s-x;K5tce$hp<{b~?IE;0ht?%DIhwvo1nE-kKwICw*`@E@u zMOxXC4*cMnfozJaAXkB%ey}RwGXQbk&JI4>eL{kKZa@HMUgvSLZLZQBGtl49$jcyR z59K<931oQ+t-s@C(N40@plohdsZ>2{ad^PKbkTR|8JLcqyZ5`jB4|tW8%~^}fgge2xjB4q6X` zaIyWxn_9eay}(OP!QN8~yzhaB4l+g{>%BkRo=Je#>DSkH?CDmw(HTM)Y89}7mU4BX zlL7UD-9qQ1m@@qj*Xsbn_81BWc&}D}>0>VoYM4hyleZ=#ZbJ_RP42b;r zr{0Rbt$hOps};ojohAL?7!dF~Z8dxZHYiN_;^Biq%KF7@Zz_m4rmGcq98TPT6%4j8 z;|e4oR-`-pJ(8d2S6(v!KFFPr-m1V+88`y@Fg+1nEKp~?;m|K~61-SpvKNz_ zZ5_1h2wwN|Bf1hDkaEE(DKpJint?3((Wmmvy6S49D&n#6@e_a+Z>@|EF7q)d7z)q* zrS{$Udy64jcHs7nafkj-max}lqenl84y*_`#lgVJnNyJQ)g~B6)KUNE=}B;C zW_}pV<@^6;A)4~Snfuw3I?&E$Q+i%nN(w)ri=bvQ4tDq8WInqVBAe$|zcQ)3Qf03u zJbDy;-X59?ot3-b%}_rdBkBp1jk)SR@vLEmY&CS!oGzJJ`iLYb|6_ryw;pSKfIq0b z&GBD}jsAXOz2k3qI0mR~@&wbt$_be^z=MQ2s2Tm70oDuV0{{X-`wZVIrUR1lS*Bno@1$*D{^y+q7bA!y8X z<7uEQtPA|{A(J5Ty`(Gc`{)o*q{d1#MZwLt%z4hzKiwgOLh-X=@2|>GzBYdw*i5djSu%O}gzSq5VKy}dvHbk^bn8wO@nIl=&|$d4*YYW< zkyOOj-kc!^u0$)P+?Nn`k9s_SY%3c7ke%}X$qnS^S=jN>3c1T`CUDypcw9OO_Geho zkOm&L0k-3)3Ai>LwxuOtvGEXfQD5r4EcYrd0hBZkP)-|yKarPxFnGYXdKDeF=$%}$ z@AM02%8BvGx+zVT(3RZdIAcr(fwKPJXV<9-yJJLj7*5gC8tY|(`L|GCra3tC4bWFdN_F9nnY6LqgD=mBS zqzFecHGGla#$gY1vYOJUbdWOHgQved1gUk%XbSdQx?<$#L!R-!-IiY65s~vCSO)tE;-Vb{*4lS#CNUP)sz6NA1su z^*LdqL$&jNx_P0KW`x=~G9mDnJDAQL?c=H3)UUv;>>q4--3kK9F!WfTF?#V~X~= zrmYuo6(p{#8lR!qgg%`5{=Z+X4U4(4k*EB%6Uz1QvR@J170Z7!cy3K;;~4Iy0sJtoZQ(nQ5TRx zg!(D>y62EMMKy3lAl($T-X()*I`d)AdnJPv_Jxe_L_eOt(!9rbej{4{LuX0OnT$&U z*$`jkA#cMPOO(J+)rs;$n%GqV|JyzLy9ND2U*E>NwLl41jZ~M`$Svhu__3Jq=t*c#-ovg1eIFkjFA-b=_QaslUkbz% zYzA$b;GT&SrB*&Ivb))6r4FL`pW^gAfG8XJoQEU;pwcNfeDz(RMC}_?5~UITCBLI7 zIT4NsbXUcb7e!(I4b+!t7_1_^&SLdWIjkOn8V-a9lCT3x3GU5{sU4VlU~AnNm{jmU zQF^w3UsNoK1hWHI9*W)#ddvC~bO+H7!L$>^d@$zpIzHUa2ahJ?oCmZU%H*DKkV{_s zYeNc21uRBvVYCSHOi#reKvy5mtT9gojj$Sb{#81fIo=Nj*idD+N5A?je5>oWk9yo% zBV`0u7dlPJe!OV=dv1d(HdTpx#wF+F7V^@%D~Um8f)W(a|-#;Ia}AnQ#Hk%fB>u zgFiL1IKy|k8;Ss&fK;y|^*o4{r>4;N{A>Cxv!9>e#A|nUh)O6%up7%tN#)6ZidCLL zwHlPv2S4PRhoeOlP(Dh2QeI6YmY;YU;Vq3IW_v=rDyyJZbBsSO>f%d|25Oh z35QD+w22;XS7ie>^Eo@zsg=Va6BO(i(r-ZaYO||CqYLZ(&*L;yf=@TgiHhzEhEci8 zFLYydnq|(Mp{ctJ99rPDJ9QXsJK%E@qUq*~y00-%m{y?eEobiiwnDuUIw~kkKdY@Z zO{^Ef`NHn34Ip*021B@g47-?s7PA0lTF$Tnj3QB!S@G^48*m9WKrfnCTPx#{1*3xb z+14<$S_R&6G@xAGT7xAE-`ZI(nw7LL3{a~atVf?urH=>3$(P%GV(^i0UJpLJ1Ay!- zG)>~?H=k3_p&Sfp#`ikQ@YaX3gR{8w>umrWJ%)p+%NOv~Z!tPPABD)^;NZ?&>#m-# zvoHUYh-Md^0GJUb<+c#=p&~+ewvG-OEbRiRNNCqWD`dyqjk_n`C99rz&&q6}!#DsV zNhp1+vJD;!XW#et9~vDEg9+rIK3IN+xvI$chDX*Ft86n=HdeDF%VEgS1W35M~)|(s( zQ1~j_pJUa#Z-7lcTpEIXu~_hpy$Oc6lo4t^({JuTl4aQq%wkWVa)jn$_3Q3c*+V!JZ}o?uytUUGj~Cf2Brn_`a@`J2xzoy zYinzl-YebtIYg3EE=4F7F-tC9j{#~A%C^u!Dxo2zqWz-a@=&7qfc$ubF=L6FdpuBY zQE>&;FSKod$zM=2wCvI$pT46?Zgi8~C!266Z|=?aw5vbu6O^@tap-x!dh=$FFuOz+ z6+}LOll#EB%FUzwHGN+t7K#zTjE6vAKLi}%A@IwcROy-QARRxGLl*4M=1X=V_F*gy ze#JOB2EMusxm#c1Ij0QG=dDBOPX=8!QsM!u>xhn+;7_+Z*_VcTmKj2ru4bX~7o`kP z&v*`NGS4+1tu#CBOUtN|Z!~R==prZqg8=}a|7dT#IaEO6%1?QMXUSvEp-@pW0nnia z-Rlu>ClTbzyn0nn;3oI=C0S^PAtS)z8hCGtdglv7Dp%x5FOVp(wYcG+L z#$B0s%GHW8o|p?_+zyi5?f5o=mAY+> z4Lyb(qx?$o{qy88VGP!pp@kW*kqXR(7lm<=q}clgx^9kJDxJKPr|*8FRv{;txHmc@5|Pr zg%L+939kwM3cr)h0O9n%UFn9)oeolFKk81 A;{X5v literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_sources/chapter3.ipynb b/doc/LectureNotes/_build/html/_sources/chapter3.ipynb index 95758bd41..b7775f687 100644 --- a/doc/LectureNotes/_build/html/_sources/chapter3.ipynb +++ b/doc/LectureNotes/_build/html/_sources/chapter3.ipynb @@ -1282,6 +1282,433 @@ "plt.legend()\n", "plt.show()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises and Projects\n", + "\n", + "\n", + "\n", + "The main aim of this project is to study in more detail various\n", + "regression methods, including the Ordinary Least Squares (OLS) method,\n", + "The total score is **100** points. Each subtask has its own final score.\n", + "\n", + "\n", + "We will first study how to fit polynomials to a specific\n", + "two-dimensional function called [Franke's\n", + "function](http://www.dtic.mil/dtic/tr/fulltext/u2/a081688.pdf). This\n", + "is a function which has been widely used when testing various\n", + "interpolation and fitting algorithms. Furthermore, after having\n", + "established the model and the method, we will employ resamling\n", + "techniques such as cross-validation and/or bootstrap in order to perform a\n", + "proper assessment of our models. We will also study in detail the\n", + "so-called Bias-Variance trade off.\n", + "\n", + "\n", + "The Franke function, which is a weighted sum of four exponentials reads as follows" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{align*}\n", + "f(x,y) &= \\frac{3}{4}\\exp{\\left(-\\frac{(9x-2)^2}{4} - \\frac{(9y-2)^2}{4}\\right)}+\\frac{3}{4}\\exp{\\left(-\\frac{(9x+1)^2}{49}- \\frac{(9y+1)}{10}\\right)} \\\\\n", + "&+\\frac{1}{2}\\exp{\\left(-\\frac{(9x-7)^2}{4} - \\frac{(9y-3)^2}{4}\\right)} -\\frac{1}{5}\\exp{\\left(-(9x-4)^2 - (9y-7)^2\\right) }.\n", + "\\end{align*}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The function will be defined for $x,y\\in [0,1]$. Our first step will\n", + "be to perform an OLS regression analysis of this function, trying out\n", + "a polynomial fit with an $x$ and $y$ dependence of the form $[x, y,\n", + "x^2, y^2, xy, \\dots]$. We will also include bootstrap first as\n", + "a resampling technique. After that we will include the cross-validation technique. As in homeworks 1 and 2, we can use a uniform\n", + "distribution to set up the arrays of values for $x$ and $y$, or as in\n", + "the example below just a set of fixed \n", + "values for $x$ and $y$ with a given step\n", + "size. We will fit a\n", + "function (for example a polynomial) of $x$ and $y$. Thereafter we\n", + "will repeat much of the same procedure using the Ridge and Lasso\n", + "regression methods, introducing thus a dependence on the bias\n", + "(penalty) $\\lambda$.\n", + "\n", + "Finally we are going to use (real) digital terrain data and try to\n", + "reproduce these data using the same methods. We will also try to go\n", + "beyond the second-order polynomials metioned above and explore \n", + "which polynomial fits the data best.\n", + "\n", + "\n", + "The Python code for the Franke function is included here (it performs also a three-dimensional plot of it)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "from mpl_toolkits.mplot3d import Axes3D\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib import cm\n", + "from matplotlib.ticker import LinearLocator, FormatStrFormatter\n", + "import numpy as np\n", + "from random import random, seed\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.gca(projection='3d')\n", + "\n", + "# Make data.\n", + "x = np.arange(0, 1, 0.05)\n", + "y = np.arange(0, 1, 0.05)\n", + "x, y = np.meshgrid(x,y)\n", + "\n", + "\n", + "def FrankeFunction(x,y):\n", + " term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))\n", + " term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))\n", + " term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))\n", + " term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)\n", + " return term1 + term2 + term3 + term4\n", + "\n", + "\n", + "z = FrankeFunction(x, y)\n", + "\n", + "# Plot the surface.\n", + "surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,\n", + " linewidth=0, antialiased=False)\n", + "\n", + "# Customize the z axis.\n", + "ax.set_zlim(-0.10, 1.40)\n", + "ax.zaxis.set_major_locator(LinearLocator(10))\n", + "ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))\n", + "\n", + "# Add a color bar which maps values to colors.\n", + "fig.colorbar(surf, shrink=0.5, aspect=5)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise: Ordinary Least Square (OLS) on the Franke function\n", + "\n", + "We will generate our own dataset for a function\n", + "$\\mathrm{FrankeFunction}(x,y)$ with $x,y \\in [0,1]$. The function\n", + "$f(x,y)$ is the Franke function. You should explore also the addition\n", + "of an added stochastic noise to this function using the normal\n", + "distribution $N(0,1)$.\n", + "\n", + "*Write your own code* (using either a matrix inversion or a singular\n", + "value decomposition from e.g., **numpy** ) or use your code from\n", + "homeworks 1 and 2 and perform a standard least square regression\n", + "analysis using polynomials in $x$ and $y$ up to fifth order. Find the\n", + "[confidence intervals](https://en.wikipedia.org/wiki/Confidence_interval) of the parameters (estimators) $\\beta$ by computing their\n", + "variances, evaluate the Mean Squared error (MSE)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "MSE(\\hat{y},\\hat{\\tilde{y}}) = \\frac{1}{n}\n", + "\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the $R^2$ score function. If $\\tilde{\\hat{y}}_i$ is the predicted\n", + "value of the $i-th$ sample and $y_i$ is the corresponding true value,\n", + "then the score $R^2$ is defined as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "R^2(\\hat{y}, \\tilde{\\hat{y}}) = 1 - \\frac{\\sum_{i=0}^{n - 1} (y_i - \\tilde{y}_i)^2}{\\sum_{i=0}^{n - 1} (y_i - \\bar{y})^2},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we have defined the mean value of $\\hat{y}$ as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\bar{y} = \\frac{1}{n} \\sum_{i=0}^{n - 1} y_i.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Your code has to include a scaling of the data (for example by\n", + "subtracting the mean value), and\n", + "a split of the data in training and test data. For this exercise you can\n", + "either write your own code or use for example the function for\n", + "splitting training data provided by the library **Scikit-Learn** (make\n", + "sure you have installed it). This function is called\n", + "$train\\_test\\_split$. **You should present a critical discussion of why and how you have scaled or not scaled the data**.\n", + "\n", + "It is normal in essentially all Machine Learning studies to split the\n", + "data in a training set and a test set (eventually also an additional\n", + "validation set). There\n", + "is no explicit recipe for how much data should be included as training\n", + "data and say test data. An accepted rule of thumb is to use\n", + "approximately $2/3$ to $4/5$ of the data as training data.\n", + "\n", + "\n", + "You can easily reuse the solutions to your exercises from week 35 and week 36.\n", + "\n", + "\n", + "\n", + "### Exercise: Bias-variance trade-off and resampling techniques\n", + "\n", + "Our aim here is to study the bias-variance trade-off by implementing the **bootstrap** resampling technique.\n", + "\n", + "With a code which does OLS and includes resampling techniques, \n", + "we will now discuss the bias-variance trade-off in the context of\n", + "continuous predictions such as regression. However, many of the\n", + "intuitions and ideas discussed here also carry over to classification\n", + "tasks and basically all Machine Learning algorithms. \n", + "\n", + "Before you perform an analysis of the bias-variance trade-off on your test data, make\n", + "first a figure similar to Fig. 2.11 of Hastie, Tibshirani, and\n", + "Friedman. Figure 2.11 of this reference displays only the test and training MSEs. The test MSE can be used to \n", + "indicate possible regions of low/high bias and variance. You will most likely not get an\n", + "equally smooth curve!\n", + "\n", + "With this result we move on to the bias-variance trade-off analysis.\n", + "\n", + "Consider a\n", + "dataset $\\mathcal{L}$ consisting of the data\n", + "$\\mathbf{X}_\\mathcal{L}=\\{(y_j, \\boldsymbol{x}_j), j=0\\ldots n-1\\}$.\n", + "\n", + "Let us assume that the true data is generated from a noisy model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\boldsymbol{y}=f(\\boldsymbol{x}) + \\boldsymbol{\\epsilon}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here $\\epsilon$ is normally distributed with mean zero and standard\n", + "deviation $\\sigma^2$.\n", + "\n", + "In our derivation of the ordinary least squares method we defined then\n", + "an approximation to the function $f$ in terms of the parameters\n", + "$\\boldsymbol{\\beta}$ and the design matrix $\\boldsymbol{X}$ which embody our model,\n", + "that is $\\boldsymbol{\\tilde{y}}=\\boldsymbol{X}\\boldsymbol{\\beta}$.\n", + "\n", + "The parameters $\\boldsymbol{\\beta}$ are in turn found by optimizing the means\n", + "squared error via the so-called cost function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "C(\\boldsymbol{X},\\boldsymbol{\\beta}) =\\frac{1}{n}\\sum_{i=0}^{n-1}(y_i-\\tilde{y}_i)^2=\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right].\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here the expected value $\\mathbb{E}$ is the sample value. \n", + "\n", + "Show that you can rewrite this as" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "\\mathbb{E}\\left[(\\boldsymbol{y}-\\boldsymbol{\\tilde{y}})^2\\right]=\\frac{1}{n}\\sum_i(f_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\frac{1}{n}\\sum_i(\\tilde{y}_i-\\mathbb{E}\\left[\\boldsymbol{\\tilde{y}}\\right])^2+\\sigma^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Explain what the terms mean, which one is the bias and which one is\n", + "the variance and discuss their interpretations.\n", + "\n", + "Perform then a bias-variance analysis of the Franke function by\n", + "studying the MSE value as function of the complexity of your model.\n", + "\n", + "Discuss the bias and variance trade-off as function\n", + "of your model complexity (the degree of the polynomial) and the number\n", + "of data points, and possibly also your training and test data using the **bootstrap** resampling method.\n", + "\n", + "Note also that when you calculate the bias, in all applications you don't know the function values $f_i$. You would hence replace them with the actual data points $y_i$.\n", + "\n", + "\n", + "### Exercise: Cross-validation as resampling techniques, adding more complexity\n", + "\n", + "The aim here is to write your own code for another widely popular\n", + "resampling technique, the so-called cross-validation method. Again,\n", + "before you start with cross-validation approach, you should scale your\n", + "data.\n", + "\n", + "Implement the $k$-fold cross-validation algorithm (write your own\n", + "code) and evaluate again the MSE function resulting\n", + "from the test folds. You can compare your own code with that from\n", + "**Scikit-Learn** if needed. \n", + "\n", + "Compare the MSE you get from your cross-validation code with the one\n", + "you got from your **bootstrap** code. Comment your results. Try $5-10$\n", + "folds. You can also compare your own cross-validation code with the\n", + "one provided by **Scikit-Learn**.\n", + "\n", + "\n", + "### Exercise: Ridge Regression on the Franke function with resampling\n", + "\n", + "Write your own code for the Ridge method, either using matrix\n", + "inversion or the singular value decomposition as done in the previous\n", + "exercise. Perform the same bootstrap analysis as in the\n", + "Exercise 2 (for the same polynomials) and the cross-validation in exercise 3 but now for different values of $\\lambda$. Compare and\n", + "analyze your results with those obtained in exercises 1-3. Study the\n", + "dependence on $\\lambda$.\n", + "\n", + "Study also the bias-variance trade-off as function of various values of\n", + "the parameter $\\lambda$. For the bias-variance trade-off, use the **bootstrap** resampling method. Comment your results. \n", + "\n", + "### Exercise: Lasso Regression on the Franke function with resampling\n", + "\n", + "This exercise is essentially a repeat of the previous two ones, but now\n", + "with Lasso regression. Write either your own code (difficult and optional) or, in this case,\n", + "you can also use the functionalities of **Scikit-Learn** (recommended). \n", + "Give a\n", + "critical discussion of the three methods and a judgement of which\n", + "model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the **bootstrap** resampling technique and an analysis of the mean squared error using cross-validation. \n", + "\n", + "### Exercise: Analysis of real data\n", + "\n", + "With our codes functioning and having been tested properly on a\n", + "simpler function we are now ready to look at real data. We will\n", + "essentially repeat in this exercise what was done in exercises 1-5. However, we\n", + "need first to download the data and prepare properly the inputs to our\n", + "codes. We are going to download digital terrain data from the website\n", + ",\n", + "\n", + "Or, if you prefer, we have placed selected datafiles at \n", + "\n", + "In order to obtain data for a specific region, you need to register as\n", + "a user (free) at this website and then decide upon which area you want\n", + "to fetch the digital terrain data from. In order to be able to read\n", + "the data properly, you need to specify that the format should be **SRTM\n", + "Arc-Second Global** and download the data as a **GeoTIF** file. The\n", + "files are then stored in *tif* format which can be imported into a\n", + "Python program using" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "scipy.misc.imread" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is a simple part of a Python code which reads and plots the data\n", + "from such files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "from imageio import imread\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "from matplotlib import cm\n", + "\n", + "# Load the terrain\n", + "terrain1 = imread('SRTM_data_Norway_1.tif')\n", + "# Show the terrain\n", + "plt.figure()\n", + "plt.title('Terrain over Norway 1')\n", + "plt.imshow(terrain1, cmap='gray')\n", + "plt.xlabel('X')\n", + "plt.ylabel('Y')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you should have problems in downloading the digital terrain data,\n", + "we provide two examples under the data folder of project 1. One is\n", + "from a region close to Stavanger in Norway and the other Møsvatn\n", + "Austfjell, again in Norway.\n", + "Feel free to produce your own terrain data.\n", + "\n", + "\n", + "Alternatively, if you would like to use another data set, feel free to do so. This could be data close to your reseach area or simply a data set you found interesting. See for example [kaggle.com](https://www.kaggle.com/datasets) for examples.\n", + "\n", + "\n", + "Our final part deals with the parameterization of your digital terrain\n", + "data (or your own data). We will apply all three methods for linear regression, the same type (or higher order) of polynomial\n", + "approximation and cross-validation as resampling technique to evaluate which\n", + "model fits the data best.\n", + "\n", + "At the end, you should present a critical evaluation of your results\n", + "and discuss the applicability of these regression methods to the type\n", + "of data presented here (either the terrain data we propose or other data sets)." + ] } ], "metadata": {}, diff --git a/doc/LectureNotes/_build/html/_sources/schedule.md b/doc/LectureNotes/_build/html/_sources/schedule.md index 9a54ff154..03fa6f0c1 100644 --- a/doc/LectureNotes/_build/html/_sources/schedule.md +++ b/doc/LectureNotes/_build/html/_sources/schedule.md @@ -52,8 +52,13 @@ For the reading assignments we use the following abbreviations: - Lab Wednesday: - Lecture Thursday: Resampling methods, cross-validation and Bootstrap - Lecture Friday: More on Resampling methods and summary of linear regression -- Reading recommendations: See lecture notes for week 37 at https://compphysics.github.io/MachineLearning/doc/web/course.html. - - Chapter +- Reading recommendations: +- Recommended Reading: + - Lectures on Resampling methods for week 37 at https://compphysics.github.io/MachineLearning/doc/web/course.html. + - Bishop 1.3 (cross-validation) and 3.2 (bias-variance tradeoff) + - Hastie et al Chapter 7, here we recommend 7.1-7.5 and 7.10 (cross-validation) and 7.11 (bootstrap). This chapter is better than Bishop's on these topics. Goodfellow et al discuss some of these topics in sections 5.2-5.5. + + ### Week 38 September 20-24 - Lab Wednesday: - Lecture Thursday: Classification problems and Logistic Regression, from binary cases to several categories diff --git a/doc/LectureNotes/_build/html/chapter3.html b/doc/LectureNotes/_build/html/chapter3.html index 2db258533..7352494cb 100644 --- a/doc/LectureNotes/_build/html/chapter3.html +++ b/doc/LectureNotes/_build/html/chapter3.html @@ -321,6 +321,43 @@ 5.5. Cross-validation +
  • + + 5.6. Exercises and Projects + + +
  • @@ -592,10 +629,10 @@ number \(i\) is left out. Usin
    -
    Runtime: 0.1375 sec
    +
    Runtime: 0.137546 sec
     Jackknife Statistics :
     original           bias      std. error
    - 100.029        100.019        0.150581
    + 99.9031        99.8931        0.149233
     
    @@ -841,14 +878,14 @@ Error: 0.32149601703519126 Bias^2: 0.3123314713548606 Var: 0.009164545680330616 0.32149601703519126 >= 0.3123314713548606 + 0.009164545680330616 = 0.3214960170351912 -
    -
    -
    Polynomial degree: 1
    +Polynomial degree: 1
     Error: 0.08426840630693411
     Bias^2: 0.07968918676726028
     Var: 0.004579219539673833
     0.08426840630693411 >= 0.07968918676726028 + 0.004579219539673833 = 0.08426840630693411
    -Polynomial degree: 2
    +
    +
    +
    Polynomial degree: 2
     Error: 0.10398646080125035
     Bias^2: 0.10077114273548986
     Var: 0.0032153180657605086
    @@ -868,21 +905,20 @@ Error: 0.05227921801205707
     Bias^2: 0.048187277304303125
     Var: 0.004091940707753964
     0.05227921801205707 >= 0.048187277304303125 + 0.004091940707753964 = 0.05227921801205709
    -
    -
    -
    Polynomial degree: 6
    +Polynomial degree: 6
     Error: 0.03781367141738898
     Bias^2: 0.03365768507152761
     Var: 0.004155986345861379
     0.03781367141738898 >= 0.03365768507152761 + 0.004155986345861379 = 0.03781367141738899
    -Polynomial degree: 7
    +Polynomial degree:
    +
    +
    +
     7
     Error: 0.027609773491022498
     Bias^2: 0.02299949826036597
     Var: 0.004610275230656537
     0.027609773491022498 >= 0.02299949826036597 + 0.004610275230656537 = 0.027609773491022505
    -
    -
    -
    Polynomial degree: 8
    +Polynomial degree: 8
     Error: 0.017355848195591973
     Bias^2: 0.010331721306655588
     Var: 0.007024126888936384
    @@ -892,7 +928,10 @@ Error: 0.026605727637189085
     Bias^2: 0.010018312644140933
     Var: 0.016587414993048166
     0.026605727637189085 >= 0.010018312644140933 + 0.016587414993048166 = 0.0266057276371891
    -Polynomial degree: 10
    +Polynomial degree:
    +
    +
    +
     10
     Error: 0.021592704588043153
     Bias^2: 0.010516485576652981
     Var: 0.011076219011390184
    @@ -902,23 +941,19 @@ Error: 0.07160048164228314
     Bias^2: 0.01443680008897583
     Var: 0.0571636815533073
     0.07160048164228314 >= 0.01443680008897583 + 0.0571636815533073 = 0.07160048164228312
    -
    -
    -
    Polynomial degree: 12
    +Polynomial degree: 12
     Error: 0.1154777721897675
     Bias^2: 0.01628578269590588
     Var: 0.09919198949386163
     0.1154777721897675 >= 0.01628578269590588 + 0.09919198949386163 = 0.11547777218976751
    -
    -
    -
    Polynomial degree: 13
    +Polynomial degree: 13
     Error: 0.22842468702166951
     Bias^2: 0.01975416527163567
     Var: 0.20867052175003387
     0.22842468702166951 >= 0.01975416527163567 + 0.20867052175003387 = 0.22842468702166954
     
    -_images/chapter3_38_6.png +_images/chapter3_38_4.png

    The bias-variance tradeoff summarizes the fundamental tension in @@ -1139,11 +1174,11 @@ Mean squared error on test data: 123711.53703498 Degree of polynomial: 3 Mean squared error on training data: 9011.85263220 Mean squared error on test data: 10913.84780262 -Degree of polynomial: 4 -Mean squared error on training data: 303.47610036 -

    Mean squared error on test data: 426.30787294
    +
    Degree of polynomial:   4
    +Mean squared error on training data: 303.47610036
    +Mean squared error on test data: 426.30787294
     Degree of polynomial:   5
     Mean squared error on training data: 3.80354994
     Mean squared error on test data: 5.98822371
    @@ -1175,64 +1210,62 @@ Mean squared error on test data: 0.17446471
     Degree of polynomial:  13
     Mean squared error on training data: 0.00759119
     Mean squared error on test data: 1.08131003
    -
    -
    -
    Degree of polynomial:  14
    +Degree of polynomial:  14
     Mean squared error on training data: 0.00472199
     Mean squared error on test data: 0.81333793
    -Degree of polynomial:  15
    +
    +
    +
    Degree of polynomial:  15
     Mean squared error on training data: 0.00410478
     Mean squared error on test data: 92.09145189
     Degree of polynomial:  16
     Mean squared error on training data: 0.00315593
     Mean squared error on test data: 234.39716546
    -
    -
    -
    Degree of polynomial:  17
    +Degree of polynomial:  17
     Mean squared error on training data: 0.00242998
     Mean squared error on test data: 1271.05295709
    -Degree of polynomial:  18
    +
    +
    +
    Degree of polynomial:  18
     Mean squared error on training data: 0.00228740
     Mean squared error on test data: 108.42208194
     Degree of polynomial:  19
     Mean squared error on training data: 0.00156372
     Mean squared error on test data: 1388.41078073
    -
    -
    -
    Degree of polynomial:  20
    +Degree of polynomial:  20
     Mean squared error on training data: 0.00137982
     Mean squared error on test data: 1761.43341615
    -Degree of polynomial:  21
    +
    +
    +
    Degree of polynomial:  21
     Mean squared error on training data: 0.00118170
     Mean squared error on test data: 15061.31603087
     Degree of polynomial:  22
     Mean squared error on training data: 0.00092354
     Mean squared error on test data: 890.63488525
    -
    -
    -
    Degree of polynomial:  23
    +Degree of polynomial:  23
     Mean squared error on training data: 0.00085887
     Mean squared error on test data: 5483.16796929
    -Degree of polynomial:  24
    +
    +
    +
    Degree of polynomial:  24
     Mean squared error on training data: 0.00084589
     Mean squared error on test data: 1695.57143061
     Degree of polynomial:  25
     Mean squared error on training data: 0.00078806
     Mean squared error on test data: 131343.30655001
    -
    -
    -
    Degree of polynomial:  26
    +Degree of polynomial:  26
     Mean squared error on training data: 0.00076916
     Mean squared error on test data: 17709.14370264
    -Degree of polynomial:  27
    +
    +
    +
    Degree of polynomial:  27
     Mean squared error on training data: 0.00068970
     Mean squared error on test data: 2975.38903780
     Degree of polynomial:  28
     Mean squared error on training data: 0.00062588
     Mean squared error on test data: 3848.64522721
    -
    -
    -
    Degree of polynomial:  29
    +Degree of polynomial:  29
     Mean squared error on training data: 0.00060728
     Mean squared error on test data: 2988.64001211
     
    @@ -1243,7 +1276,7 @@ Mean squared error on test data: 2988.64001211 plt.plot(polynomial, np.log10(testerror), label='Test Error')
    -_images/chapter3_41_11.png +_images/chapter3_41_10.png @@ -1525,6 +1558,294 @@ cross-validation (LOOCV).

    +
    +

    5.6. Exercises and Projects

    +

    The main aim of this project is to study in more detail various +regression methods, including the Ordinary Least Squares (OLS) method, +The total score is 100 points. Each subtask has its own final score.

    +

    We will first study how to fit polynomials to a specific +two-dimensional function called Franke’s +function. This +is a function which has been widely used when testing various +interpolation and fitting algorithms. Furthermore, after having +established the model and the method, we will employ resamling +techniques such as cross-validation and/or bootstrap in order to perform a +proper assessment of our models. We will also study in detail the +so-called Bias-Variance trade off.

    +

    The Franke function, which is a weighted sum of four exponentials reads as follows

    +
    +\[\begin{split} +\begin{align*} +f(x,y) &= \frac{3}{4}\exp{\left(-\frac{(9x-2)^2}{4} - \frac{(9y-2)^2}{4}\right)}+\frac{3}{4}\exp{\left(-\frac{(9x+1)^2}{49}- \frac{(9y+1)}{10}\right)} \\ +&+\frac{1}{2}\exp{\left(-\frac{(9x-7)^2}{4} - \frac{(9y-3)^2}{4}\right)} -\frac{1}{5}\exp{\left(-(9x-4)^2 - (9y-7)^2\right) }. +\end{align*} +\end{split}\]
    +

    The function will be defined for \(x,y\in [0,1]\). Our first step will +be to perform an OLS regression analysis of this function, trying out +a polynomial fit with an \(x\) and \(y\) dependence of the form \([x, y, +x^2, y^2, xy, \dots]\). We will also include bootstrap first as +a resampling technique. After that we will include the cross-validation technique. As in homeworks 1 and 2, we can use a uniform +distribution to set up the arrays of values for \(x\) and \(y\), or as in +the example below just a set of fixed +values for \(x\) and \(y\) with a given step +size. We will fit a +function (for example a polynomial) of \(x\) and \(y\). Thereafter we +will repeat much of the same procedure using the Ridge and Lasso +regression methods, introducing thus a dependence on the bias +(penalty) \(\lambda\).

    +

    Finally we are going to use (real) digital terrain data and try to +reproduce these data using the same methods. We will also try to go +beyond the second-order polynomials metioned above and explore +which polynomial fits the data best.

    +

    The Python code for the Franke function is included here (it performs also a three-dimensional plot of it)

    +
    +
    +
    from mpl_toolkits.mplot3d import Axes3D
    +import matplotlib.pyplot as plt
    +from matplotlib import cm
    +from matplotlib.ticker import LinearLocator, FormatStrFormatter
    +import numpy as np
    +from random import random, seed
    +
    +fig = plt.figure()
    +ax = fig.gca(projection='3d')
    +
    +# Make data.
    +x = np.arange(0, 1, 0.05)
    +y = np.arange(0, 1, 0.05)
    +x, y = np.meshgrid(x,y)
    +
    +
    +def FrankeFunction(x,y):
    +    term1 = 0.75*np.exp(-(0.25*(9*x-2)**2) - 0.25*((9*y-2)**2))
    +    term2 = 0.75*np.exp(-((9*x+1)**2)/49.0 - 0.1*(9*y+1))
    +    term3 = 0.5*np.exp(-(9*x-7)**2/4.0 - 0.25*((9*y-3)**2))
    +    term4 = -0.2*np.exp(-(9*x-4)**2 - (9*y-7)**2)
    +    return term1 + term2 + term3 + term4
    +
    +
    +z = FrankeFunction(x, y)
    +
    +# Plot the surface.
    +surf = ax.plot_surface(x, y, z, cmap=cm.coolwarm,
    +                       linewidth=0, antialiased=False)
    +
    +# Customize the z axis.
    +ax.set_zlim(-0.10, 1.40)
    +ax.zaxis.set_major_locator(LinearLocator(10))
    +ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
    +
    +# Add a color bar which maps values to colors.
    +fig.colorbar(surf, shrink=0.5, aspect=5)
    +
    +plt.show()
    +
    +
    +
    +
    +_images/chapter3_54_0.png +
    +
    +
    +

    5.6.1. Exercise: Ordinary Least Square (OLS) on the Franke function

    +

    We will generate our own dataset for a function +\(\mathrm{FrankeFunction}(x,y)\) with \(x,y \in [0,1]\). The function +\(f(x,y)\) is the Franke function. You should explore also the addition +of an added stochastic noise to this function using the normal +distribution \(N(0,1)\).

    +

    Write your own code (using either a matrix inversion or a singular +value decomposition from e.g., numpy ) or use your code from +homeworks 1 and 2 and perform a standard least square regression +analysis using polynomials in \(x\) and \(y\) up to fifth order. Find the +confidence intervals of the parameters (estimators) \(\beta\) by computing their +variances, evaluate the Mean Squared error (MSE)

    +
    +\[ +MSE(\hat{y},\hat{\tilde{y}}) = \frac{1}{n} +\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2, +\]
    +

    and the \(R^2\) score function. If \(\tilde{\hat{y}}_i\) is the predicted +value of the \(i-th\) sample and \(y_i\) is the corresponding true value, +then the score \(R^2\) is defined as

    +
    +\[ +R^2(\hat{y}, \tilde{\hat{y}}) = 1 - \frac{\sum_{i=0}^{n - 1} (y_i - \tilde{y}_i)^2}{\sum_{i=0}^{n - 1} (y_i - \bar{y})^2}, +\]
    +

    where we have defined the mean value of \(\hat{y}\) as

    +
    +\[ +\bar{y} = \frac{1}{n} \sum_{i=0}^{n - 1} y_i. +\]
    +

    Your code has to include a scaling of the data (for example by +subtracting the mean value), and +a split of the data in training and test data. For this exercise you can +either write your own code or use for example the function for +splitting training data provided by the library Scikit-Learn (make +sure you have installed it). This function is called +\(train\_test\_split\). You should present a critical discussion of why and how you have scaled or not scaled the data.

    +

    It is normal in essentially all Machine Learning studies to split the +data in a training set and a test set (eventually also an additional +validation set). There +is no explicit recipe for how much data should be included as training +data and say test data. An accepted rule of thumb is to use +approximately \(2/3\) to \(4/5\) of the data as training data.

    +

    You can easily reuse the solutions to your exercises from week 35 and week 36.

    +
    +
    +

    5.6.2. Exercise: Bias-variance trade-off and resampling techniques

    +

    Our aim here is to study the bias-variance trade-off by implementing the bootstrap resampling technique.

    +

    With a code which does OLS and includes resampling techniques, +we will now discuss the bias-variance trade-off in the context of +continuous predictions such as regression. However, many of the +intuitions and ideas discussed here also carry over to classification +tasks and basically all Machine Learning algorithms.

    +

    Before you perform an analysis of the bias-variance trade-off on your test data, make +first a figure similar to Fig. 2.11 of Hastie, Tibshirani, and +Friedman. Figure 2.11 of this reference displays only the test and training MSEs. The test MSE can be used to +indicate possible regions of low/high bias and variance. You will most likely not get an +equally smooth curve!

    +

    With this result we move on to the bias-variance trade-off analysis.

    +

    Consider a +dataset \(\mathcal{L}\) consisting of the data +\(\mathbf{X}_\mathcal{L}=\{(y_j, \boldsymbol{x}_j), j=0\ldots n-1\}\).

    +

    Let us assume that the true data is generated from a noisy model

    +
    +\[ +\boldsymbol{y}=f(\boldsymbol{x}) + \boldsymbol{\epsilon}. +\]
    +

    Here \(\epsilon\) is normally distributed with mean zero and standard +deviation \(\sigma^2\).

    +

    In our derivation of the ordinary least squares method we defined then +an approximation to the function \(f\) in terms of the parameters +\(\boldsymbol{\beta}\) and the design matrix \(\boldsymbol{X}\) which embody our model, +that is \(\boldsymbol{\tilde{y}}=\boldsymbol{X}\boldsymbol{\beta}\).

    +

    The parameters \(\boldsymbol{\beta}\) are in turn found by optimizing the means +squared error via the so-called cost function

    +
    +\[ +C(\boldsymbol{X},\boldsymbol{\beta}) =\frac{1}{n}\sum_{i=0}^{n-1}(y_i-\tilde{y}_i)^2=\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]. +\]
    +

    Here the expected value \(\mathbb{E}\) is the sample value.

    +

    Show that you can rewrite this as

    +
    +\[ +\mathbb{E}\left[(\boldsymbol{y}-\boldsymbol{\tilde{y}})^2\right]=\frac{1}{n}\sum_i(f_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\frac{1}{n}\sum_i(\tilde{y}_i-\mathbb{E}\left[\boldsymbol{\tilde{y}}\right])^2+\sigma^2. +\]
    +

    Explain what the terms mean, which one is the bias and which one is +the variance and discuss their interpretations.

    +

    Perform then a bias-variance analysis of the Franke function by +studying the MSE value as function of the complexity of your model.

    +

    Discuss the bias and variance trade-off as function +of your model complexity (the degree of the polynomial) and the number +of data points, and possibly also your training and test data using the bootstrap resampling method.

    +

    Note also that when you calculate the bias, in all applications you don’t know the function values \(f_i\). You would hence replace them with the actual data points \(y_i\).

    +
    +
    +

    5.6.3. Exercise: Cross-validation as resampling techniques, adding more complexity

    +

    The aim here is to write your own code for another widely popular +resampling technique, the so-called cross-validation method. Again, +before you start with cross-validation approach, you should scale your +data.

    +

    Implement the \(k\)-fold cross-validation algorithm (write your own +code) and evaluate again the MSE function resulting +from the test folds. You can compare your own code with that from +Scikit-Learn if needed.

    +

    Compare the MSE you get from your cross-validation code with the one +you got from your bootstrap code. Comment your results. Try \(5-10\) +folds. You can also compare your own cross-validation code with the +one provided by Scikit-Learn.

    +
    +
    +

    5.6.4. Exercise: Ridge Regression on the Franke function with resampling

    +

    Write your own code for the Ridge method, either using matrix +inversion or the singular value decomposition as done in the previous +exercise. Perform the same bootstrap analysis as in the +Exercise 2 (for the same polynomials) and the cross-validation in exercise 3 but now for different values of \(\lambda\). Compare and +analyze your results with those obtained in exercises 1-3. Study the +dependence on \(\lambda\).

    +

    Study also the bias-variance trade-off as function of various values of +the parameter \(\lambda\). For the bias-variance trade-off, use the bootstrap resampling method. Comment your results.

    +
    +
    +

    5.6.5. Exercise: Lasso Regression on the Franke function with resampling

    +

    This exercise is essentially a repeat of the previous two ones, but now +with Lasso regression. Write either your own code (difficult and optional) or, in this case, +you can also use the functionalities of Scikit-Learn (recommended). +Give a +critical discussion of the three methods and a judgement of which +model fits the data best. Perform here as well an analysis of the bias-variance trade-off using the bootstrap resampling technique and an analysis of the mean squared error using cross-validation.

    +
    +
    +

    5.6.6. Exercise: Analysis of real data

    +

    With our codes functioning and having been tested properly on a +simpler function we are now ready to look at real data. We will +essentially repeat in this exercise what was done in exercises 1-5. However, we +need first to download the data and prepare properly the inputs to our +codes. We are going to download digital terrain data from the website +https://earthexplorer.usgs.gov/,

    +

    Or, if you prefer, we have placed selected datafiles at https://github.com/CompPhysics/MachineLearning/tree/master/doc/Projects/2021/Project1/DataFiles

    +

    In order to obtain data for a specific region, you need to register as +a user (free) at this website and then decide upon which area you want +to fetch the digital terrain data from. In order to be able to read +the data properly, you need to specify that the format should be SRTM +Arc-Second Global and download the data as a GeoTIF file. The +files are then stored in tif format which can be imported into a +Python program using

    +
    +
    +
    scipy.misc.imread
    +
    +
    +
    +
    +
    ---------------------------------------------------------------------------
    +NameError                                 Traceback (most recent call last)
    +<ipython-input-10-d985fb40c43d> in <module>
    +----> 1 scipy.misc.imread
    +
    +NameError: name 'scipy' is not defined
    +
    +
    +
    +
    +

    Here is a simple part of a Python code which reads and plots the data +from such files

    +
    +
    +
    import numpy as np
    +from imageio import imread
    +import matplotlib.pyplot as plt
    +from mpl_toolkits.mplot3d import Axes3D
    +from matplotlib import cm
    +
    +# Load the terrain
    +terrain1 = imread('SRTM_data_Norway_1.tif')
    +# Show the terrain
    +plt.figure()
    +plt.title('Terrain over Norway 1')
    +plt.imshow(terrain1, cmap='gray')
    +plt.xlabel('X')
    +plt.ylabel('Y')
    +plt.show()
    +
    +
    +
    +
    +

    If you should have problems in downloading the digital terrain data, +we provide two examples under the data folder of project 1. One is +from a region close to Stavanger in Norway and the other Møsvatn +Austfjell, again in Norway. +Feel free to produce your own terrain data.

    +

    Alternatively, if you would like to use another data set, feel free to do so. This could be data close to your reseach area or simply a data set you found interesting. See for example kaggle.com for examples.

    +

    Our final part deals with the parameterization of your digital terrain +data (or your own data). We will apply all three methods for linear regression, the same type (or higher order) of polynomial +approximation and cross-validation as resampling technique to evaluate which +model fits the data best.

    +

    At the end, you should present a critical evaluation of your results +and discuss the applicability of these regression methods to the type +of data presented here (either the terrain data we propose or other data sets).

    +
    +