From 45a2df1b116704a747db04c524f2e4918f382c34 Mon Sep 17 00:00:00 2001 From: "Visual Computing (VICO) Group" Date: Mon, 11 Nov 2024 11:34:32 +0000 Subject: [PATCH] Update --- report/figures/VGG38_BN_RC_acc.pdf | Bin 0 -> 16282 bytes report/figures/VGG38_BN_RC_loss.pdf | Bin 0 -> 16237 bytes report/figures/accuracy_plot.pdf | Bin 0 -> 15585 bytes report/figures/grad_flow_vgg08.pdf | Bin 0 -> 17819 bytes report/figures/gradplot_38.pdf | Bin 0 -> 17774 bytes report/figures/gradplot_38_watermarked.pdf | Bin 0 -> 30063 bytes report/figures/gradplot_38bnrc.pdf | Bin 0 -> 62910 bytes report/figures/loss_plot.pdf | Bin 0 -> 16092 bytes report/mlp-cw1-questions.tex | 231 --------------- report/mlp-cw1-template.tex | 238 ---------------- report/mlp-cw2-questions.tex | 148 ++++++++++ report/mlp-cw2-template.tex | 314 +++++++++++++++++++++ report/mlp2022.sty | 4 +- report/mlp2022_includes.tex | 9 +- report/refs.bib | 130 ++++++++- 15 files changed, 594 insertions(+), 480 deletions(-) create mode 100644 report/figures/VGG38_BN_RC_acc.pdf create mode 100644 report/figures/VGG38_BN_RC_loss.pdf create mode 100644 report/figures/accuracy_plot.pdf create mode 100644 report/figures/grad_flow_vgg08.pdf create mode 100644 report/figures/gradplot_38.pdf create mode 100644 report/figures/gradplot_38_watermarked.pdf create mode 100644 report/figures/gradplot_38bnrc.pdf create mode 100644 report/figures/loss_plot.pdf delete mode 100644 report/mlp-cw1-questions.tex delete mode 100644 report/mlp-cw1-template.tex create mode 100644 report/mlp-cw2-questions.tex create mode 100644 report/mlp-cw2-template.tex diff --git a/report/figures/VGG38_BN_RC_acc.pdf b/report/figures/VGG38_BN_RC_acc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eebc9fc9b9b7e2d1916862f3d6a6a0bf5056be01 GIT binary patch literal 16282 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 literal 0 HcmV?d00001 diff --git a/report/figures/VGG38_BN_RC_loss.pdf b/report/figures/VGG38_BN_RC_loss.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ba359ee0a3883c1dcbcc8837052d4b8ddf45de84 GIT binary patch literal 16237 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 JD`+V~{txzr4g&xH literal 0 HcmV?d00001 diff --git a/report/figures/accuracy_plot.pdf b/report/figures/accuracy_plot.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b228c0670bb844f5c54fcd4f4d3350814ee607ff GIT binary patch literal 15585 zcmb_@2Rzo__c#f8JoX;xLAE>_kCi>LM@GnA*^il(Y(i!-B1CA(%xK!Olaf(HMwC@T z@_WBkpHFY*Wc@P-TR!o&N=tobI$wTb9rEI_^u4XT?O>Rn zos`|(ykY2{WgRPTZ#%pj3=95*z;*EMHu`qnFjHV2MP*=oJAZE&T+J1jQ~p=3@GDn? znZw}vj#jo#ZVoWfpWThMt3&E4Azm;&gp0H9*$2K>VP z96$x{?&ARi$yCsX!4>U%oowv%RDh|0Uj}$9H!lw>yq%lP`QMcPY!6HX*R->BvXXcA z2gU^_!-|Q*P~zg?96DeZ@82BLv-5KI!P@{V1bOri3qh{_!9Nh4-}ov!xd1GJ!IfPA z9xB?|xZ46O*RXSQ@OFeD!IjYiJ9>HJ?W|lO{yEjznwQyYX`()_3T<9xAFyV4e3^Dq zI4S!mC+_gY{M*x1a(HW8P11$D+PE>>WbOoR)5@@N^yjZhr?cSqyK@kQO?@W!Cv#;MtL>Lo^_wO4PxQkib)98tSlD10Gs3%@n;b^Gg-fcoRc zZI+rxDLsr-x!;$kd*4bw`aU@^{Po-WqLrSP6BcOe#zpC~KkyqtTN5s?79Z_A$@?f$ zOwMuT2KlVWx1Ymo@`3cu{EFoI*5byk z#mbp;6MV59#K?T;tHSTjhFRU~t< z%SwROab&HcZwnzN%k;j~S5>Zh2feGju=8`f_4!Qi*R3uLCatJ4K93_UKWOv%>v0UfzC&$T z%KOAn1C@>zG{5(~>(u$R21#Op2JvfiO{gz7Ju@2`7?@#wTAAg=s^c~7OJiJg{ibDg zPz-k9D3{Hab8=>V0}D%9U|wB{dTDO*vfm|*dgKBk6R=lacwc_O<2xg$t)0$*!2zs;lKFcvqX{EF_d1Qakm;!hg$ptTA(& zE})FrL8Ri=sRpVuFBMvcO3Qhf($3L;>KeYZ5Ld{4nlezeQ_8UrQP(cWUA&O$pFa{W zn^Mn1)}oxr#U03S5C2BramGGKv!zLHDjE6~XHq9|HYC>#I zhtlbdyG*7cGIO$_4%>60S*j)pN8D7f(%Y0gV(Rjv=8hrny>wS@cD^>OfARTDD%Cl% zCzl51#5PxNn=7+?nGmzS^Hja+{b%c(=xx>q^hlHJ_d_2H{4BEH&x&kaFX~%ZYdsQ| zv#xscJ+_7RWxBk)_1Lo4?Ng(4Vr|4ebwj+bq|?2gl)kH$IJ=$OH0Mv5?|(EiYke~7 zeKC!3RmLE@N(RUF;dI@aL50%!o?8YJujc$YFH1+Y)BCy_9)*iAUON)QWB+pQn`1=s z+WR^GMD~<2OV#<+#*q*A1qbH*$l84Zs;L@gZV@_MZZ_Erm9)HbHX%J>u@BdeV{pU2 zDf}3s(nZb!Pi&_@ArCwA>c%6Ubc90}$LZ&}c)x~`EB6e_{?ykhW`^T-26sM)ZARLuWqpZo4f`CDXVOX(CojD% zqaSy(zO65M%e%SqZK`B+!)5w2WBR?$(yHSxayQOpWsg-}Bj$)Xi#c8QL_|#-d1w0j zC$qO|E7hGW`gizh&>Q};@rBNhZQht`y9{$)?6|Q^c6)@*G_Sys{&}rrNMfwY@cZP~ z;?6RpM;6D;DQbK9A#-biRk}L#-vsjl%N4FVJjyV?e)47=kx3GzOZqeaO=)FnEPu-j zcMbk#0#q3R@AgY6suDTe`uUJEG&m*7t+aH+26J2B};#AJET_WZ=%22lzJY<2nH0Qf14V7c*bjm6?^7d@N z88(GTS_Axg11Tj>$)-$iLkGW{&s4S7z&o`6iBrk*D(?Dp@~6}n0W{`8(MOFPPoN6 zPQoQyptD9&m%cCT%aIN}gH{Be(Y(Cwkb;8l5G|0FV+-WNI*sVD3!?OP_!nxrLl6bs znugedDMdjuxk1Mv*|h0AvVy2^IzYGBfyUc@2C=QQYDjNox$T&aamIrbqz(Cu^mK( zw_OlGg|a5TiC>5%{(y>=C;UQeiCI%mfgbGGj)X#9Cl6pU70s1*07|+<0+=Vq}Jj)KP7NPt!0q1NVVrC^>!KNi~4bfAi29)s)DCV3t2PX^H0s3(M>te zTN;-23^#;IHAo+fDO+?%Nulbzw&d7T7?WgsNDrTB5~ssic?k5wtc9gkAaJ4RIod*Yt#wQ5Hlc{ABr?3!NGU*L?@kuT30oaM|95 z1gxj7)XSY_mR02L>{yC8%|B+Gh{&)n=Ndej2CwDNCKE-j z$deDt3dvh_F|67m@m6L_PcdZe2&94qNv9Py@Ne=6rr&k+_mPZoCxJZP+bnIY#NQVu$-IWuFM)f z-nX;Oh^(M6**cfD=BQ`3Y7f$|>Z}ktmZ$BD4_qy;&JwzL=HTLKD9SbZiH3-p6>m{) zAi9o6Sw3q%arASfN{*-K};j-Yie!ub5cTz=ePpTVzNGJ%_(%}bKMNZ62-SmZ3L{X5VGnh z;=VF!(q)LF>Xnrn1-#Rgjw_D3QzWj8eU^F@PPhdw`1?@h`A!Gs6xF(;^(Hb3*3*Y) z3}v`+?_Af<^2#U_DI8~w?Fm)p_$UPrjfxYPiFd-SK7$KOde~B^NiFcf+Ht@6i4C;T{Q!qJ3 zt+GgXsWD5ZPs?hY>8;T7e~Nx*pq4+DgYk~iB0C@Y{5qP?r+lz{AoJykYZG?Lyw|4< zTpo@0vDh>Cl0V9i&qrsvw%gkkq4^%PxYnCWRW4WflT4B96i4Zh^ty}!gjJduWAj<1 z6xe3ji2a{db|{BC92X}QEGF)~u5w)a@nq(W$yxJNfEyi&RHn_1?^wPPgz24G1K8O1 zNC+cIk=FrHGJJWha2g%KR$Sf3CdEzYo?+TfDHYC`EazA^5hI-;MgGpm)N)zF7yjk7 z1As%ZsT8+#q3gz*Nfw4XLKK?N-26|6*gNsBbfpB1Qxk%q*OJGz9b>x&GRKHbBou0m zYr9-#o(-Szru|kRZV$e&zo@FDN|KFqcq|ub~~rJz$yW; z^V*yoOj2hlm0}`BDCZ0c7TBh1>Rnkg3(WnD``(^BquwAGOSoDd#$1scthPNcp1=_9 zRDEk~{#ELmYnA3-s2kxSmseVDJ7nx^O*~rs+7!H*kTT!nmK1dVX~L#?l#s4Nm=XJs%1|- z3WtV`y$pV>@%7AGL&@mx{ZXelJGMvIqKnjToP7M9sy#FFHh6^b>tp)YVaD!9HuyD; z#vw$1pKu_-BZt5FLT)vDh=8U^UjjGqoBv$3-rfYzTUL;ve!1BJot z#YtX)FqfTsG^unCTacncq^7FBI_9?*eyg?PQ8YH z=cxM7+#AEN(=W<(CrHQjqDHe~a-Y(e<0$volAz*NGUROOxJ|dp=pBsv-0PMf6F^m`vQ6?`US!dZ;nQ=Qy1X^7*c+`p?X!_zcBQsE4PG_Ba^n1 zult;%*3GM&mH8aCrN$lnqa`T8Px>rQ((NPS&k3{=={g;yhwo>_tmx;N$)D9|CTmz& zFpkj_c3~d~G1zQgS-m6n-o3c`ihL_^Y#)8bc(4EE&nL%>O{)%I-rpVzi6Qpz4qb`R zMd*|hSfjnr#9rL$k@N~8+~nx%vLYG8#<1w;eSOrOC{d&y0)rv0(CALcw?-t$ny4qq z;dHifW=;g!2DI@1VuSkgQ0;#$B^t4JDWy{+Q<@M^g}`fJOzrXCQm0mJ`O?>aEXtrd z3`5mo3HaeYnH9xSFehHJo&JdlYsqQ9*SXzYPpTE+bk7BP^M#s6l{P9e6Y47@TFROb z*G$(+axO(_re@6us1YD!_VC$}e5f+)hm~T= zHkcn|y3C}@@L_{fyC8b*)MStpKc`tBLYa|vO21z=vC{0$%31lZl(noC&*aXj%~bM9 zz4i&v7I9Gkk86Po$+@aIYZiw z_&)Mjj_UI&(b{U&7`t71nfoc9zt}6viv>1692cec!P@B71*oLEFnn0JJ*|rzrF>H} zSKPlnBq3|ADE73(}m$1c{+WmL!HbJhUH(jAlF!b9i>;iIG8u z-$S_huxhYhbXkbKZD6HpcT#$~#20xC?`uvPX>MQ?UELkZ`=DH zw-Fz8kEaYckdArs7HVEGC&Ja8FDo|`#Kp**?Qe~k_b$6=)A*`pjn3&^-B*hVQkmeL z%gmc~<0o4`nQ84?0qw$Y@+ABBJYC063^)0)@e7Ql2frG3zj8FIQ*{Hx_G7)#?jBW9*prx~CaH*`? zC>Yc5+LB_sWrpnRlLgj6t86E}&8UdpL{%)CiI#!+GN@>u$mvPUH6nUg7JXs^aRQHS17bDvaEmXjub z%oI6^Zti7@lW#A7tglB;V-q?acZjLwj7RZ{%&%szr*cU7sC!(~ zmgD8?)eIOs4e~rSmdh%76JA{`s&=V-k-Wf}5TUNd!x#=M!j(*oCKP%?a_t7clk zpDK^`PZboM-pbh?PrkCkRXvjba?XfHH#6bo&7=oXJMnqTKZp{qo9y0t>~$GX;8n-p za1V_`?ctuZp1K<`^2kW9zysN$B~5&8>G-Fy3#Qp!24xU9Q4KOJ16s;+ay}&ntr7AC zZ$7EJ^3dg+!w1e!BBI6LjPVxrQLpj+S=RTp**oCvRR+fShGT^a%aQzaR0Jp9T_m1( z#J;o4RPyvyc_h9m(Dsn!sX;f{R)u~RRTDWHtF2^)*&90dTqZvA!;A)RN9KE5$531$ z5O{QpBKB&@@b&13^pvur1IzI@mQ0_T$6D!_nvNXyx9_7K9#2l7K`-{Rc$&~SpOl^} z)J0Y6vQTL{1TBxD^j7_4COb! z-|oK8o=e3W=w5X>t*fgff??1%proeP=IEeb?$+jaLJ@-e1N;^gctQ0y3yQ+*)w!Cw z4X%p7c6du~_Kx7A^Z8tIJ@c>b3LQt1p270r0ylXWzqYDFCrC}H9!({mR=B`%61jjD zmhPAuJo%xn!+`z~Ls|A!9VY9EZO6lnjNWiAp-$4bm+hclJ?rlZsWU8jF_yR8)p(g+ zHll5x#pWkA$z>Zb`)Se(-(~1Vw=WusRY+9AT>N?HCR+&<4-YdXbz2t3-%n3!!E=;A zQi#u3zM5mxy%Z*tHbmxKFw|V%_3qZpS6?v&_{zJIdjDYPNA>b&vqgczL3ibkb**Vg z`l)e0Tq>rcv8N)|%eyo1B5)Oz;48^0)3XZm;syOpv2} z0y{$Vxsgj-N3n0mJ78eP;?^ML!zWsYVi}df*0AT)5uYBQ7@TzkuBK%?IgKzQfAguJ z^9M>z<66{mMpH&vH_wa{DH^Q{%YorhkNgj5Jvj-n=EUpW@_rO&6vy5jC3d#jf>R$$eR^ zK2l~bI-^3hFN<+#gSm;9)^`gF%-|ASv|TChZ^?28NmR5cn2uzINZh-y!1Y0O((N-`~$&5tk z0kr6Um2$L$bxs$LG8d}AZ6Bc7C zkC96YGo~)G=e4I+6DQ)zAR*|eVwgSvm%nvt_t}{Pak)ZmD8i&6Oxks*|B45ME0=^I zFBn?=-$?-z|CietyU)5MtEUjbjwr6@hH-~}pOVVVI*s31#9Y-7_01^RjyT0#Oe;J? ze;%>jzS3=5Ggr-i>srF0I4=6GDZw@4i!ZMUOm_}+D5V)E=Q)?spBc-8no_S z@cj6Fd`F_`+RPiMQKH|nq=s|DdpNQqt}ayR6aC<-G}E1r(4(I_GHviLf)!@W%Ab$P z759EW_Hms`C(b_R06zY$D~c3F?%Oo#v`sLm!g`Lp%9096P_B3Vsn3t^aB5bD-n=hM z;>UNmw3?W%pBV0{UQaG#O4ifrKP&2nrJXwL6KZ(lySk zpBFv<;d(shhP?V~d4*3pg8({8q+Jc3H_)N-EnKFD%#><9Yw zv6ojW6)+i&xDax*U>V!d7wV!}9)fiB*GHSsn-s3zM268E_f27aH!NS(!0>HU%+RNq zbeFiGr!+}+?%>z;Mn6llyBEZyc`x1Fm|lC{d!kWGI#IFy;YOUZXR!oC(L?#%N}RV< zOGUfFjhBb9(nQYH1b4>+HpCoNyjemQ=wjbvir5u)h90ziB#MsHTRVU~f9o!a@73>0 z{~U){9uDEP&*M+8yub!KHR_>VANW9m7NtLK6%~Cr7b+a3zf6)@Xo-EGte0?Yp|IS| z!sp_L0R3BE)=34meSJNpyPvZhgxB9XVkore9s$+VQFl}1gpPQ{nY~jx&Pmv#@bdJ` zkCFRL28)7G%okLt<|g&uO->1&s(s*S&9{egC< z<=JtmX$&_T-z(u`mnF5?>?2#76W(7FVX@3(B*dDgcVEQ0N{GqUC$ZL+RgT;0K)L4S zyGc_;a&Go##NcvEEKm9IRwuEU$-K-b@;vhpQfG51)xDYBB>#z3pN8j<1>sOhM}k0+SxAF!Bz>+E3mo*kh@s{r$Wz#vFdl%r&?B*)6faWbhAGm?wud%Y~c27{YS(d)Dv8EyHI`TK4CemkX18>gz=2~I@c zZ7W`pR()ah@_ylgCi_HE&HSE1r!}?iBK>zZUXVVQqe9^x($_C1nqM?9*R3 zJ@0I}u#Pb9~nJpeNQ|_D0cn;D*x8gKqL23iPclb15}PY*7vyBbMu6M<` zPmk|J@ClWlkd+sKn+&Lj4DyT=HBA{ETj#kiFLQY@t4ptCow1U>_ryJwUYgnyki)uk z(%(>g3|xb~gR>I;Rv9ux_o%f582w382}tfuSoo)Dg+GyGLygmf10I!NmDgV zTJ5{g^p_jy81E2XA+L=!e}j<g4AEGaB*`x~}s}ImKq?${LZd_r|aYE=eN1A9HRj}&0+Sz^uRm(O} zqZxkNCEegoxUUomRn1MiTSr1lU9IMYm!Z#2pMB6qaWYB$j^D%6k1ojTBQpL=3+8YA zBs6-jr-;?V-5ryKehh|~!$N(#b7qK3Lq5HYO0$3{R2jx)B{HTvZP;<1K9MT&cu~zY zmThId0}@M@V#M>N2%4<3Ar)!x*x`BOqoEucn0h)SH8rJ;hx`XLV_bxN#>V;NWo|#| z0L#FElcO(YtcvJ$>a6%(GEq`}`cu4T7jP^GB%e8ccrVfB1FE6o1tl{kpG zVJu^a-12pmJHhM52F9@dMRqlh_ynEgP~VGhRH3*^#)cC3rb*gWGVjGpT%QV_(5iLi zSer|1QptD=mpm4I|NLI!sZCWOXN@<0g=$V+T&Z_6l-$MKgQXwHu8MSCINJ@A(;wn@ z3hFDnX2YMwVi)Pho(09Uu}62&NkyY+)7FCdLoC#J>-m#UQc~n!u;3_+&mnOq^y<&6 zi6dfK9=5v2ZW%eyk~I}9D@Ye$xw-S|+xZ{giP&pG4GvhEzjeJ(n7vDLLKl}pBzNTb z3`2mt*Ne~hpC_;H%t1N{!=n^n5+^)$TD7UK2#v3_pRSttoXPyu?`i(qP9HW#95sXL z0JDK+iFqT(LsDOM`$MZYu)^UiABj%dK*Rz({WV&L7kyZ;hXY?ZYuoFfgqS=#nu+y& zUbkm9X&1+nFPimIwAaxL*)iY9PH&Bm;MU~SQ_Y{}Ek(;E9WK13TbRJ!5;FIk`IUUWUI7)i!kQn(@&qnzg*E#yL^+l}2%lnhvJNm0{!JRVWl&RLie8y~2v zY+3tu)~lis!C<`np_(m8v-+DDeDa(0`;QyniAsu084qCK-+FXNvAz3LGf9(Do|8I! zJ*R*Pk-tiGdDYQuZoAfZX=5^MO`TKWW)sm-l}TllsGeE>@(v_rBRPuqY{F_@{Kw;o zWb+KJPwT5BKXnTu`Go1XEuGUwvsLK7Oz%H~1*`h_&*C~eQ@EZ)Zk0xa3$X;cPG$rZz7ktIde8TzLk<0lQJKVLe# zxIy^ztK`-JH2f#MAYC*3D0|W*cR7Ve(`)^$_vAuI+_L{=QghsP|C3B37haNvrt7UOP6rJA8*sHv+!V~4L$&$zx8sE`*fT1 zWjRVBByc8iKJp~BfUmsqc;#up^RrOT8avx}Bp%5qui##CjxsxpqU}u34{ zKp0Et4_&m)HGJr^U zxq3!T<0`4VBrU?posgzaC#LdKRy%XqHrR3&mn19QCiu?za`odGP=l42Hs&LAN*q$> zm5MzkD~J4EVrU2L$+fN!-qku8Pf1|Ob=D+w;jSW1eIT(Y&%Lp2ol2HK|De0GKc!FJ z%FAvy3LOaXK4)dm0*CTfvdp8fe{U1H~{YBW^0G{vT?`T!Ej3t;(-hp42Yrkfx&%Y zNEFcTJj@*OD{%iG`T$vgD?8!6yg?oSM|g&dUbxhfTs^mHgawbE_N^k@C?Ape-}Z3 z9T-4D^u6s|4FN=d@p~W3;Ku(T1}wmDI)0laQj#e#{k*_^X`_> z7=RJty9o;fQh;Tg7=SMT7e%4~0)Nhn0p`U5n+Uw^0qd|pE)FmY%y$!Ty#O);WCED) zG8>#5WFU|O426JmVu3!pO!i^fdE+qb_GcTb0F=m2RPl&1i=C%?)C)v z`)>h2@aGUHfMT!)#0tP1><)^-@8$ZP1K2`-BeIJX22fuB*}Le2a0!9LR z{WA)P6aoR+t@||q4$y|b6DSBjWdM|ey=j-%fLwqw@kiQ~2T&${r(Ie3B@>`L{Fy+! zc7Fq7fU@yBfs~6Pu)rDuxPmfpK*EUwYXZszU@-nnzh&Zg4l)H;cgSuImj6h*YyGnx zZ1Yb79pD=gOT<+F_b`dZiyJZg;K<;kuU*;2_cDDi#Xpx^K&{6_> zVi)?;+5)S!`wMtM_G`kQ26p#L6+i^ExtL$m`oI7kyxaN@JBs-=yDtogFxss=4+E|i zc1ydq8?fiV56Hh7`A@^53`q6QZvWQ*=~>7jf4&}*1IGAmWdC{p2Dh<-?S4wYlR*{1^DgG1R}n-_~dM z4V=3VU@8F&)tziXpJ(?OogQfWe`50UDd4|-fveAdrhzK}@6o)S+}#wxmw)_<5-0=` zhXh;+6cUR-iwhx;dKl^yt+QY1^Y@7i${Om9A2UGmei;GaPNmG|opuozfC;_PAn zz`*SU{=wXS!H^ge5R Rw?7gPP%MOpM@d^5@_&)J@T>p; literal 0 HcmV?d00001 diff --git a/report/figures/grad_flow_vgg08.pdf b/report/figures/grad_flow_vgg08.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aa873489b8f3b4b514f95e439b9e00d9564c5c94 GIT binary patch literal 17819 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 literal 0 HcmV?d00001 diff --git a/report/figures/gradplot_38.pdf b/report/figures/gradplot_38.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4a9927bd2ec3bd87cf4661e69e1de2cc1ee918f5 GIT binary patch literal 17774 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 literal 0 HcmV?d00001 diff --git a/report/figures/gradplot_38_watermarked.pdf b/report/figures/gradplot_38_watermarked.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d29d7dbbc854676b95602d6a068a8c39675bb71 GIT binary patch literal 30063 zcmb@u2V7Izvo`Fp0E&XBfPi!a=@LLXD7~X}X%PVtklt%lnhFTgJBoCKfb<#_r56E_ zPUuMQC4?mJipO*Q=L+Y&_q*@MPbtaH-fPX8nKd)dGwbSYS$S?g9>FtL%a#k#X9O6o zGuYp^J|iy9z^iIuXX)~gK@hy8d4_?3fmhz@k&A^B`1#1x#X{D?%--DMjHKilXBQ_6 zQ`<8h$^6>ak4YQLFql5NpJ$mBk=&-!OrCSQ`P2m=z7xcpmohm5IHw({I3C}-Q~lI0 z{fV>}pX&3}z$c8d6;H?%t*F1Alqsq@f8imEtp8KLz=WqNl6nm1j~|=PrqVxSVQ2p9 zG2l1+0P&;3{{-U_f#Bc9|H1$F=zoq^&cj7P%LR;;L0laF0{G%Jy$=3h;FY<>z{kLA zW(vN88Gtwb{LZVdao^g)%;o1b9yb_n;OCBi5B&S}49MTlVBppEbg*FHy=`h~!Elv< z@8>gbn>tz8xq#dLB{Ve)b1PG6dk+Rf@X~b#fg9I(gcS82|i)jJ=%;_=qzD zUiN-rFaDaPriHV;tCN|9GXq{?n*W#`e!_T3{$u@x{~p#+>yMY|pTqklI{agJwOsGJ z{FIHny_4bNY<-wP}uN2p|8~lG}LYGP|fH!Ow6) znr+T$o{joi1|{bYJ$;VKY3EbN8IRp~L>zorQ}E;er742^f2|_^S%1#+=ji@lHARF$ z1V8xyswsT<_5MwmeE(65|AjP_Y=Nr%9I&31IWWx|0@r{3rD$Pg`Ot+yK={u;W$Yi> zJ83zXngQkfbNLmVOn<5fuM*HTCkK1H0spNjywX-K&bKX`WbADn?CpMP?|(7t<$+u0 zj@=|W$#;-1@dr!tX}X&Re{4R;J$~%(FZ~(0ixS|gu3O^RvGJGlXc-L+jV`I<#|Ai( zRvGc{po#vz_}4GOizndR80o|7^;1N@7EDC&uLZ-)_jg(1P4VA7(|@Cx|7%(PGNu2a zD20D6kd~UMvkk*fh4^W0e{1+s%4s8A9c&{vfA2S=o3ajnToRO1lvN$sRlX|7-QnBP znwjOa-)}ywZ7`S~CL(GUW~0OtGk8xe>a9hB1=9;<4wm$5<3UW;PFO@+hx_HRxLxrz z9?C6GNuQ;eotY7Is&^-9Y?Eh>d2oNhiU9 z-uU$La**le#=4fyPQRT&%eQae`uqEfx%^mLYam@6C~o)yvH6y>z6!$`(zz@TZEyEO zd5sx0Kh^u9U!W0GR8-ssr8$Nbc8lK&j7P}u1N9IICZ#7ibLIl7es|0p>4#npI!BYG zn&8x{CRC;Wt^<(VciBe)a^Z#Pv{RX@La6ep$)+$8$#i0|&G z?QnUW!-VuinD_3AApHRtk(HGd(^nDa*+-+*+ap!ZlUkm&F7ujX?yu4#qoU@z(r^>O z^r=#?v03CQ0*4*{=zl|gb|_yDo+@NN=8p8W9DcYW=f-grw$-gb$!iiF_P)2MsECl> zXRVDFanJ?BYMDbJGV~C0#R|L8Y23mPVRElCfb@HV6 z&VX5YU325w+8Uo(qk#3dA1}pLBEp>KI=9!?UxiH$KEKFDAyT9V_0@TqXW9_70sAr= z=)N_dou*r8boZsh=VxS)S8-0}Z?9NyFZ8LEv>|nKZkx75UftOH{QRQk3H0u&yI~3h zs97ivB$NE&AZt(@kFluZ)eU{}_+pE;*jct*7Ee#lazu)V^Ml=$(T=7`!8;R%_H`Cm zj@GFAA$z+UGi@I~e%#PwjY>^5DKIDlYdkojqOBb*LKv632$Tlly=#~0jX^zUOFiE| z>?i2XqQFD|!=mOo!XQ*}oKHeS&kpj`L=hhw9H?<$VeNhAmyXlYfgjjEqb#xVB=2+_qP}4=H@KzkR_Jk z2THoSv8cuQ-t1+J_uBZa!M%@Qu|2PX5hhB(>Z>S|;;v$`SfIRGnH#G>r_FhRhRrq} z92`&!S~rgv(Y2Ktq=tx}N+4=0i8@{R$mhqK;KneTIco{LxKx!k7U75&1*#H*Oi{>B zSV8Eh&MBU#)Ap*W?P9C7B~CM~bE)2i)_r-ixJb`TRRfD48_wxQ8hfruXz#W^At{~a zHG1EzJFn^#&80bdHFY>}t*@F*I@6@=hv_a|+S*0njLCgW^1(_&VHj6)^Na)P%a<$N zSI547{W{YY7x#W2Z@gKhR=^y9T@%~0cOrnDzn2gb8$Q^!hoO@?5Lr#6SA=ix^)q25 zytZ;40jtTz@Lifi0vXq?H`08et&+jDw(ITO_hV9V0?OJN!--pj;v$=*a0ewu%N6nt2xzP*{q2!Hisu=UiUvzE8 zyT;6B7vr;u@E=omB&CyQGTYGx|fjHPu z$=5BAbpYlN<(b*AEd&ghj)sO4MtF<$w>Vb(r|n zktAgQ^XiHRK*GSs7U(=}>*&Cs=F&RszfK*iyt9-L9lh17A(aq98ZY9rxAugy+pl81 zJ%OK`Lwjv^m-M7&g`M$9Vj`lolk>n_Oy2up_P<90c{ua3&vjp984!2SbXz{H$su_GfpjPc?M}x|NA|ZT;wn!ongnqh_U_ z4IS(+!pAKpKKc{dx{o-gLj6!PP4qC?<~r})#EPC?yuTvpzgZrBZ`O9N^p$bj9}F4d zw9YN;wiz!n($8z=8FSDx&S*0k%P@7wP@k4oj*1Ejj_3(3>+gDyVUsNBOU)>S+0tTj z{=;x%b2F2evYu1cvC3sWGGf;EMT$ZYH6t-{Grh9;QF=4?jTa%R^pfZ${s3{$jcF+y zN+Y1XwRL}^jhAd=pxA6S(Q2q!--qY8QN9iAkxvv4jaIX;vMTQmmf6I`M%$cVEQ^=ze0`RP zsLB`Z#wRGPjDE%QJYu-qHp*I7(W zvGO2d@6e~_msakNAbA=wDLC&!#BQuF`ksP6_!LS{rM2h;34>FBQ*!gI*1+Up!t+(r zh6q0i=~mB^!GQ&a6^%_z%o(Ms4#z$QpQ;*<&X){`HeuJhM8qDKHGT|Y{q35{0jGq} zwQJ2gHnOs^uRIg*5|WHPJzuvw#`!5mh~D>>`mBsec3y(xN& zhVL~Hg^&Juy{8RNOV8n#s_i6U#D#Oj_pJk>7cDDD8JOimi#{X3-l&tWD+o;>JH5ZZ zzk)^T&0RUZC$F=Hngct+3m9!ZS8`Movz;sU(1uD}2@@V(r8x4r{ z^(}b*5kiY`1OX-~Y@>y)5H@rFh|L)Yvy1D`yzp$4SqnWM!z8J>l2>|2~6)4S4d07|wIJ4J>hC@bCB6MG5h0 z6zH4Q;?TQ@O>jlf5m&G&aNkYOQWdH9;9EtETOXQ63@lTremB)?t9z;~?q6=QJHS`w z@W$(4-HcNYKawM!qbK_L0JRVf6EF7??1#At9@3&#L{H0@r-H<`b|YKb(yb#GL>J|b zl-%AKUP!QfSqSagPCLA&1skh{#@0KJwwFp2ZajJ{Dt45{wjv;pYWMTJ*1s@Aeand1 zf#@$B68#L6eSRixMj`bM)6sej?((p1FFjF^6Ekf8#`MXNH$jHc^p$kwwM6kFVYs+j zao>b3c+~G3U=IgQnY%Oo4XbK%BL5tN!_Yj`@{q#mV2x{ZB`~Fl0_>Y9?j*Bwi)}~Q zOYELr5H5zZFG?dXS1Y_LtqV_hDP{+-W zQrJ5Z>!10?U|+Wnjrs!afhCO){Uw|v%A8W9}M<#`U{hlD1PN}@8n_UGR^I@aP| zAGV~cSTz-XJIQO<6uzk+iGu%fjfBI8O4K+#E+-X+ZLW6xm#bn-&^yCHFxCcbSa4!>)m{uSltMxByIFFtukI{^dwoH?mAB|h zPS{8EN;VaLMS%1Vk`%0M1(KBI;Z&JpBk@sDW;6~IT>1=51nvgHM~um^f?9~)=fJTq zzdxbaEIdWzEpIOeF6%#G7Ap(O!#{k?Cekxb1O)~%ig6#-WDp9JQbM)0vh&93x>VyG z&I%{QqTJhJxfvN5%b_3*2)X>3@v(g=h9gW$RMZQ5fNEC1>hwLxs09=`;6p@iyjVPz2;b>(?g{JzihtiSQ+b`C20OsWp%XlWBS-XbVf*ja1$t zI2jOKOe=Eh0@XS5uky|C`u&9v-uj!0>w#w#h}h#l5V6<9p17&#DY}sXVq!&(GmM!- znHyx9>Y2&61EOac!%i}0wkS2oC|Wi4#FJ@O2f3UNh8Z#JX64kgc3v~lQCj*qh%FUW zRb>_D?Rw@*GL$7yNQTzPT z1{?dELuHL|;jF5+PY@(0@-d%d@BP#Tm6MYz&@YxIcZrzoNScFI8K;->sFB?MpLu?;SyPmFLnG0Qb0BAQif_kpR`JE}w*tKBhqXU7lUAVwn zAn`dI2`vX!VzWsq%Ne_PD59A6#nFkHkNDg^5Oa9FFtpw7+(mnI;4-$mipBi&KklQM z)$UT8`-{1XM{Yc5>}W|7kZP&bLZ_HcSE}V~huGsILyfvsC>6njF5M`$d`aKXE@&Or zt2I;Q=zww;!-<>g)9d^EJkQ;poZQuIf2+aM^Ixy^|Jufz&u69$H_4L;F42&19he__ zfe1cgKlMT)l7#Xt({z{>@>WK5WItD(zWCDdXj!#7`!28x`cy7_R|^cDdr9YeR(N>} zUUJlW{^7Cj;<{Rwr$X76)lo%A_c&HK>xfVkh;^Z_F%A}d_71HWbsEBJ`W5rhVr>J; zs^q)(#%t@2YnQ~r&ae)8$1=^Y`W+Hiv2-X-Guc_Ka<)b}nXQN2^4G3$<6xa#QsD*r z4=xsSXt-@y3D?$2)ayO>56Ak-3l@5=&J|Q>9vvIUVUiN8MtmGvFZIFGta}^vaVUG( zaQM;dyM$y`!0**t5!F*94G7=;WRr3(sv~0~uR%nQ*=&~{srWrEtk1A5&>ao9!Kou7 z@OcYdq7eNRsWE*Y2$S@=%MJ@^IMt)o)?~+CGZMrcz_7yU8V@QI!ueP0DsZ1p9UU~a zVbv6`+er#PiZ9-CHqTi2#y%G&r1=9%c_^6SMe8-jB=CoQfs4A|sE2(k7)}sz*7U$J zA9<>$|(K<+A<}&C08Xf>0q0 zXZCIbX6*o#MUU6i2okOY-PbZl1SC#@3q6eAW}qg zo9M*KO;3CqlvqbuTDfZ8AuRk{7wFA@#K$yJ1;7G72wfN*UbBzmS*S;=wAwZ9LH%>;)PIgTq$(Y|meFe#jo+M#7y9@$2 z1y>7?7aU3ofsnRbfRGx3X+ks-v9w}07MCmDtjwC=TFG`6`@4)Y@6!DqPJ8tta&v*d zU9Hn|UEZ&O(R(mBPkaKqs2vRB32HGt5g8&?#j5#-GJ5-cz3OqX)yp9oZVTqMIL?ys z=NC&pBgUXO5m2RlYCNJ-xqC>P?e~S)mFl)*7m!fbANSrNy0gQp(JNZL+1Ycm3vFAU z=hEZ|dysA0tx*pSX^s3E!i&2-$n8i@#@;Ld|0>eJHF z&XPcA?MAE1Xoz<~UH!k76z0`%cEedFKHc#<<+e5>J`;sCq1$OtkBRe|c-5cd6A;iQ zK(T9O#hV$cs)i;*++$XcTAR`La+rAy5Free@|iqcK|)8pSD*JoHRM`d;4q5_Dp8jl z@gh_OfZ*=+bNU~piA_9b1Syfvp5Hk^kTcPsQM>u_)GjWjob18{CPBQA*mJFVvsO4p z&_{i^VOoY1BZ(u&H8xW3O1+=PA|e6e1W>P&1O(+a{heK1_L%)`_3@DrBP!eEQqSOH z^>+f|6B82+fA~Ly+#jH5{I&x5ZrkZf|dpf}+3oA8!Ke`9${eCQ?Nr#wxZEbHQ z^9GR9(?bz{n1O)-f^*c(W}pi6l18WyRF435$2D@6iJ953^dZ^Zh*QKA!Z4;oHj#+0 z=j7=?CIk<>hi&tGy#+mra@ZDoHMlErcb@m;>2Q{KD#qNf8yToy7CE^V1{qPZw+0{; z8SbfnQ95iMYW#COf0kA(z9J}jE(7N*X|%m$g*Q%_pq!c&Q3)H}JRt;*le@zwVfUT! zm5too+`fFhiqmaKq!c6LE#h$++nE8h`^rewq@elD*T2`3`VTmlEl^H^E;+?ZIv$nl z7^tWCy$`tw{IKm=45h4fcXzjwTi(zYMg)*}M8x@Fc={J60!JcnTLi`WY6PQoja0?rL(0CF&c9N2AH-q<|g)e18xfQeiN#a<<41sQx|afZdhC+Zdf z%NHyWyI@chgn?n266*6uB!mPGMbNQinlhOC_=u~weh7?sdO9@Xy-jj7TVRBy90PkF zPYh|KlQfxTBB8qSpSi{o$TbMmm9u3O=RXlWCnaWmzC=xbbItUYqL2RC=VOyQKYu%> z6x{Hs+7&5|*-Gt930II!e$>N~t&`ttTtl}yie3w)8h!=&q7Yk)<)WOvb?X+$wwRb+ zw721_m&0(m1Dg=-tnhG+`cdi>P~&ved+&pC!sm{|y{@l_`R6ZfR2XPJSd_Nrd#aSm#aZe z7BEt7o1}Vz%n4wPP6=VZW-f9pAUc~_10-Aj#3EWx%PCsX^(cabBUwN^Ao@Xaa&l-y zkD&QW|A?N^j9x3ggl!ed*q86Fc9`A*1u9U_y=tQ*B3+zE5!GBmae^u1TZS+ZBLF^# zNr(Z&FkVyy(j*7{fhuPt34wK`Nx{)9)5jYX49`6RRcgYfLSZNymI#n`}V~P z7cS7!(q6ix?Qx8hlr%gfgp=fhkb0{4-9kbR-FNzRUap=D%en*<|M!CORw67asxMij zF*t3w^v?1SRobUW)avKwcWu7kG#;qK#z^{gN$g%4>nX9+5UEnfvH;-EGXdniX0M(x zS$sVfmyvaZ3Hy3|=jwYKygo6vvm8b!6P#z&3+XQ?8Al`T-%JP|3gFCs4T>UF&AYE# z%@6Gng1D7|HxJscm(q}#)}G?JXu7^S-I9>z^S&t(P1>0((%au(0mEV4M_uE>!@B^o zv)K5l?#dx|+JP7@&uyZ|!C~IpknhOK)%uJ4me_@kZJ{#?sb~dy-%@}>mX-?a#x5P+ zVr;N6cNQjs!zz5gAeM)6>wWuP-?IMvY-zAWYpH&Cfx&JUeii}%hKI=dI$LsLAqtap zZ9Ezp??iXo(}}!4Ln$g#B@Pr-Y)2{`L2?SJHk&!-DW4Za&G3M!-U$v~K0e3s4^Q&O ziK}K~McQ2h0jDJ-)vG()6FZ ztOA7q5P8IDdjKamI5>dB74Ts0AsXMi-~a1Q?15Of)iGLndi#kuSV18_9%T-}KuRb$`d)?x6l)v-DWYaMajekwdSrjmNZt09;aH||gB}u>U)8qVcE&xKG#P45DMivYXBfP;@WRKI|V?;?qZZM2M33sV4r_1x8y(X zLN7T|WZJ;wo=8E4-rr{u%G;5B_m^~@t?qBl^P7GO00fOB1PHE4s37LR3#GceEBVKa zEX>VaRz^@+Np{uS-wl%lZFH-gX0RCau*(wW@5>w(mxn7>rvNWtsicd9PW*>Rg%=y3 zrfiIm(o4R(%4<@4t!uvm>DL}QrJDc8?LyBs4L#3w~VVLcHKs2FX%uMjbVRng7cw!K6l0;R2bpco{RE*$f zo%5V}z$Mjt0nxwUWKT^ZcAb+u3b}5Zoufm|xw6$kvWdY07yicK(u5t4GiKU6E_tjW zh0zvGp=j&sisK2bEpVIfxyl$)%Q<%)@{Pz7wPC^S3AS?$NtA4e60lF^sq50I;+_`{ z(jV&TevgCtJ&yot319?VSOjohC_q{Aj|e8A-JeaeKM%Qjbq1KQOfv?(ivwgSB6e#u zAOSr>w4$K3`mU>mOibDymDauT+l$$t9HbJP6HM3Yv-a`qxOtw`rIUkb!OMp%|0BY( zGv^fXS=KWy&FT5*J491_n}L!(Qrwf(dpN_w7?)5De-|zW=>|?SNA>0&6$H z1|K0mVwAxoxpS%f2g7+WZ|<$zBm5QuDZhLf|asfX(gfYk}`6ueO90H;zj1{cHZ5j;Vd-^0Q8#UOq^+u7ny;>$TneqohVc89 z_aIXDZwG9EnI|2H(HeKc8WXC+^|5i}XIVkN0~ltwAcuopr`RoS* zyB&bNgYYfavljt&d$pt+u6h$=q=%|(qs;}4Mu3tuV1^K#J^QG?FeNPw2};SM`jv5qG9cbP_eEV$SZN%t&w`=1 z_*}#-Ujo{e;3JQTmtyJ+VVxJ#V6pY(8aJu?c7ilV2q|Fl zY-h6uPz$M65m+wEY!K2vlXX`TE~5qsHy31loc zsKZ$=Xm2;tG*UjXzwxdG_cs=xFR2FQtQl@U>#rg%8hM-0? zVya0dO~MV#x=RXI3sm9pA16S4!w|SrP^V~a%+<lJ}uWyw6}Ay!2(Z`2=Tg!x4o+qljiP03o0dt^H2F*n$7+N~y!4aLEd%?3^k&x(08qu+r+QuPff$F z678(N;`VHdy~=D+J&J%dhhFAO2TYw;dYV@T4`q5zEImmE<&W-GQawBZN&W0;Q@ynv$DpB|FWi}x$uH9aZs0hgDBGgJwEm7cZwTqR${s17ru&E`oMBNTH z2SNc1E!$5UySo~SieG`C3`GJl`J=g*-Z!wazm(-C;b7hhw}P}E@p&UdNKTz6EqxaE z^0Mh(g{`4ZMIqQ>Y~MrAt)>(!4wMLu3wUs66dO{^$F zNmOOoMOVcluPEXV*nIMe2~R-Y*Gwzs2Dr`Sj5A&yfGPFALgw0g$ut{H=Uog`gNWuo z^}H&}Xr~Co!*huZ$03ieNO)<#)Cy7R>Ft%{A!6TDb~vV_rgkbg5MVyds#J_H)Jz;c ziN~jpHI7sA0ny*tR$eAsH*{E=kq_f>U-FoL z6TAVSb7G>(r8#$0r&tLk_tWa(22!addE5&k5Fg)@jHP}S9?rWln)V6sfFg4w=`uWS3fR4@~{x~=|xNWOS7&rpJ z&NC>p)&Y*dYkOhi=1@V@5wMiRGO{mU2jQ2_(ST4(qNevwctvY16#k7uiH3XahHE;mKe4lReUmYPw1NBIa;s# zpz52Uy1Os*?*&Ha&wH8;kR7slrAFhHzY1;372U zFj~=z_1#nhkGyXJKKdwke^)5B0RRzez+1Mu?6q&r2h;klmOm7qfObFGaxdzLJDkS7 z#l~!kIA;~l%9lI{f;D{l_WIVsdQ%t;<8zpOjoPSd|2(CMa6t6@;Xuo7bSNzFi0CK> z)|H~wC7ExB81=}lax|OL(%&7;&Qjy23xN$+=$#-;^+GQLAaHkIuhZ<|!<@4lT3M=m zP1W)7mqjdAIFN0BdAz?FR0Q)uk`pi^}ly9>+AY{_-evx+_H)1ht+K~xp{F@uGB6)Kbshyp_z ztnJuHJkD*=Z5B00>WM=moak)&@&q3Z6z%PK$jVzBMkaD#{ct^*pv&~$6u8z)m4-sw zUu7CCi$5doPpphuSo`23-Pi0@xNS?vkCR{UO%+t<&tJD4Dh&uYi7yxozyn(F8S4yZ z=2xhb6P|6WvRh&I{I5hdOLh|QqmAo*Jkun7eSCehRTCx|>#YA#A#ewDi_;fbzk!Gb z)P(^%yj5o9@sHxaGtZkd_~r+|k1y{sFsgJg1sgHl#doZKCBcc2)%JjG9xl0`1Bcto z$_B8Fy!c0j0#t!6Zq9bt0H1#E-n}qt!4JGf9@qZ*Fm=HaC?es}Nh6kb>4Tg=~*c;{wi^>;y}cqlXTZz(rg#~EB4!%;GN;-CT37*NdG#q~wj z;&`RKR|J%cmB#~*e=YnOZ{l(9^D3@sn*cJjO64wq@<>{Ey)}epXJ?= zL7{0@PgU4~>{QH68$ix4L;S0+A3@pMih$|8Q%t&B)x__`t$R1M(e+wJ^RAcDL3Z;z+3U!v!4 z+#7IS9%{5Kl&vhYrdq`joT9=m4|IFTiQdqy+h3RnqjCS^NE)bDGXikZoN$;%g_JJ{ zEEa%fc2zU(xEogKqVBrg-HrQtyoh8;_mz*ySB}QYWw5?GgWulBgoTUtzso&-Jak*= zGh(CC(TtqhdanYYNN(={^KcD{^E!4k;{OQ&d>-0%F;)HQo)>5Z*MA{=pam~!ZHEx0wX#yBd zeq@sU4K6M`x?YbHdl-=@F|3cXUiijrfx`O#j-r8^lJEU1h{kq+-tH&NQdJ6n&KF>q zA3FgpE}BOIskhi`M^p2C^1z6Q?l1Z7((<-pN8ekhC@MZ%*6Y4c<}ZBGXyh7c&{--7 z;3%S3YT#fq=hQ1Kl`0~pjP%=|XTt~RBgJNf z|80A~e<8FL$5Vr{WU~dE^b1%f0G6nj{-m=3rIBtOe~ky2xZYizF_1pU|H1-!`W!|E z;pf*n2#EllpW{Ulsj1jLJt(8Ofx*zvK8>JB0OT-d=<8g1909hP;c8b-X}bZ3dp#Kq z%R@8$xlz!3T|Y%dzwHH-PW~(!H6!#ef}ZRZ{lzHUSD844uS!#Z7O1@Pvar$P@Ch3xH;UMMd{dhw7rSiE&PIqWTuj~IqZb2pi%(FmfJU9g|7 zg6AT^p6UZOS&4P*YENcx&^a**Iy)a!j@vR)>VQjXdx47BF(8nN-Y-?4#pBAQXdyoz z0*9f3gM*T9plYD#;^K1q_U(y3#K9L2PoeOKm@r6Dv#c-|7nguQsay!fkahO&FcdI? z3PdKzQfhTL8xR0I&eH{kc8RP_wNQ;l@F(%-t$f}se`03&D_x!6QnYyp;v^^e z3ToWnw|VTS-i=`l=i6=-URql5y~-bb$+$!;*wQP>G&g61@R*ry011gMv%&+|<~aeb zuSbL@Ao1hXP?D=(lWvsQy%INA7+>MGjN8{MmzDiV5*jEC6?|-~p>>NnOLzt>Wrg@XqC|t^Z#h zb;srtnv{uURq9zpEsjBY1M6=Pxl1pr*uN@uZPFJN z5V&Ht^E9vOlw^Sw5p@Mc#5_F>)PCOA+k*EVCyMZ6(5oQi)H{^HQDQhxRGrO%?6*2x z#j&zd(

X-l^MP#TMvy?^U?jHdKKCU}Jmzj-Ov+*yA)GO|?{?gWPNqX0_BKSdY~| zpjHKtt;QzKTq#e64mMtmb96q{)_q7-RN^L-53cH`hI7J8v#cFN)PdJ<08) zmCI3`266zHHGSBhd^|}^Rq?hjIyF~w=6weOLPml5{?001&u{wH!yK=*TY|pT)cma8 zW3?xa);msYN0%Pd$24BA(F(Qul`&VzjA| zKKVLY6(i|+dO{{XbfVg7DS7hYy2jPhXQ?6+Vlt6O^?JB`0oX(k2p;z^QNT4c`U{QS zrWH*l$0cqEVmLSIP!AeDrH`*UxZ*Gi-3k^P`RVDMUm71U8z0pZQVp2&3xYP^dNPCD zG*UEagz`Xry(9k3P=t7<|RyNU68eFy}#m~NRpyxNst z5_d4_etvjYC+$e_j!1*K@%^4xaizdE zH$qpbS_0g+t;=ka_)hsPuy5~8Ep!Nl>18y0>I7?61LM>cU`0$KIdrt6SQiRwrg7Ap zNCkQwK>0w}^h+DZA7L)Bors>b{z4si-Gg}dDS1K5mx%&Ob!$%(g}U_n^6r+1C&A!| zvH0U5uzWqCthzgQ8Ugx4wP}GGuB`M2Xv2xYqZA1YcLqUBNiDV5pHC{Kjit z7$M31W{(-vN5XSBNg&w?%R#zJE+4nxx%W`HMuU6P&Wg|YaI_*l`f!SvHu9rp+;h&*1Xt0rjo zE>V!56`>MGO+VP$9!&>Wi0Do+!jh7Iz46vw1yUD=3R$;X4LEH*DLVyCz)5aAE6#I9 z*0(mz^=$X!`oUIBc;bXk(v5|xxlmHOWhAKVwtAfQn)n12vKt9pN;zuTz9CSkM(_Ic z?!l5ivv4ZtEUl>abWUTq-dp)xle$p*?eF=!QkzKSm{2r*U{KzZ6X)hyzh0oX7e9Xr zw>LFLE4GK?JmiX-Blm^GhW7^gLa7>wJDHGvn9vrucqQ5nP+J^T0^^{%etwk12pq79 zRwPp2)9lL&+!(t)K>;zPwx;F<%;KS@rn{Or<^D?ziTud1x^v4UmtR-A3+cMj@kvV@ z6j4KD`*Iv}i(nlVY;u74_Yjy%koBEH&*SsZibD+oSMj}@jfQpU#`v7RaV~eLjGwMe zR^JaKbp-~w3w+v zZ1wqFyEm|@sj0<&I6V!`@atPAJkK6a9nd%WJ$Spzgsb1`@k>Av5K!~7_vi1T5r6y< zT`(hG+OYBGPI@3TxV|$69M&Z&mB~$WL`2Q1Af-VPH*qw3;&fO84rh zG_Ksbuk{g~W@Z?TP`SM~$sZbzxOjedQlBwN(Jl-(c05u<8&g8t(I|Y$UeMNFTrs}~;wyE}bTq!eO;K*z!Vp1*8roeow_O|8JB zu3AkW9Q*;$0Rte@lq-L?82{DJ>xe5fh|w*Xm2;L*D$e%QJGD6`zcFAmH+WEtsxT0g zDLZBO0?pTKnF^-BfwLQYf0c#h^NtNjg7KN3cyV#_6QykIx^e&|&cxlg5nmZ0h3z%a zV~xV3P^l=-8BycUyr4&rr`iAM(?T=> zj0$g0NC%#=-0mMPpa_nI3e%NF7u)!Z>t>+^52DIYy|J)))*(Omzp#05aO0_n+RN z+FQM~o|^}p6*l|RQ5u?>nlDa(iB+y)KymLs35m5*JuW07vjzv>Tmsyj>@+{=W~X9o z%+bllMVb)e-)VcZ3jHm_~#fDu431Scfm zd%uE&14ckG^=B{Ml}q&W;Su1hq?k7+7%LtPGRY81+l|%U4I(+rC1N25jM!yO6cIas zM5!+v#Rdhq?c)f*bc<2X{_>ftClK`EDe;9wK!hJERYj6Pn3-i%TKmX^A2*Zt17aJQ zX5pmd!J14!^dIJcw@k!NVo>tnoHQ#dYb*IF>DJ6#qdN>4&om3Ko!6Y^>~|t!mllGP zmc0r&Sv4!$49?7P08|&ZM=6%QB3j z&v;@FJh|Dmf;e>Y9`Zdm`UL31G>jG$6qheQi*VY$OileF0%H06*|VF93D6O6J`_0UPuD zMj)k0B@T-w+sMsMO%!%yl1>GOZhQ(P#*2^@{sGbSL?{D)Kn%;q?5hDI#kocGBqeoq z3LH}tXkvUR>bk%%9Sgj-z{AH8J>7|dHbLNrUCr_h&~r&~@uGhO002zjCUxgGcws1& zM~}Fq>vx810IyA^c`gm+2e@rSC}6VcDWc?zr!HP*wD=#Kow24x=tOn8{v#XK)i253 z@H3(rJr6*LSf1q6)WWNP+>1ZdBqLVbZ7DvY`8L-WCC-{pXKmu-Iizuvum?VFv%0}*DZnr<)>%k$Mr7k0E)DqmJ$IE)vNPP0KOTnuvbw0 z_`#l|rSK#8*82w{mqq6!xFT<~7M*>=iDM>!DMNttvu@tKud#r90La`?jd*G{kaXZL zZg!PNEDsm$U6t0y3@m#XX2w^m^eu8&z>&@P!ji3#W>VwEE#12HN9|2fleN>H0pea; z*Y~Ak*{*yZ!p?359z&E6A5Y|`^&FqPAO2VP-KgG2 zgptt{5MDsfwUj%kwoR9`rZOyRjm)v#oz*dVP$jGw+XA_p#SI!cmPc!ZOi0Yq_V)Hb z*{(ldj~4>jC?B@l+}^ewtF3C#SoV7Aa+#iNV5$leNpovcbc#KO{lxX;HNqc^-YSB%dqEG@& zhBhuVTZ)B=ngzs8$t#^dRw*T80X;Kl=pk&pO? zeLQ~k-V?5pr8JjVPr;bG!gvlS7QOn>P@P}yJvb)~9Q~H3lTScM*hU48uu=vc4Oa@2 zrcXP4%ee!7=Xk$f+(c)Vpy!w{Gs$q5waq+1y;Y#(VK>vO8bE{s6x8^Hgu!ap#Yx3R zB@$ZEQj0bU5$3@D4iy!ZByhMGrDCvYf^N+GeIt?1d^n^{C4nc)NNU%nN>$HkW4Z;L z;I*{01ln_+!E`=S&yREDhTd>uJjv6hv0=?*yfj<5R9CCr-KSvS(W4aGyIBv;0DB`7 z+1ls&(RLhsoj5UEW&;j>A{^s+VWmrbm<{aq}-0ljkLWo zRj-MRC@%jD&N<^E;L4gC>HYRTrdobb6#Sm2V*`%B1D)*Us}IGVCyxM&q^-O_*~W7B zyCS-CQPgUpm+^UoiSRs28^e67r_cmwzbUmF-T!WAk0+dggYJ^AoX|4LxDQV68!55u z0x&rsHG|mel0s)Z-&^Gvjwer^eAJutN??KCdT(?EjG84SqWlp6OU1=&fm8Gy>*$UdU$fc>22x8G9k z3syeOcPAn0Q^KcL*3oC)X=T5xbOjqS;4rI?g9EN$;4G}pgbOiB8`Lbn?sD35wjK0I z&JG~hlT%WB@!dYy7wi{u8v(bOc`;~0$meq#i|4sWprv58Ego#m*@+T*U?vfN&ZK3s z2rx^-|KzNdC!G>wk7DQ9%TCn!NcoY1+h8jkcEBtmGRSQaSxfM1rMX_Vx3$^yWVG~T zsx*B11lpK{t$H#Xry9xiShb9lw{mB*Q@!#4nbxU;9~>?QNHld||KS01|9jL*7cO2T zB)M{p6dcmf&dtZi2XXw4Wz-S|5AN;lm64GFJ4!oLBU!i`5XZqvR%`xe#7b;nGh9I; z5aK^ZYj(k=%0Zg`_HFnTk*5dTTEgSmiJ6h$>^vh66+nO2NRwPv2CJ?1Yqdk#z`=Ol zTR#{tj#X9)CqUc*(;R3SpivBMBz*cP)yGA3-{i`A;cERyohGgJJlTb@Z&`;KWUW+0k{MevLfIKZ z*|&I`VzTc<7)!|hU4!11_x=3E?Y_@_-RE5AoabM z^yi>r!h&FUl34H<1IWWO$UqC}`Ge8c8z*7cP)|}|z^u8zjZ*6CHzN9$59Zw)f+`r; zXRzIB?b>`OeDiobw86^@^#}@<CsGxUh9}Ft*q2=4w$6ZcVi-ruM?$a2G1|A{Q zB?W7Px-#JINjXrhhpEXH78U>~mmujth3)gf6Ar{ID+!P1DOCXb?rW(Xex-#$Qw=dABm*Tss=LHZ?M5e9>Sc>(#4qmT}NcU-snpI!r8ZiXAJWJ0ew zet(Vlg^gYl+StbdJdz9+3>1bYolJ2HHEwE&wviv8p8R134V1SChmO{jqk>h&J(;`6 zF;UMvp-yOesF55QC3q$KGaT5`2_zX6?ivD`N4tQY)K)dKU~OkGFi}Ll9Yt);Fzae; zqywB_RErVJu*fHIJev$~XHMMLT%YzB5vh``u|hqTX44W)=0_8K&gigh|)p`IH^pG;;uGJXvJg@YH0yRmAcRVK)3- zy-;4ewl!S_>P}<>16RSO3INbW>Ita*bZ%H4LyBms1w~yR0H9Mw%}r9w(ZD54OFrzn zj9S@i7iAujNRZS*tMj&5yki=DO0Qq;!^#U!nc=%0w+P%RqxIVD&jk!cuy^_)JxSObfXvuvT8KqyXh`O%iqutCzsitK_*yPoirP=O{wz}&;eAS7 z`R4jB7%B@fgxKL{5`!f3lgONtIEe7eZ(Fmlo@@z*Lko!O{#F7i3rmf`8r1LKGSvGS z4*VI$c@4ArQ$N|LW_!y}o1n(gA~1IE;+-1=>J=w5V~JI_{_4o7Q3yNhUDaN=`E|$i zBpj@rI?fhejI2ACAejZ20H7j@aG-PdOxRPwz238Yo3w21s!r&}gp_L~-{$Z5MM@#4 z;2?1NL#i1VvH)faifneI<{-PD-VlLbOD*st8 zppri_YkGOEtBpN`06PV~Qs27IDndd3>J)eps7|x=F4s05mU%#{{Irtel@N7289<6} zE0ys9fOL$K$keG#nyoyq5>n1Mx2ht&sJv&XEJHgGLh{4R8?xqrtTQzYXm2ad(NU83 z`0W$DhQ|91nr$rK=n=boz6cc@8G%YMm{C`0>C0fRv#Y2%Ku&t(N;HY&()QWyz~uyN zoHjw+L&V+8!Qlp=a}rJ``S;g$`Jr9b(wB|0Y+DpRf98RX+KQJSmKp9OjEf56M@MaI z2d~XFc-W~CnbSrR;^QH9mkL(p!SS=^wSxwqRAUZo7!l5x0Z;jRr+QKw7#(?<=li~; zo}H1|a_h%^@AAEoM=wTO>kUD7GEUo_RM?StG7Mz2IGxTR>h^7H#I;;`eHQiis`PQ1 zs;V6F-flfYP-*yTwKaqgmBXi;sS&wuyghHnthZ-3y;uS!j%45^H8uBqr<=dt=CC~> zUu?V<&#OKHbuM5$L8>++M97#pT{0@n6-7OW61q^#a@@dD7(cs-y>F&`q!^JVH=N51 zlEZLx%(P94=Gw#R%B!H@4~dMHolqU}$T-wbvZFNTHmX;BRBi5|qyv7;fb;bUE+JP# z9;#w@CPg@XT%8%w5kOUV4KK;dXc{FpG(-uv>Jf?0Ce&G)(}gscO|G;o0oqo$&v0^V zeaRSz2W#w@*n@KRz6#n^zG1X>!D5oHrLzT|WcZ?mGGsbfI+(V-v9-eD;XMNP3pu2g z#p)F@G=D350Q@CjxH7+9>0Wdvd{9M*bvLy)TPNMqyMDV*k12N=+0Wo3!J;|0A;3~6S{QyUNmsBB(D ztkz2*4JyUDC;v;4gv*}%)GWfmdHaOhj=KrU)zY2bWh+4}`;-)K5O$&O(O6#WCw#<{ zWQIwG#&Jo$D6Isq*Fk_|;kR7y@vQ;QlOy=pC9nK{zbJc<9csmm^&M;= zIOL6SFb-h9kl!f-cPjCad#;}S=CSKGCPfHTSV3#eK_{TnLLemv9_mHr7+UPaAgC;%VP0ItZ zX5fti43hpo!xjsTFanP6rmpZ!HYrnb$L)h_lOIS0Au9z;wfnP z5dYgIWp(93_XL|)3|U?h*JY`{&MK^}Xu%$AjR^~BO+19xkF*^%U=b4Dv2%R=XdC~! zADXOf@Wnh1R6meZnw6R9B%;{m-4_lZ#ZWzzay~Qvf-;wI?o9iGZ8};t*?f^D$Xv@fLHlYrRt|AU)bhfm z=m%GF(7QsnMTg|YpV}$U$>J~S(7T1Na{u9N;m_Zv+|dYezOaoXy8YN5bKT8*wfC_a z`#jdEO-tTFNnrJgtGAFViyzOioqaj8EdRh_={?16RXn}HW;O4A(o#D;iSL%Wi^7S0 zk=JUz#%NOGI-?Wz1#L|)SUHOHeEI5?sOPNHt^1g#2tD3`p#Xm5aT9kXN?=I6dI|-L zxBZ&lkL5t@C$C%#TtR}}39c6?)-{>Qz}`E|`~1xCgTzH4LR44bk|tjFQG%M;Fyccr z_Mfqio|W&9t;#;XdvbzrzMxB(|5h3DWQXQ1-=T$)T@{OmjEm+HE0!TvV&*^7^!}*| z%aS2i-$hjFCC!?5%bKSI3T8B9l?QpBQ4Qo!5YH3EAtAEZ^(wLj;eC;&<_6l zq@-O#!poO0p+aNQ4s0cW<7X2#`PAGT6VD}jUfayd7eM5TR~8&6U)-1Z1`hhPjEsob zkI-Jy)MOeyaj=e`H;*I`TwTWG%Y4SGn=>p7iCp6>E7u`%flGqTbagJ&TWnx$tZD<}MG}90uLVU~Qu3Q$G31=-8W@24CoeZQ z6bYf=YJ-#xRnew-z%eERD12C07`us>vqn{%5x%x+meJ0`sCJ(ehWt9ir-?}x6r>yy z8T8iN*LQJGx^9T!&J;N>9PaKmFLU$mcqL`VgQ@t1%68QFv$;P(y|ZIAsjoV@rsxE# zE8-w3qt04KOM!P<0=K5EoLaqKH2E~uToiN|v%y>YZ#h(%PomnOzk501qwY{)Vd3oT zEFg?Kt{8Gz*`iX+oigfi{49v?Ba^MIBZngRXpMBZBKSN?Y1u=^c)vZYt*XcClI{%v zCBl?(V-!Q}^lM=VHRv_y$IO!m+!HfPxyo>uAR11#TB!N7IywTCQ?nHtt0`_;Q{Miv z1oFcwquO_xO|d61G%Tsr+ET(-t=82vfFEW9-@nLM{ID8dOlBk3{)qaWW+ra6N5{KD zl`9`(k;zjYe}M4tY*YlyNO?}=C7V|G%INQ1=^#i<+C=e4K6e{W91%n@I_)X}|3Me8 z_Prk@VO6--sYhAddue@E3n*Q>p!j|EeK2HnQiRG%f~B&mCN3t)s{JG?2Q}|-Y6?}8 zW>Wj^flowx4#Cdn6qx) zN0QqFq$pV{d=<-w_f`KbC%j`{#8WI%fNm=I&cHOKd49y8$Rl)+<&AIkSbCCwC`s3gp67qVXCu2y`!O_0d%}N$B|4XF9(!NDM)kZ z5S?Rc>-@@2z;adV3!EC)TwKP1VPZA$Gy}?Tu=Lt>XKl}iuHJtnx1p}l!K=Rr(FMsd zA@iV*CWD7b=Y~D0@5!xi?_QtmSDG6-yt(pUSfs<4X;ruK8>gwn#p%79to|+}ew|78 zbmL)SdhoVe*}Srss7UAA$@m_J5#rmsZ|bWP6&vr)G9G7e% zOqqWD*^mD_jQB%A%GcH1!DaEscA4*(|1c!`zLO)$g`bNOeC{zg_N;Ae2KxI$l(Mq2 z?B2!aKrk#f_ly^Ex8dXDWE)G%(gKAuXV~^^@8IvjtUX0*ZU$zOI$4Z2B#7?ayBCZD z5di_tBS&<})7LEu$>d``pC5nrjS)2B30TAtZdF|_Bx1iZqC$Wkq|&8>MhmZ)z|ozg z;CpaX(mWlA9;RFD62ps!fIVe=co_5jkFEskCTC|>FQ~kYyqx?- zN=jNf%x z*FRp5;&FT5o8(U)=C;P77%GQyrkgz8;)as<=do*nAopH4|AO02n845>7RnZql%irW zxOu^jJ8!{!RAtyxyKV8IgdH4N4btCj%FlLc5w97F^jrTI)fc#4E?`Ixxw)&hwzjxf(LZ9d=*6$>Tr7>OQCe%AC+BmFlT$!Q zh>L^6t-0&|{rj1j;!VhXaf2Yo>t`GqzE5tfOG<6^RadWDnxBT18n{|Urso5eCRN@= zY_IkPJLviJ3f^P>)t7X#FcN9poN84X9Xx_YYTARzk4oMThen-R0%wpjv+-Vq3ePQ1Ll zFlM!LM?{<8>;!hQv5w9(1TWbR9z@8zRbE#Q0lGhwbHiL_RNTY4r?#$+!7K#F1IIT1 zH-DL$nnLIfG;M5rTt9m4OFzyk%E+8VPXJ@a65wWBraZgO+Fz9?{<(=U^>Qd$nwl$6 z&kCUl3mgu|z26(6k&hldY8n$XmzkeT+v6j(9kk1gP9ze;!^1(ymX?;(xkI9arEmJ% zDTiR1Cq1151T7lccZ?A_TU?%*nR#nI0R?1*$99-+|IvmDon6>ue?}CzXdX;&uzrSCefvKP{YiMQF2XQgr2?0=md4OvXF)frFh}gr#L=QC$gg^S* z?Oj~Zc`n3!48%lk-rPKtGX{~>uYed8c9=q;R8&+nL|c|?8|&&K(ClF|P;%njpycZ6 zY6gihr;hDrVtUBqxx9CKP=x%H>V*rpz2Ex)$P3adRBDc(rFcMkJiqTg6!zae?Ck6e z&bo{eOGdOM;PncG?;Ga%fey{`MnLaf{#=(1IT@L_*5GYS*Pof@tQ-Z9yzK0c^IvDd z6IBSDKM9K$Y$tmw7%MA)P7Ji4Xf}KO*Rc>Dee~;<`whjR0k_V0kG(J=vU873y{t*=)G;l~UEUL}ZZ`~~&Wfc%QXz5haoX>bj=aV~VC z*#f@x1ZQSu*4C;WKxf;(FE3aAxfpLi3+eo#*WA*8#jHO>l{GEZ7rIJmoViwTQK3rljJw8vuI zJmf@xb`q}Ixm&o|J6L%LySm#62&}#7Jn(2@9b8?M8SH!~mF2`m#l<1yB_Sp)E-NK_ zMd0W6{Y=!kF7bH_tc8=S-C9cwN=lCn63QRcmEP_)w!1{R#iVwL{^y7LjFgmw6t^w+ z`ZaM`NnmDN`!Bc4#x+q<2~nWiWc>VeP5ggc6BYaK`^02G)ZdykZ0ma|% z*Cc?v@z-l&VzMw2zg`oS`R`}N#H4|K@t6DH+r(j@f4e5d;2Zqy+8J>e&hOW-?iLPC zHtuVbm^uzVHjMsba0_a?x`GZc#$la<5anVEL;W8@O%JSvJ9e$d#bwV(pV`IBdqL~s GuKxq#5CrM~ literal 0 HcmV?d00001 diff --git a/report/figures/gradplot_38bnrc.pdf b/report/figures/gradplot_38bnrc.pdf new file mode 100644 index 0000000000000000000000000000000000000000..44ad788ffaf6c9180addfac387ece8449455d752 GIT binary patch literal 62910 zcmcG#^)LVF-iJvOEYAhv7QkYvTc@w>!UECr(z`>Pup}htc{Hu; zZN2IFkax7{d2|CkZ0UJqt$eIp-0kV5q_Aw=Z2mnc^1lFb0X_;kK2|=q^aB3{$-BGx z(DVQITGPtM$JWb@Uhv;vEFMiScWWJ6A9@pHJ79UFecJ#ZdLAWLWSejP=U4WBewFCW z=y`M;tZW?J?CFL63pdn&IN4hJ&

^`2Xt;=zj+w<4q6Z{jUeINN;T2kT*pC zYeT`y-PeQuU!<}+^gLi&KSyg@Z3SfO$bY(CR&L%NR$jJl)`9;g`2RkSY>P+D*2dB5 zje7vn`+v3tgm}3{==lW%xrP3@s`(G*^M4YjZR_ps>t&71YtwQ|J@$UEs(nXysvVr=j4 zFUc4hCf@yPn34pxESidY>A>*vMdixSk(P$eI~>fvLD`WCArwDp(|g!%e!J?bot6CT zG-A0#z+Phe3-c#_dtBo=U;7q<{q2$J@yViZ*gZ7t>1oa4`QvH-leY1#)LG@XU$6JI z`-T6Q+}_TG{@u@fx|k?@q<9>Ez2hBvu9E$2_1{ zGbVX>$S=v$E6B(5>&ofF{qMXWitMM|{`AGqjntJ-f1(>Hm?ne%M1Q@%Tq(%hq%6<$ ze+yFP3jW1Vv3%D5h>Kk{LneDw82W^atN)RG>#5I;xh*D}cJAEtVK8X-vb4L0GWT4v zHT>M+T%1{3wcp96&*|qC^v>*{llz~++)7K~pG(2{LZ7SV0)4{ya?NG_5dHx`JWWB<-aK`3$+ z)b0cx^%e*ERvHZPqnvu5Twi})hgq~^s`Y#flk?z=JuL4)KibbX$N9<`P_w@IqUkm= z_X~B_ekaXL8&8k0)a$N^SU8Mft7!hxGYc zz)3_X{{9$+D|lOqco!_qTVo8IaduCbnF#8oEd3Bjr2Up|;p>vCYPDrWW!d8Bw9w^g__+L3xl~|GWxx&$5DtLpOue9{*L;t;2$U`BD&qu(vRkPcYITfqnWK^%a!2l zj`zcoFQI_!W{iCV<4=V@=)+u%k6R6RaC9m!sNBuc3Kt4Bw{wEddFCUrU8 z=HdR!_+NsNcgMx`@Ajp1&p+E~vLORUGI?*___@kX!r1YbtjS$he6`=?RS6-*NSm<2 zkNsZrgn5LOQ=0HU)aQA^@Mup)fqzjeBBQQFaYB<(ig6!6!g{NG*9EH6K6{={p}Y-j z%#0B5jH^j}ftgUqpO#sk6ndNLE)oLSIoEmm*%5mAI^0TztwG@3;r=`*k=j+xI_+jymkCvmrh^grJtpG|Fu^8 z*k}ZQ)nZw7`D(`bSNz&BGCAE*bB3XN#*Z(Fe#WA^H)m9NGb5S6+x*9bgoNCfRS#Ou zxpPOGQIpVMwossHpnFotyTVM=d0xiyK9rnu?2dZk=f^O1doR-<=l754LA~Tg+wveitn^5^bUx9BUQtb+U)NqmV!#68&3MdRGB;H=^bE2@g*CEGs#3a*{e|y{ z4iD~qEQ~pVh$3L z7)99M8k4DQU3_lJ^e^H1a!8@J;y+ zr(lSn;D2!G17fAh+5c2u_)qong7ma7_e-4}GW`qfsXgJE^-&~E$w;kbzS0wgZN92T z@YL^>i-ESC#pzrv0=<($0tyXKKa3F_zl*LS>~G4+G`50kF-asi|HA$9kDs!r_l*4t zx-bjlDHYe|t*R6%q|`9}Nex#wF`)HENQ)`NN|5JT`R8u(_U*@uP1e7+QalP(p(8hc zYhmo?Dz$-*FBU0%y>FbYYn*@Kqb2p;f+r3~qr}>9cHqVJa`5#okKNLMKb*a$q7%RI|*tg7$SokEqA%o|y@m+?SSL z|8y82fq?W^OeRYE3dq3!BTUL}!={Oj8-?n@0Gtd%E-CfN^y}B@OL}%MoFHP*& z8MrD>@5!q^`@wFDRIPgvQVsjkf?#oYFBN_T5{6RCyK608_>Z5ofBd}CJv+9Z>KCF_ zwFpA6&j;xJN0`D=jsJv6i3j0F3bUe7LPHO$uVVb47^te3kYdoz0#k%t=APY@M^`D& z8c-gVp8j81iX|AHB9nPPE~{PorM5b6>|byGHzY;Op9zXU`!L-tjHV{);agSO%>RdQ zy!lUIH9cy&N*0Dw6Ztibm&6~DW2QeIfJa)U%mN>?TtO6ibw&~q9|j^C?R_e5|(42Z41}> z5A1(>PC}_JZfKd)rh&W(>wM?GI19#(esfUll!>q zb66j9m>*8#fx|8B;F3#_*GxwL@0fUYnjs`di%C@`V@*}!y_7lV?_q*d6kh6$3Y8(- z-{T%7f6vZ|8X>u&r19mTph2z-O8LhLdpb0!c4`btiTXW$GQMDC*yH`-?So8yTteRh zB~5T8S*h&su1i2O@xeQIq^D1x$4|}0IqeaA8VoiH&^ulNQA9Ags&IF0!udLoaYIyBaQs`X3IzJq}qsox1n`9e(}i`r9Ambb4F)G*dd0 z3=1-SOm88K+=p1WPpiD{KRL|&`=`0k;^uN9BxGfV=i$!w|EHTz9TpiH@*aQ8mkd(4 z9|}3iZqJ8(-xapqg#TjB?jAMhxCy?>V#eI!dgoru6B|c}TygL0H9B2CAQU_>{`>~X z|M<9k9%h;Wcy4mGGp!=Eu=ZPMB<1h!T-%KP-BEI1bjJAGuK*_+8{Nc&LuZwBvmd|t zObjiA=YC5aX!GsP-C9%a{hT?M)EA1c&@jL{NxyiofQ)|Q*s!-Hn27WK+tsog%=S$O zyE?Vv&&frCMhB_9d7+e8?r!FM6kTrvU2xC&-FlGu?$vBRrAC2vRcT%9Ovcp3Hj}6b z6*2OmH^oGayqyB-~4Mz`@8Dt(Vjx9OzfGxZ1W*%Wxh-}T8)ZeQQh;jW*hWieTu zRpv=fELM8<)*a7~nxR<;c%L3$CQj?V%f3wzSQ@q$W_~9!+}udl8!f`#Qr^n_`u@~X z)0oZMLqDI(?sofA1K#m{ODPtHGeo)mn9dCBLGns)@k>EI|1AU~GhxW#h&3b3x840$;J7YtE1aquam(IkZN#!27YPHwT{T{(r~5d+}kg! zdouVOC2jXq?M=RaxBFYby}jjvhSB?zIUfV;kGZ3Vu%y1hnHOsUx?(()M~Kc zs$cT0?rjzH0gf+=E0DfU5}r+8rDTmOaX4lp?l-L0Eo}?^wL&Wm|s<_!f z;K&Q;mKDI+_7s(c9b$_UHjYYiuJDs^su*|!Ppf<*$9=zkk4C(PDks3Y)6v$}%c{vq zq+=VPiNJcvU?vUn4l*c$nvwCd*y6{a4YATmX(b12t{VGOlB$@Zx@vj~skVLB0;tqX zOchqWq{q2kxeSlFEqu0t8LRtN*pFPWX}O7ie#Z*rahO0$iUQERSdYSay*+RDoYWw97jhILw)JeCjs(wc@NLLl*m52oU4e35eklpTt zWVjUa`B~c!EkI-0lB1TVO`J=2F|cCqswzv_#resgiX2Y7q|9FhCEI-QD8OF98~*MX zC6*l8<>!VPORnl7KuStf%-YaaVhP_;{P@gx0J2@|Ti4-k2|`uaztk{9h$9?}%`5>; znrL#!BofnRovsW37s1|5&~9PXK$u+5fp4pBlc9&5 zD=8`en`r&7Xr$+FFO8uXoX=;lx!bWhwdpoFIUy2MpUXuJU9M<_s}ymD%j#%JJb^#M zH8ph0%wKc=#zc*wS*w<=LYK?)l2^kcW+{nxl!lYlG31GMp~<-<_%3=VetylS%QzTE z>{6E%IIg-f5_21BR5xP?=tr4@xXz2|BRmy=qo_pKvK>|+&v}X^;xAcH>%$XTq9FX1 zG$JDSU(0nHe^8O3=dWukw3vWoD@9@}X~2Ytv8K($G~o|iVmL~}zHc}r(aWtVi#*J3 z0Rj{njj0-qjJdLLrS|YfVy(=vd_M$$Nln5S{Ndgd8J%NK`VIm|u=S&}Tv$Aea(TV1q&RGGOGICL* zdZj>fVFD|f3|#i-Cfcn<&_Em!3+q}L0FmDN?=OZY=k%Ai?4<$G0}V3CA$VC#!kXZw zUgi=Mxw;m{(h?a!5ahfFimIF8u^0|yUTP|WF7zkp3F#x`P0i{QpW-vnrioc0@AVPY z(tu-JanG(Wpe1XzVY1un;(Bm4s@&KBt13dJTB$@74OVUbYBX@ef%515pQt281 zfRSwxDH=d$upM}clHi<=#hZBn1!xDM5(|vElYDCg$V34bO$=5M0mAs1MhCusKu|!8 zb7wJO%UJTX$A*@vmAwsmS0BJV=5g-5j2fVhAit#Lfabgn83@O%=bSXeEc&UlT^|)@ z_&2HY;`(s5COI>WTaWr~G*XV&9;a@{w~ zX#T5rm;i+e+~{c86Bn73VhxeHR;*Q}H$;rj%NE<6&YE7CTCfR5MlUbbZau)FITqS~ zx#?8Om^Km9LX58FC20@n8T!LzU3xsDN7+4NTpdnrv2e424O#^wMGWd?Mv>6;37Y7v zz1b%J$quVof+l_tyhcuz+Q2TG6j$89zt>jX^S);G12lj|g5jEqGJ(dSzylf?$KX1* zZME(hH#ihG7nFXLIXq-s?o@I{Q29hrGBT9+-Q4Azx8;)Aj|3aKT%!MG;29))`QZVL z;8H!33XD+gK^lx4Vp8Y$8#6fQj|)w_jD8N@5y6A)KZinD7QJcTD+W=kjvb)@P+1j} z(V(v7O)qwdfrJq>Kt2HJknuDY0M25${ds8faE<`fK$#MSfRh@VuK;mjG$J3Pexeed zN1Jv=Q8Ts|Fd0hG!}%u>&2w6iJ+2%!mIle!BxH;`c!rhEo5A!DYfTy^Kn;rL0V&!o zo-|nGgJ)u!i8SJ~)}s2m=RkB!vbj}x9C|*YRo}Q#zO^*|0u;FqlSazvEUX!}T6r|A z2}Ugle->6qqJ!_EN)mL+tMH|ibaKcC(Fra6Fkmf;b%X53=W>%v0!-*yMWd4T%i$1P z^Y)1YTWP>-hb}Xo=ALm?N;VvAIL>wzhg1Kc7hgrhKffNoyxdj`sWe;qj~P z9!=cX+hW2jC&L%aQ5@`igL+j^0Kz5nq(xp%6&f#s!On*gMh16l&`f4&cd!P>q1s;x zdXATxE>vY@+a>!t9K&wCOw}JnJN=!A~C(#-bvO`RT-N!FX#PS?)<}n)qoM!j!-N4s8iLCzBNiQ1#47XJxanwYF z{&LP0lL0{vO%~ZlJjnuhb=b{lgRrIl);GxCR%&weOWew#$f1)Izn%OZc z1`?1Zo1RyZQ_LW)z0`GGP+Q2X3S{Lf0zRC3mq6aoi(T{-K~58A3ag+5?8>?};c`7Q z9+;$umZ_={F(ExE%dFgr0w|l*xoyY1<8YB-25#*6t7*Y}Tz0>e7%q0mz>Ucd;^=VXY9{SMnuaU~ zm()K)paPE+n3>p2Rb9|5xIaS6Q@A)&stDfHA~Q!(OkQQ^>49bz3)4!8!6G*5 z8|zR66cUuApvy_<-?SlYQ+_c3@aNpafa)gUAv4kd)Hqhtm?%mj)JH#cbRw!*MrDT* z-eihz-^qn;r6M#Qy*`E!i%4kvUcMaz93I$tw#CWF z&HO$b++((Wno@rc4? ztx#*D5Pw7nSivWRu7=V!N2jDrc6{z!^eHiv+$%coyt9SFaocTBzTive+31h70obGw zjwF>cDLC}auQ?Oo+<{mhoxH9QvV9Ay24a&@uz+*tuw!0;^F1ZA-3!gJt!*IT7Gmd| zmq}@WLIP3jPNslMYuCUR87&b$NzX_S5&iNW?YB=B`STmk39;eL8z>FF#0$hT%*%LR z1(>oip4th;tokA)H5MfrdL9iRO>uz?5f zU-j?j?IZ)T>|q!hV8lBP=Y}fQWSczZ1&m0ji?bP1&7YI`qd4-7IsoAJ{__hNAVy%# zq$9q748D}7v2s&60xq&OxGE|OK1sU}Qy1AIrLv*>8u0Q1EVkkTAzScp$bFL^pm_hh zlp!`+wN;2A%27g9$1s{5d=j^FQKL#O;le-eA#v{E;f;6wMs%3EU?mbN!LguLru80r z%~bb=hyWluEZL1iuV19Ll&ABv$B>Im!X~+WjQ~*jLVu6xqYi9t>?C4@OP*2=CGMc|>3AT8nP-X#`(EU~BRPMR@2%pHe51+U^rFr9)ty9p0p)}MJ}uOS$WPk-+fz>1+78GV~*!e;dh05EM|K#U8fSL`nCU2UaPim2ww zIB$6*nb>YMZIiz?T}?wPl&Xx!KVDT~VhkE&kcvC^VUPRV43+3o$=UH!DrKNYJC-p2 zL@>%Evx^zE%#9Ao+WEwLl9s2GBeZC`iiU$RCqRjFXM%!4hKtVP=rfr!?P0K)^JYjt zx|Y%Fe5;O+dp>6})%B~xsH@E+Hfi%)=WIb&5^Y%@thmYEaS}q7i7M?*PfHOS2#uwP z;$9NhOp%rAaJeen3=F1uxJQY~`r0Ok8U^PY&}3?m9B4}QWcU#|qn52+@Ey{~Y&-5D zuH39$YBkhn=tJY_QK8H|`pF8bSp-kQrYwCwOwUIo{24R>@8M-{pdGGV#Jb@E;6Xob z`HY~d13M0bT7No=i&d9m4#md9`Rs~h&42p7XdT#4(e zE}&Yvjugjp#50`<@@s=W@I6C2(1mmWEm|a`9h)4Y?S@qmj|Y-6&Q$zCg_m=l0zzZ| z^`}IBDEdG)j6wEotumq&LRK4siD%@@ijK>60%(43ySP;$9{(0;DPwXiNMLAy^mswbV^~v8E^9YUxTtI%=7&A_|Ql~867!< zkU&bA8y67b%S=YA-@N$Zn;@_`YLgQvL<)d3&;pL3RM8|r!bl!lgz?!_g2~)sV6(9s zE@W(L0vcTYvz*(Bz*E=iFAY@W<#~(6IF$U|m=3#Y*~eECMahY9oI+>N>PHW3`AmeW*Josh z`?QKhSO6W3x7NpWRecXF0<$Jl0^k&5�W#2*%srAnx*kiylf@%^w%_2Gb^EqEMI6 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π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 U*85=j1N#mJ3E}2e(Nl%|9~n&5RR910 literal 0 HcmV?d00001 diff --git a/report/mlp-cw1-questions.tex b/report/mlp-cw1-questions.tex deleted file mode 100644 index d0f731f..0000000 --- a/report/mlp-cw1-questions.tex +++ /dev/null @@ -1,231 +0,0 @@ -%% REPLACE SXXXXXX with your student number -\def\studentNumber{SXXXXXX} - - -%% START of YOUR ANSWERS -%% Add answers to the questions below, by replacing the text inside the brackets {} for \youranswer{ "Text to be replaced with your answer." }. -% -% Do not delete the commands for adding figures and tables. Instead fill in the missing values with your experiment results, and replace the images with your own respective figures. -% -% You can generally delete the placeholder text, such as for example the text "Question Figure 2 - Replace the images ..." -% -% There are 18 TEXT QUESTIONS (a few of the short first ones have their answers added to both the Introduction and the Abstract). Replace the text inside the brackets of the command \youranswer with your answer to the question. -% -% There are also 3 "questions" to replace some placeholder FIGURES with your own, and 3 "questions" asking you to fill in the missing entries in the TABLES provided. -% -% NOTE! that questions are ordered by the order of appearance of their answers in the text, and not by the order you should tackle them. Specifically, you cannot answer Questions 2, 3, and 4 before concluding all of the relevant experiments and analysis. Similarly, you should fill in the TABLES and FIGURES before discussing the results presented there. -% -% NOTE! If for some reason you do not manage to produce results for some FIGURES and TABLES, then you can get partial marks by discussing your expectations of the results in the relevant TEXT QUESTIONS (for example Question 8 makes use of Table 1 and Figure 2). -% -% Please refer to the coursework specification for more details. - - -%% - - - - - - - - - - - - TEXT QUESTIONS - - - - - - - - - - - - - - - -%% Question 1: -\newcommand{\questionOne} { -\youranswer{Question 1 - Explain what these figures contain and how the curves evolve, and spot where overfitting occurs. Reason based on the min/max points and velocities (direction and magnitude of change) of the accuracy and error curves} -} - -%% Question 2: -\newcommand{\questionTwo} { -\youranswer{Question 2 - Present your network width experiment results by using the relevant figure and table} -} - -%% Question 3: -\newcommand{\questionThree} { -\youranswer{Question 3 - Discuss whether varying width affects the results in a consistent way, and whether the results are expected and match well with the prior knowledge (by which we mean your expectations as are formed from the relevant Theory and literature)} -} - -%% Question 4: -\newcommand{\questionFour} { -\youranswer{Question 4 - Present your network depth experiment results by using the relevant figure and table} -} - -%% Question 5: -\newcommand{\questionFive} { -\youranswer{Question 5 - Discuss whether varying depth affects the results in a consistent way, and whether the results are expected and match well with the prior knowledge (by which we mean your expectations as are formed from the relevant Theory and literature)} -} - - - - - -%% Question 6: -\newcommand{\questionSix} { -\youranswer{Question 6 - Explain the experimental details (e.g. hyperparameters), discuss the results in terms of their generalisation performance and overfitting. Select and test the best performing model as part of this analysis.} -} - -%% Question 7: -\newcommand{\questionSeven} { -\youranswer{Question 7 - Assume you were able to run 8 further training instances (8 specific hyperparameter configurations) where you could combine Dropout and L1, and/or Dropout and L2 regularisation. Which 8 runs would you pick and what question(s) would you aim to answer? Make sure you define the experiment setup, including any relevant hyperparameters} -} - - - -%% Question 8: -\newcommand{\questionEight} { -\youranswer{Question 8 - Briefly draw your conclusions based on the results from the previous sections (what are the take-away messages?), discussing them in the context of the overall literature, and conclude your report with a recommendation for future directions} -} - -%% - - - - - - - - - - - - FIGURES - - - - - - - - - - - - - -%% Question Figure 2: -\newcommand{\questionFigureTwo} { -\youranswer{Question Figure 2 - Replace the images in Figure 2 with figures depicting the accuracy and error, training and validation curves for your experiments varying the number of hidden units. -% -\begin{figure}[t] - \centering - \begin{subfigure}{\linewidth} - \includegraphics[width=\linewidth]{figures/empty_acc_curve_width.png} - \caption{accuracy by epoch} - \label{fig:width_acccurves} - \end{subfigure} - \begin{subfigure}{\linewidth} - \centering - \includegraphics[width=\linewidth]{figures/empty_error_curve_width.png} - \caption{error by epoch} - \label{fig:width_errorcurves} - \end{subfigure} - \caption{Training and validation curves in terms of classification accuracy (a) and cross-entropy error (b) on the EMNIST dataset for different network widths.} - \label{fig:width} -\end{figure} -} -} - -%% Question Figure 3: -\newcommand{\questionFigureThree} { -\youranswer{Question Figure 3 - Replace these images with figures depicting the accuracy and error, training and validation curves for your experiments varying the number of hidden layers. -% -\begin{figure}[t] - \centering - \begin{subfigure}{\linewidth} - \includegraphics[width=\linewidth]{figures/empty_acc_curve_depth.png} - \caption{accuracy by epoch} - \label{fig:depth_acccurves} - \end{subfigure} - \begin{subfigure}{\linewidth} - \centering - \includegraphics[width=\linewidth]{figures/empty_error_curve_depth.png} - \caption{error by epoch} - \label{fig:depth_errorcurves} - \end{subfigure} - \caption{Training and validation curves in terms of classification accuracy (a) and cross-entropy error (b) on the EMNIST dataset for different network depths.} - \label{fig:depth} -\end{figure} -} -} - -%% Question Figure 4: -\newcommand{\questionFigureFour} { -\youranswer{Question Figure 4 - Replace these images with figures depicting the Validation Accuracy and Generalisation Gap (difference between validation and training error) for each of the experiment results varying the Dropout inclusion rate, and L1/L2 weight penalty depicted in Table 3 (including any results you have filled in). -% -\begin{figure*}[t] - \centering - \begin{subfigure}{.475\linewidth} - \includegraphics[width=\linewidth]{figures/empty_dropout_plot.png} - \caption{Accuracy and error by inclusion probability.} - \label{fig:dropoutrates} - \end{subfigure} - \begin{subfigure}{.475\linewidth} - \centering - \includegraphics[width=\linewidth]{figures/empty_wd_plot.png} - \caption{Accuracy and error by weight penalty.} - \label{fig:weightrates} - \end{subfigure} - \caption{Accuracy and error by regularisation strength of each method (Dropout and L1/L2 Regularisation).} - \label{fig:hp_search} -\end{figure*} -} -} - -%% - - - - - - - - - - - - TABLES - - - - - - - - - - - - - -%% Question Table 1: -\newcommand{\questionTableOne} { -\youranswer{ -Question Table 1 - Fill in Table 1 with the results from your experiments varying the number of hidden units. -% -\begin{table}[t] - \centering - \begin{tabular}{c|ccc} - \toprule - \# Hidden Units & Val. Acc. & Train Error & Val. Error\\ - \midrule - 32 & --.- & -.--- & -.--- \\ - 64 & --.- & -.--- & -.--- \\ - 128 & --.- & -.--- & -.--- \\ - \bottomrule - \end{tabular} - \caption{Validation accuracy (\%) and training/validation error (in terms of cross-entropy error) for varying network widths on the EMNIST dataset.} - \label{tab:width_exp} -\end{table} -} -} - -%% Question Table 2: -\newcommand{\questionTableTwo} { -\youranswer{ -Question Table 2 - Fill in Table 2 with the results from your experiments varying the number of hidden layers. -% -\begin{table}[t] - \centering - \begin{tabular}{c|ccc} - \toprule - \# Hidden Layers & Val. Acc. & Train Error & Val. Error \\ - \midrule - 1 & --.- & -.--- & -.--- \\ - 2 & --.- & -.--- & -.--- \\ - 3 & --.- & -.--- & -.--- \\ - \bottomrule - \end{tabular} - \caption{Validation accuracy (\%) and training/validation error (in terms of cross-entropy error) for varying network depths on the EMNIST dataset.} - \label{tab:depth_exps} -\end{table} -} -} - -%% Question Table 3: -\newcommand{\questionTableThree} { -\youranswer{ -Question Table 3 - Fill in Table 3 with the results from your experiments for the missing hyperparameter values for each of L1 regularisation, L2 regularisation, Dropout and label smoothing (use the values shown on the table). -% -\begin{table*}[t] - \centering - \begin{tabular}{c|c|ccc} - \toprule - Model & Hyperparameter value(s) & Validation accuracy & Train Error & Validation Error \\ - \midrule - \midrule - Baseline & - & 0.837 & 0.241 & 0.533 \\ - \midrule - \multirow{4}*{Dropout} - & 0.6 & 80.7 & 0.549 & 0.593 \\ - & 0.7 & --.- & -.--- & -.--- \\ - & 0.85 & 85.1 & 0.329 & 0.434 \\ - & 0.97 & 85.4 & 0.244 & 0.457 \\ - \midrule - \multirow{4}*{L1 penalty} - & 5e-4 & 79.5 & 0.642 & 0.658 \\ - & 1e-3 & --.- & -.--- & -.--- \\ - & 5e-3 & 2.41 & 3.850 & 3.850 \\ - & 5e-2 & 2.20 & 3.850 & 3.850 \\ - \midrule - \multirow{4}*{L2 penalty} - & 5e-4 & 85.1 & 0.306 & 0.460 \\ - & 1e-3 & --.- & -.--- & -.--- \\ - & 5e-3 & 81.3 & 0.586 & 0.607 \\ - & 5e-2 & 39.2 & 2.258 & 2.256 \\ - \midrule - Label smoothing & 0.1 & --.- & -.--- & -.--- \\ - \bottomrule - \end{tabular} - \caption{Results of all hyperparameter search experiments. \emph{italics} indicate the best results per series (Dropout, L1 Regularisation, L2 Regularisation, Label smoothing) and \textbf{bold} indicates the best overall.} - \label{tab:hp_search} -\end{table*} -} -} - -%% END of YOUR ANSWERS \ No newline at end of file diff --git a/report/mlp-cw1-template.tex b/report/mlp-cw1-template.tex deleted file mode 100644 index 33224c9..0000000 --- a/report/mlp-cw1-template.tex +++ /dev/null @@ -1,238 +0,0 @@ -%% Template for MLP Coursework 1 / 14 October 2024 - -%% Based on LaTeX template for ICML 2017 - example_paper.tex at -%% https://2017.icml.cc/Conferences/2017/StyleAuthorInstructions - -\documentclass{article} -\input{mlp2022_includes} - - -\definecolor{red}{rgb}{0.95,0.4,0.4} -\definecolor{blue}{rgb}{0.4,0.4,0.95} -\definecolor{orange}{rgb}{1, 0.65, 0} - -\newcommand{\youranswer}[1]{{\color{red} \bf[#1]}} %your answer: - - -%% START of YOUR ANSWERS -\input{mlp-cw1-questions} -%% END of YOUR ANSWERS - - - -%% Do not change anything in this file. Add your answers to mlp-cw1-questions.tex - - - -\begin{document} - -\twocolumn[ -\mlptitle{MLP Coursework 1} -\centerline{\studentNumber} -\vskip 7mm -] - - -\begin{abstract} -In this report we study the problem of overfitting, which is the training regime where performance increases on the training set but decrease on validation data. Overfitting prevents our trained model from generalizing well to unseen data. -We first analyse the given example and discuss the probable causes of the underlying problem. -Then we investigate how the depth and width of a neural network can affect overfitting in a feedforward architecture and observe that increasing width and depth tend to enable further overfitting. -Next we discuss how two standard methods, Dropout and Weight Penalty, can -mitigate overfitting, then describe their implementation and use them in our experiments -to reduce the overfitting on the EMNIST dataset. -Based on our results, we ultimately find that both dropout and weight penalty are able to mitigate overfitting. -Finally, we conclude the report with our observations and related work. -Our main findings indicate that preventing overfitting is achievable through regularization, although combining different methods together is not straightforward. -\end{abstract} - - -\section{Introduction} -\label{sec:intro} -In this report we focus on a common and important problem while training machine learning models known as overfitting, or overtraining, which is the training regime where performances increase on the training set but decrease on unseen data. -We first start with analysing the given problem in Figure~\ref{fig:example}, study it in different architectures and then investigate different strategies to mitigate the problem. -In particular, Section~\ref{sec:task1} identifies and discusses the given problem, and investigates the effect of network width and depth in terms of generalization gap (see Ch.~5 in \citealt{Goodfellow-et-al-2016}) and generalization performance. -Section \ref{sec:task2.1} introduces two regularization techniques to alleviate overfitting: Dropout \cite{srivastava2014dropout} and L1/L2 Weight Penalties (see Section~7.1 in \citealt{Goodfellow-et-al-2016}). -We first explain them in detail and discuss why they are used for alleviating overfitting. -In Section~\ref{sec:task2.2}, we incorporate each of them and their various combinations to a three hidden layer\footnote{We denote all layers as hidden except the final (output) one. This means that depth of a network is equal to the number of its hidden layers + 1.} neural network, train it on the EMNIST dataset, which contains 131,600 images of characters and digits, each of size 28x28, from 47 classes. -We evaluate them in terms of generalization gap and performance, and discuss the results and effectiveness of the tested regularization strategies. -Our results show that both dropout and weight penalty are able to mitigate overfitting. - -Finally, we conclude our study in Section~\ref{sec:concl}, noting that preventing overfitting is achievable through regularization, although combining different methods together is not straightforward. - - -\section{Problem identification} -\label{sec:task1} - -\begin{figure}[t] - \centering - \begin{subfigure}{\linewidth} - \includegraphics[width=\linewidth]{figures/fig1_acc.png} - \caption{accuracy by epoch} - \label{fig:example_acccurves} - \end{subfigure} - \begin{subfigure}{\linewidth} - \centering - \includegraphics[width=\linewidth]{figures/fig1_err.png} - \caption{error by epoch} - \label{fig:example_errorcurves} - \end{subfigure} - \caption{Training and validation curves in terms of classification accuracy (a) and cross-entropy error (b) on the EMNIST dataset for the baseline model.} - \label{fig:example} -\end{figure} - -Overfitting to training data is a very common and important issue that needs to be dealt with when training neural networks or other machine learning models in general (see Ch.~5 in \citealt{Goodfellow-et-al-2016}). -A model is said to be overfitting when as the training progresses, its performance on the training data keeps improving, while its is degrading on validation data. -Effectively, the model stops learning related patterns for the task and instead starts to memorize specificities of each training sample that are irrelevant to new samples. -Overfitting leads to bad generalization performance in unseen data, as performance on validation data is indicative of performance on test data and (to an extent) during deployment. - -Although it eventually happens to all gradient-based training, it is most often caused by models that are too large with respect to the amount and diversity of training data. The more free parameters the model has, the easier it will be to memorize complex data patterns that only apply to a restricted amount of samples. -A prominent symptom of overfitting is the generalization gap, defined as the difference between the validation and training error. -A steady increase in this quantity is usually interpreted as the model entering the overfitting regime. - - -Figure~\ref{fig:example_acccurves} and \ref{fig:example_errorcurves} show a prototypical example of overfitting. -We see in Figure~\ref{fig:example_acccurves} that \questionOne. - -The extent to which our model overfits depends on many factors. -For example, the quality and quantity of the training set and the complexity of the model. -If we have sufficiently many diverse training samples, or if our model contains few hidden units, it will in general be less prone to overfitting. -Any form of regularization will also limit the extent to which the model overfits. - - -\subsection{Network width} - -\questionTableOne -\questionFigureTwo - -First we investigate the effect of increasing the number of hidden units in a single hidden layer network when training on the EMNIST dataset. -The network is trained using the Adam optimizer -with a learning rate of $9 \times 10^{-4}$ and a batch size of 100, for a total of 100 epochs. - -The input layer is of size 784, and output layer consists of 47 units. -Three different models were trained, with a single hidden layer of 32, 64 and 128 ReLU hidden units respectively. -Figure~\ref{fig:width} depicts the error and accuracy curves over 100 epochs for the model with varying number of hidden units. -Table~\ref{tab:width_exp} reports the final accuracy, training error, and validation error. -We observe that \questionTwo. - -\questionThree. - - -\subsection{Network depth} - -\questionTableTwo -\questionFigureThree - -Next we investigate the effect of varying the number of hidden layers in the network. -Table~\ref{tab:depth_exps} and Figure~\ref{fig:depth} depict results from training three models with one, two and three hidden layers respectively, each with 128 ReLU hidden units. -As with previous experiments, they are trained with the Adam optimizer with a learning rate of $9 \times 10^{-4}$ and a batch size of 100. - -We observe that \questionFour. - -\questionFive. - - - - -\section{Regularization} -\label{sec:task2.1} - -In this section, we investigate three regularization methods to alleviate the overfitting problem, specifically dropout layers, the L1 and L2 weight penalties and label smoothing. - - -\subsection{Dropout} - -Dropout~\cite{srivastava2014dropout} is a stochastic method that randomly inactivates neurons in a neural network according to an hyperparameter, the inclusion rate (\textit{i.e.} the rate that an unit is included). -Dropout is commonly represented by an additional layer inserted between the linear layer and activation function. -Its forward pass during training is defined as follows: -\begin{align} - \text{mask} &\sim \text{bernoulli}(p)\\ - \bm{y}' &= \text{mask} \odot \bm{y}\ -\end{align} -where $\bm{y}, \bm{y}' \in \mathbb{R}^d$ are the output of the linear layer before and after applying dropout, respectively. -$\text{mask} \in \mathbb{R}^d$ is a mask vector randomly sampled from the Bernoulli distribution with inclusion probability $p$, and $\odot$ denotes the element-wise multiplication. - -At inference time, stochasticity is not desired, so no neurons are dropped. -To account for the change in expectations of the output values, we scale them down by the inclusion probability $p$: -\begin{align} - \bm{y}' &= \bm{y}*p\ -\end{align} - -As there is no nonlinear calculation involved, the backward propagation is just the element-wise product of the gradients with respect to the layer outputs and mask created in the forward calculation. -The backward propagation for dropout is therefore formulated as follows: -\begin{align} - \frac{\partial \bm{y}'}{\partial \bm{y}} = mask -\end{align} - -Dropout is an easy to implement and highly scalable method. -It can be implemented as a layer-based calculation unit, and be placed on any layer of the neural network at will. -Dropout can reduce the dependence of hidden units between layers so that the neurons of the next layer will not rely on only few features from of the previous layer. -Instead, it forces the network to extract diverse features and evenly distribute information among all features. -By randomly dropping some neurons in training, dropout makes use of a subset of the whole architecture, so it can also be viewed as bagging different sub networks and averaging their outputs. - - -\subsection{Weight penalty} - -L1 and L2 regularization~\cite{ng2004feature} are simple but effective methods to mitigate overfitting to training data. -The application of L1 and L2 regularization strategies could be formulated as adding penalty terms with L1 and L2 norm square of weights in the cost function without changing other formulations. -The idea behind this regularization method is to penalize the weights by adding a term to the cost function, and explicitly constrain the magnitude of the weights with either the L1 and L2 norms. -The optimization problem takes a different form: -\begin{align} - \text{L1: } & \text{min}_{\bm{w}} \; E_{\text{data}}(\bm{X}, \bm{y}, \bm{w}) + \lambda ||w||_1\\ - \text{L2: } & \text{min}_{\bm{w}} \; E_{\text{data}}(\bm{X}, \bm{y}, \bm{w}) + \lambda ||w||^2_2 -\end{align} -where $E_{\text{data}}$ denotes the cross entropy error function, and $\{\bm{X}, \bm{y}\}$ denotes the input and target training pairs. -$\lambda$ controls the strength of regularization. - -Weight penalty works by constraining the scale of parameters and preventing them to grow too much, avoiding overly sensitive behaviour on unseen data. -While L1 and L2 regularization are similar to each other in calculation, they have different effects. -Gradient magnitude in L1 regularization does not depend on the weight value and tends to bring small weights to 0, which can be used as a form of feature selection, whereas L2 regularization tends to shrink the weights to a smaller scale uniformly. - - -\subsection{Label smoothing} -Label smoothing regularizes a model based on a softmax with $K$ output values by replacing the hard target 0 labels and 1 labels with $\frac{\alpha}{K-1}$ and $1-\alpha$ respectively. -$\alpha$ is typically set to a small number such as $0.1$. -\begin{equation} - \begin{cases} - \frac{\alpha}{K-1}, & \quad \text{if} \quad t_k=0\\ - 1 - \alpha, & \quad \text{if} \quad t_k=1 - \end{cases} -\end{equation} -The standard cross-entropy error is typically used with these \emph{soft} targets to train the neural network. -Hence, implementing label smoothing requires only modifying the targets of training set. -This strategy may prevent a neural network to obtain very large weights by discouraging very high output values. - -\section{Balanced EMNIST Experiments} - -\questionTableThree - -\questionFigureFour - -\label{sec:task2.2} - -Here we evaluate the effectiveness of the given regularization methods for reducing the overfitting on the EMNIST dataset. -We build a baseline architecture with three hidden layers, each with 128 neurons, which suffers from overfitting as shown in section \ref{sec:task1}. - -Here we train the network with a lower learning rate of $10^{-4}$, as the previous runs were overfitting after only a handful of epochs. -Results for the new baseline (c.f. Table~\ref{tab:hp_search}) confirm that lower learning rate helps, so all further experiments are run using it. - -Here, we apply the L1 or L2 regularization with dropout to our baseline and search for good hyperparameters on the validation set. -Then, we apply the label smoothing with $\alpha=0.1$ to our baseline. -We summarize all the experimental results in Table~\ref{tab:hp_search}. For each method except the label smoothing, we plot the relationship between generalization gap and validation accuracy in Figure~\ref{fig:hp_search}. - -First we analyze three methods separately, train each over a set of hyperparameters and compare their best performing results. - -\questionSix. - -\questionSeven. - - -\section{Conclusion} -\label{sec:concl} - -\questionEight. - -\newpage -\bibliography{refs} - -\end{document} - diff --git a/report/mlp-cw2-questions.tex b/report/mlp-cw2-questions.tex new file mode 100644 index 0000000..c300793 --- /dev/null +++ b/report/mlp-cw2-questions.tex @@ -0,0 +1,148 @@ +%% REPLACE sXXXXXXX with your student number +\def\studentNumber{sXXXXXXX} + + +%% START of YOUR ANSWERS +%% Add answers to the questions below, by replacing the text inside the brackets {} for \youranswer{ "Text to be replaced with your answer." }. +% +% Do not delete the commands for adding figures and tables. Instead fill in the missing values with your experiment results, and replace the images with your own respective figures. +% +% You can generally delete the placeholder text, such as for example the text "Question Figure 3 - Replace the images ..." +% +% There are 5 TEXT QUESTIONS. Replace the text inside the brackets of the command \youranswer with your answer to the question. +% +% There are also 3 "questions" to replace some placeholder FIGURES with your own, and 1 "question" asking you to fill in the missing entries in the TABLE provided. +% +% NOTE! that questions are ordered by the order of appearance of their answers in the text, and not necessarily by the order you should tackle them. You should attempt to fill in the TABLE and FIGURES before discussing the results presented there. +% +% NOTE! If for some reason you do not manage to produce results for some FIGURES and the TABLE, then you can get partial marks by discussing your expectations of the results in the relevant TEXT QUESTIONS. The TABLE specifically has enough information in it already for you to draw meaningful conclusions. +% +% Please refer to the coursework specification for more details. + + +%% - - - - - - - - - - - - TEXT QUESTIONS - - - - - - - - - - - - + +%% Question 1: +\newcommand{\questionOne} { +\youranswer{Question 1 - Use Figures 1, 2, and 3 to identify the Vanishing Gradient Problem (which of these model suffers from it, and what are the consequences depicted?). + +The average length for an answer to this question is approximately 1/5 of the columns in a 2-column page} +} + +%% Question 2: +\newcommand{\questionTwo} { +\youranswer{Question 2 - Consider these results (including Figure 1 from \cite{he2016deep}). Discuss the relation between network capacity and overfitting, and whether, and how, this is reflected on these results. What other factors may have lead to this difference in performance? + +The average length for an answer to this question is +approximately 1/5 of the columns in a 2-column page} +} + +%% Question 3: +\newcommand{\questionThree} { +\youranswer{Question 3 - In this coursework, we didn't incorporate residual connections to the downsampling layers. Explain and justify what would need to be changed in order to add residual connections to the downsampling layers. Give and explain 2 ways of incorporating these changes and discuss pros and cons of each. +} +} + +%% Question 4: +\newcommand{\questionFour} { +\youranswer{Question 4 - Present and discuss the experiment results (all of the results and not just the ones you had to fill in) in Table 1 and Figures 4 and 5 (you may use any of the other Figures if you think they are relevant to your analysis). You will have to determine what data are relevant to the discussion, and what information can be extracted from it. Also, discuss what further experiments you would have ran on any combination of VGG08, VGG38, BN, RC in order to +\begin{itemize} + \item Improve performance of the model trained (explain why you expect your suggested experiments will help with this). + \item Learn more about the behaviour of BN and RC (explain what you are trying to learn and how). +\end{itemize} + +The average length for an answer to this question is approximately 1 of the columns in a 2-column page +} +} + + +%% Question 5: +\newcommand{\questionFive} { +\youranswer{Question 5 - Briefly draw your conclusions based on the results from the previous sections (what are the take-away messages?) and conclude your report with a recommendation for future work. + +Good recommendations for future work also draw on the broader literature (the papers already referenced are good starting points). Great recommendations for future work are not just incremental (an example of an incremental suggestion would be: ``we could also train with different learning rates'') but instead also identify meaningful questions or, in other words, questions with answers that might be somewhat more generally applicable. + +For example, \citep{huang2017densely} end with \begin{quote}``Because of their compact internal representations and reduced feature redundancy, DenseNets may be good feature extractors for various computer vision tasks that build on convolutional features, e.g., [4,5].''\end{quote} + +while \cite{bengio1993problem} state in their conclusions that \begin{quote}``There remains theoretical questions to be considered, such as whether the problem with simple gradient descent discussed in this paper would be observed with chaotic attractors that are not hyperbolic.''\\\end{quote} + +The length of this question description is indicative of the average length of a conclusion section} +} + + +%% - - - - - - - - - - - - FIGURES - - - - - - - - - - - - + +%% Question Figure 3: +\newcommand{\questionFigureThree} { +\youranswer{Question Figure 3 - Replace this image with a figure depicting the average gradient across layers, for the VGG38 model. + +\textit{(The provided figure is correct, and can be used in your analysis. It is partially obscured so you can get credit for producing your own copy).} +% +\begin{figure}[t] + \centering + \includegraphics[width=\linewidth]{figures/gradplot_38_watermarked.pdf} + \caption{Gradient Flow on VGG38} + \label{fig:avg_grad_flow_38} +\end{figure} +} +} + +%% Question Figure 4: +\newcommand{\questionFigureFour} { +\youranswer{Question Figure 4 - Replace this image with a figure depicting the training curves for the model with the best performance \textit{across experiments you have available (you don't need to run the experiments for the models we already give you results for)}. Edit the caption so that it clearly identifies the model and what is depicted. +% +\begin{figure}[t] + \centering + \includegraphics[width=\linewidth]{example-image-duck} + \caption{Training curves for ? ? ?} + \label{fig:training_curves_bestModel} +\end{figure} +} +} + +%% Question Figure 5: +\newcommand{\questionFigureFive} { +\youranswer{Question Figure 5 - Replace this image with a figure depicting the average gradient across layers, for the model with the best performance \textit{across experiments you have available (you don't need to run the experiments for the models we already give you results for)}. Edit the caption so that it clearly identifies the model and what is depicted. +% +\begin{figure}[t] + \centering + \includegraphics[width=\linewidth]{example-image-duck} + \caption{Gradient Flow on ? ? ?} + \label{fig:avg_grad_flow_bestModel} +\end{figure} +} +} + +%% - - - - - - - - - - - - TABLES - - - - - - - - - - - - + +%% Question Table 1: +\newcommand{\questionTableOne} { +\youranswer{ +Question Table 1 - Fill in Table 1 with the results from your experiments on +\begin{enumerate} + \item \textit{VGG38 BN (LR 1e-3)}, and + \item \textit{VGG38 BN + RC (LR 1e-2)}. +\end{enumerate} +% +\begin{table*}[t] + \centering + \begin{tabular}{lr|ccccc} + \toprule + Model & LR & \# Params & Train loss & Train acc & Val loss & Val acc \\ + \midrule + VGG08 & 1e-3 & 60 K & 1.74 & 51.59 & 1.95 & 46.84 \\ + VGG38 & 1e-3 & 336 K & 4.61 & 00.01 & 4.61 & 00.01 \\ + VGG38 BN & 1e-3 & ? & ? & ? & ? & ? \\ + VGG38 RC & 1e-3 & 336 K & 1.33 & 61.52 & 1.84 & 52.32 \\ + VGG38 BN + RC & 1e-3 & 339 K & 1.26 & 62.99 & 1.73 & 53.76 \\ + VGG38 BN & 1e-2 & 339 K & 1.70 & 52.28 & 1.99 & 46.72 \\ + VGG38 BN + RC & 1e-2 & ? & ? & ? & ? & ? \\ + \bottomrule + \end{tabular} + \caption{Experiment results (number of model parameters, Training and Validation loss and accuracy) for different combinations of VGG08, VGG38, Batch Normalisation (BN), and Residual Connections (RC), LR is learning rate.} + \label{tab:CIFAR_results} +\end{table*} +} +} + +%% END of YOUR ANSWERS diff --git a/report/mlp-cw2-template.tex b/report/mlp-cw2-template.tex new file mode 100644 index 0000000..d9e6c45 --- /dev/null +++ b/report/mlp-cw2-template.tex @@ -0,0 +1,314 @@ +%% Template for MLP Coursework 2 / 13 November 2023 + +%% Based on LaTeX template for ICML 2017 - example_paper.tex at +%% https://2017.icml.cc/Conferences/2017/StyleAuthorInstructions + +\documentclass{article} +\input{mlp2022_includes} + + +\definecolor{red}{rgb}{0.95,0.4,0.4} +\definecolor{blue}{rgb}{0.4,0.4,0.95} +\definecolor{orange}{rgb}{1, 0.65, 0} + +\newcommand{\youranswer}[1]{{\color{red} \bf[#1]}} %your answer: + + +%% START of YOUR ANSWERS +\input{mlp-cw2-questions} +%% END of YOUR ANSWERS + + + +%% Do not change anything in this file. Add your answers to mlp-cw1-questions.tex + + + +\begin{document} + +\twocolumn[ +\mlptitle{MLP Coursework 2} +\centerline{\studentNumber} +\vskip 7mm +] + +\begin{abstract} +Deep neural networks have become the state-of-the-art +in many standard computer vision problems thanks to their powerful +representations and availability of large labeled datasets. +While very deep networks allow for learning more levels of abstractions in their layers from the data, training these models successfully is a challenging task due to problematic gradient flow through the layers, known as vanishing/exploding gradient problem. +In this report, we first analyze this problem in VGG models with 8 and 38 hidden layers on the CIFAR100 image dataset, by monitoring the gradient flow during training. +We explore known solutions to this problem including batch normalization or residual connections, and explain their theory and implementation details. +Our experiments show that batch normalization and residual connections effectively address the aforementioned problem and hence enable a deeper model to outperform shallower ones in the same experimental setup. +\end{abstract} + +\section{Introduction} +\label{sec:intro} +Despite the remarkable progress of modern convolutional neural networks (CNNs) in image classification problems~\cite{simonyan2014very, he2016deep}, training very deep networks is a challenging procedure. +One of the major problems is the Vanishing Gradient Problem (VGP), a phenomenon where the gradients of the error function with respect to network weights shrink to zero, as they backpropagate to earlier layers, hence preventing effective weight updates. +This phenomenon is prevalent and has been extensively studied in various deep neural networks including feedforward networks~\cite{glorot2010understanding}, RNNs~\cite{bengio1993problem}, and CNNs~\cite{he2016deep}. +Multiple solutions have been proposed to mitigate this problem by using weight initialization strategies~\cite{glorot2010understanding}, +activation functions~\cite{glorot2010understanding}, input normalization~\cite{bishop1995neural}, +batch normalization~\cite{ioffe2015batch}, and shortcut connections \cite{he2016deep, huang2017densely}. + +This report focuses on diagnosing the VGP occurring in the VGG38 model\footnote{VGG stands for the Visual Geometry Group in the University of Oxford.} and addressing it by implementing two standard solutions. +In particular, we first study a ``broken'' network in terms of its gradient flow, L1 norm of gradients with respect to its weights for each layer and contrast it to ones in the healthy and shallower VGG08 to pinpoint the problem. +Next, we review two standard solutions for this problem, batch normalization (BN)~\cite{ioffe2015batch} and residual connections (RC)~\cite{he2016deep} in detail and discuss how they can address the gradient problem. +We first incorporate batch normalization (denoted as VGG38+BN), residual connections (denoted as VGG38+RC), and their combination (denoted as VGG38+BN+RC) to the given VGG38 architecture. +We train the resulting three configurations, and VGG08 and VGG38 models on CIFAR100 (pronounced as `see far 100' ) dataset and present the results. +The results show that though separate use of BN and RC does mitigate the vanishing/exploding gradient problem, therefore enabling effective training of the VGG38 model, the best results are obtained by combining both BN and RC. + +% + + +\section{Identifying training problems of a deep CNN} +\label{sec:task1} + +\begin{figure}[t] + \begin{subfigure}{\linewidth} + \centering + \includegraphics[width=\linewidth]{figures/loss_plot.pdf} + \caption{Cross entropy error per epoch} + \label{fig:loss_curves} + \end{subfigure} + + \begin{subfigure}{\linewidth} + \centering + \includegraphics[width=\linewidth]{figures/accuracy_plot.pdf} + \caption{Classification accuracy per epoch} + \label{fig:acc_curves} + \end{subfigure} + \caption{Training curves for VGG08 and VGG38 in terms of (a) cross-entropy error and (b) classification accuracy} + \label{fig:curves} +\end{figure} + +\begin{figure}[t] + \centering + \includegraphics[width=\linewidth]{figures/grad_flow_vgg08.pdf} + \caption{Gradient flow on VGG08} + \label{fig:grad_flow_08} +\end{figure} + +\questionFigureThree + +Concretely, training deep neural networks typically involves three steps: forward +pass, backward pass (or backpropagation algorithm~\cite{rumelhart1986learning}) and weight update. +The first step involves passing the input $\bx^{(0)}$ to the network and producing +the network prediction and also the error value. +In detail, each layer takes in the output of the previous layer and applies +a non-linear transformation: +\begin{equation} +\label{eq.fprop} +\bx^{(l)} = f^{(l)}(\bx^{(l-1)}; W^{(l)}) +\end{equation} +where $(l)$ denotes the $l$-th layer in $L$ layer deep network, +$f^{(l)}(\cdot,W^{(l)})$ is a non-linear transformation for layer $l$, and $W^{(l)}$ are the weights of layer $l$. +For instance, $f^{(l)}$ is typically a convolution operation followed by an activation function in convolutional neural networks. +The second step involves the backpropagation algorithm, where we calculate the gradient of an error function $E$ (\textit{e.g.} cross-entropy) for each layer's weight as follows: + +\begin{equation} + \label{eq.bprop} +\frac{\partial E}{\partial W^{(l)}} = \frac{\partial E}{\partial \bx^{(L)}} \frac{\partial \bx^{(L)}}{\partial \bx^{(L-1)}} \dots \frac{\partial \bx^{(l+1)}}{\partial \bx^{(l)}}\frac{\partial \bx^{(l)}}{\partial W^{(l)}}. +\end{equation} + +This step includes consecutive tensor multiplications between multiple +partial derivative terms. +The final step involves updating model weights by using the computed +$\frac{\partial E}{\partial W^{(l)}}$ with an update rule. +The exact update rule depends on the optimizer. + +A notorious problem for training deep neural networks is the vanishing/exploding gradient +problem~\cite{bengio1993problem} that typically occurs in the backpropagation step when some of partial gradient terms in Eq.~\ref{eq.bprop} includes values larger or smaller than 1. +In this case, due to the multiple consecutive multiplications, the gradients \textit{w.r.t.} weights can get exponentially very small (close to 0) or very large (close to infinity) and +prevent effective learning of network weights. + + +% + + +Figures~\ref{fig:grad_flow_08} and \ref{fig:grad_flow_38} depict the gradient flows through VGG architectures \cite{simonyan2014very} with 8 and 38 layers respectively, trained and evaluated for a total of 100 epochs on the CIFAR100 dataset. \questionOne. + + +\section{Background Literature} +\label{sec:lit_rev} +In this section we will highlight some of the most influential +papers that have been central to overcoming the VGP in +deep CNNs. + +\paragraph{Batch Normalization}\cite{ioffe2015batch} +BN seeks to solve the problem of +internal covariate shift (ICS), when distribution of each layer’s +inputs changes during training, as the parameters of the previous layers change. +The authors argue that without batch normalization, the distribution of +each layer’s inputs can vary significantly due to the stochastic nature of randomly sampling mini-batches from your +training set. +Layers in the network hence must continuously adapt to these high variance distributions which hinders the rate of convergence gradient-based optimizers. +This optimization problem is exacerbated further with network depth due +to the updating of parameters at layer $l$ being dependent on +the previous $l-1$ layers. + +It is hence beneficial to embed the normalization of +training data into the network architecture after work from +LeCun \emph{et al.} showed that training converges faster with +this addition \cite{lecun2012efficient}. Through standardizing +the inputs to each layer, we take a step towards achieving +the fixed distributions of inputs that remove the ill effects +of ICS. Ioffe and Szegedy demonstrate the effectiveness of +their technique through training an ensemble of BN +networks which achieve an accuracy on the ImageNet classification +task exceeding that of humans in 14 times fewer +training steps than the state-of-the-art of the time. +It should be noted, however, that the exact reason for BN’s effectiveness is still not completely understood and it is +an open research question~\cite{santurkar2018does}. + + + +\paragraph{Residual networks (ResNet)}\cite{he2016deep} A well-known way of mitigating the VGP is proposed by He~\emph{et al.} in \cite{he2016deep}. In their paper, the authors depict the error curves of a 20 layer and a 56 layer network to motivate their method. Both training and testing error of the 56 layer network are significantly higher than of the shallower one. + +\questionTwo. + +Residual networks, colloquially +known as ResNets, aim to alleviate VGP through the +incorporation of skip connections that bypass the linear +transformations into the network architecture. +The authors argue that this new mapping is significantly easier +to optimize since if an identity mapping were optimal, the +network could comfortably learn to push the residual to +zero rather than attempting to fit an identity mapping via +a stack of nonlinear layers. +They bolster their argument +by successfully training ResNets with depths exceeding +1000 layers on the CIFAR10 dataset. +Prior to their work, training even a 100-layer was accepted +as a great challenge within the deep learning community. +The addition of skip connections solves the VGP through +enabling information to flow more freely throughout the +network architecture without the addition of neither extra +parameters, nor computational complexity. + +\section{Solution overview} +\subsection{Batch normalization} + + + + + +BN has been a standard component in the state-of-the-art +convolutional neural networks \cite{he2016deep,huang2017densely}. +% As mentioned in Section~\ref{sec:lit_rev}, +Concretely, BN is a +layer transformation that is performed to whiten the activations +originating from each layer. +As computing full dataset statistics at each training iteration +would be computationally expensive, BN computes batch statistics +to approximate them. +Given a minibatch of $B$ training samples and their feature maps + $X = (\bx^1, \bx^2,\ldots , \bx^B)$ at an arbitrary layer where $X \in \mathbb{R}^{B\times H \times W \times C}$, $H, W$ are the height, width of the feature map and $C$ is the number of channels, the batch normalization first computes the following statistics: + +\begin{align} +\label{eq.bnstats} + \mu_c &= \frac{1}{BWH} \sum_{n=1}^{B}\sum_{i,j=1}^{H,W} \bx_{cij}^{n}\\ + \sigma^2_c &= \frac{1}{BWH} + \sum_{n=1}^{B}\sum_{i,j=1}^{H,W} (\bx_{cij}^{n} - \mu_{c})^2 +\end{align} where $c$, $i$, $j$ denote the index values for $y$, $x$ and channel coordinates of feature maps, and $\bm{\mu}$ and $\bm{\sigma}^2$ are the mean and variance of the batch. + +BN applies the following operation on each feature map in batch B for every $c,i,j$: +\begin{equation} +\label{eq.bnop} +\text{BN}(\bx_{cij}) = \frac{\bx_{cij} - \mu_{c}}{\sqrt{\sigma^2_{c}} + \epsilon} * \gamma_{c} + \beta_{c} +\end{equation} where $\gamma \in \mathbb{R}^C$ and $\beta\in \mathbb{R}^C$ are learnable parameters and $\epsilon$ is a small constant introduced to ensure numerical stability. + +At inference time, using batch statistics is a poor choice as it introduces noise in the evaluation and might not even be well defined. Therefore, $\bm{\mu}$ and $\bm{\sigma}$ are replaced by running averages of the mean and variance computed during training, which is a better approximation of the full dataset statistics. + +Recent work +has shown that BatchNorm has a more fundamental +benefit of smoothing the optimization landscape during +training \cite{santurkar2018does} thus enhancing the predictive +power of gradients as our guide to the global minimum. +Furthermore, a smoother optimization landscape should +additionally enable the use of a wider range of learning +rates and initialization schemes which is congruent with the +findings of Ioffe and Szegedy in the original BatchNorm +paper~\cite{ioffe2015batch}. + + +\subsection{Residual connections} + +Residual connections are another approach used in the state-of-the-art Residual Networks~\cite{he2016deep} to tackle the vanishing gradient problem. +Introduced by He et. al.~\cite{he2016deep}, a residual block consists of a +convolution (or group of convolutions) layer, ``short-circuited'' with an identity mapping. +More precisely, given a mapping $F^{(b)}$ that denotes the transformation of the block $b$ (multiple consecutive layers), $F^{(b)}$ is applied to its input +feature map $\bx^{(b-1)}$ as $\bx^{(b)} = \bx^{(b-1)} + {F}(\bx^{(b-1)})$. + +Intuitively, stacking residual blocks creates an architecture where inputs of each blocks +are given two paths : passing through the convolution or skipping to the next layer. A residual network can therefore be seen as an ensemble model averaging every sub-network +created by choosing one of the two paths. The skip connections allow gradients to flow +easily into early layers, since +\begin{equation} + \frac{\partial \bx^{(b)}}{\partial \bx^{(b-1)}} = \mathbbm{1} + \frac{\partial{F}(\bx^{(b-1)})}{\partial \bx^{(b-1)}} + \label{eq.grad_skip} +\end{equation} where $\bx^{(b-1)} \in \mathbb{R}^{C \times H \times W }$ and $\mathbbm{1}$ is a $\mathbb{R}^{C \times H \times W}$-dimensional tensor with entries 1 where $C$, $H$ and $W$ denote the number of feature maps, its height and width respectively. +Importantly, $\mathbbm{1}$ prevents the zero gradient flow. + + +\section{Experiment Setup} + +\questionFigureFour + +\questionFigureFive + +\questionTableOne + +We conduct our experiment on the CIFAR100 dataset \cite{krizhevsky2009learning}, +which consists of 60,000 32x32 colour images from 100 different classes. The number of samples per class is balanced, and the +samples are split into training, validation, and test set while +maintaining balanced class proportions. In total, there are 47,500; 2,500; and 10,000 instances in the training, validation, +and test set, respectively. Moreover, we apply data augmentation strategies (cropping, horizontal flipping) to improve the generalization of the model. + +With the goal of understanding whether BN or skip connections +help fighting vanishing gradients, we first test these +methods independently, before combining them in an attempt +to fully exploit the depth of the VGG38 model. + +All experiments are conducted using the Adam optimizer with the default +learning rate (1e-3) -- unless otherwise specified, cosine annealing and a batch size of 100 +for 100 epochs. +Additionally, training images are augmented with random +cropping and horizontal flipping. +Note that we do not use data augmentation at test time. +These hyperparameters along with the augmentation strategy are used +to produce the results shown in Fig.~\ref{fig:curves}. + +When used, BN is applied +after each convolutional layer, before the Leaky +ReLU non-linearity. +Similarly, the skip connections are applied from +before the convolution layer to before the final activation function +of the block as per Fig.~2 of \cite{he2016deep}. +Note that adding residual connections between the feature maps before and after downsampling requires special treatment, as there is a dimension mismatch between them. +Therefore in the coursework, we do not use residual connections in the down-sampling blocks. However, please note that batch normalization should still be implemented for these blocks. + +\subsection{Residual Connections to Downsampling Layers} +\label{subsec:rescimp} + +\questionThree. + + +\section{Results and Discussion} +\label{sec:disc} + +\questionFour. + +\section{Conclusion} +\label{sec:concl} + +\questionFive. + +\bibliography{refs} + +\end{document} + + + + + diff --git a/report/mlp2022.sty b/report/mlp2022.sty index b0e3e66..48abd2a 100644 --- a/report/mlp2022.sty +++ b/report/mlp2022.sty @@ -64,7 +64,7 @@ %%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{mlp2022}[2022/10/16 MLP Coursework Style File] +\ProvidesPackage{mlp2022}[2021/10/16 MLP Coursework Style File] % Use fancyhdr package \RequirePackage{fancyhdr} @@ -89,7 +89,7 @@ \hypersetup{ % pdftitle={}, pdfauthor={}, - pdfsubject={MLP Coursework 2022-23}, + pdfsubject={MLP Coursework 2021-22}, pdfkeywords={}, pdfborder=0 0 0, pdfpagemode=UseNone, diff --git a/report/mlp2022_includes.tex b/report/mlp2022_includes.tex index aff2632..e8eb493 100644 --- a/report/mlp2022_includes.tex +++ b/report/mlp2022_includes.tex @@ -25,8 +25,6 @@ \usepackage{color} \usepackage{booktabs} % To thicken table lines \usepackage{multirow} % Multirow cells in table -\usepackage{soul} -\usepackage{bm} % Packages hyperref and algorithmic misbehave sometimes. We can fix % this with the following command. @@ -35,9 +33,10 @@ % Set up MLP coursework style (based on ICML style) \usepackage{mlp2022} -\mlptitlerunning{MLP Coursework 1 (\studentNumber)} +\mlptitlerunning{MLP Coursework 2 (\studentNumber)} \bibliographystyle{icml2017} - +\usepackage{bm,bbm} +\usepackage{soul} \DeclareMathOperator{\softmax}{softmax} \DeclareMathOperator{\sigmoid}{sigmoid} @@ -47,3 +46,5 @@ \DeclareMathOperator{\elu}{elu} \DeclareMathOperator{\selu}{selu} \DeclareMathOperator{\maxout}{maxout} +\newcommand{\bx}{\bm{x}} + diff --git a/report/refs.bib b/report/refs.bib index 16f028e..1863eff 100644 --- a/report/refs.bib +++ b/report/refs.bib @@ -35,9 +35,129 @@ year={2004} } -@inproceedings{loshchilov2019decoupled, - title={Decoupled weight decay regularization}, - author={Loshchilov, Ilya and Hutter, Frank}, - booktitle={International Conference on Learning Representations (ICLR)}, - year={2019} +@article{simonyan2014very, + title={Very deep convolutional networks for large-scale image recognition}, + author={Simonyan, Karen and Zisserman, Andrew}, + journal={arXiv preprint arXiv:1409.1556}, + year={2014} +} + +@inproceedings{he2016deep, + title={Deep residual learning for image recognition}, + author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian}, + booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, + pages={770--778}, + year={2016} +} + +@inproceedings{glorot2010understanding, + title={Understanding the difficulty of training deep feedforward neural networks}, + author={Glorot, Xavier and Bengio, Yoshua}, + booktitle={Proceedings of the thirteenth international conference on artificial intelligence and statistics}, + pages={249--256}, + year={2010}, + organization={JMLR Workshop and Conference Proceedings} +} + +@inproceedings{bengio1993problem, + title={The problem of learning long-term dependencies in recurrent networks}, + author={Bengio, Yoshua and Frasconi, Paolo and Simard, Patrice}, + booktitle={IEEE international conference on neural networks}, + pages={1183--1188}, + year={1993}, + organization={IEEE} +} + +@inproceedings{ide2017improvement, + title={Improvement of learning for CNN with ReLU activation by sparse regularization}, + author={Ide, Hidenori and Kurita, Takio}, + booktitle={2017 International Joint Conference on Neural Networks (IJCNN)}, + pages={2684--2691}, + year={2017}, + organization={IEEE} +} + +@inproceedings{ioffe2015batch, + title={Batch normalization: Accelerating deep network training by reducing internal covariate shift}, + author={Ioffe, Sergey and Szegedy, Christian}, + booktitle={International conference on machine learning}, + pages={448--456}, + year={2015}, + organization={PMLR} +} + +@inproceedings{huang2017densely, + title={Densely connected convolutional networks}, + author={Huang, Gao and Liu, Zhuang and Van Der Maaten, Laurens and Weinberger, Kilian Q}, + booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition}, + pages={4700--4708}, + year={2017} +} + +@article{rumelhart1986learning, + title={Learning representations by back-propagating errors}, + author={Rumelhart, David E and Hinton, Geoffrey E and Williams, Ronald J}, + journal={nature}, + volume={323}, + number={6088}, + pages={533--536}, + year={1986}, + publisher={Nature Publishing Group} +} + +@inproceedings{du2019gradient, + title={Gradient descent finds global minima of deep neural networks}, + author={Du, Simon and Lee, Jason and Li, Haochuan and Wang, Liwei and Zhai, Xiyu}, + booktitle={International Conference on Machine Learning}, + pages={1675--1685}, + year={2019}, + organization={PMLR} +} + +@inproceedings{pascanu2013difficulty, + title={On the difficulty of training recurrent neural networks}, + author={Pascanu, Razvan and Mikolov, Tomas and Bengio, Yoshua}, + booktitle={International conference on machine learning}, + pages={1310--1318}, + year={2013}, + organization={PMLR} +} + +@article{li2017visualizing, + title={Visualizing the loss landscape of neural nets}, + author={Li, Hao and Xu, Zheng and Taylor, Gavin and Studer, Christoph and Goldstein, Tom}, + journal={arXiv preprint arXiv:1712.09913}, + year={2017} +} + +@inproceedings{santurkar2018does, + title={How does batch normalization help optimization?}, + author={Santurkar, Shibani and Tsipras, Dimitris and Ilyas, Andrew and M{\k{a}}dry, Aleksander}, + booktitle={Proceedings of the 32nd international conference on neural information processing systems}, + pages={2488--2498}, + year={2018} +} + +@article{krizhevsky2009learning, + title={Learning multiple layers of features from tiny images}, + author={Krizhevsky, Alex and Hinton, Geoffrey and others}, + journal={}, + year={2009}, + publisher={Citeseer} +} + +@incollection{lecun2012efficient, + title={Efficient backprop}, + author={LeCun, Yann A and Bottou, L{\'e}on and Orr, Genevieve B and M{\"u}ller, Klaus-Robert}, + booktitle={Neural networks: Tricks of the trade}, + pages={9--48}, + year={2012}, + publisher={Springer} +} + +@book{bishop1995neural, + title={Neural networks for pattern recognition}, + author={Bishop, Christopher M and others}, + year={1995}, + publisher={Oxford university press} }