From 057865dcbf82a61364681b677983d6ce7d5c89c1 Mon Sep 17 00:00:00 2001 From: KarlHenrik Date: Wed, 10 Sep 2025 12:20:55 +0200 Subject: [PATCH] fix w37 math formatting --- .../_build/.doctrees/environment.pickle | Bin 384745 -> 384770 bytes .../_build/.doctrees/exercisesweek37.doctree | Bin 37033 -> 37163 bytes .../html/_sources/exercisesweek37.ipynb | 64 +++++----- .../_build/html/exercisesweek37.html | 109 +++++++++--------- .../book_template/markdown-notebooks.ipynb | 6 +- .../jupyter_execute/exercisesweek37.ipynb | 64 +++++----- doc/LectureNotes/exercisesweek37.ipynb | 64 +++++----- 7 files changed, 163 insertions(+), 144 deletions(-) diff --git a/doc/LectureNotes/_build/.doctrees/environment.pickle b/doc/LectureNotes/_build/.doctrees/environment.pickle index aa50903a2ae03ff254553fe89973674a6ec2251f..c07eecc8a3ef82cd0b6af18d1c2f428dccd3b7e1 100644 GIT binary patch literal 384770 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

J7XLxxaFkWnJN1z?54_DRhVM(3!<0G>4 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 VU%BgIqvO~?ausfkqd%5JJfIe~!P$Au-<_luf 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 Nz&V5izlo z?O?{P>~sZBpxlj#`SjuUN?PC(mEFf|hQ%+7oTbARo~BezIzk#I9Z}!3MbiJJ!4o>s+TAX^&~AXP)&x>Wu;hl!1Pc$l&l z-rlT+&ZJeKjZ22VrWx5SDK`B*&fn)?9n44@5AGf6cl2~mI?^2J1CDPv=Xp?&h%dA1 z`6d?R&^Z6hVa}w1-5JHvbF}H*5IJz(_H16wILzjtDDw)F!JH)y!n0zS3Z`-lITyZ* zN<3JZ3{Ph{WCJaj@X+i-HrIgtV9Dh1$+5|i$@OSSCWELry(DGbW-LYMnaZ}pi#cZG z^f|>|nL8(jnNhb1`44hpk$#br?A^=TxQFfX?!B|Iil?B)x5a-`1=JpRme8H{Px$PZET{-?MG-ZZ}n5f$rTx_Fu^4TUMsA{=|Nekl2d(QYI`zls*GoEBS>_U`m=4^HybxGLD*C;RsM_5 zQ&#HP0>TWS+o~b~>B9x5Lw$eAp~glHoZg!K$im{*crI6fC1QhU*rIJJ#$dKS8osmb zE?=z>3CG0pI0fAh;qpGe3#&n@DkBJ436L`d7^_R!b?H#`hm3Fb>sGJ+k^gL&LUh6x z)Cre&mP`NKVP>G(@&uIa{51~bsyZ#w#M)N>x4teKepMTb{A{fOp0k?qtHhch_;?t! zYS;*zw3?8A$6Aimqd{M{RKv|WXTV;xJhI zB{gos{f5R0xnIML#(4boEwmcK%hWPolcq?zrgp}S;yg3LrRL|5PW8sZPFpgoKzKIj za^&F^kB%7OvaMR2z){%HqT(sRKs~#&C7YE=BQ33r_24-ZcLh@iNx5wg7$5N%7=fzx z7B52!jrT%(-7<+|f9*2K;(i|no2c2*DYnu4e;q2HnS_pWj7uIf68y!P!6XRoEP$6? zIndb|iQI5!3sQ>hLFWwnlP@;7>r$coo~vFQN3A_weyu0FPBXSB4s{Pl(2tmX?mHOX zX!PfC5u~1RzUVQ(2+h3~aVjnr^A_ZNkg%bEA7dm;4I7qfi0aGtnzHq^G2PbzvIA|x z1iJXb0pTKDFs~ozz{knda5mH)j4W{l|G%9c@OS!lm2~c4B8N8y3Yh;>uk`%RvD3Fh z?O@hQ)6lXPv!QWr3t4#@1jI89l^&RwhCN@Q597*KyUW$o(cNYroUDFgTxlP)w>Gu* z40QKT){LvgW|zI+)@JLs(c{9o!teyx@HXJYP#5D}Av7WQLP#9WCx-q~_~62Jni@8t z_=DlnM;OcDEnbEe172)b57#V_tO3hN1|C~@#sFtVRLljJM&4zwV19J4Cn^bEI}%Qf zN%fgOVrN%HeehKQy`#RuNfV&>gziBe!6sfj+H^l*k_P??0bCPE9^6=>$OC@-rMjg|^g=dP{JbG+mE-CT&3o=$Nz4q)!ve-i3i&<7! zSmNZ^9};<<$Vnoh^NlgY5qQG6YZhjrVqb%uJ;E9x9_$t~P*3s>C2 z4YzQ?EzG-xX}2(oNVMh_=G?-RTbOYR6Yc>=Ea{{O9cB@pVTf!6EO^Q$i$0$M(99`g^;O^6x2rh*p45J8LU^@9ZvqJ8~Q~v|MVDh#A delta 3423 zcmb7GdrXv97U$lX0b~Xl!i2}D4CPfF5N3EdDzD+uDuUv$Xca`95$xBGhdjg;*`9($$WT;cN5x@4G_{70{<|dq_-)AFOPwj zQliL@7@9To>~m;UK8$-eQ%nev^r8o$`jM<)IBnBrOsX)?DT1ogCBBC#U)4YA9$hJDgh1BP4^mx`W^Lc8 z$)8{g1})mt`NV*FIM^a`f-?CpBWi?V;)Myzrk2u zcH&K3d&FBPpYMF|!AZA#o-4{)z-eGjv61Xh z{2eb&ScLwzSg)X2mD(9H?5?*Gc$37&!HXp;70|Vk81k%QF7vU)&R=|t(d8Y@%$;G# zWq#&J+UUTjT-r$SE^9O0Ts&2VV-m(6x0AQ<*lGyd5JoSld7ou&xJ9O6s>BG)>ZiDE zh4UM=%cj*z%V3~>mZxE6V=g;BJ`e%%r53_0KMLKYG31}jI&Wy&=5>5ic66ikIt|e9 z_%ZcZC{mV70wBMv2xWg+E=3%(c(p8zOiHBuD?&06gTZbIBNmt`jnM4)kzkXp+gdDj zZ^Ad zP4<(%yNmq5bM)ukS~{oUt?|=t3!S&-s54SSAe=N>;8%5ctB>>rit{H}47JQ`UX={p(cx=icJ z)I*_r8=9Kx@Mdt4M#*W0H zm2BO@GlupsP~8ikdHGi3pcEZ4?+?9vB@o*QOP9cW1 zA7d!waeBf@ncI3sa1SSUj(u`+-?1-FZjdqL\n", - "" + "\n" ] }, { @@ -20,9 +20,10 @@ }, "source": [ "# Exercises week 37\n", + "\n", "**Implementing gradient descent for Ridge and ordinary Least Squares Regression**\n", "\n", - "Date: **September 8-12, 2025**" + "Date: **September 8-12, 2025**\n" ] }, { @@ -35,13 +36,14 @@ "## Learning goals\n", "\n", "After having completed these exercises you will have:\n", + "\n", "1. Your own code for the implementation of the simplest gradient descent approach applied to ordinary least squares (OLS) and Ridge regression\n", "\n", "2. Be able to compare the analytical expressions for OLS and Ridge regression with the gradient descent approach\n", "\n", "3. Explore the role of the learning rate in the gradient descent approach and the hyperparameter $\\lambda$ in Ridge regression\n", "\n", - "4. Scale the data properly" + "4. Scale the data properly\n" ] }, { @@ -53,7 +55,7 @@ "source": [ "## Simple one-dimensional second-order polynomial\n", "\n", - "We start with a very simple function" + "We start with a very simple function\n" ] }, { @@ -65,7 +67,7 @@ "source": [ "$$\n", "f(x)= 2-x+5x^2,\n", - "$$" + "$$\n" ] }, { @@ -75,10 +77,10 @@ "editable": true }, "source": [ - "defined for $x\\in [-2,2]$. You can add noise if you wish. \n", + "defined for $x\\in [-2,2]$. You can add noise if you wish.\n", "\n", "We are going to fit this function with a polynomial ansatz. The easiest thing is to set up a second-order polynomial and see if you can fit the above function.\n", - "Feel free to play around with higher-order polynomials." + "Feel free to play around with higher-order polynomials.\n" ] }, { @@ -94,7 +96,7 @@ "standardize the features. This ensures all features are on a\n", "comparable scale, which is especially important when using\n", "regularization. Here we will perform standardization, scaling each\n", - "feature to have mean 0 and standard deviation 1." + "feature to have mean 0 and standard deviation 1.\n" ] }, { @@ -114,7 +116,7 @@ "term, the data is shifted such that the intercept is effectively 0\n", ". (In practice, one could include an intercept in the model and not\n", "penalize it, but here we simplify by centering.)\n", - "Choose $n=100$ data points and set up $\\boldsymbol{x}, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$." + "Choose $n=100$ data points and set up $\\boldsymbol{x}$, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$.\n" ] }, { @@ -145,13 +147,13 @@ "editable": true }, "source": [ - "Fill in the necessary details. Do we need to center the $y$-values? \n", + "Fill in the necessary details. Do we need to center the $y$-values?\n", "\n", "After this preprocessing, each column of $\\boldsymbol{X}_{\\mathrm{norm}}$ has mean zero and standard deviation $1$\n", "and $\\boldsymbol{y}_{\\mathrm{centered}}$ has mean 0. This makes the optimization landscape\n", "nicer and ensures the regularization penalty $\\lambda \\sum_j\n", "\\theta_j^2$ in Ridge regression treats each coefficient fairly (since features are on the\n", - "same scale)." + "same scale).\n" ] }, { @@ -163,7 +165,7 @@ "source": [ "## Exercise 2, calculate the gradients\n", "\n", - "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function." + "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function.\n" ] }, { @@ -173,7 +175,7 @@ "editable": true }, "source": [ - "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$" + "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$\n" ] }, { @@ -210,8 +212,8 @@ "This computes the Ridge and OLS regression coefficients directly. The identity\n", "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", - "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$." + "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", + "fitted parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -223,7 +225,7 @@ "source": [ "### 3a)\n", "\n", - "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$." + "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -235,7 +237,7 @@ "source": [ "### 3b)\n", "\n", - "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36." + "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36.\n" ] }, { @@ -252,9 +254,9 @@ "necessary if $n$ and $p$ are so large that the closed-form might be\n", "too slow or memory-intensive. We derive the gradients from the cost\n", "functions defined above. Use the gradients of the Ridge and OLS cost functions with respect to\n", - "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", + "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", "\n", - "Below is a template code for gradient descent implementation of ridge:" + "Below is a template code for gradient descent implementation of ridge:\n" ] }, { @@ -301,7 +303,7 @@ "### 4a)\n", "\n", "Write first a gradient descent code for OLS only using the above template.\n", - "Discuss the results as function of the learning rate parameters and the number of iterations" + "Discuss the results as function of the learning rate parameters and the number of iterations\n" ] }, { @@ -314,7 +316,7 @@ "### 4b)\n", "\n", "Write then a similar code for Ridge regression using the above template.\n", - "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?" + "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?\n" ] }, { @@ -339,12 +341,12 @@ "Then we sample feature values for $\\boldsymbol{X}$ randomly (e.g. from a normal distribution). We use a normal distribution so features are roughly centered around 0.\n", "Then we compute the target values $y$ using the linear combination $\\boldsymbol{X}\\hat{\\boldsymbol{\\theta}}$ and add some noise (to simulate measurement error or unexplained variance).\n", "\n", - "Below is the code to generate the dataset:" + "Below is the code to generate the dataset:\n" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "8be1cebe", "metadata": { "collapsed": false, @@ -368,7 +370,7 @@ "X = np.random.randn(n_samples, n_features) # standard normal distribution\n", "\n", "# Generate target values y with a linear combination of X and theta_true, plus noise\n", - "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", + "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", "y = X.dot @ theta_true + noise" ] }, @@ -383,7 +385,7 @@ "significantly influence $\\boldsymbol{y}$. The rest of the features have zero true\n", "coefficient. For example, feature 0 has\n", "a true weight of 5.0, feature 1 has -3.0, and feature 6 has 2.0, so\n", - "the expected relationship is:" + "the expected relationship is:\n" ] }, { @@ -395,7 +397,7 @@ "source": [ "$$\n", "y \\approx 5 \\times x_0 \\;-\\; 3 \\times x_1 \\;+\\; 2 \\times x_6 \\;+\\; \\text{noise}.\n", - "$$" + "$$\n" ] }, { @@ -405,7 +407,7 @@ "editable": true }, "source": [ - "You can remove the noise if you wish to. \n", + "You can remove the noise if you wish to.\n", "\n", "Try to fit the above data set using OLS and Ridge regression with the analytical expressions and your own gradient descent codes.\n", "\n", @@ -413,11 +415,15 @@ "close to the true values [5.0, -3.0, 0.0, …, 2.0, …] that we used to\n", "generate the data. Keep in mind that due to regularization and noise,\n", "the learned values will not exactly equal the true ones, but they\n", - "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?" + "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?\n" ] } ], - "metadata": {}, + "metadata": { + "language_info": { + "name": "python" + } + }, "nbformat": 4, "nbformat_minor": 5 } diff --git a/doc/LectureNotes/_build/html/exercisesweek37.html b/doc/LectureNotes/_build/html/exercisesweek37.html index 57df62d86..0c77e76f8 100644 --- a/doc/LectureNotes/_build/html/exercisesweek37.html +++ b/doc/LectureNotes/_build/html/exercisesweek37.html @@ -416,7 +416,8 @@ document.write(` -

+ +

Exercises week 37#

Implementing gradient descent for Ridge and ordinary Least Squares Regression

Date: September 8-12, 2025

@@ -457,18 +458,18 @@ Subtract the mean and divide by the standard deviation for each feature.

term, the data is shifted such that the intercept is effectively 0 . (In practice, one could include an intercept in the model and not penalize it, but here we simplify by centering.) -Choose \(n=100\) data points and set up \(\boldsymbol{x}, \)\boldsymbol{y}\( and the design matrix \)\boldsymbol{X}$.

+Choose \(n=100\) data points and set up \(\boldsymbol{x}\), \(\boldsymbol{y}\) and the design matrix \(\boldsymbol{X}\).

-
# Standardize features (zero mean, unit variance for each feature)
-X_mean = X.mean(axis=0)
-X_std = X.std(axis=0)
-X_std[X_std == 0] = 1  # safeguard to avoid division by zero for constant features
-X_norm = (X - X_mean) / X_std
+
# Standardize features (zero mean, unit variance for each feature)
+X_mean = X.mean(axis=0)
+X_std = X.std(axis=0)
+X_std[X_std == 0] = 1  # safeguard to avoid division by zero for constant features
+X_norm = (X - X_mean) / X_std
 
-# Center the target to zero mean (optional, to simplify intercept handling)
-y_mean = ?
-y_centered = ?
+# Center the target to zero mean (optional, to simplify intercept handling)
+y_mean = ?
+y_centered = ?
 
@@ -489,18 +490,18 @@ same scale).

Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters \(\boldsymbol{\theta}\)#

-
# Set regularization parameter, either a single value or a vector of values
-# Note that lambda is a python keyword. The lambda keyword is used to create small, single-expression functions without a formal name. These are often called "anonymous functions" or "lambda functions."
-lam = ?
+
# Set regularization parameter, either a single value or a vector of values
+# Note that lambda is a python keyword. The lambda keyword is used to create small, single-expression functions without a formal name. These are often called "anonymous functions" or "lambda functions."
+lam = ?
 
 
-# Analytical form for OLS and Ridge solution: theta_Ridge = (X^T X + lambda * I)^{-1} X^T y and theta_OLS = (X^T X)^{-1} X^T y
-I = np.eye(n_features)
-theta_closed_formRidge = ?
-theta_closed_formOLS = ?
+# Analytical form for OLS and Ridge solution: theta_Ridge = (X^T X + lambda * I)^{-1} X^T y and theta_OLS = (X^T X)^{-1} X^T y
+I = np.eye(n_features)
+theta_closed_formRidge = ?
+theta_closed_formOLS = ?
 
-print("Closed-form Ridge coefficients:", theta_closed_form)
-print("Closed-form OLS coefficients:", theta_closed_form)
+print("Closed-form Ridge coefficients:", theta_closed_form)
+print("Closed-form OLS coefficients:", theta_closed_form)
 
@@ -508,7 +509,7 @@ print("Closed-form OLS coefficients:", theta_closed_form)

This computes the Ridge and OLS regression coefficients directly. The identity matrix \(I\) has the same size as \(X^T X\). It adds \(\lambda\) to the diagonal of \(X^T X\) for Ridge regression. We then invert this matrix and multiply by \(X^T y\). The result -for \(\boldsymbol{\theta}\) is a NumPy array of shape (n\(\_\)features,) containing the +for \(\boldsymbol{\theta}\) is a NumPy array of shape (n\(\_\)features,) containing the fitted parameters \(\boldsymbol{\theta}\).

3a)#

@@ -526,32 +527,32 @@ descent. This is useful to visualize the iterative convergence and is necessary if \(n\) and \(p\) are so large that the closed-form might be too slow or memory-intensive. We derive the gradients from the cost functions defined above. Use the gradients of the Ridge and OLS cost functions with respect to -the parameters \(\boldsymbol{\theta}\) and set up (using the template below) your own gradient descent code for OLS and Ridge regression.

+the parameters \(\boldsymbol{\theta}\) and set up (using the template below) your own gradient descent code for OLS and Ridge regression.

Below is a template code for gradient descent implementation of ridge:

-
# Gradient descent parameters, learning rate eta first
-eta = 0.1
-# Then number of iterations
-num_iters = 1000
+
# Gradient descent parameters, learning rate eta first
+eta = 0.1
+# Then number of iterations
+num_iters = 1000
 
-# Initialize weights for gradient descent
-theta = np.zeros(n_features)
+# Initialize weights for gradient descent
+theta = np.zeros(n_features)
 
-# Gradient descent loop
-for t in range(num_iters):
-    # Compute gradients for OSL and Ridge
-    grad_OLS = ?
-    grad_Ridge = ?
-    # Update parameters theta
-    theta_gdOLS = ?
-    theta_gdRidge = ? 
+# Gradient descent loop
+for t in range(num_iters):
+    # Compute gradients for OSL and Ridge
+    grad_OLS = ?
+    grad_Ridge = ?
+    # Update parameters theta
+    theta_gdOLS = ?
+    theta_gdRidge = ? 
 
-# After the loop, theta contains the fitted coefficients
-theta_gdOLS = ?
-theta_gdRidge = ?
-print("Gradient Descent OLS coefficients:", theta_gdOLS)
-print("Gradient Descent Ridge coefficients:", theta_gdRidge)
+# After the loop, theta contains the fitted coefficients
+theta_gdOLS = ?
+theta_gdRidge = ?
+print("Gradient Descent OLS coefficients:", theta_gdOLS)
+print("Gradient Descent Ridge coefficients:", theta_gdRidge)
 
@@ -582,24 +583,24 @@ Then we compute the target values \(y

Below is the code to generate the dataset:

-
import numpy as np
+
import numpy as np
 
-# Set random seed for reproducibility
-np.random.seed(0)
+# Set random seed for reproducibility
+np.random.seed(0)
 
-# Define dataset size
-n_samples = 100
-n_features = 10
+# Define dataset size
+n_samples = 100
+n_features = 10
 
-# Define true coefficients (sparse linear relationship)
-theta_true = np.array([5.0, -3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0])
+# Define true coefficients (sparse linear relationship)
+theta_true = np.array([5.0, -3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0])
 
-# Generate feature matrix X (n_samples x n_features) with random values
-X = np.random.randn(n_samples, n_features)  # standard normal distribution
+# Generate feature matrix X (n_samples x n_features) with random values
+X = np.random.randn(n_samples, n_features)  # standard normal distribution
 
-# Generate target values y with a linear combination of X and theta_true, plus noise
-noise = 0.5 * np.random.randn(n_samples)    # Gaussian noise
-y = X.dot @ theta_true + noise
+# Generate target values y with a linear combination of X and theta_true, plus noise
+noise = 0.5 * np.random.randn(n_samples)  # Gaussian noise
+y = X.dot @ theta_true + noise
 
@@ -619,7 +620,7 @@ y \approx 5 \times x_0 \;-\; 3 \times x_1 \;+\; 2 \times x_6 \;+\; \text{noise}. close to the true values [5.0, -3.0, 0.0, …, 2.0, …] that we used to generate the data. Keep in mind that due to regularization and noise, the learned values will not exactly equal the true ones, but they -should be in the same ballpark. Which method (OLS or Ridge) gives the best results?

+should be in the same ballpark. Which method (OLS or Ridge) gives the best results?

diff --git a/doc/LectureNotes/_build/jupyter_execute/.venv/lib/python3.13/site-packages/jupyter_book/book_template/markdown-notebooks.ipynb b/doc/LectureNotes/_build/jupyter_execute/.venv/lib/python3.13/site-packages/jupyter_book/book_template/markdown-notebooks.ipynb index ab3e9c63d..b96978e73 100644 --- a/doc/LectureNotes/_build/jupyter_execute/.venv/lib/python3.13/site-packages/jupyter_book/book_template/markdown-notebooks.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/.venv/lib/python3.13/site-packages/jupyter_book/book_template/markdown-notebooks.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "b2bc44f6", + "id": "2c4ae3e0", "metadata": {}, "source": [ "# Notebooks with MyST Markdown\n", @@ -19,7 +19,7 @@ { "cell_type": "code", "execution_count": null, - "id": "4ddd8e91", + "id": "bd842239", "metadata": {}, "outputs": [], "source": [ @@ -28,7 +28,7 @@ }, { "cell_type": "markdown", - "id": "8e6cbd45", + "id": "0b607518", "metadata": {}, "source": [ "When your book is built, the contents of any `{code-cell}` blocks will be\n", diff --git a/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb b/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb index 81ba6bd1e..b7689e250 100644 --- a/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb +++ b/doc/LectureNotes/_build/jupyter_execute/exercisesweek37.ipynb @@ -9,7 +9,7 @@ "source": [ "\n", - "" + "\n" ] }, { @@ -20,9 +20,10 @@ }, "source": [ "# Exercises week 37\n", + "\n", "**Implementing gradient descent for Ridge and ordinary Least Squares Regression**\n", "\n", - "Date: **September 8-12, 2025**" + "Date: **September 8-12, 2025**\n" ] }, { @@ -35,13 +36,14 @@ "## Learning goals\n", "\n", "After having completed these exercises you will have:\n", + "\n", "1. Your own code for the implementation of the simplest gradient descent approach applied to ordinary least squares (OLS) and Ridge regression\n", "\n", "2. Be able to compare the analytical expressions for OLS and Ridge regression with the gradient descent approach\n", "\n", "3. Explore the role of the learning rate in the gradient descent approach and the hyperparameter $\\lambda$ in Ridge regression\n", "\n", - "4. Scale the data properly" + "4. Scale the data properly\n" ] }, { @@ -53,7 +55,7 @@ "source": [ "## Simple one-dimensional second-order polynomial\n", "\n", - "We start with a very simple function" + "We start with a very simple function\n" ] }, { @@ -65,7 +67,7 @@ "source": [ "$$\n", "f(x)= 2-x+5x^2,\n", - "$$" + "$$\n" ] }, { @@ -75,10 +77,10 @@ "editable": true }, "source": [ - "defined for $x\\in [-2,2]$. You can add noise if you wish. \n", + "defined for $x\\in [-2,2]$. You can add noise if you wish.\n", "\n", "We are going to fit this function with a polynomial ansatz. The easiest thing is to set up a second-order polynomial and see if you can fit the above function.\n", - "Feel free to play around with higher-order polynomials." + "Feel free to play around with higher-order polynomials.\n" ] }, { @@ -94,7 +96,7 @@ "standardize the features. This ensures all features are on a\n", "comparable scale, which is especially important when using\n", "regularization. Here we will perform standardization, scaling each\n", - "feature to have mean 0 and standard deviation 1." + "feature to have mean 0 and standard deviation 1.\n" ] }, { @@ -114,7 +116,7 @@ "term, the data is shifted such that the intercept is effectively 0\n", ". (In practice, one could include an intercept in the model and not\n", "penalize it, but here we simplify by centering.)\n", - "Choose $n=100$ data points and set up $\\boldsymbol{x}, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$." + "Choose $n=100$ data points and set up $\\boldsymbol{x}$, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$.\n" ] }, { @@ -145,13 +147,13 @@ "editable": true }, "source": [ - "Fill in the necessary details. Do we need to center the $y$-values? \n", + "Fill in the necessary details. Do we need to center the $y$-values?\n", "\n", "After this preprocessing, each column of $\\boldsymbol{X}_{\\mathrm{norm}}$ has mean zero and standard deviation $1$\n", "and $\\boldsymbol{y}_{\\mathrm{centered}}$ has mean 0. This makes the optimization landscape\n", "nicer and ensures the regularization penalty $\\lambda \\sum_j\n", "\\theta_j^2$ in Ridge regression treats each coefficient fairly (since features are on the\n", - "same scale)." + "same scale).\n" ] }, { @@ -163,7 +165,7 @@ "source": [ "## Exercise 2, calculate the gradients\n", "\n", - "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function." + "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function.\n" ] }, { @@ -173,7 +175,7 @@ "editable": true }, "source": [ - "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$" + "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$\n" ] }, { @@ -210,8 +212,8 @@ "This computes the Ridge and OLS regression coefficients directly. The identity\n", "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", - "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$." + "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", + "fitted parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -223,7 +225,7 @@ "source": [ "### 3a)\n", "\n", - "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$." + "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -235,7 +237,7 @@ "source": [ "### 3b)\n", "\n", - "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36." + "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36.\n" ] }, { @@ -252,9 +254,9 @@ "necessary if $n$ and $p$ are so large that the closed-form might be\n", "too slow or memory-intensive. We derive the gradients from the cost\n", "functions defined above. Use the gradients of the Ridge and OLS cost functions with respect to\n", - "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", + "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", "\n", - "Below is a template code for gradient descent implementation of ridge:" + "Below is a template code for gradient descent implementation of ridge:\n" ] }, { @@ -301,7 +303,7 @@ "### 4a)\n", "\n", "Write first a gradient descent code for OLS only using the above template.\n", - "Discuss the results as function of the learning rate parameters and the number of iterations" + "Discuss the results as function of the learning rate parameters and the number of iterations\n" ] }, { @@ -314,7 +316,7 @@ "### 4b)\n", "\n", "Write then a similar code for Ridge regression using the above template.\n", - "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?" + "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?\n" ] }, { @@ -339,12 +341,12 @@ "Then we sample feature values for $\\boldsymbol{X}$ randomly (e.g. from a normal distribution). We use a normal distribution so features are roughly centered around 0.\n", "Then we compute the target values $y$ using the linear combination $\\boldsymbol{X}\\hat{\\boldsymbol{\\theta}}$ and add some noise (to simulate measurement error or unexplained variance).\n", "\n", - "Below is the code to generate the dataset:" + "Below is the code to generate the dataset:\n" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "8be1cebe", "metadata": { "collapsed": false, @@ -368,7 +370,7 @@ "X = np.random.randn(n_samples, n_features) # standard normal distribution\n", "\n", "# Generate target values y with a linear combination of X and theta_true, plus noise\n", - "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", + "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", "y = X.dot @ theta_true + noise" ] }, @@ -383,7 +385,7 @@ "significantly influence $\\boldsymbol{y}$. The rest of the features have zero true\n", "coefficient. For example, feature 0 has\n", "a true weight of 5.0, feature 1 has -3.0, and feature 6 has 2.0, so\n", - "the expected relationship is:" + "the expected relationship is:\n" ] }, { @@ -395,7 +397,7 @@ "source": [ "$$\n", "y \\approx 5 \\times x_0 \\;-\\; 3 \\times x_1 \\;+\\; 2 \\times x_6 \\;+\\; \\text{noise}.\n", - "$$" + "$$\n" ] }, { @@ -405,7 +407,7 @@ "editable": true }, "source": [ - "You can remove the noise if you wish to. \n", + "You can remove the noise if you wish to.\n", "\n", "Try to fit the above data set using OLS and Ridge regression with the analytical expressions and your own gradient descent codes.\n", "\n", @@ -413,11 +415,15 @@ "close to the true values [5.0, -3.0, 0.0, …, 2.0, …] that we used to\n", "generate the data. Keep in mind that due to regularization and noise,\n", "the learned values will not exactly equal the true ones, but they\n", - "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?" + "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?\n" ] } ], - "metadata": {}, + "metadata": { + "language_info": { + "name": "python" + } + }, "nbformat": 4, "nbformat_minor": 5 } \ No newline at end of file diff --git a/doc/LectureNotes/exercisesweek37.ipynb b/doc/LectureNotes/exercisesweek37.ipynb index b3c1f79cc..bb6ba7a35 100644 --- a/doc/LectureNotes/exercisesweek37.ipynb +++ b/doc/LectureNotes/exercisesweek37.ipynb @@ -9,7 +9,7 @@ "source": [ "\n", - "" + "\n" ] }, { @@ -20,9 +20,10 @@ }, "source": [ "# Exercises week 37\n", + "\n", "**Implementing gradient descent for Ridge and ordinary Least Squares Regression**\n", "\n", - "Date: **September 8-12, 2025**" + "Date: **September 8-12, 2025**\n" ] }, { @@ -35,13 +36,14 @@ "## Learning goals\n", "\n", "After having completed these exercises you will have:\n", + "\n", "1. Your own code for the implementation of the simplest gradient descent approach applied to ordinary least squares (OLS) and Ridge regression\n", "\n", "2. Be able to compare the analytical expressions for OLS and Ridge regression with the gradient descent approach\n", "\n", "3. Explore the role of the learning rate in the gradient descent approach and the hyperparameter $\\lambda$ in Ridge regression\n", "\n", - "4. Scale the data properly" + "4. Scale the data properly\n" ] }, { @@ -53,7 +55,7 @@ "source": [ "## Simple one-dimensional second-order polynomial\n", "\n", - "We start with a very simple function" + "We start with a very simple function\n" ] }, { @@ -65,7 +67,7 @@ "source": [ "$$\n", "f(x)= 2-x+5x^2,\n", - "$$" + "$$\n" ] }, { @@ -75,10 +77,10 @@ "editable": true }, "source": [ - "defined for $x\\in [-2,2]$. You can add noise if you wish. \n", + "defined for $x\\in [-2,2]$. You can add noise if you wish.\n", "\n", "We are going to fit this function with a polynomial ansatz. The easiest thing is to set up a second-order polynomial and see if you can fit the above function.\n", - "Feel free to play around with higher-order polynomials." + "Feel free to play around with higher-order polynomials.\n" ] }, { @@ -94,7 +96,7 @@ "standardize the features. This ensures all features are on a\n", "comparable scale, which is especially important when using\n", "regularization. Here we will perform standardization, scaling each\n", - "feature to have mean 0 and standard deviation 1." + "feature to have mean 0 and standard deviation 1.\n" ] }, { @@ -114,7 +116,7 @@ "term, the data is shifted such that the intercept is effectively 0\n", ". (In practice, one could include an intercept in the model and not\n", "penalize it, but here we simplify by centering.)\n", - "Choose $n=100$ data points and set up $\\boldsymbol{x}, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$." + "Choose $n=100$ data points and set up $\\boldsymbol{x}$, $\\boldsymbol{y}$ and the design matrix $\\boldsymbol{X}$.\n" ] }, { @@ -145,13 +147,13 @@ "editable": true }, "source": [ - "Fill in the necessary details. Do we need to center the $y$-values? \n", + "Fill in the necessary details. Do we need to center the $y$-values?\n", "\n", "After this preprocessing, each column of $\\boldsymbol{X}_{\\mathrm{norm}}$ has mean zero and standard deviation $1$\n", "and $\\boldsymbol{y}_{\\mathrm{centered}}$ has mean 0. This makes the optimization landscape\n", "nicer and ensures the regularization penalty $\\lambda \\sum_j\n", "\\theta_j^2$ in Ridge regression treats each coefficient fairly (since features are on the\n", - "same scale)." + "same scale).\n" ] }, { @@ -163,7 +165,7 @@ "source": [ "## Exercise 2, calculate the gradients\n", "\n", - "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function." + "Find the gradients for OLS and Ridge regression using the mean-squared error as cost/loss function.\n" ] }, { @@ -173,7 +175,7 @@ "editable": true }, "source": [ - "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$" + "## Exercise 3, using the analytical formulae for OLS and Ridge regression to find the optimal paramters $\\boldsymbol{\\theta}$\n" ] }, { @@ -210,8 +212,8 @@ "This computes the Ridge and OLS regression coefficients directly. The identity\n", "matrix $I$ has the same size as $X^T X$. It adds $\\lambda$ to the diagonal of $X^T X$ for Ridge regression. We\n", "then invert this matrix and multiply by $X^T y$. The result\n", - "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", - "fitted parameters $\\boldsymbol{\\theta}$." + "for $\\boldsymbol{\\theta}$ is a NumPy array of shape (n$\\_$features,) containing the\n", + "fitted parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -223,7 +225,7 @@ "source": [ "### 3a)\n", "\n", - "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$." + "Finalize, in the above code, the OLS and Ridge regression determination of the optimal parameters $\\boldsymbol{\\theta}$.\n" ] }, { @@ -235,7 +237,7 @@ "source": [ "### 3b)\n", "\n", - "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36." + "Explore the results as function of different values of the hyperparameter $\\lambda$. See for example exercise 4 from week 36.\n" ] }, { @@ -252,9 +254,9 @@ "necessary if $n$ and $p$ are so large that the closed-form might be\n", "too slow or memory-intensive. We derive the gradients from the cost\n", "functions defined above. Use the gradients of the Ridge and OLS cost functions with respect to\n", - "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", + "the parameters $\\boldsymbol{\\theta}$ and set up (using the template below) your own gradient descent code for OLS and Ridge regression.\n", "\n", - "Below is a template code for gradient descent implementation of ridge:" + "Below is a template code for gradient descent implementation of ridge:\n" ] }, { @@ -301,7 +303,7 @@ "### 4a)\n", "\n", "Write first a gradient descent code for OLS only using the above template.\n", - "Discuss the results as function of the learning rate parameters and the number of iterations" + "Discuss the results as function of the learning rate parameters and the number of iterations\n" ] }, { @@ -314,7 +316,7 @@ "### 4b)\n", "\n", "Write then a similar code for Ridge regression using the above template.\n", - "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?" + "Try to add a stopping parameter as function of the number iterations and the difference between the new and old $\\theta$ values. How would you define a stopping criterion?\n" ] }, { @@ -339,12 +341,12 @@ "Then we sample feature values for $\\boldsymbol{X}$ randomly (e.g. from a normal distribution). We use a normal distribution so features are roughly centered around 0.\n", "Then we compute the target values $y$ using the linear combination $\\boldsymbol{X}\\hat{\\boldsymbol{\\theta}}$ and add some noise (to simulate measurement error or unexplained variance).\n", "\n", - "Below is the code to generate the dataset:" + "Below is the code to generate the dataset:\n" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "8be1cebe", "metadata": { "collapsed": false, @@ -368,7 +370,7 @@ "X = np.random.randn(n_samples, n_features) # standard normal distribution\n", "\n", "# Generate target values y with a linear combination of X and theta_true, plus noise\n", - "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", + "noise = 0.5 * np.random.randn(n_samples) # Gaussian noise\n", "y = X.dot @ theta_true + noise" ] }, @@ -383,7 +385,7 @@ "significantly influence $\\boldsymbol{y}$. The rest of the features have zero true\n", "coefficient. For example, feature 0 has\n", "a true weight of 5.0, feature 1 has -3.0, and feature 6 has 2.0, so\n", - "the expected relationship is:" + "the expected relationship is:\n" ] }, { @@ -395,7 +397,7 @@ "source": [ "$$\n", "y \\approx 5 \\times x_0 \\;-\\; 3 \\times x_1 \\;+\\; 2 \\times x_6 \\;+\\; \\text{noise}.\n", - "$$" + "$$\n" ] }, { @@ -405,7 +407,7 @@ "editable": true }, "source": [ - "You can remove the noise if you wish to. \n", + "You can remove the noise if you wish to.\n", "\n", "Try to fit the above data set using OLS and Ridge regression with the analytical expressions and your own gradient descent codes.\n", "\n", @@ -413,11 +415,15 @@ "close to the true values [5.0, -3.0, 0.0, …, 2.0, …] that we used to\n", "generate the data. Keep in mind that due to regularization and noise,\n", "the learned values will not exactly equal the true ones, but they\n", - "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?" + "should be in the same ballpark. Which method (OLS or Ridge) gives the best results?\n" ] } ], - "metadata": {}, + "metadata": { + "language_info": { + "name": "python" + } + }, "nbformat": 4, "nbformat_minor": 5 }