From 15481ebb04208e9f74345a8afe01c46e8db0f0ae Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Thu, 9 Nov 2023 21:29:17 -0600 Subject: [PATCH] hwk 3 --- .envrc | 1 + .gitignore | 3 + assignments/hwk02/HW2.typ | 79 ++++++++++++++++++++++---- assignments/hwk03/EMG.m | 64 +++++++++++++++++++++ assignments/hwk03/E_step.m | 21 +++++++ assignments/hwk03/M_step.m | 34 +++++++++++ assignments/hwk03/Problem2.m | 87 +++++++++++++++++++++++++++++ assignments/hwk03/goldy.jpg | Bin 0 -> 31196 bytes assignments/hwk03/hw3_sol.typ | 41 ++++++++++++++ assignments/hwk03/playground.ipynb | 52 +++++++++++++++++ assignments/hwk03/stadium.jpg | Bin 0 -> 58305 bytes 11 files changed, 372 insertions(+), 10 deletions(-) create mode 100644 .envrc create mode 100644 assignments/hwk03/EMG.m create mode 100644 assignments/hwk03/E_step.m create mode 100644 assignments/hwk03/M_step.m create mode 100644 assignments/hwk03/Problem2.m create mode 100644 assignments/hwk03/goldy.jpg create mode 100644 assignments/hwk03/hw3_sol.typ create mode 100644 assignments/hwk03/playground.ipynb create mode 100644 assignments/hwk03/stadium.jpg diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..4e46a90 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +layout python3 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 036c568..1e2eda9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ *.pdf *.zip .DS_Store + +.venv +.direnv \ No newline at end of file diff --git a/assignments/hwk02/HW2.typ b/assignments/hwk02/HW2.typ index 4409440..41e712d 100644 --- a/assignments/hwk02/HW2.typ +++ b/assignments/hwk02/HW2.typ @@ -24,19 +24,19 @@ ``` >> AllProblem1 Dataset 1: - Model 1: (train err = 5% ), (test error = 20% ) - Model 2: (train err = 6% ), (test error = 17% ) - Model 3: (train err = 7% ), (test error = 18% ) + Model 1: (train err = 5%), (test error = 20%) + Model 2: (train err = 6%), (test error = 17%) + Model 3: (train err = 7%), (test error = 18%) Dataset 2: - Model 1: (train err = 7% ), (test error = 23% ) - Model 2: (train err = 14% ), (test error = 56% ) - Model 3: (train err = 13% ), (test error = 53% ) + Model 1: (train err = 7%), (test error = 23%) + Model 2: (train err = 14%), (test error = 56%) + Model 3: (train err = 13%), (test error = 53%) Dataset 3: - Model 1: (train err = 1% ), (test error = 12% ) - Model 2: (train err = 19% ), (test error = 45% ) - Model 3: (train err = 2% ), (test error = 5% ) + Model 1: (train err = 1%), (test error = 12%) + Model 2: (train err = 19%), (test error = 45%) + Model 3: (train err = 2%), (test error = 5%) ``` b. #c[*(5 points)* State which model works best on each test data set and explain why you believe this is the case. Discuss your observations.] @@ -47,9 +47,68 @@ - For dataset 2, model 1 worked the best. - For dataset 3, model 3 worked the best. + The separate covariance matrices work better when each class has its own individual dimensions, while the shared matrix works better when they're closer. The third model will work better when there's not a lot of data and the dependency may be inaccurate. + c. #c[*(15 points)* Write the log likelihood function and derive $S_1$ and $S_2$ by maximum likelihood estimation of model 2. Note that since $S_1$ and $S_2$ are shared as $S$, you need to add the log likelihood function of the two classes to maximizing for deriving $S$.] - The maximum likelihood of a single + Starting with priors, $P(C_1) = frac(N_1, N)$ and $P(C_2) = frac(N_2, N)$. + + Supposing individual sample mean is $m_1 = frac(sum_t r_1^t x_1^t, N_1)$ and $m_2 = frac(sum_t r_2^t x_2^t, N_2)$, the combined mean $m$ can be found by + + $ bold(m) = m_1 p(C_1) + m_2 p(C_2) $ + + Then, for the final $S$, we have: + + #let wtf = $m_1 p(C_1) + m_2 p(C_2)$ + + $ s_i &= frac(1, N) sum_t (bold(x)^t - bold(m)) (bold(x)^t - bold(m))^T \ + &= frac(1, N) sum_t (bold(x)^t (bold(x)^t)^T - bold(x)^t bold(m)^T - bold(m) (bold(x)^t)^T + bold(m) bold(m)^T) \ + $ + + In our $S_i$, we have: + + $ s_j &= frac(1, N_i) sum_t^N_i (bold(x)^t - bold(m)_i) (bold(x)^t - bold(m)_i)^T \ + $ + + When we add that together as a weighted sum we get: + + $ s_j &= frac(1, N) (sum_t^N_1 (bold(x)^t - bold(m)_1) (bold(x)^t - bold(m)_1)^T + sum_t^N_2 (bold(x)^t - bold(m)_2) (bold(x)^t - bold(m)_2)^T) \ + &= frac(1, N) (sum_t^N bold(x)^t (bold(x)^t)^T - (sum_t^N_1 bold(x)^t bold(m)_1^T + sum_t^N_2 bold(x)^t bold(m)_2^T) - (sum_t^N_1 bold(m)_1 bold(x)^t + sum_t^N_2 bold(m)_2 bold(x)^t) + (sum_t^N_1 bold(m)_1 bold(m)_1^T + sum_t^N_2 bold(m)_2 bold(m)_2^T)) \ + &= frac(1, N) (sum_t^N bold(x)^t (bold(x)^t)^T - bold(x)^t (sum_t^N_1 bold(m)_1^T + sum_t^N_2 bold(m)_2^T) - (sum_t^N_1 bold(m)_1 + sum_t^N_2 bold(m)_2) bold(x)^t + (sum_t^N_1 bold(m)_1 bold(m)_1^T + sum_t^N_2 bold(m)_2 bold(m)_2^T)) \ + &= frac(1, N) sum_t^N (bold(x)^t (bold(x)^t)^T - bold(x)^t bold(m)^T - bold(m) (bold(x)^t)^T + bold(m) bold(m)^T) \ + $ + + which matches the above equation + + + // Then: + + // - for the sample covariance $S_1$, $s_(i i) = frac(sum_t (x_i^t - m_i)^2, P(C_1)) = frac(sum_t (x_i^t)^2 - 2x_i^t m_i + m_i^2, P(C_1))$ (with mean drawing from $m_1$) + // - for the sample covariance $S_2$, $s_(i i) = frac(sum_t (x_i^t - m_i)^2, P(C_2)) = frac(sum_t (x_i^t)^2 - 2x_i^t m_i + m_i^2, P(C_2))$ (with a different mean drawing from $m_2$) + + // the overall covariance is $s_(i j) = frac(sum_t (x_i^t - m_1)(x_j^t - m_2), N)$ + + // deriving from $S_1$ and $S_2$ you get: + + // $ s_(i j) &= frac(1,N) ((S_1)_(i j) P(C_1) + (S_2)_(i j) P(C_2)) \ + // &= frac(1,N) (sum_t (x_i^t)^2 - 2x_i^t (m_1)_i + (m_1)_i^2 + (x_i^t)^2 - 2x_i^t (m_2)_i + (m_2)_i^2) \ + // &= frac(1,N) (sum_t 2(x_i^t)^2 - 2x_i^t ((m_1)_i + (m_2)_i) + (m_1)_i^2 + (m_2)_i^2) \ + // $ + + // Combining covariance matrixes: + + // $ bold(S) &= frac(sum_t (bold(x)^t - bold(m)_1) (bold(x)^t - bold(m)_2)^T, N) \ + // &= frac(sum_t bold(x)^t^T bold(x)^t - bold(x)^t bold(m)_2 - bold(m)_1 bold(x)^t + bold(m)_1 bold(m)_2, N) \ + // $ + + // // The maximum likelihood of a single class can be found with: + + // // $ theta^* &= "argmax"_theta cal(L) (theta|bold(X)) \ + // // frac(diff, diff theta) cal(L) (theta|bold(X)) &= 0 \ + // // frac(diff, diff theta) log(cal(l) (theta|bold(X))) &= 0 \ + // // frac(diff, diff theta) sum_t log(p(x^t|theta)) &= 0 \ + // // frac(diff, diff theta) sum_t log(frac(1,(2 pi)^(d/2) |bold(Sigma)_i|^(1/2)) exp(-frac(1,2)(bold(x)-bold(mu)_i)^T bold(Sigma)_i^(-1) (bold(x)-bold(mu)_i))) &= 0 \ + // // $ 2. #c[*(50 points)* In this problem, you will work on dimension reduction and classification on a Faces dataset from the UCI repository. We provided the processed files `face_train_data_960.txt` and `face_test_data_960.txt` with 500 and 124 images, respectively. Each image is of size 30 #sym.times 32 with the pixel values in a row in the files and the last column identifies the labels: 1 (sunglasses), and 0 (open) of the image. You can visualize the $i$th image with the following matlab command line:] diff --git a/assignments/hwk03/EMG.m b/assignments/hwk03/EMG.m new file mode 100644 index 0000000..2b96290 --- /dev/null +++ b/assignments/hwk03/EMG.m @@ -0,0 +1,64 @@ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Name: EMG.m +% Input: x - a nxd matrix (nx3 if using RGB) +% k - the number of clusters +% epochs - number of iterations (epochs) to run the algorithm for +% flag - flag to use improved EM to avoid singular covariance matrix +% Output: h - a nxk matrix, the expectation of the hidden variable z given the data set and distribution params +% m - a kxd matrix, the maximum likelihood estimate of the mean +% Q - vector of values of the complete data log-likelihood function +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [h, m, Q] = EMG(x, k, epochs, flag) + + % variables + num_clusters = k; % number of clusters + eps = 1e-15; % small value that can be used to avoid obtaining 0's + lambda = 1e-3; % value for improved version of EM + [num_data, dim] = size(x); + h = zeros(num_data, num_clusters); % expectation of data point being part of a cluster + S = zeros(dim, dim, num_clusters); % covariance matrix for each cluster + b = zeros(num_data,num_clusters); % cluster assignments, only used for intialization of pi and S + Q = zeros(epochs*2,1); % vector that can hold complete data log-likelihood after each E and M step + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Initialise cluster means using k-means + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Determine the b values for all data points + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Initialize pi's (mixing coefficients) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Initialize the covariance matrix estimate + % further modifications will need to be made when doing 2(d) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % Main EM loop + for n=1:epochs + %%%%%%%%%%%%%%%% + % E-step + %%%%%%%%%%%%%%%% + fprintf('E-step, epoch #%d\n', n); + [Q, h] = E_step(x, Q, h, pi, m, S, k); + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Store the value of the complete log-likelihood function + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%% + % M-step + %%%%%%%%%%%%%%%% + fprintf('M-step, epoch #%d\n', n); + [Q, S, m] = M_step(x, Q, h, S, k); + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Store the value of the complete log-likelihood function + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +end \ No newline at end of file diff --git a/assignments/hwk03/E_step.m b/assignments/hwk03/E_step.m new file mode 100644 index 0000000..460270f --- /dev/null +++ b/assignments/hwk03/E_step.m @@ -0,0 +1,21 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Name: E_step.m +% Input: x - a nxd matrix (nx3 if using RGB) +% Q - vector of values from the complete data log-likelihood function +% h - a nxk matrix, the expectation of the hidden variable z given the data set and distribution params +% pi - vector of mixing coefficients +% m - cluster means +% S - cluster covariance matrices +% k - the number of clusters +% Output: Q - vector of values of the complete data log-likelihood function +% h - a nxk matrix, the expectation of the hidden variable z given the data set and distribution params +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [Q, h] = E_step(x, Q, h, pi, m, S, k) + + [num_data, ~] = size(x); + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: perform E-step of EM algorithm + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +end \ No newline at end of file diff --git a/assignments/hwk03/M_step.m b/assignments/hwk03/M_step.m new file mode 100644 index 0000000..4505b1a --- /dev/null +++ b/assignments/hwk03/M_step.m @@ -0,0 +1,34 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Name: E_step.m +% Input: x - a nxd matrix (nx3 if using RGB) +% Q - vector of values from the complete data log-likelihood function +% h - a nxk matrix, the expectation of the hidden variable z given the data set and distribution params +% S - cluster covariance matrices +% k - the number of clusters +% Output: Q - vector of values of the complete data log-likelihood function +% S - cluster covariance matrices +% m - cluster means +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +function [Q, S, m] = M_step(x, Q, h, S, k) + + % get size of data + [num_data, dim] = size(x); + eps = 1e-15; + lambda = 1e-3; % value for improved version of EM + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: update mixing coefficients + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: update cluster means + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: Calculate the covariance matrix estimate + % further modifications will need to be made when doing 2(d) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +end \ No newline at end of file diff --git a/assignments/hwk03/Problem2.m b/assignments/hwk03/Problem2.m new file mode 100644 index 0000000..447304f --- /dev/null +++ b/assignments/hwk03/Problem2.m @@ -0,0 +1,87 @@ +function [] = Problem2() + + % file names + stadium_fn = "stadium.jpg"; + goldy_fn = "goldy.jpg"; + + % load image and preprocess it + goldy_img = double(imread(goldy_fn))/255; + stadium_img = double(imread(stadium_fn))/255; + + % convert RGB images + goldy_x = reshape(permute(goldy_img, [2 1 3]), [], 3); % convert img from NxMx3 to N*Mx3 + stadium_x = reshape(permute(stadium_img, [2 1 3]), [], 3); + + % get dimensionality of stadium image + [height, width, depth] = size(stadium_img); + + % set epochs (number of iterations to run algorithm for) + epochs = 10; + + %%%%%%%%%% + % 2(a,b) % + %%%%%%%%%% + index = 1; + figure(); + for k = 4:4:12 + fprintf("k=%d\n", k); + + % call EM on data + [h, m, Q] = EMG(stadium_x, k, epochs, false); + + % get compressed version of image + [~,class_index] = max(h,[],2); + compress = m(class_index,:); + + % 2(a), plot compressed image + subplot(3,2,index) + imagesc(permute(reshape(compress, [width, height, depth]),[2 1 3])) + index = index + 1; + + % 2(b), plot complete data likelihood curves + subplot(3,2,index) + x = 1:size(Q); + c = repmat([1 0 0; 0 1 0], length(x)/2, 1); + scatter(x,Q,20,c); + index = index + 1; + end + shg + + %%%%%%%% + % 2(c) % + %%%%%%%% + % get dimensionality of goldy image, and set k=7 + [height, width, depth] = size(goldy_img); + k = 7; + + % run EM on goldy image + [h, m, Q] = EMG(goldy_x, k, epochs, false); + + % plot goldy image using clusters from EM + [~,class_index] = max(h,[],2); + compress = m(class_index,:); + figure(); + subplot(2,1,1) + imagesc(permute(reshape(compress, [width, height, depth]),[2 1 3])) + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % TODO: plot goldy image after using clusters from k-means + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % begin code here + + % end code here + shg + + %%%%%%%% + % 2(e) % + %%%%%%%% + % run improved version of EM on goldy image + [h, m, Q] = EMG(goldy_x, k, epochs, true); + + % plot goldy image using clusters from improved EM + [~,class_index] = max(h,[],2); + compress = m(class_index,:); + figure(); + imagesc(permute(reshape(compress, [width, height, depth]),[2 1 3])) + shg +end \ No newline at end of file diff --git a/assignments/hwk03/goldy.jpg b/assignments/hwk03/goldy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f045da7a6839b429066031c6f41725d8e959f1b GIT binary patch literal 31196 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 literal 0 HcmV?d00001 diff --git a/assignments/hwk03/hw3_sol.typ b/assignments/hwk03/hw3_sol.typ new file mode 100644 index 0000000..80dc96a --- /dev/null +++ b/assignments/hwk03/hw3_sol.typ @@ -0,0 +1,41 @@ +#let dfrac(a, b) = $display(frac(#a, #b))$ + += Problem 1a + +Given: + +#let ww = $bold(w)$ +#let xx = $bold(x)$ +#let vv = $bold(v)$ +#let XX = $bold(X)$ + +- $E(ww_1,ww_2,vv|XX) = - sum_t r^t log y^t + (1 - r^t) log(1 - y^t)$ +- $y^t = "sigmoid"(v_2 z_2 + v_1 z_1 + v_0)$ +- $z^t_1 = "ReLU"(w_(1,2)x^t_2 + w_(1,1)x^t_1 + w_(1,0))$ +- $z^t_2 = tanh(w_(2,2)x^t_2 + w_(2,1)x^t_1 + w_(2,0))$ + +Using the convention $x_(j=1..D)$, $y_(i=1..K)$, and $z_(h=1..H)$. + +Solved as: + +- $ + frac(diff E, diff v_h) &= - sum_t frac(diff E, diff y^t) frac(diff y^t, diff v_h) \ + &= - sum_t (r^t dot frac(1, y^t) - (1-r^t) dot frac(1, 1-y^t)) (y^t z^t_h (1-y^t)) \ + &= - sum_t (frac(r^t, y^t) - frac(1-r^t, 1-y^t)) (y^t z^t_h (1-y^t)) \ + &= - sum_t (frac(r^t (1-y^t)-y^t (1-r^t), cancel(y^t) (1-y^t))) (cancel(y^t) z^t_h (1-y^t)) \ + &= - sum_t (frac(r^t - y^t, cancel(1-y^t))) (z^t_h cancel((1-y^t))) \ + &= - sum_t (r^t - y^t) z^t_h \ + $ + +- $ + frac(diff E, diff w_(1,j)) &= - sum_t frac(diff E, diff y^t) frac(diff y^t, diff z^t_h) frac(diff z^t_h, diff w_(1,j)) \ + &= - sum_t (frac(r^t, y^t) - frac(1-r^t, 1-y^t)) (y^t (1-y^t) v_h) (x_h cases(0 "if" ww_1 dot xx <0, 1 "otherwise")) \ + &= - sum_t (r^t - y^t) v_h x_h cases(0 "if" ww_1 dot xx <0, 1 "otherwise") \ + $ + +- $ + frac(diff E, diff w_(2,j)) &= - sum_t frac(diff E, diff y^t) frac(diff y^t, diff z^t_h) frac(diff z^t_h, diff w_(2,j)) \ + &= - sum_t (r^t - y^t) v_h x_h (1-tanh^2(ww_2 dot xx)) \ + $ + += Problem 1b diff --git a/assignments/hwk03/playground.ipynb b/assignments/hwk03/playground.ipynb new file mode 100644 index 0000000..7a7d71b --- /dev/null +++ b/assignments/hwk03/playground.ipynb @@ -0,0 +1,52 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-1/(1 - y)\n" + ] + } + ], + "source": [ + "from sympy import *\n", + "from sympy.abc import *\n", + "\n", + "print(diff(log(1-y), y))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/assignments/hwk03/stadium.jpg b/assignments/hwk03/stadium.jpg new file mode 100644 index 0000000000000000000000000000000000000000..72b6592a29b837281a8afbe0e32f0006003c7c80 GIT binary patch literal 58305 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

bC-`9jg&JuKSwovz{R%>_Tc8X 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 QbAW%Uo19>PIr#Pe+4%-ul>h($ literal 0 HcmV?d00001