From ac398640de51a15f208fe4515954ce516d6fdb8e Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Mon, 9 Oct 2023 06:55:05 +0200 Subject: [PATCH] added figs and more --- .../_build/.doctrees/environment.pickle | Bin 409786 -> 448462 bytes .../_build/.doctrees/exercisesweek41.doctree | Bin 0 -> 16458 bytes .../_build/.doctrees/intro.doctree | Bin 53069 -> 53112 bytes .../_build/.doctrees/project2.doctree | Bin 0 -> 71272 bytes .../_build/.doctrees/week41.doctree | Bin 0 -> 785927 bytes .../_build/html/_images/week41_174_1.png | Bin 0 -> 4442 bytes .../_build/html/_images/week41_197_1.png | Bin 0 -> 37317 bytes .../_build/html/_images/week41_197_2.png | Bin 0 -> 47458 bytes .../_build/html/_images/week41_201_0.png | Bin 0 -> 41793 bytes .../_build/html/_images/week41_201_1.png | Bin 0 -> 47022 bytes .../_build/html/_images/week41_211_2.png | Bin 0 -> 27610 bytes .../_build/html/_images/week41_57_0.png | Bin 0 -> 18575 bytes .../_build/html/_images/week41_57_1.png | Bin 0 -> 14628 bytes .../_build/html/_images/week41_57_2.png | Bin 0 -> 31496 bytes .../_build/html/_images/week41_57_3.png | Bin 0 -> 17863 bytes .../html/_sources/exercisesweek41.ipynb | 87 + .../_build/html/_sources/project2.ipynb | 348 + .../_build/html/_sources/week41.ipynb | 3956 +++++++++++ .../_build/html/exercisesweek41.html | 555 ++ doc/LectureNotes/_build/html/genindex.html | 10 + doc/LectureNotes/_build/html/intro.html | 10 + doc/LectureNotes/_build/html/objects.inv | Bin 1117 -> 1176 bytes doc/LectureNotes/_build/html/project2.html | 783 +++ doc/LectureNotes/_build/html/search.html | 10 + doc/LectureNotes/_build/html/searchindex.js | 2 +- doc/LectureNotes/_build/html/week41.html | 4315 ++++++++++++ .../jupyter_execute/exercisesweek41.ipynb | 87 + .../jupyter_execute/exercisesweek41.txt | 0 .../_build/jupyter_execute/project2.ipynb | 348 + .../_build/jupyter_execute/project2.txt | 0 .../_build/jupyter_execute/week41.ipynb | 5785 +++++++++++++++++ .../_build/jupyter_execute/week41.py | 2272 +++++++ .../_build/jupyter_execute/week41_174_1.png | Bin 0 -> 4442 bytes .../_build/jupyter_execute/week41_197_1.png | Bin 0 -> 37317 bytes .../_build/jupyter_execute/week41_197_2.png | Bin 0 -> 47458 bytes .../_build/jupyter_execute/week41_201_0.png | Bin 0 -> 41793 bytes .../_build/jupyter_execute/week41_201_1.png | Bin 0 -> 47022 bytes .../_build/jupyter_execute/week41_211_2.png | Bin 0 -> 27610 bytes .../_build/jupyter_execute/week41_57_0.png | Bin 0 -> 18575 bytes .../_build/jupyter_execute/week41_57_1.png | Bin 0 -> 14628 bytes .../_build/jupyter_execute/week41_57_2.png | Bin 0 -> 31496 bytes .../_build/jupyter_execute/week41_57_3.png | Bin 0 -> 17863 bytes doc/LectureNotes/_toc.yml | 3 + doc/LectureNotes/figures/nns.png | Bin 0 -> 33457 bytes 44 files changed, 18570 insertions(+), 1 deletion(-) create mode 100644 doc/LectureNotes/_build/.doctrees/exercisesweek41.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/project2.doctree create mode 100644 doc/LectureNotes/_build/.doctrees/week41.doctree create mode 100644 doc/LectureNotes/_build/html/_images/week41_174_1.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_197_1.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_197_2.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_201_0.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_201_1.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_211_2.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_57_0.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_57_1.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_57_2.png create mode 100644 doc/LectureNotes/_build/html/_images/week41_57_3.png create mode 100644 doc/LectureNotes/_build/html/_sources/exercisesweek41.ipynb create mode 100644 doc/LectureNotes/_build/html/_sources/project2.ipynb create mode 100644 doc/LectureNotes/_build/html/_sources/week41.ipynb create mode 100644 doc/LectureNotes/_build/html/exercisesweek41.html create mode 100644 doc/LectureNotes/_build/html/project2.html create mode 100644 doc/LectureNotes/_build/html/week41.html create mode 100644 doc/LectureNotes/_build/jupyter_execute/exercisesweek41.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/exercisesweek41.txt create mode 100644 doc/LectureNotes/_build/jupyter_execute/project2.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/project2.txt create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41.ipynb create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41.py create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_174_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_197_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_197_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_201_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_201_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_211_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_57_0.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_57_1.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_57_2.png create mode 100644 doc/LectureNotes/_build/jupyter_execute/week41_57_3.png create mode 100644 doc/LectureNotes/figures/nns.png diff --git a/doc/LectureNotes/_build/.doctrees/environment.pickle b/doc/LectureNotes/_build/.doctrees/environment.pickle index bd79e03d7cffd6968d361e7622947eed79a71a74..671097068da065e23ec1e58e9b2015d0332015cd 100644 GIT binary patch literal 448462 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 } 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∋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 PV#b~+4t_D;zvTY_Y06PQ literal 409786 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 w;#IAl_s;A~s$GDe>eN$|zDY50b$OB60ic9&r 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/.doctrees/intro.doctree b/doc/LectureNotes/_build/.doctrees/intro.doctree index 47a9bcec2c4787db3ef3514a9d637b5623579a20..6497de92c112bb727a4d7407fb74592291711f52 100644 GIT binary patch delta 207 zcmX>*kNL+uW|julsks|jBo52@_3)=wq!uM-7N-`Mr>16`7*1)M;@86lVNaGk?8}}N z&dtD(6*)QJpvdI%!#a#HljRRcP2P9d4ajOdkUBZ*h&W@xeY<@dPJNtXY$%3 zDvbF+Q3J;KNk{a7%*F%KoBfVnU}9XnS^mTuW|sTh3=ES6g+(SSpONRf3*=;IWoVZs zO-!AR(}lcaw$AYO&P<`B@c{oz7-3)=pl1 N){e1a^Q*Ici~z=fMBD%X diff --git a/doc/LectureNotes/_build/.doctrees/project2.doctree b/doc/LectureNotes/_build/.doctrees/project2.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e538215a4047cc0033b6bdc10385a5d673635c41 GIT binary patch literal 71272 zcmeHwd5|3EbstF(*MI~G9?(H5YEq!MyV%*qL0SMslUytS5+JdJ0gwbmQInpT-t8XD zbdS1wcCk`emTbqitY++zMvi>^Bg>AR!%0P!Q?@L}CEJM{MUE?uQgO-^E52mKj`L3{ zRhE@l`Mvk`cXUtBwKF6^nJ991r>DQ`UEh1}d+&W8+Wv`udHwa*(ZA%DsO@_G)djm= z_k+3 z(L&n6HoUFcy4#ZjEujyEJCk|S6?A7dMbJJRLd?&PHr*5r=LCZQB z)SmWhjwOb(X52V#M-MG7u6eQBsV>xl)*{9W@QV69TS}i;t3im4EjMm8t@B~faBA_9 zg?g|MUyUuRTz;g~b$7nlb$2H>UUII|`mU+D{rxUO+uiQ&NOrVsz&Gx?H+8CZQnKSX z^s1d0_#u33^Xd^`pX{tP?I^-S{Jq_`TjH->^-f!VsM@tFp|i^G><|FzCN~m@y2!~f+a|p3YKKnbgzHYXlkAM`HR_@3mXaM3@lPy1gYToomfLXr$nh61IW`EvUt2uK zzn!NXJM`%@(6RUwVBZOyl>l>IY)f2t?M=Um;hUcCbkE&(zq{Yv=3eh^>r~x6g4RGU z7nok^LF=JQXD&T;>LH0r>xdQjRyvp^N1M0mj$Nk?t(9QiX;q!jI(*ccIp@`VZ_SNo z3Go8&`(BZ*4YXl72Z1m5O+b?S7Esz<`2TJA|Lyqy9w12~z&+sJ=f1P!-tU&&8F$v5 zJ9mc(i`~i22=Ma)-{2#62NCZKsCRqp#ZAZfDtRQO_AP=)f@jihG$@tF+f0NC$73>w&->;~Q2YoXnC&E;N$ZrGa)(iwN3 zyF&wI2Y~WjMDFg)iaWQ$3*HgMVc@TstNo6xEmg|4-Qacy!UIe#1vr>$qE7d1xw%^W zmU{rq{;mnLLEMFvcS5h5EYYqp5z@OvpYH>GzC+UIdxV_oKRmU#Y_?!j1Ihc6qgx>$ z4Z1Bg&(oUIS1QrOpEf7{a4M3|E0KIBNYZ)8nwxvN7F);Xts{qy9G#n!G@k4bUw8GC z5DL{k!F$ zy&2NRV;w$z{CJrlHE+F!(rdxG;4~dOf`Zk7Tnnw`Wos!_C$PbkR|0=IXtkWM=Gjf_ zfrUd>)2q=2udsV(;gSqw_jv(``m~8Cx1w!`VhHLbA=fB|%8t<}vvod1jeZTW=Ls0_j1#;a_mpprc0kI4_I^()#R> zziS3-UId%M3e`(i99X{72|?Dr6K@3Jl}O5&SEzRdSNF?+&X-2fe~xrg{pX87susAv zeaUsKmhEBTUW;^#*oD@U>d_Yd#M(%Y*|e%b>{@IGWPnvN;DBb;rqhb7>L!%sb*CA$ zp{83f=&WGFw^kjeUWR3`VTbh`z)CZxPp_=ZS~Zx43)XXvRkM9SxDz>;kYmEyZmtC( zY&47_^sBms$)^)mqU5njmt{zu$@>D1e$QlP?9|tn^avoz-WN_y1+IFKWJ(aTE0`}19?98?s>lK$uxINVs=mYNqq zp?8Z_^Aw)2bZ7cIgQbfxwP9}-%>o`^_mXih97L-y1~>85Nw5PAGGY=}p|#B|a7dkQ2hhD;`1dSqyVeZtu61YC z?lfb5bym{w1U)E#HolwIzrXR)IMmOsq(^&ou|3sJv+2Zr^ssM9!!Om#G$_7$K^t^4 zt6m(Fa%4l<@$pwD=tN3sm|d{W_<$7|N^sU%n?Xk?Y(5MeGMK6%D^@rVq3=SNFA?B| z4(Q+su%+`N>o9M=IA@|07}8z)&?Pg`do8j(S$o$5fAYZ77K_UqJS^$9^%A0L~nmgLs2b>`05bE9`Er<;qD>p0~@Sy|J#!SHw4*Vs|OFcczM2-W}Yz7

WxBida(Bv@j~PVX}{1;1Gy2U zI|G>asRFkp+3{k_SFPFM7BIWfuEhHhad^Szlig=bts&jdz>;MOy}-Wo!gC%ha!4)T zIuSb9-j;0~8-~_NXddF^ltM4)==6%cw$^kw{GwCyTFu2O-j8B*L=DOtvY#@^tXU^1l$LMK(-Nan2Dp~qV{21S%W#2(HLL`uZd$CgWzt)tft;v2}75tDGme!59+ z4O)6r1Q=L8MHtLO`GI_e%yh2WERyM!2+j=j&64$n4ad1+J#bhri)2?@9ON#f(Is9` z7|YP^R2QlF1BVysKsfzd91hbi(8K{Qpypg{H{p_CcQs=O?&&M+spZMkJoqfgM~ed% zNPb>8yE&jLtOhunv48-2^M!nf1Hmr9A#(se5Wbh(!SgcQHdwsx+0@6Ga2wX=fHc}xu!6P|VrwB6jj>kkrTK-|A*&b$(Cc#g5Q@K^6N<)p++7Omy@Eh0 zr~}_on^iLKHO%7Q=VsAgG~)#AxD5XqTL!5E{8LhAl*?y#$j7fi5oM6rH95V(B(yUX zu##NVXH6RF5qkRX< z&p1SNUJ})`_QxS~_2{JAr-s;BV))0Ujv*nyI>sJ@3JlO@9uJ1vy~Alof^n2rHC#t|8&i8|96+CyfF34K zhZFG-z+S&#fD<1IfH+*5Nt_i3nE!-jKM`!eeH-H3Jav7s!>#GTjR(h;2)#k%4a`0g z2JCy!I=|@1pPlvMEwZ%WfJ+_u6my`x_y|#evD#UKnM~p2ZT(LTB(=)-b>m|>R+8%rWJnY z4&XybJ-9SlPPrgo1UYB{E;v)@g-CA28wsJT|E)G!`>?Uz4ol^mJshv7Tx5ILWF` zOuj`JE1E`cldR_c5qB$N$|E<~`nwnGg3#FTMg^zZtWjPhX&m;0h< z42}4bR$3%#%|{A(iTM;=esN?x!vFgwsem86+W zh}zMu=wKQyTWVe~-{Gc?1X8c5lYCMJ%);k^kQo*>wi(wC1&eYASm8$m5}##?1OSSl z5h2If&;?i;=t>y?6vj#)WVXS@IHLmP>hP?t|S5mJs~Yv$tPC(~pDNmJME z1QjM5e@P_0zws9%Q?|^wdp39I><&nXIdz^8WY0ciJ;&kW&_YD|#vp()f?$_=A?(d4 zcG?oGQ|e8@AemB!0OS89p*ze?~)hTc_-!I{G3os_9Eg54w@k@YON0cX~N8;BXm&<0nOcmUYA z(x)d=aB?v|eYrzf_j}}UD{y}w}A^>onPjN^TCxP+E zgPF<{dkv9M_<|fB=9#`&Z%Ia2X`}YkR4{IA6;tXE6uk%0A;Z!E3f@_s0`(c|nM!wK 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

=juc0lab; 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≪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%0A0y)ES(vks%VwWzu_k;o%WGF!_5f}^dRaP z;W*_cc0g)emm^HPWCA{hObC25AZW3zI{A6e*b+1hI6>p+cqQ$_iM_1wIY=Mf9(;7X z9&6ApDJ7e@QYj62QyKd8Wz`KRKn3`q%tci?mt)7|!<|I&h?9vPSTf^r^7zZZU;#kNEx2BAG?E4KWdiBJV^`;(@BDinOId$Er^6c@Plm zwF*zoCSzI=rc<$6x1Z!!V*q`t}$CagIw91uDWUe&h=vLSKJPPl)r=P@D zaMe=2I-5gVgnQr~@y^T2LOqy8=SQ8bk%cUD=q&tIP|b{DnHrxHgjq zjpnTH^%_dsv!DYYuy8HAAR4t9@IXbU4Of$xj4#8L^ljga39havV_3a(8*b$%<$+?7OX_5i!vmxPp1GTOGjp z27a3AO7Vd8q$T98g*{@)hRH5FVG-CM^?t2-zAR7oXR$ZvET$6TYC!QJtdIfwEg=z~ zYT%to^33D0x{tXuM1)FIy{?Wl@Pb~-7{PzP=S6%Xc@WoBC=hi`e0d5EQ>dbl+B2&Ij^rxX(uv;1rBrpAj6Wds)yzTBIQEL7Znb--RO3Z_qB;8OX<%5tnK$!erE( zL09X%VQ7Plmx>(wnc+s;%i*L(^+|4;MYTaRth!BIK~*?UfkTMqp(s|{)oBXaD(5-0 z#T*c=K`|mdRTACmqtOeVrfI*C%GE>U63q}Abg-NbOv4()p7z=>V-R~Thr6Q$Vo!V+ zl?bKU%~=S!LV4fZ2F=67ChsDO8R*JtSrUL3^FzbnSr(&SWk>W45HHd9@$NM2N8kgU z5}l5)$Q6V@Vx#;<$x1|Xg$RK83NS!=2!jID)B~HCyg=$0fSCMkk^NGsLBC2 zV<(Dv_5glw)NBCNfryKX+UoMsny#AVR(Ex$qtNVRmajrM?T)kSae3fkmuE^(YAJDSVuzSMrcmc({YiU}9!ZRq=%9H)rAwO$l^JIr1buW57! ztZmM2YoedY1KLFPY5St~Z#7(%)Wb{9i77Ux+wEzz4 zN8FqDxjN46F57FYgl0E5H^sgYjueUkC+{8tK#Onw zWB)r^%LTB&GkHC2hdSqtb`=7qR@zg*3(Di5r0inUDtAD0-UE;}fu)!?Q_CT|y>gp<2P-(wmA4nTSDs820Q*bbcmZXuDV6 zn8@W}-mD9q{c;oS2zKDKQqRJ2U6Os2a-p_5j21g?3{ALr3eark6aEO5>}P-{k26g( z1MK|_)?VbB$ulwZI?o?x^pdd$%#baYGl<#f;Ne$@9%t`7JBwp*nyMg~7|CsOmnCUI zO$44=$sC86v*R>`n&`N}bDim)UN0x&;G`c;LzElOAH|PI4CyYG1SKF}RnGcGfp+SE z+0-i_^xuNeALHXLB4r?pC-_s66U0-jvHNmu2LOKL0k~-cH4`6*_AyaI(zr?oT6;}0 z?k>-DlT90~kl=EOrY4R1${|MAgPv%g6sVe@Tw)Q7+Lwy^Qg+aKuvr0oH&8xu5~Bh- zuFhuV=4%sC5pBrLx$Ur4Tb~UUVm^nJR(Hc_2k7jCt(BcquCXj>$k-gE&In^1_4Fnmbnb{N?ZuOuIe6Ay49x96~xF|meOfe=1}VhT}?EwXPL)i#-;mHGFY;?WPxvavshR=&Z1EbaF(fpa!F?v zm9kCq+wlf*NkX~AEr$)MQUm2u{Rk9SEF4u&JIl;4%Ir-&VW%T8bRR)z-bsVK28t|ih1A9)0>!kD_h$*=Q};ZFuDe5GEEwC80WHS1pp7!a6?PjU_a4YG2k3hX zb%W_JrRw-J6nY0;RMO2tWt$9Jat|c}E6Jans}pIl@`KrgTrbr)#c^4Ko_wdNu}MtqQ)Hd0Ml&hYJme z(9n}KPYIUX=TPvB5ETFlA>pw_jvw4((3mbXxcaRFSn$JW9Std~KHP*g@JD+Gz;OyK z-mO0Er%MFG6HM~vgA@?+N)TqfUFD8fX?fAmtW(x;lDnl2Du;&CprA|p6ro~na$arp}Fu15|OYrRi=?-}58490(YRh28{(wBI z<}3@92xFhvq%0v8xss6kr(q>SKm`SZ0B z5AwI*lo^yoPMM!3Zk@bl4e43)se8JLkMtb>BG-k@MHo530${fiyvrbT2ks`_Bb^3O*^M5Nx)uh! z4-f)^LTB2aGfJE!y1{T_!;b3XXjdU0-%-Hzwkh;!kT_}!9)PDy4k@70CUY71Vq*zc z9!XW;^f(az0jgSvh!Xr5exM8QUXi82vM%;1Pf?Mde5O69l5VRa^kZS8T6D_Ji z$4CG^gv2H{nNPG!fxqY>`p@w_7rM7<@iQu_jlDkdQfKDRMRSg4457ettoD>1c$Q;SSf9^S+-x2(RD~38V4$u!*Ad@}81Pntw_XMtv^-EZ z$hUENq3?SfZ0B4GeC-Lm9uR%tyqO1VZ%i70Zj^X zKsr=qCgB00b_`>EQWs`0_^;emY1A;Ut3G;Ph)8j->u<;=Z4GtsA?7v%XEvOcPp1=A z#2GJKZu4QMlDWe9q5)ChiIGNCYC36a zySf)0rVZhe%sC!!J%xIzXR73aZe?9K@HsklN--pI0!bZb(yO&6np{DM~u z7;_r=n6ufKQw?!!Gu#;~+dHJ_8_>(^Cm+w-L(=a}eDLcLaEHr6lU}UWYG(!{2|(6sy(5)zP$oZ2V&;s2*-09<3C?-%R6#@$t9q?JK1xg~QJ7buQ5~#hl zsVTs*);6fX1GY1-wQ8!WY3YcJH42{fvN9Tt=9@k@1s)VNYzy!dGLpsGXSzPy44K1$ zDTCW0Tl$#uJ4!!k9*kXgw3|f|h9f9kl21X>!K9QUPLv-HCO9+SS;lvG9#^}$X&t2#= z*YFypuEPOni3w?#l`Rf)u>rzB|MA z;3Sc{NpQ4or2M!74TBABv5Gxgb|7B28MOU^Yh`Glh;s*Sqtl`6LyuiE=*^_9637QP zMuBB{QQhrWG*!)kHd&$f-Xdc~&Y2?6DtH;H$2iQA{F>na}jWrY- zDkAvvE5>qzPY7@*0RlEb#R8pTPch8pprgT$IC;c?^`N<}n{k)Stygr_Z&V2MRPA+{ zjU*BtO1#sjfasgy;emz<;tr`$L&uJx=QeK7w+Hm_gVlw~dMuBW5uIgODv@*JfrNV! z4^dHo+%fZaMQ< zFfOba#KB?`2V2<(sE-e4rDA;D!4>Opl$?pV(uq|Ku}8+qRWIF9gBh^r>tK53Euyzz zK=tnozPfq?!Y^qUcX#s2NbN+7@osu4S3w;#KL*DM<-%o6fHn5#$0M{nC*Z>6YY|E^ zN0HaEw`mnG7hBBBigzFV2XYETF9Y8~Gg<)(RDAQc2Tj}^kyD$6dC0FTb!de`5W)b4 znyuF&rqSLM+HKS=m*sFa^`F5v_;}2ECklRljQ&2>fj?F}8w#k1z$?H_poo*_7<7o&&v)+(fH!L@iij-0p)UyOd%cJ`aFX-V6X# zK#YbGFi>qD`VHjtrcOXghQYx`fI_~$KvJmhOh``G5|`*Z^?X4v*fqVjno z_9Su*Ytm;Uyb7}+-gkKjar)Wr7~_UV9O{^HEn^qHB4-I7H8+6<54#~{|HpM zbd}bchMNA?p}id!&#=+A0P=!PMX6K*623dFOC0RXZSL z*lxE!@*^L)$-Z*q{^>_vdg-f)c5l&i{|xKg|4q#QA?6QYzW9?jZ@Vvj^re@+=DrO3 z)qC69uh_5JAO7-<{XJi~dE5Rp7CwW2pTocJ#lP?S^3C<@0hmLw^a|=%etIK(Ftfkl z{x=-d{-I%W{qQCGZTpM%r`&%oV9m?+2Qy85;!y6JIH7v~fMoyQCi{QN{rc@r#W8+J zcq!A&CwKnj(>q^3&`r;~N>8DAbNwMbFw7frykEN~DLv)iYFliFXx6DXDLo`C(sm)n1Q2iHG(z$fgT z3j2<4X0htwf9WBJcgZ`dZ{SM&B#kpYCD)=pwMlWEmy3G)`ppzMc2_-KIa@!7ao=x( z)z7}S!X%IPa<+#R_TlAh_}}Gh4{$$J}rzj$d|`-4y4+1$i+R&r-)r z-nHVuPfg#rxqcPA&zYIr{Jk6WUD7juOuT-uHGPuZ2x9F2z)({YWZC-=KR$Xn%@vNl z!_SZ0{zL>8zurg#{Yq2y9r-Ix_X@5nKHXe@!U}@a4^s2qABC5%-$+b7^|Sre5jfrb z4c5Ggc5*`W|NS1jCOG70E^AEBEY@5doYcP3QGJr&l5xh{9UiTCJvPH2POm&OH@zF- z1J@t1RqxTySFYbOj}D#{C@iw%ZlhPOUolKA+v0d{9?(VctguCFs(Y+?kjAQRlAF5u z>h+tBPu@?{N3X?JH`fnI6Ox`o`^M zSC-@9=I}`xc*-fB>T6j4&gU_B#A#wnf9f=3&EwPj;N5BP&Z(s5?acUH z$4sru$pW3W)4hk2JxEmzF9XJTH^OVzpF`K$Up;!u9^J@Q5|W1g+V!W3>vH_WjL9=V z4<=8`K$re#tR5cy#4GsmJ^Vw5{g4-szW#c$SMg>=8D8WBdwy5(`||V3 z1A+4Gv;3THtGIHs^yLLZ+YwK6g}rxKh>Lj>UMO`^JgCcy|21@%KzDo#jeh3|K0$m# zl4(zF_qw^)OykPgqt7Nd(#J2qlk|jh+oqXf-6wS~P{m+RjU^ntH!7aV@_|o={pOIE`NBHxtpMT~017+^+3drJ< z=l}AzI{z~c`z@{@yZ*!zPXbh^xQ1swHFt>9J@blxf?Nk_9zet{yI;Rbybm7rS8lF9 zOjcf&-*$f&gA(_@5cBm9!2A?3zeLP067!)C!n{mO{S}xhF%Mpad6k%7B<2^0`CA`` z`AK3v{~FBq6Z7-L{3BvM^Z@2%V*V*HKTk{(VDU8^ruHF~391Z^K-F zf{Z56F;fRG%fmfIb!5b!Yqgxdw~I?fYQ9kC@i? z!~8hR^%rlQ_rolFh>Lzmz8(+5I0)5k;YJ^--ZlVxxs8vc`#W!Ax8Ek_S16cYCg!)^ zf%#2hzVR;1PZJ~3Faj~Z&cgf}G5@#(^ACvm{R+(Q5%Xsp%%2eRZ)-6BhL}ID!~793 z@t0r%V!rvqFyA2N-~TAgzaxhEahP|A`TYjW?-BEZEtnr5=1k0im~XaWzCp~_yD&cm zbNvQBDVgdyARi{LtLT1ufIoeTnAe9e4~V%U<|l}GMS%GLF-KxDV*WER{|P3$en9#r z89x_&zUZA|(KE%OSBgcC6pP*{7ClicdZAeKK(Xk3V$t)kCAyhd^fBj97R@IXO(z!3CKgSG z?a@+V(Ntp5OxOmkgC~ZT5#3{PcG4bV(H3IS4r0*;_$wZ`SUh_%vp)?FQ@8>9hYKHI zfAiu1euj8~!U6mXvQ#*L4}TC#g#-BO#2*w6;C12!3J35@WT|iff0y`!!U4QZyuif) zkfp)_d>GAhaRC2}EENu*^ARi+4uD1T6b``sCRzHu*I|B_EdAKWVEzaBX?`50O@6-g z7R-+P6v?apD*0JBhu#q?4^cRWKOswnbNEH#D+=eZCcdI@4oh-?!a4i`@fC%0 zI1*n`IEQ~td`00LeuMam!a3-~Lln;8kI7Qu9DbGfio!XJiLW5e!Tkd9760`IV7lbz zH$D&Z-^tG}eF5h0lb?k*_;K>H@CLt2oI~LaewD&f;SK%+aSnwy_$F}TteXuzCxCWH*kNJIEVj5mVSnq!VSFC!_rTp7rLJ%rf>*< zhb$Ei;bX)r6b?ZnONB#tO~4Xy2rij3XV-7sAEp)Gus3uEgFP~;z<2Gkh779jw!4fz z?ytFQhcO8TYkMv59*z8pO~3o8m5;W5@Wc@x+?}=9=@U;JAM>La0f?8cKl${rZvXPq z^=laN-~MyKOetNVin K@;ox_-Tw!qz-M6q literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/week41_174_1.png b/doc/LectureNotes/_build/html/_images/week41_174_1.png new file mode 100644 index 0000000000000000000000000000000000000000..51eceb2fa4112d0b0c00e81de2ab4c7b878a066b GIT binary patch literal 4442 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/week41_197_1.png b/doc/LectureNotes/_build/html/_images/week41_197_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f67803304c427354d9489ebec45b63c6e2efa2 GIT binary patch literal 37317 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

kCdJQtf9@_ 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/week41_201_1.png b/doc/LectureNotes/_build/html/_images/week41_201_1.png new file mode 100644 index 0000000000000000000000000000000000000000..63f89ad964ce85a63c99eaaab0bd700523ea3b45 GIT binary patch literal 47022 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

diff --git a/doc/LectureNotes/_build/html/intro.html b/doc/LectureNotes/_build/html/intro.html index 28b72581b..286ca1691 100644 --- a/doc/LectureNotes/_build/html/intro.html +++ b/doc/LectureNotes/_build/html/intro.html @@ -310,6 +310,16 @@ const thebe_selector_output = ".output, .cell_output" Week 40: Gradient descent methods (continued) and start Neural networks +

  • + + Exercises week 41 + +
  • +
  • + + Week 41 Neural networks and constructing a neural network code + +
  • diff --git a/doc/LectureNotes/_build/html/objects.inv b/doc/LectureNotes/_build/html/objects.inv index 3648c7cc5f3a90a4e27cb6778a8120cfb44584ca..7c8b3c1e8dd3a9749e515d5109077c33a17b0c2d 100644 GIT binary patch delta 1073 zcmV-11kU^22$%_wc7Mro<2Ve4?|KRxlPdR=_wDBHB(qc&SJE?crX@t?L=x2`Wyk&W z1Co+L$#nW;3lctnAozpvo|PKq2$W9NiHPCL2;$oI+g|4x-17pNgl9}8D#b++HSdQZ zr=j!uTJbF5MG6e=5EHl)^2lTYk61~T(T_d~`PQO>@#_R$M1OWLq#OSFiV_RW32^(P zVw#ds07tI(aD!OFJtbPur!96I!j2vGn^@8*%6<2$CD<=I1psq4Kn^k zkVlf(+(et#!v{r1OQgx=dBtu^rF2rdhB@Ay2j$UK$tD z!%hQ6+T@M06QHqqD>Gjh(C?C&OAood>zxp9J-^!6IM$ERxeWU1_pj5uHPxCc6#YH6*4%$)f(%4EC+tqN*vF6Xt_Kda~FlcWVOs>|86&xHKsj&iP}zI?hM z^L3}xbo^1461AISv_I!TO)T$nqcPqW{72QSYH=2D;RjrN7Etx!&A308V_$_GdASZ< zpDfXzwb8jS`+DqHt98f6LR>4EJAW7R4SNU r+X!?{X!7?j80TZaSAQ2})c3MH!YeIJd)ixn_exA}6O8@`N{3@lbiEjr delta 1013 zcmVgc7IJ%<2Vq8@BS5igsRL`Am6!V2H4#x7*a4Zdsghm)?!N@NlwWA z`fXXZksXCSLE7%8UrDXE9cQdGsIEYpWSz(uK3zfF#6D-H$l;y~WD1@zRj4(WB5I$H zLrG(o^`+u@!bJ)U?hq5Wlj^`!0^hMxET=!_Ak}M!3f6A~Jb%l4Z%H@&)BBNSfOnNN3WOSA!*=|pBmfbx9mZx;obiaxy&MQr5 z8}$oz(dJUUzh!s%r_fc2YR@%UKzBRw4Hca`>I35Iq}QN>N6itpL9kJnOb3M7dBQAA zm<VSJ=QNN%`81uM8Hcp`Y3nadGekFO_@C*gmzHB0JA)NzLOPfubSb6G!- zIm_%`tw$osdezqY3TCe)%Oj1}T>Bbatg&|Ye9Kadv>~&w(?RzNchRPyaxzh2YSW{g z+JCVf&$%I^%}}aieOAwH3Ykr>KO$pwqv{oCW8TW_8y573V)l!I(%#HY%GW_&6KoTk zpV6tu_}22bGn6&$H8pcm#kHf-p4Ap9E2VMN%}FO?t5{sGh8vCze|Ey3`TSWklpYl= zfYH93d{fzyAAA6unw0NNuE>1d+iJRU>$u0!7@HPIhr(W&eCX6IO|buXuexK^?Q*;h3k4@uLpN1Be; j?|BJoJ3ygu`EU_S`Ysg}CYN;ux+gSNhtvB%4>SsC%dhdZ diff --git a/doc/LectureNotes/_build/html/project2.html b/doc/LectureNotes/_build/html/project2.html new file mode 100644 index 000000000..73c9a483a --- /dev/null +++ b/doc/LectureNotes/_build/html/project2.html @@ -0,0 +1,783 @@ + + + + + + + + Project 2 on Machine Learning, deadline November 13 (Midnight) — Applied Data Analysis and Machine Learning + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + +
    +
    + + + + + + + + +
    + + +
    +
    + + + +
    + + +
    +

    Project 2 on Machine Learning, deadline November 13 (Midnight)

    +

    Data Analysis and Machine Learning FYS-STK3155/FYS4155, Department of Physics, University of Oslo, Norway

    +

    Date: Oct 9, 2023

    +

    Copyright 1999-2023, Data Analysis and Machine Learning FYS-STK3155/FYS4155. Released under CC Attribution-NonCommercial 4.0 license

    +
    +

    Classification and Regression, from linear and logistic regression to neural networks

    +

    The main aim of this project is to study both classification and +regression problems by developing our own feed-forward neural network +(FFNN) code. We can reuse the regression algorithms studied in project

    +
      +
    1. We will also include logistic regression for classification +problems and write our own FFNN code for studying both regression and +classification problems. The codes developed in project 1, including +bootstrap and/or cross-validation as well as the computation of the +mean-squared error and/or the \(R2\) or the accuracy score +(classification problems) functions can also be utilized in the +present analysis.

    2. +
    +

    The data sets that we propose here are (the default sets)

    +
      +
    • Regression (fitting a continuous function). In this part you will need to bring back your results from project 1 and compare these with what you get from your Neural Network code to be developed here. The data sets could be

    • +
    +

    a. A simple one-dimensional function or the Franke function or the terrain data from project 1, or data sets your propose. It could be a simpler function than the Franke function. We recommend testing a simpler function (see below). But if you wish to try more complex function, feel free to do so.

    +
      +
    • Classification. Here you will also need to develop a Logistic regression code that you will use to compare with the Neural Network code. The data set we propose are the so-called Wisconsin Breat Cancer Data data set of images representing various features of tumors. These are discussed intensively in the lecture notes, see for example the slides from week 41. A longer explanation with links to the scientific literature can be found at the Machine Learning repository of the University of California at Irvine. Feel free to consult this site and the pertinent literature.

    • +
    +

    You can find more information about this at the Scikit-Learn site or at the University of California at Irvine.

    +

    However, if you would like to study other data sets, feel free to +propose other sets. What we list here are mere suggestions from our +side. If you opt for another data set, consider using a set which has +been studied in the scientific literature. This makes it easier for +you to compare and analyze your results. Comparing with existing +results from the scientific literature is also an essential element of +the scientific discussion. The University of California at Irvine +with its Machine Learning repository at +https://archive.ics.uci.edu/ml/index.php is an excellent site to +look up for examples and +inspiration. Kaggle.com is an equally +interesting site. Feel free to explore these sites.

    +

    We will start with a regression problem and we will reuse our codes from project 1 starting with writing our own Stochastic Gradient Descent (SGD) code.

    +
    +

    Part a): Write your own Stochastic Gradient Descent code, first step

    +

    In order to get started, we will now replace in our standard ordinary +least squares (OLS) and Ridge regression codes (from project 1) the +matrix inversion algorithm with our own gradient descent (GD) and SGD +codes. You can use the Franke function or the terrain data from +project 1. However, we recommend using a simpler function like +\(f(x)=a_0+a_1x+a_2x^2\) or higher-order one-dimensional polynomials. +You can obviously test your final codes against for example the Franke +function.

    +

    You should include in your analysis of the GD and SGD codes the following elements

    +
      +
    1. A plain gradient descent with a fixed learning rate (you will need to tune it) using the analytical expression for the gradient.

    2. +
    3. Add momentum to the plain GD code and compare convergence with a fixed learning rate (you may need to tune the learning rate). Keep using the analytical expression for the gradient.

    4. +
    5. Repeat these steps for stochastic gradient descent with mini batches and a given number of epochs. Use a tunable learning rate as discussed in the lectures from weeks 39 and 40. Discuss the results as functions of the various parameters (size of batches, number of epochs etc). Use the analytical gradient.

    6. +
    7. Implement the Adagrad method in order to tune the learning rate. Do this with and without momentum for plain gradient descent and SGD.

    8. +
    9. Add RMSprop and Adam to your library of methods for tuning the learning rate.

    10. +
    +

    The lecture notes from weeks 39 and 40contain more +details and code examples. Feel free to use these examples.

    +
      +
    1. Replace thereafter your analytical gradient with either Autograd or JAX

    2. +
    +

    In summary, you should +perform an analysis of the results for OLS and Ridge regression as +function of the chosen learning rates, the number of mini-batches and +epochs as well as algorithm for scaling the learning rate. You can +also compare your own results with those that can be obtained using +for example Scikit-Learn’s various SGD options. Discuss your +results. For Ridge regression you need now to study the results as functions of the hyper-parameter \(\lambda\) and +the learning rate \(\eta\). Discuss your results.

    +

    You will need your SGD code for the setup of the Neural Network and +Logistic Regression codes. You will find the Python Seaborn +package +useful when plotting the results as function of the learning rate +\(\eta\) and the hyper-parameter \(\lambda\) when you use Ridge +regression.

    +

    We recommend reading chapter 8 on optimization from the textbook of Goodfellow, Bengio and Courville. This chapter contains many useful insights and discussions on the optimization part of machine learning.

    +
    +
    +

    Part b): Writing your own Neural Network code

    +

    Your aim now, and this is the central part of this project, is to +write your own Feed Forward Neural Network code implementing the back +propagation algorithm discussed in the lecture slides from week 40 and +week 41.

    +

    We will focus on a regression problem first and study either the simple second-order polynomial from part a) or the +Franke function or terrain data (or both or other data sets) from +project 1.

    +

    Discuss again your choice of cost function.

    +

    Write an FFNN code for regression with a flexible number of hidden +layers and nodes using the Sigmoid function as activation function for +the hidden layers. Initialize the weights using a normal +distribution. How would you initialize the biases? And which +activation function would you select for the final output layer?

    +

    Train your network and compare the results with those from your OLS and Ridge Regression codes from project 1 if you use the Franke function or the terrain data. +You should test your results against a similar code using Scikit-Learn (see the examples in the above lecture notes from week 41) or tensorflow/keras.

    +

    Comment your results and give a critical discussion of the results +obtained with the Linear Regression code and your own Neural Network +code.
    +Make an analysis of the regularization parameters and the learning rates employed to find the optimal MSE and \(R2\) scores.

    +

    A useful reference on the back progagation algorithm is Nielsen’s +book. It is an excellent +read.

    +
    +
    +

    Part c): Testing different activation functions

    +

    You should now also test different activation functions for the hidden layers. Try out the Sigmoid, the RELU and the Leaky RELU functions and discuss your results. You may also study the way you initialize your weights and biases.

    +
    +
    +

    Part d): Classification analysis using neural networks

    +

    With a well-written code it should now be easy to change the +activation function for the output layer.

    +

    Here we will change the cost function for our neural network code +developed in parts b) and c) in order to perform a classification analysis.

    +

    We will here study the Wisconsin Breast Cancer data set. This is a typical binary classification problem with just one single output, either True or Fale, \(0\) or \(1\) etc. +You find more information about this at the Scikit-Learn +site or at the University of California +at Irvine.

    +

    To measure the performance of our classification problem we use the +so-called accuracy score. The accuracy is as you would expect just +the number of correctly guessed targets \(t_i\) divided by the total +number of targets, that is

    +
    +\[ +\text{Accuracy} = \frac{\sum_{i=1}^n I(t_i = y_i)}{n} , +\]
    +

    where \(I\) is the indicator function, \(1\) if \(t_i = y_i\) and \(0\) +otherwise if we have a binary classification problem. Here \(t_i\) +represents the target and \(y_i\) the outputs of your FFNN code and \(n\) is simply the number of targets \(t_i\).

    +

    Discuss your results and give a critical analysis of the various parameters, including hyper-parameters like the learning rates and the regularization parameter \(\lambda\) (as you did in Ridge Regression), various activation functions, number of hidden layers and nodes and activation functions.

    +

    As stated in the introduction, it can also be useful to study other +datasets.

    +

    Again, we strongly recommend that you compare your own neural Network +code for classification and pertinent results against a similar code using Scikit-Learn or tensorflow/keras or pytorch.

    +
    +
    +

    Part e): Write your Logistic Regression code, final step

    +

    Finally, we want to compare the FFNN code we have developed with +Logistic regression, that is we wish to compare our neural network +classification results with the results we can obtain with another +method.

    +

    Define your cost function and the design matrix before you start writing your code. +Write thereafter a Logistic regression code using your SGD algorithm. You can also use standard gradient descent in this case, with a learning rate as hyper-parameter. +Study the results as functions of the chosen learning rates. +Add also an \(l_2\) regularization parameter \(\lambda\). Compare your results with those from your FFNN code as well as those obtained using Scikit-Learn’s logistic regression functionality.

    +

    The weblink here https://medium.com/ai-in-plain-english/comparison-between-logistic-regression-and-neural-networks-in-classifying-digits-dc5e85cd93c3compares logistic regression and FFNN using the so-called MNIST data set. You may find several useful hints and ideas from this article.

    +
    +
    +

    Part f) Critical evaluation of the various algorithms

    +

    After all these glorious calculations, you should now summarize the +various algorithms and come with a critical evaluation of their pros +and cons. Which algorithm works best for the regression case and which +is best for the classification case. These codes can also be part of +your final project 3, but now applied to other data sets.

    +
    +
    +
    +

    Background literature

    +
      +
    1. The text of Michael Nielsen is highly recommended, see Nielsen’s book. It is an excellent read.

    2. +
    3. Mehta et al, arXiv 1803.08823, A high-bias, low-variance introduction to Machine Learning for physicists, ArXiv:1803.08823.

    4. +
    +

    c. Goodfellow, Bengio and Courville, Deep Learning.

    +
    +
    +

    Introduction to numerical projects

    +

    Here follows a brief recipe and recommendation on how to write a report for each +project.

    +
      +
    • Give a short description of the nature of the problem and the eventual numerical methods you have used.

    • +
    • Describe the algorithm you have used and/or developed. Here you may find it convenient to use pseudocoding. In many cases you can describe the algorithm in the program itself.

    • +
    • Include the source code of your program. Comment your program properly.

    • +
    • If possible, try to find analytic solutions, or known limits in order to test your program when developing the code.

    • +
    • Include your results either in figure form or in a table. Remember to label your results. All tables and figures should have relevant captions and labels on the axes.

    • +
    • Try to evaluate the reliabilty and numerical stability/precision of your results. If possible, include a qualitative and/or quantitative discussion of the numerical stability, eventual loss of precision etc.

    • +
    • Try to give an interpretation of you results in your answers to the problems.

    • +
    • Critique: if possible include your comments and reflections about the exercise, whether you felt you learnt something, ideas for improvements and other thoughts you’ve made when solving the exercise. We wish to keep this course at the interactive level and your comments can help us improve it.

    • +
    • Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don’t properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning.

    • +
    +
    +
    +

    Format for electronic delivery of report and programs

    +

    The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:

    +
      +
    • Use Canvas to hand in your projects, log in at https://www.uio.no/english/services/it/education/canvas/ with your normal UiO username and password.

    • +
    • Upload only the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them.

    • +
    • In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters.

    • +
    +

    Finally, +we encourage you to collaborate. Optimal working groups consist of +2-3 students. You can then hand in a common report.

    +
    +
    + + + + +
    + + + +
    +
    + +
    +
    +
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    +
    + + +
    +
    + + + + + \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/search.html b/doc/LectureNotes/_build/html/search.html index 925c45331..00a5b8f7e 100644 --- a/doc/LectureNotes/_build/html/search.html +++ b/doc/LectureNotes/_build/html/search.html @@ -315,6 +315,16 @@ const thebe_selector_output = ".output, .cell_output" Week 40: Gradient descent methods (continued) and start Neural networks +
  • + + Exercises week 41 + +
  • +
  • + + Week 41 Neural networks and constructing a neural network code + +
  • diff --git a/doc/LectureNotes/_build/html/searchindex.js b/doc/LectureNotes/_build/html/searchindex.js index 555d5b82d..6865f344c 100644 --- a/doc/LectureNotes/_build/html/searchindex.js +++ b/doc/LectureNotes/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["chapter1","chapter10","chapter11","chapter12","chapter13","chapter2","chapter3","chapter4","chapter5","chapter6","chapter7","chapter8","chapter9","chapteroptimization","clustering","exercisesweek34","exercisesweek35","exercisesweek36","exercisesweek37","exercisesweek38","exercisesweek39","intro","linalg","project1","schedule","statistics","teachers","textbooks","week34","week35","week36","week37","week38","week39","week40"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["chapter1.ipynb","chapter10.ipynb","chapter11.ipynb","chapter12.ipynb","chapter13.ipynb","chapter2.ipynb","chapter3.ipynb","chapter4.ipynb","chapter5.ipynb","chapter6.ipynb","chapter7.ipynb","chapter8.ipynb","chapter9.ipynb","chapteroptimization.ipynb","clustering.ipynb","exercisesweek34.ipynb","exercisesweek35.ipynb","exercisesweek36.ipynb","exercisesweek37.ipynb","exercisesweek38.ipynb","exercisesweek39.ipynb","intro.md","linalg.ipynb","project1.ipynb","schedule.md","statistics.ipynb","teachers.md","textbooks.md","week34.ipynb","week35.ipynb","week36.ipynb","week37.ipynb","week38.ipynb","week39.ipynb","week40.ipynb"],objects:{},objnames:{},objtypes:{},terms:{"0":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,26,28,29,30,31,32,33,34],"00":[0,1,5,6,9,11,28,29,32],"000":[1,3],"0000":9,"00000":9,"000000":[5,11,28,29],"00000000e":[5,29,32],"000054":28,"0001":[1,17],"00012934":29,"00015239":29,"0001539814498783133":9,"00019998":5,"00021438167895478945":[],"0002364":29,"0002382102844775691":32,"00024087":5,"00029012":5,"00031535148309577417":6,"00031535148309580783":6,"00034944":5,"000417932":2,"00042089":5,"000464088":2,"00048325":29,"00050694":5,"00058016":6,"00060705":6,"00061058":5,"00062595":6,"00063364":31,"00063862":31,"0006527":29,"00066668":6,"00067395":[],"00068088":31,"00068734":6,"00068946":6,"00073541":5,"00075597":31,"00076495":6,"00076905":6,"0007698473260556325":6,"0007698473260556343":6,"00079129":6,"00079910":31,"00079968":5,"00081564":[],"00083346":31,"00084705":6,"00085889":6,"00087697":6,"00088573":5,"00089187":31,"00091628":[],"00092647":6,"00092904":31,"0009485400848532":[],"00096314":5,"001":[1,2,8,13,17,32,33],"00100519":6,"00104613":29,"0010479245926411787":[6,31],"00105081":6,"00106677":5,"00107405":6,"00111756":6,"0011526":6,"00115999":5,"00117627":[],"00118508":6,"00119699":31,"00128479":5,"001323":6,"00134327e":[],"00137818":6,"00139705":5,"00140849":31,"00148709":29,"00149311":6,"00149956":6,"00152117":6,"00154733":5,"00154860":31,"00156376":6,"00168251":5,"00170724":[],"00172452":29,"00174276":6,"00175331":6,"00183869":29,"00186347":5,"00186362":29,"001880":5,"00199495":[],"00200":8,"00202624":5,"00202679":29,"00202756":6,"00203959":[],"00217499":6,"00219194":31,"00219624":29,"00224413":5,"00225484":29,"00225909":[],"00228742":6,"00229911":29,"0023548":6,"002381316302584886":6,"0023813163025848865":6,"00242398":[],"00242954":31,"00242999":6,"00243186":6,"0024401":5,"00245177":[],"00249435":6,"00249831":[],"00266858":2,"00270244":5,"00274989":6,"00289724":6,"0029114":[],"00293838":5,"00305172":25,"003100":28,"00310113":2,"00312361":6,"00315593":6,"0032153180657605116":[6,31],"00323332":6,"00324969":29,"0032542":5,"00325450":31,"003301":6,"00335936":[],"0033955154592040923":[6,31],"00341073e":[],"00353823":5,"00354492":29,"003620":28,"0036237":6,"0036367":6,"00369758":6,"00375475":5,"003755":5,"00379522":[],"0038332550504751595":32,"0038335":6,"003909404072811221":[6,31],"00391839":5,"00392139":[],"0039987":6,"004":[5,30,31],"004091940707753925":[6,31],"00410387":6,"00410478":6,"004113634617443131":[6,29],"00411363461744314":[6,29],"004113634617443147":[6,29],"0041559863458613296":[6,31],"00420072":31,"00424909":2,"00424967":6,"00426027":5,"00426531":29,"00433417":11,"00440346":6,"00440395":0,"00443743":6,"00445655":11,"00446979":29,"00451679":[],"004579219539673834":[6,31],"00458878":6,"00460304":[],"004610275230656182":[6,31],"00462287":6,"00465099":31,"00471782":5,"00472199":6,"00472512":6,"00472549":29,"00474485":29,"00478655":29,"00480366":[],"00480371":29,"0049544":6,"004999999999999994":0,"00512927":5,"00517114":6,"00526348":6,"0053018":6,"00554552":6,"00556826":6,"0056799":5,"00579953":6,"00588657":6,"00595615":29,"00598615":[],"00607783":6,"00611979e":[],"00613258":[],"006162":6,"00617499":5,"00620347":[],"00627535":29,"00630331":6,"00631057":[],"00642221":6,"00642268":[],"00642935":[],"00646613":[],"00651112":[],"00660427":6,"00663699":[],"00669662":[],"00672607":6,"00673407":6,"00676387":6,"0068011":6,"00680794":[],"006829400694106674":29,"00683748":5,"00683964":6,"00686806":[],"00687175":[],"007024126888938144":[6,31],"00703355":[],"00712321":29,"0071642501586093735":25,"00719176":6,"0072675":[],"00727646693":[0,28],"007315":[28,29],"00736955":[],"0074331":5,"00754534":[],"00759119":6,"007785":5,"00778523":5,"00781918":31,"00784393":6,"007891914573161948":29,"00798988":[],"00799998":29,"00803064":6,"00805074":31,"00813803":6,"00817631":6,"00823002":5,"00827728":6,"00830822":[],"00831018":6,"00834567":6,"00844667":28,"00848904":6,"00851512":[],"00858536":29,"0086649156":[0,28],"008675369724975977":5,"00868983":[],"00894639":5,"00905423":6,"009163470508352218":5,"009164545680330616":[6,31],"00917248":6,"00920609":[],"00929251598272297":[],"00934327e":29,"00934499":6,"0093869":29,"00952586":29,"0096208":6,"00976647":29,"009855809602167547":[],"00989896":[],"00990475":5,"00992331":6,"00996754":6,"01":[0,1,2,5,6,9,11,13,17,27,28,29,31,32,33,34],"010018312644139219":[6,31],"01006401":[],"0100706":6,"010331721306655165":[6,31],"01033856":[],"01038358":29,"01050849":[],"010516485576646504":[6,31],"0106014":22,"01066519":6,"01076611":5,"01076733":[],"0109":[],"010902":28,"01097423":29,"0110":25,"01103246":[],"01107621901137467":[6,31],"011225":2,"01130932":29,"0113104":6,"01135167":29,"01179792":6,"011917343246903285":29,"01191824":5,"012073649469946107":[6,31],"01214101":29,"01219292":6,"01222822":29,"01223198":6,"01231917":6,"01257265":[],"01265755":29,"012658":29,"01267006":29,"01268892":29,"01288591":29,"01290811e":[],"01290947":6,"01295356":5,"013121574062587286":[6,31],"01318643":6,"01344196":28,"01347636":29,"01347916":6,"01348565":6,"013623165903312745":[],"01362461":[],"01367553":6,"01372375":29,"01397146":6,"01405935":6,"01416528":6,"01420034":[],"01424197":29,"01432847":[],"01433809":5,"014436800088896381":[6,31],"01449782":6,"01458337":6,"014586":29,"01458611":29,"0146081":6,"01463049":6,"01463052":29,"01477821":29,"01492":29,"01502518":29,"0150723888951771":6,"01507238889517717":6,"01508632":29,"01508966":29,"01521658e":[],"01529503":29,"01531845":6,"01537557":[],"0154222":29,"01542292":31,"01549377":6,"01549939":31,"01550546":31,"01552289":29,"01558197":5,"01566461":[],"01594452":31,"01600491":[],"01603602":[],"01619664":[],"016285782696017142":[6,31],"01633913":6,"01640891":6,"01655318":6,"016587414993045335":[6,31],"01663866":[],"01667827":[],"01671556":29,"01691985":6,"0169643":5,"01704432":22,"01708781":6,"01708852":6,"01713366":6,"01722502":[],"01724499":5,"01735584819559331":[6,31],"017355848195593312":[6,31],"01762067":29,"01765474":29,"017665":5,"01783414e":29,"018232":[28,29],"01831050e":6,"01831207e":6,"01865187e":[],"01866537":6,"01873344":11,"01873869":5,"01881546":29,"01882522":[],"01897575":[],"01898855":6,"01899119":[],"01905883":6,"01908936":6,"019140656913589":25,"01914066":25,"01916913":29,"01919702":22,"01931743":[],"01963611":6,"01969145":6,"01975416527168255":[6,31],"01975848":6,"01989299":29,"01989549":28,"02":[0,3,4,6,7,12,28,32,34],"0200568":29,"02024701e":[],"02024962":6,"020404272938413143":9,"02044454":[],"02054837e":6,"02061026":29,"02068067":6,"0207306":29,"02073509":5,"02079171":29,"02098261":6,"02123176":6,"02126208":29,"021592704588021174":[6,31],"021592704588021178":[6,31],"02178583":[],"02183021":28,"02186131":[],"02198702e":6,"02198703e":6,"02208512":6,"02228115":6,"02229529":6,"02231445":34,"02252765":5,"02288816":[],"022999498260366198":[6,31],"02308518":28,"02348765":6,"02365049":6,"02400359":29,"02416381":[],"02424794":31,"0245528":6,"02468681":29,"02492265":5,"02498832":6,"02503753":6,"02511518":6,"02522069":6,"02536494":29,"02542246":[],"02546675":31,"025709":[11,29],"02574735e":[],"02586427":6,"02593026":29,"0260906":6,"026250840755899812":11,"02625193":8,"02635835":29,"026605727637184554":[6,31],"026605727637184558":[6,31],"02702978":29,"02707227":5,"02723445":6,"02760977349102238":[6,31],"027609773491022394":[6,31],"02761736":[],"02764023":[],"02790465":[],"02809859":29,"028389":[],"02838933":[],"02845284":[],"02857":4,"029":6,"02944425":29,"029483":5,"0296969":29,"029733":[28,29],"02976145":6,"02992852":[],"02994311":5,"02f":[6,23],"03":[1,6,29,32],"03025391":[],"03032441e":6,"03060273":[],"03063575":29,"03065428":[],"03074083":[],"03077640549":4,"03099776":5,"031":[5,30,31],"03113051":[],"03119091":29,"03172365":[],"03195835":29,"03196357":6,"03251863":5,"03256632e":1,"03267527":6,"03279636":6,"0330308045183219":6,"0330308045187757":6,"03308408":5,"03338173":[],"03365768507152769":[6,31],"03370315":29,"033790755027115954":5,"03389964":[],"034047":28,"034169230664804":28,"03447512":6,"034557":29,"03543039":29,"03543958":29,"03562355":6,"03568439":6,"035909":28,"0359565":5,"03616508":29,"03630548":6,"0366352614656884":[],"03707133":11,"03717939":29,"03727597":[],"03728183e":[],"03735403":[],"0374748":[],"03774822e":[],"03781367141738902":[6,31],"03814292":6,"03815288":6,"038300":[11,29],"03856554":22,"03868779":[],"03894328":29,"039":6,"039039":5,"03935519":[],"03946221":[],"039967668952797":6,"0399676689527975":6,"04":[1,6,11,32],"040102":5,"04010697":6,"04014929":[],"0401585":28,"04058784":[],"04063602":6,"04084872":22,"041":9,"041050166905828786":[],"04111096":29,"0411487294305088":6,"041148729430523":6,"04191629":13,"04193203":29,"042044382097756156":28,"04220758":6,"04223754":28,"04225015":29,"04259402":29,"04292593":0,"04295757":31,"043":9,"04310095":[],"04314342":29,"04315108":5,"0431531":[],"04346721":5,"04355837":6,"04362":9,"04362755":29,"04372783":29,"0437499":2,"04389027":6,"04423486":6,"04426647":29,"04426744e":29,"044334":[28,29],"04448923":28,"044613":6,"0447389":29,"04537385":6,"04543942":6,"04547353":29,"04555073":28,"04566964":6,"0458":9,"04584982e":[],"04648335":5,"04669463":29,"04683565":5,"04690007":29,"04720848":[],"04778116":25,"04784395":6,"04816611e":[],"04818727730430286":[6,31],"04869126e":[],"048920":28,"04892055":6,"04909093":6,"04912436":6,"04926746":31,"049462":28,"049556996627824":6,"0495569966278269":6,"0496375":29,"05":[1,4,6,13,23,29,34],"05009826":6,"05024857":[],"05056463":[],"050663":[],"05066303":[],"05100875":6,"05126901":29,"051418":5,"051649":[11,29],"0517473":5,"05183886":[],"05227921801205679":[6,31],"052305":29,"05238712":[],"05263":9,"052992":[],"05302":9,"053417":29,"05357244":[],"05364854":8,"05383795":6,"053849":5,"053944":[],"05412502":[],"05432856":22,"054375":[],"05447415":6,"05459089":29,"054617":29,"054655":29,"054954":[],"05505310046363":2,"05515143e":[],"05533":9,"05544019":[],"055676":[28,29],"055734":29,"055910":29,"055987":29,"056030":[],"05614483":5,"05623":9,"05648":9,"05651951":6,"05667":9,"056683":29,"057124":[],"05716368155342902":[6,31],"057179":[],"057219":[],"057300":29,"057393":29,"057406":5,"057418":29,"057457":29,"057722":29,"05781491e":[],"057835":29,"05785343":6,"05789007":6,"05792524":[],"05796251":6,"05807125":6,"05825965":[],"058435":[],"05852973":28,"058552":29,"058556":[],"058645":29,"058738":[],"05883":9,"05884":9,"058854":29,"058952":29,"058996":29,"059031":29,"059182":5,"059427":5,"05966593":28,"059736":[],"059807":29,"05982961":22,"059830":[],"059951":29,"05999":9,"059993":29,"06":[3,4,6,29,33,34],"060001":11,"060037":[],"060083":29,"06020587":6,"060254":29,"06026294":29,"060278":[],"060300":[],"060334":[],"060349":28,"060387":[],"06043581":6,"060567":5,"060716":29,"06072551":[],"06075426":11,"060756":29,"060872":29,"061013":[],"061034":5,"061084":11,"061092":5,"061163":29,"061239":[],"061264":[],"061359":29,"061443":29,"061452":29,"061614":29,"061642":[],"061679":28,"061775":5,"061836":[],"061915":[],"06200174":5,"062016":29,"062082":[],"062082386342319454":[6,31],"062100":[],"062221":11,"062292565":4,"062337":29,"062351":[],"062470":[],"062599":29,"062624":29,"062749":[],"062797":5,"062874":29,"062967":5,"06299237e":[],"063000":[],"063019":29,"063055":5,"063061":29,"06307625":[],"063080":29,"063081":5,"0632":31,"063260":29,"06331463":29,"063325":[],"063407":11,"063436":[],"063443":28,"063653":29,"063716":[],"063724":28,"063760":[],"063822":[],"063832":[],"063894":29,"063912":[],"063927":[],"06397412":[],"063982":[],"064074":29,"064294":[],"064412":5,"064420":[],"06444":9,"064501":29,"064532":5,"06453579006728322":[6,31],"064602":5,"064606":29,"064609":29,"064634":11,"064699":29,"064793":29,"06481015":34,"064856":[],"064874":5,"06488406":28,"06491736":6,"064987":5,"065006":[],"065026":28,"065077":29,"065089":[],"065158":5,"065214":5,"065249":[],"065378":29,"065390":29,"065410":29,"06547790180152352":[6,31],"06547790180152355":[6,31],"065517":11,"065588":[],"065801":[],"065815":[],"065872":[],"065910":[],"065982":5,"066042":5,"066066":29,"066077":[],"066344":5,"06637":9,"06638817":22,"06642248":29,"066438":[],"066453":11,"066474":29,"066500":29,"066612":29,"066647":29,"06664867":22,"0666807":2,"06668613e":[],"066762":5,"066787":29,"066804":[],"06682268":[],"0668226833598415":[],"066837":[11,29],"066854":29,"066999":29,"067009":5,"06724062":5,"067328":5,"067409":[],"067419":11,"067437":5,"067440":5,"067611":5,"067630":[],"067637":29,"067707":29,"067745":[],"067748":[],"067826":[],"067832":[],"067915":11,"067979":[],"068":[],"068083":[],"068241":5,"068264":29,"068307":29,"068403":11,"06842111e":[],"068441":29,"06844519414009444":[6,31],"06844519414009445":[6,31],"06855126e":[],"068606":11,"068629":29,"068727":29,"068734":5,"0687531":[],"068757":[],"068816":5,"068906":29,"068974":5,"068987":5,"069028":29,"069033":11,"069055":5,"06915522":[],"069213":5,"069257":5,"069296":[],"069365":11,"069384":11,"069388":[],"069452":29,"069584":[28,29],"069594":[],"069629":[],"069630":[],"069739":[],"069746":5,"069766":5,"069803":[],"069822":5,"069939":[],"07":[6,29],"070042":11,"07004211":11,"070043":[28,29],"070067":[],"070107":11,"070146":29,"070157":11,"07016":9,"07017":9,"070213":29,"070220":11,"070228":5,"070275":5,"07039":9,"070441":[],"070457":29,"070569":5,"070582":29,"070597":5,"07062318":6,"070737":29,"070769":[],"070795":5,"070811":11,"070889":[11,29],"070986":[5,29],"071062":11,"071138":[],"07115":9,"071191":5,"071258":11,"0713":[0,28],"07136324":[],"07139233":[],"071423":5,"07145103":11,"071452":11,"071498":[],"071554":5,"07160048164232538":[6,31],"0716004816423254":[6,31],"071611":5,"071773":5,"071788":[],"071801":[],"071872":11,"071879":11,"07188255":[],"072000":29,"072009":11,"072111":29,"072128":[],"072132":29,"072168":[],"07226292":[],"072310":5,"072369":[],"072404":5,"072476":29,"072621":29,"072624":11,"072790":11,"072805":5,"072830":[],"07285":3,"072914":[],"072931":11,"072953":5,"073008":5,"073088":11,"073152":11,"07321674":[],"073354":11,"073362":11,"073422":5,"073444":[],"073445":11,"073494":5,"07358383":29,"073598":[11,29],"073630":11,"073634":[],"073644":29,"073708":[],"073716":[],"073728":5,"073802":11,"073853":[],"073858":5,"073972":11,"073980":5,"073984":11,"074067":[11,29],"074084":29,"07410236e":[],"074108":11,"07420079":[],"074201":[],"074210":29,"07421084":5,"074323":29,"074327":11,"074330":5,"074419":11,"074439":11,"074457":11,"074509":11,"0745177":[],"074545":5,"074560":11,"07456491":5,"074686":[],"074772":5,"074780":11,"074879":[],"07490892":6,"074969":5,"074970":11,"075058":11,"075249":11,"075342":11,"075513":11,"075521":11,"075523":5,"075582":11,"075587":11,"075758":5,"075779":11,"075816":29,"075889":29,"075980":11,"075984":11,"075990":[],"076012":5,"076105":11,"076125":5,"076127":11,"076136":5,"076150":29,"076249":5,"076266":11,"076354":5,"07641937":31,"0764924":6,"076504":11,"076587":11,"076592":5,"076662":11,"076721":[],"07678":9,"076820":[],"076825":11,"076833":11,"076857":11,"07692307692307693":9,"076938":[11,29],"076950":[],"076996":11,"077168":29,"077171":11,"077219":[],"077226":11,"077460":29,"077542":5,"077549":[],"077613":11,"077650":5,"077705":11,"077710":11,"077756":5,"078":[],"078029":11,"078110":29,"078187":11,"07820":9,"078329":[],"078336":29,"078412":11,"078467":5,"078540":29,"078545":5,"078593":5,"07864":9,"078656":5,"078707":5,"07871":9,"078845":11,"078868":11,"078974":29,"078986":29,"079121":11,"079124":11,"079165":11,"079226":5,"07929472":13,"079432":[],"079434":11,"07944154":[22,28],"079455":5,"079581":5,"0796891867672603":[6,31],"079878":11,"07988085572440823":[],"079882":5,"079946":29,"08":[9,25,29,33,34],"080105":11,"080163":11,"080181":[],"080256":5,"08030109":25,"080406":5,"080411":5,"08043851":5,"080473":[],"080505":11,"080616":29,"080690":[],"080764":29,"08076969085177746":11,"080773":11,"080933":11,"081126":11,"081246":5,"081276":29,"08131003":6,"08156108":6,"081570":11,"081584":11,"08165104":29,"081655":29,"081680":5,"08174081":25,"081772":11,"08185315":29,"081916726599974":[],"081955":11,"081976":11,"0819836":[],"082189":5,"082205":5,"08221578":25,"082255":11,"082347":11,"08238863600759742":5,"08245909":22,"082506":11,"08251519":6,"082517":5,"08256285":[],"082577":11,"082653":29,"082760":11,"082781":11,"082875":28,"08299273e":6,"083000":11,"083066":[],"083096":11,"08318298e":1,"083317":[],"08333333333333333":9,"08336233266":4,"083527":[28,29],"08352721390288316":28,"08376632":[6,29],"083766322923899":[6,29],"0837663229239043":[6,29],"083853":5,"083988":5,"084075":5,"084076":29,"084247":5,"08426840630693412":[6,31],"08426840630693413":[6,31],"08449894":[],"08455":9,"08474":9,"084764":5,"084809":29,"08481871":29,"084843":5,"085023":11,"08505008":28,"085235":[],"0853136633465326":32,"085391":11,"085454":11,"08551306":6,"08551338":[],"08551625":[],"08576932":6,"08593216":6,"086441":11,"086518":5,"086843":11,"086864":[],"08690":9,"08703034":28,"087247":5,"087250":5,"08758":9,"087603":5,"087642":11,"08770809":[],"087887":28,"088155":5,"08815506":5,"0881981":5,"08844723450419088":22,"088697":5,"08871404":5,"08881497884574564":29,"08902":9,"0892144853354966":32,"0895387":29,"089539":29,"089710":5,"08996":9,"09":[1,29],"090365":5,"09076319":28,"09149148":[],"0917":9,"09172409":6,"09179697e":[],"092":6,"09251":9,"093":6,"09308274":28,"09327269724691106":25,"093408":5,"094082198961999e":6,"0940821989652176e":6,"09609807":5,"09744":9,"09760094":[],"09780":9,"09791":9,"09858511":[],"09861229":[22,28],"09903804":8,"09919198949274803":[6,31],"09951287404314545":1,"0n":[0,28],"0s":4,"0x118f6d610":[],"0x11fdbfd60":[],"0x127a38670":33,"0x127e425e0":13,"0x13002a640":[],"0x1305bb1c0":[],"0x13eaa7490":33,"0x13ef4e1c0":32,"0x16c9a8880":13,"0x2800bca90":[],"1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,20,22,24,25,26,27,30,31,32,33,34],"10":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,17,22,23,24,25,26,28,29,30,31,32,33,34],"100":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,22,25,26,28,29,30,31,32,33,34],"1000":[0,1,2,4,5,8,11,13,14,21,25,28,29,32,33,34],"10000":[2,5,6,10,11,13,25,30,31],"100000":8,"10001":10,"1001":[9,25],"1002":25,"1003":25,"10030":9,"1005":25,"1007":30,"10077114273548984":[6,31],"1009":25,"101058":22,"1011":25,"1013":25,"1013904243":25,"10141413e":6,"1015":25,"10160394":[],"102":[3,29],"1023":25,"10230":9,"1024":3,"10247463629935179":[],"10251317e":[],"1026":25,"1027":25,"103":1,"1030":25,"10340":9,"10354083919795562":[],"1037":25,"10378326e":1,"1038":25,"10391807":6,"10398646080125036":[6,31],"10398646080125037":[6,31],"1040":25,"10405456":11,"10430":9,"10440776":28,"104411":[28,29],"1047":25,"10520":9,"10572":31,"10589577":5,"106095":[11,29],"10638925":[],"1063892533225306":[],"106431":28,"1078":31,"10790125813226321":29,"108":[6,9],"1089452":[],"10913":6,"10927588":11,"109276":11,"10931453":6,"10954867e":[],"10960":9,"10m":4,"10th":9,"10x":[0,28],"11":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,18,22,23,24,25,26,27,28,29,30,31,32,33,34],"1100":25,"1101":25,"11022302e":5,"11022363":29,"11039573e":[],"11078018494378859":[],"111":[1,7,12,32,34],"11100":9,"11197884":22,"11202337":31,"112383":[11,29],"1124":9,"11352187":28,"11390":9,"114550":31,"11462415":5,"11482289e":6,"11507992e":1,"11547777218876518":[6,31],"115822":6,"11590":9,"11660":9,"11666666666666667":1,"117":8,"117430":28,"11744554e":6,"11780":9,"118":2,"1182":31,"118318":[28,29],"11837308":[],"11837671":22,"1184":4,"11840":9,"11890":9,"11896755":22,"119":2,"119936":2,"11m":4,"12":[0,1,2,3,4,5,6,8,9,11,12,13,22,25,27,28,29,31,33,34],"120":[2,3],"12011393e":[],"12023635e":[],"1203":9,"1203284":8,"12044974":29,"120450":29,"120508":11,"12050822":11,"1206":8,"121":[8,9,10],"12129289":[],"12155548":28,"1215pm":[26,28],"12182967":6,"122":[2,8,9,10],"12222222222222222":1,"122282":28,"123":2,"12318726e":6,"12330033":29,"12333649":6,"123711":6,"12380":9,"124":[0,28],"12400":9,"12552073e":6,"12591227":29,"12594172":[],"126":9,"1261":9,"12618549":5,"1265":9,"12695501":28,"127":4,"1271":6,"1277":6,"127812":28,"12790":9,"128":[3,4,13,33,34],"12814914":22,"128664":6,"12871842":29,"129":2,"1297":9,"1298":9,"129963":31,"12m":4,"12pm":[26,28],"13":[0,1,2,4,5,6,9,11,12,13,22,25,28,29,31,32,34],"130":9,"13003291":6,"130694":29,"13069442":29,"131":9,"132":9,"13220608e":6,"1326":9,"1326197715":28,"13280":9,"133":[7,32],"13404683":22,"13410999":11,"134110":11,"13422946e":[],"1345":31,"1346":31,"135":9,"13535942":6,"13542726":13,"13646574":5,"13661243e":6,"13679863":6,"1371":6,"13740":9,"137400784702911":29,"13749148e":[],"13759245e":[],"137652":[11,29],"1377":[3,4],"1378":[3,4],"1379":[3,4],"1380":[3,4],"1381":[3,4],"1382":[3,4],"13827006":[],"13829298":22,"1383":[3,4],"1384":[3,4],"1385":[3,4],"1386":[3,4],"13865173":5,"138775":[11,29],"1388976715362099":22,"13890":9,"1392559585048734e":6,"139255958997547e":6,"13925918083728273":[],"139431112903922":31,"1394311129039245":31,"1395084586525954":31,"1395235273363669":31,"13m":4,"14":[0,2,4,5,6,8,9,10,11,12,13,22,25,27,28,29,34],"140":[2,9],"14021063":6,"14023656":28,"141":2,"14100":9,"1412":[33,34],"1416398":6,"14174745":6,"1418":9,"142":9,"14250":9,"14277718e":29,"143":[2,7,32],"1437":1,"14400":9,"1440501043841336":1,"14440":9,"1446729567":4,"144993":28,"145":2,"146":2,"14629156":31,"146704":11,"14670413":11,"14697721":[],"14710":9,"14722222222222223":1,"147400":[11,29],"147420":[11,29],"1479":9,"148":[3,4],"148009":[],"14812206":6,"14859":6,"149":[3,4],"149294":[],"149299":6,"14g":[6,31],"14m":4,"15":[0,1,2,4,6,7,8,9,12,13,15,16,17,18,25,28,31,32,33,34],"150":[3,4,8,9],"15005476":5,"15047127":22,"150726":6,"15098090e":6,"151":[3,4],"15130074e":6,"1513237":[],"151515":[],"15183857":[],"152":[3,4,9],"15200":9,"1520039":22,"152701":31,"153036":[28,29],"15313054":31,"15384615384615385":9,"15443469e":32,"155":9,"15553403":[],"15649598":[],"15673992":22,"15693449e":[],"156956":5,"15697121e":[],"1575":9,"158":9,"1587":9,"1590":9,"15962297":13,"15975618":28,"15990":9,"15990395":[],"15g":[6,31],"15m":4,"15pm":28,"16":[1,2,3,4,5,6,8,9,10,22,25,28,29,30,31,34],"1603":3,"16087734":[],"16111111111111112":1,"16168603e":[],"16211139":5,"16220":9,"162246":5,"16231451":4,"1625":9,"1628":9,"162999":28,"16304863":29,"163049":29,"16342407":5,"16343471":6,"16356503":31,"16384":3,"16500":9,"16521791":[],"16570701":[],"166":9,"16762223e":[],"167787":5,"168":9,"16805821e":6,"16921883":[],"169219":[],"16933554":[],"17":[1,2,4,5,6,8,9,18,25,29,31,34],"17006020e":[],"17022089147584388":25,"1709":9,"17136288":22,"17144765665252978":[],"171525":29,"1715252":29,"17174962e":1,"17257288":25,"1726":9,"17275391":[],"17300":9,"17305512":22,"1731":9,"17362603":[],"17440757e":[],"17446471":6,"17451":[],"1752":9,"175300":[28,29],"17540272":28,"17615838052499":11,"17641709":6,"17647619":6,"17733642":28,"17777777777777778":1,"17801022":5,"17861098":6,"17917768":5,"179404":6,"17949575":5,"17953942":11,"1797":[1,3],"17m":4,"18":[2,4,6,7,8,9,10,13,19,25,31,32,33,34],"18029127":5,"1807":4,"1809":9,"181":9,"1812":9,"18128852":[],"1821":9,"1836":31,"18383522":29,"184":9,"18409473e":[],"18433544":28,"184519":[28,29],"18474816e":[],"18488944":[],"18489312":[],"1849":[3,4],"1850":[3,4],"1851":[3,4],"1852":[3,4],"1853":[3,4],"1854":[3,4],"1855":[3,4],"1856":[3,4],"1857":[3,4],"185713":5,"18571316":5,"1858":[3,4],"1859":[3,4],"1860":9,"18613217e":6,"18624242":[],"18660":9,"18670072e":29,"18673098":11,"18726877":25,"18780801":28,"18807824e":[],"18824315":28,"1887":6,"189367":28,"189496":[28,29],"189622":[28,29],"19":[2,4,6,9,13,25,31,34],"19003":6,"19166136":22,"191963":28,"19207979":5,"1921649":[],"19220":9,"19343949":22,"1937079":22,"1940":[0,29],"194042826649355e":6,"1940428268204826e":6,"1943":[12,34],"19431161":5,"194312":5,"19436962e":[],"19463967":28,"194861702085775":[],"1956":9,"19569961":[6,29],"19652884e":[],"1970":[22,28],"1973":9,"197370":[11,29],"19740":9,"19743643":25,"19769458e":[],"1979":[6,31],"19800":9,"19825288e":[],"19888258":25,"19983530":6,"1999":31,"1_1":[12,34],"1_2":[12,34],"1_3":[12,34],"1cm":[0,8,10,25,28],"1d":[1,2,3],"1e":[1,2,4,13,14,33,34],"1e10":14,"1e4":6,"1f":1,"1k":22,"1n":[0,28],"1s":4,"1x":[0,28],"2":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,21,22,23,24,25,27,30,31,32,33,34],"20":[0,1,2,4,6,7,8,9,13,25,26,28,29,30,31,32,34],"200":[0,2,3,4,8,9,10],"2000":[0,29],"20015436":6,"20017452":[],"2004":[13,32],"2006":27,"2008":28,"2010":1,"2011":1,"2014":4,"2015":1,"2016":[0,28],"2018":[0,6,29,31],"2019":[8,9],"2021":[6,14,29,30,32],"2022":28,"2023":[3,4,15,16,17,18,19,20,28,30,31,32,33,34],"2027":9,"20272874":[],"20277777777777778":1,"20289224":[],"20355156":31,"20371418":[],"20484434":[],"20500":9,"205231":28,"20594513":22,"2060":9,"2069":9,"20695722":28,"207545":[11,29],"207888":28,"20833333333333334":1,"20867052175003364":[6,31],"20916295":29,"209789":28,"20980":9,"21":[0,1,2,4,5,6,7,9,12,13,15,22,28,29,31,34],"210340":[11,29],"21055226":13,"21058097":5,"21059098":22,"21110005":31,"21130":9,"2116753732":4,"21169159e":6,"213103":[11,29],"213743":[11,29],"21401303e":[],"21460652":11,"214607":11,"21596432":6,"216290":[11,29],"216683":[11,29],"21710121":[],"21879159":28,"22":[0,1,2,4,5,6,9,12,13,19,22,28,29,31,32,33,34],"22001043":28,"22044605e":[5,29],"22092934e":[],"221":8,"22103874e":[],"221180":[28,29],"22130126":28,"2216":9,"2218":9,"221805":2,"221921":5,"22209775e":[],"222400":[28,29],"22241171":25,"22328509":28,"22368396":28,"22467274":31,"225":4,"22574374":28,"226296567359957":25,"22690428":5,"22729927":22,"2284246870217162":[6,31],"22847924":5,"23":[1,2,4,6,7,9,12,13,22,28,31,34],"23002365e":6,"23076923076923078":9,"23110543":[],"23167717":5,"23192074e":[],"232435":[28,29],"23257415":[],"2338675":29,"233868":29,"23392132":28,"234":6,"23528337":31,"2364":9,"23643365":31,"2379":6,"238":31,"2397":9,"23971032":29,"24":[0,1,2,4,6,9,13,19,22,28,31,34],"24005098e":[],"24085321":31,"24140":9,"24159785":29,"2416":9,"24175744e":6,"2419":9,"24251681":[],"24280599":[],"242806":[],"2430":9,"24390":9,"24569547":28,"246":2,"24602503e":[],"24829908":5,"24906604e":6,"25":[2,3,4,5,6,7,8,9,11,13,15,20,22,23,28,29,31,32,34],"250":[2,4,7,9,32],"25000":[0,29],"250636":28,"25084316":[],"25139357":22,"251879":[28,29],"252436":[28,29],"255":3,"255001":[28,29],"25561567":25,"256":[2,4],"25617654e":6,"25617658e":6,"25663096":22,"2572":9,"2575":9,"25844504":[],"25872167e":[],"259153":[11,29],"2597":9,"26":[2,4,6,9,13,31,34],"26037366":22,"2619":29,"262638":5,"26263837":5,"26291451":25,"26292364":31,"26297455":29,"26301436":5,"264":4,"26409315307910025":6,"2640931530791004":6,"264377":[],"26437713":[],"264421":28,"2650":9,"265109911":4,"26514544":22,"2654":9,"26666667":13,"26710969":5,"26780278":5,"268":9,"26803966":[],"26931499":13,"2697447":5,"26995402":29,"27":[0,1,2,4,6,13,29,31,34],"27092910":6,"27424746e":[],"2750":9,"276263":[11,29],"27650338":28,"27700":9,"27760":9,"27793476":11,"277935":11,"27859357":[],"27924636":5,"27n_":25,"28":[1,2,3,4,6,9,13,16,29,31,33,34],"28008933":22,"280179":28,"280573":5,"280647":[11,29],"28081221e":[],"28096517":28,"281930":28,"28205578e":29,"28206156":[],"282259":28,"282727":[11,29],"2830637392":4,"283078":22,"28336218e":6,"28390":9,"28391978":29,"28443039":31,"28475098":8,"28490569":28,"28607817":22,"2861":25,"28621796e":[],"28638913":34,"28662669":[],"2871":9,"2873":9,"2882":25,"2886":25,"2890":[0,28],"28908491":22,"2892":25,"29":[4,6,7,9,20,31,32],"29135778":5,"291358":5,"2915":25,"29153991":28,"29167186":5,"29199381":22,"29228133":[],"29275129":22,"2931":28,"29384004e":[],"29401213":22,"29454955e":[],"29496954e":[],"2953":[3,4],"2954":[3,4],"2955":[3,4],"2956":[3,4],"2957":[3,4],"296414":28,"2968":28,"2980":28,"29822833":6,"2990":28,"299748":[28,29],"2_":[12,34],"2_1":[12,34],"2_2":[12,34],"2_3":[12,34],"2_i":[12,34],"2_m":[6,25,31],"2_t":[13,33,34],"2_x":25,"2b":25,"2c8f433990d1":[33,34],"2cm":8,"2d":[1,3,11,12,21,28,34],"2e":[6,31],"2f":[0,7,9,10,11,12,28,29,32,34],"2g":2,"2g_i":2,"2k":3,"2m":[6,31],"2n":[0,2,3,28,29],"2nd":9,"2p":25,"2pm":[26,28],"2pt":4,"2x":[0,3,8,13,28,33,34],"2x_ix_jy_iy_j":8,"2x_j":8,"2y_i":10,"2y_j":8,"3":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,21,22,23,24,25,26,30,31,32,33,34],"30":[0,1,4,6,7,9,10,13,26,28,29,31,32,33,34],"300":34,"30000":[0,28],"30010":9,"30119421":8,"302":31,"30258509":[22,28],"303":6,"30335380e":[],"30442964":29,"30447937":[],"30466214e":6,"30478013":28,"30494363":[],"305":[0,28],"30567713":22,"306":[0,28],"30630294":25,"30677003":[],"306770031113352":[],"307":[0,28],"3072":3,"3073":31,"307631":11,"30763135":11,"3076923076923077":9,"30787294":6,"308":[0,28],"309":[0,28],"30940":9,"31":[4,12,22,25,28,34],"310":[0,28],"31022577":13,"310579":29,"3105791":29,"311":[0,28],"31113868e":[],"312":30,"3123314713548606":[6,31],"31276579e":6,"313":30,"31318084":5,"31415359e":[],"31457796":5,"315":[6,30],"3155":[0,5,6,30,31,32],"31579721":22,"316":30,"31650694":6,"31705377":28,"31718909":11,"317367":11,"31803769":13,"3189":31,"31896852":8,"31927572":22,"31995103":[],"32":[3,4,6,12,13,22,25,31,33,34],"3200":1,"32149601703519115":[6,31],"3214960170351912":[6,31],"3215":9,"32341247e":[],"324":2,"3245":2,"32450054":29,"3250":[1,6],"32577534":[],"32584888":22,"32615859":25,"326238":[28,29],"32632463":5,"326325":5,"32708194":28,"32941592e":[],"329492":28,"33":[2,4,9,12,22,26,31,34],"33066907e":[5,29],"33113018":[],"33166055e":5,"331939":[28,29],"333":[7,32],"33333333":13,"33408606":[],"33534416":25,"33746734":[],"33746734412664":[],"33860497":28,"33903511":[],"33995567":22,"339961":5,"3399612":5,"34":[2,4,9,22,31],"340071371496255":29,"3403":9,"340583":28,"340782":[11,29],"34114547":5,"34149655":5,"341497":5,"34158540e":[],"342680":[28,29],"3436":[0,28],"3437":[0,28],"3439564710454786":9,"34412923":29,"34447052":22,"34517495":22,"34569596":5,"34685874":25,"35":[0,2,4,6,9,17,23,26,28,31],"35140":9,"351636":[11,29],"35182854":5,"35412147":31,"35470445e":[5,29],"35533773":6,"35564856":[],"356399":[28,29],"3568919":[],"357508":[28,29],"35771826":6,"3581341341":4,"35825829e":[],"35846425":31,"359":[5,30],"3597516959642966":25,"3597517":25,"36":[0,1,2,4,5,6,23,25,31],"360":1,"36051635":22,"3613":9,"361556":[28,29],"3616476":[],"3621311":5,"3632959111950474e":6,"363295916323784e":6,"36434588":[],"3655222":5,"367":2,"36789460e":[],"36795972e":[],"369139":[11,29],"37":[1,4,9,19,23,28,32],"3703468543933255":22,"370782966":4,"37112277":22,"37239927e":29,"3729492":22,"37388140e":[],"37396662":6,"375694":28,"3765":4,"376547":28,"3770":4,"3773":4,"377372":29,"37737221":29,"37853034e":[],"3786":4,"3789":4,"37900111":6,"37917253":28,"3795":4,"3799":4,"38":[1,4,9,23,25,28],"380":9,"38020451":5,"380205":5,"38088413":22,"3812":4,"38135733e":6,"3814":4,"3816":4,"38165546":[],"3817475779":[6,31],"3821":4,"382187":28,"38259375":28,"38319502e":[],"3834":4,"3836":4,"3837":4,"3838":4,"3838917029":33,"3840":4,"38461538461538464":9,"38461539":33,"38465596":5,"38511413":25,"3853":4,"38533185":6,"3856":4,"386":9,"38629436":[22,28],"3865":4,"387":30,"3873":4,"38764522e":[],"3877":4,"3878":4,"38787447":28,"38831624":22,"3886":31,"38916861e":6,"3893":4,"38962192e":6,"39":[0,1,4,9,26,28,34],"3901":4,"3907":4,"3907408":[],"39078751e":[],"3919":4,"39197698":29,"391977":29,"39214397":29,"392144":29,"3923":4,"3928":4,"39300201":22,"39308683e":[],"3932":4,"3944":4,"39457095":22,"3948":4,"39483726":22,"39541528":[],"39572825":[],"39579407":5,"39612983":25,"39644178":[],"3970":4,"39706038":5,"39730396":23,"3975":4,"397700":[11,29],"39789527":[22,28],"39895173e":[],"39931051e":29,"3996":4,"39965905e":[],"399836":[28,29],"3999":4,"3d":[2,3,4,6,13,23,31,33],"3f":[1,3,9],"3n":22,"3x":[2,8],"3x_i":2,"3y":8,"3yk470mj5p931p9dtkk0y6jw0000gn":[1,6,13,23,28,31,33],"4":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,22,23,25,28,30,31,32,33,34],"40":[1,4,6,9,23,26,28,31],"400":4,"4000":[9,28],"4014":4,"401842":[11,29],"40216748":11,"4033":4,"40362053":[],"40389562":25,"404":29,"404130":11,"40413036":11,"4050":[27,28],"40500157":25,"405890":[11,29],"40620066":29,"406201":29,"40629059":[],"40644745":22,"4066":4,"4082":6,"4087":9,"4087793":5,"40892146":[],"40927184e":6,"41":[0,1,2,4,9,22],"4107":9,"41097603":[],"41219619":29,"41246325":22,"41291861":[],"41371745":[],"41433969":5,"415066":11,"41506637":11,"41511965e":1,"415201":28,"4155":[2,15],"4166666666666667":9,"41771755":[],"418506":[11,29],"4187996":[],"41882037e":6,"42":[1,2,4,8,9,10,22],"421120085426022":[],"42138688e":[],"42172457":28,"42198678":5,"421987":5,"42239354":22,"4230769230769231":9,"42441033":5,"42450":9,"425564":[],"42556446":[],"42578415":28,"4258049":[],"426":[6,7,32],"42800148":[],"428741":11,"42874148":11,"429":31,"429345":[],"42934502":[],"42967903e":[],"43":[0,2,4,7,9,22,32],"43043913":22,"43054282":5,"4310":28,"433":31,"43330971e":6,"43425860e":[],"43490863":28,"43496417":28,"435163":[28,29],"4353":4,"43579948e":6,"43639284e":29,"436462435":4,"43766686":11,"43809274e":[],"438136":[28,29],"439230":6,"44":[0,2,4,22],"44089210e":[5,29],"441182":[],"44118245":[],"441264":28,"442600":[11,29],"443217":[28,29],"444":9,"44407741e":[],"44418822":25,"44520102":22,"446033":31,"44624525e":29,"446453":28,"44729805":22,"44732200e":[],"44842116":34,"44921888":22,"44970586e":1,"45":[2,9,26,28],"450":9,"450257":[11,29],"4504":9,"45065211":[],"45073476e":[],"450m":4,"45134965":22,"45207509":28,"452553":28,"45255977":13,"45281756":25,"45308692":22,"45405253e":[],"455173":31,"4555094":[],"4557763":11,"455947":[28,29],"455m":4,"456":9,"45610021":28,"456m":4,"457":[2,4],"458027":[28,29],"458078":[11,29],"458m":4,"45915671e":29,"45922756e":[],"45960079":5,"46":[2,9,26,28],"4600624385659884":28,"4601":9,"46022436e":[],"46153846153846156":9,"462":[7,32],"462m":4,"46313714":[],"46383925e":6,"46383926e":6,"463861":28,"4676059":29,"467606":29,"467818":[],"46781836":[],"468m":4,"46984697e":6,"47":[2,9,26,28],"47042744":5,"470714":[28,29],"47075725":6,"47116868e":6,"47125748":5,"47132891":5,"47176716":31,"47176783":31,"47179152":31,"471874":11,"47187428":11,"47202442":31,"47313680":31,"473m":4,"47430124e":[],"47447472":22,"475405":[],"47540513":[],"47610036":6,"47701204":28,"477m":4,"47815203":11,"479465113":4,"479m":4,"48":[2,4,9,31],"480":28,"48134747":28,"481401":5,"48140137":5,"48145226":22,"481979":6,"48240312e":[],"48243352e":[],"48257387":[26,28],"483257001":13,"48336413":[],"483m":4,"48418018":[],"48423285":28,"48464841":22,"48476997":11,"484m":4,"48598711":[],"485m":4,"48629506":28,"487m":4,"48815255e":[],"488m":4,"489502":11,"48950243":11,"48994188":5,"49":[2,5,6,9,11,23,29,33,34],"49078463":[],"49152":3,"492m":4,"4940954":[0,28],"49555885e":[],"4959161509357395e":6,"495916150936645e":6,"495m":4,"49616116":22,"497":[3,4],"4974810657432664":[],"497m":4,"498":[3,4],"49865980e":[],"499":[3,4],"4990":25,"4992":25,"4997":25,"499m":4,"4c4c7f":[9,10],"4d":3,"4f":6,"4pm":[26,28],"4s":4,"4y":8,"4y_i":10,"5":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22,23,25,28,29,30,31,32,33,34],"50":[1,2,3,4,6,7,8,9,10,13,28,29,31,32,33,34],"500":[1,3,4,6,9,10,13,31,32,33,34],"50000455":5,"50000553":5,"50000718":5,"50000855":5,"50000969":5,"50001063":5,"50001142":5,"50001207":5,"50001261":5,"50001306":5,"50001343":5,"50001374":5,"500014":5,"50001414":5,"50001422":5,"50001439":5,"50001454":5,"50001466":5,"50001476":5,"50001485":5,"50001492":5,"50001498":5,"50001502":5,"50001506":5,"5000151":5,"50001512":5,"50001515":5,"50001517":5,"50001518":5,"50001519":5,"50001521":5,"50001522":5,"50001523":5,"50001524":5,"50001525":5,"50079895":25,"500m":4,"501":[3,4],"5018":25,"50184628e":[],"501m":4,"502":[3,4],"50227564e":6,"50274255":22,"503":[3,4],"50321091":5,"504":[3,4],"50427787":31,"50462474":22,"505":[3,4],"50519365":[],"50562981":[],"506":[0,3,4,29],"506553":29,"50655336":29,"50691065":25,"50697511":28,"507":[3,4],"50721349":28,"507d50":[9,10],"508":[3,4],"50837888e":[],"50846111e":6,"50846112e":6,"50j":[13,33],"50x10":1,"51":[2,10],"510":1,"511":[3,4],"511888":5,"51191552":6,"512":[3,4],"51374050":31,"514219":[28,29],"515m":4,"5177783846":4,"51845286":22,"518895":28,"52":[3,4,33,34],"52015514":[],"52204004":22,"52209178":[],"522836":28,"522m":4,"52362157e":29,"52400486e":[],"52482437":28,"525054":[],"52518625":28,"525739":11,"52573941":11,"526744":[11,29],"52775466":31,"52795454":11,"52874252":5,"52944573":11,"529446":11,"5297947920715131":[],"53":[2,3,4,9],"5303329":11,"5305555555555556":1,"531280":[28,29],"5320148":22,"53250091":28,"53278871":5,"532789":5,"5340022":[],"534362":28,"53542722":25,"53703498":6,"53738247":31,"53755010e":[],"5378811":11,"53811172e":[],"5384615384615384":9,"539261":[11,29],"54":[2,3,4,6,9,25],"540":9,"54039921":5,"54041041e":5,"541605":[28,29],"54285633":25,"543939":29,"54393936":29,"544439":[28,29],"54637219":31,"55":[1,2,3,4,9],"55086461":28,"552042":4,"55315304":25,"55328795e":[],"555m":4,"556m":4,"557795":[11,29],"55854694":11,"55868255":[],"5594":6,"55955126":22,"55972302e":[],"56":[1,2,3,4,9],"56033697":5,"56171141":28,"56198284":5,"561m":4,"56240703e":[],"56288861":25,"562888614232874":25,"563167":28,"56364308":28,"56366546":22,"56399029e":[],"564":9,"564374":[11,29],"56465688":22,"56477354":[],"565":9,"56536":[0,28],"56570797e":[],"56589683":31,"566":9,"56636537":[],"56636616e":6,"567":9,"56740132":[],"568":[9,31],"568587":5,"56858701":5,"569":[1,9],"56912044e":6,"56939714":5,"56965674":31,"57":[0,2,3,4,8,9,26,28],"570":9,"571":[5,30],"571105947979344e":6,"571105947979394e":6,"57201944e":6,"572069":28,"57285536":[],"573029":[],"57302926":[],"574465":[11,29],"57572321":22,"576":31,"57670824":22,"5769230769230769":9,"57952471e":[],"58":[2,4,9,10,26,28],"5808118":[],"58193124":[],"581m":4,"58268575":[],"5828247":25,"5829913":28,"5833333333333334":9,"583595":[28,29],"58492636e":29,"58742004e":[],"58818643":22,"58841019e":[],"58948138":25,"58948347":22,"59":[2,4,9],"59004971":22,"591317992":4,"59222238":[],"59446603":[],"59511582":22,"59589728e":[],"596m":4,"5974862":[],"59895188":28,"59916814e":[],"5cm":25,"5f":[8,33],"5x":8,"5y":8,"6":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,25,26,28,29,30,31,32,33,34],"60":[1,2,3,4,9],"60000":4,"6019067271":4,"60293962":5,"603636":28,"6037092":28,"60383004":28,"60420593":5,"60543038":29,"60673226":11,"6067329321734374":[],"606760":5,"6071713":[],"60815105":6,"60943791":[22,28],"61":[2,7,32],"61043964e":[],"61197218":22,"612939":[28,29],"613579":[28,29],"61394448":22,"614808":[11,29],"61504341":28,"61532006":[],"6153846153846154":9,"61585143":25,"61702282":6,"61775176":31,"618982":[28,29],"61971639e":[],"61992828e":[],"62":[3,4],"621102":28,"62373464":11,"625":[7,32],"62554614":[],"626635268":[6,31],"62841921":[],"62862896":22,"6289054":28,"62894215":5,"62919818":28,"63":[0,1,3,4,6,7,29,31,32],"6300745149331701":29,"63025821e":6,"63162342":29,"63180447":31,"63249532e":6,"63277911e":[],"633949":28,"634715":[],"63471545":[],"63498144":5,"63567272":22,"63677721":[],"637129335071195":29,"63849228e":[],"63875295":[],"64":[1,2,3,4,7,13,22,28,32,33,34],"64012627":5,"64111239":[],"64147722":28,"64158883e":32,"64291044e":[],"64292493":[],"64299732":28,"64316192":31,"64316482":31,"64391062":5,"643m":4,"64502836":25,"64550753":25,"646283":[11,29],"64742912e":6,"647473":[11,29],"64846973e":[],"649382":[11,29],"64969451":5,"649695":5,"64x50":1,"65":[1,2,3,4,7,8,9,32],"65036493":[],"652187":11,"65218729":11,"6536392":29,"65408703e":[],"65442354":29,"654424":29,"654m":4,"65571174e":29,"65599456":29,"65628888":28,"6568551":22,"65704027":28,"657041":28,"65720414":25,"65743689":29,"65833132":29,"65885453":5,"65891389":29,"658914":29,"66":[2,3,4],"66051179":[],"66064822":29,"66080313":29,"66204648":6,"66219404":6,"6628996975186953":29,"66294408":29,"66323494":25,"6638":9,"6652177":29,"66545355":[],"66560":9,"66562658e":[],"665m":4,"666597":28,"666897":[],"66689729":[],"667":9,"667239":28,"66798429":[],"668172":[28,29],"67":[2,9],"67035174":28,"67047975e":6,"67189384":28,"671m":4,"67264685":[],"672721":[28,29],"67314874e":5,"67347822":[],"67432237e":[],"67554897":28,"67640036":28,"67671601":[],"6780674":[],"67890723":22,"68":2,"68192193":5,"68286725":29,"68419351":5,"684194":5,"68534263e":6,"68542204":5,"685643":[],"68564345":[],"68592431":31,"6860597312101988":[],"6869":9,"68759903e":[],"687m":4,"6887363571":4,"68929213e":6,"689345":28,"689519":[11,29],"69":[2,7,9,25,32],"690":9,"69009002":28,"690617":[28,29],"69069n_":25,"690710":[],"69071035":[],"69111133e":[],"692":31,"692268":5,"69226802":5,"69230769":33,"6923076923076923":9,"692m":4,"69484813e":5,"69504801":6,"69582036":25,"69634577e":6,"69695259":5,"69714468":[],"6980":[33,34],"69818111":22,"69873514":22,"699":2,"69908626":6,"6999536":11,"6n_":25,"6pm":28,"7":[0,1,2,3,4,5,6,7,8,9,11,12,13,15,22,23,24,25,27,28,29,31,32,33,34],"70":[1,7,9,32],"700":2,"70037324e":29,"701":2,"701370":5,"702":2,"704":2,"70573539":[],"70653767":4,"706833":28,"70710678":[5,29],"70832814":5,"7086067479626619":29,"7094664":[],"709698":28,"71":1,"7100524":[],"71142161":29,"711422":29,"7119":9,"712018":[11,29],"71269506e":[],"71285447":28,"713163":28,"7135487":11,"71375273e":[],"71424969":[],"71437567912473":25,"71437568":25,"71467081":25,"71504681":[],"71640333":22,"71737253":29,"71761101":29,"718165":5,"72174172":11,"72228205":28,"72271878e":6,"72328506":22,"7236674":5,"724":3,"72859758":5,"72981762":8,"73":[6,31],"731000":[28,29],"73231305":[],"73293298":28,"733096":[28,29],"734107":11,"73410729":11,"73448544":22,"74":[6,31,33,34],"740":9,"74081822":8,"740m":4,"741391":5,"7413913":5,"741m":4,"74280244":22,"74384949":29,"74401372":[],"74462857":[],"74577867":22,"74607851":29,"74724767":22,"74818082":28,"74829661":29,"74840212":5,"7490462":25,"749765":[28,29],"75":[2,5,6,8,9,11,23,28,29,31],"750445":[28,29],"75050135":29,"7506274061293645":11,"751699":[11,29],"75170092":5,"75268791":[],"75269037":29,"75282841":22,"75354069":[],"75457798":[],"75576555":29,"75627883":11,"756279":11,"75631027":28,"756352":[28,29],"75719828":28,"75770568":29,"75823753e":[],"75963425":[],"76":[2,9,26,28],"76004012":25,"76010633":22,"76077707e":[],"76084455":28,"76174289e":[],"7644":4,"764997683364458":[],"765":[7,32],"7651068":25,"7664107":28,"76771975":28,"7692307692307693":9,"76936315":5,"7697":31,"77":[2,9,26,28,33,34],"770204":3,"77025447e":[],"77152076":5,"7718":9,"77265448":29,"77343022e":[],"77448317e":[],"77632628":[],"77636e":[13,34],"77646856":28,"77714169":8,"7779287093124035":[],"77794957":22,"7782028952":4,"77856932":[],"78":2,"78009660e":29,"78156479e":5,"78177713":[],"78184120e":6,"78299706":25,"785061":28,"78524451e":[],"78556129":28,"78882958":22,"78941903":5,"79":2,"79072516":[],"79111643":5,"79125269":[],"791809":[],"793167":[28,29],"79328516":[],"794282":[11,29],"794906":[],"79490641":[],"795225339396409":5,"79675445":25,"79787771":25,"79896478e":[],"79909592":31,"79914677":25,"7993408651198877":31,"79934087":31,"7995707762668065":31,"7d7d58":[9,10],"8":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,22,23,25,28,29,30,31,32,33,34],"80":[0,1,2,5,8,9,29,30,31],"800":[4,7,32],"80152684":22,"80189569":[],"80228781e":[],"802550782087107":[],"80354994":6,"80460179":31,"80469739":5,"80540415e":[],"80548430e":[],"80609615e":6,"80609616e":6,"80802836":28,"80847477e":6,"80861057":11,"808611":11,"81":1,"81048318e":6,"81071342":28,"81160425":5,"81333804":6,"814":[7,11,32],"81597834":31,"815am":[26,28],"81633628":11,"816454":[28,29],"81664404":[],"816847":[28,29],"81753152":22,"81784973":25,"8182":31,"8197":31,"82":2,"82102668":[],"82139086e":[],"82198978":5,"82296251":22,"82410428":28,"82651934e":[],"8265786":5,"82909728":22,"83":[2,28],"83146596":31,"83298727":[],"832987270767667":[],"832m":4,"83384573":29,"83443698":[],"83488328":22,"83512277":5,"83657122":28,"83752888e":[],"83770406":[],"83793362":28,"83870794e":[],"839818":28,"84":2,"84082439":28,"84159521":22,"842436":[28,29],"84290819e":[],"84355903e":1,"84359332e":[],"84380376":22,"84443254e":1,"84444399":[],"845716766413386":25,"84571677":25,"84575663":25,"8461538461538461":9,"84638256":[],"846383":[],"84666445":34,"84780262":6,"84846601":[],"84858":30,"84859258":13,"84923989e":6,"84927263":11,"84929103":22,"84942247e":[],"84994524":5,"84m":4,"85":[1,2,9],"850164":5,"85035714":[],"85263220":6,"85278920e":5,"85288931":[],"85297050e":[],"853835":28,"85514104":25,"85548858":25,"85601992":5,"85615662":28,"85714286":32,"8574":[],"858":9,"858185":28,"85888897e":[],"86":2,"86012593":22,"86015267":28,"86117291":5,"86134827":5,"86145244":11,"861676":28,"86221134":22,"86252988":6,"86341536":28,"8635085":11,"86452742":[],"86619181":28,"86630":9,"86666667":32,"86810":9,"869":[0,28],"87":[9,29],"870":[0,28],"8702784034":4,"87072815e":29,"871":[0,28],"873":[0,28],"87381451":5,"874":[0,28],"87403627e":[],"87458904":28,"87533278":13,"875794":25,"8759":[13,34],"876":6,"87627342":31,"87795661":28,"878123":28,"8784267":29,"88":[0,2,13,33,34],"88046261":5,"88168312e":6,"88182591":29,"88305878":28,"88323026":29,"88336879":5,"884399":25,"884669":29,"88529063e":6,"88613493":29,"88744469e":[],"888577549915147":5,"88908909e":[],"89":2,"89126914e":29,"8915573":[],"89288636":11,"89410423":5,"8942133":13,"89609007":22,"896911":5,"8969113":5,"89793609":22,"89996783":34,"8f":[6,31],"8g":[6,31],"8n":22,"8x8":1,"9":[0,1,2,3,4,5,6,7,8,9,11,12,13,22,24,25,26,28,29,30,31,32,33,34],"90":[1,2,9],"90075537":5,"9011":6,"90220243":5,"90223115":28,"90266948":5,"90325763":28,"9036573":22,"9040":9,"904648525660773":25,"90475506e":6,"9054":31,"906747":5,"90803422":13,"908736":[],"90873644":[],"91":[26,28],"910":9,"91050344e":[],"91128596":5,"912":[3,4],"9129629":28,"914":[3,4],"9142491":28,"91492986e":6,"915":[3,4],"91538877":[],"91650774":[],"916508":[],"9165822":25,"9166666666666666":9,"917":[3,4],"91760278":5,"91784246":[],"918":[3,4],"91812702":5,"918992":[28,29],"91966064":[],"92":[6,9,26,28],"92067658":[],"9208878":13,"92103867":[],"92236466e":[],"9230769230769231":9,"923602":28,"92405283":[],"92507116e":1,"92578916":5,"92579609e":[],"92651068":31,"92717417":28,"92729959":28,"92772833":22,"92857143":[7,32],"92930426e":[],"9295763474254684":11,"931":[0,28],"93155188":5,"93158979":5,"932656":[],"93267138892912":[],"93267139":[],"933":[5,30],"93492130e":6,"93500562":[],"93528653e":[],"93571082":25,"93601008e":29,"937":25,"937082":[28,29],"93799826":5,"938":25,"93820524":13,"9387":9,"93884803":25,"939":[0,25,28],"93944615e":[],"94":[7,25,32],"94226022e":6,"94230225":[],"942422095469182":[],"94256677":[],"94260358":11,"942604":11,"94273542":29,"94284104":5,"94320205":5,"94338159":25,"943439":5,"944":[3,4],"94433302e":[],"9444444444444444":1,"945":[3,4],"94591015":[22,28],"946":[3,4],"94639099":11,"946957":5,"94697839":28,"947":[3,4],"948":[3,4],"94815131":25,"9481513127527335":25,"94822514":6,"9482527":5,"94854992":13,"94866246":22,"949":[3,4],"94938706":[],"95":[1,7,9,11,31,32],"950":[3,4],"95008046":6,"951":[3,4],"951109":[],"95117099":28,"95190644":28,"95231424":5,"952387":29,"95284275":5,"953065564":1,"95327702":22,"95329348":[],"95351665":5,"95355327":[],"954":25,"95429024":[],"95508909":[],"95511792":29,"955118":29,"95558642":29,"955820c21e8b":4,"956563":[11,29],"95684892":5,"95686268":[],"95703":[13,34],"95763525":[],"9578":6,"958228616652075":5,"96":[1,6,7,11,31,32],"960":25,"9601304850035702e":6,"960130485007504e":6,"96024953":5,"96033509e":[],"96046928":25,"96084663":5,"961":25,"96183456":28,"962":25,"962990":28,"963198":22,"9637117593816477":6,"9640435":5,"96461989e":[],"9649652536":4,"965548":[28,29],"96611032":28,"96631321":29,"96688672":5,"966899":28,"9674916":5,"96750421":22,"967809":[11,29],"96804366":25,"96841776":13,"96890557e":[],"97":[7,32],"97005689":5,"97062694":25,"97069774":11,"970698":11,"97108e":[13,34],"9716":[],"9723":[],"97243128":5,"97300836":5,"97488151":28,"97497404e":6,"97507735":5,"97514104e":[],"9764":[],"97644118":5,"9765":[],"97690235":31,"97705827":5,"97758848":5,"978":30,"9780387310732":27,"9780387848570":27,"97804446":13,"9781492032632":27,"9783319210079595":11,"978553":5,"97898392":[6,29],"97906022e":29,"97926491":5,"97948913":22,"98":[0,1,7,9,32],"980":9,"98004227":22,"98091621":5,"98127617":25,"981321":[28,29],"98139097":5,"98215566e":[],"98275501":5,"983310":[28,29],"98404993":[],"98413059":5,"984182":11,"98418221":11,"98430782":11,"984308":11,"98454786":5,"984601":[],"98460101":[],"9849967686928113":32,"985":25,"98566191":5,"986":25,"98620879e":[],"986699":5,"98680716":5,"98686102":[],"98694705":25,"98716878":5,"9871776311306221":25,"98808176":5,"98822371":6,"988835":11,"9888544725633199":[],"989":25,"9890348":5,"9893447":5,"98947894":29,"9898ff":[9,10],"99":[1,7,9,11,13,31,32,33,34],"990":9,"99009525":5,"99051150":6,"99084226e":[],"99088801":5,"991":25,"99106686":[],"99115119":5,"99176998":5,"992":25,"99215828":28,"99242921":5,"99265097":5,"99268332":28,"993":25,"99316252":5,"99371056":5,"99389612":5,"9940253773173835":[],"9943201":5,"9947756":5,"99492986":5,"9950597269547777":29,"99528218":5,"99539415":5,"9955500279779226":[],"99566069":5,"99578809":5,"996":[5,30,31],"99608161":5,"9963311287748658":29,"9963961":5,"99650061":5,"9967458":5,"9969332511584248":29,"99700706":5,"99709215":5,"99729756":5,"99751458":5,"99758326":5,"99775587":5,"99793613":5,"99799099":5,"99813653":5,"99828624":5,"9983295":5,"99845267":5,"99854557":29,"998577":5,"99861053":5,"99862019":29,"99869482":29,"99871521":5,"99876945":29,"99881845":5,"99883628":29,"99884384":5,"99884409":29,"99891093":29,"99891873":29,"99893323":5,"99898558":29,"999":[9,25,33,34],"99901896":5,"99903755":5,"99906023":29,"99911427":5,"99912709":29,"99913489":29,"99918546":5,"99919837":5,"99920175":29,"99926459":5,"99927642":29,"9993237":5,"99933188":5,"9993511":29,"99938942":5,"99941797":29,"9994385":5,"99944272":5,"99949266":29,"99949306":5,"99953381":5,"99953475":5,"99956735":29,"99957911":5,"99961294":5,"99965056":5,"99967865":5,"99970894":29,"99970988":5,"9997332":5,"99975913":5,"99977849":5,"99978365":29,"99980002":5,"9998161":5,"99984732":5,"99987324":5,"99989476":5,"99991263":5,"99992746":5,"99993978":5,"99995":5,"999955585168597":6,"99999985":[],"9m":4,"9x":[6,23],"9y":[6,23],"\u00f8yvind":[6,29,30],"abstract":[1,20,33],"boolean":4,"break":[0,4,6,11,14,28],"byte":[22,28],"case":[0,1,2,3,4,5,6,7,11,12,13,14,16,21,22,23,28,31,34],"catch":[0,28],"class":[0,1,3,4,6,7,8,9,11,12,13,25,28,31,33,34],"default":[0,1,2,4,6,7,13,16,22,23,28,29,30,32,33],"do":[0,2,3,4,5,6,8,9,10,11,12,13,14,15,16,22,23,29,32],"ekstr\u00f8m":4,"export":9,"f\u00f8470":[26,28],"final":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,16,18,19,20,23,24,25,26,28,31,32],"float":[0,3,4,5,9,11,13,14,22,28,29,33,34],"function":[2,3,4,5,9,14,15,16,17,18,19,21,22],"import":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,16,17,23,25,31,32,33,34],"int":[0,1,2,3,4,5,6,11,13,14,22,25,29,31,33,34],"long":[0,1,3,4,12,13,28,32,33,34],"m\u00f8svatn":[6,23],"new":[0,1,2,3,5,6,7,8,9,10,11,13,14,17,22,23,28,29,32,33,34],"null":28,"public":[0,21,28],"return":[0,1,2,3,4,5,6,7,8,9,11,13,14,22,23,25,28,29,30,31,32,33,34],"sch\u00f8yen":[6,29,30],"short":[4,5,23,30,31],"super":[3,5,29,30],"switch":0,"throw":[3,6,25,31],"true":[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,19,22,23,25,28,29,30,31,32,33,34],"try":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,21,22,23,25,28,29,30,31,32,33,34],"var":[1,5,6,10,11,13,18,19,23,25,28,29,30,31,33],"while":[0,1,3,4,5,6,7,8,9,11,12,13,25,28,29,30,31,32,33,34],A:[2,3,5,6,7,10,11,12,13,16,18,20,21,22,23,24,25,26,27,29,33,34],AND:2,And:[0,3,4,5,6,9,13,20,21,23,25],As:[0,1,2,3,4,5,6,8,10,12,13,16,22,23,25,28,29,30,31,32,33,34],At:[0,4,6,13,23,28,33],BE:[0,28],Be:[2,21,28],Being:[13,33],But:[0,1,2,3,5,6,9,10,25,29,30,31],By:[0,3,5,6,12,13,17,22,28,29,30,31,32,33,34],For:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24,25,27,28,29,30,31,32,33,34],IF:[6,30,31],IN:27,If:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,21,22,23,25,28,29,30,31,32,33,34],In:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,22,23,25,27,28,29,30,31,32,33,34],Is:11,Ising:[5,12,29,34],It:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22,23,25,28,29,30,31,32,33,34],Its:[1,2,4,11],NO:[7,11,32],No:[3,4,6,9,28,30,32,34],Not:[0,1,5,6,28,29,30,31,34],OR:25,Of:25,On:[0,3,15,24,25,26,27,28],One:[0,1,3,4,5,6,7,8,11,12,13,17,20,23,25,29,31,32,33,34],Or:[0,1,6,23,28,32],Such:[0,6,12,16,25,31,32,33,34],That:[0,5,7,10,11,12,14,19,23,25,28,30,31,32],The:[4,10,13,14,15,16,18,19,20,22,23,24,25,26,27],Then:[0,1,6,8,9,10,11,12,13,14,22,23,28,29,31,32,33,34],There:[0,3,4,5,6,8,9,11,12,14,22,23,24,25,26,28,29,30,32,33,34],These:[0,2,3,4,5,8,9,10,11,12,13,14,15,16,22,23,25,26,28,29,30,33,34],To:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,23,25,30,31,32,33,34],With:[0,5,6,8,9,10,11,12,14,18,22,23,25,28,29,31,34],_0:[5,8,10,11,13,29,32,33],_1:[2,5,6,8,10,11,12,13,14,22,29,30,31,32,33,34],_2:[2,5,8,11,12,13,22,29,33,34],_3:22,_4:22,_9:[13,33,34],_:[0,1,2,4,5,6,7,8,9,10,11,12,13,17,18,19,22,23,28,29,30,31,32,33,34],_________________________________________________________________:4,__call__:[3,4],__class__:10,__doc__:[6,31],__future__:[8,9],__getattr__:30,__getitem__:2,__init__:[1,2,3,30],__main__:2,__name__:[2,10,30],__traceback__:[3,4],_auto10:[6,12,34],_auto11:[6,34],_auto12:[6,34],_auto1:[2,3,4,5,6,7,12,13,22,25,29,32,33,34],_auto2:[2,3,4,5,6,12,13,22,25,33,34],_auto3:[3,4,5,6,12,13,22,33,34],_auto4:[4,6,12,13,22,33,34],_auto5:[4,6,12,13,22,33,34],_auto6:[4,6,12,22,34],_auto7:[4,6,12,22,34],_auto8:[6,12,34],_auto9:[6,12,34],_base:8,_build:[0,17,19,21,23,27,28],_build_call_output:[3,4],_c:1,_call:[3,4],_call_flat:[3,4],_check_optimize_result:[7,11,32],_compon:11,_decor:[0,28],_depth:9,_distn_infrastructur:32,_eagerdefinedfunct:[3,4],_fraction:9,_handl:[3,4],_i:[0,1,2,5,6,7,8,11,12,13,15,16,17,19,23,28,29,30,31,32,33,34],_inference_funct:[3,4],_interpolatefunctionerror:[3,4],_j:[0,1,2,3,5,6,8,13,17,19,23,29,30,31,33],_jit_compil:[3,4],_k:[13,32,33,34],_l:[12,34],_lambda:[6,28],_leaf:9,_lock:[3,4],_logist:[7,11,32],_m:10,_make_vjp:[2,13,34],_maybe_define_funct:[3,4],_n:[2,5,8,11,13,29,32,33],_node:[2,9,13,34],_notokstatusexcept:[3,4],_num_output:[3,4],_p:[5,8,29],_process_traceback_fram:[3,4],_r:[3,4],_ratio:11,_sampl:9,_select_forward_and_backward_funct:[3,4],_split:[6,9,23],_stateful_fn:[3,4],_stateless_fn:[3,4],_t:[13,33,34],_test:[6,23],_trace:[2,13,34],_unpad:2,_valu:[2,13,34],_varianc:11,_weight:9,a0:3,a0faa0:[9,10],a1:[0,28],a2:[0,28],a3:[0,28],a4:[0,28],a_0:[0,28],a_1a:[0,28],a_2a:[0,28],a_3:[0,28],a_3a:[0,28],a_4:[0,28],a_4a:[0,28],a_:[0,1,16,22,28,29],a_h:1,a_i:[0,1,2,12,28],a_j:[1,12],a_k:[0,1,12],aaron:27,ab:[0,2,5,13,14,28,29,30,33,34],ab_channel:21,abandon:1,abbrevi:24,abid:25,abil:[0,10,28],abl:[0,1,4,5,6,7,10,12,13,16,23,29,32,33,34],about:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,21,22,23,26,30,31,32,33,34],abov:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,25,27,28,29,31,32,33,34],abovement:[6,31],abscissa:[13,32,33],absolut:[0,2,5,6,13,28,29,30,31,33,34],absorb:[29,30],acceler:[13,33,34],accept:[0,3,6,9,23,28,29],access:[0,3,11,25,29],accid:[4,6,31,32],accompani:[0,28,29],accomplish:[8,9,13,33,34],accord:[0,1,2,5,6,9,12,13,14,15,16,25,28,30,31,32,33,34],accordingli:11,account:[0,3,5,13,15,25,28,30,31,33,34],accumul:[12,13,25,33,34],accur:[0,3,4,6,10,13,31,33,34],accuraci:[0,1,3,4,5,6,7,9,10,11,12,28,29,32,34],accuracy_scor:[0,1,10,28],accuracy_score_numpi:1,achiev:[0,1,5,6,8,12,22,28,30,31,34],aco:25,acquaint:[21,28],acquir:[1,21,28],acr:[0,29],across:[1,3,6,9,21,28,31],act:[1,3,22],action:25,activ:[0,2,3,4,9,24,26,28,31,32,33],actual:[0,1,4,5,6,8,11,16,22,25,28,29,30,31],ad:[1,3,4,5,8,13,15,16,22,30,31,32,33],ada_clf:10,adaboostclassifi:10,adadelta:[13,33,34],adam:[1,3,4,26,28],adapt:[4,6,13,27,29,31,32],add:[0,1,2,3,4,5,6,8,10,11,12,15,16,17,23,25,28,29,30,31,33],add_outgrad:2,add_subplot:[1,7,12,14,32,34],addendum:5,addit:[0,2,3,5,6,7,8,9,10,12,13,15,17,21,22,23,25,26,27,28,29,30,31,32,33,34],addition:[12,13,32,33,34],address:[1,9,11,13,28,33,34],adjac:[3,12,34],adjoint:[5,29,30],adjust:[0,5,12,13,32,33,34],admir:[0,28],advanc:[4,6,12,27,28,31,34],advantag:[1,3,5,6,10,13,22,30,31,32,33,34],adversari:28,afecionado:28,affect:3,affin:[0,3,8,11,29],afford:3,aficionado:28,aforement:14,african:[0,29],after:[0,1,2,4,5,6,9,11,12,13,15,20,21,22,23,25,28,29,30,31,33,34],afterward:[0,28],ag:[0,7,24,28,29,32],ag_0:2,again:[0,1,4,5,6,7,8,10,11,12,13,15,16,23,25,28,29,30,31,33,34],against:[1,4,7,10,32],agegroup:[7,32],agegroupmean:[7,32],aggreg:[9,10],agorithm:10,agre:[5,6,25,30,31],agreement:[13,33,34],ahead:9,ai:[0,27],aid:[11,20],aim:[0,1,4,6,7,11,14,15,16,21,22,23,29,31,32],ainv:5,airplan:3,aka:[5,30,31],al:[0,2,4,15,16,17,27,28,29,30,31,32,33,34],alarm:[5,7,30,31],algebra:[0,3,5,13,21,29,30,31,33,34],algorithm:[0,1,2,4,5,6,7,8,13,14,21,22,23,25,27,28,30,31,32],align:[0,2,5,6,7,8,13,23,25,28,29,30,31,32,33],all:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34],allevi:[1,13,32,33],alloc:[3,22],allow:[0,1,2,3,5,6,8,10,13,15,16,21,22,23,28,29,30,31,32,33,34],almost:[0,1,6,8,11,13,25,28,31,32,33,34],alon:[2,9],along:[2,3,4,5,6,9,10,11,21,22,28,29,30,31,32],alpha:[0,1,2,3,4,6,7,8,9,10,13,14,25,28,29,31,32,33],alpha_0:3,alpha_1:3,alpha_2:3,alpha_:10,alpha_i:[3,13,33],alpha_k:[13,33],alpha_m:10,alpha_n:3,alpha_opt:[13,33],alreadi:[2,3,4,5,6,10,12,21,22,25,28,29,30,31,34],also:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,28,29,30,31,32,33,34],alter:1,altern:[0,1,4,5,6,7,8,9,11,13,22,23,28,29,30,31,32,33,34],although:[0,1,5,6,8,10,13,16,28,30,31,33,34],alwai:[0,3,5,6,12,13,16,25,28,29,30,31,32,33,34],am:[4,29],ame2016:[0,28],american:[0,29],among:[0,3,5,9,10,12,22,28,29,30,34],amongst:[5,30,31],amount:[0,1,3,4,6,8,10,14,21,31],an:[1,2,3,5,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,25,26,27,29,30,31,32,33,34],an_:25,anaconda:[0,1,15,21,23,28],analog:[13,33,34],analys:[6,30,31],analysi:[1,3,4,7,14,15,16,17,19,22,27,32],analyt:[2,3,5,6,7,12,13,15,21,23,28,29,30,31,32,33,34],analyz:[0,1,3,4,5,6,16,17,23,25,28,29,30],andrew:1,angl:[0,3,9,29],anharmon:3,ani:[0,1,2,3,4,5,6,7,8,9,10,12,14,18,25,28,29,30,31,34],anim:[4,12,34],ann:[12,34],annot:[0,1,3,7,8,28,29,32],announc:28,anoth:[0,1,3,4,5,6,7,8,10,11,12,13,22,23,25,28,29,32,33,34],ans_vspac:2,ansatz:[0,28],answer:[0,1,3,5,6,22,23,26,28,30,31],antialias:[2,6,23],anticip:4,anymor:[1,8],anyon:[4,8],anyth:[1,25],anytim:[26,28],apach:1,apart:[11,13,32,33],api:[1,21,28],appar:2,appear:[0,1,3,13,16,22,25,28,33,34],append:[1,3,4,8,9,13,28,33],appendix:23,appl:[3,4],appli:[0,1,2,3,4,6,7,8,9,10,11,12,13,15,16,23,25,27,28,29,30,31,32,33,34],applic:[0,1,3,4,5,6,7,9,12,13,22,23,25,27,28,29,31,32,33,34],apply_gradi:4,approach:[1,2,4,5,6,9,10,11,12,13,17,21,25,27,29,32],appropri:[2,6,9,12,13,21,25,31,33,34],approv:28,approx:[0,2,3,6,10,11,13,25,28,31,32,33,34],approxim:[0,1,2,3,4,5,6,7,10,11,13,18,19,23,25,28,29,30,31,32,33,34],apt:[0,15,21,23,28],aq:25,ar:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34],aragorn:28,arang:[1,3,4,6,7,9,10,12,13,23,28,32,33,34],arbitrari:[1,4,6,8,12,13,25,31,32,33,34],arbitrarili:[0,1,11,28],arc:[6,23],architectur:[3,4,12],area:[0,3,6,9,23,27,28],arg:[0,2,3,4,13,28,34],argmax:[1,11],argmin:[4,10,14],argnum:[2,13,34],argnum_0:2,argnum_1:2,args_with_tang:[3,4],argsort:11,argu:[1,13,33,34],argument:[0,2,3,5,11,12,13,23,28,29,30,31],argval:2,aris:[0,6,12,13,25,28,31,32,33],arithmet:[0,13,22,28,33,34],arm:[6,30],armadillo:22,around:[0,1,4,5,6,11,25,28,30,31],arr:2,arrai:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,21,23,25,29,30,31,32,33,34],arrang:[3,28],arraybox:[2,13,33,34],arriv:[0,6,9,11,22,25,28,31],arrow:[12,34],arrowprop:8,art3d:[13,33],art:[0,1,15,21,28],articl:[0,3,4,6,10,18,28,29,30,31],artifici:[0,2,7,12,27,28,32],artificialneuron:[12,34],arug:[13,33,34],arxiv:[3,4,33,34],as_fram:29,asap:28,asarrai:[0,2,6,9,29,30,33],ashort:20,asid:29,ask:[5,6,11,12,30,31],aspect:[0,6,21,23,28,29,30],assembl:[0,3,28],assert:4,assess:[0,6,23,28,29,30,31],assici:4,assign:[0,7,8,9,12,13,14,24,26,27,28,29,32,33,34],associ:[0,6,9,12,14,25,28,31,34],assum:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,22,23,25,28,29,30,31,32,33,34],assumpt:[0,3,5,6,9,11,18,23,25,28,29],ast:[0,5,6,18,23,28,30,31,32],astronomi:[28,29,30,31,32,33,34],astyp:[4,9,10],asymmetri:[0,28],asymptot:[4,6,31],async_wait:[3,4],atla:28,atom:[0,28],attempt:[0,4,6,7,8,10,28,30,32],attend:24,attent:[0,22,28],attr:[3,4,30],attract:[0,10,28],attribut:[0,9,13,28,30,31],attributeerror:[13,30],audi:[0,28],audio:[3,4],august:[15,16,28],aurelien:[0,15,24,27,28,34],austfjel:[6,23],author:[0,1,10,25,28],authour:28,auto:[9,10,25],autocor:25,autocorrelation_tim:25,autocorrelform:25,autocovari:25,autoencod:[4,21,28],autoencond:21,autograd:[21,28],autom:[0,21,27,28],automac:22,automag:28,automat:[0,1,2,3,4,11,16,21,22,28],automobil:3,autonom:4,avail:[0,1,4,6,10,11,15,20,21,22,23,24,26,27,28,31],averag:[0,1,3,6,9,10,13,14,25,26,28,29,30,31,32,33,34],avoid:[0,4,5,6,9,11,13,22,28,29,31,32],awai:[2,3,6,29,30,31],awar:[2,10],award:[26,28],ax:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,22,23,28,29,31,32,33,34],axes3d:[2,6,13,23,32,33],axes_grid1:6,axessubplot:29,axhlin:8,axi:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,22,23,25,28,29,30,31,32,33,34],axiom:[5,30,31],axlabel:[0,28],axvlin:[4,8],axvspan:4,b1:8,b2:8,b3:8,b:[0,1,3,4,5,6,8,9,10,12,13,14,15,16,25,26,28,29,30,31,32],b_0:0,b_1:[0,2,12,13,33,34],b_2:[0,13,33,34],b_5:[13,33,34],b_:[0,1,22],b_group:9,b_i:[0,1,2,12,28,34],b_ia_:[0,28],b_ia_i:0,b_index:9,b_j:[1,12,34],b_k:[0,1,12,13,33,34],b_m:[12,34],b_score:9,b_valu:9,bachelor:[24,26],back:[0,3,4,5,6,8,9,10,15,22,25,28,29,30,32,33,34],backbon:22,backend:[1,4],background:[27,28,29],backpropag:1,backtrack:9,backup:22,backward:[1,2,4,12,22],backward_pass:2,bad:[6,29,30],badli:25,bag:[9,21,28],bag_clf:10,baggin:28,baggingboot:10,baggingclassifi:10,baggingtre:10,balanc:[6,31,32],band:22,bandwidth:22,bar:[0,6,11,15,16,23,28],barber:27,bare:[4,10],base:[0,1,3,4,5,7,8,9,10,14,21,25,26,27,28,29,30,32],basi:[5,7,8,10,11,12,13,22,29,30,32,33,34],basic:[2,6,8,12,13,14,21,23,25,28,33,34],batch:[3,4,11,12,13,32],batch_shap:4,batch_siz:[1,3,4],batchnorm:4,bay:[7,32],bayesian:[5,21,27,28,30,31],beam:[28,31,32,33,34],becattini:26,becaus:[0,1,2,3,4,5,6,8,9,12,13,14,28,30,31,32,33,34],beccatini:28,becom:[0,1,2,5,6,7,9,12,13,25,28,29,30,31,32,33,34],been:[0,1,2,3,4,5,6,11,12,13,21,22,23,28,29,30,31,33,34],befor:[0,1,2,3,4,5,6,7,8,12,13,14,22,23,25,28,29,30,31,32,33,34],beforehand:[0,25,28],begin:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,22,23,25,26,28,29,30,31,32,33,34],behav:[1,6,13,31,32,33],behavior:[0,1,13,28,32,33,34],behaviour:[12,34],behind:[0,1,6,8,13,28,32,33],being:[0,1,2,3,4,5,7,8,10,11,12,13,17,25,28,29,30,31,32,33,34],believ:[9,22],belong:[7,8,9,13,14,32,33,34],below:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,23,25,28,29,30,31,32,33,34],benchmark:10,benefici:[1,13,33,34],benefit:[0,1,4,11,13,15,21,28,32,33,34],bengio:[1,24,27,28,29,33,34],benign:[1,7,9,32],besid:[4,5,30],bessel:[5,29,30,31],best:[0,1,2,3,4,5,6,7,8,9,10,12,13,23,26,28,29,31,32,33],best_estimator_:32,beta1:[33,34],beta2:[33,34],beta:[0,1,3,5,6,7,10,11,13,16,17,18,19,23,28,29,32,33,34],beta_0:[0,1,3,5,6,7,13,28,29,30,31,32,33],beta_0x_:[0,28,29],beta_1:[0,1,3,5,6,7,10,13,28,29,30,31,32,33,34],beta_1x_0:[0,28],beta_1x_1:[0,7,28,32],beta_1x_2:[0,28],beta_1x_:[0,28,29],beta_1x_i:[7,13,29,32,33],beta_2:[0,3,13,28,29,33,34],beta_2x_0:[0,28],beta_2x_1:[0,28],beta_2x_2:[0,7,28,32],beta_2x_:[0,28,29],beta_2x_i:29,beta_3:3,beta_3x_i:29,beta_4x_i:29,beta_:[0,3,6,7,13,28,29,30,31,32,33,34],beta_i:[0,3,5,17,28,29,30],beta_j:[0,5,6,13,18,23,28,29,30,31,33,34],beta_k:[13,32,33],beta_linreg:[13,32,33,34],beta_m:10,beta_mg_m:10,beta_n:3,beta_ol:31,beta_p:[7,32],beta_px_p:[7,32],beta_ridg:31,betaol:31,betaridg:31,betavalu:5,better:[0,1,2,3,4,6,9,10,11,12,13,28,29,30,31,33],between:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,17,23,25,28,29,30,31,32,33,34],beyond:[0,1,5,6,8,13,23,28,29,32,33,34],bf:[13,14,22,25,32,33],bgd:[13,33,34],bia:[0,1,2,3,5,8,9,10,12,13,19,28,29,30,32,33,34],bias:[1,2,3,5,6,9,12,30,34],big:[0,1,2,5,6,14,18,28,30,31],bigger:[1,6,29,30],bigr:[12,34],bike:9,bilbo:28,billion:[3,12,21,34],bin:[0,7,25,29,32],binari:[0,3,5,7,9,10,12,28,30,31,32],binarycrossentropi:4,bind:[0,29],binomi:[21,25,28],binsboot:[6,31],bioinformat:[0,28],biolog:[1,12,34],bios1100:[21,28],bird:[0,3,28],birth:28,bishop:[24,27,28],bit:[1,4,22,25,28],bitwis:25,bivari:2,bk:[0,13,29,33,34],bla:[22,28],black:[8,9,14],bledso:28,blob:[19,20,23,28,32,33,34],block:[6,10,21,22,25,28,31],blogpost:4,blue:[0,3],bluntli:28,bm:29,bmatrix:[0,1,3,5,7,8,11,13,22,28,29,30,32,33],bmi:1,bodi:[0,1,4,12,28,34],bold:1,boldfac:[0,5,16,29,30],boldsymbol:[0,1,2,3,5,6,7,8,10,11,13,14,15,16,17,18,19,23,28,32,33,34],boltzmann:[12,21,28,34],book1:27,book:[19,23,27,28,30],boost:[1,9,21,28],boostrap:10,bootstrap:[1,13,19,21,23,28,32,33,34],borrow:28,boston_dataset:[0,29],bot:8,both:[0,1,4,5,6,8,9,10,13,14,15,16,21,22,23,25,26,28,29,30,31,32,33,34],bottl:[7,32],bound:[0,8,12,29,33,34],boundari:[2,4,8,11,12],box:[2,4,9],boxed_arg:2,boyd:[8,13,32,33],bracket:[4,25],brain:[1,7,12,32,34],branch:9,breast:[5,7,11,30,31,32],breviti:[13,33,34],brew:[0,15,21,23,28],brg:8,brief:[23,29],briefli:[0,28],bring:[0,5,6,10,28,29,30],broad:[0,3,4,28],brought:[13,21,28,33,34],brownle:4,browser:28,brute:[3,5,11,29,30,32],bs:[8,9,10],buffer_s:4,bui:4,build:[0,4,5,6,10,22,25,28,30,31,32,33,34],built:[0,1,3,4,6,29,31],bunch:11,busi:[0,29],c1:[8,11],c2:[8,11],c:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,19,21,22,25,26,27,29,30,31,32,33,34],c_0:25,c_1:[12,34],c_2:[12,34],c_3:[12,34],c_4:[12,34],c_:[0,8,9,10,13,25,29,32,33,34],c_i:[12,13,33,34],c_k:25,ca:[1,28],cach:10,cal:[0,8,10,12,13,15,16,28,32,33],calcul:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,18,22,25,28,30,31,32,33,34],california:29,call:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,23,25,26,28,29,30,31,32,33,34],callabl:[3,4],callback:[3,4],calor:[0,29],cambridg:[13,27,32,33],can:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,26,27,29,30,32],cancel:[0,13,28,29,33,34],cancellation_manag:[3,4],cancer:[5,10,30,31],cancerpd:[7,32],candid:[8,9,10,33],cannot:[0,1,4,5,6,7,8,9,24,25,28,29,30,32],canopi:[0,15,21,23,28],canva:[23,28],cap:[5,30,31],capabl:[0,1,8,13,21,28,33,34],capac:[2,26],capita:[0,29],caption:23,captur:[4,11,12,34],captured_input:[3,4],car:[3,4],card:[0,7,28,32],cardin:1,care:[11,32],carefulli:[13,33],carlo:[0,6,21,25,27,28,31],carri:[2,6,7,23,31,32],cart:10,casella:27,cast:1,cat:[3,4],categor:[0,1,3,9,11,28],categori:[0,1,3,7,10,12,14,28,29,32,34],categorical_crossentropi:[1,3],caus:[0,5,6,25,28,29,30,31],causal:0,causat:[0,28],cax:1,cb:[6,28],cbar:1,cc:[0,1,3,4,5,13,28,29,30,31,32,33],ccc:[5,12,30,34],cdf:25,cdot:[0,2,6,12,13,14,22,25,28,31,32,33,34],celebr:[13,32,33],cell:[0,1,2,3,4,9,10,13,15,23,28,30,31,32,33,34],center:[0,1,6,7,8,9,11,14,23,25,28,30,31,32],central:[0,3,5,6,8,16,22,28,29,30],centroid:[14,25],centroid_differ:14,centuri:3,certain:[0,3,6,7,9,25,28,29,31,32],certainti:31,cg:[13,33],cha:[0,29],chain:[0,1,13,21,25,28,33,34],challeng:[33,34],chanc:[1,5,13,25,30,31,33,34],chang:[0,1,2,3,4,5,6,8,9,11,12,13,14,22,23,25,28,29,30,31,32,33,34],channel:3,chapter3:[0,19,23],chapter:[0,6,10,11,18,22,23,27,28,29,30,31,32,33,34],charact:[0,3,5,8,28,29],character:[8,9,10,12,25,34],characterist:[0,1,3,10,13,28,33,34],charg:[0,28],charl:[0,29],chase:4,chat:28,chd:[7,32],chddata:[7,32],cheap:[5,29],cheaper:[1,13,33,34],check:[0,1,3,4,5,11,13,22,28,29,33,34],checkmark:3,checkpoint:4,checkpoint_dir:4,checkpoint_prefix:4,chen:10,chiaramont:2,choic:[0,1,2,3,4,6,9,12,13,14,19,22,28,29,31,32,33,34],choleski:[5,22,29],choos:[2,3,6,9,10,11,13,14,23,31,32,33,34],chosen:[0,1,2,6,8,9,10,13,16,25,28,31,32,33,34],chosen_datapoint:1,christian:27,christoph:[24,27,28],cifar10:3,cifar:3,circ:[1,12],circl:[0,8,12,29,34],circuit:3,circumfer:9,circumv:[1,5,13,29,33,34],ckpt:4,clariti:25,class_nam:[3,9],class_val:9,class_valu:9,class_weight:[3,4],classic:[7,9,13,32,33,34],classif:[0,3,5,6,7,8,11,12,21,23,27,28,29,30,31,33],classifi:[0,1,4,7,9,10,11,28],classificaton:1,classifii:10,clean:1,clear:[1,5,10,12,13,33,34],clearli:[0,3,5,6,7,8,18,25,29,30,31,32],clever:[1,10],clf3:0,clf:[0,6,8,9,10,28,29],clf_lasso:6,clf_ridg:[6,28],clip:[3,25],clone:26,close:[0,1,2,4,6,8,9,11,12,13,14,23,25,27,28,31,32,33,34],closer:[3,5,13,29,33,34],closest:[8,11,13,14,33],closur:[21,28],cloud:[21,28],cluster:[0,1,4,6,11,21,28,31],cluster_label:14,cm:[1,2,3,6,8,9,13,23,32,33],cmap:[0,1,2,3,4,6,8,9,10,23,28],cmap_arg:6,cmb:24,cmd:9,cmu:29,cn_:25,cnn:[12,34],cnn_kera:3,cntk:[21,28],co:[0,2,3,6,9,13,28,31,33,34],code:[3,4,6,7,8,15,16,17,19,21,22,23,25,27],coef0:8,coef:[0,28],coef_:[0,5,6,8,9,13,28,29,30,31,32,33],coeff:5,coeffici:[0,3,5,6,7,8,9,13,15,16,22,28,29,30,31,32,33,34],coerc:[0,6,28,31],coin:[10,25],coin_toss:10,col:[0,11,28,29],colab:[21,28],cold:9,colinear:[0,29],collabor:23,collaps:8,collect:[0,2,6,10,11,21,25,27,28,31],collinear:[5,29,30],color:[0,3,4,6,8,9,10,23,25,33],color_channel:3,color_cod:6,colorbar:[1,6,23],colsample_bytre:10,colsaobject:10,colspec:[0,28],column:[0,1,2,5,6,7,8,9,11,12,17,22,28,29,30,31,32,34],columntransform:9,com:[4,6,19,20,21,23,27,28,30,32,33,34],combin:[1,2,5,6,7,10,25,30,31,32,33,34],come:[0,1,3,4,5,12,13,14,15,28,29,30,31,33,34],command:[0,1,28],comment:[0,4,5,6,15,16,23,28,29],commerci:[0,15,21,23,28],commod:[0,28],common:[0,1,3,5,6,7,9,11,13,14,23,25,28,29,31,32,33,34],commonli:[0,1,4,6,7,9,13,14,29,31,32,33,34],commun:[0,12,23,34],commut:3,commutatitav:3,compact:[0,1,3,5,6,7,9,11,12,13,14,28,29,30,31,33,34],compair:0,compar:[0,3,4,5,6,11,13,15,16,22,23,28,29,30,31,32,33,34],comparison:[2,4,13,33,34],compat:[7,32],compet:[0,28],competit:10,compil:[0,1,3,4,13,15,21,22,28,33,34],complet:[0,2,3,4,9,12,28,34],completenn:[12,34],complex:[1,5,8,9,11,12,13,15,16,19,28,31,33,34],complic:[0,1,9,13,28,31,32],compoment:29,compon:[0,1,3,4,5,6,7,9,14,16,21,28,29,30,31,32],components_:11,compos:[9,12,13,14,21,28,33,34],compphys:[0,6,17,19,20,21,23,24,26,27,28,29,32,33,34],compress:[0,28,29],compris:[6,32],compromis:[5,29],compulsori:[21,28],comput:[0,1,2,3,4,5,6,7,8,10,11,12,13,15,16,17,21,22,23,24,25,27,28,29,30,31,32],computation:[0,3,6,9,13,25,28,32,33,34],computationalscienceuio:28,computerlab:23,concat:28,concaten:[2,4,6,14],concav:[1,9,13,29,32,33],concentr:[0,10,29],concept:[0,2,21,28,29],conceptu:[12,13,32,33,34],concern:[0,1,4,7,28,32],concic:28,conclud:[0,5,13,30,31,33,34],conclus:1,concretefunct:[3,4],cond:2,conda:[0,1,15,21,23,28],condis:29,condit:[0,2,4,5,6,8,9,11,13,25,28,29,34],conduct:[21,28],condwav:2,confid:[0,5,6,7,8,18,23,28,29,30,32],configur:3,confirm:[5,12,30,31,34],confus:[5,6,7,10,22,29,30,31],confusion_matrix:9,congruenti:25,conjug:[4,8],conjugaci:[13,33],conjunct:3,connect:[0,1,3,4,9,11,12,13,22,28,29,32,33,34],consequ:[5,6,8,10,12,13,29,30,31,32,33,34],conserv:[5,14,29],consid:[0,1,2,3,5,6,7,8,9,10,12,13,16,19,22,23,25,28,29,30,31,32,33,34],consider:[0,1,5,13,28,29,30,31,32,33],consist:[0,1,2,3,4,6,12,13,19,23,25,29,31,32,33,34],constant:[0,2,4,5,6,8,12,13,25,28,29,30,31,32,33,34],constitu:[0,28],constitut:[2,6,31,32],constrain:[1,3,5,7,11,30,32],constraint:[5,6,8,13,17,29,30,31,33,34],construct:[0,1,2,3,5,6,7,8,9,10,11,22,25,28,29,30,31,32],contact:[0,28],contain:[0,2,3,4,5,6,7,8,9,11,12,13,17,19,22,23,25,27,28,29,30,31,32,33,34],contemporari:28,content:[1,21,22,28],context:[3,4,6,10,13,23,31,32,33,34],contigu:22,continu:[0,1,2,3,4,5,6,7,8,9,10,12,13,17,18,22,23,25,28,29,30,31,32,33],contour:[9,10,13,33],contourf:[8,9,10],contrast:[1,4,9,10,12,34],contribut:[0,3,5,13,25,28,29,30,33,34],contributor:[0,23,28],control:[0,1,3,9,13,15,21,28,33,34],conv2d:[3,4],conv2dtranspos:4,conv:[3,4],convei:28,conveni:[0,5,6,12,13,22,23,28,30,31,32,33,34],convent:[12,29],converg:[1,2,4,5,7,8,11,13,14,29,30,32,33,34],convergencewarn:[7,8,11,32],convert:[0,1,4,5,9,11,13,22,28,29,33,34],converttomatrix:4,convex:[4,5,7,29],convinc:[13,32,33],convolut:[1,4,21,28],cool:[4,9],coolwarm:[6,23],coordin:[5,12,14,29,30,34],coorel:[0,29],copi:[0,1,2,14,29],copyright:31,core:[2,3,4,10,13,28,34],corel:28,coronari:[7,32],corr:[0,5,7,11,29,32],correalt:[11,21],correct:[0,1,2,3,4,5,7,13,22,25,28,29,30,31,33,34],correctli:[1,2,6,7,10],correl:[0,1,3,5,6,7,10,12,13,21,25,28,30,31,33,34],correlation_matrix:[0,5,7,11,29,32],correspond:[0,3,5,6,8,9,11,12,15,16,17,21,22,23,25,28,29,30,31,34],cortex:[12,34],cosin:[3,6,31],cost:[0,2,3,5,6,7,8,9,12,13,16,17,19,23,28,34],cost_deep_grad:2,cost_funct:2,cost_function_deep:2,cost_function_deep_grad:2,cost_function_grad:2,cost_grad:2,cost_sum:2,costol:[13,33,34],could:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,17,22,23,25,28,29,30,31,32,33,34],coulomb:[0,28],count:[0,2,9,24,25,26,28],countor:[13,33],coupl:[4,5,6,30,31],cours:[0,1,3,5,11,23,24,26,29,31],courvil:[24,27,28,29,33,34],cov:[5,6,11,22,25,28,29,30,31],cov_xi:[5,11,29],cov_xx:[5,11,29],cov_yi:[5,11,29],covari:[0,7,21,22,28,30,32],covariance_matrix:[5,11,14,29],cover:[0,5,17,21,26,27,29,30],covert:[0,28],covxi:25,covxx:25,covxz:25,covyi:25,covyz:25,covzz:25,cpu:[1,3,4],cpu_util:[3,4],craft:3,crawford:28,creat:[1,2,3,4,5,9,10,11,12,13,21,23,28,30,32,33,34],create_biases_and_weight:1,create_convolutional_neural_network_kera:3,create_neural_network_kera:1,create_x:[5,11,29],credit:[0,7,26,28,32],crim:[0,29],crime:[0,29],criteria:[0,4,9,10,14,25,28],criterion:[9,10,13,32,33],critic:[6,23,28,29,30],critiqu:23,cross:[0,1,3,7,9,10,13,21,25,28,29,30,33,34],cross_entropi:4,cross_val_scor:[6,31,32],cross_valid:[7,10,32],crossvalid:[6,31],crucial:[1,25],cs231:3,cs:[24,26],csr_matrix:[22,28],csv:[0,4,6,7,9,28,31,32],ctnk:1,ctx:[3,4],cubic:0,cumbersom:[5,30,31],cumsum:[10,11,28],cumul:[7,10,25],cumulative_heads_ratio:10,cup:[5,30,31],current:[1,2,3,4,13,14,23,27,32,33,34],curs:[0,29],curv:[6,7,10,12,23,32,34],curvatur:[13,32,33,34],custom:[6,14,23],custom_cmap2:[9,10],custom_cmap:[9,10],cutpoint:9,cv:[6,7,10,31,32],cvxbook:[13,32],cvxopt:[5,8,29],cycl:[1,12,34],cyclotron:[29,30],d2_g_t:2,d:[1,2,3,4,5,6,7,8,9,10,11,13,14,22,25,26,28,29,30,31,32,33,34],d_f:[13,32,33],d_g_t:2,d_net_out:2,da:3,dagger:[5,22,29],dai:[1,9,21],damp:3,daniel:[26,28],darget:9,darkr:25,dat:[0,28],dat_id:[0,6,7,9,28,29,31,32],data1:14,data2:14,data3:14,data4:14,data:[2,4,5,8,10,12,13,14,17,18,19,22,27,31,33,34],data_handl:[3,4],data_id:[0,6,7,9,28,29,31,32],data_indic:1,data_modul:29,data_panda:28,data_path:[0,6,7,9,28,29,31,32],data_url:29,databas:1,datafil:[0,6,7,9,23,28,29,31,32],datafram:[0,4,5,7,9,11,28,29,32],datapoint:[1,5,6,7,11,13,29,31,32,33,34],dataset:[0,4,6,7,8,9,10,11,13,14,15,16,19,23,28,29,31,32,33,34],datatyp:4,date:[15,16,17,18,19,20,23,28,29,30,31,32,33,34],daughter:10,david:27,davison:31,dbh:1,dbo:1,dcomposit:22,ddot:2,dead:1,deadlin:[16,17,18,19,20,24],deal:[0,1,3,5,6,8,11,13,14,17,18,22,23,25,28,29,30,31,32,33,34],dealt:0,debt:[7,32],debug:[0,5,6,30,31,32],decad:[0,3,28],decai:[0,13,25,28],decemb:[24,26,28],decent:10,decid:[0,2,3,5,6,9,23,30,31,32],decim:[0,28],decis:[0,1,8,11,21,27,28],decision_funct:8,decision_tre:9,decisiontreeclassifi:[9,10],decisiontreeregressor:[0,9,10],declar:[0,4,22,28],decompos:[5,6,22,29],decomposit:[0,6,12,23,28,30,34],decompost:[5,29],deconvolut:3,decor:[0,28],decorrel:[10,13,33,34],decreas:[1,2,4,5,6,10,11,13,30,31,32,33,34],deduc:[0,28],deep:[3,7,12,13,21,24,27,28,29,33,34],deep_neural_network:2,deep_param:2,deep_tree_clf1:9,deep_tree_clf2:9,deep_tree_clf:[9,10],deepen:[5,21,28],deeper:[0,3,4,28],deeplearningbook:27,deer:3,def:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,23,25,28,29,30,31,32,33,34],def_covari:25,def_funct:[3,4],default_tim:4,defect:[5,29],defici:[5,29],defin:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,29,30,31,32,33,34],definit:[1,2,5,6,7,8,10,11,12,13,17,22,25,29,30,31,32,33],defint:25,defun:[3,4],defvjp:2,degre:[3,5,6,8,9,10,11,15,16,17,19,23,25,28,30,31,32],del:1,delet:6,delimit:4,deliv:[24,28],delta:[0,2,3,6,8,12,13,14,28,33,34],delta_0:3,delta_1:3,delta_2:3,delta_3:3,delta_4:3,delta_5:3,delta_:[1,22],delta_h:[0,1,28],delta_j:[3,12],delta_k:12,delta_l:[1,3],delta_momentum:[13,33,34],delta_n:[0,3,28],delug:21,delv:[0,28],demand:[13,32,33],demonstr:[0,3,5,6,7,11,12,21,28,29,30,31,32],demystifi:34,den:4,denomin:[1,5,30,31],denot:[1,2,6,7,13,25,32,33,34],dens:[1,3,4],dense_1:4,densiti:[0,2,6,25,28,31],depart:[26,28,29,30,31,32,33,34],depend:[0,1,2,4,5,6,7,8,11,12,13,15,21,22,23,25,28,29,30,31,32,33,34],depict:25,deploy:[0,15,21,23,28],deprec:[2,3,13,23,28,29,33],deprecate_nonkeyword_argu:[0,28],depth:[0,3,9,10,22,31],deriv:[0,1,2,6,7,8,10,11,13,16,17,19,21,23,28,34],derivati:[13,33,34],derivative_fn:[13,33,34],descend:[5,9,11,29,30],descent:[0,1,3,7,8,12,28,29],descr:29,describ:[0,2,4,5,6,8,10,11,12,13,18,22,23,28,30,31,33,34],descript:[0,8,9,28],design:[0,1,3,4,5,6,7,10,11,12,13,15,16,17,18,19,23,28,30,31,32,33,34],designmatrix:[0,28],desir:[0,2,4,5,13,14,28,29,32,33],despit:[1,12,34],destroi:22,det:[5,22,29],detail:[0,6,11,13,14,22,23,29,32,33],detect:[3,8,12,34],determin:[0,2,3,4,5,6,8,9,10,11,12,13,16,22,25,28,29,30,31,32,33,34],determinist:[7,13,25,32,33,34],dev:1,develop:[0,3,5,8,10,11,12,21,22,23,28,29,30,31,34],deviat:[0,1,2,4,5,6,19,23,25,28,29,30,31],devic:[3,4],device_nam:[3,4],devis:[12,34],df1:28,df:[4,8,11,13,28,33],di:[0,29],diag:[5,8,29,30],diagnost:[1,10],diagon:[0,5,7,13,18,22,23,25,28,29,30,32,33,34],diagonaliz:[5,29],diagram:10,diagsvd:6,dice:[6,25,31],dict:[6,8,32],dict_kei:29,dictionari:[0,29],did:[0,1,5,6,7,10,11,14,23,28,30,31,32,33],die:1,diff1:2,diff2:2,diff:2,diff_ag:2,diffeent:8,differ:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,21,22,23,25,27,28,29,30,31,32],differenti:[0,3,16,21,22,28,29,32],differential_oper:[2,13,34],difficult:[0,1,6,10,13,23,25,28,31,33,34],difficulti:[0,1,13,28,32,33,34],diffonedim:2,digit:[0,1,3,4,6,23,24,26,28],dilemma:[13,33,34],dilut:1,dim:[4,11,14,22],dimens:[0,1,2,3,4,5,8,9,11,14,16,17,22,28,29,30],dimension:[0,4,5,6,9,11,13,14,19,21,22,28,30,31,32,33,34],dimensionless:[0,3,28],diment:22,dimnsion:4,diod:3,direct:[0,1,2,4,11,12,13,14,28,29,32,33,34],directli:[1,4,5,6,25,29],directori:9,disabl:[3,4],disadvantag:[0,28],disappear:[3,6,31],disc_loss:4,disc_tap:4,discard:[6,11,31,32],disciplin:[0,3,12,28,34],disclaim:25,discord:28,discourag:[13,29,32,33],discov:[0,28],discover:[5,30],discret:[1,3,5,7,13,30,31,32,33,34],discrimin:[4,7,10,11,32],discriminator_loss:4,discriminator_loss_list:4,discriminator_model:4,discriminator_optim:4,discuss:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,25,27,28,29,30,31,33,34],diseas:[7,32],disguis:[6,29,30,31],disord:[1,7,32],dispai:34,displai:[0,1,3,4,5,6,7,8,9,10,11,12,14,23,25,28,29,31,32,34],displaystyl:[0,5,17,28,29,30],displot:29,disregard:[0,28],dissimilar:[11,14],dist:14,distanc:[0,8,9,11,14,25,29],distance_list:9,distinct:[3,7,8,9,10,14,32],distinctli:8,distinguish:[0,4,7,8,25,28,32],distplot:[0,29],distribut:[0,1,4,6,7,10,11,13,14,15,16,18,19,21,22,23,28,29,32,33],distrubut:[0,15,21,23,28],dive:[0,8,22,28],diverg:[1,13,32,33,34],divid:[0,1,3,5,6,7,8,9,11,12,25,28,29,30,31,32,34],divis:[6,8,9,13,22,25,31,32,33,34],dna:[7,32],dnn1:4,dnn2_gru2:4,dnn:[0,1,2,4,12,28,34],dnn_kera:1,dnn_model:1,dnn_numpi:1,dnn_scikit:[0,1,28],doamin:[30,31],doc:[0,6,17,19,20,21,23,24,26,27,28,29,32,33,34],document:[4,7,11,13,29,32,33,34],doe:[0,1,2,3,4,5,6,8,10,11,12,13,16,22,23,25,28,31,32,33],doesn:[3,9,12],dog:[1,3,4],domain:[5,8,13,23,30,31,32,33],domin:[0,28],don:[0,1,3,5,6,8,11,13,15,21,23,28,29,33,34],done:[0,2,3,4,5,6,9,10,11,13,17,22,23,28,29,30,31,32,33,34],dot:[0,2,3,5,6,7,8,9,10,11,12,13,22,23,25,28,29,30,31,32],doubl:[3,4,22,28],doubli:1,down:[0,3,6,9,11,12,13,28,32,33,34],download:[0,1,3,5,6,22,23,27,28],downsampl:3,dozen:1,dq:[6,31],drag:[13,33,34],dramat:11,drastic:4,draw:[4,6,10,13,31,32,33],drawback:[0,1,3,13,29,32,33,34],drawn:[1,4,6,7,11,25,28,31,32],drive:[3,4],driven:3,drop:[0,1,5,6,11,13,25,28,29,30,31,33,34],dropna:[0,6,28,31],dropout:4,dt:[2,3,13,25,33,34],dtype:[0,1,2,3,4,14,22,28,29,34],dub:[0,28],due:[1,2,5,6,8,10,12,13,26,28,29,31,32,33,34],dummi:[0,29],dure:[0,1,3,4,8,9,11,17,20,21,23,28,31,33,34],dwell:[0,29],dwh:1,dwo:1,dx:[2,3,8,25],dx_1:25,dx_1p:[6,31],dx_2p:[6,31],dx_mp:[6,31],dx_n:25,dxp:[6,31],dy:[1,8,25],dynam:4,dz:8,e:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,18,19,25,26,28,29,30,31,32,33,34],e_:[0,2,28],each:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,21,22,24,25,26,28,29,30,31,33,34],eager:[3,4,31],eapprox:[0,28],earli:[1,3,4,13,33,34],earlier:[0,5,7,8,9,11,12,13,20,28,29,32,33,34],earthexplor:[6,23],eas:[6,9,14,31],easi:[0,5,6,7,8,9,10,11,12,13,18,21,22,28,29,30,31,32,33,34],easier:[5,6,8,9,13,25,28,29,31,33,34],easiest:[13,32,33],easili:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,23,28,29,30,31,32,33],eastern:[26,28],ebind:[0,28],eblock:9,econometr:28,economi:5,ecosystem:[21,28],ect:24,edg:3,edgecolor:[6,31],edu:[13,29,32],educ:[0,23,28,29,32],eff:25,effect:[1,4,10,13,25,33,34],effic:1,effici:[0,3,10,13,21,22,25,28,32,33,34],efron:[6,31],egrad:[13,33,34],eig:[5,11,13,22,25,28,29,32,33,34],eigen:25,eigenpair:[5,11,29],eigenvalu:[0,5,8,11,13,22,28,29,30,32,33,34],eigenvector:[5,11,13,17,29,30,33],eight:[22,28],eigval:[22,25,28],eigvalu:[11,13,32,33,34],eigvec:[22,25,28],eigvector:[11,13,32,33,34],eispack:[22,28],either:[1,5,6,7,8,9,10,11,13,15,16,23,25,28,29,30,31,32,33],elabor:25,elarn:3,electr:[0,3,12,28,34],electron:28,eleg:11,element:[1,2,3,4,5,6,7,8,11,12,13,17,18,20,21,22,23,24,27,29,30,31,32],elementari:[10,13,22,33,34],elementwis:[3,13,33,34],elementwise_grad:[2,13,33,34],elessar:28,elif:[2,3,4,14],elim:22,elimin:[3,8],els:[1,2,3,4,7,9,12,13,22,32,33,34],elu:1,elus:[0,28],email:[24,26,28],embed:[0,11,29],embodi:[6,19,23,31],emit:25,emner:27,emphas:[0,10,21,28],emphasi:[0,21,27,28],empir:[1,11,25],emploi:[0,1,5,6,11,13,23,25,28,29,30,31,32,33],employ:[0,28,29],empti:[6,10,31],emul:[12,34],en:[21,27],enabl:11,enbodi:[6,31],encod:[0,3,5,9,11,14,17,28,29,30],encompass:[0,23,25,28],encount:[0,1,5,6,7,13,25,28,29,31,32,33,34],encourag:23,end:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,22,23,25,26,28,29,30,31,32,33,34],end_box:[2,13,34],end_nod:[2,13,34],end_valu:[2,13,34],endpoint:[3,6],energi:[0,4,6,29,31],enforc:[12,34],eng:27,engin:[0,1,3,4,21,28],english:23,enorm:3,enough:[0,6,13,28,31,32,33],ensembl:[1,9],ensur:[0,1,2,3,5,6,11,13,25,29,30,31,32,33,34],ensure_initi:[3,4],entail:28,enter:[5,6,17,29,30],enthought:[0,15,21,23,28],entir:[1,3,7,9,21,25,28,32,33,34],entiti:[9,12,22,28],entri:[0,5,8,11,12,22,28,29,30,31],entropi:[1,3,7,10,13,28,33,34],enumer:[0,1,2,3,4,6,8,28,29,30],env:[0,2,3,4,7,8,11,13,25,28,29,30,32,34],environ:[2,21,23],eo:[0,6,28,31],eol:[0,28],eosfit:[0,28],epoch:[0,1,3,4,12,13,28,33,34],epoch_num:[3,4],epsilon:[0,5,6,7,13,19,23,28,29,30,31,32,33,34],epsilon_0:[0,28],epsilon_1:[0,28],epsilon_2:[0,28],epsilon_:[0,28],epsilon_i:[0,28,29],eq:[3,13,14,22,25,32,33],eqnarrai:[3,5,6,30,31],equal:[0,1,2,3,4,5,6,8,9,11,12,13,14,15,22,23,25,28,29,30,31,32,33,34],equat:[1,3,4,5,6,7,8,9,10,11,13,14,16,17,18,19,22,23,25,31,34],equilibrium:[2,12,34],equiv:[3,13,22,25,32,33],equival:[0,1,5,7,8,11,13,21,22,28,29,30,31,33,34],erf:25,eriador:28,eridg:28,err:[0,10],err_:[6,31],err_sqr:2,errat:[13,32,33],errno:9,erron:2,error:[1,2,4,5,6,7,9,11,12,13,15,16,17,18,19,21,22,23,25,30,32,33,34],error_estimate_corr_tim:25,error_handl:[3,4],error_hidden:1,error_output:1,escap:[13,32,33,34],especi:[1,3,9,12,13,23,33,34],essenti:[0,5,6,9,10,12,14,23,25,29,34],establish:[0,6,10,11,15,23,28],estim:[0,1,5,6,7,10,11,13,21,25,28,29,32,33,34],estimated_mse_fold:[6,31,32],estimated_mse_kfold:[6,31,32],estimated_mse_sklearn:[6,31,32],et:[0,2,4,15,16,17,27,28,29,30,31,32,33,34],eta0:[8,13,32,33],eta:[0,1,3,8,12,13,28,32,33,34],eta_:[13,33,34],eta_t:[13,33,34],eta_v:[0,1,3,28],etc:[0,1,3,5,7,8,9,11,12,13,14,15,21,22,23,25,29,32,33,34],ethic:[21,28,29],etsim:31,euclidean:[0,14,29],evalu:[0,2,3,4,5,6,9,13,23,25,28,29,30,31,32,33,34],evaluationform:[20,23,33,34],evaluationgrad:[20,23,33,34],evalut:[13,33,34],even:[0,1,3,4,5,6,8,9,10,11,12,13,14,21,22,25,28,29,30,31,32,33,34],evenli:4,event:[5,7,10,25,30,31,32],eventu:[0,5,6,11,12,13,23,26,29,30,31,32,33,34],everi:[0,1,2,3,4,5,6,9,10,11,12,13,14,21,25,26,28,29,30,31,32,33,34],everyth:[4,12],everywher:[4,13,32,33],evolv:[0,28],exact:[0,2,5,11,12,13,22,25,28,29,33],exactli:[0,3,4,6,12,21,23,29,31,34],exam:28,examin:[6,31],exampl:[5,11,12,13,15,16,19,20,21,22,23,25,27],exce:[1,12,13,33,34],excel:[0,1,4,5,10,28,29],except:[3,4,6,8,9,22],excess:[0,28],excit:[0,28],exclud:[1,6,12,23,29,30,31,32,34],exclus:[0,1,3,6,25,28,31,32],execut:[2,3,4,5,13,29,33,34],execute_with_cancel:[3,4],executing_eagerli:[3,4],exemplifi:[13,33,34],exercic:[26,28],exercis:[5,21,23,24,26,30,32,33,34],exercisesweek35:17,exhaust:[6,31,32],exhibit:[0,5,6,8,28,29,31],exist:[0,1,2,3,5,6,7,8,9,13,18,22,23,28,29,30,31,32,33],exit:[5,22,29],exp:[0,1,2,5,6,7,8,10,11,12,13,15,16,23,25,28,29,30,31,32,33,34],exp_term:1,expand:[5,7,11,13,29,32,33],expans:[0,3,5,8,10,12,13,28,29,32,33],expect:[0,1,5,6,7,11,12,13,15,16,19,21,23,28,29,32,33,34],expectation_value_of_h_wrt_p:25,expens:[6,10,13,32,33,34],experi:[0,1,6,8,13,21,23,28,29,31,32,33,34],experiment:[0,3,4,6,9,25,28,31],experimental_get_tracing_count:[3,4],expert:[1,9],explain:[0,6,9,10,11,13,19,23,28,32,33],explained_variance_ratio_:11,explanatori:[0,28],explicit:[0,3,6,13,22,23,28,29,30,33,34],explicitli:[0,4,28],explod:1,exploit:[0,3,12,13,28,33,34],explor:[1,4,6,8,13,21,23,32,33,34],expon:1,exponenti:[0,1,5,6,10,13,23,25,28,30,31,32,33,34],export_graphviz:9,export_text:9,exporttext:9,expos:[21,28],express:[0,2,3,5,6,7,10,12,13,16,22,23,25,30,31,34],exptmean:25,exptvari:25,extend:[0,2,7,11,13,17,21,28],extens:[0,12,15,21,28,34],extent:[0,1,6,27,28,31],extern:[3,6,9],extra:[1,3,5,26,28,29],extract:[0,3,5,6,7,8,11,13,22,28,29,32,33],extrapol:[0,28],extrem:[0,1,4,5,6,7,8,9,13,16,22,29,30,31,32,33,34],extremum:[13,32,33],extrins:11,ey:[0,5,6,13,14,22,28,30,31,32,33],f11:[0,28],f12:[0,28],f13:[0,28],f1:[13,33,34],f1_grad:[13,33,34],f1d:[13,33],f2:[13,33,34],f2_grad_x1:[13,33,34],f2_grad_x1_analyt:[13,33,34],f2_grad_x2:[13,33,34],f2_grad_x2_analyt:[13,33,34],f3:[13,33,34],f3_grad:[13,33,34],f3_grad_analyt:[13,33,34],f4:[13,33,34],f4_grad:[13,33,34],f4_grad_analyt:[13,33,34],f5:[13,33,34],f5_grad:[13,33,34],f6:[13,33,34],f6_for:[13,33,34],f6_for_grad:[13,33,34],f6_grad_analyt:[13,33,34],f6_while:[13,33,34],f6_while_grad:[13,33,34],f7:[13,33,34],f7_grad:[13,33,34],f7_grad_analyt:[13,33,34],f8:[13,33,34],f8_grad:[13,33,34],f9:[0,13,28,33,34],f9_altern:[13,33,34],f9_alternative_grad:[13,33,34],f9_grad:[13,33,34],f:[0,1,2,3,4,5,6,7,8,10,12,13,14,16,18,19,22,25,26,28,29,30,31,32,33,34],f_0:[3,10],f_1:[10,13,32,33],f_2:[12,13,32,33,34],f_3:[12,34],f_:10,f_d:25,f_grad:[13,33,34],f_grad_analyt:[13,33,34],f_i:[0,6,12,16,31,34],f_m:[3,10],f_n:3,f_vec:2,f_wrap:2,face:[13,32,33,34],facecolor:[6,8,25,31],facil:[0,15,21,28,31,32,33,34],facilit:[12,34],fact:[0,1,3,5,9,11,12,13,28,29,30,31,32,33,34],factor:[0,1,3,5,6,9,10,11,13,22,25,28,29,30,31,33,34],factori:[13,33,34],fade:6,fafab0:[9,10],fahimeh:[26,28],fail:[0,3,4,6,7,8,11,13,26,28,31,32,33],failur:[7,32],fairli:[1,2,25],fake:4,fake_loss:4,fake_output:4,fall:[8,9,24],fals:[0,1,2,3,4,5,6,7,9,10,14,22,23,28,29,30,31,32,33,34],famili:[0,7,8,25,32],familiar:[0,3,5,6,8,15,21,22,23,25,28,30,31],famou:[6,12],far:[0,3,4,5,6,8,11,12,13,14,28,29,32,33,34],fashion:[0,9,10,28],fast:[1,3,6,10,12,13,21,25,28,31,32,33],faster:[1,11,13,33,34],fastest:[13,22,32,33],favor:[7,32],favorit:25,fc:3,featur:[0,1,3,5,6,7,8,10,11,12,13,18,21,23,25,28,30,31,32,33,34],feature_nam:[0,1,7,9,29,32],feautur:9,fed:1,feed:[0,2,3,11,21,28],feed_forward:1,feed_forward_out:1,feed_forward_train:1,feedback:[4,20,28],feeddorward:4,feedforward:[1,4,12],feel:[0,5,6,11,13,15,16,21,23,26,28,30,33,34],feet:[0,29],fei:28,felt:23,fetch:[6,23,29],fetch_california_h:29,fetch_openml:29,few:[1,3,4,5,9,25,28,33],fewer:[0,9,11,28],ffnn:[1,12,34],field:[0,3,6,12,21,28,34],fifth:[0,6,15,16,23,28],fig:[0,1,2,3,4,6,7,12,13,14,23,28,32,33,34],fig_id:[0,6,7,9,28,29,31,32],figaxi:25,figsiz:[0,1,2,3,4,6,7,8,9,10,28,29,31,32],figur:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,21,23,28,29,30,31,32,33,34],figure_id:[0,6,7,9,28,29,31,32],figurefil:[0,6,7,9,28,29,31,32],file:[0,2,3,4,5,6,7,9,13,23,28,29,30,31,32,34],file_prefix:4,filenam:[28,29],filenotfounderror:9,filepath_or_buff:[0,28],fill:[5,9,29],filter:[3,4],filter_traceback:[3,4],filtered_flat_arg:[3,4],filtered_tb:[3,4],financ:[0,28],find:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,21,23,25,28,29,30,32],fine:[0,14,15,28],finish:2,finit:[3,5,6,12,13,17,25,29,30,31,33,34],first:[0,1,2,3,5,6,7,8,9,10,11,13,14,15,16,17,22,23,25,26,27,31,34],first_moment:[33,34],first_term:[33,34],firsteigvector:11,fit:[1,3,4,5,6,7,8,9,11,12,13,15,16,17,23,25,29,31,32,33,34],fit_beta:[6,29,30],fit_intercept:[0,5,6,29,30,31],fit_mod:9,fit_transform:[0,6,8,9,11,31,32],fiti:[0,28],five:[0,9,17,23,28,29,32],fix:[0,3,4,6,10,11,12,13,23,28,31,32,33,34],flag:4,flat:[12,13,32,33,34],flatten:[1,3,4,5,22],flexibl:[1,6,8,10,12,28,29,31,34],flip:[26,28],float32:[4,9],float64:[4,22,28,29,34],flop:[5,22,29],flow:[1,4,12,34],fluctuat:[5,30],fly:11,fm:[0,28],fmax:3,fmesh:[13,33],fn:[3,4,7],focu:[0,3,4,5,6,15,21,27,28,29,30,31],focus:[1,6,7,22,29,30,32],fold:[6,9,23],folder:[0,1,4,6,13,23,28,31,33],follow:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34],font:[0,7,25,28,32],fontdict:25,fontsiz:[1,6,8,9,10,25],fontweight:1,footprint:3,foral:[8,29],forc:[0,5,6,10,11,28,29,30,32],forcast:4,forecast:[4,12,34],forest:[0,1,9,21,28],forget:11,form:[0,3,4,5,6,7,8,9,11,12,13,17,21,22,23,25,28,29,30,31,32,33,34],formal:[3,4,14,25],format:[0,1,2,3,4,6,7,8,9,10,11,21,25,27,29,30,31,32,34],format_data:4,formatstrformatt:[6,13,23,32,33],formul:[4,6,11,14],formula:[3,13,25,32,33,34],forth:[4,12,34],fortran2003:[21,28],fortran2008:23,fortran90:25,fortran:[0,15,21,22,28],fortun:[0,11,29],forward:[0,3,4,6,21,22,28,31],forward_backward:[3,4],forward_funct:[3,4],found:[1,2,4,5,6,12,13,19,20,23,28,29,30,31,33,34],foundat:[21,28],four:[4,5,6,8,12,22,23,24,26,28,30,34],fourier:[0,28],fourierdef1:3,fourierdef2:3,fourierseriessign:3,fourth:[12,28,29],fp:7,frac:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,19,22,23,25,28,29,30,31,32,33,34],fractal:9,fraction:9,frame:[7,28,32],framework:[1,8,10,25],frank:[5,11],frankefunct:[5,6,11,23,29],fredli:[26,28],free:[0,6,11,13,15,16,21,22,23,25,26,27,28,33,34],freecodecamp:21,freedom:[5,30],freeli:[0,23,28],frequenc:[3,4,6,7,25,31,32],frequent:[0,8,9,13,28,32,33],frequentist:21,fresh:10,fridai:[16,26,28],friedman:[6,18,23,24,27,28,29],friendli:4,frodo:28,frog:3,from:[0,1,2,3,4,6,7,8,9,11,13,14,16,17,18,19,21,22,23,25,26,27,28],from_cod:9,from_logit:[3,4],from_tensor_slic:4,fromnumer:2,front:[0,4,5,15,16,28,29,30],fulfil:[2,5,12,29,34],full:[0,1,3,5,7,9,10,13,25,28,29,32,33,34],full_matric:[5,29],fulli:[3,6,12,24,25,31,32,34],fun:[2,13,21,28,34],fun_nam:2,func:[0,2,28,29],functionali:11,fundament:[0,6,21,28,31],funtion:2,further:[2,7,9,28],furthermor:[0,3,5,6,7,11,12,13,17,21,23,28,29,30,31,32,33,34],futur:[0,4,8,9,28,29],futurewarn:[0,28,29],fy:[15,23,24,26,27,28],fys4155:23,fys5419:[27,28],fys5429:[27,28],g0:2,g:[0,1,2,3,4,6,8,9,10,11,13,25,28,30,31,32,33,34],g_0:2,g_1:[2,10],g_2:[2,10],g_:[2,9,10],g_analyt:2,g_dnn_ag:2,g_euler:2,g_i:2,g_m:[3,10],g_n:3,g_re:2,g_t:2,g_t_d2t:2,g_t_d2x:2,g_t_dt:2,g_t_hessian:2,g_t_hessian_func:2,g_t_jacobian:2,g_t_jacobian_func:2,g_trial:2,g_trial_deep:2,g_vec:2,gain:[1,5,7,9,10,13,29,30,31,33,34],galleri:[0,28],game:4,gamge:28,gamma1:8,gamma2:8,gamma:[0,2,8,9,10,11,13,28,32,33,34],gamma_0:10,gamma_1:10,gamma_1x:10,gamma_:[0,28],gamma_i:[0,8,25,28],gamma_j:[13,33,34],gamma_k:[13,32,33],gamma_m:10,gamma_x:[0,28],gap:8,gate:[4,12],gather:[0,1,12,29,34],gaug:[12,34],gaussbacksub:22,gaussian:[4,5,6,8,14,25,30,31],gaussian_point:14,gaussian_rbf:8,gave:[13,33,34],gbc:[24,28],gca:[2,6,8,13,23,33],gd:[1,32],gd_clf:10,gdclassiffiercgain:10,gdclassiffierconfus:10,gdclassiffierroc:10,gdm:[13,33,34],gdregress:10,ge:[1,5,7,25,29,32],gen_loss:4,gen_tap:4,gender:[0,28],genener:4,gener:[0,1,2,3,5,6,8,10,11,12,13,14,15,16,17,19,20,22,23,25,27,29,30,31,32,33,34],generallay:[12,34],generate_and_save_imag:4,generate_imag:4,generate_latent_point:4,generate_simple_clustering_dataset:14,generated_imag:4,generator_loss:4,generator_loss_list:4,generator_model:4,generator_optim:4,genom:21,geodes:11,geometr:[0,13,28],geometri:[5,30,31],georg:27,geotif:[6,23],geq:[2,5,8,9,13,29,30,32,33],geron:[0,15,24,27,28,33,34],get:[0,1,2,3,4,5,6,7,9,10,11,13,15,20,21,22,23,25,26,28,29,30,31,32,33,34],get_dummi:9,get_paramet:2,get_split:9,get_yaxi:8,get_yticklabel:6,getattr:2,gibb:[21,28],gif:4,gini:10,gini_index:9,ginvers:13,git:[0,15,21,28],giter:[13,33,34],github:[0,6,15,17,19,20,21,23,24,26,27,28,29,32,33,34],gitlab:[0,15,21,23,28],give:[0,1,2,3,5,6,7,8,9,10,12,13,14,17,21,23,25,28,29,30,31,32,33,34],given:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,25,28,29,30,31,32,33,34],global:[6,7,13,23,32,33,34],glorot:1,gnew:13,go:[0,1,3,5,6,8,9,11,12,13,23,28,29,30,31,32,33],goal:[0,7,9,28,32],goe:[0,1,2,5,6,13,14,18,22,28,29,30,31,32,33,34],golden:[13,33],gone:[5,29,30],gong:1,good:[1,3,4,5,6,9,10,11,13,17,21,25,27,29,30,31,32,33,34],goodfellow:[4,24,27,28,29,30,32,33,34],googl:[1,4,21,28],got:[1,6,23],gov:[6,23],gp:27,gpu:[1,13,21,28,33,34],grad:[2,13,33,34],grad_analyt:[13,33,34],grade:24,gradient:[0,3,4,7,8,9,12,21,28,29],gradient_desc:[3,33],gradientboostingclassifi:10,gradientboostingregressor:10,gradients_of_discrimin:4,gradients_of_gener:4,gradients_util:[3,4],gradienttap:4,gradual:[1,14],grai:[4,6,23],graph:[1,9,11,12,13,32,33,34],graph_from_dot_data:9,graph_funct:[3,4],graphic:[0,1,9,28],grasp:[0,28],gray_r:[1,3],grayscal:3,great:[5,13,32,33],greater:[1,7,25,32],greatli:[13,33,34],greedi:[9,32],green:[0,3,9,25],grei:4,grid:[1,3,6,7,8,12,25,29,30,31,34],gridsearch:32,gridsearchcv:32,grossli:[13,32,33],ground:[0,28],group:[0,6,7,9,14,21,23,24,26,28,31],groupbi:[0,28],grow:[1,3,9,10],growth:[0,28],gru:4,guarante:[0,3,4,13,25,28,29,32,33],guess:[1,4,10,13,14,32,33,34],guestrin:10,guid:1,guidelin:[20,33,34],h1:2,h:[0,1,5,6,8,13,16,18,23,25,26,27,28,29,32,33,34],h_1:[2,13,32,33],h_2:[2,13,32,33],h_:[0,13,28,32,33],h_m:10,ha:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,22,23,25,28,29,30,31,32,33,34],haa:[26,28],habit:[0,29],had:[0,1,6,7,13,28,31,32,33],hadamard:[1,12,13,33,34],half:[1,8,9],halv:10,hand:[0,1,2,3,5,11,12,13,15,21,22,23,24,25,26,27,28,29,30,31,32,33,34],handi:[3,23],handl:[0,1,2,5,9,11,21,30],handle_unknown:9,handsid:12,handwrit:[12,34],handwritten:[1,5,28],handwrittennot:[19,28,32,33],happen:[1,2,3,4,5,6,10,13,25,29,33,34],hard:[1,7,8,10,13,32,33],hardcopi:[21,28],harder:[0,1,29],harmon:3,hassl:[0,15,21,28],hast:[21,28],hasti:[0,6,15,16,17,18,23,24,27,28,29,30,31,32],hat:[0,1,5,6,7,9,10,11,12,13,17,18,22,23,29,30,31,33,34],have:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,25,26,29,30,31,32,33,34],haven:1,he:[7,32],head:[0,4,10,25,29],header:[0,28,29],heads_proba:10,health:[0,29],hear:[0,13,28,33,34],heart:[0,7,28,32],heatmap:[0,1,3,7,28,29,32],heavili:[0,28],heavisid:1,height:[1,3,6,29,30],held:[13,33,34],help:[0,1,4,12,13,16,23,28,33,34],helper:[4,14],henc:[0,5,6,8,9,10,12,13,18,23,28,29,30,31,32,33,34],henrik:[26,28],her:[7,32],here:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,25,28,29,30,31,32,33,34],hereaft:[0,8,12,28],hermitian:22,hessenberg:22,hessian:[0,2,5,13,16,30,34],heterogen:[9,10],hi:[7,32],hidden:[1,3,4,12,34],hidden_bia:1,hidden_bias_gradi:1,hidden_layer_s:[0,1,28],hidden_neuron:4,hidden_weight:1,hidden_weights_gradi:1,hierarch:[5,29,30],high:[0,1,2,3,4,5,6,9,10,11,13,14,21,22,23,28,29,31,32,33,34],higher:[0,1,3,5,6,8,13,23,28,29,30,31,32,33,34],highest:[1,2],highli:[0,3,4,10,18,21,22,27,28,29,30,31],highwai:[0,29],hing:8,hint:[13,16,29,32,33],hip:21,hire:[0,28],hist:[4,6,7,25,31,32],histogram:[0,6,7,25,29,32],histor:[7,11,32],histori:[3,4,12,34],histplot:29,hitherto:[5,30],hjorth:[26,28,29,30,31,32,33,34],hobbi:25,hoc:[5,29],hoff:27,hold:[1,3,6,13,14,31,32,33,34],holder:[0,28],holomorphic_grad:[2,13,34],home:[0,29],homepag:[23,28],homework:[6,13],homogen:[1,3,9,10,13,33,34],honchar:2,hopefulli:[0,11,25,28],horizont:11,hors:[3,7,32],hot:[1,9],hour:[1,21,24,25,26,28,31],house_pric:29,how:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,25,28,29,30,31,33,34],howev:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22,23,25,28,29,30,31,32,33,34],hspace:[0,4,8,10,25,28],hstack:[1,29],htf:[24,28],html:[0,7,11,17,19,21,23,24,26,27,28,29,32],http:[0,3,4,6,7,11,13,17,19,20,21,22,23,24,26,27,28,29,30,32,33,34],huang:[0,28],huber:[0,28],huge:[1,3,4,21],human:[0,1,3,6,9,12,28,29,30,34],humid:9,hundr:1,hungri:1,hybrid:24,hydrogen:[0,28],hyperbol:[1,4,12],hyperparam:8,hyperparamet:[3,4,5,6,9,13,17,28,29,30,31,32,33,34],hyperplan:11,hz:[3,4],i0:[0,28],i1:[0,6,8,12,28,29,30,31,34],i2:[0,8,12,28,34],i3:[0,12,28,34],i5:[0,28],i:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,26,28,29,30,31,32,33,34],i_1:[5,6,30,31],i_2:[5,6,30,31],i_:[13,32,33],ian:27,ic:1,id:[7,13,32,33],ida:[26,28],idea:[0,1,2,3,4,6,9,10,12,13,22,23,28,29,30,31,32,33,34],ideal:[0,2,6,8,13,25,28,29,31,34],idem:[6,31],ident:[5,6,12,13,17,22,23,29,33,34],identical:[30,31],identifi:[0,1,7,9,11,12,13,14,28,29,32,33,34],idx:2,ieor:25,ifi:27,ifs:[21,28],ignor:[0,1,3,9,29],ii:[22,25],iii:[22,28],ij:[0,1,3,6,8,12,14,16,18,22,23,25,28,29,30,31,34],ik:[0,22,28,29],illustr:[5,7,10,12,13,14,21,28,31,32,33],ilsvrc:[33,34],im:6,imag:[1,3,4,6,9,11,12,14,27,28,34],image_at_epoch_:4,image_batch:4,image_height:3,image_path:[0,6,7,9,28,29,31,32],image_width:3,imageio:[6,23],imagenet:28,images_from_seed_imag:4,imagin:1,immedi:[0,3,4,6,15,21,28],implement:[0,2,3,4,5,6,8,9,10,11,12,13,14,17,23,25,28,29,30,31,32,33,34],impli:[3,5,6,7,13,22,29,30,31,32,33],implicit:3,implicitli:[11,25],importantli:3,impos:[0,6,11,12,28,34],imposs:[0,5,28,29],impress:[0,12,28,34],improv:[0,4,5,9,10,11,13,23,29,34],impur:9,imread:[6,23],imshow:[1,3,4,6,23],in1:2,in2:2,in3050:[27,28],in3310:28,in4080:[27,28],in4300:[27,28],in4310:27,in5400:3,in5550:27,in_out_neuron:4,inaccur:[13,32,33],inact:[12,34],inadequ:[0,28],inch:[6,29,30],includ:[0,1,2,3,4,5,6,7,11,12,15,16,17,20,21,23,25,26,27,28,29,30,31],include_bia:[6,9,31],inclus:17,incom:[12,34],incorrect:1,incoveni:8,increas:[0,1,3,4,5,6,7,8,9,11,12,13,23,25,28,29,30,31,32,33,34],increasingli:25,increment:33,ind:6,inde:[0,2,4,5,6,13,28,29],indefinit:4,independ:[0,5,6,7,8,12,13,25,28,29,32,33,34],index:[0,1,3,4,10,14,21,22,25,27,28,29],index_col:[0,28],indic:[0,1,3,4,5,6,9,10,11,13,16,23,28,29,33,34],indispens:[6,31],individu:[1,6,7,10,12,25,28,29,31,32,34],indu:[0,29],indx1:2,indx2:2,indx3:2,indx:22,ineffici:[3,13,33,34],inequ:[8,13],inequaltii:[32,33],inertia:[13,33,34],inf1000:[21,28],inf1100:[21,28],inf1100l:[21,28],inf1110:[21,28],inf3000:28,infeas:9,infer:[0,1,4,6,27,28,31],infer_nrow:[0,28],inferenc:1,infil:[0,6,7,9,28,31,32],infin:[5,6,7,11,18,29,30,31,32],infinit:3,infinitesim:25,influenc:[6,10,31,32],influenti:1,info:28,inform:[0,1,3,4,6,9,11,12,13,14,22,23,27,28,31,32,33,34],infti:[3,6,13,25,31,32,33],ingeni:[13,32,33,34],ingrad:2,ingredi:[0,9,28],inher:[6,31],inherit:[22,28],initi:[0,1,2,6,10,13,14,22,25,28,31,32,33,34],initial_epoch:[3,4],inject:14,inlin:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,25,28,29,30,31,32,33,34],inner:[0,13,29,33],inp:4,inplac:[13,33,34],input:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,23,25,28,29,30,31,32,33,34],input_dim:1,input_shap:[3,4],inputs:1,inputs_shuffl:[0,1,29],insert:[3,5,6,8,10,25,29,30,31],insid:[0,4,7,29,32],insight:[0,1,5,21,28,29,30,31],insist:[6,13,29,30,33],inspect:32,inspir:[0,1,12,28,34],instabl:2,instal:[0,1,5,6,9,15],instanc:[0,1,2,4,6,9,11,13,28,29,31,32,33],instanti:10,instead:[0,1,2,3,4,5,6,8,9,11,13,14,22,23,25,28,29,31,32,33,34],institut:1,instruct:[0,1,15,16,28],int32:10,int64:29,int64index:28,int_0:25,int_:[3,6,25,31],int_a:25,intak:[0,29],integ:[1,2,13,14,22,25,28,33,34],integer_vector:1,integr:[3,6,25,28,31],intellectu:28,intellig:[0,14,27,28],intend:[10,28],intens:1,intention:14,interact:[0,6,9,12,21,23,28,34],intercept:[0,6,8,11,13,16,23,28,30,31,32,33],intercept_:[0,6,8,9,13,28,29,30,31,32,33],interceptol:31,interceptridg:31,interchang:[5,12,22,30,31,34],interconnect:1,interest:[0,1,2,3,4,5,6,7,8,9,12,21,23,25,28,29,30,31,32,33,34],interfac:[0,1,22,29],interior:[0,9,28],intermedi:[22,29],intern:[1,10,12,34],interpol:[1,3,4,6,12,23,34],interpr:[5,29,30],interpret:[0,1,6,9,10,12,13,17,19,22,23,25],interv:[0,3,5,6,7,13,18,23,25,28,29,30,32,33],intial:[13,32,33],intract:[0,4,29],intrins:[3,11,22,25,28],intro:[21,27,28],introduc:[0,1,5,6,8,10,12,17,22,23,25,28,31,32],introduct:[1,2,4,13,17,20,27,29,32,33],introductori:[0,4,22,27,28,29],intuit:[0,5,6,8,12,13,23,28,30,31,33,34],inv:[0,5,13,28,29,30,32,33,34],invalid:8,invalu:[0,13,15,21,28,32,33],invari:1,invd:[5,30],inver:[8,34],invers:[0,3,6,13,15,16,17,23,28,29,32,33,34],inverse_transform:8,invert:[0,5,7,10,13,28,30,32,33,34],invh:[13,33,34],invok:[0,8,29],involv:[0,2,6,7,11,12,29,31,32,33,34],io:[0,17,19,21,23,24,26,27,28,29],ion:34,ip:[0,8,25,28],ipca:11,ipykernel_18986:1,ipykernel_19041:[],ipykernel_19107:[],ipykernel_19139:[],ipykernel_19152:[],ipykernel_19176:6,ipykernel_19181:[],ipykernel_19201:[],ipykernel_19294:13,ipykernel_19329:23,ipykernel_19344:28,ipykernel_19367:31,ipykernel_19394:33,ipynb:[21,28],ipython:[0,5,7,9,11,14,15,21,23,28,29,32],iq:[6,31],iri:[8,9],irreduc:[6,31],irrelev:[5,29],irrespect:[0,28],isbox:[2,13,34],iseffici:[33,34],isn:[5,30,31],isnul:[0,29],isomap:11,isotop:[28,31,32,33],issu:[1,9,22,29,30],it_arrai:[13,33],item:[0,13,28,33,34],items:[22,28],iter:[1,2,3,4,6,7,8,11,13,14,25,31,32,34],its:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,21,22,23,25,28,30,31,32,33,34],itself:[5,6,12,19,23,25,29,30,31],j1:22,j:[0,1,2,3,4,5,6,8,9,11,12,13,14,16,17,18,19,22,23,25,27,28,29,30,31,32,33,34],j_:6,j_lasso_sk:6,j_ridge_sk:6,j_sk:6,jackknif:[6,21,28,31],jacobian:[2,13,32,33,34],jacobian_shap:2,jakobsen:[26,28],jason:4,jax:[21,28],jensen:[26,28,29,30,31,32,33,34],jerom:[18,23,27],ji:[12,22],jit:[13,33,34],jj:[0,5,6,28,30,31],jk:[0,1,6,12,22,28,34],jl:[0,28],jm:22,jnp:[13,33,34],job:[2,8,10],join:[0,4,6,7,9,28,29,31,32],joint:[4,5,30,31],judg:[13,32,33],judgement:[6,23],julia:[21,22,23],jump:[23,25],junk:4,jupit:28,jupyt:[0,15,19,21,23,27,28,31],just:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,23,25,28,29,30,31,32,33,34],justif:[0,28],justifi:[3,10],k0:[7,32],k1:[7,32],k:[0,1,3,5,6,7,8,9,10,11,12,13,14,21,22,23,25,26,28,29,30,33,34],kaggl:[6,23],kappa_d:25,karl:[26,28],karush:8,kate:28,katrin:[26,28],keep:[0,1,4,5,6,11,13,14,22,23,28,29,30,31,32,33,34],keepdim:[1,6,10,22,31],kei:[0,1,3,6,12,29,34],kept:[4,6,14,31],kera:[0,4,21,23,28],kernel:[0,1,3,21,28,29],kernel_regular:[1,3],kernel_s:4,kernelpca:11,kev:[0,28],kevin:[27,28],keyboardinterrupt:[1,2,3,4],keyword:[13,22,23,28,33],kfold:[6,31,32],kg:1,ki:22,kick:[1,13,33,34],kiener:2,kilomet:[6,29,30],kind:[0,2,3,4,8,12,13,14,28,29,33,34],kj:[6,12,22,29,30,31],kjm:[21,28],kkt:8,kl:25,km:[12,28,34],kmean:14,kmeanspoint:14,kn_k:14,know:[0,1,2,5,6,8,13,21,28,29,30,32,33,34],knowledg:[0,21,28],known:[1,3,4,5,6,7,8,9,12,22,23,25,27,29,30,31,32,34],kondev:[0,28],kp:25,kpca:11,kroneck:14,kuhn:8,kvalsund:[26,28],kwarg:[0,2,3,4,13,28,34],kwd:[0,3,4,28],kwown:[0,28],l0:[7,32],l1:[0,1,3,7,28,32],l1_l2:[1,3],l1regl:5,l2:[1,3],l:[0,1,2,3,5,6,7,8,10,11,12,13,19,22,23,25,28,29,31,32,33,34],l_1:[7,32],l_2:[7,13,32,33],l_:22,l_j:12,la:[13,33],la_i:12,la_k:12,lab:[20,21,23,28,33,34],label:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,21,22,23,25,28,29,30,31,32,33,34],label_prob:[33,34],labelencod:[7,10,32],labels:[6,8,9],labels_shuffl:[0,1,29],laboratori:[24,29,30],lack:[0,28],lagari:2,lagrang:[8,11],lambda:[0,1,2,3,5,6,7,8,10,12,13,17,18,23,25,28,29,30,31,33,34],lambda_0:11,lambda_1:[5,8,11,29],lambda_2:[8,11],lambda_:11,lambda_i:[8,11],lambda_iy_i:8,lambda_jy_iy_j:8,lambda_k:8,lambda_n:[5,8,29],lamda:1,land:[0,8,29],landmark:8,landscap:[13,32,33,34],langl:[0,6,11,25,28,29],languag:[0,1,4,8,15,21,22,23,27,28],lapack:[22,28],laplac:[5,30,31],laptop:21,larg:[0,1,2,4,5,6,8,9,10,11,13,15,21,22,23,25,27,28,29,31,32,33,34],larger:[0,3,5,6,8,10,11,13,17,25,28,29,30,31,32,33,34],largest:[4,8,11],lasso:[0,7,21,28],lasso_sk:6,last:[0,1,2,3,4,5,6,7,8,9,10,12,13,15,17,18,22,23,25,26,28,30,33],latent:4,latent_dim:4,latent_point:4,latent_space_value_rang:4,later:[0,1,4,7,8,12,13,14,15,21,23,28,32,33,34],latest:[4,21],latest_checkpoint:4,latex:28,latter:[0,3,6,7,8,11,13,16,17,22,23,25,28,29,30,31,32,33,34],lattic:[12,34],law:[0,28],layer:[0,4,13,28,33,34],lbfg:[7,9,10,11,32],lcc:[5,6,30,31],lda:11,ldot:[0,6,11,19,23,28,31,32],le:[5,7,10,13,17,25,29,30,32,33,34],lead:[0,1,3,5,6,7,8,9,10,11,12,13,16,17,22,25,28,29,30,31,32,33,34],leaf:9,leaki:1,leakyrelu:4,lear:[13,32,33],learn:[3,4,5,6,7,8,9,10,12,18,22,24,26,27],learnabl:3,learner:10,learnig:28,learning_r:[3,8,10],learning_rate_init:[0,1,28],learning_schedul:[13,33,34],learnt:23,least:[0,2,7,8,10,11,15,16,17,19,21,22,25,31,32],leat:[13,33,34],leav:[0,1,3,5,6,9,11,28,30,31,32],lectur:[0,1,5,10,11,12,13,15,17,21,22,23,24,26,27,33,34],lecturenot:[0,17,19,21,23,27,28],left:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,16,17,19,22,23,25,28,29,30,31,32,33,34],leftarrow:[8,12],legend:[0,2,3,4,5,6,7,8,9,10,13,28,29,30,31,32,33,34],len:[0,1,2,3,4,5,6,8,9,10,11,12,22,28,29,30,31,33,34],len_index:[0,28],length:[0,1,2,3,4,8,9,13,16,21,28,29,32,33,34],length_of_sequ:4,leq:[0,5,7,8,13,14,17,25,28,29,30,32,33],less:[0,1,3,4,5,6,8,9,13,21,25,28,29,30,31,32,33,34],lessen:1,let:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,25,28,29,30,31,32,33,34],letter:[0,16,22,25,28,29],level:[0,1,5,6,9,21,22,23,24,26,28,29,31],li:[8,11,28],lib:[0,2,3,4,7,8,11,13,28,29,30,32,34],liblinear:[8,10],librari:[0,1,2,3,4,5,6,9,10,11,15,22,23,25,27,29,30,31,32],licens:[0,1,15,21,23,28,31],lie:[0,6,11,25,29,31],life:[0,1,8,12,28,34],lifetim:[13,33,34],like:[0,1,2,3,4,5,6,7,9,10,11,12,13,15,16,21,22,23,25,28,29,30,31,32,33,34],likelihood:[0,1,5,9,28,29,33,34],lim_:25,lima:[26,28],limit:[0,5,6,7,8,11,12,22,23,28,29],lin_clf:8,lin_model:[0,29],lin_reg:9,linalg:[0,2,5,6,8,11,13,22,25,28,29,30,31,32,33,34],line1:8,line2:8,line2d:[13,33],line3:8,line:[0,1,2,3,4,6,8,9,10,11,13,15,23,28,29,30,31,32,33,34],linear:[1,3,5,6,7,9,10,11,12,17,18,21,23,25,31,33,34],linear_model:[0,5,6,7,8,9,10,11,13,28,29,30,31,32,33,34],linear_regress:[6,31],linearli:[5,29],linearloc:[6,13,23,32,33],linearregress:[0,6,7,9,28,29,30,31,32],linearsvc:8,lineat:30,liner:[1,3],linerar:10,linewidth:[0,2,4,6,8,9,10,23,31],link:[0,4,9,12,21,23,26,28],linlag:[5,30],linpack:[22,28],linreg:[0,28],linspac:[0,2,3,4,6,8,9,10,13,15,16,22,25,28,29,30,31,33,34],linu:4,linux:[0,1,15,21,23,28],liquid:[0,28],list:[0,1,2,3,4,9,21,23,28,29,33],listcomp:2,listedcolormap:[9,10],literatur:[1,7,14,27,31,32],littl:[1,3,9,12],live:8,ll:[0,25,28,29],lle:[0,29],lloyd:[4,14],lmb:[0,2,5,6,30,31,32],lmbd:[0,1,3,28],lmbd_val:[0,1,3,28],lmbda:[13,32,33],ln:[1,13,32,33],load:[0,1,4,6,7,9,10,23,29,32],load_boston:[0,29],load_breast_canc:[1,7,9,10,11,32],load_data:[3,4],load_digit:[1,3],load_iri:[8,9],loc:[0,3,6,7,8,9,10,28,31,32],local:[0,1,2,3,4,7,12,13,28,29,32,33,34],locat:[2,3,8],lock:[3,4],log10:[0,5,6,30,31,32],log:[0,1,2,4,5,6,7,9,10,11,13,22,23,28,29,30,31,32,33,34],log_:[0,28],log_clf:10,logarithm:[0,5,7,22,28,30,31,32],logbook:23,logic:[0,1,9,28],logist:[0,1,2,8,9,10,11,12,13,21,29],logistic_predict:[33,34],logisticregress:[7,9,10,11,32,34],logit:[7,32],logreg:[7,9,10,11,32,34],logspac:[0,1,3,5,6,28,30,31,32],longer:[2,3,8,10,14,22,25,28],loocv:[6,31,32],look:[0,1,2,3,4,5,6,7,8,9,10,11,13,18,22,23,25,28,29,30,31,32,33,34],loop:[1,4,6,10,12,14,21,22,28,31],lose:1,loss:[0,1,3,4,5,6,7,8,10,11,13,22,23,28,30,31,34],loss_fil:4,lossfil:4,lost:4,lot:[0,1,4,6,29,31,33,34],low:[0,6,9,10,11,23,28,29,31],lower:[0,1,3,6,9,10,16,22,29],lowercas:[22,28],lowest:[9,13,25,33,34],lr:[1,3,4,10],lstat:[0,29],lstm:4,lstm_2layer:4,lstsq:[0,28,29],lt:[6,31],lu:[0,5,28,29],lubksb:22,luckili:2,ludcmp:22,lux:22,lvert:1,lw:[0,28],m1:[3,4],m:[0,1,2,3,5,6,8,9,10,11,12,13,22,24,25,26,27,28,29,30,31,32,33,34],m_1:14,m_:[9,12],m_h:[0,28],m_k:14,m_l:12,m_n:[0,28],m_p:[0,28],m_t:[13,33,34],ma:11,machin:[1,3,4,5,6,7,9,10,11,12,15,22,24,27,29,30,31,34],machinelearn:[0,6,17,19,20,21,23,24,26,27,28,29,32,33,34],mackai:27,made:[0,1,3,4,5,6,7,9,11,12,18,23,28,29,32,34],mae:[0,28],magic:4,magnitud:[1,6,7,13,29,30,32,33,34],mai:[0,1,2,3,5,6,7,8,9,11,12,13,18,21,22,23,25,29,30,31,32,33,34],mail:[24,26],main:[0,1,3,4,5,6,7,9,22,23,27,28,29,32],mainli:[0,5,6,7,9,28,29,30,31,32],maintain:[6,29,31],major:[1,6,9,10,13,22,28,31,32,33,34],make:[1,2,3,4,5,6,7,8,11,12,13,21,22,23,25,27,30,31,32,33,34],make_axes_locat:6,make_classif:34,make_moon:[8,9,10],make_pipelin:[0,6,10,29,31],make_vjp:[2,13,34],makedir:[0,6,7,9,28,29,31,32],makeplot:[0,28],malcondit:22,malign:[1,7,9,32],mammographi:[5,30,31],manag:[0,2,3,15,21,23,28],mandatori:[26,28],mani:[0,1,3,4,5,6,7,8,9,11,13,14,21,22,23,25,27,28,29,30,31,32,33,34],manifold:11,manner:3,manual:[6,29,30,32],map:[0,1,2,6,7,8,11,12,14,23,25,28,32,34],margin:[0,5,8,28],marit:[0,28],mark:28,marker:[0,7,22,28,29,32],markov:[21,28],marsaglia:25,mass:[0,1,5,13,29,33,34],massag:[0,28],masses2016:[0,28],masses2016ol:[0,28],masses2016tre:0,masseval2016:[0,28],master:[6,19,20,23,24,26,28,32,33,34],mat1100:[21,28],mat1110:[21,28],mat1120:[21,28],mat:[21,28],match:[0,1,4,5,13,14,28,29,32,33,34],materi:[4,5,7,13,17,22,26,33,34],math:[3,7,12,13,22,25,27,28,31,32,33,34],mathbb:[0,4,5,6,7,8,11,12,13,14,17,18,19,22,23,25,28,29,30,31,32,33,34],mathbf:[0,5,6,7,8,13,18,19,22,23,28,29,30,31,32,33,34],mathcal:[1,5,6,7,13,19,23,30,31,32,33],matheemat:3,mathemat:[0,6,11,12,13,17,21,22,25,27,28,30,31,32],mathemati:28,mathrm:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,23,25,28,29,30,31,32,33,34],matmul:[1,2,5,30],matnat:27,matplotlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,22,23,25,28,29,30,31,32,33,34],matplotlibdeprecationwarn:[13,23,33],matric:[0,1,3,4,6,7,8,11,13,16,17,21,29,32,33],matrix:[0,2,3,4,6,7,8,10,13,15,16,17,18,19,23,25,31],matshow:1,matter:[2,3,13,29,32,33,34],max:[0,1,2,3,4,9,10,12,13,26,28,32,33,34],max_depth:[0,9,10],max_diff1:2,max_diff2:2,max_diff:2,max_it:[0,1,7,8,11,13,28,32,33,34],max_iter:14,max_leaf_nod:10,max_queue_s:[3,4],max_sampl:10,maxdegre:[0,6,10,29,31],maxdepth:10,maxim:[1,4,5,7,8,11,30,31,32],maximum:[0,2,3,5,7,8,9,10,13,14,28,29,33,34],maxpolydegre:[5,6,30,31,32],maxpooling2d:3,mbox:[5,6,18,23,29,30,31],mccorduck:28,mcculloch:[12,34],md:[11,20,23,33,34],mdoel:4,mean:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,21,22,23,25,31,33,34],mean_absolute_error:[0,28],mean_divisor:14,mean_i:25,mean_matrix:14,mean_squared_error:[0,4,6,7,10,28,29,31,32],mean_squared_log_error:[0,28],mean_vector:14,mean_x:25,meaning:[0,4,7,28,32],meansquarederror:[0,28],meant:[2,3,7,10,13,32,33,34],measur:[0,1,2,5,6,9,11,12,14,19,23,25,28,29,30,31],mechan:[0,4,25,28],median:[0,28,29],medicin:[12,34],medium:[4,8,13,33,34],medv:[0,29],meet:[0,26],mehta:[0,28,29,30],memori:[3,4,11,12,13,22,28,33,34],mention:[0,12,13,23,25,28,32,33,34],mere:[0,15,28],meshgrid:[2,5,6,8,9,10,11,23,29],messag:[5,13,33,34],messi:2,met:[0,3,8,28,29],metal:[3,4],meteorolog:9,meter:[6,29,30],method:[0,1,2,3,4,5,7,8,11,12,14,16,17,18,19,21,22,25,27,28,29,30],metion:[6,23],metric:[0,1,3,6,7,9,10,14,15,16,28,29,31,32],metropoli:[21,28],mev:[0,25,28],mgd:[13,33,34],mglearn:[21,28],mgrid:[13,33],mhjensen:[2,3,7,8,11,29,32],mi:10,mia:[26,28],michigan:[28,29,30,31,32,33,34],microsoft:27,mid:1,midel:4,midnight:[16,17,18,19,20],midpoint:9,might:[0,1,2,4,6,9,13,29,30,32,33,34],mild:9,millimet:[6,29,30],million:[0,28,29,33,34],mimic:[12,34],min:[0,2,5,8,9,28],min_:[0,2,5,14,17,28,29,30],min_samples_leaf:9,mind:[0,6,13,23,28,29,30,31,32,33],mindboard:4,mine:[21,28],mini:[1,11,12,13,32],minibatch:[1,11,13],minibathc:[13,33,34],miniforge3:[0,2,3,4,7,8,11,13,28,29,30,32,34],minim:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,17,18,23,29,30,31,33,34],minima:[0,1,7,13,28,32,33,34],minimum:[0,1,2,6,8,9,11,13,29,31,32,33,34],minmaxscal:[0,29],minor:[13,23,25,33],minst:1,minu:[7,32],mirror:9,misc:[6,23],misclassif:[8,9,10],misclassifi:[8,10],miser:0,mismatch:1,miss:[0,7,10,29],mistak:4,mit:27,mix:[1,2,28],mixtur:[13,33,34],mk:[9,22],mkdir:[0,6,7,9,28,29,31,32],ml:[0,1,10,13,22,23,29,32,33,34],mlab:25,mle:[5,7,32],mlp:[1,34],mlpclassifi:[1,34],mlpregressor:[0,28],mm:22,mn:[12,25,34],mnist:[1,11],mod:25,mode:[24,26,28],model:[2,3,5,7,8,9,10,11,13,14,15,16,18,19,21,23,25,27,29,30,31,32,33],model_select:[0,1,3,5,6,7,9,10,11,28,29,30,31,32],moder:10,modern:[0,6,7,21,28,31,32],modif:[2,12,13,33,34],modifi:[0,1,3,5,7,8,10,12,13,28,29,30,32,33,34],modul:[0,7,11,22,28,30,32],modular:25,modulo:25,moe:[11,29],moment:[5,6,13,25,30,31],monitor:[13,33,34],monoton:[5,12,25,30,31,34],mont:[0,6,21,25,27,28,31],moor:[5,6,30],more:[0,1,2,4,5,7,8,9,10,11,12,13,14,18,21,25],moreov:[0,3,28],morten:[26,28,29,30,31,32,33,34],most:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,21,23,25,28,29,30,31,32,33,34],mostli:[1,11],motion:[0,13,28,33,34],motiv:[1,4],move:[0,4,5,6,7,9,12,13,14,23,25,28,29,30,31,32,33,34],mpl:[0,7,28,32],mpl_toolkit:[2,6,13,23,32,33],mplot3d:[2,6,13,23,32,33],mplregressor:1,mse:[0,4,5,6,9,10,15,16,17,19,23,28,29,30,31,32],mse_simpletre:10,mselassopredict:[5,30],mselassotrain:[5,30],mseownridgepredict:[6,30],msepredict:[5,30],mseridgepredict:[0,5,6,30,32],msetrain:[5,30],msg:[0,28,29],msle:[0,28],mt:[7,12,32,34],mu0:25,mu1:25,mu2:25,mu:[0,6,11,13,25,28,31,33,34],mu_1:29,mu_:[6,25,29,30,31],mu_i:[6,29,30,31],mu_n:11,mu_x:25,much:[0,1,2,3,4,5,6,8,9,10,11,12,13,22,23,25,28,29,30,31,33,34],multi:[0,1,3,7,21,28,29,32],multiclass:[1,7,32],multidimension:[11,12,28,34],multilay:1,multinomi:[7,32],multipl:[2,4,5,6,7,12,13,25,29,31,32,33,34],multipli:[3,5,6,11,13,22,25,29,30,31,33],multiplum:8,multivari:[0,2,10,11,21,25,28],multivariate_norm:[11,14],murphi:[11,27,28,30],must:[0,1,2,5,6,8,10,12,13,14,25,28,29,31,32,33,34],mut_add:2,mutat:[7,32],mutual:[1,3,6,13,31,32,33],mx_:25,myenv:[0,2,3,4,7,8,11,13,28,29,30,32,34],myriad:[0,15,21,28],mz1:25,mz2:25,n1:22,n2:22,n:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,22,23,25,28,29,30,31,32,33,34],n_0:[12,25,34],n_:[1,2,3,8,12,25,34],n_boostrap:[6,10,31],n_bootstrap:[6,31],n_categori:[1,3],n_cluster:14,n_compon:11,n_epoch:[13,33,34],n_estim:10,n_examples_to_gener:4,n_featur:1,n_filter:3,n_hidden:2,n_hidden_neuron:[0,1,28],n_i:25,n_input:[0,1,3,29],n_instanc:9,n_iter:[32,33],n_iter_i:[7,11,32],n_job:10,n_k:14,n_l:[12,25,34],n_layer:1,n_m:9,n_neuron:1,n_neurons_connect:3,n_neurons_layer1:1,n_neurons_layer2:1,n_point:14,n_sampl:[6,8,9,10,14,31,34],n_split:[6,31,32],n_step:4,n_t:2,n_x:2,nabla:[1,13,32,33],nabla_:[2,13,32,33,34],nabla_w:[13,33,34],nag:[13,33,34],naimi:[0,28],naiv:[7,32],naive_kmean:14,najafi:[26,28],nall:[0,28],name:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,21,22,23,25,26,28,29,30,31,32,33,34],nameerror:[10,15,23,31,32,33],narrow:[13,33,34],nary_f:[2,13,34],nary_op_arg:[2,13,34],nary_op_kwarg:[2,13,34],nary_oper:[2,13,34],nation:[1,5,29,30,31],nativ:[21,28],natur:[0,1,4,8,9,12,13,23,25,27,28,32,33,34],navier:[12,34],nb:25,nb_:22,nbconvert:28,nd:14,ndarrai:[2,6],ndef:13,ne:[9,10,22,25,29],nearest:[1,3,6,11],nearli:[13,32,33],neat:28,neatli:33,neccesari:[6,31],necess:2,necessari:[0,1,3,4,8,14,28],necessarili:[0,4,11,25,28],necesserali:[5,30,31],neck:[7,32],need:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,22,25,29,30,31,32,33,34],neg:[0,1,3,5,6,7,10,13,22,25,28,30,31,32,33,34],neg_mean_squared_error:[6,31,32],neglect:25,neglig:25,neighbor:[3,6,11],neither:[4,13,33,34],neq:[13,14,25,32,33],nervou:[12,34],nest:[2,9,12,34],nesterov:[13,33,34],net:[2,4,12,34],netlib:[22,28],network:[0,9,13,21,27,29,33],neural:[0,13,21,27,29,32,33],neural_network:[0,1,2,28,34],neuralnetwork:1,neuron:[1,2,3,4,12],neutral:[0,28],neutron:[0,28],never:[1,3,4,6,9,25,31],new_box:[2,13,34],new_chang:[13,33,34],new_hobbit:28,new_root:[2,13,34],new_trac:[2,13,34],new_tracing_count:[3,4],newaxi:[0,3,6,9,31,32],newli:[0,28],newton:[1,7,8,13,25],next:[0,1,2,3,4,5,6,8,9,13,14,28,29,30,32,33],next_guess:[13,33],next_input:4,nf8_grad:13,nfrom:13,ng:1,ngini:9,ni:14,nice:[0,1,5,11,28,29,30,31],nimport:13,niter:[13,32,33,34],nitric:[0,29],nlambda:[0,5,6,30,31,32],nlp:27,nm:25,nm_n:[0,28],nmse:[6,31],nn:[2,5,6,12,22,30,31,34],nn_model:1,nnmin:2,node:[1,2,3,9,10,12,34],node_constructor:2,nois:[0,4,5,6,8,9,10,13,15,16,19,23,28,29,30,31,32,33],noise_dimens:4,noisi:[1,6,19,23,31],non:[0,1,3,4,5,6,7,9,10,11,12,13,14,22,23,25,28,29,30,31,32,33,34],noncommerci:31,none:[0,1,2,3,4,5,9,10,13,25,28,29,30,31,32,33,34],nonlinear:[3,6,8,9,11,12,31,34],nonneg:[6,9,13,31,32,33],nonparametr:6,nonsens:25,nonsingular:22,nonumb:[3,7,8,13,22,32,33,34],nonxla:[3,4],nor:[1,4,13,33,34],norm:[0,1,5,6,8,11,13,17,28,29,30,31,32,33,34],normal:[3,4,5,6,7,8,9,10,11,12,13,15,16,18,19,21,22,23,25,28,29,30,32,33,34],normali:[22,28],norvig:28,norwai:[6,23,28,34],notat:[0,2,5,6,13,14,25,28,29,30,31,33],note:[0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,19,21,22,23,25,27,28,32,33,34],notebook:[0,1,3,9,15,21,23,28,31],notesexercise5week452022:28,notessep14:[19,32],notessep28:33,noth:[1,2,5,8,12,14,25,29,30,34],notic:[4,5,12,13,22,25,28,30,33,34],notimplementederror:2,notion:3,novel:[3,6,10,32],novemb:[1,24,26,28],now:[0,2,4,5,6,7,8,10,11,12,14,15,16,17,21,22,23,25,28,29,32],nowadai:[0,1,3,9,21,28],nox:[0,29],np:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,22,23,25,28,29,30,31,32,33,34],npr:2,nprint:13,nsampl:[6,9,31,32],nt:2,nthi:[0,28],ntrained_model:6,nu:25,nuclear:[5,29],nuclei:[0,25,28],nucleon:[0,28],nucleu:[0,28],num:4,num_allow_arg:[0,28],num_coordin:2,num_hidden_neuron:2,num_it:2,num_neuron:2,num_neurons_hidden:2,num_output:[3,4],num_point:2,num_tre:10,num_valu:2,number:[1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,22,23,24,26,28,30,31,32],numberid:[7,32],numberparamet:3,numer:[0,5,6,9,10,11,12,13,17,21,22,27,28,29,30,31,32,33,34],numpi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,21,23,25,29,30,31,32],numpy_vjp:2,numpy_wrapp:2,nunmpi:[5,29],nvalu:9,nx:[2,13],nx_test:6,nx_train:6,nx_train_mean:6,ny:25,ny_pr:6,ny_train:6,ny_train_mean:6,o:[0,6,7,8,9,11,15,22,26,27,28,29,32],obei:[6,11,13,29,30,31,33],object:[0,1,2,4,8,10,13,22,28,29,32,33,34],obliqu:[5,29],observ:[0,1,3,5,6,7,8,9,10,11,12,13,14,25,30,31,32,33,34],obtain:[0,1,5,6,7,8,9,10,12,13,14,17,22,23,25,28,29,30,31,32,33,34],obviou:[5,6,11,25,29],obviouli:28,obvious:[0,4,5,6,22,28,30,31],oc:29,occupi:[0,29],occur:[0,6,8,9,22,25,28],octob:[20,24,26,28,34],od:0,odd:[0,3,7,28,29,32],odenum:2,odesi:2,oen:0,off:[1,3,4,5,9,13,19,25,30,31,33,34],offer:[6,11,21,22,24,26,28,31],offic:[26,28],offici:[24,28],often:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,16,21,22,25,28,29,31,32,33,34],ofter:[22,28],ol:[0,13,15,16,17,18,28,29],old:[1,5,10,13,30,31,32,33],ols_fit:31,ols_fit_beta:31,ols_sk:6,ols_svd:6,olsbeta:[0,5,30],omega:[2,3,6],omega_0:3,omit:[0,5,28,29,30,31],on_train_batch_begin:[3,4],onc:[1,6,9,11,13,31,32,33,34],one:[0,1,3,4,5,6,7,8,9,10,11,13,14,19,21,22,23,25,26,28,29,30,31,34],onehot:1,onehot_vector:1,onehotencod:9,ones:[0,2,5,6,8,9,10,11,13,22,23,28,29,30,31,32,33],ones_lik:4,onl:3,onli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,19,22,23,25,28,29,30,31,32,33,34],onlin:[11,24],onto:[5,11,29],op_nam:[3,4],open:[0,1,4,6,7,9,15,21,23,24,26,28,31,32],oper:[0,1,3,5,6,10,11,12,13,15,21,25,28,29,30,31,33,34],operation:25,oplu:25,opmiz:[13,33,34],opportun:[0,28],oppos:[6,13,33,34],opposit:[1,5,8,29],opt:[1,5,28,30],optim:[0,2,3,4,5,6,7,9,10,11,14,15,16,17,18,19,23,30,31],optimis:[1,3],optimizer_v2:3,option:[0,1,3,5,6,7,8,11,22,23,29,30,31,32],optionalxlacontext:[3,4],optmiz:[1,8,13,29,33,34],oral:28,orang:0,order:[0,1,2,3,5,6,7,8,9,10,11,12,15,16,22,23,25,28,29,30,31,32],ordinari:[0,2,3,7,11,13,15,16,17,19,21,31,32,33,34],ordinrari:31,oreilli:27,org:[0,3,4,7,11,21,22,27,28,32,33,34],organ:[6,7,10,22,31,32],orient:[1,5,25,29,30],origin:[0,3,5,6,8,11,12,13,22,28,29,31,33,34],orthogn:[5,29],orthogon:[0,5,6,8,11,13,17,22,28,29,30,33],orthonorm:[5,29,30],os:[0,1,4,5,6,7,8,9,26,28,29,30,31,32],oscar:1,oscil:[3,13,33,34],oslo:[0,15,21,23,24,26,28,29,30,31,32,33,34],osx:[0,15,21,23,28],other:[0,1,2,3,5,6,7,8,10,13,14,15,19,21,23,24,25,26,27,30,31,33],otherwis:[0,1,4,7,13,22,28,29,32,33,34],ouput:[5,7,12,30,31,32],our:[1,2,3,6,7,8,9,10,12,14,15,16,17,18,19,21,22,23,25,30,31,34],ourmodel:0,ourselv:[0,5,6,8,11,13,28,29,30,31,32,33],out1:2,out2:2,out:[0,1,2,4,5,6,7,8,9,10,11,12,13,16,21,22,23,25,28,29,30,31,32,33,34],out_fil:9,outcom:[0,7,9,10,12,25,29,32],outdoor:9,outer:[6,12,13],outfil:4,outgrad:2,outlier:[0,8,28,29],outlin:[6,10,11,31],outlook:9,outperform:10,output:[0,1,3,4,5,6,7,8,9,10,12,13,16,22,23,25,28,29,30,31,32,33,34],output_bia:1,output_bias_gradi:1,output_shap:4,output_weight:1,output_weights_gradi:1,outputlayer1:[12,34],outputlayer2:[12,34],outsid:4,over1:[13,33,34],over:[0,1,3,4,5,6,9,10,12,13,22,23,28,29,30,31,32,33,34],overal:[1,10],overcast:9,overcom:[12,13,33,34],overdetermin:[0,28],overfit:[0,1,3,6,9,10,13,31,33,34],overflow:[1,5,30,31],overhead:12,overlap:[3,7,8,9,32],overlin:[0,5,6,9,10,11,14,22,28,29,30,31],overst:[0,28],overtrain:4,overview:[3,32],own:[4,5,6,8,12,13,21,22,23,30,31,33,34],owner:[0,29],ownmsepredict:0,ownmsetrain:0,ownridgebeta:[0,6,30],ownypredictridg:0,ownytilderidg:0,oxid:[0,29],p0:2,p1:2,p:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,17,22,25,28,29,30,31,32,33],p_:[2,4,8,9],p_hidden:2,p_i:[5,25,30,31],p_j:25,p_n:25,p_output:2,p_x:25,pack:[0,28],packag:[0,1,2,3,4,5,7,8,11,13,15,21,23,25,29,30,32,33,34],pad:[3,4],page:[0,21,28],pai:[0,1,9,13,33,34],pair:[0,2,3,9,21,25,28,29],pamilla:28,panda:[0,4,5,6,7,9,11,15,21,23,30,31,32],panel:28,paper:1,paradigm:[0,28],parallel:[3,4,10,13,21,22,28,33,34],param:[2,4],param_distribut:32,param_grid:32,paramat:2,paramet:[0,1,2,3,4,5,6,7,8,9,10,12,13,16,17,18,19,23,25,30,31],parameter:[0,6,10,23,28,29],parametr:[0,6,15,16,28,29,31],paramt:[3,5,30,31],parent:2,parent_argnum:2,parser:[0,28],part:[0,1,3,5,6,10,17,18,22,24,25,26,28,30,31,34],partial:[0,1,5,6,7,8,10,11,12,13,16,25,28,29,30,31,32,33],particip:[21,24,26,28],particl:[0,4,13,25,28,33,34],particular:[0,1,2,3,5,6,9,10,11,12,13,16,23,25,27,28,29,30,31,32,33,34],particularli:[5,6,8,11,13,25,29,31,32,33,34],partit:[1,4,9],partli:[6,28],pass:[2,3,12,14,32],password:23,past:[10,25],patch:[6,25,31],path:[0,4,6,7,9,15,21,28,29,31,32],patient:[7,32],patter:4,pattern:[0,3,4,12,24,27,28,34],pauli:[0,28],pc:[11,21],pca:[0,7,21,28,29,32],pd:[0,4,5,6,7,9,11,28,29,30,31,32],pde:2,pdf:[0,3,4,5,6,9,19,20,23,27,28,30,31,32,33],pedagog:[0,28,29],penal:[6,29,30,31],penalti:[6,13,23,29,30,31,32,33],penros:[5,6,30],pentagon:[13,32,33],peopl:[0,1,9,13,21,29,33,34],per:[0,1,6,24,26,28,29,31],percentag:[0,10,11,26,29],perceptron:[0,1,7,28,32],peregrin:28,perfect:[0,1,13,28,33,34],perfectli:[4,6,31],perform:[0,2,3,4,5,6,8,10,11,12,13,14,15,16,17,19,21,22,23,25,28,29,30,31,32,33,34],performac:4,perhap:[0,5,13,28,29,30,32,33],perimet:[1,9],period:[1,4,25],permut:11,persist:[13,33,34],person:[5,6,7,24,26,28,29,30,31,32],perspect:27,pertin:12,petal:[8,9],peter:27,phantom:25,phase:[6,12,34],phenomena:25,phi:8,phi_k:8,philosophi:[13,33],phone:[26,28],photo:4,phrase:[0,28],physic:[0,1,4,7,12,13,25,26,27,28,29,30,31,32,33,34],pi:[2,3,5,6,7,9,12,13,25,30,31,32,33,34],pick:[1,9,10,11,13,14,33,34],pickl:1,pictur:[0,28],pie:[21,28],piec:[11,14],pillow:[0,15,21,23,28],pinv:[5,6,13,29,30,31,33,34],pip3:[0,1,15,23,28],pip:[0,1,15,21,23,28],pipelin:[0,6,8,10,29,31],pippin:28,pit:4,pitfal:[6,29,30],pitt:[12,34],pixel:[1,3,4],pixel_height:[1,3],pixel_width:[1,3],place:[0,4,6,8,13,22,23,28,31,32,33],plai:[0,3,4,5,6,8,11,21,28,29,30,31,32],plain:[8,10,12,13,14,32,33],plan:[6,9,26,27,28],plane:[8,9],plateau:[5,30],platform:[3,4,21,28],plausibl:[12,34],pleas:[7,11,13,23,26,28,29,32,33,34],plenti:1,plethora:[3,12,34],plot:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,21,22,23,25,28,29,30,33,34],plot_confusion_matrix:[7,10,32],plot_count:6,plot_cumulative_gain:[7,10,32],plot_data:1,plot_dataset:8,plot_decision_boundari:[9,10],plot_import:10,plot_max:4,plot_min:4,plot_model:4,plot_numb:4,plot_predict:8,plot_regression_predict:9,plot_result:4,plot_roc:[7,10,32],plot_surfac:[2,6,13,23,33],plot_train:9,plot_tre:[9,10],plt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,25,28,29,30,31,32,33,34],plu:[0,3,5,7,28,29,30,32],pm:[8,31],pmatrix:2,pml:27,pn:3,png:[0,4,6,7,9,28,29,31,32],point:[0,1,2,3,5,6,7,8,9,10,11,13,14,15,16,17,19,22,23,25,26,28,29,31,32,33,34],point_1:4,point_2:4,poisson:[21,25,28],poli:[6,8,31,32],poly100_kernel_svm_clf:8,poly3:0,poly3_plot:0,poly3dcollect:[13,33],poly_featur:[8,9],poly_features10:9,poly_fit10:9,poly_fit:9,poly_kernel_svm_clf:8,polydegre:[0,5,6,10,29,30,31],polygon:[13,32,33],polym:[12,34],polymi:23,polynomi:[0,5,6,7,8,9,10,11,15,16,17,19,23,28,29,31,32],polynomial_featur:[6,31],polynomial_svm_clf:8,polynomialfeatur:[0,6,8,9,29,31,32],polytrop:[0,6,28,31],pool:3,pool_siz:3,poor:[1,13,32,33,34],poorli:[0,29],pop:2,popul:[0,5,28,29,30,31],popular:[0,1,3,6,7,8,9,11,12,15,21,22,23,25,28,29,32,34],popularli:[0,28],portabl:10,portion:[11,13,33,34],pose:[0,4,5,6,11,25,28,31],posit:[0,1,2,3,5,7,8,10,11,13,14,17,22,25,28,29,30,31,32,33,34],possibl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,19,21,22,23,25,26,28,29,30,31,32,33,34],possible_gradient_typ:[3,4],possible_gradient_types_non:[3,4],possibletapegradienttyp:[3,4],posterior:[5,30,31],postpon:[0,28,29],postscript:23,postul:[5,30,31],potenti:[0,3,5,6,12,13,28,29,30,31,33,34],pott:[12,34],power:[0,1,5,6,8,9,12,13,28,29,31,33,34],pp:[5,6,18,30,31,32],practic:[0,5,6,7,8,23,25,29,30,31,32],practition:[0,1,3,28],pre:28,preced:[1,11,12,25,34],preceed:4,preceq:8,precis:[0,2,5,11,13,22,23,25,28,29,30,31,33,34],pred:[6,31,33,34],predicit:0,predict:[0,1,5,6,7,8,9,10,15,16,21,23,27,28,29,30,31,32,34],predict_prob:1,predict_proba:[7,10,32,34],predictor:[0,5,6,7,9,10,11,28,29,30],prefer:[0,1,6,8,9,11,13,15,21,23,28],prepar:[0,6,22,23,28,29],preprocess:[0,4,6,7,8,9,10,11,30,31,32],prerequisit:0,prescript:23,presenc:[13,33,34],present:[0,5,6,7,9,12,13,22,23,25,28,29,30,33,34],preserv:[3,11,22],press:[13,27,32,33],pretrain:[1,4],pretti:[0,4,8,9,15,21,23,28],prev_centroid:14,prevent:[13,25,33,34],previou:[0,1,2,3,4,5,6,8,10,11,12,13,22,23,25,29,32,33,34],previous:[2,3,9,10,25],price:[0,4,9,13,29,33,34],primal:8,primari:[0,7,28,32],prime:25,primit:2,princip:[0,5,7,21,28,29,32],principl:[0,6,7,8,14,28,31,32],print:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,22,25,28,29,30,31,32,33,34],print_funct:[8,9],printout:[0,28],prior:[0,5,6,28,29,30,31],privat:[0,28],prob:[1,25],probabilist:[0,27,28,29],probabl:[0,1,3,4,6,7,10,13,21,28,29,32,33,34],problem:[0,3,4,5,6,7,8,9,10,11,12,16,17,21,22,23,25,31],probml:27,proce:[0,5,6,7,8,9,10,11,13,22,28,29,30,31,33],procedur:[2,4,5,6,8,10,11,13,23,29,30,31,32,33,34],proceed:22,process:[0,2,4,6,9,10,12,13,15,21,22,23,25,27,28,31,32,33,34],prod:27,prod_:[1,5,7,30,31,32],produc:[0,3,4,5,6,9,10,11,12,13,21,22,23,25,28,29,30,31,33,34],product:[0,1,3,5,6,7,8,12,13,16,21,22,28,29,30,31,32],profess:[0,28],profil:[3,4],profile_util:[3,4],program:[0,1,4,5,6,8,12,14,15,16,21,22,24,25,26,28,29,31,34],programm:22,progress:[1,4,14,33],prohibit:[6,31],project1:[6,23],project:[0,1,2,3,5,11,13,17,18,19,20,21,24,26,29,30,31,33,34],project_root_dir:[0,6,7,9,28,29,31,32],promin:[12,34],promis:8,promot:[26,28],prone:9,pronounc:[13,21,28,33,34],proof:[0,11,12,13,28,31,32,33],propag:[2,3,13,33,34],proper:[0,2,6,7,23,28,31],properli:[1,6,8,10,13,23,33,34],properti:[0,1,3,12,13,16,17,22,28,31,33,34],proport:[0,1,5,9,11,13,16,25,28,29,33,34],propos:[1,4,6,10,23,28],propto:[5,13,30,31,32,33,34],proton:[0,28],prove:[3,13,32,33,34],provid:[0,1,3,4,5,6,8,9,10,12,13,15,21,22,23,25,28,29,30,31,32,33,34],proxi:[1,13,33,34],prune:9,pseudo:[22,25,33],pseudocod:23,pseudoinv:[5,30],pseudoinvers:[5,6,30],pseudorandom:[6,25,31],psycholog:[0,28],pt:[13,33],ptratio:29,punish:[0,1,28],pure:[3,9,25],purest:9,puriti:9,purpos:[0,3,10,12,14,28,29,34],put:[1,28],py:[0,1,2,3,4,5,6,7,8,11,13,23,28,29,30,31,32,33,34],pycod:28,pydata:21,pydot:9,pyhton2:28,pylab:[0,7,28,32],pylint:[3,4],pypi:21,pyplot:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,25,28,29,30,31,32,33,34],pythagora:[5,30,31],python2:[0,15,23,28],python3:[0,2,3,4,7,8,11,13,15,21,23,28,29,30,32,34],python:[1,2,3,4,5,6,8,11,12,13,14,16,23,25,29,30,33,34],pytorch:[0,21,23,28],pywrap_tf:[3,4],q:[5,6,8,11,25,29,31],qp:8,qquad:[2,11,13,22,33,34],qr:[5,6,22,29],quad:[1,13,22,33],quadrat:[0,8,9,13,15,16,28,33],qualit:[4,9,23,25],qualiti:[0,9,15,16,21,28,29],quantifi:1,quantil:10,quantit:[0,6,9,23,28,31],quantiti:[0,2,5,6,7,9,10,11,12,14,16,22,25,28,29,30,31,32],quantum:[4,12,27,28,34],quartil:[0,29],quench:5,queri:9,question:[0,5,6,9,11,12,13,23,26,28,29,30,31,33,34],qugan:4,quick:[4,25],quick_execut:[3,4],quickli:[1,3,9,11,13,32,33],quit:[1,5,6,9,10,12,29,31,34],quot:[4,28],r2:[0,5,6,28,29,30,32],r2_score:[0,28,29],r2score:[0,28],r:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22,23,25,29,30,31,32,33,34],r_1:9,r_2:9,r_j:9,r_m:9,rad:[0,29],radial:[0,8,12,29,34],radioact:25,radiu:[0,1,9,29],rag:2,rain:9,rais:[0,2,13,28,30,34],ramp:1,ran0:25,ran1:25,ran2:25,ran3:25,rand:[0,4,5,6,9,10,13,15,16,22,28,29,30,31,32,33,34],randint:[6,9,13,31,33,34],randn:[0,1,2,5,6,9,11,13,15,16,28,29,30,31,32,33,34],random:[0,1,2,3,4,5,6,8,9,13,14,15,16,21,22,23,28,29,30,31,33,34],random_forest_model:10,random_index:[13,33,34],random_indic:[1,3],random_st:[0,7,8,9,10,11,29,32,34],randomforestclassifi:10,randomizedsearchcv:32,randomli:[1,6,9,13,14,31,32,33,34],randuniform:32,rang:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,22,25,28,29,30,31,32,33,34],rangl:[0,6,11,25,28,29],rangle_x:25,rank:[5,29],rankdir:4,raphson:[1,8,13],rapidli:[0,28],rare:[1,13,28,31,32,33,34],rate:[0,1,2,3,4,8,9,10,12,13,29,32],rather:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,25,28,29,30,31,32,33,34],ratio:[4,7,9,10,11,32],rational:[0,28],ravel:[5,6,7,8,9,10,11,13,22,29,31,32,33],raw:3,raw_df:29,rbf:[8,11,12,34],rbf_kernel_svm_clf:8,rbf_pca:11,rc:[0,25,29],rcond:[0,28,29],rcparam:[0,1,3,7,8,9,10,25,28,32],re:[2,4,13,32,33],reach:[1,4,5,6,7,9,10,11,12,13,14,30,31,32,33,34],read:[0,2,3,4,5,6,7,8,11,12,16,22,23,24,25,27,30,32,33,34],read_csv:[0,6,7,9,28,29,31,32],read_fwf:[0,28],reader:[0,6,22,25,28,29,30],readi:[0,1,5,6,8,10,11,12,22,23,28,30,31],readili:1,readthedoc:21,real:[0,1,2,4,7,10,11,12,13,22,29,31,32,34],real_loss:4,real_output:4,realist:8,realiti:25,realiz:[1,12,34],realli:[0,1,28],rearrang:[13,33,34],reason:[0,1,3,4,10,13,27,28,32,33,34],reassign:1,recal:[5,6,9,10,11,12,22,25,28,29,30,31,32,33],recast:3,receiv:[1,3,10,12,25,34],recent:[0,1,2,3,4,6,9,10,13,15,23,27,28,30,31,32,33,34],recept:[3,12,34],receptive_field:3,recip:[0,6,7,22,23,28,29,32],reciproc:[5,30],recogn:[0,4,5,10,28,30,31],recognit:[0,1,3,12,24,27,28,34],recommend:[0,2,3,4,5,6,8,13,15,18,21,22,23,27,30,31],reconsid:9,reconstruct:11,record:[10,20,23,24,26,28,33,34],rectangl:[9,13,32,33],rectangular:[5,29],rectifi:[1,3,12,34],recur:[0,21,28],recurr:[0,1,21,28],recurs:[9,21,22,28],red:[0,3,4,6,8,9,31,33],redefin:[0,10,28,29],redefinit:30,reduc:[1,3,5,6,9,10,11,13,28,30,31,32,33,34],reduct:[0,10,11,21,25,28,29],refer:[0,1,2,3,5,6,7,11,12,13,14,20,22,23,27,28,29,31,32,33,34],referenc:2,refin:[12,34],refit:[6,31],reflect:[0,1,4,5,23,25,28],refresh:[21,28],refreshprogrammingskil:28,reg:[10,11],regard:[1,9,13,33],regardless:[12,34],region:[3,4,6,9,12,23,34],regist:[6,23,25],reglasso:[5,30],regr_1:[0,9],regr_2:[0,9],regr_3:[0,9],regress:[1,8,11,12,15,16,21,22],regressor:[0,7,10,28,32],regridg:[0,5,6,30,31,32],regular:[0,3,4,5,6,7,9,13,17,26,28,29,30,31,33,34],reilli:[0,15,27,28],reinforc:[0,8,21,28],reiter:1,reject:7,rel:[0,4,6,7,9,12,13,25,28,29,31,32,33,34],relat:[0,1,3,4,5,11,13,14,22,25,28,30,31,33,34],relationship:[0,4,9,28],relativeerror:[0,28,29],releas:[1,3,4,13,21,23,28,31,33],relev:[0,1,5,7,11,15,21,23,25,28],reli:[0,6,8,28],reliabilti:23,reliabl:[7,25,32],relu:[3,4],remain:[1,2,4,6,12,22,25,29,30,31,32,34],remaind:25,reman:2,remark:1,rememb:[0,8,13,22,23,28,33,34],remind:[0,5,11,13,22,25,29,30,31],remov:[0,4,5,6,28,29,30,31],render:[0,28,29],reorder:[5,7,29,30,32],reorgan:[0,28],repeat:[0,1,3,4,5,6,9,10,11,13,14,22,23,25,28,30,31,32,33,34],repeated:28,repeatedli:[0,6,10,13,31,33,34],repet:3,repetit:[6,28,29,31,32,33],rephras:[13,32,33],replac:[0,1,3,4,5,6,10,12,14,15,16,21,23,28,29,30,31,32],replica:[6,31],repo:23,report:[20,28,33,34],reportexampl:[20,23],reportsampl:20,repositori:[0,4,23,28,29],repres:[0,1,2,3,4,5,6,7,8,9,10,12,13,25,28,29,30,31,32,33,34],represent:[0,1,3,6,25,28,31,32],representd:3,reproduc:[0,5,6,9,12,15,16,21,23,25,28,29],repuls:[0,28],request:[0,13,28,33,34],requir:[0,1,3,4,5,6,8,9,11,12,13,17,22,28,29,30,31,32,33,34],res1:2,res2:2,res3:2,res_analyt:2,res_analytical1:2,res_analytical2:2,res_analytical3:2,resaml:[6,23],resampl:[0,7,10,19,21,28,29,32,33],rescal:[0,11,12,29,34],rescu:[5,30,31],reseach:[6,23],research:[0,4,13,21,27,28,33,34],resembl:[6,25,31],reserv:[1,5,6,25,30,31],reshap:[0,1,2,3,4,6,8,9,10,15,16,22,28,29,31],residenti:[0,29],residu:[0,5,13,28,33],resiz:[5,29],resourc:28,respect:[0,1,2,3,5,6,7,8,10,11,12,13,14,16,17,23,25,28,29,30,31,32,33,34],respond:[12,34],respons:[0,7,9,12,28,29,32,34],rest:[0,5,29],restat:[0,12,28],restor:4,restored_discrimin:4,restored_gener:4,restrict:[0,3,9,12,28,34],result:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22,23,25,28,31,32,33,34],retail:[0,29],retain:[5,6,29,31,32],rethink:31,return_data:14,return_sequ:4,return_x_i:9,reus:[1,3,6,18,19,20,23],reveal:[0,12,28,34],revers:[1,22],review:[21,22],revisit:14,revolut:28,reward:[0,4,28],rewrit:[0,3,5,6,7,8,10,11,12,13,19,22,23,25,30,32,33,34],rewritten:[2,6,8,10,25,31],rewrot:[13,32,33],rf:10,rgb:3,rgoj5yh7evk:21,rh:[6,31],rho:[0,10,13,28,33,34],rho_1:10,rho_2:10,rho_m:10,rich:[0,28],ride:9,rideclass:9,ridedata:9,ridg:[7,11,13,21,28],ridge_fit:31,ridge_fit_beta:31,ridge_sk:6,ridgebeta:[5,30],ridgecv:32,right:[0,1,2,3,5,6,7,8,9,10,12,13,14,16,17,19,22,23,25,28,29,30,31,32,33,34],right_sid:2,rightarrow:[0,1,5,6,8,11,12,13,25,28,29,31,32,33,34],rigor:[0,28],ring:6,rise:[0,28],risk:[0,13,15,16,28,32,33,34],rival:4,river:[0,29],rm:[0,25,29],rmse:[0,29],rmsporp:[13,33,34],rmsprop:[1,3,4,13],rnd_clf:10,rng:25,rnn1:4,rnn2:4,rnn:[4,12,34],rnn_2layer:4,rnn_input:4,rnn_output:4,rnn_train:4,rntrick1:25,rntrick2:25,rntrick3:25,rntrick4:25,ro:[0,13,28,32,33,34],robert:[18,23,27],robust:[0,28],robustscal:[0,29],roc:[7,10],role:[0,2,5,6,8,21,28,29,30,31,32],roll:6,room:[0,26,28,29],root:[0,5,9,13,25,28,29,30,32,33,34],rot:28,rotat:[1,8,9,10],rotation_matrix:9,roughli:[1,3],round:[0,7,9,13,29,32,33,34],routin:[13,22,28,32,33],row:[0,1,2,5,6,7,9,11,22,28,29,30,31,32],rr:[5,29],rrr:[5,29],rug:[13,32,33,34],rule:[0,1,5,6,13,23,28,29,30,31,33,34],run:[0,1,2,3,4,5,6,8,9,11,13,15,21,23,28,29,30,31,32,33,34],runtim:[1,6,14],runtimewarn:[1,6,31],russel:28,rust:[0,15,21,22,28],rv_frozen:32,rvert:1,rvert_2:1,s:[0,1,2,3,4,5,6,7,9,11,12,13,16,17,18,21,22,23,25,28,29,30],s_1:6,s_:[3,6],s_i:[6,7,32],s_j:6,s_k:6,saddl:[13,32,33,34],sai:[0,1,2,3,4,5,6,7,8,9,10,11,12,22,23,25,28,29,30,31,32],said:[6,9,13,32,33],sake:[0,5,7,11,28,29,30,32],sale:[0,28],sam:28,same:[0,1,2,3,4,5,6,8,9,11,12,14,17,22,23,25,28,29,30,32],samm:10,sampl:[0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19,21,22,23,25,28,29,30,31,32,33,34],sample_vari:14,sample_weight:[3,4],sampleexptvari:25,samwis:28,sastri:11,satisfactori:[0,28],satisfi:[1,2,3,6,8,13,17,22,25,31,32,33],satur:[1,6,31],save:[0,4,6,7,9,13,28,29,31,32,33,34],save_fig:[0,6,7,9,10,28,29,31,32],savefig:[0,4,6,7,9,25,28,29,31,32],savetxt:4,saw:[5,29],scalabl:10,scalar:[2,5,6,10,13,29,30,31,34],scale:[0,1,3,5,6,7,8,9,10,11,12,13,15,16,17,21,22,23,26,28,30,32,33,34],scale_mean:4,scale_std:4,scaler:[0,7,8,9,10,11,29,31],scan:[5,7,30,31,32],scari:[5,30,31],scatter:[0,1,6,7,8,9,14,28,29,30,31,32],scenario:[6,13,32,33,34],schedul:[13,26,33,34],scheme:[1,13,32,33,34],schrage:25,scienc:[0,1,10,12,13,21,24,25,26,27,29,32,33,34],scientif:[0,15,21,23,28,33,34],scientist:[0,28],scikit:[3,5,6,7,8,9,10,13,21,22,23,24,27,34],scikit_learn:[0,16],scikitlearn:28,scikitplot:[7,10,32],scipi:[0,3,5,6,13,15,21,22,23,28,29,30,31,32,33],scl:6,score:[0,1,3,6,7,9,10,11,15,16,23,26,28,29,31,32,33,34],scores_kfold:[6,31,32],scratch:[1,13,34],sdg:[13,33,34],seaborn:[0,1,3,6,7,28,29,32],seamless:[0,15,21,23,28],search:[0,1,3,5,9,13,28,30,33,34],sec:6,second:[0,2,3,4,5,6,7,8,9,11,12,14,15,16,21,22,23,25,26,28,29,31,32],second_mo:[33,34],second_term:[33,34],secondeigvector:11,secondli:12,section:[4,11,17,22,25,29,30,32,33,34],sector:[0,28],see:[0,1,2,3,4,5,6,7,8,10,11,12,13,15,16,17,18,19,21,22,23,25,28,29,30,31,32,33,34],seed:[0,1,2,3,4,5,6,8,9,11,13,14,15,16,23,25,28,29,30,31,32,33,34],seed_imag:4,seek:[1,2,8],seem:[1,3,4,33,34],seemingli:[0,28],seen:[0,1,3,5,10,12,17,25,28],segment:[13,32,33],seismic:6,seldomli:[0,28],select:[1,5,6,8,9,10,11,17,23,24,25,26,27,28,29,30,31],self:[1,2,3,4,5,29,30],sell:4,semest:[7,24,32],semi:[8,13,32,33],semilogx:6,send:[5,12,13,26,28,33,34],senior:[24,26],sens:[0,4,6,8,23,28,31],sensibl:3,sensit:[0,5,6,9,13,28,29,30,31,34],sent:[2,31],sentenc:[4,12,34],sep:[29,31],separ:[0,1,2,4,6,8,9,12,14,15,21,23,25,28,31,34],septemb:[16,17,18,19,20,23,28,29,33],sequenc:[2,3,4,7,9,10,12,13,21,22,25,28,32,33,34],sequenti:[1,3,4,10,12,25,34],seri:[0,1,2,3,4,5,6,10,11,12,13,22,28,29,30,31,32,33,34],serif:[0,7,25,28,32],serv:[0,1,2,3,5,7,13,23,27,28,29,30,31,32,33,34],servic:23,session:[1,20,23,24,26,28,31,32,33,34],set:[1,4,5,6,7,8,10,11,13,14,16,17,21,22,23,25,26,30,31,33,34],set_major_formatt:[6,23],set_major_loc:[6,23],set_tick:[1,8],set_ticklabel:1,set_titl:[0,1,2,3,7,12,14,28,32,34],set_xlabel:[0,1,2,3,7,12,28,32,34],set_xlim:[7,12,32,34],set_xticklabel:1,set_ylabel:[0,1,2,3,7,28,32],set_ylim:[7,12,32,34],set_ytick:[7,32],set_yticklabel:[1,6],set_zlim:[6,23],seth:4,setminu:[6,32],setosa:[8,9],setosa_or_versicolor:8,setp:[6,31],setup:[1,4,6,8,21,28,29],sever:[0,3,5,6,7,8,9,11,12,13,21,22,25,28,29,30,31,32,33,34],sgd:[1,3,32],sgd_clf:8,sgdclassifi:8,sgdreg:[13,32,33],sgdregressor:[13,32,33],sgn:[5,29,30],shallow:[13,33,34],shape:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,22,28,29,30,31,32,33],shape_bas:2,share:[1,3,28],she:[7,32],shift:[1,6,12,25,30,34],ship:3,shire:28,shortcom:[13,32,33,34],shorten:4,shorter:25,shorthand:[28,31],shortli:[22,28],should:[0,2,3,5,6,8,9,11,12,13,15,16,22,23,25,28,29,30,31,33,34],should_sync:[3,4],show:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,22,23,25,28,29,30,31,32,33,34],show_shap:4,shown:[0,4,5,7,8,11,12,13,22,29,32,33,34],shrink:[3,5,6,8,11,23,29,30],shrinkag:[5,6,29,30],shrunk:11,shuffl:[0,1,3,4,6,13,29,31,32,33,34],side:[0,2,5,8,12,13,22,28,30,31,32,33,34],sigh:[21,28],sigma0:25,sigma1:25,sigma2:25,sigma:[0,1,5,6,7,10,11,12,13,17,18,19,22,23,25,28,29,30,31,32,33,34],sigma_0:[5,29,30],sigma_1:[5,29,30],sigma_2:[5,29,30],sigma_:[5,22,28,29,30,31],sigma_fn:[7,12,32,34],sigma_i:[0,5,28,29,30],sigma_j:[5,17,29,30],sigma_m:[6,25,31],sigma_n:[11,25],sigma_t:[13,33,34],sigma_x:25,sigmoid:[1,2,4,7,8,10,12,32,33,34],sigmundson:[6,29,30],sign:[1,2,7,8,10,25,26,32],signal:[1,3,10,12,34],signatur:[3,4],signifi:4,signific:1,significantli:[1,13,25,32,33,34],sim:[4,5,6,13,18,23,25,30,31,33,34],similar:[0,1,2,3,4,5,6,7,8,9,10,11,14,17,21,22,23,28,29,30,31,32],similarli:[0,1,3,5,8,10,13,20,25,28,29,30],simpl:[1,2,3,5,6,7,8,10,11,12,14,15,16,17,19,21,22,23,25,31],simple_rnn:4,simplepredict:10,simpler:[0,1,5,6,7,13,16,19,21,23,28,30,33,34],simplernn:4,simplest:[0,1,3,4,9,10,12,14,28,34],simpletre:10,simpli:[0,1,2,4,5,6,8,9,10,11,12,15,21,22,23,25,28,29,30,31,34],simplic:[2,5,6,7,8,9,10,11,12,14,29,30,31,32,34],simplicti:[5,29],simplifi:[0,6,9,15,21,23,28,29,30,31],simplist:[3,6,25,31],simul:[6,31],simultan:[6,31],sin:[0,1,2,3,4,9,12,13,22,28,33,34],sinc:[0,1,2,3,5,6,7,8,9,10,11,13,22,25,27,28,29,30,31,32,33,34],sine:[3,12,34],singl:[0,1,2,3,5,6,7,8,9,12,13,22,25,28,29,30,31,32,33],singular:[0,6,13,22,23,28,30,31,32,33],sinusoid:3,site:[0,2,3,4,7,8,11,13,23,24,28,29,30,32,34],situat:[0,4,5,7,13,25,28,29,32,33,34],six:[3,25],size:[0,1,2,3,4,5,6,8,9,10,11,13,22,23,25,28,30,31,32,33,34],sketch:10,ski:9,skill:[0,28],skip:[3,4,11],skiprow:29,skl:[0,6,28,29,30],sklearn:[0,1,3,5,6,7,8,9,10,11,13,14,28,29,30,31,32,33,34],skplt:[7,10,32],sl:[6,30,32],slack:8,slice:[2,22,28],slide:[0,3,15,16,23,25,28,29,31,33],slight:[6,13,31,33,34],slightli:[1,2,3,5,6,7,10,25,29,30,31,32],slope:[8,11,12,34],slow:[0,2,8,13,29,32,33,34],slower:[5,22,28,29,30],slowest:22,slowli:12,slp:1,small:[0,1,2,3,5,6,8,9,10,11,12,13,21,22,23,25,28,29,30,31,32,33,34],smaller:[0,1,2,5,6,8,9,11,13,25,28,29,30,31,32,33,34],smallest:[0,4,14,15,16,28,32],smallest_row_index:14,smooth:[0,3,6,9,13,23,28,32,33],sn:[0,1,3,6,7,28,29,32],sne:11,sneak:28,so:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,21,22,23,25,26,28,29,30,31,32,33,34],soar:6,social:[0,28],societ:28,soft:[1,7,10,12,32,34],soften:8,softmax:[3,7,32],softwar:[0,8,15,21,22],sol:8,sole:[0,6,28],solid:[0,7,28,32],solut:[0,1,2,3,5,6,8,10,11,13,17,18,22,23,25,28,29,30,31,32,33,34],solution_ev:33,soluton:2,solv:[0,1,3,5,6,8,10,11,12,13,22,23,28,29,34],solve_expdec:2,solve_ode_deep_neural_network:2,solve_ode_neural_network:2,solve_pde_deep_neural_network:2,solveod:2,solveode_popul:2,solver:[2,7,8,9,10,11,22,32],some:[0,1,2,3,4,5,6,7,8,9,10,11,12,14,25,30,31,34],some_model:[6,29,30],somehow:4,someth:[0,1,3,4,7,9,11,23,25,28,29,32],sometim:[0,1,11,12,13,14,28,29,33,34],somewhat:34,soon:[22,26],sophist:[0,28],sopt:[13,33],sort:[5,6,9,11,25,29,31],sound:[3,5,30,31],sourc:[0,1,3,6,15,21,22,23,25,28,29,31],space:[0,1,4,5,8,9,11,12,13,14,25,29,30,31,32,33,34],span:[0,3,5,9,11,22,28,29],spare:1,spars:[3,6,22,28],sparse_mtx:[22,28],sparsecategoricalcrossentropi:3,sparseobject:2,sparsiti:10,spatial:[1,2,3,12,34],speak:25,special:[6,7,10,12,13,22,25,28,29,30,31,32,33],specif:[0,1,2,3,4,5,6,7,8,9,11,12,16,21,22,23,25,27,28,29,30,31,32,34],specifi:[0,3,5,6,7,9,11,13,14,23,25,28,30,31,32,33,34],specifici:[0,10,28],spectacular:3,spectral:1,speech:[0,1,3,4,12,28,34],speed:[1,2,4,13,33,34],spend:25,spent:23,sphere:[0,29],spin:6,spite:[0,28],spline:8,split:[1,3,4,5,6,8,9,10,11,14,17,23,25,30,31,32],splite:0,splitter:[1,10],spontan:25,spot:3,spread:[0,11,25,28,29],springer:[18,23,27,28,30],spuriou:[13,33,34],sqquar:30,sqrsignal:3,sqrt:[0,3,4,5,6,8,10,11,13,17,25,29,30,31,33,34],squar:[1,2,3,4,7,8,9,11,13,14,15,16,17,19,21,22,25,31,32,33,34],squarederror:10,squaredeuclidean:14,squash:[12,34],srtm:[6,23],srtm_data_norway_1:[6,23],stabil:[5,23],stabl:[0,4,5,6,7,9,11,21,28,29,30,32],stack:[2,3,4],stacklevel:[0,28],stage:[5,13,23,33,34],stai:[0,2,4,5,11,17,28,29],stand:[0,5,9,12,28,29,30,34],standadscal:29,standard:[0,1,4,5,6,7,8,10,12,15,16,17,19,22,23,25,28,30,32,34],standard_basi:2,standardscal:[0,6,7,8,9,10,11,29,30,31],stanford:[13,32],start:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,20,22,23,25,26,28,29,31,32,33],start_box:[2,13,34],start_nod:[2,13,34],start_tim:14,stat:[6,29,31,32],state:[1,2,4,5,6,7,8,10,11,12,13,21,25,29,30,31,32,33,34],statement:[0,7,22,32],stationari:[32,33],statist:[0,1,3,4,7,9,10,11,12,13,14,18,22,23,24,27,29,32,33,34],statu:[0,7,11,28,29,32],stavang:[6,23],std:[0,4,6,28,29,31],steep:[13,32,33,34],steepest:34,step:[0,1,2,3,4,6,7,9,10,11,12,13,14,22,23,28],step_fn:[7,12,32,34],step_length:[13,33,34],step_num:[3,4],step_siz:33,steps_list:9,steps_per_epoch:[3,4],stereo:3,still:[0,2,3,5,6,11,13,17,25,31,32,33,34],stimuli:[12,34],stk2100:[27,28],stk3155:[15,23,24,26],stk4021:[27,28],stk4051:[27,28],stk4155:[24,26],stk5000:27,stk:[27,28],stochast:[0,1,5,6,8,11,12,15,16,23,28,30,31,32],stock:4,stoke:[12,34],stone:[0,7,23,28,32],stop:[1,4,7,9,11,13,14,32],storag:[5,29],store:[0,1,2,3,6,11,13,23,25,28,33,34],storehaug:[26,28],str:[1,3,4],straight:[0,6,8,13,28,29,31,32,33],straightforward:[0,2,3,5,6,8,9,10,13,22,28,29,30,31,32,33],strategi:[0,1,9,28],stratifi:[6,31],strength:[0,5,14,29],stretch:11,strict:[8,13,32,33],strictli:[8,13,32,33],stride:[4,22],strike:6,string:1,stroke:[7,32],strong:[3,6,9,10,12,22,25,31,34],strongli:[0,8,21,22,29],stronli:[0,29],structur:[0,1,2,3,6,9,10,12,21,28,31,32,33,34],stuck:[1,13,32,33,34],student:[0,23,24,26,27,28],studi:[0,3,4,5,6,7,8,11,12,13,17,19,21,23,27,28,29,30,33,34],studier:27,style:[0,7,9,22,28,32],sub:[9,12,34],subarg:[2,13,34],subdivid:[0,22,28],subfield:[0,28],subject:[6,8,25],submit:28,subplot:[0,1,3,4,6,7,8,9,10,13,14,23,28,29,31,32,33],subplots_adjust:[8,25],subprogram:[22,28],subract:[0,29],subroutin:[0,28],subscript:1,subsequ:[1,4,5,6,12,22,25,29,31,34],subset:[1,6,9,12,13,21,28,31,32,33,34],subspac:[0,8,11,29],substanti:[9,10],substep:11,substitut:[3,6,12,22,31,34],subsubset:9,subtask:6,subtl:1,subtract:[0,4,5,6,11,13,17,22,23,25,30,31,33,34],subtre:9,subval:[2,13,34],succeed:[0,4,28],success:[3,7,9,13,25,32,33],successfulli:[4,9],sudo:[0,15,21,23,28],suffer:[0,1,2,5,10,28,29,30],suffici:[1,6,8,11,13,31,32,33],suggest:[1,13,27,33,34],suit:[8,12,34],suitabl:[0,25,29],sum:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,25,28,29,30,32,33,34],sum_:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,28,29,30,31,32,33,34],sum_i:[0,2,5,6,8,13,17,19,23,29,30,31,33,34],sum_j:6,sum_ja_:0,sum_k:[6,8,12,22],sum_logist:[13,33,34],sum_m:3,sum_n:3,sum_nx_:3,summar:[5,6,9,30,31,32,33],summari:[1,3,4,10,24,30],summat:[0,3,16,29],sundai:[17,18,19,20],sunni:9,superconduct:[29,30],superfici:3,superscript:[1,12,34],supervis:[0,5,6,7,9,12,21,28,29,31,32,34],supplement:[7,32],support:[0,1,9,10,11,13,21,28,29,33,34],suppos:[0,5,6,7,8,10,11,12,13,22,28,29,30,31,32,33,34],suppress:[5,13,30,33,34],sure:[0,1,4,6,23],surf:[6,23],surfac:[0,6,23,28],surpass:6,surpris:[0,28],surround:[3,21],survei:[0,5,6,28,29,30,31],svc:[8,9,10],svd:[0,6,11,17,28,31],svdinv:[5,30],svm:[8,9,10,11],svm_clf:[8,10],swath:[5,29],sy:[13,32,33],symbol:[1,5,11,13,21,25,28,29,30,33,34],symmeteri:1,symmetr:[0,5,8,11,12,13,22,28,29,33,34],symmetri:[6,9],sympi:[0,15,21,23,28],synonim:25,syntax:13,syntaxerror:8,system:[0,1,3,4,6,7,9,10,12,13,15,21,22,23,28,32,33,34],systemat:[4,6,31],t0:[3,6,13,33,34],t1:[2,13,33,34],t2:2,t3:2,t:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,25,26,28,31,32,33,34],t_0:[2,9,13,33,34],t_1:[13,33,34],t_:2,t_b:10,t_i:[1,2,5,12,29],t_j:12,t_k:9,tabl:[9,23,25,26,28,34],tabul:[0,28],tabular:28,tackl:4,tag:[2,3,4,5,6,7,12,13,14,22,25,29,32,33,34],taht:[0,28],tail:25,tailor:[2,8,11,28],taiwan:[0,28],take:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,21,22,23,25,28,29,30,31,32,33,34],taken:[0,1,3,6,10,13,22,28,31,33,34],tan:3,tangent:[1,4,12,13,32,33,34],tanh:[1,4,7,8,12,32,33,34],tape:[3,4],target:[0,1,3,4,5,6,7,8,9,10,11,12,28,29,30,31,32,33,34],target_nam:9,task:[0,1,3,6,9,11,12,14,20,23,28,31,34],tau:[3,5,25,30,31],taught:28,tax:[0,29],taylor:[2,13,32,33],taylornr:[13,32,33],tba:33,tc:8,td:[1,6,13,23,28,31,33],teach:28,team:1,teaser:0,technic:[0,5,6,13,15,28,29,33,34],techniqu:[0,1,8,10,13,21,25,27,28,29,31,32,33,34],technolog:[0,1,28],tell:[0,4,6,10,11,13,25,31,33,34],temp1:1,temp2:1,temp:1,temperatur:[0,9,28],temporarili:1,ten:[3,17,28],tend:[3,5,6,8,9,10,12,13,14,29,30,31,33,34],tendenc:[0,28],tension:[6,31],tensor:[3,4],tensorflow:[0,2,4,8,14,15,21,22,23,24,27,28,29],term1:[5,6,11,23,29],term2:[5,6,11,23,29],term3:[5,6,11,23,29],term4:[5,6,11,23,29],term:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,23,25,28,29,30,32,33,34],termin:[0,4,5,9,10,13,15,28,29,33,34],terrain1:[6,23],terrain:[6,23],test:[3,4,5,6,7,8,9,10,13,17,19,22,23,25,31,32,33,34],test_acc:3,test_accuraci:[1,3],test_error:6,test_imag:[3,4],test_ind:[6,31,32],test_input:4,test_label:[3,4],test_loss:3,test_pr:1,test_predict:1,test_rnn:4,test_scor:[7,10,32],test_siz:[0,1,3,5,6,10,28,29,30,31,32],test_split:9,tester:30,testerror:[0,6,29,31],testi:4,testpredict:4,testx:4,text:[0,1,2,4,5,8,9,11,13,15,22,25,27,28,29,31,32,33,34],textbook:[17,23,29,31],textual:9,textur:[1,9],tf:[1,3,4,13,14,32,33],tfe_py_execut:[3,4],th:[0,1,2,5,6,7,9,12,13,14,15,16,22,23,25,28,29,30,31,32,33,34],than:[0,1,2,3,4,5,6,7,9,10,11,12,13,17,21,25,28,29,30,31,34],thank:[4,6,29,30],theano:[1,21,28],thei:[0,1,2,3,4,5,6,7,8,9,11,12,13,22,23,25,29,30,31,32,33,34],them:[0,1,3,4,6,8,9,10,11,12,13,22,23,28,29,30,31,33,34],theme:[0,28],themselv:[0,25,28],thenc:[6,31],theorem:[2,6,7,29,32,34],theoret:[0,4,10,28],theori:[0,1,3,8,9,12,13,18,21,23,27,28,30,33,34],thereaft:[0,5,6,11,12,15,16,17,22,23,28,31],therebi:[0,5,7,11,28,29,30,32],therefor:[0,1,2,3,4,6,7,8,11,13,25,28,29,31,32,33,34],therein:11,thereof:[0,6,13,28,31,33,34],theta:[1,4,13,25,33,34],theta_:[1,13,33,34],theta_i:1,theta_linreg:[13,33,34],theta_t:[13,33,34],thetaand:34,thetaor:34,thetaxor:34,thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,21,22,23,24,25,27,29,30,31,32,33,34],thing:[0,1,2,4,5,7,9,25,28,30,31,32],think:[0,1,3,4,6,9,12,13,14,25,28,31,32,33,34],third:[0,3,6,13,26,28,31,32,33,34],thirti:[7,32],thorughout:28,those:[0,3,5,6,8,9,10,11,22,23,24,28,29,31],though:[1,2,3,4,13,22,25,33,34],thought:[6,14,23,25,31],thousand:[0,1,23,28,29,33,34],thread:[3,4],three:[0,1,3,5,6,8,9,12,15,22,23,24,25,26,28,29,30,31,32,34],threshold:[1,3,9,10,11,12,13,33,34],through:[0,1,2,3,4,5,6,8,11,12,13,14,21,22,25,28,29,30,31,32,33,34],throughout:[0,4,5,14,21,22,25,28],thu:[0,1,2,5,6,7,8,10,11,12,13,23,26,28,29,30,31,32,33,34],thumb:[0,6,23,28,29],thursdai:[26,28,33,34],tibshirani:[6,18,23,24,27,28,29,31],tick_param:6,ticker:[6,13,23,25,32,33],tif:[6,23],tight_layout:[1,7,32],tightli:11,tild:[0,5,6,7,11,15,16,17,18,19,23,25,28,29,30,31],till:[0,4,7,8,9,10,12,22,28,29,32,33],time:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,21,22,23,25,28,29,30,31,32],timeit:4,timer:4,tini:1,tip:3,titl:[0,1,2,3,4,6,7,8,9,10,13,23,25,28,29,31,32,33,34],tmp:[13,33,34],tmp_log:[3,4],tn:[2,3,7],to_categor:[1,3,4],to_categorical_numpi:1,to_numer:[0,6,28,31],todai:3,togeth:[0,3,6,8,11,13,21,28,29,33,34],toi:[14,33,34],told:[13,33,34],toler:[2,14],tolist:4,tomographi:[12,34],too:[0,2,4,5,6,9,11,13,15,25,27,28,29,31,32,33,34],took:[8,28],tool:[0,1,3,6,13,21,29,31,33,34],toolbox:8,top:[0,3,5,6,9,10,18,21,28,30,31],topic:[0,5,6,7,8,21,23,29,30,32],topograph:23,topolog:[1,3,12,34],toposort:2,torkjellsdatt:[26,28],toss:[10,25],total:[0,1,2,3,4,6,7,8,10,11,12,13,14,15,16,22,25,26,28,29,31,32,33],total_loss:4,totalclustervari:14,totalscatt:14,toward:[1,2,7,12,13,23,32,33],towardsdatasci:[33,34],town:[0,29],tp:[4,7],tpng:9,tpu:[13,21,28,33,34],tqdm:6,tr:29,trace:[2,3,4,13,34],trace_stack:[2,13,34],traceback:[0,1,2,3,4,9,10,13,15,23,28,30,31,32,33,34],traceback_util:[3,4],tracer:[2,13,34],tracing_count:[3,4],track:[3,13,14,22,32,33,34],tract:[0,29],tractabl:[0,28,29],trade:[5,9,19,30,31],tradeoff:[0,5,19,23,28,29,30,32],tradit:[0,1,4,6,28,31],train:[2,3,5,6,8,9,10,11,12,13,17,19,23,30,31,32,33,34],train_accuraci:[0,1,3,28],train_dataset:4,train_end:[0,1,29],train_error:6,train_funct:[3,4],train_imag:[3,4],train_ind:[6,31,32],train_label:[3,4],train_pr:1,train_siz:[0,1,3,29],train_step:4,train_test_split:[0,1,3,5,6,7,9,10,11,28,29,30,31,32],train_test_split_numpi:[0,1,29],trainabl:4,trainable_vari:4,trained_model:[6,29,30],trainerror:[0,29],traini:4,training_checkpoint:4,training_dataset:4,training_gradi:[13,33,34],training_gradient_fun:[33,34],training_loss:[33,34],trainingerror:[6,31],trainpredict:4,trainscor:4,trainx:4,trait:[0,28],trajectori:4,transfer:9,transform:[0,5,6,7,8,9,10,11,12,13,21,22,28,29,30,31,32,33,34],transit:[6,12,34],translat:[1,4,6,10,29,30],translate_vjp:2,transpos:[1,5,11,22,29,30],travers:[0,5],treat:[0,1,3,6,12,13,25,28,29,30,31,32,33,34],tree:[0,1,6,21,23,28],tree_clf:[9,10],tree_clf_:9,tree_clf_sr:9,tree_reg1:9,tree_reg2:9,tree_reg:9,trend:25,treue:7,trevor:[18,23,27],tri:[2,3,4,9,13,32,33,34],triain:0,trial:[0,2,4,6,13,25,28,31,32,33],triangl:[13,32,33],triangular:22,trick:[3,4,8,11,13,25,33,34],trickier:25,tridiagon:22,trillion:21,trivial:[0,1,5,11,25,28,30],troubl:[0,8,12,29],truck:3,true_beta:[6,29,30],true_fun:[6,31],truli:28,tucker:8,tuesdai:[26,28,31,32,33,34],tumor:[7,9,32],tumour:[7,32],tunabl:1,tune:[4,9,13,22,28,32,33,34],tupl:[2,13,34],turn:[0,1,5,6,7,8,9,10,11,12,13,19,22,23,25,28,29,31,32,33,34],tutori:[1,4],tv:2,tveito:2,tweak:[1,4,10,25],twice:[13,32,33],twist:11,two:[0,1,2,4,5,6,7,9,10,11,12,13,15,16,22,24,25,27,28,30,31,33,34],tx:[13,32,33,34],tx_1:[13,32,33],txt:4,ty:[13,32,33],type:[0,1,3,6,8,10,13,16,22,23,25,29,30,31,32,33],typeerror:[2,13,34],typic:[0,1,2,3,4,5,7,9,10,12,13,25,28,29,30,31,32,33,34],typo:23,u:[0,2,5,6,8,10,11,12,17,22,28,29,30,34],u_:22,u_i:[12,34],u_m:10,ua:[0,28],ubuntu:[0,15,21,23,28],uci:[0,29],uio:[23,26,27],un:14,unari:[22,28],unary_f:[2,13,34],unary_oper:[2,13,34],unary_to_nari:[2,13,34],unbalanc:[6,9,31,32],unbias:[0,5,6,28,30,31],uncent:[6,30],uncertainti:[0,5,28,30,31],uncertitud:25,unchang:[1,3],uncorrel:[10,25],undefin:[5,29],under:[0,1,5,6,10,13,15,16,21,23,28,29,30,31,32,33],underdetermin:[0,28],underfit:[1,6,31],underflowproblem:[5,30,31],undergo:[5,30,31],undergradu:[24,26],underli:[0,1,9,13,25,28,33,34],underset:[4,14],understand:[0,1,3,5,6,10,13,14,21,28,29,30,32,33,34],understood:[8,13,33,34],undesir:8,undetermin:[5,8,30,31],undo:4,unexpect:[6,31],unexpected:25,unfair:[6,29,30],unfortun:[1,8,9,10],unicode_liter:[8,9],uniform:[0,1,5,6,11,13,15,16,23,25,28,29,32,33],uniformli:[13,25,32,33,34],unifrompdf:25,unimport:[13,32,33],union:[5,6,30,31,32],uniqu:[0,2,6,13,14,22,28,31,32,33],unique_cluster_label:14,unit:[0,1,3,4,5,10,12,25,28,29,30,34],unitari:[5,6,22,29],unitarili:[22,28],uniti:25,univari:25,univers:[0,1,2,13,15,21,23,24,26,28,29,30,31,32,33,34],unix:1,unknow:[0,22,28],unknown:[0,1,3,4,5,6,8,10,13,16,22,28,29,30,31,33,34],unknowwn:12,unlabel:1,unless:[0,3,6,11,13,23,28,29,31,32,33],unlik:[1,2,3,8,13,32,33,34],unnecessarili:9,unord:3,unravel:1,unrol:[3,11],unseen:[0,7,9,32],unstabl:1,unsupervis:[0,1,4,12,21,28,34],unsymmetr:[22,28],untak:2,until:[1,2,4,9,12,13,14,32,33,34],untouch:0,unusu:[12,34],up:[1,3,4,5,6,8,10,11,13,14,16,18,21,22,23,25,26,30,33,34],updat:[1,2,10,12,13,14,33,34],uploa:28,upload:[21,23,27],upon:[0,1,6,7,11,22,23],upper:[0,8,9,16,22,29],uppercas:[22,28],upsampl:4,upscal:4,us:[4,5,6,8,9,10,11,12,14,15,16,17,18,19,22,23,24,25,27,30,31],usa:[28,34],usag:[0,8,21,28,29],usd10000:[0,29],usd:[0,29],use_bia:4,use_multiprocess:[3,4],usecol:[0,28],useless:1,user:[0,1,2,3,4,6,7,8,11,15,21,22,23,28,29,30,32],usernam:23,userwarn:3,usetex:25,usg:[6,23],usr:25,usual:[0,3,4,7,12,13,14,28,32,33,34],ut:[5,30],util:[0,1,3,4,6,7,10,14,28,29,31,32],ux:22,v0:25,v1:25,v2:25,v:[2,4,5,6,11,13,17,21,29,30,33,34],v_0:11,va:1,val:[13,33,34],val_accuraci:3,val_loss:4,vale:2,valid:[0,1,4,7,9,10,13,21,25,28,29,33,34],validation_batch_s:[3,4],validation_data:[3,4],validation_freq:[3,4],validation_split:[3,4],validation_step:[3,4],valu:[0,1,2,3,4,6,7,8,9,10,12,13,14,15,16,19,21,22,23,28,33,34],valuat:9,valueerror:[0,2,28],valy:4,van:[0,18,23,28,29,30,31],vandenbergh:[8,13,32,33],vandermond:[0,28],vanilla:[0,6,11,14,29,30],vanish:[1,4,13,25,32,33],var_x:25,varabl:8,varepsilon:[5,6,18,23,30,31],varepsilon_:[5,6,30,31],varepsilon_i:[5,6,30,31],vari:[0,1,3,5,6,10,15,16,28,31],variabl:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,22,28,29,30,31,34],varianc:[0,1,5,7,9,10,11,13,14,18,19,21,22,25,28,29,32,33,34],variance_i:[5,11,29],variance_x:[5,11,29],variant:[0,1,6,8,12,13,28,29,32,33,34],variat:[3,4,11,28],varieti:[0,3,12,15,21,23,28,34],variou:[1,3,5,6,7,8,9,11,12,13,16,18,21,22,23,25,29,30,33,34],varydimens:4,vastli:3,vaue:1,vault:0,vdot:[2,13,32,33],ve:23,vec:[6,31],vector:[0,1,2,3,4,5,6,7,9,10,11,13,14,16,17,21,30,31,32,33],vector_mean:14,ventur:[0,8,15,21,28],verbos:[1,3,4],veri:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,25,27,28,29,30,31,32,33,34],verifi:[3,11,22,28],versatil:[8,28],versicolor:[8,9],version:[0,3,4,10,13,14,15,21,22,23,25,28,29,33,34],versu:1,vert:[0,1,5,6,7,8,9,11,13,17,28,29,30,31,32,33],vert_1:[5,6,29,30,31],vert_2:[5,6,11,17,29,30,31],via:[0,5,6,7,8,9,10,11,12,15,19,21,22,23,24,25,26,28,29,30,31,32,34],vidal:11,video:[0,1,12,21,24,26,28,29,30,31,32],view:[1,3,5,6,12,13,25,27,28,30,31,33,34],violat:8,virginica:9,viridi:[0,1,2,3,28],virtual:1,viscos:[13,33,34],viscou:[13,33,34],visibledeprecationwarn:2,vision:[0,3,28],visual:[0,3,11,12,15,21,28,29,34],visualis:1,viz:[6,8,25],vjp:[2,13,34],vjp_argnum:2,vjpfun:2,vjpmaker:2,vjpnode:[2,13,34],vjps_dict:2,vmap:[13,33,34],vmax:[1,6],vmin:[1,6],voic:3,volum:[0,3,28],vote:10,voting_clf:10,votingclassifi:10,votingsimpl:10,vs:[0,2,4,6,29,31,33],vspace:[2,13,34],vstack:[5,11,22,25,28,29],vt:[5,29,30],w1:8,w2:[8,11],w3:8,w:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,22,25,28,29,31,32,33,34],w_1:[8,22],w_1x_1:8,w_1x_:8,w_2:[8,22],w_2x_2:8,w_2x_:8,w_3:22,w_4:22,w_:[1,12,34],w_hidden:2,w_i:[1,2,10],w_ix_i:[12,34],w_j:22,w_m:22,w_output:2,w_px_:8,w_px_p:8,wa:[0,1,3,4,5,6,7,10,11,12,13,14,17,22,23,28,29,30,31,32,33,34],wai:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,17,22,25,28,29,30,32,33,34],walk:9,walker:25,wang:[0,28],want:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,21,23,25,28,29,30,31,32,33,34],warn:[0,4,8,28,29],warrant:[6,31,32],wast:[3,33,34],watch:[3,4,21],wave:3,wavelet:8,we:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,29,30,31,32],weak:[9,10,14],weather:[1,12,34],web:[21,24,26,28,29],webpag:28,websit:[6,22,23,24,28],wedg:[8,25],wednesdai:[26,28,31,32,33,34],wee:11,week:[0,5,6,7,23,24,26],weekli:[21,23,26,27,28,34],weight:[0,1,2,3,6,7,9,10,12,13,23,25,29,32,33,34],weigth:2,welcom:[8,21],well:[0,1,2,3,4,5,6,7,8,9,10,12,13,15,16,19,20,21,22,23,25,27,28,29,30,31,32,33,34],went:8,were:[0,1,3,4,5,6,7,8,10,11,12,14,25,28,29,31,32,34],wessel:[0,18,23,28,29,30,31],what:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,21,22,23,25,32,33,34],whatev:3,when:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,22,23,25,28,29,30,31,32],whenev:[13,25,33,34],where:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,25,26,28,29,30,31,32,33,34],wherea:[6,25,31],wherein:[1,12,34],whether:[0,3,5,7,9,23,25,28,30,32],which:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,28,29,30,31,32],whichev:[1,3],white:9,whiteboard:[19,29,30,31,32,33],who:[0,24,28],whole:[1,3,4,5,9,11,13,30,31,33,34],whose:[0,6,10,25,29,31],whow:[11,29],whrn:31,why:[0,1,3,6,13,23,30,32,33],wide:[0,1,3,6,7,12,15,21,22,23,28,31,32,34],widehat:[6,31],width:[0,2,3,8,9,28],wieringen:[0,18,23,28,29,30,31],win:10,wind:9,wing:[26,28],winther:2,wiothout:[6,29,30],wiscons:[7,32],wisconsin:10,wisdom:[6,30],wise:[0,1,5,12,13,29,33,34],wish:[0,2,5,7,8,11,13,14,22,23,28,29,32,33],with_std:[0,29,31],wither:6,within:[0,2,3,4,7,9,12,13,14,25,27,28,32,33],withinclust:14,without:[0,1,5,6,8,9,11,12,13,28,29,30,31,33,34],without_trac:[3,4],won:[0,28],wonder:8,woodi:28,word:[0,1,3,4,5,6,7,14,25,28,29,30,31],work:[0,1,4,6,7,8,9,13,15,21,23,24,25,26,28,29,31,32,33,34],worker:[3,4],workshop:28,world:[0,8,28,29],worldwid:[0,28],wors:[0,1,3,4,6,28,31],worst:9,worth:9,worthi:23,would:[0,1,3,5,6,7,8,9,10,11,12,13,22,23,25,28,29,30,31,32,33,34],wrap:[6,22,28],wrap_util:[2,13,34],wrapper:[0,28],write:[0,1,2,3,5,6,7,8,12,13,15,16,17,20,22,23,28,29,31,32,33,34],written:[0,2,3,5,11,12,13,16,21,22,23,25,28,29,30,31,32,33,34],wrong:[1,8],wrongli:10,wrote:[5,11,29],wrt:[2,10,13,33,34],wth:[10,13,33,34],www:[21,22,23,27,28],wx_1:8,x0:8,x1:[4,8,9,10,13,33,34],x1_exampl:8,x1d:8,x2:[8,9,10,13,33,34],x2d:[8,11],x2d_train:11,x2dsl:11,x3:8,x:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,28,31,32,33,34],x_0:[0,5,11,22,28,29,30,31],x_1:[0,2,5,6,7,8,9,10,11,13,22,25,28,29,30,31,32,33,34],x_2:[0,2,5,6,7,8,9,10,11,13,22,25,28,29,31,32,33,34],x_3:[8,22,25],x_4:22,x_:[0,2,3,5,6,8,10,11,13,14,18,22,23,25,28,29,30,31,32,33],x_center:11,x_data:1,x_data_ful:1,x_hidden:2,x_i:[0,1,2,5,6,7,8,9,10,11,12,13,14,17,22,25,28,29,30,31,32,33,34],x_input:2,x_ix_:[0,28],x_iy_i:8,x_j:[0,2,8,9,12,16,25,29,34],x_jy_j:8,x_k:[12,14,22,25,29,34],x_l:25,x_m:[6,12,22,25,31,34],x_n:[0,2,3,6,8,11,12,13,22,25,28,31,32,33,34],x_new:[9,10],x_offset:[6,29,30],x_output:2,x_p:[3,7,9,32],x_poli:9,x_poly10:9,x_pred:4,x_prev:2,x_reduc:11,x_scale:8,x_small:[13,33,34],x_test:[0,1,3,5,6,7,9,10,11,28,29,30,31,32],x_test_own:6,x_test_scal:[0,6,7,9,10,11,29,30,31],x_tot:4,x_train:[0,1,3,4,5,6,7,9,10,11,28,29,30,31,32],x_train_mean:[6,29,30,31],x_train_own:6,x_train_scal:[0,6,7,9,10,11,29,30,31],x_val:1,xarrai:[21,28],xavier:1,xbnew:[13,32,33],xcode:[0,15,21,23,28],xdclassiffierconfus:10,xdclassiffierroc:10,xg_clf:10,xgb:10,xgbclassifi:10,xgboost:9,xgboot:10,xgbregressor:10,xgparam:10,xgtree:10,xi:[8,13,33,34],xi_1:8,xi_:8,xi_i:8,xinv:[30,34],xk:8,xla:[3,4,13,21,28,33,34],xlabel:[0,1,2,3,4,5,6,7,8,9,10,13,23,25,28,29,30,31,32,33,34],xlim:[6,10,31],xm:9,xmesh:[13,33],xnew:[0,13,28,32,33,34],xp:25,xpanda:[0,29],xpd:[5,11,29],xplot:0,xs:9,xscale:[0,29],xsr:9,xt_x:[13,32,33,34],xtest:[6,31,32],xtick:[3,6,8,9,31],xtrain:[6,31,32],xu:[0,28],xx:[0,22,28],xy:[0,6,8,22,23,28],xytext:8,xz:[22,28],y1:4,y2:4,y3:4,y:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,25,28,29,30,31,32,33,34],y_0:[0,5,11,22,28,29,30,31],y_1:[0,5,8,9,11,13,22,28,29,30,31,32,33],y_1y_1:8,y_1y_1k:8,y_1y_2:8,y_1y_2k:8,y_1y_n:8,y_1y_nk:8,y_2:[0,5,8,9,11,22,28,29],y_2y_1:8,y_2y_1k:8,y_2y_2:8,y_2y_2k:8,y_3:[0,9,22],y_4:22,y_:[0,1,5,6,10,11,22,28,29,30,31],y_data:[0,1,5,6,28,29,30,31,32],y_data_ful:1,y_decis:8,y_fit:[0,29],y_i:[0,1,5,6,7,8,9,10,11,12,13,15,16,17,18,19,22,23,28,29,30,31,32,33,34],y_if_:10,y_ix_:[0,28],y_ix_i:[7,8,13,29,32,33],y_iy_jk:8,y_j:[6,8,12,19,23,31,34],y_k:[12,34],y_m:22,y_model:[0,4,5,6,28,29,30,31,32],y_n:[8,13,32,33],y_ny_1:8,y_ny_1k:8,y_ny_2:8,y_ny_2k:8,y_ny_n:8,y_ny_nk:8,y_offset:[6,29,30],y_plot:9,y_pred1:9,y_pred2:9,y_pred:[0,1,4,6,7,8,9,10,29,30,31,32],y_pred_rf:10,y_pred_tre:10,y_proba:[7,10,32],y_scaler:[6,30,31],y_test:[0,1,3,4,5,6,7,9,10,11,28,29,30,31,32],y_test_onehot:1,y_test_predict:[0,29],y_test_scal:31,y_tot:4,y_train:[0,1,3,4,5,6,7,9,10,11,28,29,30,31,32],y_train_mean:[6,29,30],y_train_onehot:1,y_train_predict:[0,29],y_train_scal:[6,30,31],y_val:1,yand:34,ye:[3,6,7,31,32],year:[0,21,28],yet:[0,1,6,8,11,13,28,32,33,34],yi:[13,33,34],yield:[0,2,5,6,8,10,12,13,14,22,25,28,30,31,32,33,34],yk:8,ylabel:[0,1,2,3,4,5,6,7,8,9,10,13,23,25,28,29,30,31,32,33,34],ylim:[3,6,31],ym:9,ymesh:[13,33],yn:0,yo:[8,9,10],yor:34,yoshua:[1,27],you:[0,1,2,3,4,5,6,8,9,10,11,13,15,16,17,19,20,21,22,23,25,26,27,29,30,31,32,33,34],young:[0,28],your:[1,2,4,5,6,8,11,13,17,19,20,21,22,23,30,31,32,33,34],yourself:[11,13,28,33],youtub:21,ypred:[6,31,32],ypredict2:[13,32,33,34],ypredict:[0,13,28,29,32,33,34],ypredictlasso:[5,30],ypredictol:[0,5,30,31],ypredictown:[6,29,30],ypredictownridg:[6,30],ypredictridg:[0,5,6,30,31,32],ypredictskl:[6,29,30],yridg:28,ys:9,ytest:[6,31,32],ytick:[3,6,8,9,31],ytild:[0,6,28,29,31],ytilde_test_ol:31,ytilde_test_ridg:31,ytildelasso:[5,30],ytildenp:[0,28,29],ytildeol:[0,5,30],ytildeownridg:[6,30],ytilderidg:[5,6,30],ytrain:[6,31,32],yx:[22,28],yxor:34,yy:[22,28],yz:[22,28],z:[0,1,2,3,4,5,6,7,8,9,11,12,13,22,23,25,28,29,31,32,33,34],z_0:[22,28],z_1:[22,28],z_2:[22,28],z_:[1,2,12,22,28],z_c:1,z_h:1,z_hidden:2,z_i:[1,12,34],z_j:[1,12],z_k:[12,29],z_m:1,z_mod:9,z_o:1,z_output:2,zaman:25,zaxi:[6,23],zero:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,22,23,25,28,29,30,31,32,33,34],zeros_lik:4,zeroth:29,zfill:4,zip:[2,4,6,13,34],zm_h:[0,28],zn:[0,29],zone:[0,29],zoom:28,zx:[22,28],zy:[22,28],zz:[22,28]},titles:["3. Linear Regression","14. Building a Feed Forward Neural Network","15. Solving Differential Equations with Deep Learning","16. Convolutional Neural Networks","17. Recurrent neural networks: Overarching view","4. Ridge and Lasso Regression","5. Resampling Methods","6. Logistic Regression","8. Support Vector Machines, overarching aims","9. Decision trees, overarching aims","10. Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods","11. Basic ideas of the Principal Component Analysis (PCA)","13. Neural networks","7. Optimization, the central part of any Machine Learning algortithm","12. Clustering and Unsupervised Learning","Exercises week 34","Exercises week 35","Exercises week 36","Exercises week 37","Exercises week 38","Exercises week 39","Applied Data Analysis and Machine Learning","2. Linear Algebra, Handling of Arrays and more Python Features","Project 1 on Machine Learning, deadline October 9 (midnight), 2023","Teaching schedule with links to material","1. Elements of Probability Theory and Statistical Data Analysis","Teachers and Grading","Textbooks","Week 34: Introduction to the course, Logistics and Practicalities","Week 35: From Ordinary Linear Regression to Ridge and Lasso Regression","Week 36: Statistical interpretation of Linear Regression and Resampling techniques","Week 37: Statistical interpretations and Resampling Methods","Week 38: Logistic Regression and Optimization","Week 39: Optimization and Gradient Methods","Week 40: Gradient descent methods (continued) and start Neural networks"],titleterms:{"1":[0,15,16,17,18,23,28,29],"14":31,"2":[0,15,16,17,18,28,29],"2023":[23,26],"21":32,"23":32,"3":[0,15,16,28,29],"31":29,"34":[15,28],"35":[16,29],"36":[17,30],"37":[18,31],"38":[19,32],"39":[20,33],"4":[0,29],"40":34,"5":0,"7":30,"9":23,"case":[8,10,25,29,30,32,33],"class":32,"do":[1,28,30,31,33,34],"final":[12,29,30,33,34],"function":[0,1,6,7,8,10,11,12,13,23,25,28,29,30,31,32,33,34],"import":[5,22,28,29,30],"new":[4,30,31],A:[0,1,4,8,9,28,30,31,32],AND:34,And:[28,29,30,32,33,34],But:[33,34],In:26,Ising:6,OR:34,The:[0,1,2,3,5,6,7,8,9,11,12,17,21,28,29,30,31,32,33,34],To:[28,29],With:[4,30],about:[28,29],abov:30,activ:[1,12,30,34],ad:[0,6,17,23,28,29,34],adaboost:10,adagrad:[13,33,34],adam:[13,33,34],adapt:[10,33,34],adjust:1,adversari:4,again:[3,9,32],ai:28,aim:[8,9,17,18,19,20,28],aka:[28,29],algebra:[22,28],algorithm:[9,10,11,12,29,33,34],algortithm:[13,32,33],all:8,an:[0,4,10,28],analys:[5,29],analysi:[0,5,6,11,21,23,25,28,29,30,31],analyt:[0,16,17],ani:[13,32,33],anoth:[9,30,31],appli:21,approach:[0,8,14,28,31,33,34],approxim:12,architectur:1,argument:[33,34],arrai:[22,28],artifici:34,assist:26,assumpt:[30,31],august:29,autocorrel:25,autograd:[2,13,33,34],automat:[13,33,34],avoid:[33,34],b:[17,23,33,34],back:[1,11,12],background:[21,23,31],bag:10,base:[13,31,33,34],basic:[0,5,7,9,10,11,22,29,30,31,32],batch:[1,33,34],bay:[5,30,31],befor:11,beta:[30,31],better:[8,34],bia:[6,23,31],binari:1,bind:28,bird:10,boldsymbol:[29,30,31],boost:10,bootstrap:[6,10,31],boston:[0,29],breast:1,brief:[28,31,32,33],bring:12,build:[1,3,9],c:[23,28],calcul:29,can:[28,31,33,34],cancer:[1,7,9,11,32],cart:9,center:29,central:[13,21,25,31,32,33],chain:12,challeng:32,chang:10,channel:28,chi:[0,28],choos:1,cifar01:3,classic:11,classif:[1,9,10,32],classifi:[8,32],clip:1,cluster:14,cnn:3,code:[0,1,2,5,9,11,12,13,14,28,29,30,31,32,33,34],collect:[1,3],come:32,commun:28,compact:32,compar:[2,10],comparison:30,compet:[33,34],complet:29,complex:[0,6,23,29],complic:[6,33,34],compon:11,comput:[9,33,34],computation:31,computerlab:28,con:9,concept:25,condit:[30,31,32,33],confid:31,conjug:[13,33],continu:34,contn:28,convex:[8,13,32,33],convolut:[3,12,34],correctli:[30,31],correl:[11,29,32],correspond:[32,33],cost:[1,10,29,30,31,32,33],cours:[21,27,28],covari:[5,11,25,29],cover:28,cross:[6,23,31,32],cython:28,d:23,data:[0,1,3,6,7,9,11,15,16,21,23,25,28,29,30,32],dataset:[1,3],deadlin:[23,28],decai:[2,33,34],decis:[9,10],decomposit:[5,11,17,22,29],deep:[1,2,32],defin:[1,28],degre:[0,29],deliveri:23,delta:31,dens:[0,28],deriv:[5,12,29,30,31,32,33],descent:[2,10,13,32,33,34],descript:23,design:29,detail:[3,28],develop:1,diagon:11,differ:[8,33,34],differenti:[2,13,33,34],diffus:2,dimension:[2,3,8,23,29],directli:[33,34],disadvantag:9,discret:25,discuss:32,distribut:[5,25,30,31],distrubut:[30,31],doe:[29,30,34],domain:25,dot:[33,34],down:1,dropout:1,e:23,each:32,economi:29,electron:23,element:[0,25,28,33,34],elimin:22,energi:28,ensembl:10,entropi:[9,32],environ:[0,15,28],equat:[0,2,12,28,29,30,32,33],error:[0,10,28,29,31],essenti:28,estim:[30,31],etc:28,euler:2,evalu:1,exampl:[0,1,2,3,4,6,7,8,9,10,28,29,30,31,32,33,34],exercis:[0,6,15,16,17,18,19,20,28,29,31],expect:[18,25,30,31],expens:31,experi:25,explor:[0,15,16,28],exponenti:2,express:[17,18,28,29,32,33],extend:[32,33],extrapol:4,extrem:[10,28],ey:10,f:23,fall:26,famili:[1,28,29],famou:22,fantast:29,featur:[9,22,29],feed:[1,12,34],find:[31,33,34],fine:1,first:[4,12,28,29,30,32,33],fit:[0,10,28,30],fix:29,fold:[31,32],forc:3,forest:10,format:[23,28],forward:[1,2,12,34],fourier:3,frank:[6,23,29],freedom:[0,29],frequent:29,frequentist:[0,28],fridai:32,from:[5,10,12,29,30,31,32,33,34],full:2,further:[3,5,29],g:23,gan:4,gate:34,gaussian:22,gd:[13,33,34],gener:[4,9,28],geometr:[11,32,33],gini:9,good:[0,28],grade:[26,28],gradient:[1,2,10,13,32,33,34],grid:32,group:32,growth:2,ha:21,handl:[22,28,29],happen:[30,31],have:28,heard:28,hessian:[29,32,33],hidden:2,histogram:31,homework:[32,33],hous:[0,29],how:32,hyperbol:34,hyperparamet:1,hyperplan:8,i:1,id3:9,idea:11,ideal:[32,33],ident:[30,31],identifi:31,ii:28,iid:[30,31],illustr:[30,34],implement:1,implic:[5,29],improv:[1,33],includ:[13,32,33,34],increment:11,independ:[30,31],index:9,inform:26,input:2,instal:[21,23,28],instructor:26,intercept:29,interpret:[5,11,28,29,30,31,32,33],interv:31,introduc:[11,13,29,33,34],introduct:[0,6,21,22,23,28,34],invers:[5,22,30],invert:29,iter:[10,33],its:29,jacobian:29,jax:[13,33,34],job:34,julia:28,jungl:10,k:[31,32],kera:[1,3],kernel:[8,11],lagrangian:8,lambda:32,lasso:[5,6,23,29,30,31,32],last:[29,31,32,34],later:[5,29],layer:[1,2,3,12],learn:[0,1,2,11,13,14,15,16,21,23,28,29,30,31,32,33,34],least:[5,6,18,23,28,29,30],lectur:[28,29,30,31,32],level:10,librari:[21,28],likelihood:[7,30,31,32],limit:[1,13,25,31,32,33,34],linear:[0,8,13,22,28,29,30,32],link:[5,11,24,27,29,30,31],literatur:23,logist:[7,28,32,33,34],loop:[33,34],loss:[29,32,33],lu:22,machin:[0,8,13,21,23,28,32,33],made:[30,31],mai:28,main:25,make:[0,9,10,15,16,28,29],mani:[10,12],manipul:29,margin:[30,31],mass:28,materi:[24,28,29,30,31,32],math:[5,29],mathemat:[3,5,8,29,33,34],matric:[5,22,28,30],matrix:[1,5,11,12,22,28,29,30,32,33,34],matter:[0,28],max:29,maximum:[30,31,32],mean:[0,28,29,30,32],measur:32,meet:[5,10,25,28,29],mercer:8,method:[6,9,10,13,23,31,32,33,34],midnight:23,min:29,mini:[33,34],minibatch:[33,34],minim:[28,32],ml:28,mle:[30,31],mlp:12,mnist:[3,4],model:[0,1,4,6,12,28,34],moment:[33,34],momentum:[13,33,34],moon:[8,9],more:[3,6,22,23,28,29,30,31,32,33,34],multi:34,multilay:[12,34],multipl:[1,3],multipli:8,need:[23,28],network:[1,2,3,4,7,12,28,32,34],neural:[1,2,3,4,7,12,28,34],neuron:34,newton:[32,33,34],noen:[33,34],non:8,normal:[0,1,31],notat:[12,34],note:[29,30,31],now:[1,9,13,30,31,33,34],nuclear:[0,28],nueral:32,numba:28,number:[0,2,25,29,33,34],numer:[2,23,25],numpi:[22,28,33,34],object:3,obtain:11,octob:23,od:2,off:[6,23],ol:[5,6,23,30,31,33,34],one:[2,12,32,33],ones:34,oper:22,optim:[1,8,13,21,28,29,32,33,34],order:[13,33,34],ordinari:[5,6,18,23,28,29,30],organ:[0,28],oslo:27,other:[4,9,11,12,22,28,29,32,34],our:[0,4,5,11,13,28,29,32,33],outcom:[21,28],output:2,overarch:[0,4,8,9,17,18,19,20,28,29],overview:[10,28,33,34],own:[0,10,11,15,16,28,29],packag:[22,28],panda:[28,29],paper:23,paramet:[28,29,32,33,34],part:[13,21,23,29,32,33],partial:2,pass:1,pca:11,pdf:25,pencil:23,perceptron:[12,34],perform:[1,9],period:3,perspect:1,plan:[29,30,31,32,33,34],plot:[31,32],point:4,poisson:2,polynomi:[3,30],popul:2,practic:[13,26,28,33,34],pre:[1,3],predict:4,predictor:32,preprocess:29,prerequisit:[3,21,28],princip:11,principl:3,pro:9,probabl:[5,25,30,31],problem:[1,2,13,28,29,30,32,33,34],procedur:[9,28],process:[1,3],product:[33,34],program:[2,13,23,32,33],project:[6,23,28,32],prop:[13,33,34],propag:[1,12],properti:[5,25,29,32],python:[0,9,15,21,22,28],quick:8,r:28,random:[10,11,25,32],raphson:[32,33],rate:[33,34],read:[9,28,29,31],real:[6,23,28],recommend:[28,29,33,34],rectangular:30,recurr:[4,12,34],recurs:[33,34],reduc:[0,29],reduct:3,reformul:2,regress:[0,5,6,7,9,10,13,17,18,23,28,29,30,31,32,33,34],regular:[1,32],relat:29,relev:[27,29,31,32,34],relu:1,remark:3,remind:[6,8,28,32,33],repeat:29,replac:[13,33,34],report:23,repositori:31,requir:[2,21],resampl:[6,23,30,31],rescal:[6,30],residu:29,resourc:2,result:[29,30],revisit:[13,32,33],rewrit:[28,29,31],rewritten:32,ridg:[0,5,6,17,18,23,29,30,31,32,33],rm:[13,33,34],rmsprop:[33,34],rule:12,s:[8,10,31,32,33,34],same:[13,31,33,34],sampl:11,scale:[29,31],schedul:[24,28],schemat:9,scheme:2,scienc:28,scikit:[0,1,11,15,16,28,29,30,31,32,33],search:32,second:[13,33,34],select:32,semest:26,sensit:[32,33],septemb:[30,31,32],session:30,set:[0,2,3,9,12,15,28,29,32],sgd:[13,33,34],should:1,similar:[13,33,34],simpl:[0,4,9,13,28,29,30,32,33,34],singl:[10,34],singular:[5,11,17,29],size:29,slightli:[33,34],soft:8,softmax:1,softwar:[23,28],solv:[2,30,32,33],solver:13,some:[13,22,28,29,32,33],specifi:2,split:[0,15,16,28,29],squar:[0,5,6,10,18,23,28,29,30],standard:[13,29,31,33],start:34,state:[0,28],statement:28,statist:[5,6,21,25,28,30,31],steepest:[10,13,32,33],step:[31,32,33,34],still:29,stochast:[13,25,33,34],stop:[33,34],strongli:28,studi:32,subtract:29,suggest:28,sum:31,summari:[26,28,34],superposit:3,supervis:1,support:8,svd:[5,29,30],syntax:[33,34],systemat:3,t:[29,30],teach:[24,26],teacher:[26,28],technic:30,techniqu:[6,11,23,30],technolog:21,tensorflow:[1,3],tent:28,term:31,test:[0,1,15,16,28,29,30],textbook:[27,28],than:[32,33],thei:28,theorem:[5,8,11,12,25,30,31],theori:25,thi:[17,18,19,20,28],think:29,thursdai:[29,30,31,32],time:[33,34],tip:[13,33,34],togeth:12,tool:28,top:1,topic:28,toward:11,trade:[6,23],tradeoff:[6,31],train:[0,1,4,15,16,28,29],transform:3,tree:[9,10],tuesdai:30,tune:1,two:[3,8,21,23,29,32],type:[2,4,12,28,34],uio:28,understand:31,univers:[12,27],unsupervis:14,unsupport:[33,34],up:[0,2,9,12,15,28,29,31,32],us:[0,1,2,3,7,13,21,28,29,32,33,34],usag:[30,31],valid:[6,23,31,32],valu:[5,11,17,18,25,29,30,31,32],vari:[33,34],variabl:[25,32,33],varianc:[6,23,30,31],variou:[0,15,28,31,32],vector:[8,12,22,28,29,34],video:[33,34],view:[0,4,10,29],visual:[1,9],vs:3,wai:[9,31],wave:2,we:[28,33,34],wednesdai:30,week:[15,16,17,18,19,20,28,29,30,31,32,33,34],weekend:32,weekli:[24,31],what:[0,28,29,30,31],when:[33,34],which:[1,33,34],why:[28,29,31,34],wisconsin:[7,32],wrap:[29,31],write:[4,11,30],x:[29,30],xgboost:10,xor:34,yet:30,you:28,your:[0,10,15,16,28,29],yourself:32}}) \ No newline at end of file +Search.setIndex({docnames:["chapter1","chapter10","chapter11","chapter12","chapter13","chapter2","chapter3","chapter4","chapter5","chapter6","chapter7","chapter8","chapter9","chapteroptimization","clustering","exercisesweek34","exercisesweek35","exercisesweek36","exercisesweek37","exercisesweek38","exercisesweek39","exercisesweek41","intro","linalg","project1","project2","schedule","statistics","teachers","textbooks","week34","week35","week36","week37","week38","week39","week40","week41"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,sphinx:56},filenames:["chapter1.ipynb","chapter10.ipynb","chapter11.ipynb","chapter12.ipynb","chapter13.ipynb","chapter2.ipynb","chapter3.ipynb","chapter4.ipynb","chapter5.ipynb","chapter6.ipynb","chapter7.ipynb","chapter8.ipynb","chapter9.ipynb","chapteroptimization.ipynb","clustering.ipynb","exercisesweek34.ipynb","exercisesweek35.ipynb","exercisesweek36.ipynb","exercisesweek37.ipynb","exercisesweek38.ipynb","exercisesweek39.ipynb","exercisesweek41.ipynb","intro.md","linalg.ipynb","project1.ipynb","project2.ipynb","schedule.md","statistics.ipynb","teachers.md","textbooks.md","week34.ipynb","week35.ipynb","week36.ipynb","week37.ipynb","week38.ipynb","week39.ipynb","week40.ipynb","week41.ipynb"],objects:{},objnames:{},objtypes:{},terms:{"0":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,23,24,25,27,28,30,31,32,33,34,35,36,37],"00":[0,1,5,6,9,11,30,31,34,37],"000":[1,3,37],"0000":9,"00000":9,"000000":[5,11,30,31],"00000000e":[5,31,34,37],"000054":30,"0001":[1,17,37],"00012934":31,"00015239":31,"0001539814498783133":9,"00019998":5,"00021438167895478945":[],"0002364":31,"0002382102844775691":34,"00024087":5,"00029012":5,"00031535148309577417":6,"00031535148309580783":6,"00034944":5,"000417932":2,"00042089":5,"000464088":2,"00048325":31,"00050694":5,"00058016":6,"00060705":6,"00061058":5,"00062595":6,"00063364":33,"00063862":33,"0006527":31,"00066668":6,"00067395":[],"00068088":33,"00068734":6,"00068946":6,"00073541":5,"00075597":33,"00076495":6,"00076905":6,"0007698473260556325":6,"0007698473260556343":6,"00079129":6,"00079910":33,"00079968":5,"00081564":[],"00083346":33,"00084705":6,"00085889":6,"00087697":6,"00088573":5,"00089187":33,"00091628":[],"00092647":6,"00092904":33,"0009485400848532":[],"00096314":5,"001":[1,2,8,13,17,34,35,37],"00100519":6,"00104613":31,"0010479245926411787":[6,33],"00105081":6,"00106677":5,"00107405":6,"00111756":6,"0011526":6,"00115999":5,"00117627":[],"00118508":6,"00119699":33,"00128479":5,"001323":6,"00134327e":[],"00137818":6,"00139705":5,"00140849":33,"00148709":31,"00149311":6,"00149956":6,"00152117":6,"00154733":5,"00154860":33,"00156376":6,"00168251":5,"00170724":[],"00172452":31,"00174276":6,"00175331":6,"00183869":31,"00186347":5,"00186362":31,"001880":5,"00199495":[],"00200":8,"00202624":5,"00202679":31,"00202756":6,"00203959":[],"00217499":6,"00219194":33,"00219624":31,"00224413":5,"00225484":31,"00225909":[],"00228742":6,"00229911":31,"0023548":6,"002381316302584886":6,"0023813163025848865":6,"00242398":[],"00242954":33,"00242999":6,"00243186":6,"0024401":5,"00245177":[],"00249435":6,"00249831":[],"00266858":2,"00270244":5,"00274989":6,"00289724":6,"0029114":[],"00293838":5,"00305172":27,"003100":30,"00310113":2,"00312361":6,"00315593":6,"0032153180657605116":[6,33],"00323332":6,"00324969":31,"0032542":5,"00325450":33,"003301":6,"00335936":[],"0033955154592040923":[6,33],"00341073e":[],"00353823":5,"00354492":31,"003620":30,"0036237":6,"0036367":6,"00369758":6,"00375475":5,"003755":5,"00379522":[],"0038332550504751595":34,"0038335":6,"003909404072811221":[6,33],"00391839":5,"00392139":[],"0039987":6,"004":[5,32,33],"004091940707753925":[6,33],"00410387":6,"00410478":6,"004113634617443131":[6,31],"00411363461744314":[6,31],"004113634617443147":[6,31],"0041559863458613296":[6,33],"00420072":33,"00424909":2,"00424967":6,"00426027":5,"00426531":31,"00433417":11,"00440346":6,"00440395":0,"00443743":6,"00445655":11,"00446979":31,"00451679":[],"004579219539673834":[6,33],"00458878":6,"00460304":[],"004610275230656182":[6,33],"00462287":6,"00465099":33,"00471782":5,"00472199":6,"00472512":6,"00472549":31,"00474485":31,"00478655":31,"00480366":[],"00480371":31,"0049544":6,"004999999999999994":0,"00512927":5,"00517114":6,"00526348":6,"0053018":6,"00554552":6,"00556826":6,"0056799":5,"00579953":6,"00588657":6,"00595615":31,"00598615":[],"00607783":6,"00611979e":[],"00613258":[],"006162":6,"00617499":5,"00620347":[],"00627535":31,"00630331":6,"00631057":[],"00642221":6,"00642268":[],"00642935":[],"00646613":[],"00651112":[],"00660427":6,"00663699":[],"00669662":[],"00672607":6,"00673407":6,"00676387":6,"0068011":6,"00680794":[],"006829400694106674":31,"00683748":5,"00683964":6,"00686806":[],"00687175":[],"007024126888938144":[6,33],"00703355":[],"00712321":31,"0071642501586093735":27,"00719176":6,"0072675":[],"00727646693":[0,30],"007315":[30,31],"00736955":[],"0074331":5,"00754534":[],"00759119":6,"007785":5,"00778523":5,"00781918":33,"00784393":6,"007891914573161948":31,"00798988":[],"00799998":31,"00803064":6,"00805074":33,"00813803":6,"00817631":6,"00823002":5,"00827728":6,"00830822":[],"00831018":6,"00834567":6,"00844667":30,"00848904":6,"00851512":[],"00858536":31,"0086649156":[0,30],"008675369724975977":5,"00868983":[],"00894639":5,"00905423":6,"009163470508352218":5,"009164545680330616":[6,33],"00917248":6,"00920609":[],"00929251598272297":[],"00934327e":31,"00934499":6,"0093869":31,"00952586":31,"0096208":6,"00976647":31,"009855809602167547":[],"00989896":[],"00990475":5,"00992331":6,"00996754":6,"01":[0,1,2,5,6,9,11,13,17,29,30,31,33,34,35,36,37],"010018312644139219":[6,33],"01006401":[],"0100706":6,"010331721306655165":[6,33],"01033856":[],"01038358":31,"01050849":[],"010516485576646504":[6,33],"0106014":23,"01066519":6,"01076611":5,"01076733":[],"0109":[],"010902":30,"01097423":31,"0110":27,"01103246":[],"01107621901137467":[6,33],"011225":2,"01130932":31,"0113104":6,"01135167":31,"01179792":6,"011917343246903285":31,"01191824":5,"012073649469946107":[6,33],"01214101":31,"01219292":6,"01222822":31,"01223198":6,"01231917":6,"01257265":[],"01265755":31,"012658":31,"01267006":31,"01268892":31,"01288591":31,"01290811e":[],"01290947":6,"01295356":5,"013121574062587286":[6,33],"01318643":6,"01344196":30,"01347636":31,"01347916":6,"01348565":6,"013623165903312745":[],"01362461":[],"01367553":6,"01372375":31,"01397146":6,"01405935":6,"01416528":6,"01420034":[],"01424197":31,"01432847":[],"01433809":5,"014436800088896381":[6,33],"01449782":6,"01458337":6,"014586":31,"01458611":31,"0146081":6,"01463049":6,"01463052":31,"01477821":31,"01492":31,"01502518":31,"0150723888951771":6,"01507238889517717":6,"01508632":31,"01508966":31,"01521658e":[],"01529503":31,"01531845":6,"01537557":[],"0154222":31,"01542292":33,"01549377":6,"01549939":33,"01550546":33,"01552289":31,"01558197":5,"01566461":[],"01594452":33,"01600491":[],"01603602":[],"01619664":[],"016285782696017142":[6,33],"01633913":6,"01640891":6,"01655318":6,"016587414993045335":[6,33],"01663866":[],"01667827":[],"01671556":31,"01691985":6,"0169643":5,"01704432":23,"01708781":6,"01708852":6,"01713366":6,"01722502":[],"01724499":5,"01735584819559331":[6,33],"017355848195593312":[6,33],"01762067":31,"01765474":31,"017665":5,"01783414e":31,"018232":[30,31],"01831050e":6,"01831207e":6,"01865187e":[],"01866537":6,"01873344":11,"01873869":5,"01881546":31,"01882522":[],"01897575":[],"01898855":6,"01899119":[],"01905883":6,"01908936":6,"019140656913589":27,"01914066":27,"01916913":31,"01919702":23,"01931743":[],"01963611":6,"01969145":6,"01975416527168255":[6,33],"01975848":6,"01989299":31,"01989549":30,"02":[0,3,4,6,7,12,30,34,36,37],"0200568":31,"02024701e":[],"02024962":6,"020404272938413143":9,"02044454":[],"02054837e":6,"02061026":31,"02068067":6,"0207306":31,"02073509":5,"02079171":31,"02098261":6,"02123176":6,"02126208":31,"021592704588021174":[6,33],"021592704588021178":[6,33],"02178583":[],"02183021":30,"02186131":[],"02198702e":6,"02198703e":6,"02208512":6,"02228115":6,"02229529":6,"02231445":36,"02252765":5,"02288816":[],"022999498260366198":[6,33],"02308518":30,"02348765":6,"02365049":6,"02400359":31,"02416381":[],"02424794":33,"0245528":6,"02468681":31,"02492265":5,"02498832":6,"02503753":6,"02511518":6,"02522069":6,"02536494":31,"02542246":[],"02546675":33,"025709":[11,31],"02574735e":[],"02586427":6,"02593026":31,"0260906":6,"026250840755899812":11,"02625193":8,"02635835":31,"026605727637184554":[6,33],"026605727637184558":[6,33],"02702978":31,"02707227":5,"02723445":6,"02760977349102238":[6,33],"027609773491022394":[6,33],"02761736":[],"02764023":[],"02790465":[],"02809859":31,"028389":[],"02838933":[],"02845284":[],"02857":4,"029":6,"02944425":31,"029483":5,"0296969":31,"029733":[30,31],"02976145":6,"02992852":[],"02994311":5,"02f":[6,24],"03":[1,6,31,34,37],"03025391":[],"03032441e":6,"03060273":[],"03063575":31,"03065428":[],"03074083":[],"03077640549":4,"03099776":5,"031":[5,32,33],"03113051":[],"03119091":31,"03172365":[],"03195835":31,"03196357":6,"03251863":5,"03256632e":[1,37],"03267527":6,"03279636":6,"0330308045183219":6,"0330308045187757":6,"03308408":5,"03338173":[],"03365768507152769":[6,33],"03370315":31,"033790755027115954":5,"03389964":[],"034047":30,"034169230664804":30,"03447512":6,"034557":31,"03543039":31,"03543958":31,"03562355":6,"03568439":6,"035909":30,"0359565":5,"03616508":31,"03630548":6,"0366352614656884":[],"03707133":11,"03717939":31,"03727597":[],"03728183e":[],"03735403":[],"0374748":[],"03774822e":[],"03781367141738902":[6,33],"03814292":6,"03815288":6,"038300":[11,31],"03856554":23,"03868779":[],"03894328":31,"039":6,"039039":5,"03935519":[],"03946221":[],"039967668952797":6,"0399676689527975":6,"04":[1,6,11,34,37],"040102":5,"04010697":6,"04014929":[],"0401585":30,"04058784":[],"04063602":6,"04084872":23,"041":9,"041050166905828786":[],"04111096":31,"0411487294305088":6,"041148729430523":6,"04191629":13,"04193203":31,"042044382097756156":30,"04220758":6,"04223754":30,"04225015":31,"04259402":31,"04292593":0,"04295757":33,"043":9,"04310095":[],"04314342":31,"04315108":5,"0431531":[],"04346721":5,"04355837":6,"04362":9,"04362755":31,"04372783":31,"0437499":2,"04389027":6,"04423486":6,"04426647":31,"04426744e":31,"044334":[30,31],"04448923":30,"044613":6,"0447389":31,"04537385":6,"04543942":6,"04547353":31,"04555073":30,"04566964":6,"0458":9,"04584982e":[],"04648335":5,"04669463":31,"04683565":5,"04690007":31,"04720848":[],"04778116":27,"04784395":6,"04816611e":[],"04818727730430286":[6,33],"04869126e":[],"048920":30,"04892055":6,"04909093":6,"04912436":6,"04926746":33,"049462":30,"049556996627824":6,"0495569966278269":6,"0496375":31,"05":[1,4,6,13,24,31,36,37],"05009826":6,"05024857":[],"05056463":[],"050663":[],"05066303":[],"05100875":6,"05126901":31,"051418":5,"051649":[11,31],"0517473":5,"05183886":[],"05227921801205679":[6,33],"052305":31,"05238712":[],"05263":9,"052992":[],"05302":9,"053417":31,"05357244":[],"05364854":8,"05383795":6,"053849":5,"053944":[],"05412502":[],"05432856":23,"054375":[],"05447415":6,"05459089":31,"054617":31,"054655":31,"054954":[],"05505310046363":2,"05515143e":[],"05533":9,"05544019":[],"055676":[30,31],"055734":31,"055910":31,"055987":31,"056030":[],"05614483":5,"05623":9,"05648":9,"05651951":6,"05667":9,"056683":31,"057124":[],"05716368155342902":[6,33],"057179":[],"057219":[],"057300":31,"057393":31,"057406":5,"057418":31,"057457":31,"057722":31,"05781491e":[],"057835":31,"05785343":6,"05789007":6,"05792524":[],"05796251":6,"05807125":6,"05825965":[],"058435":[],"05852973":30,"058552":31,"058556":[],"058645":31,"058738":[],"05883":9,"05884":9,"058854":31,"058952":31,"058996":31,"059031":31,"059182":5,"059427":5,"05966593":30,"059736":[],"059807":31,"05982961":23,"059830":[],"059951":31,"05999":9,"059993":31,"06":[3,4,6,31,35,36],"060001":11,"060037":[],"060083":31,"06020587":6,"060254":31,"06026294":31,"060278":[],"060300":[],"060334":[],"060349":30,"060387":[],"06043581":6,"060567":5,"060716":31,"06072551":[],"06075426":11,"060756":31,"060872":31,"061013":[],"061034":5,"061084":11,"061092":5,"061163":31,"061239":[],"061264":[],"061359":31,"061443":31,"061452":31,"061614":31,"061642":[],"061679":30,"061775":5,"061836":[],"061915":[],"06200174":5,"062016":31,"062082":[],"062082386342319454":[6,33],"062100":[],"062221":11,"062292565":4,"062337":31,"062351":[],"062470":[],"062599":31,"062624":31,"062749":[],"062797":5,"062874":31,"062967":5,"06299237e":[],"063000":[],"063019":31,"063055":5,"063061":31,"06307625":[],"063080":31,"063081":5,"0632":33,"063260":31,"06331463":31,"063325":[],"063407":11,"063436":[],"063443":30,"063653":31,"063716":[],"063724":30,"063760":[],"063822":[],"063832":[],"063894":31,"063912":[],"063927":[],"06397412":[],"063982":[],"064074":31,"064294":[],"064412":5,"064420":[],"06444":9,"064501":31,"064532":5,"06453579006728322":[6,33],"064602":5,"064606":31,"064609":31,"064634":11,"064699":31,"064793":31,"06481015":36,"064856":[],"064874":5,"06488406":30,"06491736":6,"064987":5,"065006":[],"065026":30,"065077":31,"065089":[],"065158":5,"065214":5,"065249":[],"065378":31,"065390":31,"065410":31,"06547790180152352":[6,33],"06547790180152355":[6,33],"065517":11,"065588":[],"065801":[],"065815":[],"065872":[],"065910":[],"065982":5,"066042":5,"066066":31,"066077":[],"066344":5,"06637":9,"06638817":23,"06642248":31,"066438":[],"066453":11,"066474":31,"066500":31,"066612":31,"066647":31,"06664867":23,"0666807":2,"06668613e":[],"066762":5,"066787":31,"066804":[],"06682268":[],"0668226833598415":[],"066837":[11,31],"066854":31,"066999":31,"067009":5,"06724062":5,"067328":5,"067409":[],"067419":11,"067437":5,"067440":5,"067611":5,"067630":[],"067637":31,"067707":31,"067745":[],"067748":[],"067826":[],"067832":[],"067915":11,"067979":[],"068":[],"068083":[],"068241":5,"068264":31,"068307":31,"068403":11,"06842111e":[],"068441":31,"06844519414009444":[6,33],"06844519414009445":[6,33],"06855126e":[],"068606":11,"068629":31,"068727":31,"068734":5,"0687531":[],"068757":[],"068816":5,"068906":31,"068974":5,"068987":5,"069028":31,"069033":11,"069055":5,"06915522":[],"069213":5,"069257":5,"069296":[],"069365":11,"069384":11,"069388":[],"069452":31,"069584":[30,31],"069594":[],"069629":[],"069630":[],"069739":[],"069746":5,"069766":5,"069803":[],"069822":5,"069939":[],"07":[6,31],"070042":11,"07004211":11,"070043":[30,31],"070067":[],"070107":11,"070146":31,"070157":11,"07016":9,"07017":9,"070213":31,"070220":11,"070228":5,"070275":5,"07039":9,"070441":[],"070457":31,"070569":5,"070582":31,"070597":5,"07062318":6,"070737":31,"070769":[],"070795":5,"070811":11,"070889":[11,31],"070986":[5,31],"071062":11,"071138":[],"07115":9,"071191":5,"071258":11,"0713":[0,30],"07136324":[],"07139233":[],"071423":5,"07145103":11,"071452":11,"071498":[],"071554":5,"07160048164232538":[6,33],"0716004816423254":[6,33],"071611":5,"071773":5,"071788":[],"071801":[],"071872":11,"071879":11,"07188255":[],"072000":31,"072009":11,"072111":31,"072128":[],"072132":31,"072168":[],"07226292":[],"072310":5,"072369":[],"072404":5,"072476":31,"072621":31,"072624":11,"072790":11,"072805":5,"072830":[],"07285":3,"072914":[],"072931":11,"072953":5,"073008":5,"073088":11,"073152":11,"07321674":[],"073354":11,"073362":11,"073422":5,"073444":[],"073445":11,"073494":5,"07358383":31,"073598":[11,31],"073630":11,"073634":[],"073644":31,"073708":[],"073716":[],"073728":5,"073802":11,"073853":[],"073858":5,"073972":11,"073980":5,"073984":11,"074067":[11,31],"074084":31,"07410236e":[],"074108":11,"07420079":[],"074201":[],"074210":31,"07421084":5,"074323":31,"074327":11,"074330":5,"074419":11,"074439":11,"074457":11,"074509":11,"0745177":[],"074545":5,"074560":11,"07456491":5,"074686":[],"074772":5,"074780":11,"074879":[],"07490892":6,"074969":5,"074970":11,"075058":11,"075249":11,"075342":11,"075513":11,"075521":11,"075523":5,"075582":11,"075587":11,"075758":5,"075779":11,"075816":31,"075889":31,"075980":11,"075984":11,"075990":[],"076012":5,"076105":11,"076125":5,"076127":11,"076136":5,"076150":31,"076249":5,"076266":11,"076354":5,"07641937":33,"0764924":6,"076504":11,"076587":11,"076592":5,"076662":11,"076721":[],"07678":9,"076820":[],"076825":11,"076833":11,"076857":11,"07692307692307693":9,"076938":[11,31],"076950":[],"076996":11,"077168":31,"077171":11,"077219":[],"077226":11,"077460":31,"077542":5,"077549":[],"077613":11,"077650":5,"077705":11,"077710":11,"077756":5,"07777777777777778":37,"078":[],"078029":11,"078110":31,"078187":11,"07820":9,"078329":[],"078336":31,"078412":11,"078467":5,"078540":31,"078545":5,"078593":5,"07864":9,"078656":5,"078707":5,"07871":9,"078845":11,"078868":11,"078974":31,"078986":31,"079121":11,"079124":11,"079165":11,"079226":5,"07929472":13,"079432":[],"079434":11,"07944154":[23,30],"079455":5,"079581":5,"0796891867672603":[6,33],"079878":11,"07988085572440823":[],"079882":5,"079946":31,"08":[9,27,31,35,36],"080105":11,"080163":11,"080181":[],"080256":5,"08030109":27,"080406":5,"080411":5,"08043851":5,"080473":[],"080505":11,"080616":31,"080690":[],"080764":31,"08076969085177746":11,"080773":11,"080933":11,"081126":11,"081246":5,"081276":31,"08131003":6,"08156108":6,"081570":11,"081584":11,"08165104":31,"081655":31,"081680":5,"08174081":27,"081772":11,"08185315":31,"081916726599974":[],"081955":11,"081976":11,"0819836":[],"082189":5,"082205":5,"08221578":27,"082255":11,"082347":11,"08238863600759742":5,"08245909":23,"082506":11,"08251519":6,"082517":5,"08256285":[],"082577":11,"082653":31,"082760":11,"082781":11,"082875":30,"08299273e":6,"083000":11,"083066":[],"083096":11,"08318298e":[1,37],"083317":[],"08333333333333333":[9,37],"08336233266":4,"083527":[30,31],"08352721390288316":30,"08376632":[6,31],"083766322923899":[6,31],"0837663229239043":[6,31],"083853":5,"083988":5,"084075":5,"084076":31,"084247":5,"08426840630693412":[6,33],"08426840630693413":[6,33],"08449894":[],"08455":9,"08474":9,"084764":5,"084809":31,"08481871":31,"084843":5,"085023":11,"08505008":30,"085235":[],"0853136633465326":34,"085391":11,"085454":11,"08551306":6,"08551338":[],"08551625":[],"08576932":6,"08593216":6,"08611111111111111":37,"086441":11,"086518":5,"086843":11,"086864":[],"08690":9,"08703034":30,"087247":5,"087250":5,"08758":9,"087603":5,"087642":11,"08770809":[],"087887":30,"088155":5,"08815506":5,"0881981":5,"08823":25,"08844723450419088":23,"088697":5,"08871404":5,"08881497884574564":31,"08888888888888889":37,"08902":9,"0892144853354966":34,"0895387":31,"089539":31,"089710":5,"08996":9,"09":[1,31,37],"090365":5,"09076319":30,"09149148":[],"09166666666666666":37,"0917":9,"09172409":6,"09179697e":[],"092":6,"09251":9,"093":6,"09308274":30,"09327269724691106":27,"093408":5,"094082198961999e":6,"0940821989652176e":6,"09444444444444444":37,"09609807":5,"09744":9,"09760094":[],"09780":9,"09791":9,"09858511":[],"09861229":[23,30],"09903804":8,"09919198949274803":[6,33],"09951287404314545":[1,37],"0n":[0,30],"0s":4,"0x118f6d610":[],"0x11fdbfd60":[],"0x127a38670":35,"0x127e425e0":13,"0x13002a640":[],"0x1305bb1c0":[],"0x13eaa7490":35,"0x13ef4e1c0":34,"0x16c9a8880":13,"0x2800bca90":[],"1":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,20,21,23,25,26,27,28,29,32,33,34,35,36,37],"10":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,17,23,24,26,27,28,30,31,32,33,34,35,36,37],"100":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,23,27,28,30,31,32,33,34,35,36,37],"1000":[0,1,2,4,5,8,11,13,14,22,27,30,31,34,35,36,37],"10000":[2,5,6,10,11,13,27,32,33],"100000":8,"10001":10,"1001":[9,27],"1002":27,"1003":27,"10030":9,"1005":27,"1007":32,"10077114273548984":[6,33],"1009":27,"101058":23,"1011":27,"1013":27,"1013904243":27,"10141413e":6,"1015":27,"10160394":[],"102":[3,31],"1023":27,"10230":9,"1024":3,"10247463629935179":[],"10251317e":[],"1026":27,"1027":27,"103":[1,37],"1030":27,"10340":9,"10354083919795562":[],"1037":27,"10378326e":[1,37],"1038":27,"10391807":6,"10398646080125036":[6,33],"10398646080125037":[6,33],"1040":27,"10405456":11,"10430":9,"10440776":30,"104411":[30,31],"1047":27,"10520":9,"10555555555555556":37,"10572":33,"10589577":5,"106095":[11,31],"10638925":[],"1063892533225306":[],"106431":30,"1078":33,"10790125813226321":31,"108":[6,9],"1089452":[],"10913":6,"10927588":11,"109276":11,"10931453":6,"10954867e":[],"10960":9,"10m":4,"10th":9,"10x":[0,30],"11":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,18,23,24,26,27,28,29,30,31,32,33,34,35,36,37],"1100":27,"1101":27,"11022302e":[5,37],"11022363":31,"11039573e":[],"11078018494378859":[],"111":[1,7,12,34,36,37],"11100":9,"11197884":23,"11202337":33,"112383":[11,31],"1124":9,"11352187":30,"11388888888888889":37,"11390":9,"114550":33,"11462415":5,"11482289e":6,"11507992e":[1,37],"11547777218876518":[6,33],"115822":6,"11590":9,"11660":9,"11666666666666667":[1,37],"117":8,"117430":30,"11744554e":6,"11780":9,"118":2,"1182":33,"118318":[30,31],"11837308":[],"11837671":23,"1184":4,"11840":9,"11890":9,"11896755":23,"119":2,"119936":2,"11m":4,"12":[0,1,2,3,4,5,6,8,9,11,12,13,23,27,29,30,31,33,35,36],"120":[2,3],"12011393e":[],"12023635e":[],"1203":9,"1203284":8,"12044974":31,"120450":31,"120508":11,"12050822":11,"1206":8,"121":[8,9,10],"12129289":[],"12155548":30,"1215pm":[28,30],"12182967":6,"122":[2,8,9,10],"12222222222222222":[1,37],"122282":30,"123":2,"12318726e":6,"12330033":31,"12333649":6,"123711":6,"12380":9,"124":[0,30],"12400":9,"12552073e":6,"12591227":31,"12594172":[],"126":9,"1261":9,"12618549":5,"1265":9,"12695501":30,"127":4,"1271":6,"1277":6,"12777777777777777":37,"127812":30,"12790":9,"128":[3,4,13,35,36],"12814914":23,"128664":6,"12871842":31,"129":2,"1297":9,"1298":9,"129963":33,"12m":4,"12pm":[28,30],"13":[0,1,2,4,5,6,9,11,12,13,21,23,27,30,31,33,34,36,37],"130":9,"13003291":6,"13055555555555556":37,"130694":31,"13069442":31,"131":9,"132":9,"13220608e":6,"1326":9,"1326197715":30,"13280":9,"133":[7,34],"13404683":23,"13410999":11,"134110":11,"13422946e":[],"1345":33,"1346":33,"135":9,"13535942":6,"13542726":13,"13646574":5,"13661243e":6,"13679863":6,"1371":6,"13740":9,"137400784702911":31,"13749148e":[],"13759245e":[],"137652":[11,31],"1377":[3,4],"1378":[3,4],"1379":[3,4],"1380":[3,4],"1381":[3,4],"1382":[3,4],"13827006":[],"13829298":23,"1383":[3,4],"1384":[3,4],"1385":[3,4],"1386":[3,4],"13865173":5,"138775":[11,31],"1388888888888889":37,"1388976715362099":23,"13890":9,"1392559585048734e":6,"139255958997547e":6,"13925918083728273":[],"139431112903922":33,"1394311129039245":33,"1395084586525954":33,"1395235273363669":33,"13m":4,"14":[0,2,4,5,6,8,9,10,11,12,13,23,27,29,30,31,36,37],"140":[2,9],"14021063":6,"14023656":30,"141":2,"14100":9,"1412":[35,36],"1416398":6,"14174745":6,"1418":9,"142":9,"14250":9,"14277718e":31,"143":[2,7,34],"1437":[1,37],"14400":9,"1440501043841336":[1,37],"14440":9,"1446729567":4,"144993":30,"145":2,"146":2,"14629156":33,"146704":11,"14670413":11,"14697721":[],"14710":9,"14722222222222223":[1,37],"147400":[11,31],"147420":[11,31],"1479":9,"148":[3,4],"148009":[],"14812206":6,"14859":6,"149":[3,4],"149294":[],"149299":6,"14g":[6,33],"14m":4,"15":[0,1,2,4,6,7,8,9,12,13,15,16,17,18,21,27,30,33,34,35,36,37],"150":[3,4,8,9],"15005476":5,"15047127":23,"150726":6,"15098090e":6,"151":[3,4],"15130074e":6,"1513237":[],"151515":[],"15183857":[],"152":[3,4,9],"15200":9,"1520039":23,"152701":33,"1527777777777778":37,"153036":[30,31],"15313054":33,"15384615384615385":9,"15443469e":34,"155":9,"15553403":[],"15649598":[],"15673992":23,"15693449e":[],"156956":5,"15697121e":[],"1575":9,"158":9,"1587":9,"1590":9,"15962297":13,"15975618":30,"15990":9,"15990395":[],"15g":[6,33],"15m":4,"15pm":30,"16":[1,2,3,4,5,6,8,9,10,23,27,30,31,32,33,36,37],"1603":3,"16087734":[],"16111111111111112":[1,37],"16168603e":[],"16211139":5,"16220":9,"162246":5,"16231451":4,"1625":9,"1628":9,"162999":30,"16304863":31,"163049":31,"1630775253":37,"16342407":5,"16343471":6,"16356503":33,"16384":3,"16500":9,"16521791":[],"16570701":[],"166":9,"16762223e":[],"167787":5,"168":9,"16805821e":6,"16921883":[],"169219":[],"16933554":[],"17":[1,2,4,5,6,8,9,18,27,31,33,36,37],"17006020e":[],"17022089147584388":27,"1709":9,"17136288":23,"17144765665252978":[],"171525":31,"1715252":31,"17174962e":[1,37],"17222222222222222":37,"17257288":27,"1726":9,"17275391":[],"17300":9,"17305512":23,"1731":9,"17362603":[],"17440757e":[],"17446471":6,"17451":[],"1752":9,"175300":[30,31],"17540272":30,"17615838052499":11,"17641709":6,"17647619":6,"17733642":30,"17777777777777778":[1,37],"17801022":5,"17861098":6,"17917768":5,"179404":6,"17949575":5,"17953942":11,"1797":[1,3,37],"17m":4,"18":[2,4,6,7,8,9,10,13,19,27,33,34,35,36],"18029127":5,"1803":25,"1807":4,"1809":9,"181":9,"1812":9,"18128852":[],"1821":9,"18333333333333332":37,"1836":33,"18383522":31,"184":9,"18409473e":[],"18433544":30,"184519":[30,31],"18474816e":[],"18488944":[],"18489312":[],"1849":[3,4],"1850":[3,4],"1851":[3,4],"1852":[3,4],"1853":[3,4],"1854":[3,4],"1855":[3,4],"1856":[3,4],"1857":[3,4],"185713":5,"18571316":5,"1858":[3,4],"1859":[3,4],"1860":9,"18611111111111112":37,"18613217e":6,"18624242":[],"18660":9,"18670072e":31,"18673098":11,"18726877":27,"18780801":30,"18807824e":[],"18824315":30,"1887":6,"189367":30,"189496":[30,31],"189622":[30,31],"19":[2,4,6,9,13,27,33,36],"19003":6,"19166136":23,"19166666666666668":37,"191963":30,"19207979":5,"1921649":[],"19220":9,"19343949":23,"1937079":23,"1940":[0,31],"194042826649355e":6,"1940428268204826e":6,"1943":[12,36,37],"19431161":5,"194312":5,"19436962e":[],"19463967":30,"194861702085775":[],"1956":9,"19569961":[6,31],"19652884e":[],"1970":[23,30],"1973":9,"197370":[11,31],"19740":9,"19743643":27,"19769458e":[],"1979":[6,33],"19800":9,"19825288e":[],"19888258":27,"19983530":6,"1999":[25,33],"1_1":[12,36,37],"1_2":[12,36,37],"1_3":[12,36,37],"1cm":[0,8,10,27,30],"1d":[1,2,3,37],"1e":[1,2,4,13,14,35,36,37],"1e10":14,"1e4":6,"1f":1,"1k":23,"1n":[0,30],"1s":4,"1x":[0,30],"2":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,21,22,23,24,26,27,29,32,33,34,35,36,37],"20":[0,1,2,4,6,7,8,9,13,27,28,30,31,32,33,34,36,37],"200":[0,2,3,4,8,9,10],"2000":[0,31],"20015436":6,"20017452":[],"2004":[13,34],"2006":29,"2008":30,"2010":1,"2011":[1,37],"2014":4,"2015":1,"2016":[0,30],"2018":[0,6,31,33],"2019":[8,9],"2021":[6,14,31,32,34],"2022":30,"2023":[3,4,15,16,17,18,19,20,21,25,30,32,33,34,35,36,37],"2027":9,"20272874":[],"20277777777777778":[1,37],"20289224":[],"20355156":33,"20371418":[],"20484434":[],"20500":9,"205231":30,"20594513":23,"2060":9,"2069":9,"20695722":30,"207545":[11,31],"207888":30,"20833333333333334":[1,37],"20867052175003364":[6,33],"20916295":31,"209789":30,"20980":9,"21":[0,1,2,4,5,6,7,9,12,13,15,23,30,31,33,36,37],"210340":[11,31],"21055226":13,"21058097":5,"21059098":23,"21110005":33,"21130":9,"2116753732":4,"21169159e":6,"213103":[11,31],"213743":[11,31],"21401303e":[],"21460652":11,"214607":11,"21596432":6,"216290":[11,31],"216683":[11,31],"21710121":[],"21879159":30,"22":[0,1,2,4,5,6,9,12,13,19,23,30,31,33,34,35,36,37],"22001043":30,"22044605e":[5,31,37],"22092934e":[],"221":8,"22103874e":[],"221180":[30,31],"22130126":30,"2216":9,"2218":9,"221805":2,"221921":5,"22209775e":[],"222400":[30,31],"22241171":27,"22328509":30,"22368396":30,"22467274":33,"225":4,"22574374":30,"226296567359957":27,"22690428":5,"22729927":23,"2284246870217162":[6,33],"22847924":5,"23":[1,2,4,6,7,9,12,13,23,30,33,36,37],"23002365e":6,"23076923076923078":9,"23110543":[],"23167717":5,"23192074e":[],"232435":[30,31],"23257415":[],"23333333333333334":37,"2338675":31,"233868":31,"23392132":30,"234":6,"23528337":33,"2364":9,"23643365":33,"2379":6,"238":33,"2397":9,"23971032":31,"24":[0,1,2,4,6,9,13,19,23,30,33,36,37],"24005098e":[],"24085321":33,"24140":9,"24159785":31,"2416":9,"24175744e":6,"2419":9,"24251681":[],"24280599":[],"242806":[],"2430":9,"24390":9,"24444444444444444":37,"24569547":30,"246":2,"24602503e":[],"24829908":5,"24906604e":6,"25":[2,3,4,5,6,7,8,9,11,13,15,20,23,24,30,31,33,34,36,37],"250":[2,4,7,9,34],"25000":[0,31],"250636":30,"25084316":[],"25139357":23,"251879":[30,31],"252436":[30,31],"255":3,"255001":[30,31],"25561567":27,"256":[2,4],"25617654e":6,"25617658e":6,"25663096":23,"2572":9,"2575":9,"25844504":[],"25872167e":[],"259153":[11,31],"25920793":37,"2597":9,"26":[2,4,6,9,13,33,36],"26037366":23,"2619":31,"262638":5,"26263837":5,"26291451":27,"26292364":33,"26297455":31,"26301436":5,"264":4,"26409315307910025":6,"2640931530791004":6,"264377":[],"26437713":[],"264421":30,"2650":9,"265109911":4,"26514544":23,"2654":9,"26666667":13,"26710969":5,"26780278":5,"268":9,"26803966":[],"26931499":13,"2697447":5,"26995402":31,"27":[0,1,2,4,6,13,31,33,36,37],"27092910":6,"27424746e":[],"2750":9,"276263":[11,31],"27650338":30,"27693602e":37,"27700":9,"27760":9,"27793476":11,"277935":11,"27859357":[],"27924636":5,"27n_":27,"28":[1,2,3,4,6,9,13,16,31,33,35,36,37],"28008933":23,"280179":30,"280573":5,"280647":[11,31],"28081221e":[],"28096517":30,"281930":30,"28205578e":31,"28206156":[],"282259":30,"282727":[11,31],"2830637392":4,"283078":23,"28336218e":6,"28390":9,"28391978":31,"28443039":33,"28475098":8,"28490569":30,"28566769":37,"28607817":23,"2861":27,"28621796e":[],"28638913":36,"28662669":[],"2871":9,"2873":9,"2882":27,"2886":27,"2890":[0,30],"28908491":23,"2892":27,"29":[4,6,7,9,20,33,34],"29135778":5,"291358":5,"2915":27,"29153991":30,"29167186":5,"29199381":23,"29228133":[],"29275129":23,"2931":30,"29384004e":[],"29401213":23,"29454955e":[],"29496954e":[],"2953":[3,4],"2954":[3,4],"2955":[3,4],"2956":[3,4],"2957":[3,4],"296414":30,"2968":30,"2980":30,"29822833":6,"2990":30,"299748":[30,31],"2_":[12,36,37],"2_1":[12,36,37],"2_2":[12,36,37],"2_3":[12,36,37],"2_i":[12,36,37],"2_m":[6,27,33],"2_t":[13,35,36],"2_x":27,"2b":27,"2c8f433990d1":[35,36],"2cm":8,"2d":[1,3,11,12,22,30,36,37],"2e":[6,33],"2f":[0,7,9,10,11,12,30,31,34,36,37],"2g":2,"2g_i":2,"2k":3,"2m":[6,33],"2n":[0,2,3,30,31],"2nd":9,"2p":27,"2pm":[28,30],"2pt":4,"2x":[0,3,8,13,30,35,36],"2x_ix_jy_iy_j":8,"2x_j":8,"2y_i":10,"2y_j":8,"3":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,22,23,24,25,26,27,28,32,33,34,35,36,37],"30":[0,1,4,6,7,9,10,13,28,30,31,33,34,35,36],"300":[36,37],"30000":[0,30],"30010":9,"30119421":8,"30170017":37,"302":33,"30258509":[23,30],"303":6,"30335380e":[],"30442964":31,"30447937":[],"30466214e":6,"30478013":30,"30494363":[],"305":[0,30],"30567713":23,"306":[0,30],"30630294":27,"30677003":[],"306770031113352":[],"307":[0,30],"3072":3,"3073":33,"307631":11,"30763135":11,"3076923076923077":9,"30787294":6,"308":[0,30],"309":[0,30],"30940":9,"31":[4,12,23,27,30,36,37],"310":[0,30],"31022577":13,"310579":31,"3105791":31,"311":[0,30],"31113868e":[],"312":32,"3123314713548606":[6,33],"31276579e":6,"313":32,"31318084":5,"31415359e":[],"31457796":5,"315":[6,32],"3155":[0,5,6,32,33,34],"31579721":23,"316":32,"31650694":6,"31705377":30,"31718909":11,"317367":11,"31803769":13,"3189":33,"31896852":8,"31927572":23,"31995103":[],"32":[3,4,6,12,13,23,27,33,35,36,37],"3200":[1,37],"32149601703519115":[6,33],"3214960170351912":[6,33],"3215":9,"32341247e":[],"324":2,"3245":2,"32450054":31,"3250":[1,6,37],"32577534":[],"32584888":23,"32615859":27,"326238":[30,31],"32632463":5,"326325":5,"32708194":30,"32941592e":[],"329492":30,"33":[2,4,9,12,23,28,33,36,37],"33066907e":[5,31],"33113018":[],"33166055e":5,"331939":[30,31],"333":[7,34],"33333333":13,"33408606":[],"33534416":27,"33746734":[],"33746734412664":[],"33860497":30,"33903511":[],"33995567":23,"339961":5,"3399612":5,"34":[2,4,9,23,33],"340071371496255":31,"3403":9,"340583":30,"340782":[11,31],"34114547":5,"34149655":5,"341497":5,"34158540e":[],"342680":[30,31],"3436":[0,30],"3437":[0,30],"3439564710454786":9,"34412923":31,"34447052":23,"34517495":23,"34569596":5,"34685874":27,"35":[0,2,4,6,9,17,24,28,30,33],"35140":9,"351636":[11,31],"35182854":5,"35412147":33,"35470445e":[5,31],"35533773":6,"35564856":[],"356399":[30,31],"3568919":[],"357508":[30,31],"35771826":6,"3581341341":4,"35825829e":[],"35846425":33,"359":[5,32],"3597516959642966":27,"3597517":27,"36":[0,1,2,4,5,6,24,27,33],"360":[1,37],"36051635":23,"3613":9,"361556":[30,31],"3616476":[],"3621311":5,"3632959111950474e":6,"363295916323784e":6,"36420967":37,"36434588":[],"3655222":5,"367":2,"36789460e":[],"36795972e":[],"369139":[11,31],"37":[1,4,9,19,24,30,34],"3703468543933255":23,"370782966":4,"37112277":23,"37239927e":31,"3729492":23,"37388140e":[],"37396662":6,"375694":30,"3765":4,"376547":30,"3770":4,"3773":4,"377372":31,"37737221":31,"37853034e":[],"3786":4,"3789":4,"37900111":6,"37917253":30,"3795":4,"3799":4,"38":[1,4,9,24,27,30],"380":9,"38020451":5,"380205":5,"38088413":23,"3812":4,"38135733e":6,"3814":4,"3816":4,"38165546":[],"3817475779":[6,33],"3821":4,"382187":30,"38259375":30,"38319502e":[],"3834":4,"3836":4,"3837":4,"3838":4,"3838917029":35,"3840":4,"38461538461538464":9,"38461539":35,"38465596":5,"38511413":27,"3853":4,"38533185":6,"3856":4,"386":9,"38629436":[23,30],"3865":4,"387":32,"3873":4,"38764522e":[],"3877":4,"3878":4,"38787447":30,"38831624":23,"3886":33,"38916861e":6,"3893":4,"38962192e":6,"39":[0,1,4,9,21,25,28,30,36,37],"3901":4,"3907":4,"3907408":[],"39078751e":[],"3919":4,"39197698":31,"391977":31,"39214397":31,"392144":31,"3923":4,"3928":4,"39300201":23,"39308683e":[],"3932":4,"3944":4,"39457095":23,"3948":4,"39483726":23,"39541528":[],"39572825":[],"39579407":5,"39612983":27,"39644178":[],"3970":4,"39706038":5,"39730396":24,"3975":4,"397700":[11,31],"39789527":[23,30],"39895173e":[],"39931051e":31,"3996":4,"39965905e":[],"399836":[30,31],"3999":4,"3d":[2,3,4,6,13,24,33,35],"3f":[1,3,9],"3n":23,"3x":[2,8],"3x_i":2,"3y":8,"3yk470mj5p931p9dtkk0y6jw0000gn":[1,6,13,24,30,33,35,37],"4":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,23,24,25,27,30,32,33,34,35,36,37],"40":[1,4,6,9,21,24,25,28,30,33,37],"400":4,"4000":[9,30],"4014":4,"401842":[11,31],"40216748":11,"4033":4,"40362053":[],"40389562":27,"404":31,"404130":11,"40413036":11,"4050":[29,30],"40500157":27,"405890":[11,31],"40620066":31,"406201":31,"40629059":[],"40644745":23,"4066":4,"4082":6,"4087":9,"4087793":5,"40892146":[],"40927184e":6,"40contain":25,"41":[0,1,2,4,9,23,25],"4107":9,"41097603":[],"41219619":31,"41246325":23,"41291861":[],"41371745":[],"41433969":5,"415066":11,"41506637":11,"41511965e":[1,37],"415201":30,"4155":[2,15],"4166666666666667":9,"41771755":[],"418506":[11,31],"4187996":[],"41882037e":6,"42":[1,2,4,8,9,10,23,37],"421120085426022":[],"42138688e":[],"42172457":30,"42198678":5,"421987":5,"42239354":23,"4230769230769231":9,"42441033":5,"42450":9,"425564":[],"42556446":[],"42578415":30,"4258049":[],"426":[6,7,34],"42800148":[],"428741":11,"42874148":11,"429":33,"429345":[],"42934502":[],"42967903e":[],"43":[0,2,4,7,9,23,34,37],"43043913":23,"43054282":5,"4310":30,"433":33,"43330971e":6,"43425860e":[],"43490863":30,"43496417":30,"435163":[30,31],"4353":4,"43579948e":6,"43639284e":31,"436462435":4,"43766686":11,"43809274e":[],"438136":[30,31],"439230":6,"44":[0,2,4,23,37],"44089210e":[5,31],"441182":[],"44118245":[],"441264":30,"442600":[11,31],"443217":[30,31],"444":9,"44407741e":[],"44418822":27,"44520102":23,"446033":33,"44624525e":31,"446453":30,"44729805":23,"44732200e":[],"44842116":36,"44921888":23,"44970586e":[1,37],"45":[2,9,28,30],"450":9,"450257":[11,31],"4504":9,"45065211":[],"45073476e":[],"450m":4,"45134965":23,"45207509":30,"452553":30,"45255977":13,"45281756":27,"45308692":23,"45405253e":[],"455173":33,"4555094":[],"4557763":11,"455947":[30,31],"455m":4,"456":9,"45610021":30,"456m":4,"457":[2,4],"458027":[30,31],"458078":[11,31],"458m":4,"45915671e":31,"45922756e":[],"45960079":5,"46":[2,9,28,30],"4600624385659884":30,"4601":9,"46022436e":[],"46153846153846156":9,"462":[7,34],"462m":4,"46313714":[],"46383925e":6,"46383926e":6,"463861":30,"4676059":31,"467606":31,"467818":[],"46781836":[],"468m":4,"46984697e":6,"47":[2,9,28,30],"47042744":5,"470714":[30,31],"47075725":6,"47116868e":6,"47125748":5,"47132891":5,"47176716":33,"47176783":33,"47179152":33,"471874":11,"47187428":11,"47202442":33,"47313680":33,"473m":4,"47430124e":[],"47447472":23,"475405":[],"47540513":[],"47610036":6,"47701204":30,"477m":4,"47815203":11,"479465113":4,"479m":4,"48":[2,4,9,33],"480":30,"48134747":30,"481401":5,"48140137":5,"48145226":23,"481979":6,"48240312e":[],"48243352e":[],"48257387":[28,30],"483257001":13,"48336413":[],"483m":4,"48418018":[],"48423285":30,"48464841":23,"48476997":11,"484m":4,"48598711":[],"485m":4,"48629506":30,"487m":4,"48815255e":[],"488m":4,"489502":11,"48950243":11,"48994188":5,"49":[2,5,6,9,11,24,31,35,36],"49078463":[],"49152":3,"492m":4,"4940954":[0,30],"49555885e":[],"4959161509357395e":6,"495916150936645e":6,"495m":4,"49616116":23,"497":[3,4],"4974810657432664":[],"497m":4,"498":[3,4],"49865980e":[],"499":[3,4],"4990":27,"4992":27,"4997":27,"499m":4,"4c4c7f":[9,10],"4d":3,"4f":6,"4pm":[28,30],"4s":4,"4y":8,"4y_i":10,"5":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,23,24,27,30,31,32,33,34,35,36,37],"50":[1,2,3,4,6,7,8,9,10,13,30,31,33,34,35,36,37],"500":[1,3,4,6,9,10,13,33,34,35,36,37],"50000000e":37,"50000455":5,"50000553":5,"50000718":5,"50000855":5,"50000969":5,"50001063":5,"50001142":5,"50001207":5,"50001261":5,"50001306":5,"50001343":5,"50001374":5,"500014":5,"50001414":5,"50001422":5,"50001439":5,"50001454":5,"50001466":5,"50001476":5,"50001485":5,"50001492":5,"50001498":5,"50001502":5,"50001506":5,"5000151":5,"50001512":5,"50001515":5,"50001517":5,"50001518":5,"50001519":5,"50001521":5,"50001522":5,"50001523":5,"50001524":5,"50001525":5,"50079895":27,"500m":4,"501":[3,4],"5018":27,"50184628e":[],"501m":4,"502":[3,4],"50227564e":6,"50274255":23,"503":[3,4],"50321091":5,"504":[3,4],"50427787":33,"50462474":23,"505":[3,4],"50519365":[],"50562981":[],"506":[0,3,4,31],"506553":31,"50655336":31,"50691065":27,"50697511":30,"507":[3,4],"50721349":30,"507d50":[9,10],"508":[3,4],"50837888e":[],"50846111e":6,"50846112e":6,"50j":[13,35],"50x10":[1,37],"51":[2,10],"510":[1,37],"511":[3,4],"511888":5,"51191552":6,"512":[3,4],"51374050":33,"514219":[30,31],"515m":4,"5177783846":4,"51845286":23,"518895":30,"52":[3,4,35,36],"52015514":[],"52204004":23,"52209178":[],"5222222222222223":37,"522836":30,"522m":4,"52362157e":31,"52400486e":[],"52482437":30,"525054":[],"52518625":30,"525739":11,"52573941":11,"526744":[11,31],"52775466":33,"52795454":11,"52874252":5,"52944573":11,"529446":11,"5297947920715131":[],"53":[2,3,4,9],"5303329":11,"5305555555555556":[1,37],"531280":[30,31],"5320148":23,"53250091":30,"53278871":5,"532789":5,"5340022":[],"534362":30,"53542722":27,"53703498":6,"53738247":33,"53755010e":[],"5378811":11,"53811172e":[],"5384615384615384":9,"539261":[11,31],"54":[2,3,4,6,9,27],"540":9,"54039921":5,"54041041e":5,"541605":[30,31],"54285633":27,"543939":31,"54393936":31,"544439":[30,31],"54637219":33,"55":[1,2,3,4,9,37],"55086461":30,"552042":4,"55315304":27,"55328795e":[],"5555555555555556":37,"555m":4,"556m":4,"557795":[11,31],"55854694":11,"55868255":[],"5594":6,"55955126":23,"55972302e":[],"56":[1,2,3,4,9,37],"56033697":5,"56171141":30,"56198284":5,"561m":4,"56240703e":[],"56288861":27,"562888614232874":27,"563167":30,"56364308":30,"56366546":23,"56399029e":[],"564":9,"564374":[11,31],"56465688":23,"56477354":[],"565":9,"56536":[0,30],"56570797e":[],"56589683":33,"566":9,"56636537":[],"56636616e":6,"567":9,"56740132":[],"568":[9,33],"568587":5,"56858701":5,"569":[1,9],"56912044e":6,"56939714":5,"56965674":33,"57":[0,2,3,4,8,9,28,30],"570":9,"571":[5,32],"571105947979344e":6,"571105947979394e":6,"57201944e":6,"572069":30,"57285536":[],"573029":[],"57302926":[],"574465":[11,31],"57572321":23,"576":33,"57670824":23,"5769230769230769":9,"57952471e":[],"58":[2,4,9,10,28,30],"5808118":[],"58193124":[],"581m":4,"58268575":[],"5828247":27,"5829913":30,"5833333333333334":9,"583595":[30,31],"58492636e":31,"58742004e":[],"58818643":23,"58841019e":[],"5888888888888889":37,"58948138":27,"58948347":23,"59":[2,4,9],"59004971":23,"591317992":4,"59222238":[],"5944444444444444":37,"59446603":[],"59511582":23,"59589728e":[],"596m":4,"5974862":[],"59895188":30,"59916814e":[],"5cm":27,"5f":[8,35],"5x":8,"5y":8,"6":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,23,27,28,30,31,32,33,34,35,36,37],"60":[1,2,3,4,9],"60000":4,"6019067271":4,"60293962":5,"603636":30,"6037092":30,"60383004":30,"60420593":5,"60543038":31,"60673226":11,"6067329321734374":[],"606760":5,"6071713":[],"60815105":6,"60943791":[23,30],"61":[2,7,34],"61043964e":[],"6111111111111112":37,"61197218":23,"612939":[30,31],"613579":[30,31],"61394448":23,"614808":[11,31],"61504341":30,"61532006":[],"6153846153846154":9,"61585143":27,"61702282":6,"61775176":33,"618982":[30,31],"61971639e":[],"61992828e":[],"62":[3,4],"621102":30,"62373464":11,"625":[7,34],"62554614":[],"626635268":[6,33],"62841921":[],"62862896":23,"6289054":30,"62894215":5,"62919818":30,"63":[0,1,3,4,6,7,31,33,34,37],"6300745149331701":31,"63025821e":6,"63162342":31,"63180447":33,"63249532e":6,"63277911e":[],"633949":30,"634715":[],"63471545":[],"63498144":5,"63567272":23,"63677721":[],"637129335071195":31,"63849228e":[],"63875295":[],"64":[1,2,3,4,7,13,23,30,34,35,36,37],"64012627":5,"64111239":[],"64147722":30,"64158883e":34,"64291044e":[],"64292493":[],"64299732":30,"64316192":33,"64316482":33,"64391062":5,"643m":4,"64502836":27,"64550753":27,"646283":[11,31],"64742912e":6,"647473":[11,31],"64846973e":[],"649382":[11,31],"64969451":5,"649695":5,"64x50":[1,37],"65":[1,2,3,4,7,8,9,34,37],"65036493":[],"652187":11,"65218729":11,"6536392":31,"65408703e":[],"65442354":31,"654424":31,"654m":4,"65571174e":31,"65599456":31,"65628888":30,"6568551":23,"65704027":30,"657041":30,"65720414":27,"65743689":31,"65833132":31,"65885453":5,"65891389":31,"658914":31,"66":[2,3,4],"66051179":[],"66064822":31,"66080313":31,"66204648":6,"66219404":6,"6628996975186953":31,"66294408":31,"66323494":27,"6638":9,"6652177":31,"66545355":[],"66560":9,"66562658e":[],"665m":4,"666597":30,"666897":[],"66689729":[],"667":9,"667239":30,"66798429":[],"668172":[30,31],"67":[2,9],"67035174":30,"67047975e":6,"67189384":30,"671m":4,"67264685":[],"672721":[30,31],"67314874e":5,"67347822":[],"67432237e":[],"67554897":30,"67640036":30,"67671601":[],"6780674":[],"67890723":23,"68":2,"68192193":5,"68286725":31,"68419351":5,"684194":5,"68534263e":6,"68542204":5,"685643":[],"68564345":[],"68592431":33,"6860597312101988":[],"6869":9,"68759903e":[],"687m":4,"6887363571":4,"68929213e":6,"689345":30,"689519":[11,31],"69":[2,7,9,27,34],"690":9,"69009002":30,"690617":[30,31],"69069n_":27,"690710":[],"69071035":[],"69111133e":[],"692":[33,37],"692268":5,"69226802":5,"69230769":35,"6923076923076923":9,"692m":4,"69484813e":5,"69504801":6,"69582036":27,"69634577e":6,"69695259":5,"69714468":[],"6980":[35,36],"69818111":23,"69873514":23,"699":2,"69908626":6,"6999536":11,"6n_":27,"6pm":30,"7":[0,1,2,3,4,5,6,7,8,9,11,12,13,15,23,24,26,27,29,30,31,33,34,35,36,37],"70":[1,7,9,34,37],"700":2,"70037324e":31,"701":2,"701370":5,"702":2,"704":2,"70573539":[],"70653767":4,"706833":30,"70710678":[5,31],"70832814":5,"7086067479626619":31,"7094664":[],"709698":30,"71":[1,37],"7100524":[],"71142161":31,"711422":31,"7119":9,"712018":[11,31],"71269506e":[],"71285447":30,"713163":30,"7135487":11,"71375273e":[],"71424969":[],"71437567912473":27,"71437568":27,"71467081":27,"71504681":[],"71640333":23,"71737253":31,"71761101":31,"718165":5,"72174172":11,"72228205":30,"72271878e":6,"72328506":23,"7236674":5,"724":3,"72859758":5,"72981762":8,"73":[6,33],"731000":[30,31],"73231305":[],"73293298":30,"733096":[30,31],"734107":11,"73410729":11,"73448544":23,"74":[6,33,35,36],"740":9,"74081822":8,"740m":4,"741391":5,"7413913":5,"741m":4,"74280244":23,"74384949":31,"74401372":[],"74462857":[],"74577867":23,"74607851":31,"74724767":23,"74818082":30,"74829661":31,"74840212":5,"7490462":27,"749765":[30,31],"75":[2,5,6,8,9,11,24,30,31,33,37],"750445":[30,31],"75050135":31,"7506274061293645":11,"751699":[11,31],"75170092":5,"75268791":[],"75269037":31,"75282841":23,"75354069":[],"75457798":[],"75576555":31,"75627883":11,"756279":11,"75631027":30,"756352":[30,31],"75719828":30,"75770568":31,"75823753e":[],"75963425":[],"76":[2,9,28,30],"76004012":27,"76010633":23,"76077707e":[],"76084455":30,"76174289e":[],"7644":4,"764997683364458":[],"765":[7,34],"7651068":27,"7664107":30,"76771975":30,"7692307692307693":9,"76936315":5,"7694444444444445":37,"7697":33,"77":[2,9,28,30,35,36],"770204":3,"77025447e":[],"77152076":5,"7718":9,"77265448":31,"77343022e":[],"77448317e":[],"77632628":[],"77636e":[13,36],"77646856":30,"77714169":8,"7779287093124035":[],"77794957":23,"7782028952":4,"77856932":[],"78":2,"78009660e":31,"78156479e":5,"78177713":[],"78184120e":6,"78299706":27,"785061":30,"78524451e":[],"78556129":30,"78882958":23,"78941903":5,"79":2,"79072516":[],"79111643":5,"79125269":[],"791809":[],"793167":[30,31],"79328516":[],"794282":[11,31],"794906":[],"79490641":[],"795225339396409":5,"79675445":27,"79787771":27,"79896478e":[],"79909592":33,"79914677":27,"7993408651198877":33,"79934087":33,"7995707762668065":33,"7d7d58":[9,10],"8":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,21,23,24,25,27,30,31,32,33,34,35,36,37],"80":[0,1,2,5,8,9,31,32,33,37],"800":[4,7,34],"80152684":23,"80189569":[],"80228781e":[],"802550782087107":[],"80354994":6,"80460179":33,"80469739":5,"80540415e":[],"80548430e":[],"8055555555555556":37,"80609615e":6,"80609616e":6,"80625657":37,"80802836":30,"80847477e":6,"80861057":11,"808611":11,"81":[1,37],"81048318e":6,"81071342":30,"81160425":5,"81333804":6,"814":[7,11,34],"81597834":33,"815am":[28,30],"81633628":11,"816454":[30,31],"81664404":[],"816847":[30,31],"81753152":23,"81784973":27,"8182":33,"8197":33,"82":2,"82102668":[],"82139086e":[],"82198978":5,"82296251":23,"82410428":30,"82651934e":[],"8265786":5,"82909728":23,"83":[2,30],"8305555555555556":37,"83146596":33,"83298727":[],"832987270767667":[],"832m":4,"83384573":31,"83443698":[],"83488328":23,"83512277":5,"83657122":30,"83752888e":[],"83770406":[],"83793362":30,"83870794e":[],"839818":30,"84":2,"84082439":30,"84159521":23,"842436":[30,31],"84290819e":[],"84355903e":[1,37],"84359332e":[],"84380376":23,"84443254e":[1,37],"84444399":[],"845716766413386":27,"84571677":27,"84575663":27,"8461538461538461":9,"84638256":[],"846383":[],"84666445":36,"84780262":6,"84846601":[],"84858":32,"84859258":13,"84923989e":6,"84927263":11,"84929103":23,"84942247e":[],"84994524":5,"84m":4,"85":[1,2,9,37],"850164":5,"85035714":[],"85263220":6,"85278920e":5,"85288931":[],"85297050e":[],"853835":30,"85514104":27,"85548858":27,"85601992":5,"85615662":30,"85714286":34,"8574":[],"858":9,"858185":30,"8583333333333333":37,"85888897e":[],"86":2,"86012593":23,"86015267":30,"86117291":5,"86134827":5,"86145244":11,"861676":30,"86221134":23,"86252988":6,"86341536":30,"8635085":11,"8638888888888889":37,"86452742":[],"86619181":30,"86630":9,"8666666666666667":37,"86666667":34,"86810":9,"869":[0,30],"87":[9,31],"870":[0,30],"8702784034":4,"87072815e":31,"871":[0,30],"8722222222222222":37,"873":[0,30],"87381451":5,"874":[0,30],"87403627e":[],"87458904":30,"875":37,"87533278":13,"875794":27,"8759":[13,36],"876":6,"87627342":33,"87795661":30,"878123":30,"8784267":31,"88":[0,2,13,35,36],"88046261":5,"8805555555555555":37,"88168312e":6,"88182591":31,"88305878":30,"88323026":31,"88336879":5,"884399":27,"884669":31,"88529063e":6,"88613493":31,"88744469e":[],"888577549915147":5,"8888888888888888":37,"88908909e":[],"89":2,"89126914e":31,"8915573":[],"89288636":11,"89410423":5,"8942133":13,"8944444444444445":37,"89609007":23,"896911":5,"8969113":5,"89793609":23,"89823921":37,"89996783":36,"8f":[6,33],"8g":[6,33],"8n":23,"8x8":[1,37],"9":[0,1,2,3,4,5,6,7,8,9,11,12,13,21,23,25,26,27,28,30,31,32,33,34,35,36,37],"90":[1,2,9],"90075537":5,"9011":6,"90220243":5,"90223115":30,"90266948":5,"9027777777777778":37,"90297441":37,"90325763":30,"9036573":23,"9040":9,"904648525660773":27,"90475506e":6,"9054":33,"9055555555555556":37,"906747":5,"90803422":13,"908736":[],"90873644":[],"91":[28,30],"910":9,"91050344e":[],"9111111111111111":37,"91128596":5,"912":[3,4],"9129629":30,"914":[3,4],"9142491":30,"91492986e":6,"915":[3,4],"91538877":[],"91650774":[],"916508":[],"9165822":27,"9166666666666666":9,"917":[3,4],"91760278":5,"91784246":[],"918":[3,4],"91812702":5,"918992":[30,31],"91966064":[],"92":[6,9,28,30],"92067658":[],"9208878":13,"92103867":[],"92236466e":[],"9230769230769231":9,"923602":30,"92405283":[],"925":37,"92507116e":[1,37],"92578916":5,"92579609e":[],"92651068":33,"92717417":30,"92729959":30,"92772833":23,"9277777777777778":37,"92857143":[7,34],"92930426e":[],"9295763474254684":11,"9305555555555556":37,"931":[0,30],"93155188":5,"93158979":5,"932656":[],"93267138892912":[],"93267139":[],"933":[5,32],"93420126":37,"93492130e":6,"93500562":[],"93528653e":[],"93571082":27,"93601008e":31,"937":27,"937082":[30,31],"93799826":5,"938":27,"93820524":13,"9387":9,"93884803":27,"939":[0,27,30],"93944615e":[],"94":[7,27,34],"94226022e":6,"94230225":[],"942422095469182":[],"94256677":[],"94260358":11,"942604":11,"94273542":31,"94284104":5,"94320205":5,"94338159":27,"943439":5,"944":[3,4],"94433302e":[],"9444444444444444":[1,37],"94484047e":37,"945":[3,4],"94591015":[23,30],"946":[3,4],"94639099":11,"946957":5,"94697839":30,"947":[3,4],"9472222222222222":37,"948":[3,4],"94815131":27,"9481513127527335":27,"94822514":6,"9482527":5,"94854992":13,"94866246":23,"949":[3,4],"94938706":[],"95":[1,7,9,11,33,34,37],"950":[3,4],"95008046":6,"951":[3,4],"951109":[],"95117099":30,"95190644":30,"95231424":5,"952387":31,"9527777777777777":37,"95284275":5,"953065564":[1,37],"95327702":23,"95329348":[],"95351665":5,"95355327":[],"954":27,"95429024":[],"95508909":[],"95511792":31,"955118":31,"9555555555555556":37,"95558642":31,"955820c21e8b":4,"956563":[11,31],"95684892":5,"95686268":[],"95703":[13,36],"95763525":[],"9578":6,"958228616652075":5,"96":[1,6,7,11,33,34],"960":27,"9601304850035702e":6,"960130485007504e":6,"96024953":5,"96033509e":[],"96046928":27,"96084663":5,"961":27,"96183456":30,"962":27,"962990":30,"963198":23,"9637117593816477":6,"9640435":5,"96461989e":[],"9649652536":4,"965548":[30,31],"96611032":30,"96631321":31,"96688672":5,"966899":30,"9674916":5,"96750421":23,"967809":[11,31],"96804366":27,"96841776":13,"96890557e":[],"97":[7,34],"97005689":5,"97062694":27,"97069774":11,"970698":11,"97108e":[13,36],"9716":[],"9722222222222222":37,"9723":[],"97243128":5,"97300836":5,"97488151":30,"97497404e":6,"975":37,"97507735":5,"97514104e":[],"9764":[],"97644118":5,"9765":[],"97690235":33,"97705827":5,"97758848":5,"9777777777777777":37,"978":32,"9780387310732":29,"9780387848570":29,"97804446":13,"9781492032632":29,"9783319210079595":11,"978553":5,"97898392":[6,31],"97906022e":31,"97926491":5,"97948913":23,"98":[0,1,7,9,34,37],"980":9,"98004227":23,"9805555555555555":37,"98091621":5,"98127617":27,"981321":[30,31],"98139097":5,"98215566e":[],"98275501":5,"983310":[30,31],"98404993":[],"98413059":5,"984182":11,"98418221":11,"98430782":11,"984308":11,"98454786":5,"984601":[],"98460101":[],"9849967686928113":34,"985":27,"98566191":5,"986":27,"9861111111111112":37,"98620879e":[],"986699":5,"98680716":5,"98686102":[],"98694705":27,"98716878":5,"9871776311306221":27,"98808176":5,"98822371":6,"988835":11,"9888544725633199":[],"9888888888888889":37,"989":27,"9890348":5,"9893447":5,"98947894":31,"9898ff":[9,10],"99":[1,7,9,11,13,33,34,35,36],"990":9,"99009525":5,"99051150":6,"99084226e":[],"99088801":5,"991":27,"99106686":[],"99115119":5,"99176998":5,"992":27,"99215828":30,"99242921":5,"99265097":5,"99268332":30,"993":27,"99316252":5,"99371056":5,"99389612":5,"9940253773173835":[],"9943201":5,"9947756":5,"99492986":5,"9950597269547777":31,"99528218":5,"99539415":5,"9955500279779226":[],"99566069":5,"99578809":5,"996":[5,32,33],"99608161":5,"9963311287748658":31,"9963961":5,"99650061":5,"9967458":5,"9969332511584248":31,"99700706":5,"99709215":5,"99729756":5,"99751458":5,"99758326":5,"99775587":5,"99793613":5,"99799099":5,"99813653":5,"99828624":5,"9983295":5,"99845267":5,"99854557":31,"998577":5,"99861053":5,"99862019":31,"99869482":31,"99871521":5,"99876945":31,"99881845":5,"99883628":31,"99884384":5,"99884409":31,"99891093":31,"99891873":31,"99893323":5,"99898558":31,"999":[9,27,35,36],"99901896":5,"99903755":5,"99906023":31,"99911427":5,"99912709":31,"99913489":31,"99918546":5,"99919837":5,"99920175":31,"99926459":5,"99927642":31,"9993237":5,"99933188":5,"9993511":31,"99938942":5,"99941797":31,"9994385":5,"99944272":5,"99949266":31,"99949306":5,"99953381":5,"99953475":5,"99956735":31,"99957911":5,"99961294":5,"99965056":5,"99967865":5,"99970894":31,"99970988":5,"9997332":5,"99975913":5,"99977849":5,"99978365":31,"99980002":5,"9998161":5,"99984732":5,"99987324":5,"99989476":5,"99991263":5,"99992746":5,"99993978":5,"99995":5,"999955585168597":6,"99999985":[],"9m":4,"9x":[6,24],"9y":[6,24],"\u00f8yvind":[6,31,32],"abstract":[1,20,35],"boolean":4,"break":[0,4,6,11,14,30],"byte":[23,30],"case":[0,1,2,3,4,5,6,7,11,12,13,14,16,22,23,24,25,30,33,36,37],"catch":[0,30],"class":[0,1,3,4,6,7,8,9,11,12,13,27,30,33,35,36,37],"default":[0,1,2,4,6,7,13,16,23,24,25,30,31,32,34,35],"do":[0,2,3,4,5,6,8,9,10,11,12,13,14,15,16,21,23,24,25,31,34],"ekstr\u00f8m":4,"export":9,"f\u00f8470":[28,30],"final":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,16,18,19,20,21,24,26,27,28,30,33,34],"float":[0,3,4,5,9,11,13,14,23,30,31,35,36],"function":[2,3,4,5,9,14,15,16,17,18,19,21,22,23],"import":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,16,17,24,27,33,34,35,36,37],"int":[0,1,2,3,4,5,6,11,13,14,23,27,31,33,35,36,37],"long":[0,1,3,4,12,13,30,34,35,36,37],"m\u00f8svatn":[6,24],"new":[0,1,2,3,5,6,7,8,9,10,11,13,14,17,23,24,30,31,34,35,36,37],"null":30,"public":[0,22,30],"return":[0,1,2,3,4,5,6,7,8,9,11,13,14,23,24,27,30,31,32,33,34,35,36,37],"sch\u00f8yen":[6,31,32],"short":[4,5,24,25,32,33],"super":[3,5,31,32],"switch":0,"throw":[3,6,27,33],"true":[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,19,23,24,25,27,30,31,32,33,34,35,36,37],"try":[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,22,23,24,25,27,30,31,32,33,34,35,36,37],"var":[1,5,6,10,11,13,18,19,24,27,30,31,32,33,35,37],"while":[0,1,3,4,5,6,7,8,9,11,12,13,27,30,31,32,33,34,35,36,37],A:[2,3,5,6,7,10,11,12,13,16,18,20,21,22,23,24,25,26,27,28,29,31,35,36,37],AND:2,And:[0,3,4,5,6,9,13,20,22,24,25,27,37],As:[0,1,2,3,4,5,6,8,10,12,13,16,23,24,25,27,30,31,32,33,34,35,36,37],At:[0,4,6,13,24,30,35],BE:[0,30],Be:[2,22,30],Being:[13,35],But:[0,1,2,3,5,6,9,10,25,27,31,32,33],By:[0,3,5,6,12,13,17,23,30,31,32,33,34,35,36,37],For:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37],IF:[6,32,33],IN:29,If:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,22,23,24,25,27,30,31,32,33,34,35,36,37],In:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,22,23,24,25,27,29,30,31,32,33,34,35,36,37],Is:11,Ising:[5,12,31,36,37],It:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,23,24,25,27,30,31,32,33,34,35,36,37],Its:[1,2,4,11,37],NO:[7,11,34],No:[3,4,6,9,30,32,34,36],Not:[0,1,5,6,30,31,32,33,36,37],OR:27,Of:27,On:[0,3,15,26,27,28,29,30],One:[0,1,3,4,5,6,7,8,11,12,13,17,20,24,27,31,33,34,35,36,37],Or:[0,1,6,24,30,34],Such:[0,6,12,16,27,33,34,35,36,37],That:[0,5,7,10,11,12,14,19,24,27,30,32,33,34,37],The:[4,10,13,14,15,16,18,19,20,21,23,24,25,26,27,28,29],Their:37,Then:[0,1,6,8,9,10,11,12,13,14,23,24,30,31,33,34,35,36,37],There:[0,3,4,5,6,8,9,11,12,14,23,24,26,27,28,30,31,32,34,35,36,37],These:[0,2,3,4,5,8,9,10,11,12,13,14,15,16,23,24,25,27,28,30,31,32,35,36,37],To:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,23,24,25,27,32,33,34,35,36,37],With:[0,5,6,8,9,10,11,12,14,18,23,24,25,27,30,31,33,36,37],_0:[5,8,10,11,13,31,34,35],_1:[2,5,6,8,10,11,12,13,14,23,31,32,33,34,35,36,37],_2:[2,5,8,11,12,13,23,31,35,36,37],_3:23,_4:23,_9:[13,35,36],_:[0,1,2,4,5,6,7,8,9,10,11,12,13,17,18,19,23,24,30,31,32,33,34,35,36,37],_________________________________________________________________:4,__call__:[3,4],__class__:10,__doc__:[6,33],__future__:[8,9],__getattr__:32,__getitem__:2,__init__:[1,2,3,32,37],__main__:2,__name__:[2,10,32],__traceback__:[3,4],_auto10:[6,12,36,37],_auto11:[6,36],_auto12:[6,36],_auto1:[2,3,4,5,6,7,12,13,23,27,31,34,35,36,37],_auto2:[2,3,4,5,6,12,13,23,27,35,36,37],_auto3:[3,4,5,6,12,13,23,35,36,37],_auto4:[4,6,12,13,23,35,36,37],_auto5:[4,6,12,13,23,35,36,37],_auto6:[4,6,12,23,36,37],_auto7:[4,6,12,23,36,37],_auto8:[6,12,36,37],_auto9:[6,12,36,37],_base:8,_build:[0,17,19,22,24,29,30],_build_call_output:[3,4],_c:[1,37],_call:[3,4],_call_flat:[3,4],_check_optimize_result:[7,11,34],_compon:11,_decor:[0,30],_depth:9,_distn_infrastructur:34,_eagerdefinedfunct:[3,4],_fraction:9,_handl:[3,4],_i:[0,1,2,5,6,7,8,11,12,13,15,16,17,19,24,30,31,32,33,34,35,36,37],_inference_funct:[3,4],_interpolatefunctionerror:[3,4],_j:[0,1,2,3,5,6,8,13,17,19,24,31,32,33,35,37],_jit_compil:[3,4],_k:[13,34,35,36],_l:[12,36,37],_lambda:[6,30],_leaf:9,_lock:[3,4],_logist:[7,11,34],_m:10,_make_vjp:[2,13,36],_maybe_define_funct:[3,4],_multilayer_perceptron:37,_n:[2,5,8,11,13,31,34,35],_node:[2,9,13,36],_notokstatusexcept:[3,4],_num_output:[3,4],_p:[5,8,31],_process_traceback_fram:[3,4],_r:[3,4],_ratio:11,_sampl:9,_select_forward_and_backward_funct:[3,4],_split:[6,9,24],_stateful_fn:[3,4],_stateless_fn:[3,4],_t:[13,35,36],_test:[6,24],_trace:[2,13,36],_unpad:2,_valu:[2,13,36],_varianc:11,_weight:9,a0:3,a0faa0:[9,10],a1:[0,30],a2:[0,30],a3:[0,30],a4:[0,30],a_0:[0,21,25,30],a_1a:[0,30],a_1x:[21,25],a_2a:[0,30],a_2x:[21,25],a_3:[0,30],a_3a:[0,30],a_4:[0,30],a_4a:[0,30],a_:[0,1,16,23,30,31,37],a_h:[1,37],a_i:[0,1,2,12,30,37],a_j:[1,12,37],a_k:[0,1,12,37],aaron:29,ab:[0,2,5,13,14,30,31,32,35,36],ab_channel:22,abandon:1,abbrevi:26,abid:27,abil:[0,10,30],abl:[0,1,4,5,6,7,10,12,13,16,24,31,34,35,36,37],about:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,23,24,25,28,32,33,34,35,36,37],abov:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,23,24,25,27,29,30,31,33,34,35,36,37],abovement:[6,33],abscissa:[13,34,35],absolut:[0,2,5,6,13,30,31,32,33,35,36],absorb:[31,32],acceler:[13,35,36],accept:[0,3,6,9,24,30,31],access:[0,3,11,27,31],accid:[4,6,33,34],accompani:[0,30,31],accomplish:[8,9,13,35,36],accord:[0,1,2,5,6,9,12,13,14,15,16,27,30,32,33,34,35,36,37],accordingli:11,account:[0,3,5,13,15,27,30,32,33,35,36],accumul:[12,13,27,35,36,37],accur:[0,3,4,6,10,13,33,35,36],accuraci:[0,1,3,4,5,6,7,9,10,11,12,25,30,31,34,36,37],accuracy_scor:[0,1,10,30,37],accuracy_score_numpi:[1,37],achiev:[0,1,5,6,8,12,23,30,32,33,36,37],aco:27,acquaint:[22,30],acquir:[1,22,30],acr:[0,31],across:[1,3,6,9,22,30,33,37],act:[1,3,23,37],action:27,activ:[0,2,3,4,9,26,28,30,33,34,35],actual:[0,1,4,5,6,8,11,16,23,27,30,31,32,33],ad:[1,3,4,5,8,13,15,16,23,32,33,34,35],ada_clf:10,adaboostclassifi:10,adadelta:[13,35,36],adagrad:[21,25],adam:[1,3,4,21,25,28,30],adapt:[4,6,13,29,31,33,34],add:[0,1,2,3,4,5,6,8,10,11,12,15,16,17,21,24,25,27,30,31,32,33,35,37],add_outgrad:2,add_subplot:[1,7,12,14,34,36,37],addendum:5,addit:[0,2,3,5,6,7,8,9,10,12,13,15,17,21,22,23,24,27,28,29,30,31,32,33,34,35,36,37],addition:[12,13,34,35,36,37],address:[1,9,11,13,30,35,36],adjac:[3,12,36,37],adjoint:[5,31,32],adjust:[0,5,12,13,34,35,36],admir:[0,30],advanc:[4,6,12,29,30,33,36,37],advantag:[1,3,5,6,10,13,23,32,33,34,35,36,37],adversari:30,afecionado:30,affect:3,affin:[0,3,8,11,31],afford:3,aficionado:30,aforement:14,african:[0,31],after:[0,1,2,4,5,6,9,11,12,13,15,20,22,23,24,25,27,30,31,32,33,35,36,37],afterward:[0,30],ag:[0,7,26,30,31,34],ag_0:2,again:[0,1,4,5,6,7,8,10,11,12,13,15,16,21,24,25,27,30,31,32,33,35,36,37],against:[1,4,7,10,21,25,34,37],agegroup:[7,34],agegroupmean:[7,34],aggreg:[9,10],agorithm:10,agre:[5,6,27,32,33],agreement:[13,35,36],ahead:9,ai:[0,25,29],aid:[11,20],aim:[0,1,4,6,7,11,14,15,16,22,23,24,25,31,33,34],ainv:5,airplan:3,aka:[5,32,33],al:[0,2,4,15,16,17,25,29,30,31,32,33,34,35,36,37],alarm:[5,7,32,33],algebra:[0,3,5,13,22,31,32,33,35,36],algorithm:[0,1,2,4,5,6,7,8,13,14,21,22,23,24,27,29,30,32,33,34],align:[0,2,5,6,7,8,13,24,27,30,31,32,33,34,35],all:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],allevi:[1,13,34,35],alloc:[3,23],allow:[0,1,2,3,5,6,8,10,13,15,16,22,23,24,30,31,32,33,34,35,36,37],almost:[0,1,6,8,11,13,27,30,33,34,35,36],alon:[2,9],along:[2,3,4,5,6,9,10,11,22,23,30,31,32,33,34],alpha:[0,1,2,3,4,6,7,8,9,10,13,14,27,30,31,33,34,35,37],alpha_0:3,alpha_1:3,alpha_2:3,alpha_:10,alpha_i:[3,13,35],alpha_k:[13,35],alpha_m:10,alpha_n:3,alpha_opt:[13,35],alreadi:[2,3,4,5,6,10,12,22,23,27,30,31,32,33,36,37],also:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,30,31,32,33,34,35,36,37],alter:[1,37],altern:[0,1,4,5,6,7,8,9,11,13,23,24,30,31,32,33,34,35,36,37],although:[0,1,5,6,8,10,13,16,30,32,33,35,36],alwai:[0,3,5,6,12,13,16,27,30,31,32,33,34,35,36,37],am:[4,31],ame2016:[0,30],american:[0,31],among:[0,3,5,9,10,12,23,30,31,32,36,37],amongst:[5,32,33],amount:[0,1,3,4,6,8,10,14,22,33],an:[1,2,3,5,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,31,32,33,34,35,36,37],an_:27,anaconda:[0,1,15,22,24,30],analog:[13,35,36],analys:[6,32,33],analysi:[1,3,4,7,14,15,16,17,19,21,23,29,34,37],analyt:[2,3,5,6,7,12,13,15,21,22,24,25,30,31,32,33,34,35,36,37],analyz:[0,1,3,4,5,6,16,17,24,25,27,30,31,32,37],andrew:[1,37],angl:[0,3,9,31],anharmon:3,ani:[0,1,2,3,4,5,6,7,8,9,10,12,14,18,27,30,31,32,33,36,37],anim:[4,12,36,37],ann:[12,36,37],annot:[0,1,3,7,8,30,31,34,37],announc:30,anoth:[0,1,3,4,5,6,7,8,10,11,12,13,23,24,25,27,30,31,34,35,36,37],ans_vspac:2,ansatz:[0,30],answer:[0,1,3,5,6,23,24,25,28,30,32,33,37],antialias:[2,6,24],anticip:4,anymor:[1,8],anyon:[4,8],anyth:[1,27],anytim:[28,30],apach:1,apart:[11,13,34,35],api:[1,22,30],appar:2,appear:[0,1,3,13,16,23,27,30,35,36,37],append:[1,3,4,8,9,13,30,35],appendix:24,appl:[3,4],appli:[0,1,2,3,4,6,7,8,9,10,11,12,13,15,16,24,25,27,29,30,31,32,33,34,35,36,37],applic:[0,1,3,4,5,6,7,9,12,13,23,24,27,29,30,31,33,34,35,36,37],apply_gradi:4,approach:[1,2,4,5,6,9,10,11,12,13,17,22,27,29,31,34,37],appropri:[2,6,9,12,13,22,27,33,35,36,37],approv:30,approx:[0,2,3,6,10,11,13,27,30,33,34,35,36],approxim:[0,1,2,3,4,5,6,7,10,11,13,18,19,24,27,30,31,32,33,34,35,36],apt:[0,15,22,24,30],aq:27,ar:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],aragorn:30,arang:[1,3,4,6,7,9,10,12,13,24,30,34,35,36,37],arbitrari:[1,4,6,8,12,13,27,33,34,35,36,37],arbitrarili:[0,1,11,30,37],arc:[6,24],architectur:[3,4,12],archiv:25,area:[0,3,6,9,24,29,30],arg:[0,2,3,4,13,30,36],argmax:[1,11,37],argmin:[4,10,14],argnum:[2,13,36],argnum_0:2,argnum_1:2,args_with_tang:[3,4],argsort:11,argu:[1,13,35,36],argument:[0,2,3,5,11,12,13,24,30,31,32,33,37],argval:2,aris:[0,6,12,13,27,30,33,34,35,37],arithmet:[0,13,23,30,35,36],arm:[6,32],armadillo:23,around:[0,1,4,5,6,11,27,30,32,33,37],arr:2,arrai:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,22,24,27,31,32,33,34,35,36,37],arrang:[3,30],arraybox:[2,13,35,36],arriv:[0,6,9,11,23,27,30,33],arrow:[12,36,37],arrowprop:8,art3d:[13,35],art:[0,1,15,22,30],articl:[0,3,4,6,10,18,25,30,31,32,33],artifici:[0,2,7,12,29,30,34],artificialneuron:[12,36,37],arug:[13,35,36],arxiv:[3,4,25,35,36],as_fram:31,asap:30,asarrai:[0,2,6,9,31,32,35],ashort:20,asid:31,ask:[5,6,11,12,32,33,37],aspect:[0,6,22,24,30,31,32],assembl:[0,3,30],assert:4,assess:[0,6,24,30,31,32,33],assici:4,assign:[0,7,8,9,12,13,14,26,28,29,30,31,34,35,36,37],associ:[0,6,9,12,14,27,30,33,36,37],assum:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,19,23,24,27,30,31,32,33,34,35,36,37],assumpt:[0,3,5,6,9,11,18,24,27,30,31],ast:[0,5,6,18,24,30,32,33,34],astronomi:[30,31,32,33,34,35,36,37],astyp:[4,9,10],asymmetri:[0,30],asymptot:[4,6,33],async_wait:[3,4],atla:30,atom:[0,30],attempt:[0,4,6,7,8,10,30,32,34],attend:26,attent:[0,23,30],attr:[3,4,32],attract:[0,10,30],attribut:[0,9,13,25,30,32,33],attributeerror:[13,32],audi:[0,30],audio:[3,4],august:[15,16,30],aurelien:[0,15,26,29,30,36],austfjel:[6,24],author:[0,1,10,27,30],authour:30,auto:[9,10,27],autocor:27,autocorrelation_tim:27,autocorrelform:27,autocovari:27,autoencod:[4,22,30],autoencond:22,autograd:[22,25,30],autom:[0,22,29,30],automac:23,automag:30,automat:[0,1,2,3,4,11,16,21,22,23,30,37],automobil:3,autonom:4,avail:[0,1,4,6,10,11,15,20,22,23,24,25,26,28,29,30,33,37],averag:[0,1,3,6,9,10,13,14,27,28,30,31,32,33,34,35,36,37],avoid:[0,4,5,6,9,11,13,23,30,31,33,34],awai:[2,3,6,31,32,33],awar:[2,10],award:[28,30],ax:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,23,24,25,30,31,33,34,35,36,37],axes3d:[2,6,13,24,34,35],axes_grid1:6,axessubplot:31,axhlin:8,axi:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,23,24,27,30,31,32,33,34,35,36,37],axiom:[5,32,33],axlabel:[0,30],axvlin:[4,8],axvspan:4,b1:8,b2:8,b3:8,b:[0,1,3,4,5,6,8,9,10,12,13,14,15,16,27,28,30,31,32,33,34,37],b_0:0,b_1:[0,2,12,13,35,36,37],b_2:[0,13,35,36],b_5:[13,35,36],b_:[0,1,23,37],b_group:9,b_i:[0,1,2,12,30,36,37],b_ia_:[0,30],b_ia_i:0,b_index:9,b_j:[1,12,36,37],b_k:[0,1,12,13,35,36,37],b_m:[12,36,37],b_score:9,b_valu:9,bachelor:[26,28],back:[0,3,4,5,6,8,9,10,15,23,25,27,30,31,32,34,35,36],backbon:23,backend:[1,4],background:[29,30,31],backpropag:[1,37],backtrack:9,backup:23,backward:[1,2,4,12,23,37],backward_pass:2,bad:[6,31,32],badli:27,bag:[9,22,30],bag_clf:10,baggin:30,baggingboot:10,baggingclassifi:10,baggingtre:10,balanc:[6,33,34],band:23,bandwidth:23,bar:[0,6,11,15,16,24,30],barber:29,bare:[4,10],base:[0,1,3,4,5,7,8,9,10,14,22,27,28,29,30,31,32,34,37],basi:[5,7,8,10,11,12,13,23,31,32,34,35,36,37],basic:[2,6,8,12,13,14,22,24,27,30,35,36,37],batch:[3,4,11,12,13,21,25,34,37],batch_shap:4,batch_siz:[1,3,4,37],batchnorm:4,bay:[7,34],bayesian:[5,22,29,30,32,33],beam:[30,33,34,35,36,37],becattini:28,becaus:[0,1,2,3,4,5,6,8,9,12,13,14,30,32,33,34,35,36,37],beccatini:30,becom:[0,1,2,5,6,7,9,12,13,27,30,31,32,33,34,35,36,37],been:[0,1,2,3,4,5,6,11,12,13,22,23,24,25,30,31,32,33,35,36,37],befor:[0,1,2,3,4,5,6,7,8,12,13,14,23,24,25,27,30,31,32,33,34,35,36,37],beforehand:[0,27,30],begin:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,23,24,27,28,30,31,32,33,34,35,36,37],behav:[1,6,13,33,34,35],behavior:[0,1,13,30,34,35,36],behaviour:[12,36,37],behind:[0,1,6,8,13,30,34,35,37],being:[0,1,2,3,4,5,7,8,10,11,12,13,17,27,30,31,32,33,34,35,36,37],believ:[9,23],belong:[7,8,9,13,14,34,35,36],below:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,23,24,25,27,30,31,32,33,34,35,36,37],benchmark:10,benefici:[1,13,35,36,37],benefit:[0,1,4,11,13,15,22,30,34,35,36,37],bengio:[1,21,25,26,29,30,31,35,36],benign:[1,7,9,34],besid:[4,5,32],bessel:[5,31,32,33],best:[0,1,2,3,4,5,6,7,8,9,10,12,13,24,25,28,30,31,33,34,35,37],best_estimator_:34,beta1:[35,36],beta2:[35,36],beta:[0,1,3,5,6,7,10,11,13,16,17,18,19,24,30,31,34,35,36,37],beta_0:[0,1,3,5,6,7,13,30,31,32,33,34,35,37],beta_0x_:[0,30,31],beta_1:[0,1,3,5,6,7,10,13,30,31,32,33,34,35,36,37],beta_1x_0:[0,30],beta_1x_1:[0,7,30,34],beta_1x_2:[0,30],beta_1x_:[0,30,31],beta_1x_i:[7,13,31,34,35],beta_2:[0,3,13,30,31,35,36],beta_2x_0:[0,30],beta_2x_1:[0,30],beta_2x_2:[0,7,30,34],beta_2x_:[0,30,31],beta_2x_i:31,beta_3:3,beta_3x_i:31,beta_4x_i:31,beta_:[0,3,6,7,13,30,31,32,33,34,35,36],beta_i:[0,3,5,17,30,31,32],beta_j:[0,5,6,13,18,24,30,31,32,33,35,36],beta_k:[13,34,35],beta_linreg:[13,34,35,36],beta_m:10,beta_mg_m:10,beta_n:3,beta_ol:33,beta_p:[7,34],beta_px_p:[7,34],beta_ridg:33,betaol:33,betaridg:33,betavalu:5,better:[0,1,2,3,4,6,9,10,11,12,13,30,31,32,33,35],between:[0,1,2,3,4,5,6,7,8,9,11,12,13,14,17,24,25,27,30,31,32,33,34,35,36,37],beyond:[0,1,5,6,8,13,24,30,31,34,35,36],bf:[13,14,23,27,34,35],bgd:[13,35,36],bia:[0,1,2,3,5,8,9,10,12,13,19,25,30,31,32,34,35,36,37],bias:[1,2,3,5,6,9,12,25,32,36],big:[0,1,2,5,6,14,18,30,32,33,37],bigger:[1,6,31,32],bigr:[12,36,37],bike:9,bilbo:30,billion:[3,12,22,36,37],bin:[0,7,27,31,34],binari:[0,3,5,7,9,10,12,25,30,32,33,34],binarycrossentropi:4,bind:[0,31],binomi:[22,27,30],binsboot:[6,33],bioinformat:[0,30],biolog:[1,12,36,37],bios1100:[22,30],bird:[0,3,30],birth:30,bishop:[26,29,30],bit:[1,4,23,27,30,37],bitwis:27,bivari:2,bk:[0,13,31,35,36],bla:[23,30],black:[8,9,14],bledso:30,blob:[19,20,24,30,34,35,36],block:[6,10,22,23,27,30,33],blogpost:4,blue:[0,3],bluntli:30,bm:31,bmatrix:[0,1,3,5,7,8,11,13,23,30,31,32,34,35,37],bmi:[1,37],bodi:[0,1,4,12,30,36,37],bold:1,boldfac:[0,5,16,31,32],boldsymbol:[0,1,2,3,5,6,7,8,10,11,13,14,15,16,17,18,19,24,30,34,35,36,37],boltzmann:[12,22,30,36,37],book1:29,book:[19,24,25,29,30,32],boost:[1,9,22,30],boostrap:10,bootstrap:[1,13,19,22,24,25,30,34,35,36],borrow:30,boston_dataset:[0,31],bot:8,both:[0,1,4,5,6,8,9,10,13,14,15,16,22,23,24,25,27,28,30,31,32,33,34,35,36],bottl:[7,34],bound:[0,8,12,31,35,36,37],boundari:[2,4,8,11,12,37],box:[2,4,9],boxed_arg:2,boyd:[8,13,34,35],bracket:[4,27],brain:[1,7,12,34,36,37],branch:9,breast:[5,7,11,25,32,33,34],breat:25,breviti:[13,35,36],brew:[0,15,22,24,30],brg:8,brief:[24,25,31],briefli:[0,30],bring:[0,5,6,10,25,30,31,32],broad:[0,3,4,30],brought:[13,22,30,35,36],brownle:4,browser:30,brute:[3,5,11,31,32,34],bs:[8,9,10],buffer_s:4,bui:4,build:[0,4,5,6,10,23,27,30,32,33,34,35,36,37],built:[0,1,3,4,6,31,33],bunch:11,busi:[0,31],c1:[8,11],c2:[8,11],c:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,19,22,23,27,28,29,31,32,33,34,35,36,37],c_0:27,c_1:[12,36,37],c_2:[12,36,37],c_3:[12,36,37],c_4:[12,36,37],c_:[0,8,9,10,13,27,31,34,35,36],c_i:[12,13,35,36,37],c_k:27,ca:[1,30],cach:10,cal:[0,8,10,12,13,15,16,30,34,35,37],calcul:[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,18,23,25,27,30,32,33,34,35,36,37],california:[25,31],call:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,22,23,24,25,27,28,30,31,32,33,34,35,36,37],callabl:[3,4],callback:[3,4],calor:[0,31],cambridg:[13,29,34,35],can:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,32,34,37],cancel:[0,13,30,31,35,36],cancellation_manag:[3,4],cancer:[5,10,25,32,33],cancerpd:[7,34],candid:[8,9,10,35],cannot:[0,1,4,5,6,7,8,9,26,27,30,31,32,34,37],canopi:[0,15,22,24,30],canva:[24,25,30],cap:[5,32,33],capabl:[0,1,8,13,22,30,35,36],capac:[2,28],capita:[0,31],caption:[24,25],captur:[4,11,12,36,37],captured_input:[3,4],car:[3,4],card:[0,7,30,34],cardin:1,care:[11,34],carefulli:[13,35],carlo:[0,6,22,27,29,30,33],carri:[2,6,7,24,33,34],cart:10,casella:29,cast:1,cat:[3,4],categor:[0,1,3,9,11,30,37],categori:[0,1,3,7,10,12,14,30,31,34,36,37],categorical_crossentropi:[1,3],caus:[0,5,6,27,30,31,32,33],causal:0,causat:[0,30],cax:1,cb:[6,30],cbar:1,cc:[0,1,3,4,5,13,25,30,31,32,33,34,35],ccc:[5,12,32,36,37],cdf:27,cdot:[0,2,6,12,13,14,23,27,30,33,34,35,36,37],celebr:[13,34,35],cell:[0,1,2,3,4,9,10,13,15,24,30,32,33,34,35,36],center:[0,1,6,7,8,9,11,14,24,27,30,32,33,34],central:[0,3,5,6,8,16,23,25,30,31,32],centroid:[14,27],centroid_differ:14,centuri:3,certain:[0,3,6,7,9,27,30,31,33,34],certainti:33,cg:[13,35],cha:[0,31],chain:[0,1,13,22,27,30,35,36],challeng:[35,36],chanc:[1,5,13,27,32,33,35,36,37],chang:[0,1,2,3,4,5,6,8,9,11,12,13,14,23,24,25,27,30,31,32,33,34,35,36,37],channel:3,chap4:37,chapter3:[0,19,24],chapter:[0,6,10,11,18,21,23,24,25,29,30,31,32,33,34,35,36,37],charact:[0,3,5,8,30,31],character:[8,9,10,12,27,36,37],characterist:[0,1,3,10,13,30,35,36],charg:[0,30],charl:[0,31],chase:4,chat:30,chd:[7,34],chddata:[7,34],cheap:[5,31],cheaper:[1,13,35,36],check:[0,1,3,4,5,11,13,23,30,31,35,36],checkmark:3,checkpoint:4,checkpoint_dir:4,checkpoint_prefix:4,chen:10,chiaramont:2,choic:[0,1,2,3,4,6,9,12,13,14,19,23,25,30,31,33,34,35,36,37],choleski:[5,23,31],choos:[2,3,6,9,10,11,13,14,24,25,33,34,35,36],chosen:[0,1,2,6,8,9,10,13,16,21,25,27,30,33,34,35,36],chosen_datapoint:[1,37],christian:29,christoph:[26,29,30],cifar10:3,cifar:3,circ:[1,12,37],circl:[0,8,12,31,36,37],circuit:3,circumfer:9,circumv:[1,5,13,31,35,36],ckpt:4,clariti:27,class_nam:[3,9],class_val:9,class_valu:9,class_weight:[3,4],classic:[7,9,13,34,35,36,37],classif:[0,3,5,6,7,8,11,12,22,24,29,30,31,32,33,35],classifi:[0,1,4,7,9,10,11,25,30,37],classificaton:[1,37],classifii:10,clean:[1,37],clear:[1,5,10,12,13,35,36,37],clearli:[0,3,5,6,7,8,18,27,31,32,33,34],clever:[1,10,37],clf3:0,clf:[0,6,8,9,10,30,31],clf_lasso:6,clf_ridg:[6,30],clip:[3,27],clone:28,close:[0,1,2,4,6,8,9,11,12,13,14,24,27,29,30,33,34,35,36,37],closer:[3,5,13,31,35,36],closest:[8,11,13,14,35],closur:[22,30],cloud:[22,30],cluster:[0,1,4,6,11,22,30,33,37],cluster_label:14,cm:[1,2,3,6,8,9,13,24,34,35,37],cmap:[0,1,2,3,4,6,8,9,10,24,30,37],cmap_arg:6,cmb:26,cmd:9,cmu:31,cn_:27,cnn:[12,36,37],cnn_kera:3,cntk:[22,30],co:[0,2,3,6,9,13,30,33,35,36],code:[3,4,6,7,8,15,16,17,19,21,22,23,24,27,29],coef0:8,coef:[0,30],coef_:[0,5,6,8,9,13,30,31,32,33,34,35],coeff:5,coeffici:[0,3,5,6,7,8,9,13,15,16,23,30,31,32,33,34,35,36],coerc:[0,6,30,33],coin:[10,27],coin_toss:10,col:[0,11,30,31],colab:[22,30],cold:9,colinear:[0,31],collabor:[24,25],collaps:8,collect:[0,2,6,10,11,22,27,29,30,33],collinear:[5,31,32],color:[0,3,4,6,8,9,10,24,27,35],color_channel:3,color_cod:6,colorbar:[1,6,24],colsample_bytre:10,colsaobject:10,colspec:[0,30],column:[0,1,2,5,6,7,8,9,11,12,17,23,30,31,32,33,34,36,37],columntransform:9,com:[4,6,19,20,22,24,25,29,30,32,34,35,36,37],combin:[1,2,5,6,7,10,27,32,33,34,35,36],come:[0,1,3,4,5,12,13,14,15,25,30,31,32,33,35,36,37],command:[0,1,30],comment:[0,4,5,6,15,16,24,25,30,31],commerci:[0,15,22,24,30],commod:[0,30],common:[0,1,3,5,6,7,9,11,13,14,24,25,27,30,31,33,34,35,36,37],commonli:[0,1,4,6,7,9,13,14,31,33,34,35,36,37],commun:[0,12,24,36,37],commut:3,commutatitav:3,compact:[0,1,3,5,6,7,9,11,12,13,14,30,31,32,33,35,36,37],compair:0,compar:[0,3,4,5,6,11,13,15,16,21,23,24,25,30,31,32,33,34,35,36],comparison:[2,4,13,25,35,36],compat:[7,34],compet:[0,30],competit:10,compil:[0,1,3,4,13,15,22,23,30,35,36],complet:[0,2,3,4,9,12,30,36,37],completenn:[12,36,37],complex:[1,5,8,9,11,12,13,15,16,19,25,30,33,35,36,37],complic:[0,1,9,13,30,33,34,37],compoment:31,compon:[0,1,3,4,5,6,7,9,14,16,22,30,31,32,33,34,37],components_:11,compos:[9,12,13,14,22,30,35,36,37],compphys:[0,6,17,19,20,22,24,26,28,29,30,31,34,35,36],compress:[0,30,31],compris:[6,34],compromis:[5,31],compulsori:[22,30],comput:[0,1,2,3,4,5,6,7,8,10,11,12,13,15,16,17,22,23,24,25,26,27,29,30,31,32,33,34,37],computation:[0,3,6,9,13,27,30,34,35,36],computationalscienceuio:30,computerlab:[24,25],con:25,concat:30,concaten:[2,4,6,14],concav:[1,9,13,31,34,35],concentr:[0,10,31],concept:[0,2,22,30,31],conceptu:[12,13,34,35,36,37],concern:[0,1,4,7,30,34,37],concic:30,conclud:[0,5,13,32,33,35,36],conclus:[1,37],concretefunct:[3,4],cond:2,conda:[0,1,15,22,24,30],condis:31,condit:[0,2,4,5,6,8,9,11,13,27,30,31,36],conduct:[22,30],condwav:2,confid:[0,5,6,7,8,18,24,30,31,32,34],configur:3,confirm:[5,12,32,33,36,37],confus:[5,6,7,10,23,31,32,33],confusion_matrix:9,congruenti:27,conjug:[4,8],conjugaci:[13,35],conjunct:3,connect:[0,1,3,4,9,11,12,13,23,30,31,34,35,36,37],consequ:[5,6,8,10,12,13,31,32,33,34,35,36,37],conserv:[5,14,31],consid:[0,1,2,3,5,6,7,8,9,10,12,13,16,19,23,24,25,27,30,31,32,33,34,35,36,37],consider:[0,1,5,13,30,31,32,33,34,35,37],consist:[0,1,2,3,4,6,12,13,19,24,25,27,31,33,34,35,36,37],constant:[0,2,4,5,6,8,12,13,27,30,31,32,33,34,35,36,37],constitu:[0,30],constitut:[2,6,33,34],constrain:[1,3,5,7,11,32,34,37],constraint:[5,6,8,13,17,31,32,33,35,36],construct:[0,1,2,3,5,6,7,8,9,10,11,23,27,30,31,32,33,34],consult:25,contact:[0,30],contain:[0,2,3,4,5,6,7,8,9,11,12,13,17,19,21,23,24,25,27,29,30,31,32,33,34,35,36,37],contemporari:30,content:[1,22,23,30],context:[3,4,6,10,13,24,33,34,35,36],contigu:23,continu:[0,1,2,3,4,5,6,7,8,9,10,12,13,17,18,21,23,24,25,27,30,31,32,33,34,35,37],contour:[9,10,13,35],contourf:[8,9,10],contrast:[1,4,9,10,12,36,37],contribut:[0,3,5,13,27,30,31,32,35,36],contributor:[0,24,30],control:[0,1,3,9,13,15,22,30,35,36,37],conv2d:[3,4],conv2dtranspos:4,conv:[3,4],convei:30,conveni:[0,5,6,12,13,23,24,25,30,32,33,34,35,36,37],convent:[12,31,37],converg:[1,2,4,5,7,8,11,13,14,21,25,31,32,34,35,36,37],convergencewarn:[7,8,11,34,37],convert:[0,1,4,5,9,11,13,23,30,31,35,36],converttomatrix:4,convex:[4,5,7,31],convinc:[13,34,35],convolut:[1,4,22,30],cool:[4,9],coolwarm:[6,24],coordin:[5,12,14,31,32,36,37],coorel:[0,31],copi:[0,1,2,14,31,37],copyright:[25,33],core:[2,3,4,10,13,30,36],corel:30,coronari:[7,34],corr:[0,5,7,11,31,34],correalt:[11,22],correct:[0,1,2,3,4,5,7,13,23,27,30,31,32,33,35,36,37],correctli:[1,2,6,7,10,25,37],correl:[0,1,3,5,6,7,10,12,13,22,27,30,32,33,35,36,37],correlation_matrix:[0,5,7,11,31,34],correspond:[0,3,5,6,8,9,11,12,15,16,17,22,23,24,27,30,31,32,33,36,37],cortex:[12,36,37],cosin:[3,6,33],cost:[0,2,3,5,6,7,8,9,12,13,16,17,19,24,25,30,36],cost_deep_grad:2,cost_funct:2,cost_function_deep:2,cost_function_deep_grad:2,cost_function_grad:2,cost_grad:2,cost_sum:2,costol:[13,35,36],could:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,17,23,24,25,27,30,31,32,33,34,35,36,37],coulomb:[0,30],count:[0,2,9,26,27,28,30],countor:[13,35],coupl:[4,5,6,32,33],cours:[0,1,3,5,11,24,25,26,28,31,33],courvil:[21,25,26,29,30,31,35,36],cov:[5,6,11,23,27,30,31,32,33],cov_xi:[5,11,31],cov_xx:[5,11,31],cov_yi:[5,11,31],covari:[0,7,22,23,30,32,34],covariance_matrix:[5,11,14,31],cover:[0,5,17,22,28,29,31,32],covert:[0,30],covxi:27,covxx:27,covxz:27,covyi:27,covyz:27,covzz:27,cpu:[1,3,4],cpu_util:[3,4],craft:3,crawford:30,creat:[1,2,3,4,5,9,10,11,12,13,22,24,30,32,34,35,36,37],create_biases_and_weight:[1,37],create_convolutional_neural_network_kera:3,create_neural_network_kera:1,create_x:[5,11,31],credit:[0,7,28,30,34],crim:[0,31],crime:[0,31],criteria:[0,4,9,10,14,27,30],criterion:[9,10,13,34,35],critic:[6,24,30,31,32],critiqu:[24,25],cross:[0,1,3,7,9,10,13,22,25,27,30,31,32,35,36,37],cross_entropi:4,cross_val_scor:[6,33,34],cross_valid:[7,10,34],crossvalid:[6,33],crucial:[1,27],cs231:3,cs:[26,28],csr_matrix:[23,30],csv:[0,4,6,7,9,30,33,34],ctnk:1,ctx:[3,4],cubic:0,cumbersom:[5,32,33],cumsum:[10,11,30],cumul:[7,10,27],cumulative_heads_ratio:10,cup:[5,32,33],current:[1,2,3,4,13,14,24,29,34,35,36],curs:[0,31],curv:[6,7,10,12,24,34,36,37],curvatur:[13,34,35,36],custom:[6,14,24],custom_cmap2:[9,10],custom_cmap:[9,10],cutpoint:9,cv:[6,7,10,33,34],cvxbook:[13,34],cvxopt:[5,8,31],cycl:[1,12,36,37],cyclotron:[31,32],d2_g_t:2,d:[1,2,3,4,5,6,7,8,9,10,11,13,14,23,27,28,30,31,32,33,34,35,36,37],d_f:[13,34,35],d_g_t:2,d_net_out:2,da:3,dagger:[5,23,31],dai:[1,9,22,37],damp:3,daniel:[28,30],darget:9,darkr:27,dat:[0,30],dat_id:[0,6,7,9,30,31,33,34],data1:14,data2:14,data3:14,data4:14,data:[2,4,5,8,10,12,13,14,17,18,19,21,23,25,29,33,35,36],data_handl:[3,4],data_id:[0,6,7,9,30,31,33,34],data_indic:[1,37],data_modul:31,data_panda:30,data_path:[0,6,7,9,30,31,33,34],data_url:31,databas:[1,37],datafil:[0,6,7,9,24,30,31,33,34],datafram:[0,4,5,7,9,11,30,31,34],datapoint:[1,5,6,7,11,13,31,33,34,35,36,37],dataset:[0,4,6,7,8,9,10,11,13,14,15,16,19,24,25,30,31,33,34,35,36],datatyp:4,date:[15,16,17,18,19,20,21,24,25,30,31,32,33,34,35,36,37],daughter:10,david:29,davison:33,dbh:[1,37],dbo:[1,37],dc5e85cd93c3:25,dcomposit:23,ddot:2,dead:1,deadlin:[16,17,18,19,20,21,26],deal:[0,1,3,5,6,8,11,13,14,17,18,23,24,27,30,31,32,33,34,35,36,37],dealt:0,debt:[7,34],debug:[0,5,6,32,33,34],decad:[0,3,30],decai:[0,13,27,30],decemb:[26,28,30],decent:10,decid:[0,2,3,5,6,9,24,32,33,34],decim:[0,30],decis:[0,1,8,11,22,29,30,37],decision_funct:8,decision_tre:9,decisiontreeclassifi:[9,10],decisiontreeregressor:[0,9,10],declar:[0,4,23,30],decompos:[5,6,23,31],decomposit:[0,6,12,24,30,32,36,37],decompost:[5,31],deconvolut:3,decor:[0,30],decorrel:[10,13,35,36],decreas:[1,2,4,5,6,10,11,13,32,33,34,35,36,37],deduc:[0,30],deep:[3,7,12,13,22,25,26,29,30,31,35,36,37],deep_neural_network:2,deep_param:2,deep_tree_clf1:9,deep_tree_clf2:9,deep_tree_clf:[9,10],deepen:[5,22,30],deeper:[0,3,4,30],deeplearningbook:29,deer:3,def:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,24,27,30,31,32,33,34,35,36,37],def_covari:27,def_funct:[3,4],default_tim:4,defect:[5,31],defici:[5,31],defin:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,23,24,25,27,31,32,33,34,35,36],definit:[1,2,5,6,7,8,10,11,12,13,17,23,27,31,32,33,34,35],defint:27,defun:[3,4],defvjp:2,degre:[3,5,6,8,9,10,11,15,16,17,19,24,27,30,32,33,34],del:1,delet:6,delimit:4,deliv:[26,30],delta:[0,2,3,6,8,12,13,14,30,35,36,37],delta_0:3,delta_1:3,delta_2:3,delta_3:3,delta_4:3,delta_5:3,delta_:[1,23,37],delta_h:[0,1,30,37],delta_j:[3,12,37],delta_k:[12,37],delta_l:[1,3,37],delta_momentum:[13,35,36],delta_n:[0,3,30],delug:22,delv:[0,30],demand:[13,34,35],demonstr:[0,3,5,6,7,11,12,22,30,31,32,33,34,37],demystifi:[36,37],den:4,denomin:[1,5,32,33,37],denot:[1,2,6,7,13,27,34,35,36,37],dens:[1,3,4],dense_1:4,densiti:[0,2,6,27,30,33],depart:[25,28,30,31,32,33,34,35,36,37],depend:[0,1,2,4,5,6,7,8,11,12,13,15,22,23,24,27,30,31,32,33,34,35,36,37],depict:27,deploy:[0,15,22,24,30],deprec:[2,3,13,24,30,31,35],deprecate_nonkeyword_argu:[0,30],depth:[0,3,9,10,23,33],deriv:[0,1,2,6,7,8,10,11,13,16,17,19,22,24,30,36],derivati:[13,35,36],derivative_fn:[13,35,36],descend:[5,9,11,31,32],descent:[0,1,3,7,8,12,21,30,31,37],descr:31,describ:[0,2,4,5,6,8,10,11,12,13,18,23,24,25,30,32,33,35,36,37],descript:[0,8,9,25,30],design:[0,1,3,4,5,6,7,10,11,12,13,15,16,17,18,19,24,25,30,32,33,34,35,36,37],designmatrix:[0,30],desir:[0,2,4,5,13,14,30,31,34,35],despit:[1,12,36,37],destroi:23,det:[5,23,31],detail:[0,6,11,13,14,23,24,25,31,34,35],detect:[3,8,12,36,37],determin:[0,2,3,4,5,6,8,9,10,11,12,13,16,23,27,30,31,32,33,34,35,36,37],determinist:[7,13,27,34,35,36],dev:1,develop:[0,3,5,8,10,11,12,21,22,23,24,25,30,31,32,33,36],deviat:[0,1,2,4,5,6,19,24,27,30,31,32,33],devic:[3,4],device_nam:[3,4],devis:[12,36,37],df1:30,df:[4,8,11,13,30,35],di:[0,31],diag:[5,8,31,32],diagnost:[1,10],diagon:[0,5,7,13,18,23,24,27,30,31,32,34,35,36],diagonaliz:[5,31],diagram:10,diagsvd:6,dice:[6,27,33],dict:[6,8,34],dict_kei:31,dictionari:[0,31],did:[0,1,5,6,7,10,11,14,24,25,30,32,33,34,35],die:1,diff1:2,diff2:2,diff:2,diff_ag:2,diffeent:8,differ:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,17,22,23,24,27,29,30,31,32,33,34,37],different:21,differenti:[0,3,16,22,23,30,31,34,37],differential_oper:[2,13,36],difficult:[0,1,6,10,13,24,27,30,33,35,36],difficulti:[0,1,13,30,34,35,36],diffonedim:2,digit:[0,1,3,4,6,24,25,26,28,30,37],dilemma:[13,35,36],dilut:1,dim:[4,11,14,23],dimens:[0,1,2,3,4,5,8,9,11,14,16,17,23,30,31,32,37],dimension:[0,4,5,6,9,11,13,14,19,21,22,23,25,30,32,33,34,35,36],dimensionless:[0,3,30],diment:23,dimnsion:4,diod:3,direct:[0,1,2,4,11,12,13,14,30,31,34,35,36,37],directli:[1,4,5,6,27,31,37],directori:9,disabl:[3,4],disadvantag:[0,30],disappear:[3,6,33],disc_loss:4,disc_tap:4,discard:[6,11,33,34],disciplin:[0,3,12,30,36,37],disclaim:27,discord:30,discourag:[13,31,34,35],discov:[0,30],discover:[5,32],discret:[1,3,5,7,13,32,33,34,35,36],discrimin:[4,7,10,11,34],discriminator_loss:4,discriminator_loss_list:4,discriminator_model:4,discriminator_optim:4,discuss:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,29,30,31,32,33,35,36,37],diseas:[7,34],disguis:[6,31,32,33],disord:[1,7,34],dispai:[36,37],displai:[0,1,3,4,5,6,7,8,9,10,11,12,14,24,27,30,31,33,34,36,37],displaystyl:[0,5,17,30,31,32],displot:31,disregard:[0,30],dissimilar:[11,14],dist:14,distanc:[0,8,9,11,14,27,31],distance_list:9,distinct:[3,7,8,9,10,14,34],distinctli:8,distinguish:[0,4,7,8,27,30,34],distplot:[0,31],distribut:[0,1,4,6,7,10,11,13,14,15,16,18,19,22,23,24,25,30,31,34,35,37],distrubut:[0,15,22,24,30],dive:[0,8,23,30],diverg:[1,13,34,35,36],divid:[0,1,3,5,6,7,8,9,11,12,25,27,30,31,32,33,34,36,37],divis:[6,8,9,13,23,27,33,34,35,36],dna:[7,34],dnn1:4,dnn2_gru2:4,dnn:[0,1,2,4,12,30,36,37],dnn_kera:1,dnn_model:1,dnn_numpi:[1,37],dnn_scikit:[0,1,30,37],doamin:[32,33],doc:[0,6,17,19,20,22,24,25,26,28,29,30,31,34,35,36],document:[4,7,11,13,31,34,35,36],doe:[0,1,2,3,4,5,6,8,10,11,12,13,16,23,24,27,30,33,34,35],doesn:[3,9,12,37],dog:[1,3,4,37],domain:[5,8,13,24,25,32,33,34,35],domin:[0,30],don:[0,1,3,5,6,8,11,13,15,22,24,25,30,31,35,36,37],done:[0,2,3,4,5,6,9,10,11,13,17,23,24,30,31,32,33,34,35,36],dot:[0,2,3,5,6,7,8,9,10,11,12,13,23,24,27,30,31,32,33,34,37],doubl:[3,4,23,30],doubli:1,down:[0,3,6,9,11,12,13,30,34,35,36,37],download:[0,1,3,5,6,23,24,29,30,37],downsampl:3,dozen:1,dq:[6,33],drag:[13,35,36],dramat:11,drastic:4,draw:[4,6,10,13,33,34,35],drawback:[0,1,3,13,31,34,35,36],drawn:[1,4,6,7,11,27,30,33,34,37],drive:[3,4],driven:3,drop:[0,1,5,6,11,13,27,30,31,32,33,35,36],dropna:[0,6,30,33],dropout:4,dt:[2,3,13,27,35,36],dtype:[0,1,2,3,4,14,23,30,31,36,37],dub:[0,30],due:[1,2,5,6,8,10,12,13,28,30,31,33,34,35,36,37],dummi:[0,31],dure:[0,1,3,4,8,9,11,17,20,22,24,30,33,35,36],dwell:[0,31],dwh:[1,37],dwo:[1,37],dx:[2,3,8,27],dx_1:27,dx_1p:[6,33],dx_2p:[6,33],dx_mp:[6,33],dx_n:27,dxp:[6,33],dy:[1,8,27],dynam:4,dz:8,e:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,18,19,27,28,30,31,32,33,34,35,36,37],e_:[0,2,30],each:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,22,23,25,26,27,28,30,31,32,33,35,36,37],eager:[3,4,33],eapprox:[0,30],earli:[1,3,4,13,35,36,37],earlier:[0,5,7,8,9,11,12,13,20,30,31,34,35,36,37],earthexplor:[6,24],eas:[6,9,14,33],easi:[0,5,6,7,8,9,10,11,12,13,18,22,23,25,30,31,32,33,34,35,36,37],easier:[5,6,8,9,13,25,27,30,31,33,35,36],easiest:[13,34,35],easili:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,23,24,30,31,32,33,34,35,37],eastern:[28,30],ebind:[0,30],eblock:9,econometr:30,economi:5,ecosystem:[22,30],ect:26,edg:3,edgecolor:[6,33],edu:[13,25,31,34],educ:[0,24,25,30,31,34],eff:27,effect:[1,4,10,13,27,35,36,37],effic:[1,37],effici:[0,3,10,13,22,23,27,30,34,35,36],efron:[6,33],egrad:[13,35,36],eig:[5,11,13,23,27,30,31,34,35,36],eigen:27,eigenpair:[5,11,31],eigenvalu:[0,5,8,11,13,23,30,31,32,34,35,36],eigenvector:[5,11,13,17,31,32,35],eight:[23,30],eigval:[23,27,30],eigvalu:[11,13,34,35,36],eigvec:[23,27,30],eigvector:[11,13,34,35,36],eispack:[23,30],either:[1,5,6,7,8,9,10,11,13,15,16,24,25,27,30,31,32,33,34,35,37],elabor:27,elarn:3,electr:[0,3,12,30,36,37],electron:30,eleg:11,element:[1,2,3,4,5,6,7,8,11,12,13,17,18,20,21,22,23,24,25,26,29,31,32,33,34,37],elementari:[10,13,23,35,36],elementwis:[3,13,35,36],elementwise_grad:[2,13,35,36],elessar:30,elif:[2,3,4,14],elim:23,elimin:[3,8],els:[1,2,3,4,7,9,12,13,23,34,35,36,37],elu:1,elus:[0,30],email:[26,28,30],embed:[0,11,31],embodi:[6,19,24,33],emit:27,emner:29,emphas:[0,10,22,30],emphasi:[0,22,29,30],empir:[1,11,27],emploi:[0,1,5,6,11,13,24,25,27,30,31,32,33,34,35,37],employ:[0,30,31],empti:[6,10,33],emul:[12,36,37],en:[22,29],enabl:11,enbodi:[6,33],encod:[0,3,5,9,11,14,17,30,31,32],encompass:[0,24,27,30],encount:[0,1,5,6,7,13,27,30,31,33,34,35,36,37],encourag:[24,25],end:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,23,24,27,28,30,31,32,33,34,35,36,37],end_box:[2,13,36],end_nod:[2,13,36],end_valu:[2,13,36],endpoint:[3,6],energi:[0,4,6,31,33],enforc:[12,36,37],eng:29,engin:[0,1,3,4,22,30],english:[24,25],enorm:3,enough:[0,6,13,30,33,34,35],ensembl:[1,9],ensur:[0,1,2,3,5,6,11,13,27,31,32,33,34,35,36,37],ensure_initi:[3,4],entail:30,enter:[5,6,17,31,32],enthought:[0,15,22,24,30],entir:[1,3,7,9,22,27,30,34,35,36,37],entiti:[9,12,23,30,37],entri:[0,5,8,11,12,23,30,31,32,33,37],entropi:[1,3,7,10,13,30,35,36,37],enumer:[0,1,2,3,4,6,8,30,31,32,37],env:[0,2,3,4,7,8,11,13,27,30,31,32,34,36,37],environ:[2,22,24],eo:[0,6,30,33],eol:[0,30],eosfit:[0,30],epoch:[0,1,3,4,12,13,21,25,30,35,36,37],epoch_num:[3,4],epsilon:[0,5,6,7,13,19,24,30,31,32,33,34,35,36],epsilon_0:[0,30],epsilon_1:[0,30],epsilon_2:[0,30],epsilon_:[0,30],epsilon_i:[0,30,31],eq:[3,13,14,23,27,34,35],eqnarrai:[3,5,6,32,33],equal:[0,1,2,3,4,5,6,8,9,11,12,13,14,15,23,24,25,27,30,31,32,33,34,35,36,37],equat:[1,3,4,5,6,7,8,9,10,11,13,14,16,17,18,19,23,24,27,33,36],equilibrium:[2,12,36,37],equiv:[3,13,23,27,34,35],equival:[0,1,5,7,8,11,13,22,23,30,31,32,33,35,36,37],erf:27,eriador:30,eridg:30,err:[0,10],err_:[6,33],err_sqr:2,errat:[13,34,35],errno:9,erron:2,error:[1,2,4,5,6,7,9,11,12,13,15,16,17,18,19,22,23,24,25,27,32,34,35,36,37],error_estimate_corr_tim:27,error_handl:[3,4],error_hidden:[1,37],error_output:[1,37],escap:[13,34,35,36],especi:[1,3,9,12,13,24,25,35,36,37],essenti:[0,5,6,9,10,12,14,24,25,27,31,36,37],establish:[0,6,10,11,15,24,25,30],estim:[0,1,5,6,7,10,11,13,22,27,30,31,34,35,36,37],estimated_mse_fold:[6,33,34],estimated_mse_kfold:[6,33,34],estimated_mse_sklearn:[6,33,34],et:[0,2,4,15,16,17,25,29,30,31,32,33,34,35,36,37],eta0:[8,13,34,35],eta:[0,1,3,8,12,13,21,25,30,34,35,36,37],eta_:[13,35,36],eta_t:[13,35,36],eta_v:[0,1,3,30,37],etc:[0,1,3,5,7,8,9,11,12,13,14,15,21,22,23,24,25,27,31,34,35,36,37],ethic:[22,30,31],etsim:33,euclidean:[0,14,31],evalu:[0,2,3,4,5,6,9,13,24,27,30,31,32,33,34,35,36],evaluationform:[20,24,35,36],evaluationgrad:[20,24,35,36],evalut:[13,35,36],even:[0,1,3,4,5,6,8,9,10,11,12,13,14,22,23,27,30,31,32,33,34,35,36,37],evenli:4,event:[5,7,10,27,32,33,34],eventu:[0,5,6,11,12,13,24,25,28,31,32,33,34,35,36,37],everi:[0,1,2,3,4,5,6,9,10,11,12,13,14,22,27,28,30,31,32,33,34,35,36,37],everyth:[4,12,21,37],everywher:[4,13,34,35],evolv:[0,30],exact:[0,2,5,11,12,13,23,27,30,31,35,37],exactli:[0,3,4,6,12,22,24,31,33,36,37],exam:30,examin:[6,33],exampl:[5,11,12,13,15,16,19,20,21,22,23,24,25,27,29],exce:[1,12,13,35,36,37],excel:[0,1,4,5,10,25,30,31],except:[3,4,6,8,9,23],excess:[0,30],excit:[0,30],exclud:[1,6,12,24,31,32,33,34,36,37],exclus:[0,1,3,6,27,30,33,34],execut:[2,3,4,5,13,31,35,36],execute_with_cancel:[3,4],executing_eagerli:[3,4],exemplifi:[13,35,36],exercic:[28,30],exercis:[5,22,24,25,26,28,32,34,35,36,37],exercisesweek35:17,exhaust:[6,33,34],exhibit:[0,5,6,8,30,31,33],exist:[0,1,2,3,5,6,7,8,9,13,18,23,24,25,30,31,32,33,34,35],exit:[5,23,31],exp:[0,1,2,5,6,7,8,10,11,12,13,15,16,24,27,30,31,32,33,34,35,36,37],exp_term:[1,37],expand:[5,7,11,13,31,34,35],expans:[0,3,5,8,10,12,13,30,31,34,35,37],expect:[0,1,5,6,7,11,12,13,15,16,19,22,24,25,30,31,34,35,36,37],expectation_value_of_h_wrt_p:27,expens:[6,10,13,34,35,36],experi:[0,1,6,8,13,22,24,30,31,33,34,35,36],experiment:[0,3,4,6,9,27,30,33],experimental_get_tracing_count:[3,4],expert:[1,9],explain:[0,6,9,10,11,13,19,24,30,34,35],explained_variance_ratio_:11,explan:25,explanatori:[0,30],explicit:[0,3,6,13,23,24,30,31,32,35,36],explicitli:[0,4,30],explod:1,exploit:[0,3,12,13,30,35,36,37],explor:[1,4,6,8,13,22,24,25,34,35,36],expon:[1,37],exponenti:[0,1,5,6,10,13,24,27,30,32,33,34,35,36],export_graphviz:9,export_text:9,exporttext:9,expos:[22,30],express:[0,2,3,5,6,7,10,12,13,16,21,23,24,25,27,32,33,36,37],exptmean:27,exptvari:27,extend:[0,2,7,11,13,17,22,30],extens:[0,12,15,22,30,36,37],extent:[0,1,6,29,30,33],extern:[3,6,9],extra:[1,3,5,28,30,31,37],extract:[0,3,5,6,7,8,11,13,23,30,31,34,35],extrapol:[0,30],extrem:[0,1,4,5,6,7,8,9,13,16,23,31,32,33,34,35,36],extremum:[13,34,35],extrins:11,ey:[0,5,6,13,14,23,30,32,33,34,35],f11:[0,30],f12:[0,30],f13:[0,30],f1:[13,35,36],f1_grad:[13,35,36],f1d:[13,35],f2:[13,35,36],f2_grad_x1:[13,35,36],f2_grad_x1_analyt:[13,35,36],f2_grad_x2:[13,35,36],f2_grad_x2_analyt:[13,35,36],f3:[13,35,36],f3_grad:[13,35,36],f3_grad_analyt:[13,35,36],f4:[13,35,36],f4_grad:[13,35,36],f4_grad_analyt:[13,35,36],f5:[13,35,36],f5_grad:[13,35,36],f6:[13,35,36],f6_for:[13,35,36],f6_for_grad:[13,35,36],f6_grad_analyt:[13,35,36],f6_while:[13,35,36],f6_while_grad:[13,35,36],f7:[13,35,36],f7_grad:[13,35,36],f7_grad_analyt:[13,35,36],f8:[13,35,36],f8_grad:[13,35,36],f9:[0,13,30,35,36],f9_altern:[13,35,36],f9_alternative_grad:[13,35,36],f9_grad:[13,35,36],f:[0,1,2,3,4,5,6,7,8,10,12,13,14,16,18,19,21,23,27,28,30,31,32,33,34,35,36,37],f_0:[3,10],f_1:[10,13,34,35],f_2:[12,13,34,35,36,37],f_3:[12,36,37],f_:10,f_d:27,f_grad:[13,35,36],f_grad_analyt:[13,35,36],f_i:[0,6,12,16,33,36,37],f_m:[3,10],f_n:3,f_vec:2,f_wrap:2,face:[13,34,35,36],facecolor:[6,8,27,33],facil:[0,15,22,30,33,34,35,36,37],facilit:[12,36,37],fact:[0,1,3,5,9,11,12,13,30,31,32,33,34,35,36,37],factor:[0,1,3,5,6,9,10,11,13,23,27,30,31,32,33,35,36,37],factori:[13,35,36],fade:6,fafab0:[9,10],fahimeh:[28,30],fail:[0,3,4,6,7,8,11,13,28,30,33,34,35],failur:[7,34],fairli:[1,2,27],fake:4,fake_loss:4,fake_output:4,fale:25,fall:[8,9,26],fals:[0,1,2,3,4,5,6,7,9,10,14,23,24,30,31,32,33,34,35,36,37],famili:[0,7,8,27,34],familiar:[0,3,5,6,8,15,22,23,24,27,30,32,33],famou:[6,12,37],far:[0,3,4,5,6,8,11,12,13,14,30,31,34,35,36,37],fashion:[0,9,10,30],fast:[1,3,6,10,12,13,22,27,30,33,34,35,37],faster:[1,11,13,35,36],fastest:[13,23,34,35],favor:[7,34],favorit:27,fc:3,featur:[0,1,3,5,6,7,8,10,11,12,13,18,22,24,25,27,30,32,33,34,35,36,37],feature_nam:[0,1,7,9,31,34],feautur:9,fed:[1,37],feed:[0,2,3,11,22,25,30],feed_forward:[1,37],feed_forward_out:[1,37],feed_forward_train:[1,37],feedback:[4,20,30],feeddorward:4,feedforward:[1,4,12,37],feel:[0,5,6,11,13,15,16,21,22,24,25,28,30,32,35,36],feet:[0,31],fei:30,felt:[24,25],fetch:[6,24,31],fetch_california_h:31,fetch_openml:31,few:[1,3,4,5,9,27,30,35,37],fewer:[0,9,11,30],ffnn:[1,12,25,36,37],field:[0,3,6,12,22,30,36,37],fifth:[0,6,15,16,24,30],fig:[0,1,2,3,4,6,7,12,13,14,24,30,34,35,36,37],fig_id:[0,6,7,9,30,31,33,34],figaxi:27,figsiz:[0,1,2,3,4,6,7,8,9,10,30,31,33,34,37],figur:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,22,24,25,30,31,32,33,34,35,36,37],figure_id:[0,6,7,9,30,31,33,34],figurefil:[0,6,7,9,30,31,33,34],file:[0,2,3,4,5,6,7,9,13,24,25,30,31,32,33,34,36],file_prefix:4,filenam:[30,31],filenotfounderror:9,filepath_or_buff:[0,30],fill:[5,9,31],filter:[3,4],filter_traceback:[3,4],filtered_flat_arg:[3,4],filtered_tb:[3,4],financ:[0,30],find:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,21,22,24,25,27,30,31,32,34,37],fine:[0,14,15,30],finish:2,finit:[3,5,6,12,13,17,27,31,32,33,35,36,37],first:[0,1,2,3,5,6,7,8,9,10,11,13,14,15,16,17,23,24,27,28,29,33,36],first_moment:[35,36],first_term:[35,36],firsteigvector:11,fit:[1,3,4,5,6,7,8,9,11,12,13,15,16,17,24,25,27,31,33,34,35,36,37],fit_beta:[6,31,32],fit_intercept:[0,5,6,31,32,33],fit_mod:9,fit_transform:[0,6,8,9,11,33,34],fiti:[0,30],five:[0,9,17,24,30,31,34],fix:[0,3,4,6,10,11,12,13,21,24,25,30,33,34,35,36,37],flag:4,flat:[12,13,34,35,36,37],flatten:[1,3,4,5,23,37],flexibl:[1,6,8,10,12,25,30,31,33,36,37],flip:[28,30],float32:[4,9],float64:[4,23,30,31,36,37],flop:[5,23,31],flow:[1,4,12,36,37],fluctuat:[5,32],fly:11,fm:[0,30],fmax:3,fmesh:[13,35],fn:[3,4,7],focu:[0,3,4,5,6,15,22,25,29,30,31,32,33],focus:[1,6,7,23,31,32,34,37],fold:[6,9,24],folder:[0,1,4,6,13,24,25,30,33,35,37],follow:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],font:[0,7,27,30,34],fontdict:27,fontsiz:[1,6,8,9,10,27],fontweight:1,footprint:3,foral:[8,31],forc:[0,5,6,10,11,30,31,32,34],forcast:4,forecast:[4,12,36,37],forest:[0,1,9,22,30],forget:11,form:[0,3,4,5,6,7,8,9,11,12,13,17,22,23,24,25,27,30,31,32,33,34,35,36,37],formal:[3,4,14,27],format:[0,1,2,3,4,6,7,8,9,10,11,22,27,29,31,32,33,34,36,37],format_data:4,formatstrformatt:[6,13,24,34,35],formul:[4,6,11,14],formula:[3,13,27,34,35,36],forth:[4,12,36,37],fortran2003:[22,30],fortran2008:[24,25],fortran90:27,fortran:[0,15,22,23,30],fortun:[0,11,31],forward:[0,3,4,6,22,23,25,30,33],forward_backward:[3,4],forward_funct:[3,4],found:[1,2,4,5,6,12,13,19,20,24,25,30,31,32,33,35,36,37],foundat:[22,30],four:[4,5,6,8,12,23,24,26,28,30,32,36,37],fourier:[0,30],fourierdef1:3,fourierdef2:3,fourierseriessign:3,fourth:[12,30,31,37],fp:7,frac:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,19,23,24,25,27,30,31,32,33,34,35,36,37],fractal:9,fraction:9,frame:[7,30,34],framework:[1,8,10,27],frank:[5,11,21,25],frankefunct:[5,6,11,24,31],fredli:[28,30],free:[0,6,11,13,15,16,21,22,23,24,25,27,28,29,30,35,36],freecodecamp:22,freedom:[5,32],freeli:[0,24,30],frequenc:[3,4,6,7,27,33,34],frequent:[0,8,9,13,30,34,35],frequentist:22,fresh:10,fridai:[16,28,30],friedman:[6,18,24,26,29,30,31],friendli:4,frodo:30,frog:3,from:[0,1,2,3,4,6,7,8,9,11,13,14,16,17,18,19,21,22,23,24,27,28,29,30],from_cod:9,from_logit:[3,4],from_tensor_slic:4,fromnumer:2,front:[0,4,5,15,16,30,31,32],fulfil:[2,5,12,31,36,37],full:[0,1,3,5,7,9,10,13,27,30,31,34,35,36],full_matric:[5,31],fulli:[3,6,12,26,27,33,34,36,37],fun:[2,13,22,30,36],fun_nam:2,func:[0,2,30,31],functionali:11,fundament:[0,6,22,30,33],funtion:2,further:[2,7,9,30],furthermor:[0,3,5,6,7,11,12,13,17,22,24,30,31,32,33,34,35,36,37],futur:[0,4,8,9,30,31],futurewarn:[0,30,31],fy:[15,24,25,26,28,29,30],fys4155:[24,25],fys5419:[29,30],fys5429:[29,30],g0:2,g:[0,1,2,3,4,6,8,9,10,11,13,27,30,32,33,34,35,36,37],g_0:2,g_1:[2,10],g_2:[2,10],g_:[2,9,10],g_analyt:2,g_dnn_ag:2,g_euler:2,g_i:2,g_m:[3,10],g_n:3,g_re:2,g_t:2,g_t_d2t:2,g_t_d2x:2,g_t_dt:2,g_t_hessian:2,g_t_hessian_func:2,g_t_jacobian:2,g_t_jacobian_func:2,g_trial:2,g_trial_deep:2,g_vec:2,gain:[1,5,7,9,10,13,31,32,33,35,36],galleri:[0,30],game:4,gamge:30,gamma1:8,gamma2:8,gamma:[0,2,8,9,10,11,13,30,34,35,36],gamma_0:10,gamma_1:10,gamma_1x:10,gamma_:[0,30],gamma_i:[0,8,27,30],gamma_j:[13,35,36],gamma_k:[13,34,35],gamma_m:10,gamma_x:[0,30],gap:8,gate:[4,12],gather:[0,1,12,31,36,37],gaug:[12,36,37],gaussbacksub:23,gaussian:[4,5,6,8,14,27,32,33],gaussian_point:14,gaussian_rbf:8,gave:[13,35,36],gbc:[26,30],gca:[2,6,8,13,24,35],gd:[1,21,25,34],gd_clf:10,gdclassiffiercgain:10,gdclassiffierconfus:10,gdclassiffierroc:10,gdm:[13,35,36],gdregress:10,ge:[1,5,7,27,31,34],gen_loss:4,gen_tap:4,gender:[0,30],genener:4,gener:[0,1,2,3,5,6,8,10,11,12,13,14,15,16,17,19,20,23,24,27,29,31,32,33,34,35,36,37],generallay:[12,36,37],generate_and_save_imag:4,generate_imag:4,generate_latent_point:4,generate_simple_clustering_dataset:14,generated_imag:4,generator_loss:4,generator_loss_list:4,generator_model:4,generator_optim:4,genom:22,geodes:11,geometr:[0,13,30],geometri:[5,32,33],georg:29,geotif:[6,24],geq:[2,5,8,9,13,31,32,34,35],geron:[0,15,26,29,30,35,36],get:[0,1,2,3,4,5,6,7,9,10,11,13,15,20,21,22,23,24,25,27,28,30,31,32,33,34,35,36,37],get_dummi:9,get_paramet:2,get_split:9,get_yaxi:8,get_yticklabel:6,getattr:2,gibb:[22,30],gif:4,gini:10,gini_index:9,ginvers:13,git:[0,15,22,30],giter:[13,35,36],github:[0,6,15,17,19,20,22,24,25,26,28,29,30,31,34,35,36],gitlab:[0,15,22,24,25,30],give:[0,1,2,3,5,6,7,8,9,10,12,13,14,17,22,24,25,27,30,31,32,33,34,35,36,37],given:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,23,24,25,27,30,31,32,33,34,35,36,37],global:[6,7,13,24,34,35,36],gloriou:25,glorot:1,gnew:13,go:[0,1,3,5,6,8,9,11,12,13,24,30,31,32,33,34,35,37],goal:[0,7,9,30,34],goe:[0,1,2,5,6,13,14,18,23,30,31,32,33,34,35,36,37],golden:[13,35],gone:[5,31,32],gong:[1,37],good:[1,3,4,5,6,9,10,11,13,17,22,27,29,31,32,33,34,35,36],goodfellow:[4,21,25,26,29,30,31,32,34,35,36,37],googl:[1,4,22,30],got:[1,6,24,37],gov:[6,24],gp:29,gpu:[1,13,22,30,35,36],grad:[2,13,35,36],grad_analyt:[13,35,36],grade:26,gradient:[0,3,4,7,8,9,12,21,22,30,31,37],gradient_desc:[3,35],gradientboostingclassifi:10,gradientboostingregressor:10,gradients_of_discrimin:4,gradients_of_gener:4,gradients_util:[3,4],gradienttap:4,gradual:[1,14],grai:[4,6,24],graph:[1,9,11,12,13,34,35,36,37],graph_from_dot_data:9,graph_funct:[3,4],graphic:[0,1,9,30],grasp:[0,30],gray_r:[1,3,37],grayscal:3,great:[5,13,34,35],greater:[1,7,27,34,37],greatli:[13,35,36],greedi:[9,34],green:[0,3,9,27],grei:4,grid:[1,3,6,7,8,12,27,31,32,33,36,37],gridsearch:34,gridsearchcv:34,grossli:[13,34,35],ground:[0,30],group:[0,6,7,9,14,22,24,25,26,28,30,33],groupbi:[0,30],grow:[1,3,9,10,37],growth:[0,30],gru:4,guarante:[0,3,4,13,27,30,31,34,35],guess:[1,4,10,13,14,25,34,35,36,37],guestrin:10,guid:1,guidelin:[20,35,36],h1:2,h:[0,1,5,6,8,13,16,18,24,27,28,29,30,31,34,35,36,37],h_1:[2,13,34,35],h_2:[2,13,34,35],h_:[0,13,30,34,35],h_m:10,ha:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,23,24,25,27,30,31,32,33,34,35,36,37],haa:[28,30],habit:[0,31],had:[0,1,6,7,13,30,33,34,35,37],hadamard:[1,12,13,35,36,37],half:[1,8,9],halv:10,hand:[0,1,2,3,5,11,12,13,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],handi:[3,24,25],handl:[0,1,2,5,9,11,22,32],handle_unknown:9,handsid:[12,37],handwrit:[12,36,37],handwritten:[1,5,30,37],handwrittennot:[19,30,34,35],happen:[1,2,3,4,5,6,10,13,27,31,35,36,37],hard:[1,7,8,10,13,34,35,37],hardcopi:[22,30],harder:[0,1,31],harmon:3,hasn:37,hassl:[0,15,22,30],hast:[22,30],hasti:[0,6,15,16,17,18,24,26,29,30,31,32,33,34],hat:[0,1,5,6,7,9,10,11,12,13,17,18,23,24,31,32,33,35,36,37],have:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,24,25,27,28,31,32,33,34,35,36,37],haven:[1,37],he:[7,34],head:[0,4,10,27,31],header:[0,30,31],heads_proba:10,health:[0,31],hear:[0,13,30,35,36],heart:[0,7,30,34],heatmap:[0,1,3,7,30,31,34,37],heavili:[0,30],heavisid:[1,37],height:[1,3,6,31,32,37],held:[13,35,36],help:[0,1,4,12,13,16,24,25,30,35,36,37],helper:[4,14],henc:[0,5,6,8,9,10,12,13,18,24,30,31,32,33,34,35,36,37],henrik:[28,30],her:[7,34],here:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,27,30,31,32,33,34,35,36,37],hereaft:[0,8,12,30,37],hermitian:23,hessenberg:23,hessian:[0,2,5,13,16,32,36],heterogen:[9,10],hi:[7,34],hidden:[1,3,4,12,25,36,37],hidden_bia:[1,37],hidden_bias_gradi:[1,37],hidden_layer_s:[0,1,30,37],hidden_neuron:4,hidden_weight:[1,37],hidden_weights_gradi:[1,37],hierarch:[5,31,32],high:[0,1,2,3,4,5,6,9,10,11,13,14,22,23,24,25,30,31,33,34,35,36],higher:[0,1,3,5,6,8,13,21,24,25,30,31,32,33,34,35,36],highest:[1,2,37],highli:[0,3,4,10,18,22,23,25,29,30,31,32,33],highwai:[0,31],hing:8,hint:[13,16,25,31,34,35],hip:22,hire:[0,30],hist:[4,6,7,27,33,34],histogram:[0,6,7,27,31,34],histor:[7,11,34],histori:[3,4,12,36,37],histplot:31,hitherto:[5,32],hjorth:[28,30,31,32,33,34,35,36,37],hobbi:27,hoc:[5,31],hoff:29,hold:[1,3,6,13,14,33,34,35,36,37],holder:[0,30],holomorphic_grad:[2,13,36],home:[0,31],homepag:[24,25,30],homework:[6,13],homogen:[1,3,9,10,13,35,36],honchar:2,hopefulli:[0,11,27,30],horizont:11,hors:[3,7,34],hot:[1,9,37],hour:[1,22,26,27,28,30,33,37],house_pric:31,how:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,22,23,24,25,27,30,31,32,33,35,36,37],howev:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22,23,24,25,27,30,31,32,33,34,35,36,37],hspace:[0,4,8,10,27,30],hstack:[1,31],htf:[26,30],html:[0,7,11,17,19,22,24,26,28,29,30,31,34,37],http:[0,3,4,6,7,11,13,17,19,20,22,23,24,25,26,28,29,30,31,32,34,35,36,37],huang:[0,30],huber:[0,30],huge:[1,3,4,22,37],human:[0,1,3,6,9,12,30,31,32,36,37],humid:9,hundr:1,hungri:1,hybrid:26,hydrogen:[0,30],hyper:[21,25],hyperbol:[1,4,12],hyperparam:8,hyperparamet:[3,4,5,6,9,13,17,30,31,32,33,34,35,36],hyperplan:11,hz:[3,4],i0:[0,30],i1:[0,6,8,12,30,31,32,33,36,37],i2:[0,8,12,30,36,37],i3:[0,12,30,36,37],i5:[0,30],i:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,23,24,25,27,28,30,31,32,33,34,35,36,37],i_1:[5,6,32,33],i_2:[5,6,32,33],i_:[13,34,35],ian:29,ic:[1,25,37],id:[7,13,34,35],ida:[28,30],idea:[0,1,2,3,4,6,9,10,12,13,23,24,25,30,31,32,33,34,35,36,37],ideal:[0,2,6,8,13,27,30,31,33,36],idem:[6,33],ident:[5,6,12,13,17,23,24,31,35,36,37],identical:[32,33],identifi:[0,1,7,9,11,12,13,14,30,31,34,35,36,37],idx:2,ieor:27,ifi:29,ifs:[22,30],ignor:[0,1,3,9,31],ii:[23,27],iii:[23,30],ij:[0,1,3,6,8,12,14,16,18,23,24,27,30,31,32,33,36,37],ik:[0,23,30,31],illustr:[5,7,10,12,13,14,22,30,33,34,35],ilsvrc:[35,36],im:6,imag:[1,3,4,6,9,11,12,14,25,29,30,36,37],image_at_epoch_:4,image_batch:4,image_height:3,image_path:[0,6,7,9,30,31,33,34],image_width:3,imageio:[6,24],imagenet:30,images_from_seed_imag:4,imagin:1,immedi:[0,3,4,6,15,22,30],implement:[0,2,3,4,5,6,8,9,10,11,12,13,14,17,21,24,25,27,30,31,32,33,34,35,36],impli:[3,5,6,7,13,23,31,32,33,34,35],implicit:3,implicitli:[11,27],importantli:3,impos:[0,6,11,12,30,36,37],imposs:[0,5,30,31],impress:[0,12,30,36,37],improv:[0,4,5,9,10,11,13,24,25,31,36],impur:9,imread:[6,24],imshow:[1,3,4,6,24,37],in1:2,in2:2,in3050:[29,30],in3310:30,in4080:[29,30],in4300:[29,30],in4310:29,in5400:3,in5550:29,in_out_neuron:4,inaccur:[13,34,35],inact:[12,36,37],inadequ:[0,30],inch:[6,31,32],includ:[0,1,2,3,4,5,6,7,11,12,15,16,17,20,21,22,24,25,27,28,29,30,31,32,33,37],include_bia:[6,9,33],inclus:17,incom:[12,36,37],incorrect:[1,37],incoveni:8,increas:[0,1,3,4,5,6,7,8,9,11,12,13,24,27,30,31,32,33,34,35,36,37],increasingli:27,increment:35,ind:6,inde:[0,2,4,5,6,13,30,31],indefinit:4,independ:[0,5,6,7,8,12,13,27,30,31,34,35,36,37],index:[0,1,3,4,10,14,22,23,25,27,29,30,31,37],index_col:[0,30],indic:[0,1,3,4,5,6,9,10,11,13,16,24,25,30,31,35,36,37],indispens:[6,33],individu:[1,6,7,10,12,27,30,31,33,34,36,37],indu:[0,31],indx1:2,indx2:2,indx3:2,indx:23,ineffici:[3,13,35,36],inequ:[8,13],inequaltii:[34,35],inertia:[13,35,36],inf1000:[22,30],inf1100:[22,30],inf1100l:[22,30],inf1110:[22,30],inf3000:30,infeas:9,infer:[0,1,4,6,29,30,33,37],infer_nrow:[0,30],inferenc:1,infil:[0,6,7,9,30,33,34],infin:[5,6,7,11,18,31,32,33,34],infinit:3,infinitesim:27,influenc:[6,10,33,34],influenti:[1,37],info:30,inform:[0,1,3,4,6,9,11,12,13,14,21,23,24,25,29,30,33,34,35,36,37],infti:[3,6,13,27,33,34,35],ingeni:[13,34,35,36],ingrad:2,ingredi:[0,9,30],inher:[6,33],inherit:[23,30],initi:[0,1,2,6,10,13,14,23,25,27,30,33,34,35,36,37],initial_epoch:[3,4],inject:14,inlin:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,24,27,30,31,32,33,34,35,36,37],inner:[0,13,31,35],inp:4,inplac:[13,35,36],input:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,24,25,27,30,31,32,33,34,35,36,37],input_dim:1,input_shap:[3,4],inputs:1,inputs_shuffl:[0,1,31,37],insert:[3,5,6,8,10,27,31,32,33],insid:[0,4,7,31,34],insight:[0,1,5,21,22,25,30,31,32,33],insist:[6,13,31,32,35],inspect:34,inspir:[0,1,12,25,30,36,37],instabl:2,instal:[0,1,5,6,9,15],instanc:[0,1,2,4,6,9,11,13,30,31,33,34,35,37],instanti:10,instead:[0,1,2,3,4,5,6,8,9,11,13,14,23,24,27,30,31,33,34,35,36,37],institut:[1,37],instruct:[0,1,15,16,30],int32:10,int64:31,int64index:30,int_0:27,int_:[3,6,27,33],int_a:27,intak:[0,31],integ:[1,2,13,14,23,27,30,35,36,37],integer_vector:[1,37],integr:[3,6,27,30,33],intellectu:30,intellig:[0,14,29,30],intend:[10,30],intens:[1,25],intention:14,interact:[0,6,9,12,22,24,25,30,36,37],intercept:[0,6,8,11,13,16,24,30,32,33,34,35],intercept_:[0,6,8,9,13,30,31,32,33,34,35],interceptol:33,interceptridg:33,interchang:[5,12,23,32,33,36,37],interconnect:1,interest:[0,1,2,3,4,5,6,7,8,9,12,22,24,25,27,30,31,32,33,34,35,36,37],interfac:[0,1,23,31,37],interior:[0,9,30],intermedi:[23,31],intern:[1,10,12,36,37],interpol:[1,3,4,6,12,24,36,37],interpr:[5,31,32],interpret:[0,1,6,9,10,12,13,17,19,23,24,25,27,37],interv:[0,3,5,6,7,13,18,24,27,30,31,32,34,35],intial:[13,34,35],intract:[0,4,31],intrins:[3,11,23,27,30],intro:[22,29,30],introduc:[0,1,5,6,8,10,12,17,23,24,27,30,33,34,37],introduct:[1,2,4,13,17,20,29,31,34,35],introductori:[0,4,23,29,30,31],intuit:[0,5,6,8,12,13,24,30,32,33,35,36,37],inv:[0,5,13,30,31,32,34,35,36],invalid:[8,37],invalu:[0,13,15,22,30,34,35],invari:[1,37],invd:[5,32],inver:[8,36,37],invers:[0,3,6,13,15,16,17,21,24,25,30,31,34,35,36],inverse_transform:8,invert:[0,5,7,10,13,30,32,34,35,36],invh:[13,35,36],invok:[0,8,31],involv:[0,2,6,7,11,12,31,33,34,35,36,37],io:[0,17,19,22,24,26,28,29,30,31],ion:36,ip:[0,8,27,30],ipca:11,ipykernel_18986:1,ipykernel_19041:[],ipykernel_19107:[],ipykernel_19139:[],ipykernel_19152:[],ipykernel_19176:6,ipykernel_19181:[],ipykernel_19201:[],ipykernel_19294:13,ipykernel_19329:24,ipykernel_19344:30,ipykernel_19367:33,ipykernel_19394:35,ipykernel_74401:37,ipynb:[22,30],ipython:[0,5,7,9,11,14,15,22,24,25,30,31,34],iq:[6,33],iri:[8,9],irreduc:[6,33],irrelev:[5,31],irrespect:[0,30],irvin:25,isbox:[2,13,36],iseffici:[35,36],isn:[5,32,33],isnul:[0,31],isomap:11,isotop:[30,33,34,35,37],issu:[1,9,23,31,32],it_arrai:[13,35],item:[0,13,30,35,36],items:[23,30],iter:[1,2,3,4,6,7,8,11,13,14,27,33,34,36,37],its:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,18,22,23,24,25,27,30,32,33,34,35,36,37],itself:[5,6,12,19,24,25,27,31,32,33,37],j1:23,j:[0,1,2,3,4,5,6,8,9,11,12,13,14,16,17,18,19,23,24,27,29,30,31,32,33,34,35,36,37],j_:6,j_lasso_sk:6,j_ridge_sk:6,j_sk:6,jackknif:[6,22,30,33],jacobian:[2,13,34,35,36],jacobian_shap:2,jakobsen:[28,30],jason:4,jax:[22,25,30],jensen:[28,30,31,32,33,34,35,36,37],jerom:[18,24,29],ji:[12,23,37],jit:[13,35,36],jj:[0,5,6,30,32,33],jk:[0,1,6,12,23,30,36,37],jl:[0,30],jm:23,jnp:[13,35,36],job:[2,8,10],join:[0,4,6,7,9,30,31,33,34],joint:[4,5,32,33],judg:[13,34,35],judgement:[6,24],julia:[22,23,24],jump:[24,27],junk:4,jupit:30,jupyt:[0,15,19,22,24,29,30,33],just:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,22,24,25,27,30,31,32,33,34,35,36,37],justif:[0,30],justifi:[3,10],k0:[7,34],k1:[7,34],k:[0,1,3,5,6,7,8,9,10,11,12,13,14,22,23,24,27,28,30,31,32,35,36,37],kaggl:[6,24,25],kappa_d:27,karl:[28,30],karush:8,kate:30,katrin:[28,30],keep:[0,1,4,5,6,11,13,14,23,24,25,30,31,32,33,34,35,36],keepdim:[1,6,10,23,33,37],kei:[0,1,3,6,12,31,36,37],kept:[4,6,14,33],kera:[0,4,22,24,25,30],kernel:[0,1,3,22,30,31],kernel_regular:[1,3],kernel_s:4,kernelpca:11,kev:[0,30],kevin:[29,30],keyboardinterrupt:[1,2,3,4],keyword:[13,23,24,30,35],kfold:[6,33,34],kg:[1,37],ki:23,kick:[1,13,35,36],kiener:2,kilomet:[6,31,32],kind:[0,2,3,4,8,12,13,14,30,31,35,36,37],kj:[6,12,23,31,32,33,37],kjm:[22,30],kkt:8,kl:27,km:[12,30,36,37],kmean:14,kmeanspoint:14,kn_k:14,know:[0,1,2,5,6,8,13,22,30,31,32,34,35,36],knowledg:[0,22,30],known:[1,3,4,5,6,7,8,9,12,23,24,25,27,29,31,32,33,34,36,37],kondev:[0,30],kp:27,kpca:11,kroneck:14,kuhn:8,kvalsund:[28,30],kwarg:[0,2,3,4,13,30,36],kwd:[0,3,4,30],kwown:[0,30],l0:[7,34],l1:[0,1,3,7,30,34],l1_l2:[1,3],l1regl:5,l2:[1,3,37],l:[0,1,2,3,5,6,7,8,10,11,12,13,19,23,24,27,30,31,33,34,35,36],l_1:[7,34],l_2:[7,13,25,34,35],l_:23,l_j:[12,37],la:[13,35],la_i:[12,37],la_k:[12,37],lab:[20,22,24,30,35,36],label:[0,1,2,3,4,5,6,7,8,9,10,12,13,14,22,23,24,25,27,30,31,32,33,34,35,36,37],label_prob:[35,36],labelencod:[7,10,34],labels:[6,8,9],labels_shuffl:[0,1,31,37],laboratori:[26,31,32],lack:[0,30],lagari:2,lagrang:[8,11],lambda:[0,1,2,3,5,6,7,8,10,12,13,17,18,21,24,25,27,30,31,32,33,35,36,37],lambda_0:11,lambda_1:[5,8,11,31],lambda_2:[8,11],lambda_:11,lambda_i:[8,11],lambda_iy_i:8,lambda_jy_iy_j:8,lambda_k:8,lambda_n:[5,8,31],lamda:1,land:[0,8,31],landmark:8,landscap:[13,34,35,36],langl:[0,6,11,27,30,31],languag:[0,1,4,8,15,22,23,24,25,29,30],lapack:[23,30],laplac:[5,32,33],laptop:22,larg:[0,1,2,4,5,6,8,9,10,11,13,15,22,23,24,27,29,30,31,33,34,35,36,37],larger:[0,3,5,6,8,10,11,13,17,27,30,31,32,33,34,35,36],largest:[4,8,11],lasso:[0,7,22,30],lasso_sk:6,last:[0,1,2,3,4,5,6,7,8,9,10,12,13,15,17,18,23,24,27,28,30,32,35,37],latent:4,latent_dim:4,latent_point:4,latent_space_value_rang:4,later:[0,1,4,7,8,12,13,14,15,22,24,25,30,34,35,36,37],latest:[4,22],latest_checkpoint:4,latex:30,latter:[0,3,6,7,8,11,13,16,17,23,24,27,30,31,32,33,34,35,36],lattic:[12,36,37],law:[0,30],layer:[0,4,13,25,30,35,36],lbfg:[7,9,10,11,34],lcc:[5,6,32,33],lda:11,ldot:[0,6,11,19,24,30,33,34],le:[5,7,10,13,17,27,31,32,34,35,36],lead:[0,1,3,5,6,7,8,9,10,11,12,13,16,17,23,27,30,31,32,33,34,35,36,37],leaf:9,leaki:[1,25],leakyrelu:4,lear:[13,34,35],learn:[3,4,5,6,7,8,9,10,12,18,21,23,26,28,29],learnabl:3,learner:10,learnig:30,learning_r:[3,8,10],learning_rate_init:[0,1,30,37],learning_schedul:[13,35,36],learnt:[24,25],least:[0,2,7,8,10,11,15,16,17,19,21,22,23,25,27,33,34],leat:[13,35,36],leav:[0,1,3,5,6,9,11,30,32,33,34],lectur:[0,1,5,10,11,12,13,15,17,21,22,23,24,25,26,28,29,35,36],lecturenot:[0,17,19,22,24,29,30],left:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,16,17,19,23,24,27,30,31,32,33,34,35,36,37],leftarrow:[8,12,37],legend:[0,2,3,4,5,6,7,8,9,10,13,30,31,32,33,34,35,36],len:[0,1,2,3,4,5,6,8,9,10,11,12,23,30,31,32,33,35,36,37],len_index:[0,30],length:[0,1,2,3,4,8,9,13,16,22,30,31,34,35,36,37],length_of_sequ:4,leq:[0,5,7,8,13,14,17,27,30,31,32,34,35],less:[0,1,3,4,5,6,8,9,13,22,27,30,31,32,33,34,35,36],lessen:1,let:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,27,30,31,32,33,34,35,36,37],letter:[0,16,23,27,30,31],level:[0,1,5,6,9,22,23,24,25,26,28,30,31,33],li:[8,11,30],lib:[0,2,3,4,7,8,11,13,30,31,32,34,36,37],liblinear:[8,10],librari:[0,1,2,3,4,5,6,9,10,11,15,21,23,24,25,27,29,31,32,33,34,37],licens:[0,1,15,22,24,25,30,33],lie:[0,6,11,27,31,33],life:[0,1,8,12,30,36,37],lifetim:[13,35,36],like:[0,1,2,3,4,5,6,7,9,10,11,12,13,15,16,21,22,23,24,25,27,30,31,32,33,34,35,36,37],likelihood:[0,1,5,9,30,31,35,36,37],lim_:27,lima:[28,30],limit:[0,5,6,7,8,11,12,23,24,25,30,31,37],lin_clf:8,lin_model:[0,31],lin_reg:9,linalg:[0,2,5,6,8,11,13,23,27,30,31,32,33,34,35,36,37],line1:8,line2:8,line2d:[13,35],line3:8,line:[0,1,2,3,4,6,8,9,10,11,13,15,24,30,31,32,33,34,35,36],linear:[1,3,5,6,7,9,10,11,12,17,18,22,24,27,33,35,36,37],linear_model:[0,5,6,7,8,9,10,11,13,30,31,32,33,34,35,36,37],linear_regress:[6,33],linearli:[5,31],linearloc:[6,13,24,34,35],linearregress:[0,6,7,9,30,31,32,33,34],linearsvc:8,lineat:32,liner:[1,3,37],linerar:10,linewidth:[0,2,4,6,8,9,10,24,33],link:[0,4,9,12,22,24,25,28,30,37],linlag:[5,32],linpack:[23,30],linreg:[0,30],linspac:[0,2,3,4,6,8,9,10,13,15,16,23,27,30,31,32,33,35,36],linu:4,linux:[0,1,15,22,24,30],liquid:[0,30],list:[0,1,2,3,4,9,22,24,25,30,31,35],listcomp:2,listedcolormap:[9,10],literatur:[1,7,14,29,33,34],littl:[1,3,9,12,37],live:8,ll:[0,27,30,31],lle:[0,31],lloyd:[4,14],lmb:[0,2,5,6,32,33,34],lmbd:[0,1,3,30,37],lmbd_val:[0,1,3,30,37],lmbda:[13,34,35],ln:[1,13,34,35,37],load:[0,1,4,6,7,9,10,24,31,34],load_boston:[0,31],load_breast_canc:[1,7,9,10,11,34],load_data:[3,4],load_digit:[1,3,37],load_iri:[8,9],loc:[0,3,6,7,8,9,10,30,33,34],local:[0,1,2,3,4,7,12,13,30,31,34,35,36,37],locat:[2,3,8],lock:[3,4],log10:[0,5,6,32,33,34],log:[0,1,2,4,5,6,7,9,10,11,13,23,24,25,30,31,32,33,34,35,36,37],log_:[0,30],log_clf:10,logarithm:[0,5,7,23,30,32,33,34],logbook:[24,25],logic:[0,1,9,30],logist:[0,1,2,8,9,10,11,12,13,21,22,31],logistic_predict:[35,36],logisticregress:[7,9,10,11,34,36,37],logit:[7,34],logreg:[7,9,10,11,34,36,37],logspac:[0,1,3,5,6,30,32,33,34,37],longer:[2,3,8,10,14,23,25,27,30],loocv:[6,33,34],look:[0,1,2,3,4,5,6,7,8,9,10,11,13,18,23,24,25,27,30,31,32,33,34,35,36],loop:[1,4,6,10,12,14,22,23,30,33,37],lose:[1,37],loss:[0,1,3,4,5,6,7,8,10,11,13,23,24,25,30,32,33,36,37],loss_fil:4,lossfil:4,lost:4,lot:[0,1,4,6,31,33,35,36],low:[0,6,9,10,11,24,25,30,31,33],lower:[0,1,3,6,9,10,16,23,31],lowercas:[23,30],lowest:[9,13,27,35,36],lr:[1,3,4,10],lstat:[0,31],lstm:4,lstm_2layer:4,lstsq:[0,30,31],lt:[6,33],lu:[0,5,30,31],lubksb:23,luckili:2,ludcmp:23,lux:23,lvert:[1,37],lw:[0,30],m1:[3,4],m:[0,1,2,3,5,6,8,9,10,11,12,13,23,26,27,28,29,30,31,32,33,34,35,36,37],m_1:14,m_:[9,12,37],m_h:[0,30],m_k:14,m_l:[12,37],m_n:[0,30],m_p:[0,30],m_t:[13,35,36],ma:11,machin:[1,3,4,5,6,7,9,10,11,12,15,21,23,26,29,31,32,33,36,37],machinelearn:[0,6,17,19,20,22,24,26,28,29,30,31,34,35,36],mackai:29,made:[0,1,3,4,5,6,7,9,11,12,18,24,25,30,31,34,36,37],mae:[0,30],magic:4,magnitud:[1,6,7,13,31,32,34,35,36,37],mai:[0,1,2,3,5,6,7,8,9,11,12,13,18,21,22,23,24,25,27,31,32,33,34,35,36,37],mail:[26,28],main:[0,1,3,4,5,6,7,9,23,24,25,29,30,31,34],mainli:[0,5,6,7,9,30,31,32,33,34],maintain:[6,31,33],major:[1,6,9,10,13,23,30,33,34,35,36,37],make:[1,2,3,4,5,6,7,8,11,12,13,22,23,24,25,27,29,32,33,34,35,36,37],make_axes_locat:6,make_classif:[36,37],make_moon:[8,9,10],make_pipelin:[0,6,10,31,33],make_vjp:[2,13,36],makedir:[0,6,7,9,30,31,33,34],makeplot:[0,30],malcondit:23,malign:[1,7,9,34],mammographi:[5,32,33],manag:[0,2,3,15,22,24,30],mandatori:[28,30],mani:[0,1,3,4,5,6,7,8,9,11,13,14,21,22,23,24,25,27,29,30,31,32,33,34,35,36],manifold:11,manner:3,manual:[6,31,32,34],map:[0,1,2,6,7,8,11,12,14,24,27,30,34,36,37],margin:[0,5,8,30],marit:[0,30],mark:30,marker:[0,7,23,30,31,34],markov:[22,30],marsaglia:27,mass:[0,1,5,13,31,35,36,37],massag:[0,30],masses2016:[0,30],masses2016ol:[0,30],masses2016tre:0,masseval2016:[0,30],master:[6,19,20,24,26,28,30,34,35,36],mat1100:[22,30],mat1110:[22,30],mat1120:[22,30],mat:[22,30],match:[0,1,4,5,13,14,30,31,34,35,36],materi:[4,5,7,13,17,23,28,35,36,37],math:[3,7,12,13,23,27,29,30,33,34,35,36,37],mathbb:[0,4,5,6,7,8,11,12,13,14,17,18,19,23,24,27,30,31,32,33,34,35,36,37],mathbf:[0,5,6,7,8,13,18,19,23,24,30,31,32,33,34,35,36],mathcal:[1,5,6,7,13,19,24,32,33,34,35,37],matheemat:3,mathemat:[0,6,11,12,13,17,22,23,27,29,30,32,33,34],mathemati:30,mathrm:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,24,27,30,31,32,33,34,35,36,37],matmul:[1,2,5,32,37],matnat:29,matplotlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,22,23,24,27,30,31,32,33,34,35,36,37],matplotlibdeprecationwarn:[13,24,35],matric:[0,1,3,4,6,7,8,11,13,16,17,22,31,34,35],matrix:[0,2,3,4,6,7,8,10,13,15,16,17,18,19,21,24,25,27,33],matshow:1,matter:[2,3,13,31,34,35,36],max:[0,1,2,3,4,9,10,12,13,28,30,34,35,36,37],max_depth:[0,9,10],max_diff1:2,max_diff2:2,max_diff:2,max_it:[0,1,7,8,11,13,30,34,35,36,37],max_iter:14,max_leaf_nod:10,max_queue_s:[3,4],max_sampl:10,maxdegre:[0,6,10,31,33],maxdepth:10,maxim:[1,4,5,7,8,11,32,33,34,37],maximum:[0,2,3,5,7,8,9,10,13,14,30,31,35,36,37],maxpolydegre:[5,6,32,33,34],maxpooling2d:3,mbox:[5,6,18,24,31,32,33],mccorduck:30,mcculloch:[12,36,37],md:[11,20,24,35,36],mdoel:4,mean:[1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,22,23,24,25,27,33,35,36,37],mean_absolute_error:[0,30],mean_divisor:14,mean_i:27,mean_matrix:14,mean_squared_error:[0,4,6,7,10,30,31,33,34],mean_squared_log_error:[0,30],mean_vector:14,mean_x:27,meaning:[0,4,7,30,34],meansquarederror:[0,30],meant:[2,3,7,10,13,34,35,36],measur:[0,1,2,5,6,9,11,12,14,19,24,25,27,30,31,32,33,37],mechan:[0,4,27,30],median:[0,30,31],medicin:[12,36,37],medium:[4,8,13,25,35,36],medv:[0,31],meet:[0,28],mehta:[0,25,30,31,32],memori:[3,4,11,12,13,23,30,35,36,37],mention:[0,12,13,24,25,27,30,34,35,36,37],mere:[0,15,25,30],meshgrid:[2,5,6,8,9,10,11,24,31],messag:[5,13,35,36],messi:2,met:[0,3,8,30,31],metal:[3,4],meteorolog:9,meter:[6,31,32],method:[0,1,2,3,4,5,7,8,11,12,14,16,17,18,19,21,22,23,25,27,29,30,31,32,37],metion:[6,24],metric:[0,1,3,6,7,9,10,14,15,16,30,31,33,34,37],metropoli:[22,30],mev:[0,27,30],mgd:[13,35,36],mglearn:[22,30],mgrid:[13,35],mhjensen:[2,3,7,8,11,31,34,37],mi:10,mia:[28,30],michael:[25,37],michigan:[30,31,32,33,34,35,36,37],microsoft:29,mid:[1,37],midel:4,midnight:[16,17,18,19,20,21],midpoint:9,might:[0,1,2,4,6,9,13,31,32,34,35,36],mild:9,millimet:[6,31,32],million:[0,30,31,35,36],mimic:[12,36,37],min:[0,2,5,8,9,30],min_:[0,2,5,14,17,30,31,32],min_samples_leaf:9,mind:[0,6,13,24,30,31,32,33,34,35],mindboard:4,mine:[22,30],mini:[1,11,12,13,21,25,34,37],minibatch:[1,11,13,37],minibathc:[13,35,36],miniforge3:[0,2,3,4,7,8,11,13,30,31,32,34,36,37],minim:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,17,18,24,31,32,33,35,36,37],minima:[0,1,7,13,30,34,35,36,37],minimum:[0,1,2,6,8,9,11,13,31,33,34,35,36,37],minmaxscal:[0,31],minor:[13,24,27,35],minst:1,minu:[7,34],mirror:9,misc:[6,24],misclassif:[8,9,10],misclassifi:[8,10],miser:0,mismatch:1,miss:[0,7,10,31],mistak:4,mit:29,mix:[1,2,30],mixtur:[13,35,36],mk:[9,23],mkdir:[0,6,7,9,30,31,33,34],ml:[0,1,10,13,23,24,25,31,34,35,36],mlab:27,mle:[5,7,34],mlp:[1,36],mlpclassifi:[1,36,37],mlpregressor:[0,30],mm:23,mn:[12,27,36,37],mnist:[1,11,25,37],mod:27,mode:[26,28,30],model:[2,3,5,7,8,9,10,11,13,14,15,16,18,19,22,24,27,29,31,32,33,34,35],model_select:[0,1,3,5,6,7,9,10,11,30,31,32,33,34,37],moder:10,modern:[0,6,7,22,30,33,34],modif:[2,12,13,35,36,37],modifi:[0,1,3,5,7,8,10,12,13,30,31,32,34,35,36,37],modul:[0,7,11,23,30,32,34],modular:27,modulo:27,moe:[11,31],moment:[5,6,13,27,32,33],momentum:[21,25],monitor:[13,35,36],monoton:[5,12,27,32,33,36,37],mont:[0,6,22,27,29,30,33],moor:[5,6,32],more:[0,1,2,4,5,7,8,9,10,11,12,13,14,18,21,22,25,27,37],moreov:[0,3,30],morten:[28,30,31,32,33,34,35,36,37],most:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,22,24,27,30,31,32,33,34,35,36,37],mostli:[1,11],motion:[0,13,30,35,36],motiv:[1,4],move:[0,4,5,6,7,9,12,13,14,24,27,30,31,32,33,34,35,36,37],mpl:[0,7,30,34],mpl_toolkit:[2,6,13,24,34,35],mplot3d:[2,6,13,24,34,35],mplregressor:[1,37],mse:[0,4,5,6,9,10,15,16,17,19,24,25,30,31,32,33,34],mse_simpletre:10,mselassopredict:[5,32],mselassotrain:[5,32],mseownridgepredict:[6,32],msepredict:[5,32],mseridgepredict:[0,5,6,32,34],msetrain:[5,32],msg:[0,30,31],msle:[0,30],mt:[7,12,34,36,37],mu0:27,mu1:27,mu2:27,mu:[0,6,11,13,27,30,33,35,36],mu_1:31,mu_:[6,27,31,32,33],mu_i:[6,31,32,33],mu_n:11,mu_x:27,much:[0,1,2,3,4,5,6,8,9,10,11,12,13,23,24,27,30,31,32,33,35,36,37],multi:[0,1,3,7,22,30,31,34],multiclass:[1,7,34,37],multidimension:[11,12,30,36,37],multilay:1,multinomi:[7,34],multipl:[2,4,5,6,7,12,13,27,31,33,34,35,36],multipli:[3,5,6,11,13,23,27,31,32,33,35],multiplum:8,multivari:[0,2,10,11,22,27,30],multivariate_norm:[11,14],murphi:[11,29,30,32],must:[0,1,2,5,6,8,10,12,13,14,27,30,31,33,34,35,36,37],mut_add:2,mutat:[7,34],mutual:[1,3,6,13,33,34,35],mx_:27,myenv:[0,2,3,4,7,8,11,13,30,31,32,34,36,37],myriad:[0,15,22,30],mz1:27,mz2:27,n1:23,n2:23,n:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,23,24,25,27,30,31,32,33,34,35,36,37],n_0:[12,27,36,37],n_:[1,2,3,8,12,27,36,37],n_boostrap:[6,10,33],n_bootstrap:[6,33],n_categori:[1,3,37],n_cluster:14,n_compon:11,n_epoch:[13,35,36],n_estim:10,n_examples_to_gener:4,n_featur:[1,37],n_filter:3,n_hidden:2,n_hidden_neuron:[0,1,30,37],n_i:27,n_input:[0,1,3,31,37],n_instanc:9,n_iter:[34,35],n_iter_i:[7,11,34],n_job:10,n_k:14,n_l:[12,27,36,37],n_layer:1,n_m:9,n_neuron:1,n_neurons_connect:3,n_neurons_layer1:1,n_neurons_layer2:1,n_point:14,n_sampl:[6,8,9,10,14,33,36,37],n_split:[6,33,34],n_step:4,n_t:2,n_x:2,nabla:[1,13,34,35,37],nabla_:[2,13,34,35,36],nabla_w:[13,35,36],nag:[13,35,36],naimi:[0,30],naiv:[7,34],naive_kmean:14,najafi:[28,30],nall:[0,30],name:[0,1,3,4,5,6,7,8,9,10,12,13,14,15,22,23,24,27,28,30,31,32,33,34,35,36,37],nameerror:[10,15,24,33,34,35],narrow:[13,35,36],nary_f:[2,13,36],nary_op_arg:[2,13,36],nary_op_kwarg:[2,13,36],nary_oper:[2,13,36],nation:[1,5,31,32,33,37],nativ:[22,30],natur:[0,1,4,8,9,12,13,24,25,27,29,30,34,35,36,37],navier:[12,36,37],nb:27,nb_:23,nbconvert:30,nd:14,ndarrai:[2,6],ndef:13,ne:[9,10,23,27,31],nearest:[1,3,6,11,37],nearli:[13,34,35],neat:30,neatli:35,neccesari:[6,33],necess:2,necessari:[0,1,3,4,8,14,30,37],necessarili:[0,4,11,27,30],necesserali:[5,32,33],neck:[7,34],need:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,21,23,25,27,31,32,33,34,35,36,37],neg:[0,1,3,5,6,7,10,13,23,27,30,32,33,34,35,36,37],neg_mean_squared_error:[6,33,34],neglect:27,neglig:27,neighbor:[3,6,11],neither:[4,13,35,36],neq:[13,14,27,34,35],nervou:[12,36,37],nest:[2,9,12,36,37],nesterov:[13,35,36],net:[2,4,12,36,37],netlib:[23,30],network:[0,9,13,21,22,29,31,35],neural:[0,13,21,22,29,31,34,35],neural_network:[0,1,2,30,36,37],neuralnetwork:[1,37],neuralnetworksanddeeplearn:37,neuron:[1,2,3,4,12],neutral:[0,30],neutron:[0,30],never:[1,3,4,6,9,27,33,37],new_box:[2,13,36],new_chang:[13,35,36],new_hobbit:30,new_root:[2,13,36],new_trac:[2,13,36],new_tracing_count:[3,4],newaxi:[0,3,6,9,33,34],newli:[0,30],newton:[1,7,8,13,27,37],next:[0,1,2,3,4,5,6,8,9,13,14,21,30,31,32,34,35,37],next_guess:[13,35],next_input:4,nf8_grad:13,nfrom:13,ng:[1,37],ngini:9,ni:14,nice:[0,1,5,11,30,31,32,33,37],nielsen:[25,37],nimport:13,niter:[13,34,35,36],nitric:[0,31],nlambda:[0,5,6,32,33,34],nlp:29,nm:27,nm_n:[0,30],nmse:[6,33],nn:[2,5,6,12,23,32,33,36,37],nn_model:1,nnmin:2,node:[1,2,3,9,10,12,25,36,37],node_constructor:2,nois:[0,4,5,6,8,9,10,13,15,16,19,24,30,31,32,33,34,35],noise_dimens:4,noisi:[1,6,19,24,33,37],non:[0,1,3,4,5,6,7,9,10,11,12,13,14,23,24,27,30,31,32,33,34,35,36,37],noncommerci:[25,33],none:[0,1,2,3,4,5,9,10,13,27,30,31,32,33,34,35,36],nonlinear:[3,6,8,9,11,12,33,36,37],nonneg:[6,9,13,33,34,35],nonparametr:6,nonsens:27,nonsingular:23,nonumb:[3,7,8,13,23,34,35,36],nonxla:[3,4],nor:[1,4,13,35,36],norm:[0,1,5,6,8,11,13,17,30,31,32,33,34,35,36,37],normal:[3,4,5,6,7,8,9,10,11,12,13,15,16,18,19,22,23,24,25,27,30,31,32,34,35,36,37],normali:[23,30],norvig:30,norwai:[6,24,25,30,36],notat:[0,2,5,6,13,14,27,30,31,32,33,35],note:[0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,19,21,22,23,24,25,27,29,30,34,35,36,37],notebook:[0,1,3,9,15,22,24,25,30,33,37],notesexercise5week452022:30,notessep14:[19,34],notessep28:35,noth:[1,2,5,8,12,14,27,31,32,36,37],notic:[4,5,12,13,23,27,30,32,35,36,37],notimplementederror:2,notion:3,novel:[3,6,10,34],novemb:[1,26,28,30],now:[0,2,4,5,6,7,8,10,11,12,14,15,16,17,21,22,23,24,25,27,30,31,34,37],nowadai:[0,1,3,9,22,30],nox:[0,31],np:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,23,24,27,30,31,32,33,34,35,36,37],npr:2,nprint:13,nsampl:[6,9,33,34],nt:2,nthi:[0,30],ntrained_model:6,nu:27,nuclear:[5,31],nuclei:[0,27,30],nucleon:[0,30],nucleu:[0,30],num:4,num_allow_arg:[0,30],num_coordin:2,num_hidden_neuron:2,num_it:2,num_neuron:2,num_neurons_hidden:2,num_output:[3,4],num_point:2,num_tre:10,num_valu:2,number:[1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,21,23,24,25,26,28,30,32,33,34,37],numberid:[7,34],numberparamet:3,numer:[0,5,6,9,10,11,12,13,17,22,23,29,30,31,32,33,34,35,36,37],numpi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22,24,27,31,32,33,34,37],numpy_vjp:2,numpy_wrapp:2,nunmpi:[5,31],nvalu:9,nx:[2,13],nx_test:6,nx_train:6,nx_train_mean:6,ny:27,ny_pr:6,ny_train:6,ny_train_mean:6,o:[0,6,7,8,9,11,15,23,28,29,30,31,34],obei:[6,11,13,31,32,33,35],object:[0,1,2,4,8,10,13,23,30,31,34,35,36],obliqu:[5,31],observ:[0,1,3,5,6,7,8,9,10,11,12,13,14,27,32,33,34,35,36,37],obtain:[0,1,5,6,7,8,9,10,12,13,14,17,21,23,24,25,27,30,31,32,33,34,35,36,37],obviou:[5,6,11,27,31],obviouli:30,obvious:[0,4,5,6,21,23,25,30,32,33],oc:31,occupi:[0,31],occur:[0,6,8,9,23,27,30],oct:25,octob:[20,21,26,28,30,36],od:0,odd:[0,3,7,30,31,34],odenum:2,odesi:2,oen:0,off:[1,3,4,5,9,13,19,27,32,33,35,36,37],offer:[6,11,22,23,26,28,30,33],offic:[28,30],offici:[26,30],often:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,16,22,23,27,30,31,33,34,35,36,37],ofter:[23,30],ol:[0,13,15,16,17,18,21,25,30,31],old:[1,5,10,13,32,33,34,35,37],ols_fit:33,ols_fit_beta:33,ols_sk:6,ols_svd:6,olsbeta:[0,5,32],omega:[2,3,6],omega_0:3,omit:[0,5,30,31,32,33],on_train_batch_begin:[3,4],onc:[1,6,9,11,13,33,34,35,36],one:[0,1,3,4,5,6,7,8,9,10,11,13,14,19,21,22,23,24,25,27,28,30,31,32,33,36],onehot:[1,37],onehot_vector:[1,37],onehotencod:9,ones:[0,2,5,6,8,9,10,11,13,23,24,30,31,32,33,34,35],ones_lik:4,onl:3,onli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,19,23,24,25,27,30,31,32,33,34,35,36,37],onlin:[11,26],onto:[5,11,31],op_nam:[3,4],open:[0,1,4,6,7,9,15,22,24,26,28,30,33,34],oper:[0,1,3,5,6,10,11,12,13,15,22,27,30,31,32,33,35,36,37],operation:27,oplu:27,opmiz:[13,35,36],opportun:[0,30],oppos:[6,13,35,36],opposit:[1,5,8,31],opt:[1,5,25,30,32],optim:[0,2,3,4,5,6,7,9,10,11,14,15,16,17,18,19,21,24,25,32,33],optimis:[1,3],optimizer_v2:3,option:[0,1,3,5,6,7,8,11,21,23,24,25,31,32,33,34,37],optionalxlacontext:[3,4],optmiz:[1,8,13,31,35,36,37],oral:30,orang:0,order:[0,1,2,3,5,6,7,8,9,10,11,12,15,16,21,23,24,25,27,30,31,32,33,34,37],ordinari:[0,2,3,7,11,13,15,16,17,19,21,22,25,33,34,35,36],ordinrari:33,oreilli:29,org:[0,3,4,7,11,22,23,29,30,34,35,36],organ:[6,7,10,23,33,34],orient:[1,5,27,31,32],origin:[0,3,5,6,8,11,12,13,23,30,31,33,35,36,37],orthogn:[5,31],orthogon:[0,5,6,8,11,13,17,23,30,31,32,35],orthonorm:[5,31,32],os:[0,1,4,5,6,7,8,9,28,30,31,32,33,34],oscar:1,oscil:[3,13,35,36],oslo:[0,15,22,24,25,26,28,30,31,32,33,34,35,36,37],osx:[0,15,22,24,30],other:[0,1,2,3,5,6,7,8,10,13,14,15,19,22,24,25,26,27,28,29,32,33,35],otherwis:[0,1,4,7,13,23,25,30,31,34,35,36,37],ouput:[5,7,12,32,33,34,37],our:[1,2,3,6,7,8,9,10,12,14,15,16,17,18,19,21,22,23,24,25,27,32,33,36],ourmodel:0,ourselv:[0,5,6,8,11,13,30,31,32,33,34,35],out1:2,out2:2,out:[0,1,2,4,5,6,7,8,9,10,11,12,13,16,22,23,24,25,27,30,31,32,33,34,35,36,37],out_fil:9,outcom:[0,7,9,10,12,27,31,34,37],outdoor:9,outer:[6,12,13,37],outfil:4,outgrad:2,outlier:[0,8,30,31],outlin:[6,10,11,33],outlook:9,outperform:10,output:[0,1,3,4,5,6,7,8,9,10,12,13,16,23,24,25,27,30,31,32,33,34,35,36,37],output_bia:[1,37],output_bias_gradi:[1,37],output_shap:4,output_weight:[1,37],output_weights_gradi:[1,37],outputlayer1:[12,36,37],outputlayer2:[12,36,37],outsid:4,over1:[13,35,36],over:[0,1,3,4,5,6,9,10,12,13,23,24,30,31,32,33,34,35,36,37],overal:[1,10,37],overcast:9,overcom:[12,13,35,36,37],overdetermin:[0,30],overfit:[0,1,3,6,9,10,13,33,35,36,37],overflow:[1,5,32,33,37],overhead:[12,37],overlap:[3,7,8,9,34],overlin:[0,5,6,9,10,11,14,23,30,31,32,33],overst:[0,30],overtrain:4,overview:[3,34],own:[4,5,6,8,12,13,21,22,23,24,32,33,35,36,37],owner:[0,31],ownmsepredict:0,ownmsetrain:0,ownridgebeta:[0,6,32],ownypredictridg:0,ownytilderidg:0,oxid:[0,31],p0:2,p1:2,p:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,17,23,27,30,31,32,33,34,35,37],p_:[2,4,8,9],p_hidden:2,p_i:[5,27,32,33],p_j:27,p_n:27,p_output:2,p_x:27,pack:[0,30],packag:[0,1,2,3,4,5,7,8,11,13,15,21,22,24,25,27,31,32,34,35,36,37],pad:[3,4],page:[0,22,30],pai:[0,1,9,13,35,36],pair:[0,2,3,9,22,27,30,31],pamilla:30,panda:[0,4,5,6,7,9,11,15,22,24,32,33,34],panel:30,paper:1,paradigm:[0,30],parallel:[3,4,10,13,22,23,30,35,36],param:[2,4],param_distribut:34,param_grid:34,paramat:2,paramet:[0,1,2,3,4,5,6,7,8,9,10,12,13,16,17,18,19,21,24,25,27,32,33,37],parameter:[0,6,10,24,30,31],parametr:[0,6,15,16,30,31,33],paramt:[3,5,32,33],parent:2,parent_argnum:2,parser:[0,30],part:[0,1,3,5,6,10,17,18,21,23,26,27,28,30,32,33,36],partial:[0,1,5,6,7,8,10,11,12,13,16,27,30,31,32,33,34,35,37],particip:[22,26,28,30],particl:[0,4,13,27,30,35,36],particular:[0,1,2,3,5,6,9,10,11,12,13,16,24,27,29,30,31,32,33,34,35,36,37],particularli:[5,6,8,11,13,27,31,33,34,35,36],partit:[1,4,9,37],partli:[6,30],pass:[2,3,12,14,34],password:[24,25],past:[10,27],patch:[6,27,33],path:[0,4,6,7,9,15,22,30,31,33,34],patient:[7,34],patter:4,pattern:[0,3,4,12,26,29,30,36,37],pauli:[0,30],pc:[11,22],pca:[0,7,22,30,31,34],pd:[0,4,5,6,7,9,11,30,31,32,33,34],pde:2,pdf:[0,3,4,5,6,9,19,20,24,25,29,30,32,33,34,35],pedagog:[0,30,31],penal:[6,31,32,33],penalti:[6,13,24,31,32,33,34,35],penros:[5,6,32],pentagon:[13,34,35],peopl:[0,1,9,13,22,31,35,36,37],per:[0,1,6,26,28,30,31,33],percentag:[0,10,11,28,31],perceptron:[0,1,7,30,34],peregrin:30,perfect:[0,1,13,30,35,36,37],perfectli:[4,6,33],perform:[0,2,3,4,5,6,8,10,11,12,13,14,15,16,17,19,21,22,23,24,25,27,30,31,32,33,34,35,36],performac:4,perhap:[0,5,13,30,31,32,34,35],perimet:[1,9],period:[1,4,27,37],permut:11,persist:[13,35,36],person:[5,6,7,26,28,30,31,32,33,34],perspect:29,pertin:[12,25,37],petal:[8,9],peter:29,phantom:27,phase:[6,12,36,37],phenomena:27,phi:8,phi_k:8,philosophi:[13,35],phone:[28,30],photo:4,php:25,phrase:[0,30],physic:[0,1,4,7,12,13,25,27,28,29,30,31,32,33,34,35,36,37],physicist:25,pi:[2,3,5,6,7,9,12,13,27,32,33,34,35,36,37],pick:[1,9,10,11,13,14,35,36,37],pickl:1,pictur:[0,30],pie:[22,30],piec:[11,14],pillow:[0,15,22,24,30],pinv:[5,6,13,31,32,33,35,36,37],pip3:[0,1,15,24,30],pip:[0,1,15,22,24,30],pipelin:[0,6,8,10,31,33],pippin:30,pit:4,pitfal:[6,31,32],pitt:[12,36,37],pixel:[1,3,4,37],pixel_height:[1,3,37],pixel_width:[1,3,37],place:[0,4,6,8,13,23,24,30,33,34,35],plai:[0,3,4,5,6,8,11,22,30,31,32,33,34],plain:[8,10,12,13,14,21,25,34,35,37],plan:[6,9,28,29,30],plane:[8,9],plateau:[5,32],platform:[3,4,22,30],plausibl:[12,36,37],pleas:[7,11,13,24,25,28,30,31,34,35,36],plenti:1,plethora:[3,12,36,37],plot:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,21,22,23,24,25,27,30,31,32,35,36,37],plot_confusion_matrix:[7,10,34],plot_count:6,plot_cumulative_gain:[7,10,34],plot_data:1,plot_dataset:8,plot_decision_boundari:[9,10],plot_import:10,plot_max:4,plot_min:4,plot_model:4,plot_numb:4,plot_predict:8,plot_regression_predict:9,plot_result:4,plot_roc:[7,10,34],plot_surfac:[2,6,13,24,35],plot_train:9,plot_tre:[9,10],plt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,24,27,30,31,32,33,34,35,36,37],plu:[0,3,5,7,30,31,32,34],pm:[8,33],pmatrix:2,pml:29,pn:3,png:[0,4,6,7,9,30,31,33,34],point:[0,1,2,3,5,6,7,8,9,10,11,13,14,15,16,17,19,23,24,27,28,30,31,33,34,35,36,37],point_1:4,point_2:4,poisson:[22,27,30],poli:[6,8,33,34],poly100_kernel_svm_clf:8,poly3:0,poly3_plot:0,poly3dcollect:[13,35],poly_featur:[8,9],poly_features10:9,poly_fit10:9,poly_fit:9,poly_kernel_svm_clf:8,polydegre:[0,5,6,10,31,32,33],polygon:[13,34,35],polym:[12,36,37],polymi:24,polynomi:[0,5,6,7,8,9,10,11,15,16,17,19,21,24,25,30,31,33,34],polynomial_featur:[6,33],polynomial_svm_clf:8,polynomialfeatur:[0,6,8,9,31,33,34],polytrop:[0,6,30,33],pool:3,pool_siz:3,poor:[1,13,34,35,36],poorli:[0,31],pop:2,popul:[0,5,30,31,32,33],popular:[0,1,3,6,7,8,9,11,12,15,22,23,24,27,30,31,34,36,37],popularli:[0,30],portabl:10,portion:[11,13,35,36],pose:[0,4,5,6,11,27,30,33],posit:[0,1,2,3,5,7,8,10,11,13,14,17,23,27,30,31,32,33,34,35,36,37],possibl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,15,19,22,23,24,25,27,28,30,31,32,33,34,35,36,37],possible_gradient_typ:[3,4],possible_gradient_types_non:[3,4],possibletapegradienttyp:[3,4],posterior:[5,32,33],postpon:[0,30,31],postscript:[24,25],postul:[5,32,33],potenti:[0,3,5,6,12,13,30,31,32,33,35,36,37],pott:[12,36,37],power:[0,1,5,6,8,9,12,13,30,31,33,35,36,37],pp:[5,6,18,32,33,34],practic:[0,5,6,7,8,24,25,27,31,32,33,34],practition:[0,1,3,30],pre:30,preced:[1,11,12,27,36,37],preceed:4,preceq:8,precis:[0,2,5,11,13,23,24,25,27,30,31,32,33,35,36],pred:[6,33,35,36],predicit:0,predict:[0,1,5,6,7,8,9,10,15,16,22,24,29,30,31,32,33,34,36,37],predict_prob:[1,37],predict_proba:[7,10,34,36,37],predictor:[0,5,6,7,9,10,11,30,31,32],prefer:[0,1,6,8,9,11,13,15,22,24,25,30],prepar:[0,6,23,24,25,30,31],preprocess:[0,4,6,7,8,9,10,11,32,33,34],prerequisit:0,prescript:[24,25],presenc:[13,35,36],present:[0,5,6,7,9,12,13,23,24,25,27,30,31,32,35,36,37],preserv:[3,11,23],press:[13,29,34,35],pretrain:[1,4],pretti:[0,4,8,9,15,22,24,30],prev_centroid:14,prevent:[13,27,35,36],previou:[0,1,2,3,4,5,6,8,10,11,12,13,23,24,25,27,31,34,35,36,37],previous:[2,3,9,10,27],price:[0,4,9,13,31,35,36],primal:8,primari:[0,7,30,34],prime:27,primit:2,princip:[0,5,7,22,30,31,34],principl:[0,6,7,8,14,30,33,34],print:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,23,27,30,31,32,33,34,35,36,37],print_funct:[8,9],printout:[0,30],prior:[0,5,6,30,31,32,33],privat:[0,30],pro:25,prob:[1,27],probabilist:[0,29,30,31],probabl:[0,1,3,4,6,7,10,13,22,30,31,34,35,36,37],problem:[0,3,4,5,6,7,8,9,10,11,12,16,17,22,23,24,25,27,33],probml:29,proce:[0,5,6,7,8,9,10,11,13,23,30,31,32,33,35],procedur:[2,4,5,6,8,10,11,13,24,31,32,33,34,35,36],proceed:23,process:[0,2,4,6,9,10,12,13,15,22,23,24,27,29,30,33,34,35,36],prod:29,prod_:[1,5,7,32,33,34,37],produc:[0,3,4,5,6,9,10,11,12,13,22,23,24,27,30,31,32,33,35,36,37],product:[0,1,3,5,6,7,8,12,13,16,22,23,30,31,32,33,34,37],profess:[0,30],profil:[3,4],profile_util:[3,4],progag:25,program:[0,1,4,5,6,8,12,14,15,16,22,23,26,27,28,30,31,33,36,37],programm:23,progress:[1,4,14,35],prohibit:[6,33],project1:[6,24],project:[0,1,2,3,5,11,13,17,18,19,20,21,22,26,28,31,32,33,35,36,37],project_root_dir:[0,6,7,9,30,31,33,34],promin:[12,36,37],promis:8,promot:[28,30],prone:9,pronounc:[13,22,30,35,36],proof:[0,11,12,13,30,33,34,35,37],propag:[2,3,13,25,35,36],proper:[0,2,6,7,24,30,33],properli:[1,6,8,10,13,24,25,35,36],properti:[0,1,3,12,13,16,17,23,30,33,35,36,37],proport:[0,1,5,9,11,13,16,27,30,31,35,36,37],propos:[1,4,6,10,24,25,30],propto:[5,13,32,33,34,35,36],proton:[0,30],prove:[3,13,34,35,36],provid:[0,1,3,4,5,6,8,9,10,12,13,15,22,23,24,25,27,30,31,32,33,34,35,36,37],proxi:[1,13,35,36],prune:9,pseudo:[23,27,35],pseudocod:[24,25],pseudoinv:[5,32],pseudoinvers:[5,6,32],pseudorandom:[6,27,33],psycholog:[0,30],pt:[13,35],ptratio:31,punish:[0,1,30,37],pure:[3,9,27],purest:9,puriti:9,purpos:[0,3,10,12,14,30,31,36,37],put:[1,30],py:[0,1,2,3,4,5,6,7,8,11,13,24,30,31,32,33,34,35,36,37],pycod:30,pydata:22,pydot:9,pyhton2:30,pylab:[0,7,30,34],pylint:[3,4],pypi:22,pyplot:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,24,27,30,31,32,33,34,35,36,37],pythagora:[5,32,33],python2:[0,15,24,30],python3:[0,2,3,4,7,8,11,13,15,22,24,30,31,32,34,36,37],python:[1,2,3,4,5,6,8,11,12,13,14,16,21,24,25,27,31,32,35,36,37],pytorch:[0,22,24,25,30],pywrap_tf:[3,4],q:[5,6,8,11,27,31,33],qp:8,qquad:[2,11,13,23,35,36],qr:[5,6,23,31],quad:[1,13,23,35,37],quadrat:[0,8,9,13,15,16,30,35],qualit:[4,9,24,25,27],qualiti:[0,9,15,16,22,30,31],quantifi:1,quantil:10,quantit:[0,6,9,24,25,30,33],quantiti:[0,2,5,6,7,9,10,11,12,14,16,23,27,30,31,32,33,34,37],quantum:[4,12,29,30,36,37],quartil:[0,31],quench:5,queri:9,question:[0,5,6,9,11,12,13,24,28,30,31,32,33,35,36,37],qugan:4,quick:[4,27],quick_execut:[3,4],quickli:[1,3,9,11,13,34,35],quit:[1,5,6,9,10,12,31,33,36,37],quot:[4,30],r2:[0,5,6,25,30,31,32,34],r2_score:[0,30,31],r2score:[0,30],r:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,23,24,27,31,32,33,34,35,36,37],r_1:9,r_2:9,r_j:9,r_m:9,rad:[0,31],radial:[0,8,12,31,36,37],radioact:27,radiu:[0,1,9,31],rag:2,rain:9,rais:[0,2,13,30,32,36],ramp:1,ran0:27,ran1:27,ran2:27,ran3:27,rand:[0,4,5,6,9,10,13,15,16,23,30,31,32,33,34,35,36],randint:[6,9,13,33,35,36],randn:[0,1,2,5,6,9,11,13,15,16,30,31,32,33,34,35,36,37],random:[0,1,2,3,4,5,6,8,9,13,14,15,16,22,23,24,30,31,32,33,35,36,37],random_forest_model:10,random_index:[13,35,36],random_indic:[1,3,37],random_st:[0,7,8,9,10,11,31,34,36,37],randomforestclassifi:10,randomizedsearchcv:34,randomli:[1,6,9,13,14,33,34,35,36,37],randuniform:34,rang:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,23,27,30,31,32,33,34,35,36,37],rangl:[0,6,11,27,30,31],rangle_x:27,rank:[5,31],rankdir:4,raphson:[1,8,13,37],rapidli:[0,30],rare:[1,13,30,33,34,35,36,37],rate:[0,1,2,3,4,8,9,10,12,13,21,25,31,34,37],rather:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,23,27,30,31,32,33,34,35,36,37],ratio:[4,7,9,10,11,34],rational:[0,30],ravel:[5,6,7,8,9,10,11,13,23,31,33,34,35],raw:3,raw_df:31,rbf:[8,11,12,36,37],rbf_kernel_svm_clf:8,rbf_pca:11,rc:[0,27,31],rcond:[0,30,31],rcparam:[0,1,3,7,8,9,10,27,30,34,37],re:[2,4,13,34,35],reach:[1,4,5,6,7,9,10,11,12,13,14,32,33,34,35,36,37],read:[0,2,3,4,5,6,7,8,11,12,16,21,23,24,25,26,27,29,32,34,35,36,37],read_csv:[0,6,7,9,30,31,33,34],read_fwf:[0,30],reader:[0,6,23,27,30,31,32],readi:[0,1,5,6,8,10,11,12,23,24,30,32,33,37],readili:[1,37],readthedoc:22,real:[0,1,2,4,7,10,11,12,13,23,31,33,34,36,37],real_loss:4,real_output:4,realist:8,realiti:27,realiz:[1,12,36,37],realli:[0,1,30],rearrang:[13,35,36],reason:[0,1,3,4,10,13,29,30,34,35,36],reassign:1,recal:[5,6,9,10,11,12,23,27,30,31,32,33,34,35,37],recast:3,receiv:[1,3,10,12,27,36,37],recent:[0,1,2,3,4,6,9,10,13,15,24,29,30,32,33,34,35,36],recept:[3,12,36,37],receptive_field:3,recip:[0,6,7,23,24,25,30,31,34],reciproc:[5,32],recogn:[0,4,5,10,30,32,33],recognit:[0,1,3,12,26,29,30,36,37],recommend:[0,2,3,4,5,6,8,13,15,18,21,22,23,24,25,29,32,33,37],reconsid:9,reconstruct:11,record:[10,20,24,25,26,28,30,35,36],rectangl:[9,13,34,35],rectangular:[5,31],rectifi:[1,3,12,36,37],recur:[0,22,30],recurr:[0,1,22,30],recurs:[9,22,23,30],red:[0,3,4,6,8,9,33,35],redefin:[0,10,30,31],redefinit:32,reduc:[1,3,5,6,9,10,11,13,30,32,33,34,35,36,37],reduct:[0,10,11,22,27,30,31],refer:[0,1,2,3,5,6,7,11,12,13,14,20,23,24,25,29,30,31,33,34,35,36,37],referenc:2,refin:[12,36,37],refit:[6,33],reflect:[0,1,4,5,24,25,27,30],refresh:[22,30],refreshprogrammingskil:30,reg:[10,11],regard:[1,9,13,35],regardless:[12,36,37],region:[3,4,6,9,12,24,36,37],regist:[6,24,27],reglasso:[5,32],regr_1:[0,9],regr_2:[0,9],regr_3:[0,9],regress:[1,8,11,12,15,16,21,22,23],regressor:[0,7,10,30,34],regridg:[0,5,6,32,33,34],regular:[0,3,4,5,6,7,9,13,17,25,28,30,31,32,33,35,36],reilli:[0,15,29,30],reinforc:[0,8,22,30],reiter:1,reject:7,rel:[0,4,6,7,9,12,13,27,30,31,33,34,35,36,37],relat:[0,1,3,4,5,11,13,14,23,27,30,32,33,35,36],relationship:[0,4,9,30],relativeerror:[0,30,31],releas:[1,3,4,13,22,24,25,30,33,35],relev:[0,1,5,7,11,15,21,22,24,25,27,30],reli:[0,6,8,30],reliabilti:[24,25],reliabl:[7,27,34],relu:[3,4,25,37],remain:[1,2,4,6,12,23,27,31,32,33,34,36,37],remaind:27,reman:2,remark:1,rememb:[0,8,13,23,24,25,30,35,36],remind:[0,5,11,13,23,27,31,32,33],remov:[0,4,5,6,30,31,32,33],render:[0,30,31],reorder:[5,7,31,32,34],reorgan:[0,30],repeat:[0,1,3,4,5,6,9,10,11,13,14,21,23,24,25,27,30,32,33,34,35,36,37],repeated:30,repeatedli:[0,6,10,13,33,35,36],repet:3,repetit:[6,30,31,33,34,35],rephras:[13,34,35],replac:[0,1,3,4,5,6,10,12,14,15,16,21,22,24,25,30,31,32,33,34,37],replica:[6,33],repo:[24,25],report:[20,30,35,36],reportexampl:[20,24],reportsampl:20,repositori:[0,4,24,25,30,31],repres:[0,1,2,3,4,5,6,7,8,9,10,12,13,25,27,30,31,32,33,34,35,36],represent:[0,1,3,6,27,30,33,34,37],representd:3,reproduc:[0,5,6,9,12,15,16,22,24,27,30,31,37],repuls:[0,30],request:[0,13,30,35,36],requir:[0,1,3,4,5,6,8,9,11,12,13,17,23,30,31,32,33,34,35,36,37],res1:2,res2:2,res3:2,res_analyt:2,res_analytical1:2,res_analytical2:2,res_analytical3:2,resaml:[6,24],resampl:[0,7,10,19,22,30,31,34,35],rescal:[0,11,12,31,36,37],rescu:[5,32,33],reseach:[6,24],research:[0,4,13,22,29,30,35,36],resembl:[6,27,33],reserv:[1,5,6,27,32,33,37],reshap:[0,1,2,3,4,6,8,9,10,15,16,23,30,31,33,37],residenti:[0,31],residu:[0,5,13,30,35],resiz:[5,31],resourc:30,respect:[0,1,2,3,5,6,7,8,10,11,12,13,14,16,17,24,27,30,31,32,33,34,35,36,37],respond:[12,36,37],respons:[0,7,9,12,30,31,34,36,37],rest:[0,5,31],restat:[0,12,30,37],restor:4,restored_discrimin:4,restored_gener:4,restrict:[0,3,9,12,30,36,37],result:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,21,22,23,24,25,27,30,33,34,35,36,37],retail:[0,31],retain:[5,6,31,33,34],rethink:33,return_data:14,return_sequ:4,return_x_i:9,reus:[1,3,6,18,19,20,24,25],reveal:[0,12,30,36,37],revers:[1,23],review:[22,23],revisit:[14,37],revolut:30,reward:[0,4,30],rewrit:[0,3,5,6,7,8,10,11,12,13,19,23,24,27,32,34,35,36,37],rewritten:[2,6,8,10,27,33],rewrot:[13,34,35],rf:10,rgb:3,rgoj5yh7evk:22,rh:[6,33],rho:[0,10,13,30,35,36],rho_1:10,rho_2:10,rho_m:10,rich:[0,30],ride:9,rideclass:9,ridedata:9,ridg:[7,11,13,21,22,25,30],ridge_fit:33,ridge_fit_beta:33,ridge_sk:6,ridgebeta:[5,32],ridgecv:34,right:[0,1,2,3,5,6,7,8,9,10,12,13,14,16,17,19,23,24,27,30,31,32,33,34,35,36,37],right_sid:2,rightarrow:[0,1,5,6,8,11,12,13,27,30,31,33,34,35,36,37],rigor:[0,30],ring:6,rise:[0,30],risk:[0,13,15,16,30,34,35,36],rival:4,river:[0,31],rm:[0,27,31],rmse:[0,31],rmsporp:[13,35,36],rmsprop:[1,3,4,13,21,25],rnd_clf:10,rng:27,rnn1:4,rnn2:4,rnn:[4,12,36,37],rnn_2layer:4,rnn_input:4,rnn_output:4,rnn_train:4,rntrick1:27,rntrick2:27,rntrick3:27,rntrick4:27,ro:[0,13,30,34,35,36],robert:[18,24,29],robust:[0,30],robustscal:[0,31],roc:[7,10],role:[0,2,5,6,8,22,30,31,32,33,34],roll:6,room:[0,28,30,31],root:[0,5,9,13,27,30,31,32,34,35,36],rot:30,rotat:[1,8,9,10],rotation_matrix:9,roughli:[1,3],round:[0,7,9,13,31,34,35,36],routin:[13,23,30,34,35],row:[0,1,2,5,6,7,9,11,23,30,31,32,33,34,37],rr:[5,31],rrr:[5,31],rug:[13,34,35,36],rule:[0,1,5,6,13,24,30,31,32,33,35,36],run:[0,1,2,3,4,5,6,8,9,11,13,15,22,24,25,30,31,32,33,34,35,36],runtim:[1,6,14],runtimewarn:[1,6,33,37],russel:30,rust:[0,15,22,23,30],rv_frozen:34,rvert:[1,37],rvert_2:[1,37],s:[0,1,2,3,4,5,6,7,9,11,12,13,16,17,18,21,22,23,24,25,27,30,31,32,37],s_1:6,s_:[3,6],s_i:[6,7,34],s_j:6,s_k:6,saddl:[13,34,35,36],sai:[0,1,2,3,4,5,6,7,8,9,10,11,12,23,24,27,30,31,32,33,34,37],said:[6,9,13,34,35],sake:[0,5,7,11,30,31,32,34],sale:[0,30],sam:30,same:[0,1,2,3,4,5,6,8,9,11,12,14,17,23,24,27,30,31,32,34,37],samm:10,sampl:[0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19,22,23,24,27,30,31,32,33,34,35,36,37],sample_vari:14,sample_weight:[3,4],sampleexptvari:27,samwis:30,sastri:11,satisfactori:[0,30],satisfi:[1,2,3,6,8,13,17,23,27,33,34,35,37],satur:[1,6,33],save:[0,4,6,7,9,13,30,31,33,34,35,36],save_fig:[0,6,7,9,10,30,31,33,34],savefig:[0,4,6,7,9,27,30,31,33,34],savetxt:4,saw:[5,31],scalabl:10,scalar:[2,5,6,10,13,31,32,33,36],scale:[0,1,3,5,6,7,8,9,10,11,12,13,15,16,17,21,22,23,24,25,28,30,32,34,35,36,37],scale_mean:4,scale_std:4,scaler:[0,7,8,9,10,11,31,33],scan:[5,7,32,33,34],scari:[5,32,33],scatter:[0,1,6,7,8,9,14,30,31,32,33,34],scenario:[6,13,34,35,36],schedul:[13,28,35,36],scheme:[1,13,34,35,36],schrage:27,scienc:[0,1,10,12,13,22,26,27,28,29,31,34,35,36,37],scientif:[0,15,22,24,25,30,35,36],scientist:[0,30],scikit:[3,5,6,7,8,9,10,13,21,22,23,24,25,26,29,36],scikit_learn:[0,16],scikitlearn:30,scikitplot:[7,10,34],scipi:[0,3,5,6,13,15,22,23,24,30,31,32,33,34,35],scl:6,score:[0,1,3,6,7,9,10,11,15,16,24,25,28,30,31,33,34,35,36,37],scores_kfold:[6,33,34],scratch:[1,13,36,37],sdg:[13,35,36],seaborn:[0,1,3,6,7,21,25,30,31,34,37],seamless:[0,15,22,24,30],search:[0,1,3,5,9,13,30,32,35,36,37],sec:6,second:[0,2,3,4,5,6,7,8,9,11,12,14,15,16,22,23,24,25,27,28,30,31,33,34,37],second_mo:[35,36],second_term:[35,36],secondeigvector:11,secondli:[12,37],section:[4,11,17,23,27,31,32,34,35,36],sector:[0,30],see:[0,1,2,3,4,5,6,7,8,10,11,12,13,15,16,17,18,19,22,23,24,25,27,30,31,32,33,34,35,36,37],seed:[0,1,2,3,4,5,6,8,9,11,13,14,15,16,24,27,30,31,32,33,34,35,36,37],seed_imag:4,seek:[1,2,8],seem:[1,3,4,35,36,37],seemingli:[0,30],seen:[0,1,3,5,10,12,17,27,30,37],segment:[13,34,35],seismic:6,seldomli:[0,30],select:[1,5,6,8,9,10,11,17,24,25,26,27,28,29,30,31,32,33,37],self:[1,2,3,4,5,31,32,37],sell:4,semest:[7,26,34],semi:[8,13,34,35],semilogx:6,send:[5,12,13,28,30,35,36,37],senior:[26,28],sens:[0,4,6,8,24,30,33],sensibl:3,sensit:[0,5,6,9,13,30,31,32,33,36],sent:[2,33],sentenc:[4,12,36,37],sep:[31,33],separ:[0,1,2,4,6,8,9,12,14,15,22,24,27,30,33,36,37],septemb:[16,17,18,19,20,24,30,31,35],sequenc:[2,3,4,7,9,10,12,13,22,23,27,30,34,35,36,37],sequenti:[1,3,4,10,12,27,36,37],seri:[0,1,2,3,4,5,6,10,11,12,13,23,30,31,32,33,34,35,36,37],serif:[0,7,27,30,34],serv:[0,1,2,3,5,7,13,24,29,30,31,32,33,34,35,36],servic:[24,25],session:[1,20,24,26,28,30,33,34,35,36,37],set:[1,4,5,6,7,8,10,11,13,14,16,17,22,23,24,25,27,28,32,33,35,36],set_major_formatt:[6,24],set_major_loc:[6,24],set_tick:[1,8],set_ticklabel:1,set_titl:[0,1,2,3,7,12,14,30,34,36,37],set_xlabel:[0,1,2,3,7,12,30,34,36,37],set_xlim:[7,12,34,36,37],set_xticklabel:1,set_ylabel:[0,1,2,3,7,30,34,37],set_ylim:[7,12,34,36,37],set_ytick:[7,34],set_yticklabel:[1,6],set_zlim:[6,24],seth:4,setminu:[6,34],setosa:[8,9],setosa_or_versicolor:8,setp:[6,33],setup:[1,4,6,8,21,22,25,30,31,37],sever:[0,3,5,6,7,8,9,11,12,13,22,23,25,27,30,31,32,33,34,35,36,37],sgd:[1,3,21,25,34],sgd_clf:8,sgdclassifi:8,sgdreg:[13,34,35],sgdregressor:[13,34,35],sgn:[5,31,32],shallow:[13,35,36],shape:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,23,30,31,32,33,34,35,37],shape_bas:2,share:[1,3,30],she:[7,34],shift:[1,6,12,27,32,36,37],ship:3,shire:30,shortcom:[13,34,35,36],shorten:4,shorter:27,shorthand:[30,33],shortli:[23,30],should:[0,2,3,5,6,8,9,11,12,13,15,16,21,23,24,25,27,30,31,32,33,35,36,37],should_sync:[3,4],show:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,23,24,27,30,31,32,33,34,35,36,37],show_shap:4,shown:[0,4,5,7,8,11,12,13,23,31,34,35,36,37],shrink:[3,5,6,8,11,24,31,32],shrinkag:[5,6,31,32],shrunk:11,shuffl:[0,1,3,4,6,13,31,33,34,35,36,37],side:[0,2,5,8,12,13,23,25,30,32,33,34,35,36,37],sigh:[22,30],sigma0:27,sigma1:27,sigma2:27,sigma:[0,1,5,6,7,10,11,12,13,17,18,19,23,24,27,30,31,32,33,34,35,36,37],sigma_0:[5,31,32],sigma_1:[5,31,32],sigma_2:[5,31,32],sigma_:[5,23,30,31,32,33],sigma_fn:[7,12,34,36,37],sigma_i:[0,5,30,31,32],sigma_j:[5,17,31,32],sigma_m:[6,27,33],sigma_n:[11,27],sigma_t:[13,35,36],sigma_x:27,sigmoid:[1,2,4,7,8,10,12,25,34,35,36,37],sigmundson:[6,31,32],sign:[1,2,7,8,10,27,28,34,37],signal:[1,3,10,12,36,37],signatur:[3,4],signifi:4,signific:1,significantli:[1,13,27,34,35,36,37],sim:[4,5,6,13,18,24,27,32,33,35,36],similar:[0,1,2,3,4,5,6,7,8,9,10,11,14,17,22,23,24,25,30,31,32,33,34],similarli:[0,1,3,5,8,10,13,20,27,30,31,32],simpl:[1,2,3,5,6,7,8,10,11,12,14,15,16,17,19,22,23,24,25,27,33,37],simple_rnn:4,simplepredict:10,simpler:[0,1,5,6,7,13,16,19,21,22,24,25,30,32,35,36],simplernn:4,simplest:[0,1,3,4,9,10,12,14,30,36,37],simpletre:10,simpli:[0,1,2,4,5,6,8,9,10,11,12,15,22,23,24,25,27,30,31,32,33,36,37],simplic:[2,5,6,7,8,9,10,11,12,14,31,32,33,34,36,37],simplicti:[5,31],simplifi:[0,6,9,15,22,24,30,31,32,33],simplist:[3,6,27,33],simul:[6,33],simultan:[6,33],sin:[0,1,2,3,4,9,12,13,23,30,35,36,37],sinc:[0,1,2,3,5,6,7,8,9,10,11,13,23,27,29,30,31,32,33,34,35,36,37],sine:[3,12,36,37],singl:[0,1,2,3,5,6,7,8,9,12,13,23,25,27,30,31,32,33,34,35],singular:[0,6,13,23,24,30,32,33,34,35],sinusoid:3,site:[0,2,3,4,7,8,11,13,24,25,26,30,31,32,34,36,37],situat:[0,4,5,7,13,27,30,31,34,35,36],six:[3,27],size:[0,1,2,3,4,5,6,8,9,10,11,13,21,23,24,25,27,30,32,33,34,35,36,37],sketch:10,ski:9,skill:[0,30],skip:[3,4,11],skiprow:31,skl:[0,6,30,31,32],sklearn:[0,1,3,5,6,7,8,9,10,11,13,14,30,31,32,33,34,35,36,37],skplt:[7,10,34],sl:[6,32,34],slack:8,slice:[2,23,30],slide:[0,3,15,16,24,25,27,30,31,33,35,37],slight:[6,13,33,35,36],slightli:[1,2,3,5,6,7,10,27,31,32,33,34],slope:[8,11,12,36,37],slow:[0,2,8,13,31,34,35,36],slower:[5,23,30,31,32],slowest:23,slowli:[12,37],slp:[1,37],small:[0,1,2,3,5,6,8,9,10,11,12,13,22,23,24,27,30,31,32,33,34,35,36,37],smaller:[0,1,2,5,6,8,9,11,13,27,30,31,32,33,34,35,36],smallest:[0,4,14,15,16,30,34],smallest_row_index:14,smooth:[0,3,6,9,13,24,30,34,35],sn:[0,1,3,6,7,30,31,34,37],sne:11,sneak:30,so:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,18,19,22,23,24,25,27,28,30,31,32,33,34,35,36,37],soar:6,social:[0,30],societ:30,soft:[1,7,10,12,34,36,37],soften:8,softmax:[3,7,34],softwar:[0,8,15,22,23],sol:8,sole:[0,6,30],solid:[0,7,30,34],solut:[0,1,2,3,5,6,8,10,11,13,17,18,23,24,25,27,30,31,32,33,34,35,36],solution_ev:35,soluton:2,solv:[0,1,3,5,6,8,10,11,12,13,23,24,25,30,31,36,37],solve_expdec:2,solve_ode_deep_neural_network:2,solve_ode_neural_network:2,solve_pde_deep_neural_network:2,solveod:2,solveode_popul:2,solver:[2,7,8,9,10,11,23,34],some:[0,1,2,3,4,5,6,7,8,9,10,11,12,14,27,32,33,36,37],some_model:[6,31,32],somehow:4,someth:[0,1,3,4,7,9,11,24,25,27,30,31,34,37],sometim:[0,1,11,12,13,14,30,31,35,36,37],somewhat:[36,37],soon:[23,28],sophist:[0,30],sopt:[13,35],sort:[5,6,9,11,27,31,33],sound:[3,5,32,33],sourc:[0,1,3,6,15,22,23,24,25,27,30,31,33],space:[0,1,4,5,8,9,11,12,13,14,27,31,32,33,34,35,36,37],span:[0,3,5,9,11,23,30,31],spare:1,spars:[3,6,23,30],sparse_mtx:[23,30],sparsecategoricalcrossentropi:3,sparseobject:2,sparsiti:10,spatial:[1,2,3,12,36,37],speak:27,special:[6,7,10,12,13,23,27,30,31,32,33,34,35,37],specif:[0,1,2,3,4,5,6,7,8,9,11,12,16,22,23,24,25,27,29,30,31,32,33,34,36,37],specifi:[0,3,5,6,7,9,11,13,14,24,27,30,32,33,34,35,36],specifici:[0,10,30],spectacular:3,spectral:1,speech:[0,1,3,4,12,30,36,37],speed:[1,2,4,13,35,36,37],spend:27,spent:[24,25],sphere:[0,31],spin:6,spite:[0,30],spline:8,split:[1,3,4,5,6,8,9,10,11,14,17,24,27,32,33,34],splite:0,splitter:[1,10],spontan:27,spot:3,spread:[0,11,27,30,31],springer:[18,24,29,30,32],spuriou:[13,35,36],sqquar:32,sqrsignal:3,sqrt:[0,3,4,5,6,8,10,11,13,17,27,31,32,33,35,36],squar:[1,2,3,4,7,8,9,11,13,14,15,16,17,19,21,22,23,25,27,33,34,35,36,37],squarederror:10,squaredeuclidean:14,squash:[12,36,37],srtm:[6,24],srtm_data_norway_1:[6,24],stabil:[5,24,25],stabl:[0,4,5,6,7,9,11,22,30,31,32,34],stack:[2,3,4],stacklevel:[0,30],stage:[5,13,24,25,35,36],stai:[0,2,4,5,11,17,30,31],stand:[0,5,9,12,30,31,32,36,37],standadscal:31,standard:[0,1,4,5,6,7,8,10,12,15,16,17,19,21,23,24,25,27,30,32,34,36,37],standard_basi:2,standardscal:[0,6,7,8,9,10,11,31,32,33],stanford:[13,34],start:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,20,21,23,24,25,27,28,30,31,33,34,35,37],start_box:[2,13,36],start_nod:[2,13,36],start_tim:14,stat:[6,31,33,34],state:[1,2,4,5,6,7,8,10,11,12,13,22,25,27,31,32,33,34,35,36,37],statement:[0,7,23,34],stationari:[34,35],statist:[0,1,3,4,7,9,10,11,12,13,14,18,23,24,26,29,31,34,35,36,37],statu:[0,7,11,30,31,34],stavang:[6,24],std:[0,4,6,30,31,33],steep:[13,34,35,36],steepest:36,step:[0,1,2,3,4,6,7,9,10,11,12,13,14,21,23,24,30,37],step_fn:[7,12,34,36,37],step_length:[13,35,36],step_num:[3,4],step_siz:35,steps_list:9,steps_per_epoch:[3,4],stereo:3,still:[0,2,3,5,6,11,13,17,27,33,34,35,36],stimuli:[12,36,37],stk2100:[29,30],stk3155:[15,24,25,26,28],stk4021:[29,30],stk4051:[29,30],stk4155:[26,28],stk5000:29,stk:[29,30],stochast:[0,1,5,6,8,11,12,15,16,21,24,30,32,33,34,37],stock:4,stoke:[12,36,37],stone:[0,7,24,30,34],stop:[1,4,7,9,11,13,14,34,37],storag:[5,31],store:[0,1,2,3,6,11,13,24,27,30,35,36,37],storehaug:[28,30],str:[1,3,4,37],straight:[0,6,8,13,30,31,33,34,35],straightforward:[0,2,3,5,6,8,9,10,13,23,30,31,32,33,34,35],strategi:[0,1,9,30,37],stratifi:[6,33],strength:[0,5,14,31],stretch:11,strict:[8,13,34,35],strictli:[8,13,34,35],stride:[4,23],strike:6,string:[1,37],stroke:[7,34],strong:[3,6,9,10,12,23,27,33,36,37],strongli:[0,8,22,23,25,31],stronli:[0,31],structur:[0,1,2,3,6,9,10,12,22,30,33,34,35,36,37],stuck:[1,13,34,35,36,37],student:[0,24,25,26,28,29,30],studi:[0,3,4,5,6,7,8,11,12,13,17,19,21,22,24,25,29,30,31,32,35,36,37],studier:29,style:[0,7,9,23,30,34],sub:[9,12,36,37],subarg:[2,13,36],subdivid:[0,23,30],subfield:[0,30],subject:[6,8,27],submit:30,subplot:[0,1,3,4,6,7,8,9,10,13,14,24,30,31,33,34,35,37],subplots_adjust:[8,27],subprogram:[23,30],subract:[0,31],subroutin:[0,30],subscript:[1,37],subsequ:[1,4,5,6,12,23,27,31,33,36,37],subset:[1,6,9,12,13,22,30,33,34,35,36,37],subspac:[0,8,11,31],substanti:[9,10],substep:11,substitut:[3,6,12,23,33,36,37],subsubset:9,subtask:6,subtl:1,subtract:[0,4,5,6,11,13,17,23,24,27,32,33,35,36],subtre:9,subval:[2,13,36],succeed:[0,4,30],success:[3,7,9,13,27,34,35],successfulli:[4,9],sudo:[0,15,22,24,30],suffer:[0,1,2,5,10,30,31,32],suffici:[1,6,8,11,13,33,34,35,37],suggest:[1,13,25,29,35,36],suit:[8,12,36,37],suitabl:[0,27,31],sum:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,23,24,27,30,31,32,34,35,36,37],sum_:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,23,24,25,27,30,31,32,33,34,35,36,37],sum_i:[0,2,5,6,8,13,17,19,24,31,32,33,35,36],sum_j:6,sum_ja_:0,sum_k:[6,8,12,23,37],sum_logist:[13,35,36],sum_m:3,sum_n:3,sum_nx_:3,summar:[5,6,9,25,32,33,34,35,37],summari:[1,3,4,10,21,25,26,32,37],summat:[0,3,16,31],sundai:[17,18,19,20,21],sunni:9,superconduct:[31,32],superfici:3,superscript:[1,12,36,37],supervis:[0,5,6,7,9,12,22,30,31,33,34,36,37],supplement:[7,34],support:[0,1,9,10,11,13,22,30,31,35,36],suppos:[0,5,6,7,8,10,11,12,13,23,30,31,32,33,34,35,36,37],suppress:[5,13,32,35,36],sure:[0,1,4,6,24],surf:[6,24],surfac:[0,6,24,30],surpass:6,surpris:[0,30],surround:[3,22],survei:[0,5,6,30,31,32,33],svc:[8,9,10],svd:[0,6,11,17,30,33],svdinv:[5,32],svm:[8,9,10,11],svm_clf:[8,10],swath:[5,31],sy:[13,34,35],symbol:[1,5,11,13,22,27,30,31,32,35,36,37],symmeteri:1,symmetr:[0,5,8,11,12,13,23,30,31,35,36,37],symmetri:[6,9],sympi:[0,15,22,24,30],synonim:27,syntax:13,syntaxerror:8,system:[0,1,3,4,6,7,9,10,12,13,15,22,23,24,30,34,35,36,37],systemat:[4,6,33],t0:[3,6,13,35,36],t1:[2,13,35,36],t2:2,t3:2,t:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,24,25,27,28,30,33,34,35,36,37],t_0:[2,9,13,35,36],t_1:[13,35,36],t_:2,t_b:10,t_i:[1,2,5,12,25,31,37],t_j:[12,37],t_k:9,tabl:[9,24,25,27,28,30,36,37],tabul:[0,30],tabular:30,tackl:4,tag:[2,3,4,5,6,7,12,13,14,23,27,31,34,35,36,37],taht:[0,30],tail:27,tailor:[2,8,11,30],taiwan:[0,30],take:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,22,23,24,27,30,31,32,33,34,35,36,37],taken:[0,1,3,6,10,13,23,30,33,35,36,37],tan:3,tangent:[1,4,12,13,34,35,36,37],tanh:[1,4,7,8,12,34,35,36,37],tape:[3,4],target:[0,1,3,4,5,6,7,8,9,10,11,12,25,30,31,32,33,34,35,36,37],target_nam:9,task:[0,1,3,6,9,11,12,14,20,24,30,33,36,37],tau:[3,5,27,32,33],taught:30,tax:[0,31],taylor:[2,13,34,35],taylornr:[13,34,35],tba:35,tc:8,td:[1,6,13,24,30,33,35,37],teach:30,team:1,teaser:0,technic:[0,5,6,13,15,30,31,35,36],techniqu:[0,1,8,10,13,22,27,29,30,31,33,34,35,36],technolog:[0,1,30,37],tell:[0,4,6,10,11,13,27,33,35,36],temp1:1,temp2:1,temp:1,temperatur:[0,9,30],temporarili:1,ten:[3,17,30],tend:[3,5,6,8,9,10,12,13,14,31,32,33,35,36,37],tendenc:[0,30],tension:[6,33],tensor:[3,4],tensorflow:[0,2,4,8,14,15,22,23,24,25,26,29,30,31],term1:[5,6,11,24,31],term2:[5,6,11,24,31],term3:[5,6,11,24,31],term4:[5,6,11,24,31],term:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,24,27,30,31,32,34,35,36],termin:[0,4,5,9,10,13,15,30,31,35,36],terrain1:[6,24],terrain:[6,21,24,25],test:[3,4,5,6,7,8,9,10,13,17,19,21,23,24,27,33,34,35,36],test_acc:3,test_accuraci:[1,3,37],test_error:6,test_imag:[3,4],test_ind:[6,33,34],test_input:4,test_label:[3,4],test_loss:3,test_pr:[1,37],test_predict:[1,37],test_rnn:4,test_scor:[7,10,34],test_siz:[0,1,3,5,6,10,30,31,32,33,34,37],test_split:9,tester:32,testerror:[0,6,31,33],testi:4,testpredict:4,testx:4,text:[0,1,2,4,5,8,9,11,13,15,23,25,27,29,30,31,33,34,35,36,37],textbook:[17,21,24,25,31,33],textual:9,textur:[1,9],tf:[1,3,4,13,14,34,35],tfe_py_execut:[3,4],th:[0,1,2,5,6,7,9,12,13,14,15,16,23,24,27,30,31,32,33,34,35,36,37],than:[0,1,2,3,4,5,6,7,9,10,11,12,13,17,22,25,27,30,31,32,33,36,37],thank:[4,6,31,32],theano:[1,22,30],thei:[0,1,2,3,4,5,6,7,8,9,11,12,13,23,24,27,31,32,33,34,35,36,37],them:[0,1,3,4,6,8,9,10,11,12,13,23,24,25,30,31,32,33,35,36,37],theme:[0,30],themselv:[0,27,30],thenc:[6,33],theorem:[2,6,7,31,34,36],theoret:[0,4,10,30],theori:[0,1,3,8,9,12,13,18,22,24,29,30,32,35,36,37],thereaft:[0,5,6,11,12,15,16,17,23,24,25,30,33,37],therebi:[0,5,7,11,30,31,32,34],therefor:[0,1,2,3,4,6,7,8,11,13,27,30,31,33,34,35,36,37],therein:11,thereof:[0,6,13,30,33,35,36],theta:[1,4,13,27,35,36,37],theta_:[1,13,35,36,37],theta_i:[1,37],theta_linreg:[13,35,36],theta_t:[13,35,36],thetaand:[36,37],thetaor:[36,37],thetaxor:[36,37],thi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,22,23,24,25,26,27,29,31,32,33,34,35,36,37],thing:[0,1,2,4,5,7,9,27,30,32,33,34],think:[0,1,3,4,6,9,12,13,14,27,30,33,34,35,36,37],third:[0,3,6,13,28,30,33,34,35,36],thirti:[7,34],thorughout:30,those:[0,3,5,6,8,9,10,11,21,23,24,25,26,30,31,33],though:[1,2,3,4,13,23,27,35,36,37],thought:[6,14,24,25,27,33],thousand:[0,1,24,30,31,35,36],thread:[3,4],three:[0,1,3,5,6,8,9,12,15,23,24,26,27,28,30,31,32,33,34,36,37],threshold:[1,3,9,10,11,12,13,35,36,37],through:[0,1,2,3,4,5,6,8,11,12,13,14,22,23,27,30,31,32,33,34,35,36,37],throughout:[0,4,5,14,22,23,27,30],thu:[0,1,2,5,6,7,8,10,11,12,13,24,28,30,31,32,33,34,35,36,37],thumb:[0,6,24,30,31],thursdai:[28,30,35,36],tibshirani:[6,18,24,26,29,30,31,33],tick_param:6,ticker:[6,13,24,27,34,35],tif:[6,24],tight_layout:[1,7,34],tightli:11,tild:[0,5,6,7,11,15,16,17,18,19,24,27,30,31,32,33,37],till:[0,4,7,8,9,10,12,23,30,31,34,35,37],time:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,22,23,24,25,27,30,31,32,33,34,37],timeit:4,timer:4,tini:1,tip:3,titl:[0,1,2,3,4,6,7,8,9,10,13,24,27,30,31,33,34,35,36,37],tmp:[13,35,36],tmp_log:[3,4],tn:[2,3,7],to_categor:[1,3,4,37],to_categorical_numpi:[1,37],to_numer:[0,6,30,33],todai:3,togeth:[0,3,6,8,11,13,22,30,31,35,36],toi:[14,35,36],told:[13,35,36],toler:[2,14],tolist:4,tomographi:[12,36,37],too:[0,2,4,5,6,9,11,13,15,27,29,30,31,33,34,35,36],took:[8,30],tool:[0,1,3,6,13,22,31,33,35,36],toolbox:8,top:[0,3,5,6,9,10,18,22,30,32,33],topic:[0,5,6,7,8,22,24,25,31,32,34],topograph:24,topolog:[1,3,12,36,37],toposort:2,torkjellsdatt:[28,30],toss:[10,27],total:[0,1,2,3,4,6,7,8,10,11,12,13,14,15,16,23,25,27,28,30,31,33,34,35,37],total_loss:4,totalclustervari:14,totalscatt:14,toward:[1,2,7,12,13,24,34,35,37],towardsdatasci:[35,36],town:[0,31],tp:[4,7],tpng:9,tpu:[13,22,30,35,36],tqdm:6,tr:31,trace:[2,3,4,13,36],trace_stack:[2,13,36],traceback:[0,1,2,3,4,9,10,13,15,24,30,32,33,34,35,36],traceback_util:[3,4],tracer:[2,13,36],tracing_count:[3,4],track:[3,13,14,23,34,35,36],tract:[0,31],tractabl:[0,30,31],trade:[5,9,19,32,33],tradeoff:[0,5,19,24,30,31,32,34],tradit:[0,1,4,6,30,33,37],train:[2,3,5,6,8,9,10,11,12,13,17,19,24,25,32,33,34,35,36],train_accuraci:[0,1,3,30,37],train_dataset:4,train_end:[0,1,31,37],train_error:6,train_funct:[3,4],train_imag:[3,4],train_ind:[6,33,34],train_label:[3,4],train_pr:[1,37],train_siz:[0,1,3,31,37],train_step:4,train_test_split:[0,1,3,5,6,7,9,10,11,30,31,32,33,34,37],train_test_split_numpi:[0,1,31,37],trainabl:4,trainable_vari:4,trained_model:[6,31,32],trainerror:[0,31],traini:4,training_checkpoint:4,training_dataset:4,training_gradi:[13,35,36],training_gradient_fun:[35,36],training_loss:[35,36],trainingerror:[6,33],trainpredict:4,trainscor:4,trainx:4,trait:[0,30],trajectori:4,transfer:9,transform:[0,5,6,7,8,9,10,11,12,13,22,23,30,31,32,33,34,35,36,37],transit:[6,12,36,37],translat:[1,4,6,10,31,32,37],translate_vjp:2,transpos:[1,5,11,23,31,32,37],travers:[0,5],treat:[0,1,3,6,12,13,27,30,31,32,33,34,35,36,37],tree:[0,1,6,22,24,30,37],tree_clf:[9,10],tree_clf_:9,tree_clf_sr:9,tree_reg1:9,tree_reg2:9,tree_reg:9,trend:27,treue:7,trevor:[18,24,29],tri:[2,3,4,9,13,34,35,36],triain:0,trial:[0,2,4,6,13,27,30,33,34,35],triangl:[13,34,35],triangular:23,trick:[3,4,8,11,13,27,35,36],trickier:27,tridiagon:23,trillion:22,trivial:[0,1,5,11,27,30,32],troubl:[0,8,12,31,37],truck:3,true_beta:[6,31,32],true_divid:37,true_fun:[6,33],truli:30,tucker:8,tuesdai:[28,30,33,34,35,36,37],tumor:[7,9,25,34],tumour:[7,34],tunabl:[1,21,25],tune:[4,9,13,21,23,25,30,34,35,36],tupl:[2,13,36],turn:[0,1,5,6,7,8,9,10,11,12,13,19,23,24,27,30,31,33,34,35,36,37],tutori:[1,4],tv:2,tveito:2,tweak:[1,4,10,27],twice:[13,34,35],twist:11,two:[0,1,2,4,5,6,7,9,10,11,12,13,15,16,23,26,27,29,30,32,33,35,36,37],tx:[13,34,35,36,37],tx_1:[13,34,35],txt:4,ty:[13,34,35],type:[0,1,3,6,8,10,13,16,23,24,27,31,32,33,34,35],typeerror:[2,13,36],typic:[0,1,2,3,4,5,7,9,10,12,13,25,27,30,31,32,33,34,35,36,37],typo:[24,25],u:[0,2,5,6,8,10,11,12,17,23,30,31,32,36,37],u_:23,u_i:[12,36,37],u_m:10,ua:[0,30],ubuntu:[0,15,22,24,30],uci:[0,25,31],uio:[24,25,28,29],un:14,unari:[23,30],unary_f:[2,13,36],unary_oper:[2,13,36],unary_to_nari:[2,13,36],unbalanc:[6,9,33,34],unbias:[0,5,6,30,32,33],uncent:[6,32],uncertainti:[0,5,30,32,33],uncertitud:27,unchang:[1,3],uncorrel:[10,27],undefin:[5,31],under:[0,1,5,6,10,13,15,16,22,24,25,30,31,32,33,34,35],underdetermin:[0,30],underfit:[1,6,33],underflowproblem:[5,32,33],undergo:[5,32,33],undergradu:[26,28],underli:[0,1,9,13,27,30,35,36],underset:[4,14],understand:[0,1,3,5,6,10,13,14,22,30,31,32,34,35,36],understood:[8,13,35,36],undesir:8,undetermin:[5,8,32,33],undo:4,unexpect:[6,33],unexpected:27,unfair:[6,31,32],unfortun:[1,8,9,10],unicode_liter:[8,9],uniform:[0,1,5,6,11,13,15,16,24,27,30,31,34,35,37],uniformli:[13,27,34,35,36],unifrompdf:27,unimport:[13,34,35],union:[5,6,32,33,34],uniqu:[0,2,6,13,14,23,30,33,34,35],unique_cluster_label:14,unit:[0,1,3,4,5,10,12,27,30,31,32,36,37],unitari:[5,6,23,31],unitarili:[23,30],uniti:27,univari:27,univers:[0,1,2,13,15,22,24,25,26,28,30,31,32,33,34,35,36],unix:1,unknow:[0,23,30],unknown:[0,1,3,4,5,6,8,10,13,16,23,30,31,32,33,35,36,37],unknowwn:[12,37],unlabel:1,unless:[0,3,6,11,13,24,25,30,31,33,34,35],unlik:[1,2,3,8,13,34,35,36],unnecessarili:9,unord:3,unravel:[1,37],unrol:[3,11],unseen:[0,7,9,34],unstabl:1,unsupervis:[0,1,4,12,22,30,36,37],unsymmetr:[23,30],untak:2,until:[1,2,4,9,12,13,14,34,35,36,37],untouch:0,unusu:[12,36,37],up:[1,3,4,5,6,8,10,11,13,14,16,18,22,23,24,25,27,28,32,35,36],updat:[1,2,10,12,13,14,35,36,37],uploa:30,upload:[22,24,25,29],upon:[0,1,6,7,11,23,24],upper:[0,8,9,16,23,31],uppercas:[23,30],upsampl:4,upscal:4,us:[4,5,6,8,9,10,11,12,14,15,16,17,18,19,21,23,24,26,27,29,32,33],usa:[30,36],usag:[0,8,22,30,31],usd10000:[0,31],usd:[0,31],use_bia:4,use_multiprocess:[3,4],usecol:[0,30],useless:[1,37],user:[0,1,2,3,4,6,7,8,11,15,22,23,24,30,31,32,34,37],usernam:[24,25],userwarn:3,usetex:27,usg:[6,24],usr:27,usual:[0,3,4,7,12,13,14,30,34,35,36,37],ut:[5,32],util:[0,1,3,4,6,7,10,14,25,30,31,33,34],ux:23,v0:27,v1:27,v2:27,v:[2,4,5,6,11,13,17,22,31,32,35,36],v_0:11,va:1,val:[13,35,36],val_accuraci:3,val_loss:4,vale:2,valid:[0,1,4,7,9,10,13,22,25,27,30,31,35,36],validation_batch_s:[3,4],validation_data:[3,4],validation_freq:[3,4],validation_split:[3,4],validation_step:[3,4],valu:[0,1,2,3,4,6,7,8,9,10,12,13,14,15,16,19,22,23,24,30,35,36,37],valuat:9,valueerror:[0,2,30],valy:4,van:[0,18,24,30,31,32,33],vandenbergh:[8,13,34,35],vandermond:[0,30],vanilla:[0,6,11,14,31,32],vanish:[1,4,13,27,34,35],var_x:27,varabl:8,varepsilon:[5,6,18,24,32,33],varepsilon_:[5,6,32,33],varepsilon_i:[5,6,32,33],vari:[0,1,3,5,6,10,15,16,30,33,37],variabl:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,23,30,31,32,33,36,37],varianc:[0,1,5,7,9,10,11,13,14,18,19,22,23,25,27,30,31,34,35,36],variance_i:[5,11,31],variance_x:[5,11,31],variant:[0,1,6,8,12,13,30,31,34,35,36,37],variat:[3,4,11,30],varieti:[0,3,12,15,22,24,30,36,37],variou:[1,3,5,6,7,8,9,11,12,13,16,18,21,22,23,24,27,31,32,35,36,37],varydimens:4,vastli:3,vaue:1,vault:0,vdot:[2,13,34,35],ve:[24,25],vec:[6,33],vector:[0,1,2,3,4,5,6,7,9,10,11,13,14,16,17,22,32,33,34,35],vector_mean:14,ventur:[0,8,15,22,30],verbos:[1,3,4],veri:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,24,25,27,29,30,31,32,33,34,35,36,37],verifi:[3,11,23,30],versatil:[8,30],versicolor:[8,9],version:[0,3,4,10,13,14,15,22,23,24,25,27,30,31,35,36],versu:1,vert:[0,1,5,6,7,8,9,11,13,17,30,31,32,33,34,35,37],vert_1:[5,6,31,32,33],vert_2:[5,6,11,17,31,32,33],via:[0,5,6,7,8,9,10,11,12,15,19,22,23,24,26,27,28,30,31,32,33,34,36,37],vidal:11,video:[0,1,12,22,26,28,30,31,32,33,34,37],view:[1,3,5,6,12,13,27,29,30,32,33,35,36,37],violat:8,virginica:9,viridi:[0,1,2,3,30,37],virtual:1,viscos:[13,35,36],viscou:[13,35,36],visibledeprecationwarn:2,vision:[0,3,30],visual:[0,3,11,12,15,22,30,31,36],visualis:1,viz:[6,8,27],vjp:[2,13,36],vjp_argnum:2,vjpfun:2,vjpmaker:2,vjpnode:[2,13,36],vjps_dict:2,vmap:[13,35,36],vmax:[1,6],vmin:[1,6],voic:3,volum:[0,3,30],vote:10,voting_clf:10,votingclassifi:10,votingsimpl:10,vs:[0,2,4,6,31,33,35],vspace:[2,13,36],vstack:[5,11,23,27,30,31],vt:[5,31,32],w1:8,w2:[8,11],w3:8,w:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,23,27,30,31,33,34,35,36,37],w_1:[8,23],w_1x_1:8,w_1x_:8,w_2:[8,23],w_2x_2:8,w_2x_:8,w_3:23,w_4:23,w_:[1,12,36,37],w_hidden:2,w_i:[1,2,10,37],w_ix_i:[12,36,37],w_j:23,w_m:23,w_output:2,w_px_:8,w_px_p:8,wa:[0,1,3,4,5,6,7,10,11,12,13,14,17,23,24,30,31,32,33,34,35,36,37],wai:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,17,23,25,27,30,31,32,34,35,36,37],walk:9,walker:27,wang:[0,30],want:[0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,22,24,25,27,30,31,32,33,34,35,36,37],warn:[0,4,8,30,31,37],warrant:[6,33,34],wast:[3,35,36],watch:[3,4,22],wave:3,wavelet:8,we:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,31,32,33,34,37],weak:[9,10,14],weather:[1,12,36,37],web:[22,26,28,30,31],weblink:25,webpag:30,websit:[6,23,24,26,30],wedg:[8,27],wednesdai:[28,30,33,34,35,36,37],wee:11,week:[0,5,6,7,24,25,26,28],weekli:[22,24,28,29,30,36],weight:[0,1,2,3,6,7,9,10,12,13,24,25,27,31,34,35,36],weigth:2,welcom:[8,22],well:[0,1,2,3,4,5,6,7,8,9,10,12,13,15,16,19,20,21,22,23,24,25,27,29,30,31,32,33,34,35,36,37],went:8,were:[0,1,3,4,5,6,7,8,10,11,12,14,27,30,31,33,34,36,37],wessel:[0,18,24,30,31,32,33],what:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,22,23,24,25,27,34,35,36,37],whatev:3,when:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,21,23,24,25,27,30,31,32,33,34,37],whenev:[13,27,35,36],where:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,22,23,24,25,27,28,30,31,32,33,34,35,36,37],wherea:[6,27,33],wherein:[1,12,36,37],whether:[0,3,5,7,9,24,25,27,30,32,34],which:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,22,23,24,25,26,27,28,30,31,32,33,34,37],whichev:[1,3],white:9,whiteboard:[19,31,32,33,34,35],who:[0,26,30],whole:[1,3,4,5,9,11,13,32,33,35,36,37],whose:[0,6,10,27,31,33],whow:[11,31],whrn:33,why:[0,1,3,6,13,24,32,34,35],wide:[0,1,3,6,7,12,15,22,23,24,30,33,34,36,37],widehat:[6,33],width:[0,2,3,8,9,30],wieringen:[0,18,24,30,31,32,33],win:10,wind:9,wing:[28,30],winther:2,wiothout:[6,31,32],wiscons:[7,34],wisconsin:[10,25],wisdom:[6,32],wise:[0,1,5,12,13,31,35,36,37],wish:[0,2,5,7,8,11,13,14,23,24,25,30,31,34,35],with_std:[0,31,33],wither:6,within:[0,2,3,4,7,9,12,13,14,27,29,30,34,35,37],withinclust:14,without:[0,1,5,6,8,9,11,12,13,21,25,30,31,32,33,35,36,37],without_trac:[3,4],won:[0,30],wonder:8,woodi:30,word:[0,1,3,4,5,6,7,14,27,30,31,32,33],work:[0,1,4,6,7,8,9,13,15,22,24,25,26,27,28,30,31,33,34,35,36,37],worker:[3,4],workshop:30,world:[0,8,30,31],worldwid:[0,30],wors:[0,1,3,4,6,30,33],worst:9,worth:9,worthi:[24,25],would:[0,1,3,5,6,7,8,9,10,11,12,13,23,24,25,27,30,31,32,33,34,35,36,37],wrap:[6,23,30],wrap_util:[2,13,36],wrapper:[0,30],write:[0,1,2,3,5,6,7,8,12,13,15,16,17,20,23,24,30,31,33,34,35,36,37],written:[0,2,3,5,11,12,13,16,22,23,24,25,27,30,31,32,33,34,35,36,37],wrong:[1,8,37],wrongli:10,wrote:[5,11,31],wrt:[2,10,13,35,36],wth:[10,13,35,36],www:[22,23,24,25,29,30],wx_1:8,x0:8,x1:[4,8,9,10,13,35,36],x1_exampl:8,x1d:8,x2:[8,9,10,13,35,36],x2d:[8,11],x2d_train:11,x2dsl:11,x3:8,x:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,23,24,25,27,30,33,34,35,36,37],x_0:[0,5,11,23,30,31,32,33],x_1:[0,2,5,6,7,8,9,10,11,13,23,27,30,31,32,33,34,35,36,37],x_2:[0,2,5,6,7,8,9,10,11,13,23,27,30,31,33,34,35,36,37],x_3:[8,23,27],x_4:23,x_:[0,2,3,5,6,8,10,11,13,14,18,23,24,27,30,31,32,33,34,35],x_center:11,x_data:[1,37],x_data_ful:[1,37],x_hidden:2,x_i:[0,1,2,5,6,7,8,9,10,11,12,13,14,17,23,27,30,31,32,33,34,35,36,37],x_input:2,x_ix_:[0,30],x_iy_i:8,x_j:[0,2,8,9,12,16,27,31,36,37],x_jy_j:8,x_k:[12,14,23,27,31,36,37],x_l:27,x_m:[6,12,23,27,33,36,37],x_n:[0,2,3,6,8,11,12,13,23,27,30,33,34,35,36,37],x_new:[9,10],x_offset:[6,31,32],x_output:2,x_p:[3,7,9,34],x_poli:9,x_poly10:9,x_pred:4,x_prev:2,x_reduc:11,x_scale:8,x_small:[13,35,36],x_test:[0,1,3,5,6,7,9,10,11,30,31,32,33,34,37],x_test_own:6,x_test_scal:[0,6,7,9,10,11,31,32,33],x_tot:4,x_train:[0,1,3,4,5,6,7,9,10,11,30,31,32,33,34,37],x_train_mean:[6,31,32,33],x_train_own:6,x_train_scal:[0,6,7,9,10,11,31,32,33],x_val:1,xarrai:[22,30],xavier:1,xbnew:[13,34,35],xcode:[0,15,22,24,30],xdclassiffierconfus:10,xdclassiffierroc:10,xg_clf:10,xgb:10,xgbclassifi:10,xgboost:9,xgboot:10,xgbregressor:10,xgparam:10,xgtree:10,xi:[8,13,35,36],xi_1:8,xi_:8,xi_i:8,xinv:[32,36,37],xk:8,xla:[3,4,13,22,30,35,36],xlabel:[0,1,2,3,4,5,6,7,8,9,10,13,24,27,30,31,32,33,34,35,36],xlim:[6,10,33],xm:9,xmesh:[13,35],xnew:[0,13,30,34,35,36],xp:27,xpanda:[0,31],xpd:[5,11,31],xplot:0,xs:9,xscale:[0,31],xsr:9,xt_x:[13,34,35,36],xtest:[6,33,34],xtick:[3,6,8,9,33],xtrain:[6,33,34],xu:[0,30],xx:[0,23,30],xy:[0,6,8,23,24,30],xytext:8,xz:[23,30],y1:4,y2:4,y3:4,y:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,23,24,27,30,31,32,33,34,35,36,37],y_0:[0,5,11,23,30,31,32,33],y_1:[0,5,8,9,11,13,23,30,31,32,33,34,35],y_1y_1:8,y_1y_1k:8,y_1y_2:8,y_1y_2k:8,y_1y_n:8,y_1y_nk:8,y_2:[0,5,8,9,11,23,30,31],y_2y_1:8,y_2y_1k:8,y_2y_2:8,y_2y_2k:8,y_3:[0,9,23],y_4:23,y_:[0,1,5,6,10,11,23,30,31,32,33,37],y_data:[0,1,5,6,30,31,32,33,34,37],y_data_ful:[1,37],y_decis:8,y_fit:[0,31],y_i:[0,1,5,6,7,8,9,10,11,12,13,15,16,17,18,19,23,24,25,30,31,32,33,34,35,36,37],y_if_:10,y_ix_:[0,30],y_ix_i:[7,8,13,31,34,35],y_iy_jk:8,y_j:[6,8,12,19,24,33,36,37],y_k:[12,36,37],y_m:23,y_model:[0,4,5,6,30,31,32,33,34],y_n:[8,13,34,35],y_ny_1:8,y_ny_1k:8,y_ny_2:8,y_ny_2k:8,y_ny_n:8,y_ny_nk:8,y_offset:[6,31,32],y_plot:9,y_pred1:9,y_pred2:9,y_pred:[0,1,4,6,7,8,9,10,31,32,33,34,37],y_pred_rf:10,y_pred_tre:10,y_proba:[7,10,34],y_scaler:[6,32,33],y_test:[0,1,3,4,5,6,7,9,10,11,30,31,32,33,34,37],y_test_onehot:[1,37],y_test_predict:[0,31],y_test_scal:33,y_tot:4,y_train:[0,1,3,4,5,6,7,9,10,11,30,31,32,33,34,37],y_train_mean:[6,31,32],y_train_onehot:[1,37],y_train_predict:[0,31],y_train_scal:[6,32,33],y_val:1,yand:[36,37],ye:[3,6,7,33,34],year:[0,22,30],yet:[0,1,6,8,11,13,30,34,35,36,37],yi:[13,35,36],yield:[0,2,5,6,8,10,12,13,14,23,27,30,32,33,34,35,36,37],yk:8,ylabel:[0,1,2,3,4,5,6,7,8,9,10,13,24,27,30,31,32,33,34,35,36],ylim:[3,6,33],ym:9,ymesh:[13,35],yn:0,yo:[8,9,10],yor:[36,37],yoshua:[1,29],you:[0,1,2,3,4,5,6,8,9,10,11,13,15,16,17,19,20,21,22,23,24,25,27,28,29,31,32,33,34,35,36,37],young:[0,30],your:[1,2,4,5,6,8,11,13,17,19,20,21,22,23,24,32,33,34,35,36,37],yourself:[11,13,30,35],youtub:22,ypred:[6,33,34],ypredict2:[13,34,35,36],ypredict:[0,13,30,31,34,35,36],ypredictlasso:[5,32],ypredictol:[0,5,32,33],ypredictown:[6,31,32],ypredictownridg:[6,32],ypredictridg:[0,5,6,32,33,34],ypredictskl:[6,31,32],yridg:30,ys:9,ytest:[6,33,34],ytick:[3,6,8,9,33],ytild:[0,6,30,31,33],ytilde_test_ol:33,ytilde_test_ridg:33,ytildelasso:[5,32],ytildenp:[0,30,31],ytildeol:[0,5,32],ytildeownridg:[6,32],ytilderidg:[5,6,32],ytrain:[6,33,34],yx:[23,30],yxor:[36,37],yy:[23,30],yz:[23,30],z:[0,1,2,3,4,5,6,7,8,9,11,12,13,23,24,27,30,31,33,34,35,36,37],z_0:[23,30],z_1:[23,30],z_2:[23,30],z_:[1,2,12,23,30,37],z_c:[1,37],z_h:[1,37],z_hidden:2,z_i:[1,12,36,37],z_j:[1,12],z_k:[12,31,37],z_m:[1,37],z_mod:9,z_o:[1,37],z_output:2,zaman:27,zaxi:[6,24],zero:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,23,24,27,30,31,32,33,34,35,36,37],zeros_lik:4,zeroth:31,zfill:4,zip:[2,4,6,13,36],zm_h:[0,30],zn:[0,31],zone:[0,31],zoom:30,zx:[23,30],zy:[23,30],zz:[23,30]},titles:["3. Linear Regression","14. Building a Feed Forward Neural Network","15. Solving Differential Equations with Deep Learning","16. Convolutional Neural Networks","17. Recurrent neural networks: Overarching view","4. Ridge and Lasso Regression","5. Resampling Methods","6. Logistic Regression","8. Support Vector Machines, overarching aims","9. Decision trees, overarching aims","10. Ensemble Methods: From a Single Tree to Many Trees and Extreme Boosting, Meet the Jungle of Methods","11. Basic ideas of the Principal Component Analysis (PCA)","13. Neural networks","7. Optimization, the central part of any Machine Learning algortithm","12. Clustering and Unsupervised Learning","Exercises week 34","Exercises week 35","Exercises week 36","Exercises week 37","Exercises week 38","Exercises week 39","Exercises week 41","Applied Data Analysis and Machine Learning","2. Linear Algebra, Handling of Arrays and more Python Features","Project 1 on Machine Learning, deadline October 9 (midnight), 2023","Project 2 on Machine Learning, deadline November 13 (Midnight)","Teaching schedule with links to material","1. Elements of Probability Theory and Statistical Data Analysis","Teachers and Grading","Textbooks","Week 34: Introduction to the course, Logistics and Practicalities","Week 35: From Ordinary Linear Regression to Ridge and Lasso Regression","Week 36: Statistical interpretation of Linear Regression and Resampling techniques","Week 37: Statistical interpretations and Resampling Methods","Week 38: Logistic Regression and Optimization","Week 39: Optimization and Gradient Methods","Week 40: Gradient descent methods (continued) and start Neural networks","Week 41 Neural networks and constructing a neural network code"],titleterms:{"1":[0,15,16,17,18,24,30,31],"12":37,"13":25,"14":33,"2":[0,15,16,17,18,25,30,31],"2023":[24,28],"21":34,"23":34,"3":[0,15,16,30,31],"31":31,"34":[15,30],"35":[16,31],"36":[17,32],"37":[18,33],"38":[19,34],"39":[20,35],"4":[0,31],"40":36,"41":[21,37],"5":0,"7":32,"9":24,"case":[8,10,27,31,32,34,35],"class":34,"do":[1,30,32,33,35,36,37],"final":[12,25,31,32,35,36,37],"function":[0,1,6,7,8,10,11,12,13,24,25,27,30,31,32,33,34,35,36,37],"import":[5,23,30,31,32],"new":[4,32,33],A:[0,1,4,8,9,30,32,33,34],AND:[36,37],And:[30,31,32,34,35,36],But:[35,36],In:28,Ising:6,OR:[36,37],The:[0,1,2,3,5,6,7,8,9,11,12,17,22,30,31,32,33,34,35,36,37],To:[30,31],With:[4,32],about:[30,31],abov:32,activ:[1,12,25,32,36,37],ad:[0,6,17,24,30,31,36,37],adaboost:10,adagrad:[13,35,36],adam:[13,35,36],adapt:[10,35,36],adjust:[1,37],adversari:4,again:[3,9,34],ai:30,aim:[8,9,17,18,19,20,21,30],aka:[30,31],algebra:[23,30],algorithm:[9,10,11,12,25,31,35,36,37],algortithm:[13,34,35],all:8,an:[0,4,10,30],analys:[5,31],analysi:[0,5,6,11,22,24,25,27,30,31,32,33],analyt:[0,16,17],ani:[13,34,35],anoth:[9,32,33],appli:22,approach:[0,8,14,30,33,35,36],approxim:[12,37],architectur:[1,37],argument:[35,36],arrai:[23,30],artifici:[36,37],assist:28,assumpt:[32,33],august:31,autocorrel:27,autograd:[2,13,35,36],automat:[13,35,36],avoid:[35,36],b:[17,24,25,35,36],back:[1,11,12,37],background:[22,24,25,33],bag:10,base:[13,33,35,36],basic:[0,5,7,9,10,11,23,31,32,33,34],batch:[1,35,36],bay:[5,32,33],befor:11,beta:[32,33],better:[8,36,37],bia:[6,24,33],bias:37,binari:[1,37],bind:30,bird:10,boldsymbol:[31,32,33],boost:10,bootstrap:[6,10,33],boston:[0,31],breast:1,brief:[30,33,34,35],bring:[12,37],build:[1,3,9],c:[24,25,30],calcul:31,can:[30,33,35,36],cancer:[1,7,9,11,34],cart:9,center:31,central:[13,22,27,33,34,35],chain:[12,37],challeng:34,chang:10,channel:30,chi:[0,30],choos:[1,37],cifar01:3,classic:11,classif:[1,9,10,25,34,37],classifi:[8,34],clip:1,cluster:14,cnn:3,code:[0,1,2,5,9,11,12,13,14,25,30,31,32,33,34,35,36,37],collect:[1,3,37],come:34,commun:30,compact:34,compar:[2,10],comparison:32,compet:[35,36],complet:31,complex:[0,6,24,31],complic:[6,35,36],compon:11,comput:[9,35,36],computation:33,computerlab:30,con:9,concept:27,condit:[32,33,34,35],confid:33,conjug:[13,35],construct:37,continu:36,contn:30,convex:[8,13,34,35],convolut:[3,12,36,37],correctli:[32,33],correl:[11,31,34],correspond:[34,35],cost:[1,10,31,32,33,34,35,37],cours:[22,29,30],covari:[5,11,27,31],cover:30,critic:25,cross:[6,24,33,34],cython:30,d:[24,25],data:[0,1,3,6,7,9,11,15,16,22,24,27,30,31,32,34,37],dataset:[1,3,37],deadlin:[24,25,30],decai:[2,35,36],decis:[9,10],decomposit:[5,11,17,23,31],deep:[1,2,34],defin:[1,30,37],definit:37,degre:[0,31],deliveri:[24,25],delta:33,dens:[0,30],deriv:[5,12,31,32,33,34,35,37],descent:[2,10,13,25,34,35,36],descript:24,design:31,detail:[3,30],develop:[1,37],diagon:11,differ:[8,25,35,36],differenti:[2,13,35,36],diffus:2,dimension:[2,3,8,24,31],directli:[35,36],disadvantag:9,discret:27,discuss:34,distribut:[5,27,32,33],distrubut:[32,33],doe:[31,32,36,37],domain:27,dot:[35,36],down:1,dropout:1,e:[24,25],each:34,economi:31,electron:[24,25],element:[0,27,30,35,36],elimin:23,energi:30,ensembl:10,entropi:[9,34],environ:[0,15,30],equat:[0,2,12,30,31,32,34,35,37],error:[0,10,30,31,33],essenti:30,estim:[32,33],etc:30,euler:2,evalu:[1,25,37],exampl:[0,1,2,3,4,6,7,8,9,10,30,31,32,33,34,35,36,37],exercis:[0,6,15,16,17,18,19,20,21,30,31,33],expect:[18,27,32,33],expens:33,experi:27,explor:[0,15,16,30],exponenti:2,express:[17,18,30,31,34,35],extend:[34,35],extrapol:4,extrem:[10,30],ey:10,f:[24,25],fall:28,famili:[1,30,31],famou:23,fantast:31,featur:[9,23,31],feed:[1,12,36,37],find:[33,35,36],fine:1,first:[4,12,25,30,31,32,34,35,37],fit:[0,10,30,32],fix:31,fold:[33,34],forc:3,forest:10,format:[24,25,30],forward:[1,2,12,36,37],fourier:3,frank:[6,24,31],freedom:[0,31],frequent:31,frequentist:[0,30],fridai:34,from:[5,10,12,25,31,32,33,34,35,36,37],full:[2,37],further:[3,5,31],g:24,gan:4,gate:[36,37],gaussian:23,gd:[13,35,36],gener:[4,9,30],geometr:[11,34,35],gini:9,good:[0,30],grade:[28,30],gradient:[1,2,10,13,25,34,35,36],grid:34,group:34,growth:2,ha:22,handl:[23,30,31],happen:[32,33],have:30,heard:30,hessian:[31,34,35],hidden:2,histogram:33,homework:[34,35],hous:[0,31],how:34,hyperbol:[36,37],hyperparamet:[1,37],hyperplan:8,i:1,id3:9,idea:11,ideal:[34,35],ident:[32,33],identifi:33,ii:30,iid:[32,33],illustr:[32,36,37],implement:[1,37],implic:[5,31],improv:[1,35,37],includ:[13,34,35,36],increment:11,independ:[32,33],index:9,inform:28,input:2,instal:[22,24,30],instructor:28,intercept:31,interpret:[5,11,30,31,32,33,34,35],interv:33,introduc:[11,13,31,35,36],introduct:[0,6,22,23,24,25,30,36,37],invers:[5,23,32],invert:31,iter:[10,35],its:31,jacobian:31,jax:[13,35,36],job:[36,37],julia:30,jungl:10,k:[33,34],kera:[1,3],kernel:[8,11],l:37,lagrangian:8,lambda:34,lasso:[5,6,24,31,32,33,34],last:[31,33,34,36],later:[5,31],layer:[1,2,3,12,37],learn:[0,1,2,11,13,14,15,16,22,24,25,30,31,32,33,34,35,36,37],least:[5,6,18,24,30,31,32],lectur:[30,31,32,33,34,37],level:10,librari:[22,30],likelihood:[7,32,33,34],limit:[1,13,27,33,34,35,36],linear:[0,8,13,23,25,30,31,32,34],link:[5,11,26,29,31,32,33],literatur:[24,25],logist:[7,25,30,34,35,36,37],loop:[35,36],loss:[31,34,35],lu:23,machin:[0,8,13,22,24,25,30,34,35],made:[32,33],mai:30,main:27,make:[0,9,10,15,16,30,31],mani:[10,12,37],manipul:31,margin:[32,33],mass:30,materi:[26,30,31,32,33,34],math:[5,31],mathemat:[3,5,8,31,35,36,37],matric:[5,23,30,32],matrix:[1,5,11,12,23,30,31,32,34,35,36,37],matter:[0,30],max:31,maximum:[32,33,34],mean:[0,30,31,32,34],measur:34,meet:[5,10,27,30,31],mercer:8,method:[6,9,10,13,24,33,34,35,36],midnight:[24,25],min:31,mini:[35,36],minibatch:[35,36],minim:[30,34],ml:30,mle:[32,33],mlp:[12,37],mnist:[3,4],model:[0,1,4,6,12,30,36,37],moment:[35,36],momentum:[13,35,36],moon:[8,9],more:[3,6,23,24,30,31,32,33,34,35,36],multi:[36,37],multilay:[12,36,37],multipl:[1,3,37],multipli:8,need:[24,30],network:[1,2,3,4,7,12,25,30,34,36,37],neural:[1,2,3,4,7,12,25,30,36,37],neuron:[36,37],newton:[34,35,36],noen:[35,36],non:8,normal:[0,1,33],notat:[12,36,37],note:[31,32,33],novemb:25,now:[1,9,13,32,33,35,36],nuclear:[0,30],nueral:34,numba:30,number:[0,2,27,31,35,36],numer:[2,24,25,27],numpi:[23,30,35,36],object:[3,37],obtain:11,octob:[24,37],od:2,off:[6,24],ol:[5,6,24,32,33,35,36],one:[2,12,34,35,37],ones:[36,37],oper:23,optim:[1,8,13,22,30,31,34,35,36,37],order:[13,35,36],ordinari:[5,6,18,24,30,31,32],organ:[0,30],orient:37,oslo:29,other:[4,9,11,12,23,30,31,34,36,37],our:[0,4,5,11,13,30,31,34,35,37],outcom:[22,30],output:2,overarch:[0,4,8,9,17,18,19,20,21,30,31],overview:[10,30,35,36],own:[0,10,11,15,16,25,30,31],packag:[23,30],panda:[30,31],paper:24,paramet:[30,31,34,35,36],part:[13,22,24,25,31,34,35],partial:2,pass:[1,37],pca:11,pdf:27,pencil:24,perceptron:[12,36,37],perform:[1,9,37],period:3,perspect:1,plan:[31,32,33,34,35,36,37],plot:[33,34],point:4,poisson:2,polynomi:[3,32],popul:2,practic:[13,28,30,35,36],pre:[1,3,37],predict:4,predictor:34,preprocess:31,prerequisit:[3,22,30],princip:11,principl:3,pro:9,probabl:[5,27,32,33],problem:[1,2,13,30,31,32,34,35,36,37],procedur:[9,30],process:[1,3,37],product:[35,36],program:[2,13,24,25,34,35],project:[6,24,25,30,34],prop:[13,35,36],propag:[1,12,37],properti:[5,27,31,34],python:[0,9,15,22,23,30],quick:8,r:30,random:[10,11,27,34],raphson:[34,35],rate:[35,36],read:[9,30,31,33],real:[6,24,30],recommend:[30,31,35,36],rectangular:32,recurr:[4,12,36,37],recurs:[35,36],reduc:[0,31],reduct:3,reformul:2,regress:[0,5,6,7,9,10,13,17,18,24,25,30,31,32,33,34,35,36,37],regular:[1,34,37],relat:31,relev:[29,31,33,34,36,37],relu:1,remark:3,remind:[6,8,30,34,35],repeat:31,replac:[13,35,36],report:[24,25],repositori:33,repres:37,requir:[2,22],resampl:[6,24,32,33],rescal:[6,32],residu:31,resourc:2,result:[31,32],revisit:[13,34,35],rewrit:[30,31,33],rewritten:34,ridg:[0,5,6,17,18,24,31,32,33,34,35],rm:[13,35,36],rmsprop:[35,36],rule:[12,37],s:[8,10,33,34,35,36],same:[13,33,35,36],sampl:11,scale:[31,33],schedul:[26,30],schemat:9,scheme:2,scienc:30,scikit:[0,1,11,15,16,30,31,32,33,34,35,37],search:34,second:[13,35,36],select:34,semest:28,sensit:[34,35],septemb:[32,33,34],session:32,set:[0,2,3,9,12,15,30,31,34,37],sgd:[13,35,36],should:1,similar:[13,35,36],simpl:[0,4,9,13,30,31,32,34,35,36],singl:[10,36,37],singular:[5,11,17,31],size:31,slightli:[35,36],soft:8,softmax:[1,37],softwar:[24,30],solv:[2,32,34,35],solver:13,some:[13,23,30,31,34,35],specifi:2,split:[0,15,16,30,31],squar:[0,5,6,10,18,24,30,31,32],standard:[13,31,33,35],start:36,state:[0,30],statement:30,statist:[5,6,22,27,30,32,33],steepest:[10,13,34,35],step:[25,33,34,35,36],still:31,stochast:[13,25,27,35,36],stop:[35,36],strongli:30,studi:34,subtract:31,suggest:30,sum:33,summari:[28,30,36],superposit:3,supervis:1,support:8,svd:[5,31,32],syntax:[35,36],systemat:3,t:[31,32],teach:[26,28],teacher:[28,30],technic:32,techniqu:[6,11,24,32],technolog:22,tensorflow:[1,3],tent:30,term:[33,37],test:[0,1,15,16,25,30,31,32,37],textbook:[29,30],than:[34,35],thei:30,theorem:[5,8,11,12,27,32,33,37],theori:27,thi:[17,18,19,20,21,30],think:31,thursdai:[31,32,33,34,37],time:[35,36],tip:[13,35,36],togeth:[12,37],tool:30,top:1,topic:30,toward:11,trade:[6,24],tradeoff:[6,33],train:[0,1,4,15,16,30,31,37],transform:3,tree:[9,10],tuesdai:32,tune:1,two:[3,8,22,24,31,34],type:[2,4,12,30,36,37],uio:30,understand:33,univers:[12,29,37],unsupervis:14,unsupport:[35,36],up:[0,2,9,12,15,30,31,33,34,37],us:[0,1,2,3,7,13,22,25,30,31,34,35,36,37],usag:[32,33],valid:[6,24,33,34],valu:[5,11,17,18,27,31,32,33,34],vari:[35,36],variabl:[27,34,35],varianc:[6,24,32,33],variou:[0,15,25,30,33,34],vector:[8,12,23,30,31,36,37],video:[35,36],view:[0,4,10,31],visual:[1,9,37],vs:3,wai:[9,33],wave:2,we:[30,35,36],wednesdai:32,week:[15,16,17,18,19,20,21,30,31,32,33,34,35,36,37],weekend:34,weekli:[26,33],weight:37,what:[0,30,31,32,33],when:[35,36],which:[1,35,36],why:[30,31,33,36,37],wisconsin:[7,34],wrap:[31,33],write:[4,11,25,32],x:[31,32],xgboost:10,xor:[36,37],yet:32,you:30,your:[0,10,15,16,25,30,31],yourself:34,z_j:37}}) \ No newline at end of file diff --git a/doc/LectureNotes/_build/html/week41.html b/doc/LectureNotes/_build/html/week41.html new file mode 100644 index 000000000..5ee70bd52 --- /dev/null +++ b/doc/LectureNotes/_build/html/week41.html @@ -0,0 +1,4315 @@ + + + + + + + + Week 41 Neural networks and constructing a neural network code — Applied Data Analysis and Machine Learning + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + +
    +
    + + + + + + + + +
    + +
    +
    + +
    + + + + + + + + + + + + + + +
    + + +
    + +
    + Contents +
    + +
    +
    +
    +
    +
    + +
    +

    Week 41 Neural networks and constructing a neural network code

    + +
    +
    + +
    +

    Contents

    +
    + +
    +
    +
    + +
    + + +
    +

    Week 41 Neural networks and constructing a neural network code

    +

    Morten Hjorth-Jensen, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Isotope Beams, Michigan State University

    +

    Date: Week 41

    +
    +

    Plan for week 41

    +

    Material for the active learning sessions on Tuesday and Wednesday.

    +
      +
    • Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation

    • +
    • One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code

    • +
    • Discussion of project 2

    • +
    • Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent

    • +
    +

    Material for the lecture on Thursday October 12, 2023.

    + +

    I also recommend Michael Nielsen’s intuitive approach to the neural networks and the universal approximation theorem, see the slides at http://neuralnetworksanddeeplearning.com/chap4.html.

    +
    +
    +

    Lecture Thursday October 12

    +
    +
    +

    Introduction to Neural networks

    +

    Artificial neural networks are computational systems that can learn to +perform tasks by considering examples, generally without being +programmed with any task-specific rules. It is supposed to mimic a +biological system, wherein neurons interact by sending signals in the +form of mathematical functions between layers. All layers can contain +an arbitrary number of neurons, and each connection is represented by +a weight variable.

    +
    +
    +

    Artificial neurons

    +

    The field of artificial neural networks has a long history of +development, and is closely connected with the advancement of computer +science and computers in general. A model of artificial neurons was +first developed by McCulloch and Pitts in 1943 to study signal +processing in the brain and has later been refined by others. The +general idea is to mimic neural networks in the human brain, which is +composed of billions of neurons that communicate with each other by +sending electrical signals. Each neuron accumulates its incoming +signals, which must exceed an activation threshold to yield an +output. If the threshold is not overcome, the neuron remains inactive, +i.e. has zero output.

    +

    This behaviour has inspired a simple mathematical model for an artificial neuron.

    + +
    +
    +\[ +\begin{equation} + y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) +\label{artificialNeuron} \tag{1} +\end{equation} +\]
    +

    Here, the output \(y\) of the neuron is the value of its activation function, which have as input +a weighted sum of signals \(x_i, \dots ,x_n\) received by \(n\) other neurons.

    +

    Conceptually, it is helpful to divide neural networks into four +categories:

    +
      +
    1. general purpose neural networks for supervised learning,

    2. +
    3. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),

    4. +
    5. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and

    6. +
    7. neural networks for unsupervised learning such as Deep Boltzmann Machines.

    8. +
    +

    In natural science, DNNs and CNNs have already found numerous +applications. In statistical physics, they have been applied to detect +phase transitions in 2D Ising and Potts models, lattice gauge +theories, and different phases of polymers, or solving the +Navier-Stokes equation in weather forecasting. Deep learning has also +found interesting applications in quantum physics. Various quantum +phase transitions can be detected and studied using DNNs and CNNs, +topological phases, and even non-equilibrium many-body +localization. Representing quantum states as DNNs quantum state +tomography are among some of the impressive achievements to reveal the +potential of DNNs to facilitate the study of quantum systems.

    +

    In quantum information theory, it has been shown that one can perform +gate decompositions with the help of neural.

    +

    The applications are not limited to the natural sciences. There is a +plethora of applications in essentially all disciplines, from the +humanities to life science and medicine.

    +
    +
    +

    Neural network types

    +

    An artificial neural network (ANN), is a computational model that +consists of layers of connected neurons, or nodes or units. We will +refer to these interchangeably as units or nodes, and sometimes as +neurons.

    +

    It is supposed to mimic a biological nervous system by letting each +neuron interact with other neurons by sending signals in the form of +mathematical functions between layers. A wide variety of different +ANNs have been developed, but most of them consist of an input layer, +an output layer and eventual layers in-between, called hidden +layers. All layers can contain an arbitrary number of nodes, and each +connection between two nodes is associated with a weight variable.

    +

    Neural networks (also called neural nets) are neural-inspired +nonlinear models for supervised learning. As we will see, neural nets +can be viewed as natural, more powerful extensions of supervised +learning methods such as linear and logistic regression and soft-max +methods we discussed earlier.

    +
    +
    +

    Feed-forward neural networks

    +

    The feed-forward neural network (FFNN) was the first and simplest type +of ANNs that were devised. In this network, the information moves in +only one direction: forward through the layers.

    +

    Nodes are represented by circles, while the arrows display the +connections between the nodes, including the direction of information +flow. Additionally, each arrow corresponds to a weight variable +(figure to come). We observe that each node in a layer is connected +to all nodes in the subsequent layer, making this a so-called +fully-connected FFNN.

    +
    +
    +

    Convolutional Neural Network

    +

    A different variant of FFNNs are convolutional neural networks +(CNNs), which have a connectivity pattern inspired by the animal +visual cortex. Individual neurons in the visual cortex only respond to +stimuli from small sub-regions of the visual field, called a receptive +field. This makes the neurons well-suited to exploit the strong +spatially local correlation present in natural images. The response of +each neuron can be approximated mathematically as a convolution +operation. (figure to come)

    +

    Convolutional neural networks emulate the behaviour of neurons in the +visual cortex by enforcing a local connectivity pattern between +nodes of adjacent layers: Each node in a convolutional layer is +connected only to a subset of the nodes in the previous layer, in +contrast to the fully-connected FFNN. Often, CNNs consist of several +convolutional layers that learn local features of the input, with a +fully-connected layer at the end, which gathers all the local data and +produces the outputs. They have wide applications in image and video +recognition.

    +
    +
    +

    Recurrent neural networks

    +

    So far we have only mentioned ANNs where information flows in one +direction: forward. Recurrent neural networks on the other hand, +have connections between nodes that form directed cycles. This +creates a form of internal memory which are able to capture +information on what has been calculated before; the output is +dependent on the previous computations. Recurrent NNs make use of +sequential information by performing the same task for every element +in a sequence, where each element depends on previous elements. An +example of such information is sentences, making recurrent NNs +especially well-suited for handwriting and speech recognition.

    +
    +
    +

    Other types of networks

    +

    There are many other kinds of ANNs that have been developed. One type +that is specifically designed for interpolation in multidimensional +space is the radial basis function (RBF) network. RBFs are typically +made up of three layers: an input layer, a hidden layer with +non-linear radial symmetric activation functions and a linear output +layer (‘’linear’’ here means that each node in the output layer has a +linear activation function). The layers are normally fully-connected +and there are no cycles, thus RBFs can be viewed as a type of +fully-connected FFNN. They are however usually treated as a separate +type of NN due the unusual activation functions.

    +
    +
    +

    Multilayer perceptrons

    +

    One uses often so-called fully-connected feed-forward neural networks +with three or more layers (an input layer, one or more hidden layers +and an output layer) consisting of neurons that have non-linear +activation functions.

    +

    Such networks are often called multilayer perceptrons (MLPs).

    +
    +
    +

    Why multilayer perceptrons?

    +

    According to the Universal approximation theorem, a feed-forward +neural network with just a single hidden layer containing a finite +number of neurons can approximate a continuous multidimensional +function to arbitrary accuracy, assuming the activation function for +the hidden layer is a non-constant, bounded and +monotonically-increasing continuous function.

    +

    Note that the requirements on the activation function only applies to +the hidden layer, the output nodes are always assumed to be linear, so +as to not restrict the range of output values.

    +
    +
    +

    Illustration of a single perceptron model and a multi-perceptron model

    + + +

    Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

    +
    +
    +

    Examples of XOR, OR and AND gates

    +

    Let us first try to fit various gates using standard linear +regression. The gates we are thinking of are the classical XOR, OR and +AND gates, well-known elements in computer science. The tables here +show how we can set up the inputs \(x_1\) and \(x_2\) in order to yield a +specific target \(y_i\).

    +
    +
    +
    """
    +Simple code that tests XOR, OR and AND gates with linear regression
    +"""
    +
    +import numpy as np
    +# Design matrix
    +X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
    +print(f"The X.TX  matrix:{X.T @ X}")
    +Xinv = np.linalg.pinv(X.T @ X)
    +print(f"The invers of X.TX  matrix:{Xinv}")
    +
    +# The XOR gate 
    +yXOR = np.array( [ 0, 1 ,1, 0])
    +ThetaXOR  = Xinv @ X.T @ yXOR
    +print(f"The values of theta for the XOR gate:{ThetaXOR}")
    +print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
    +
    +
    +# The OR gate 
    +yOR = np.array( [ 0, 1 ,1, 1])
    +ThetaOR  = Xinv @ X.T @ yOR
    +print(f"The values of theta for the OR gate:{ThetaOR}")
    +print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
    +
    +
    +# The OR gate 
    +yAND = np.array( [ 0, 0 ,0, 1])
    +ThetaAND  = Xinv @ X.T @ yAND
    +print(f"The values of theta for the AND gate:{ThetaAND}")
    +print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
    +
    +
    +
    +
    +
    The X.TX  matrix:[[4. 2. 2.]
    + [2. 2. 1.]
    + [2. 1. 2.]]
    +The invers of X.TX  matrix:[[ 7.50000000e-01 -5.00000000e-01 -5.00000000e-01]
    + [-5.00000000e-01  1.00000000e+00 -2.27693602e-16]
    + [-5.00000000e-01  9.94484047e-17  1.00000000e+00]]
    +The values of theta for the XOR gate:[ 5.00000000e-01 -2.22044605e-16 -1.11022302e-16]
    +The linear regression prediction  for the XOR gate:[0.5 0.5 0.5 0.5]
    +The values of theta for the OR gate:[0.25 0.5  0.5 ]
    +The linear regression prediction  for the OR gate:[0.25 0.75 0.75 1.25]
    +The values of theta for the AND gate:[-0.25  0.5   0.5 ]
    +The linear regression prediction  for the AND gate:[-0.25  0.25  0.25  0.75]
    +
    +
    +
    +
    +

    What is happening here?

    +
    +
    +

    Does Logistic Regression do a better Job?

    +
    +
    +
    %matplotlib inline
    +
    +"""
    +Simple code that tests XOR and OR gates with linear regression
    +and logistic regression
    +"""
    +
    +import matplotlib.pyplot as plt
    +from sklearn.linear_model import LogisticRegression
    +import numpy as np
    +
    +# Design matrix
    +X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)
    +print(f"The X.TX  matrix:{X.T @ X}")
    +Xinv = np.linalg.pinv(X.T @ X)
    +print(f"The invers of X.TX  matrix:{Xinv}")
    +
    +# The XOR gate 
    +yXOR = np.array( [ 0, 1 ,1, 0])
    +ThetaXOR  = Xinv @ X.T @ yXOR
    +print(f"The values of theta for the XOR gate:{ThetaXOR}")
    +print(f"The linear regression prediction  for the XOR gate:{X @ ThetaXOR}")
    +
    +
    +# The OR gate 
    +yOR = np.array( [ 0, 1 ,1, 1])
    +ThetaOR  = Xinv @ X.T @ yOR
    +print(f"The values of theta for the OR gate:{ThetaOR}")
    +print(f"The linear regression prediction  for the OR gate:{X @ ThetaOR}")
    +
    +
    +# The OR gate 
    +yAND = np.array( [ 0, 0 ,0, 1])
    +ThetaAND  = Xinv @ X.T @ yAND
    +print(f"The values of theta for the AND gate:{ThetaAND}")
    +print(f"The linear regression prediction  for the AND gate:{X @ ThetaAND}")
    +
    +# Now we change to logistic regression
    +
    +
    +# Logistic Regression
    +logreg = LogisticRegression()
    +logreg.fit(X, yOR)
    +print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR)))
    +
    +logreg.fit(X, yXOR)
    +print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR)))
    +
    +
    +logreg.fit(X, yAND)
    +print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND)))
    +
    +
    +
    +
    +
    The X.TX  matrix:[[4. 2. 2.]
    + [2. 2. 1.]
    + [2. 1. 2.]]
    +The invers of X.TX  matrix:[[ 7.50000000e-01 -5.00000000e-01 -5.00000000e-01]
    + [-5.00000000e-01  1.00000000e+00 -2.27693602e-16]
    + [-5.00000000e-01  9.94484047e-17  1.00000000e+00]]
    +The values of theta for the XOR gate:[ 5.00000000e-01 -2.22044605e-16 -1.11022302e-16]
    +The linear regression prediction  for the XOR gate:[0.5 0.5 0.5 0.5]
    +The values of theta for the OR gate:[0.25 0.5  0.5 ]
    +The linear regression prediction  for the OR gate:[0.25 0.75 0.75 1.25]
    +The values of theta for the AND gate:[-0.25  0.5   0.5 ]
    +The linear regression prediction  for the AND gate:[-0.25  0.25  0.25  0.75]
    +Test set accuracy with Logistic Regression for OR gate: 0.75
    +Test set accuracy with Logistic Regression for XOR gate: 0.50
    +Test set accuracy with Logistic Regression for AND gate: 0.75
    +
    +
    +
    +
    +

    Not exactly impressive, but somewhat better.

    +
    +
    +

    Adding Neural Networks

    +
    +
    +
    # and now neural networks with Scikit-Learn and the XOR
    +
    +from sklearn.neural_network import MLPClassifier
    +from sklearn.datasets import make_classification
    +X, yXOR = make_classification(n_samples=100, random_state=1)
    +FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)
    +FFNN.predict_proba(X)
    +print(f"Test set accuracy with Feed Forward Neural Network  for XOR gate:{FFNN.score(X, yXOR)}")
    +
    +
    +
    +
    +
    Test set accuracy with Feed Forward Neural Network  for XOR gate:1.0
    +
    +
    +
    +
    +
    +
    +

    Mathematical model

    +

    The output \(y\) is produced via the activation function \(f\)

    +
    +\[ +y = f\left(\sum_{i=1}^n w_ix_i + b_i\right) = f(z), +\]
    +

    This function receives \(x_i\) as inputs. +Here the activation \(z=(\sum_{i=1}^n w_ix_i+b_i)\). +In an FFNN of such neurons, the inputs \(x_i\) are the outputs of +the neurons in the preceding layer. Furthermore, an MLP is +fully-connected, which means that each neuron receives a weighted sum +of the outputs of all neurons in the previous layer.

    +
    +
    +

    Mathematical model

    +

    First, for each node \(i\) in the first hidden layer, we calculate a weighted sum \(z_i^1\) of the input coordinates \(x_j\),

    + +
    +
    +\[ +\begin{equation} z_i^1 = \sum_{j=1}^{M} w_{ij}^1 x_j + b_i^1 +\label{_auto1} \tag{2} +\end{equation} +\]
    +

    Here \(b_i\) is the so-called bias which is normally needed in +case of zero activation weights or inputs. How to fix the biases and +the weights will be discussed below. The value of \(z_i^1\) is the +argument to the activation function \(f_i\) of each node \(i\), The +variable \(M\) stands for all possible inputs to a given node \(i\) in the +first layer. We define the output \(y_i^1\) of all neurons in layer 1 as

    + +
    +
    +\[ +\begin{equation} + y_i^1 = f(z_i^1) = f\left(\sum_{j=1}^M w_{ij}^1 x_j + b_i^1\right) +\label{outputLayer1} \tag{3} +\end{equation} +\]
    +

    where we assume that all nodes in the same layer have identical +activation functions, hence the notation \(f\). In general, we could assume in the more general case that different layers have different activation functions. +In this case we would identify these functions with a superscript \(l\) for the \(l\)-th layer,

    + +
    +
    +\[ +\begin{equation} + y_i^l = f^l(u_i^l) = f^l\left(\sum_{j=1}^{N_{l-1}} w_{ij}^l y_j^{l-1} + b_i^l\right) +\label{generalLayer} \tag{4} +\end{equation} +\]
    +

    where \(N_l\) is the number of nodes in layer \(l\). When the output of +all the nodes in the first hidden layer are computed, the values of +the subsequent layer can be calculated and so forth until the output +is obtained.

    +
    +
    +

    Mathematical model

    +

    The output of neuron \(i\) in layer 2 is thus,

    + +
    +
    +\[ +\begin{equation} + y_i^2 = f^2\left(\sum_{j=1}^N w_{ij}^2 y_j^1 + b_i^2\right) +\label{_auto2} \tag{5} +\end{equation} +\]
    + +
    +
    +\[ +\begin{equation} + = f^2\left[\sum_{j=1}^N w_{ij}^2f^1\left(\sum_{k=1}^M w_{jk}^1 x_k + b_j^1\right) + b_i^2\right] +\label{outputLayer2} \tag{6} +\end{equation} +\]
    +

    where we have substituted \(y_k^1\) with the inputs \(x_k\). Finally, the ANN output reads

    + +
    +
    +\[ +\begin{equation} + y_i^3 = f^3\left(\sum_{j=1}^N w_{ij}^3 y_j^2 + b_i^3\right) +\label{_auto3} \tag{7} +\end{equation} +\]
    + +
    +
    +\[ +\begin{equation} + = f_3\left[\sum_{j} w_{ij}^3 f^2\left(\sum_{k} w_{jk}^2 f^1\left(\sum_{m} w_{km}^1 x_m + b_k^1\right) + b_j^2\right) + + b_1^3\right] +\label{_auto4} \tag{8} +\end{equation} +\]
    +
    +
    +

    Mathematical model

    +

    We can generalize this expression to an MLP with \(l\) hidden +layers. The complete functional form is,

    + +
    +
    +\[ +\begin{equation} +y^{l+1}_i = f^{l+1}\left[\!\sum_{j=1}^{N_l} w_{ij}^3 f^l\left(\sum_{k=1}^{N_{l-1}}w_{jk}^{l-1}\left(\dots f^1\left(\sum_{n=1}^{N_0} w_{mn}^1 x_n+ b_m^1\right)\dots\right)+b_k^2\right)+b_1^3\right] +\label{completeNN} \tag{9} +\end{equation} +\]
    +

    which illustrates a basic property of MLPs: The only independent +variables are the input values \(x_n\).

    +
    +
    +

    Mathematical model

    +

    This confirms that an MLP, despite its quite convoluted mathematical +form, is nothing more than an analytic function, specifically a +mapping of real-valued vectors \(\hat{x} \in \mathbb{R}^n \rightarrow +\hat{y} \in \mathbb{R}^m\).

    +

    Furthermore, the flexibility and universality of an MLP can be +illustrated by realizing that the expression is essentially a nested +sum of scaled activation functions of the form

    + +
    +
    +\[ +\begin{equation} + f(x) = c_1 f(c_2 x + c_3) + c_4 +\label{_auto5} \tag{10} +\end{equation} +\]
    +

    where the parameters \(c_i\) are weights and biases. By adjusting these +parameters, the activation functions can be shifted up and down or +left and right, change slope or be rescaled which is the key to the +flexibility of a neural network.

    +
    +

    Matrix-vector notation

    +

    We can introduce a more convenient notation for the activations in an A NN.

    +

    Additionally, we can represent the biases and activations +as layer-wise column vectors \(\hat{b}_l\) and \(\hat{y}_l\), so that the \(i\)-th element of each vector +is the bias \(b_i^l\) and activation \(y_i^l\) of node \(i\) in layer \(l\) respectively.

    +

    We have that \(\mathrm{W}_l\) is an \(N_{l-1} \times N_l\) matrix, while \(\hat{b}_l\) and \(\hat{y}_l\) are \(N_l \times 1\) column vectors. +With this notation, the sum becomes a matrix-vector multiplication, and we can write +the equation for the activations of hidden layer 2 (assuming three nodes for simplicity) as

    + +
    +
    +\[\begin{split} +\begin{equation} + \hat{y}_2 = f_2(\mathrm{W}_2 \hat{y}_{1} + \hat{b}_{2}) = + f_2\left(\left[\begin{array}{ccc} + w^2_{11} &w^2_{12} &w^2_{13} \\ + w^2_{21} &w^2_{22} &w^2_{23} \\ + w^2_{31} &w^2_{32} &w^2_{33} \\ + \end{array} \right] \cdot + \left[\begin{array}{c} + y^1_1 \\ + y^1_2 \\ + y^1_3 \\ + \end{array}\right] + + \left[\begin{array}{c} + b^2_1 \\ + b^2_2 \\ + b^2_3 \\ + \end{array}\right]\right). +\label{_auto6} \tag{11} +\end{equation} +\end{split}\]
    +
    +
    +

    Matrix-vector notation and activation

    +

    The activation of node \(i\) in layer 2 is

    + +
    +
    +\[ +\begin{equation} + y^2_i = f_2\Bigr(w^2_{i1}y^1_1 + w^2_{i2}y^1_2 + w^2_{i3}y^1_3 + b^2_i\Bigr) = + f_2\left(\sum_{j=1}^3 w^2_{ij} y_j^1 + b^2_i\right). +\label{_auto7} \tag{12} +\end{equation} +\]
    +

    This is not just a convenient and compact notation, but also a useful +and intuitive way to think about MLPs: The output is calculated by a +series of matrix-vector multiplications and vector additions that are +used as input to the activation functions. For each operation +\(\mathrm{W}_l \hat{y}_{l-1}\) we move forward one layer.

    +
    +
    +

    Activation functions

    +

    A property that characterizes a neural network, other than its +connectivity, is the choice of activation function(s). As described +in, the following restrictions are imposed on an activation function +for a FFNN to fulfill the universal approximation theorem

    +
      +
    • Non-constant

    • +
    • Bounded

    • +
    • Monotonically-increasing

    • +
    • Continuous

    • +
    +
    +
    +

    Activation functions, Logistic and Hyperbolic ones

    +

    The second requirement excludes all linear functions. Furthermore, in +a MLP with only linear activation functions, each layer simply +performs a linear transformation of its inputs.

    +

    Regardless of the number of layers, the output of the NN will be +nothing but a linear function of the inputs. Thus we need to introduce +some kind of non-linearity to the NN to be able to fit non-linear +functions Typical examples are the logistic Sigmoid

    +
    +\[ +f(x) = \frac{1}{1 + e^{-x}}, +\]
    +

    and the hyperbolic tangent function

    +
    +\[ +f(x) = \tanh(x) +\]
    +
    +
    +

    Relevance

    +

    The sigmoid function are more biologically plausible because the +output of inactive neurons are zero. Such activation function are +called one-sided. However, it has been shown that the hyperbolic +tangent performs better than the sigmoid for training MLPs. has +become the most popular for deep neural networks

    +
    +
    +
    """The sigmoid function (or the logistic curve) is a 
    +function that takes any real number, z, and outputs a number (0,1).
    +It is useful in neural networks for assigning weights on a relative scale.
    +The value z is the weighted sum of parameters involved in the learning algorithm."""
    +
    +import numpy
    +import matplotlib.pyplot as plt
    +import math as mt
    +
    +z = numpy.arange(-5, 5, .1)
    +sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))
    +sigma = sigma_fn(z)
    +
    +fig = plt.figure()
    +ax = fig.add_subplot(111)
    +ax.plot(z, sigma)
    +ax.set_ylim([-0.1, 1.1])
    +ax.set_xlim([-5,5])
    +ax.grid(True)
    +ax.set_xlabel('z')
    +ax.set_title('sigmoid function')
    +
    +plt.show()
    +
    +"""Step Function"""
    +z = numpy.arange(-5, 5, .02)
    +step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)
    +step = step_fn(z)
    +
    +fig = plt.figure()
    +ax = fig.add_subplot(111)
    +ax.plot(z, step)
    +ax.set_ylim([-0.5, 1.5])
    +ax.set_xlim([-5,5])
    +ax.grid(True)
    +ax.set_xlabel('z')
    +ax.set_title('step function')
    +
    +plt.show()
    +
    +"""Sine Function"""
    +z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)
    +t = numpy.sin(z)
    +
    +fig = plt.figure()
    +ax = fig.add_subplot(111)
    +ax.plot(z, t)
    +ax.set_ylim([-1.0, 1.0])
    +ax.set_xlim([-2*mt.pi,2*mt.pi])
    +ax.grid(True)
    +ax.set_xlabel('z')
    +ax.set_title('sine function')
    +
    +plt.show()
    +
    +"""Plots a graph of the squashing function used by a rectified linear
    +unit"""
    +z = numpy.arange(-2, 2, .1)
    +zero = numpy.zeros(len(z))
    +y = numpy.max([zero, z], axis=0)
    +
    +fig = plt.figure()
    +ax = fig.add_subplot(111)
    +ax.plot(z, y)
    +ax.set_ylim([-2.0, 2.0])
    +ax.set_xlim([-2.0, 2.0])
    +ax.grid(True)
    +ax.set_xlabel('z')
    +ax.set_title('Rectified linear unit')
    +
    +plt.show()
    +
    +
    +
    +
    +_images/week41_57_0.png +_images/week41_57_1.png +_images/week41_57_2.png +_images/week41_57_3.png +
    +
    +
    +
    +
    +

    The multilayer perceptron (MLP)

    +

    The multilayer perceptron is a very popular, and easy to implement approach, to deep learning. It consists of

    +
      +
    1. A neural network with one or more layers of nodes between the input and the output nodes.

    2. +
    3. The multilayer network structure, or architecture, or topology, consists of an input layer, one or more hidden layers, and one output layer.

    4. +
    5. The input nodes pass values to the first hidden layer, its nodes pass the information on to the second and so on till we reach the output layer.

    6. +
    +

    As a convention it is normal to call a network with one layer of input units, one layer of hidden +units and one layer of output units as a two-layer network. A network with two layers of hidden units is called a three-layer network etc etc.

    +

    For an MLP network there is no direct connection between the output nodes/neurons/units and the input nodes/neurons/units. +Hereafter we will call the various entities of a layer for nodes. +There are also no connections within a single layer.

    +

    The number of input nodes does not need to equal the number of output +nodes. This applies also to the hidden layers. Each layer may have its +own number of nodes and activation functions.

    +

    The hidden layers have their name from the fact that they are not +linked to observables and as we will see below when we define the +so-called activation \(\hat{z}\), we can think of this as a basis +expansion of the original inputs \(\hat{x}\). The difference however +between neural networks and say linear regression is that now these +basis functions (which will correspond to the weights in the network) +are learned from data. This results in an important difference between +neural networks and deep learning approaches on one side and methods +like logistic regression or linear regression and their modifications on the other side.

    +
    +
    +

    From one to many layers, the universal approximation theorem

    +

    A neural network with only one layer, what we called the simple +perceptron, is best suited if we have a standard binary model with +clear (linear) boundaries between the outcomes. As such it could +equally well be replaced by standard linear regression or logistic +regression. Networks with one or more hidden layers approximate +systems with more complex boundaries.

    +

    As stated earlier, +an important theorem in studies of neural networks, restated without +proof here, is the universal approximation +theorem.

    +

    It states that a feed-forward network with a single hidden layer +containing a finite number of neurons can approximate continuous +functions on compact subsets of real functions. The theorem thus +states that simple neural networks can represent a wide variety of +interesting functions when given appropriate parameters. It is the +multilayer feedforward architecture itself which gives neural networks +the potential of being universal approximators.

    +
    +
    +

    Deriving the back propagation code for a multilayer perceptron model

    +

    As we have seen now in a feed forward network, we can express the final output of our network in terms of basic matrix-vector multiplications. +The unknowwn quantities are our weights \(w_{ij}\) and we need to find an algorithm for changing them so that our errors are as small as possible. +This leads us to the famous back propagation algorithm.

    +

    The questions we want to ask are how do changes in the biases and the +weights in our network change the cost function and how can we use the +final output to modify the weights?

    +

    To derive these equations let us start with a plain regression problem +and define our cost function as

    +
    +\[ +{\cal C}(\hat{W}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2, +\]
    +

    where the \(t_i\)s are our \(n\) targets (the values we want to +reproduce), while the outputs of the network after having propagated +all inputs \(\hat{x}\) are given by \(y_i\). Below we will demonstrate +how the basic equations arising from the back propagation algorithm +can be modified in order to study classification problems with \(K\) +classes.

    +
    +
    +

    Definitions

    +

    With our definition of the targets \(\hat{t}\), the outputs of the +network \(\hat{y}\) and the inputs \(\hat{x}\) we +define now the activation \(z_j^l\) of node/neuron/unit \(j\) of the +\(l\)-th layer as a function of the bias, the weights which add up from +the previous layer \(l-1\) and the forward passes/outputs +\(\hat{a}^{l-1}\) from the previous layer as

    +
    +\[ +z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, +\]
    +

    where \(b_k^l\) are the biases from layer \(l\). Here \(M_{l-1}\) +represents the total number of nodes/neurons/units of layer \(l-1\). The +figure here illustrates this equation. We can rewrite this in a more +compact form as the matrix-vector products we discussed earlier,

    +
    +\[ +\hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. +\]
    +

    With the activation values \(\hat{z}^l\) we can in turn define the +output of layer \(l\) as \(\hat{a}^l = f(\hat{z}^l)\) where \(f\) is our +activation function. In the examples here we will use the sigmoid +function discussed in our logistic regression lectures. We will also use the same activation function \(f\) for all layers +and their nodes. It means we have

    +
    +\[ +a_j^l = f(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. +\]
    +
    +
    +

    Derivatives and the chain rule

    +

    From the definition of the activation \(z_j^l\) we have

    +
    +\[ +\frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, +\]
    +

    and

    +
    +\[ +\frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. +\]
    +

    With our definition of the activation function we have that (note that this function depends only on \(z_j^l\))

    +
    +\[ +\frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=f(z_j^l)(1-f(z_j^l)). +\]
    +
    +
    +

    Derivative of the cost function

    +

    With these definitions we can now compute the derivative of the cost function in terms of the weights.

    +

    Let us specialize to the output layer \(l=L\). Our cost function is

    +
    +\[ +{\cal C}(\hat{W^L}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - t_i\right)^2, +\]
    +

    The derivative of this function with respect to the weights is

    +
    +\[ +\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, +\]
    +

    The last partial derivative can easily be computed and reads (by applying the chain rule)

    +
    +\[ +\frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}, +\]
    +
    +
    +

    Bringing it together, first back propagation equation

    +

    We have thus

    +
    +\[ +\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_j\right)a_j^L(1-a_j^L)a_k^{L-1}, +\]
    +

    Defining

    +
    +\[ +\delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - t_j\right) = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +\]
    +

    and using the Hadamard product of two vectors we can write this as

    +
    +\[ +\hat{\delta}^L = f'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\hat{a}^L)}. +\]
    +

    This is an important expression. The second term on the right handside +measures how fast the cost function is changing as a function of the \(j\)th +output activation. If, for example, the cost function doesn’t depend +much on a particular output node \(j\), then \(\delta_j^L\) will be small, +which is what we would expect. The first term on the right, measures +how fast the activation function \(f\) is changing at a given activation +value \(z_j^L\).

    +

    Notice that everything in the above equations is easily computed. In +particular, we compute \(z_j^L\) while computing the behaviour of the +network, and it is only a small additional overhead to compute +\(f'(z^L_j)\). The exact form of the derivative with respect to the +output depends on the form of the cost function. +However, provided the cost function is known there should be little +trouble in calculating

    +
    +\[ +\frac{\partial {\cal C}}{\partial (a_j^L)} +\]
    +

    With the definition of \(\delta_j^L\) we have a more compact definition of the derivative of the cost function in terms of the weights, namely

    +
    +\[ +\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. +\]
    +
    +
    +

    Derivatives in terms of \(z_j^L\)

    +

    It is also easy to see that our previous equation can be written as

    +
    +\[ +\delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, +\]
    +

    which can also be interpreted as the partial derivative of the cost function with respect to the biases \(b_j^L\), namely

    +
    +\[ +\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, +\]
    +

    That is, the error \(\delta_j^L\) is exactly equal to the rate of change of the cost function as a function of the bias.

    +
    +
    +

    Bringing it together

    +

    We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are

    +

    The starting equations.

    + +
    +
    +\[ +\begin{equation} +\frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, +\label{_auto8} \tag{13} +\end{equation} +\]
    +

    and

    + +
    +
    +\[ +\begin{equation} +\delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +\label{_auto9} \tag{14} +\end{equation} +\]
    +

    and

    + +
    +
    +\[ +\begin{equation} +\delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, +\label{_auto10} \tag{15} +\end{equation} +\]
    +

    An interesting consequence of the above equations is that when the +activation \(a_k^{L-1}\) is small, the gradient term, that is the +derivative of the cost function with respect to the weights, will also +tend to be small. We say then that the weight learns slowly, meaning +that it changes slowly when we minimize the weights via say gradient +descent. In this case we say the system learns slowly.

    +

    Another interesting feature is that is when the activation function, +represented by the sigmoid function here, is rather flat when we move towards +its end values \(0\) and \(1\) (see the above Python codes). In these +cases, the derivatives of the activation function will also be close +to zero, meaning again that the gradients will be small and the +network learns slowly again.

    +

    We need a fourth equation and we are set. We are going to propagate +backwards in order to the determine the weights and biases. In order +to do so we need to represent the error in the layer before the final +one \(L-1\) in terms of the errors in the final output layer.

    +
    +
    +

    Final back propagating equation

    +

    We have that (replacing \(L\) with a general layer \(l\))

    +
    +\[ +\delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. +\]
    +

    We want to express this in terms of the equations for layer \(l+1\). Using the chain rule and summing over all \(k\) entries we have

    +
    +\[ +\delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, +\]
    +

    and recalling that

    +
    +\[ +z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, +\]
    +

    with \(M_l\) being the number of nodes in layer \(l\), we obtain

    +
    +\[ +\delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l), +\]
    +

    This is our final equation.

    +

    We are now ready to set up the algorithm for back propagation and learning the weights and biases.

    +
    +
    +

    Setting up the Back propagation algorithm

    +

    The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

    +

    First, we set up the input data \(\hat{x}\) and the activations +\(\hat{z}_1\) of the input layer and compute the activation function and +the pertinent outputs \(\hat{a}^1\).

    +

    Secondly, we perform then the feed forward till we reach the output +layer and compute all \(\hat{z}_l\) of the input layer and compute the +activation function and the pertinent outputs \(\hat{a}^l\) for +\(l=2,3,\dots,L\).

    +

    Thereafter we compute the ouput error \(\hat{\delta}^L\) by computing all

    +
    +\[ +\delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +\]
    +

    Then we compute the back propagate error for each \(l=L-1,L-2,\dots,2\) as

    +
    +\[ +\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +\]
    +

    Finally, we update the weights and the biases using gradient descent for each \(l=L-1,L-2,\dots,2\) and update the weights and biases according to the rules

    +
    +\[ +w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +\]
    +
    +\[ +b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +\]
    +

    The parameter \(\eta\) is the learning parameter discussed in connection with the gradient descent methods. +Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training.

    +
    +
    +

    Setting up the Back propagation algorithm

    +

    The four equations above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

    +

    First, we set up the input data \(\boldsymbol{x}\) and the activations +\(\boldsymbol{z}_1\) of the input layer and compute the activation function and +the pertinent outputs \(\boldsymbol{a}^1\).

    +

    Secondly, we perform then the feed forward till we reach the output +layer and compute all \(\boldsymbol{z}_l\) of the input layer and compute the +activation function and the pertinent outputs \(\boldsymbol{a}^l\) for +\(l=2,3,\dots,L\).

    +

    Thereafter we compute the ouput error \(\boldsymbol{\delta}^L\) by computing all

    +
    +\[ +\delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +\]
    +

    Then we compute the back propagate error for each \(l=L-1,L-2,\dots,2\) as

    +
    +\[ +\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +\]
    +

    Finally, we update the weights and the biases using gradient descent for each \(l=L-1,L-2,\dots,2\) and update the weights and biases according to the rules

    +
    +\[ +w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +\]
    +
    +\[ +b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +\]
    +

    The parameter \(\eta\) is the learning parameter discussed in connection with the gradient descent methods. +Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training.

    +
    +
    +

    Setting up the Back propagation algorithm

    +

    The four equations derived discussed above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.

    +

    First, we set up the input data \(\boldsymbol{x}\) and the activations +\(\boldsymbol{z}_1\) of the input layer and compute the activation function and +the pertinent outputs \(\boldsymbol{a}^1\).

    +

    Secondly, we perform then the feed forward till we reach the output +layer and compute all \(\boldsymbol{z}_l\) of the input layer and compute the +activation function and the pertinent outputs \(\boldsymbol{a}^l\) for +\(l=2,3,\dots,L\).

    +

    Thereafter we compute the ouput error \(\boldsymbol{\delta}^L\) by computing all

    +
    +\[ +\delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +\]
    +

    Then we compute the back propagate error for each \(l=L-1,L-2,\dots,2\) as

    +
    +\[ +\delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +\]
    +

    Finally, we update the weights and the biases using gradient descent for each \(l=L-1,L-2,\dots,2\) and update the weights and biases according to the rules

    +
    +\[ +w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +\]
    +
    +\[ +b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +\]
    +

    The parameter \(\eta\) is the learning parameter discussed in connection with the gradient descent methods. +Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training.

    +
    +
    +

    Setting up a Multi-layer perceptron model for classification

    +

    We are now gong to develop an example based on the MNIST data +base. This is a classification problem and we need to use our +cross-entropy function we discussed in connection with logistic +regression. The cross-entropy defines our cost function for the +classificaton problems with neural networks.

    +

    In binary classification with two classes \((0, 1)\) we define the +logistic/sigmoid function as the probability that a particular input +is in class \(0\) or \(1\). This is possible because the logistic +function takes any input from the real numbers and inputs a number +between 0 and 1, and can therefore be interpreted as a probability. It +also has other nice properties, such as a derivative that is simple to +calculate.

    +

    For an input \(\boldsymbol{a}\) from the hidden layer, the probability that the input \(\boldsymbol{x}\) +is in class 0 or 1 is just. We let \(\theta\) represent the unknown weights and biases to be adjusted by our equations). The variable \(x\) +represents our activation values \(z\). We have

    +
    +\[ +P(y = 0 \mid \boldsymbol{x}, \boldsymbol{\theta}) = \frac{1}{1 + \exp{(- \boldsymbol{x}})} , +\]
    +

    and

    +
    +\[ +P(y = 1 \mid \boldsymbol{x}, \boldsymbol{\theta}) = 1 - P(y = 0 \mid \boldsymbol{x}, \boldsymbol{\theta}) , +\]
    +

    where \(y \in \{0, 1\}\) and \(\boldsymbol{\theta}\) represents the weights and biases +of our network.

    +
    +
    +

    Defining the cost function

    +

    Our cost function is given as (see the Logistic regression lectures)

    +
    +\[ +\mathcal{C}(\boldsymbol{\theta}) = - \ln P(\mathcal{D} \mid \boldsymbol{\theta}) = - \sum_{i=1}^n +y_i \ln[P(y_i = 0)] + (1 - y_i) \ln [1 - P(y_i = 0)] = \sum_{i=1}^n \mathcal{L}_i(\boldsymbol{\theta}) . +\]
    +

    This last equality means that we can interpret our cost function as a sum over the loss function +for each point in the dataset \(\mathcal{L}_i(\boldsymbol{\theta})\).
    +The negative sign is just so that we can think about our algorithm as minimizing a positive number, rather +than maximizing a negative number.

    +

    In multiclass classification it is common to treat each integer label as a so called one-hot vector:

    +

    \(y = 5 \quad \rightarrow \quad \boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,\) and

    +

    \(y = 1 \quad \rightarrow \quad \boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,\)

    +

    i.e. a binary bit string of length \(C\), where \(C = 10\) is the number of classes in the MNIST dataset (numbers from \(0\) to \(9\))..

    +

    If \(\boldsymbol{x}_i\) is the \(i\)-th input (image), \(y_{ic}\) refers to the \(c\)-th component of the \(i\)-th +output vector \(\boldsymbol{y}_i\).
    +The probability of \(\boldsymbol{x}_i\) being in class \(c\) will be given by the softmax function:

    +
    +\[ +P(y_{ic} = 1 \mid \boldsymbol{x}_i, \boldsymbol{\theta}) = \frac{\exp{((\boldsymbol{a}_i^{hidden})^T \boldsymbol{w}_c)}} +{\sum_{c'=0}^{C-1} \exp{((\boldsymbol{a}_i^{hidden})^T \boldsymbol{w}_{c'})}} , +\]
    +

    which reduces to the logistic function in the binary case.
    +The likelihood of this \(C\)-class classifier +is now given as:

    +
    +\[ +P(\mathcal{D} \mid \boldsymbol{\theta}) = \prod_{i=1}^n \prod_{c=0}^{C-1} [P(y_{ic} = 1)]^{y_{ic}} . +\]
    +

    Again we take the negative log-likelihood to define our cost function:

    +
    +\[ +\mathcal{C}(\boldsymbol{\theta}) = - \log{P(\mathcal{D} \mid \boldsymbol{\theta})}. +\]
    +

    See the logistic regression lectures for a full definition of the cost function.

    +

    The back propagation equations need now only a small change, namely the definition of a new cost function. We are thus ready to use the same equations as before!

    +
    +
    +

    Example: binary classification problem

    +

    As an example of the above, relevant for project 2 as well, let us consider a binary class. As discussed in our logistic regression lectures, we defined a cost function in terms of the parameters \(\beta\) as

    +
    +\[ +\mathcal{C}(\boldsymbol{\beta}) = - \sum_{i=1}^n \left(y_i\log{p(y_i \vert x_i,\boldsymbol{\beta})}+(1-y_i)\log{1-p(y_i \vert x_i,\boldsymbol{\beta})}\right), +\]
    +

    where we had defined the logistic (sigmoid) function

    +
    +\[ +p(y_i =1\vert x_i,\boldsymbol{\beta})=\frac{\exp{(\beta_0+\beta_1 x_i)}}{1+\exp{(\beta_0+\beta_1 x_i)}}, +\]
    +

    and

    +
    +\[ +p(y_i =0\vert x_i,\boldsymbol{\beta})=1-p(y_i =1\vert x_i,\boldsymbol{\beta}). +\]
    +

    The parameters \(\boldsymbol{\beta}\) were defined using a minimization method like gradient descent or Newton-Raphson’s method.

    +

    Now we replace \(x_i\) with the activation \(z_i^l\) for a given layer \(l\) and the outputs as \(y_i=a_i^l=f(z_i^l)\), with \(z_i^l\) now being a function of the weights \(w_{ij}^l\) and biases \(b_i^l\). +We have then

    +
    +\[ +a_i^l = y_i = \frac{\exp{(z_i^l)}}{1+\exp{(z_i^l)}}, +\]
    +

    with

    +
    +\[ +z_i^l = \sum_{j}w_{ij}^l a_j^{l-1}+b_i^l, +\]
    +

    where the superscript \(l-1\) indicates that these are the outputs from layer \(l-1\). +Our cost function at the final layer \(l=L\) is now

    +
    +\[ +\mathcal{C}(\boldsymbol{W}) = - \sum_{i=1}^n \left(t_i\log{a_i^L}+(1-t_i)\log{(1-a_i^L)}\right), +\]
    +

    where we have defined the targets \(t_i\). The derivatives of the cost function with respect to the output \(a_i^L\) are then easily calculated and we get

    +
    +\[ +\frac{\partial \mathcal{C}(\boldsymbol{W})}{\partial a_i^L} = \frac{a_i^L-t_i}{a_i^L(1-a_i^L)}. +\]
    +

    In case we use another activation function than the logistic one, we need to evaluate other derivatives.

    +
    +
    +

    The Softmax function

    +

    In case we employ the more general case given by the Softmax equation, we need to evaluate the derivative of the activation function with respect to the activation \(z_i^l\), that is we need

    +
    +\[ +\frac{\partial f(z_i^l)}{\partial w_{jk}^l} = +\frac{\partial f(z_i^l)}{\partial z_j^l} \frac{\partial z_j^l}{\partial w_{jk}^l}= \frac{\partial f(z_i^l)}{\partial z_j^l}a_k^{l-1}. +\]
    +

    For the Softmax function we have

    +
    +\[ +f(z_i^l) = \frac{\exp{(z_i^l)}}{\sum_{m=1}^K\exp{(z_m^l)}}. +\]
    +

    Its derivative with respect to \(z_j^l\) gives

    +
    +\[ +\frac{\partial f(z_i^l)}{\partial z_j^l}= f(z_i^l)\left(\delta_{ij}-f(z_j^l)\right), +\]
    +

    which in case of the simply binary model reduces to having \(i=j\).

    +
    +
    +

    Developing a code for doing neural networks with back propagation

    +

    One can identify a set of key steps when using neural networks to solve supervised learning problems:

    +
      +
    1. Collect and pre-process data

    2. +
    3. Define model and architecture

    4. +
    5. Choose cost function and optimizer

    6. +
    7. Train the model

    8. +
    9. Evaluate model performance on test data

    10. +
    11. Adjust hyperparameters (if necessary, network architecture)

    12. +
    +
    +
    +

    Collect and pre-process data

    +

    Here we will be using the MNIST dataset, which is readily available through the scikit-learn +package. You may also find it for example here.
    +The MNIST (Modified National Institute of Standards and Technology) database is a large database +of handwritten digits that is commonly used for training various image processing systems.
    +The MNIST dataset consists of 70 000 images of size \(28\times 28\) pixels, each labeled from 0 to 9.
    +The scikit-learn dataset we will use consists of a selection of 1797 images of size \(8\times 8\) collected and processed from this database.

    +

    To feed data into a feed-forward neural network we need to represent +the inputs as a design/feature matrix \(X = (n_{inputs}, n_{features})\). Each +row represents an input, in this case a handwritten digit, and +each column represents a feature, in this case a pixel. The +correct answers, also known as labels or targets are +represented as a 1D array of integers +\(Y = (n_{inputs}) = (5, 3, 1, 8,...)\).

    +

    As an example, say we want to build a neural network using supervised learning to predict Body-Mass Index (BMI) from +measurements of height (in m)
    +and weight (in kg). If we have measurements of 5 people the design/feature matrix could be for example:

    +
    +\[\begin{split} X = \begin{bmatrix} +1.85 & 81\\ +1.71 & 65\\ +1.95 & 103\\ +1.55 & 42\\ +1.63 & 56 +\end{bmatrix} ,\end{split}\]
    +

    and the targets would be:

    +
    +\[ Y = (23.7, 22.2, 27.1, 17.5, 21.1) \]
    +

    Since each input image is a 2D matrix, we need to flatten the image +(i.e. “unravel” the 2D matrix into a 1D array) to turn the data into a +design/feature matrix. This means we lose all spatial information in the +image, such as locality and translational invariance. More complicated +architectures such as Convolutional Neural Networks can take advantage +of such information, and are most commonly applied when analyzing +images.

    +
    +
    +
    # import necessary packages
    +import numpy as np
    +import matplotlib.pyplot as plt
    +from sklearn import datasets
    +
    +
    +# ensure the same random numbers appear every time
    +np.random.seed(0)
    +
    +# display images in notebook
    +%matplotlib inline
    +plt.rcParams['figure.figsize'] = (12,12)
    +
    +
    +# download MNIST dataset
    +digits = datasets.load_digits()
    +
    +# define inputs and labels
    +inputs = digits.images
    +labels = digits.target
    +
    +print("inputs = (n_inputs, pixel_width, pixel_height) = " + str(inputs.shape))
    +print("labels = (n_inputs) = " + str(labels.shape))
    +
    +
    +# flatten the image
    +# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64
    +n_inputs = len(inputs)
    +inputs = inputs.reshape(n_inputs, -1)
    +print("X = (n_inputs, n_features) = " + str(inputs.shape))
    +
    +
    +# choose some random images to display
    +indices = np.arange(n_inputs)
    +random_indices = np.random.choice(indices, size=5)
    +
    +for i, image in enumerate(digits.images[random_indices]):
    +    plt.subplot(1, 5, i+1)
    +    plt.axis('off')
    +    plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
    +    plt.title("Label: %d" % digits.target[random_indices[i]])
    +plt.show()
    +
    +
    +
    +
    +
    inputs = (n_inputs, pixel_width, pixel_height) = (1797, 8, 8)
    +labels = (n_inputs) = (1797,)
    +X = (n_inputs, n_features) = (1797, 64)
    +
    +
    +_images/week41_174_1.png +
    +
    +
    +
    +

    Train and test datasets

    +

    Performing analysis before partitioning the dataset is a major error, that can lead to incorrect conclusions.

    +

    We will reserve \(80 \%\) of our dataset for training and \(20 \%\) for testing.

    +

    It is important that the train and test datasets are drawn randomly from our dataset, to ensure +no bias in the sampling.
    +Say you are taking measurements of weather data to predict the weather in the coming 5 days. +You don’t want to train your model on measurements taken from the hours 00.00 to 12.00, and then test it on data +collected from 12.00 to 24.00.

    +
    +
    +
    from sklearn.model_selection import train_test_split
    +
    +# one-liner from scikit-learn library
    +train_size = 0.8
    +test_size = 1 - train_size
    +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size,
    +                                                    test_size=test_size)
    +
    +# equivalently in numpy
    +def train_test_split_numpy(inputs, labels, train_size, test_size):
    +    n_inputs = len(inputs)
    +    inputs_shuffled = inputs.copy()
    +    labels_shuffled = labels.copy()
    +    
    +    np.random.shuffle(inputs_shuffled)
    +    np.random.shuffle(labels_shuffled)
    +    
    +    train_end = int(n_inputs*train_size)
    +    X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:]
    +    Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:]
    +    
    +    return X_train, X_test, Y_train, Y_test
    +
    +#X_train, X_test, Y_train, Y_test = train_test_split_numpy(inputs, labels, train_size, test_size)
    +
    +print("Number of training images: " + str(len(X_train)))
    +print("Number of test images: " + str(len(X_test)))
    +
    +
    +
    +
    +
    Number of training images: 1437
    +Number of test images: 360
    +
    +
    +
    +
    +
    +
    +

    Define model and architecture

    +

    Our simple feed-forward neural network will consist of an input layer, a single hidden layer and an output layer. The activation \(y\) of each neuron is a weighted sum of inputs, passed through an activation function. In case of the simple perceptron model we have

    +
    +\[ z = \sum_{i=1}^n w_i a_i ,\]
    +
    +\[ y = f(z) ,\]
    +

    where \(f\) is the activation function, \(a_i\) represents input from neuron \(i\) in the preceding layer +and \(w_i\) is the weight to input \(i\).
    +The activation of the neurons in the input layer is just the features (e.g. a pixel value).

    +

    The simplest activation function for a neuron is the Heaviside function:

    +
    +\[\begin{split} f(z) = +\begin{cases} +1, & z > 0\\ +0, & \text{otherwise} +\end{cases} +\end{split}\]
    +

    A feed-forward neural network with this activation is known as a perceptron.
    +For a binary classifier (i.e. two classes, 0 or 1, dog or not-dog) we can also use this in our output layer.
    +This activation can be generalized to \(k\) classes (using e.g. the one-against-all strategy), +and we call these architectures multiclass perceptrons.

    +

    However, it is now common to use the terms Single Layer Perceptron (SLP) (1 hidden layer) and
    +Multilayer Perceptron (MLP) (2 or more hidden layers) to refer to feed-forward neural networks with any activation function.

    +

    Typical choices for activation functions include the sigmoid function, hyperbolic tangent, and Rectified Linear Unit (ReLU).
    +We will be using the sigmoid function \(\sigma(x)\):

    +
    +\[ f(x) = \sigma(x) = \frac{1}{1 + e^{-x}} ,\]
    +

    which is inspired by probability theory (see logistic regression) and was most commonly used until about 2011. See the discussion below concerning other activation functions.

    +
    +
    +

    Layers

    +
      +
    • Input

    • +
    +

    Since each input image has 8x8 = 64 pixels or features, we have an input layer of 64 neurons.

    +
      +
    • Hidden layer

    • +
    +

    We will use 50 neurons in the hidden layer receiving input from the neurons in the input layer.
    +Since each neuron in the hidden layer is connected to the 64 inputs we have 64x50 = 3200 weights to the hidden layer.

    +
      +
    • Output

    • +
    +

    If we were building a binary classifier, it would be sufficient with a single neuron in the output layer, +which could output 0 or 1 according to the Heaviside function. This would be an example of a hard classifier, meaning it outputs the class of the input directly. However, if we are dealing with noisy data it is often beneficial to use a soft classifier, which outputs the probability of being in class 0 or 1.

    +

    For a soft binary classifier, we could use a single neuron and interpret the output as either being the probability of being in class 0 or the probability of being in class 1. Alternatively we could use 2 neurons, and interpret each neuron as the probability of being in each class.

    +

    Since we are doing multiclass classification, with 10 categories, it is natural to use 10 neurons in the output layer. We number the neurons \(j = 0,1,...,9\). The activation of each output neuron \(j\) will be according to the softmax function:

    +
    +\[ P(\text{class $j$} \mid \text{input $\boldsymbol{a}$}) = \frac{\exp{(\boldsymbol{a}^T \boldsymbol{w}_j)}} +{\sum_{c=0}^{9} \exp{(\boldsymbol{a}^T \boldsymbol{w}_c)}} ,\]
    +

    i.e. each neuron \(j\) outputs the probability of being in class \(j\) given an input from the hidden layer \(\boldsymbol{a}\), with \(\boldsymbol{w}_j\) the weights of neuron \(j\) to the inputs.
    +The denominator is a normalization factor to ensure the outputs (probabilities) sum up to 1.
    +The exponent is just the weighted sum of inputs as before:

    +
    +\[ z_j = \sum_{i=1}^n w_ {ij} a_i+b_j.\]
    +

    Since each neuron in the output layer is connected to the 50 inputs from the hidden layer we have 50x10 = 500 +weights to the output layer.

    +
    +
    +

    Weights and biases

    +

    Typically weights are initialized with small values distributed around zero, drawn from a uniform +or normal distribution. Setting all weights to zero means all neurons give the same output, making the network useless.

    +

    Adding a bias value to the weighted sum of inputs allows the neural network to represent a greater range +of values. Without it, any input with the value 0 will be mapped to zero (before being passed through the activation). The bias unit has an output of 1, and a weight to each neuron \(j\), \(b_j\):

    +
    +\[ z_j = \sum_{i=1}^n w_ {ij} a_i + b_j.\]
    +

    The bias weights \(\boldsymbol{b}\) are often initialized to zero, but a small value like \(0.01\) ensures all neurons have some output which can be backpropagated in the first training cycle.

    +
    +
    +
    # building our neural network
    +
    +n_inputs, n_features = X_train.shape
    +n_hidden_neurons = 50
    +n_categories = 10
    +
    +# we make the weights normally distributed using numpy.random.randn
    +
    +# weights and bias in the hidden layer
    +hidden_weights = np.random.randn(n_features, n_hidden_neurons)
    +hidden_bias = np.zeros(n_hidden_neurons) + 0.01
    +
    +# weights and bias in the output layer
    +output_weights = np.random.randn(n_hidden_neurons, n_categories)
    +output_bias = np.zeros(n_categories) + 0.01
    +
    +
    +
    +
    +
    +
    +

    Feed-forward pass

    +

    Denote \(F\) the number of features, \(H\) the number of hidden neurons and \(C\) the number of categories.
    +For each input image we calculate a weighted sum of input features (pixel values) to each neuron \(j\) in the hidden layer \(l\):

    +
    +\[ z_{j}^{l} = \sum_{i=1}^{F} w_{ij}^{l} x_i + b_{j}^{l},\]
    +

    this is then passed through our activation function

    +
    +\[ a_{j}^{l} = f(z_{j}^{l}) .\]
    +

    We calculate a weighted sum of inputs (activations in the hidden layer) to each neuron \(j\) in the output layer:

    +
    +\[ z_{j}^{L} = \sum_{i=1}^{H} w_{ij}^{L} a_{i}^{l} + b_{j}^{L}.\]
    +

    Finally we calculate the output of neuron \(j\) in the output layer using the softmax function:

    +
    +\[ a_{j}^{L} = \frac{\exp{(z_j^{L})}} +{\sum_{c=0}^{C-1} \exp{(z_c^{L})}} .\]
    +
    +
    +

    Matrix multiplications

    +

    Since our data has the dimensions \(X = (n_{inputs}, n_{features})\) and our weights to the hidden +layer have the dimensions
    +\(W_{hidden} = (n_{features}, n_{hidden})\), +we can easily feed the network all our training data in one go by taking the matrix product

    +
    +\[ X W^{h} = (n_{inputs}, n_{hidden}),\]
    +

    and obtain a matrix that holds the weighted sum of inputs to the hidden layer +for each input image and each hidden neuron.
    +We also add the bias to obtain a matrix of weighted sums to the hidden layer \(Z^{h}\):

    +
    +\[ \boldsymbol{z}^{l} = \boldsymbol{X} \boldsymbol{W}^{l} + \boldsymbol{b}^{l} ,\]
    +

    meaning the same bias (1D array with size equal number of hidden neurons) is added to each input image.
    +This is then passed through the activation:

    +
    +\[ \boldsymbol{a}^{l} = f(\boldsymbol{z}^l) .\]
    +

    This is fed to the output layer:

    +
    +\[ \boldsymbol{z}^{L} = \boldsymbol{a}^{L} \boldsymbol{W}^{L} + \boldsymbol{b}^{L} .\]
    +

    Finally we receive our output values for each image and each category by passing it through the softmax function:

    +
    +\[ output = softmax (\boldsymbol{z}^{L}) = (n_{inputs}, n_{categories}) .\]
    +
    +
    +
    # setup the feed-forward pass, subscript h = hidden layer
    +
    +def sigmoid(x):
    +    return 1/(1 + np.exp(-x))
    +
    +def feed_forward(X):
    +    # weighted sum of inputs to the hidden layer
    +    z_h = np.matmul(X, hidden_weights) + hidden_bias
    +    # activation in the hidden layer
    +    a_h = sigmoid(z_h)
    +    
    +    # weighted sum of inputs to the output layer
    +    z_o = np.matmul(a_h, output_weights) + output_bias
    +    # softmax output
    +    # axis 0 holds each input and axis 1 the probabilities of each category
    +    exp_term = np.exp(z_o)
    +    probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +    
    +    return probabilities
    +
    +probabilities = feed_forward(X_train)
    +print("probabilities = (n_inputs, n_categories) = " + str(probabilities.shape))
    +print("probability that image 0 is in category 0,1,2,...,9 = \n" + str(probabilities[0]))
    +print("probabilities sum up to: " + str(probabilities[0].sum()))
    +print()
    +
    +# we obtain a prediction by taking the class with the highest likelihood
    +def predict(X):
    +    probabilities = feed_forward(X)
    +    return np.argmax(probabilities, axis=1)
    +
    +predictions = predict(X_train)
    +print("predictions = (n_inputs) = " + str(predictions.shape))
    +print("prediction for image 0: " + str(predictions[0]))
    +print("correct label for image 0: " + str(Y_train[0]))
    +
    +
    +
    +
    +
    probabilities = (n_inputs, n_categories) = (1437, 10)
    +probability that image 0 is in category 0,1,2,...,9 = 
    +[5.41511965e-04 2.17174962e-03 8.84355903e-03 1.44970586e-03
    + 1.10378326e-04 5.08318298e-09 2.03256632e-04 1.92507116e-03
    + 9.84443254e-01 3.11507992e-04]
    +probabilities sum up to: 1.0
    +
    +predictions = (n_inputs) = (1437,)
    +prediction for image 0: 8
    +correct label for image 0: 6
    +
    +
    +
    +
    +
    +
    +

    Choose cost function and optimizer

    +

    To measure how well our neural network is doing we need to introduce a cost function.
    +We will call the function that gives the error of a single sample output the loss function, and the function +that gives the total error of our network across all samples the cost function. +A typical choice for multiclass classification is the cross-entropy loss, also known as the negative log likelihood.

    +

    In multiclass classification it is common to treat each integer label as a so called one-hot vector:

    +
    +\[ y = 5 \quad \rightarrow \quad \boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,\]
    +
    +\[ y = 1 \quad \rightarrow \quad \boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,\]
    +

    i.e. a binary bit string of length \(C\), where \(C = 10\) is the number of classes in the MNIST dataset.

    +

    Let \(y_{ic}\) denote the \(c\)-th component of the \(i\)-th one-hot vector.
    +We define the cost function \(\mathcal{C}\) as a sum over the cross-entropy loss for each point \(\boldsymbol{x}_i\) in the dataset.

    +

    In the one-hot representation only one of the terms in the loss function is non-zero, namely the +probability of the correct category \(c'\)
    +(i.e. the category \(c'\) such that \(y_{ic'} = 1\)). This means that the cross entropy loss only punishes you for how wrong +you got the correct label. The probability of category \(c\) is given by the softmax function. The vector \(\boldsymbol{\theta}\) represents the parameters of our network, i.e. all the weights and biases.

    +
    +
    +

    Optimizing the cost function

    +

    The network is trained by finding the weights and biases that minimize the cost function. One of the most widely used classes of methods is gradient descent and its generalizations. The idea behind gradient descent +is simply to adjust the weights in the direction where the gradient of the cost function is large and negative. This ensures we flow toward a local minimum of the cost function.
    +Each parameter \(\theta\) is iteratively adjusted according to the rule

    +
    +\[ \theta_{i+1} = \theta_i - \eta \nabla \mathcal{C}(\theta_i) ,\]
    +

    where \(\eta\) is known as the learning rate, which controls how big a step we take towards the minimum.
    +This update can be repeated for any number of iterations, or until we are satisfied with the result.

    +

    A simple and effective improvement is a variant called Batch Gradient Descent.
    +Instead of calculating the gradient on the whole dataset, we calculate an approximation of the gradient +on a subset of the data called a minibatch.
    +If there are \(N\) data points and we have a minibatch size of \(M\), the total number of batches +is \(N/M\).
    +We denote each minibatch \(B_k\), with \(k = 1, 2,...,N/M\). The gradient then becomes:

    +
    +\[ \nabla \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \nabla \mathcal{L}_i(\theta) \quad \rightarrow \quad +\frac{1}{M} \sum_{i \in B_k} \nabla \mathcal{L}_i(\theta) ,\]
    +

    i.e. instead of averaging the loss over the entire dataset, we average over a minibatch.

    +

    This has two important benefits:

    +
      +
    1. Introducing stochasticity decreases the chance that the algorithm becomes stuck in a local minima.

    2. +
    3. It significantly speeds up the calculation, since we do not have to use the entire dataset to calculate the gradient.

    4. +
    +

    The various optmization methods, with codes and algorithms, are discussed in our lectures on Gradient descent approaches.

    +
    +
    +

    Regularization

    +

    It is common to add an extra term to the cost function, proportional +to the size of the weights. This is equivalent to constraining the +size of the weights, so that they do not grow out of control. +Constraining the size of the weights means that the weights cannot +grow arbitrarily large to fit the training data, and in this way +reduces overfitting.

    +

    We will measure the size of the weights using the so called L2-norm, meaning our cost function becomes:

    +
    +\[ \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) \quad \rightarrow \quad +\frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) + \lambda \lvert \lvert \boldsymbol{w} \rvert \rvert_2^2 += \frac{1}{N} \sum_{i=1}^N \mathcal{L}(\theta) + \lambda \sum_{ij} w_{ij}^2,\]
    +

    i.e. we sum up all the weights squared. The factor \(\lambda\) is known as a regularization parameter.

    +

    In order to train the model, we need to calculate the derivative of +the cost function with respect to every bias and weight in the +network. In total our network has \((64 + 1)\times 50=3250\) weights in +the hidden layer and \((50 + 1)\times 10=510\) weights to the output +layer (\(+1\) for the bias), and the gradient must be calculated for +every parameter. We use the backpropagation algorithm discussed +above. This is a clever use of the chain rule that allows us to +calculate the gradient efficently.

    +
    +
    +

    Matrix multiplication

    +

    To more efficently train our network these equations are implemented using matrix operations.
    +The error in the output layer is calculated simply as, with \(\boldsymbol{t}\) being our targets,

    +
    +\[ \delta_L = \boldsymbol{t} - \boldsymbol{y} = (n_{inputs}, n_{categories}) .\]
    +

    The gradient for the output weights is calculated as

    +
    +\[ \nabla W_{L} = \boldsymbol{a}^T \delta_L = (n_{hidden}, n_{categories}) ,\]
    +

    where \(\boldsymbol{a} = (n_{inputs}, n_{hidden})\). This simply means that we are summing up the gradients for each input.
    +Since we are going backwards we have to transpose the activation matrix.

    +

    The gradient with respect to the output bias is then

    +
    +\[ \nabla \boldsymbol{b}_{L} = \sum_{i=1}^{n_{inputs}} \delta_L = (n_{categories}) .\]
    +

    The error in the hidden layer is

    +
    +\[ \Delta_h = \delta_L W_{L}^T \circ f'(z_{h}) = \delta_L W_{L}^T \circ a_{h} \circ (1 - a_{h}) = (n_{inputs}, n_{hidden}) ,\]
    +

    where \(f'(a_{h})\) is the derivative of the activation in the hidden layer. The matrix products mean +that we are summing up the products for each neuron in the output layer. The symbol \(\circ\) denotes +the Hadamard product, meaning element-wise multiplication.

    +

    This again gives us the gradients in the hidden layer:

    +
    +\[ \nabla W_{h} = X^T \delta_h = (n_{features}, n_{hidden}) ,\]
    +
    +\[ \nabla b_{h} = \sum_{i=1}^{n_{inputs}} \delta_h = (n_{hidden}) .\]
    +
    +
    +
    # to categorical turns our integer vector into a onehot representation
    +from sklearn.metrics import accuracy_score
    +
    +# one-hot in numpy
    +def to_categorical_numpy(integer_vector):
    +    n_inputs = len(integer_vector)
    +    n_categories = np.max(integer_vector) + 1
    +    onehot_vector = np.zeros((n_inputs, n_categories))
    +    onehot_vector[range(n_inputs), integer_vector] = 1
    +    
    +    return onehot_vector
    +
    +#Y_train_onehot, Y_test_onehot = to_categorical(Y_train), to_categorical(Y_test)
    +Y_train_onehot, Y_test_onehot = to_categorical_numpy(Y_train), to_categorical_numpy(Y_test)
    +
    +def feed_forward_train(X):
    +    # weighted sum of inputs to the hidden layer
    +    z_h = np.matmul(X, hidden_weights) + hidden_bias
    +    # activation in the hidden layer
    +    a_h = sigmoid(z_h)
    +    
    +    # weighted sum of inputs to the output layer
    +    z_o = np.matmul(a_h, output_weights) + output_bias
    +    # softmax output
    +    # axis 0 holds each input and axis 1 the probabilities of each category
    +    exp_term = np.exp(z_o)
    +    probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +    
    +    # for backpropagation need activations in hidden and output layers
    +    return a_h, probabilities
    +
    +def backpropagation(X, Y):
    +    a_h, probabilities = feed_forward_train(X)
    +    
    +    # error in the output layer
    +    error_output = probabilities - Y
    +    # error in the hidden layer
    +    error_hidden = np.matmul(error_output, output_weights.T) * a_h * (1 - a_h)
    +    
    +    # gradients for the output layer
    +    output_weights_gradient = np.matmul(a_h.T, error_output)
    +    output_bias_gradient = np.sum(error_output, axis=0)
    +    
    +    # gradient for the hidden layer
    +    hidden_weights_gradient = np.matmul(X.T, error_hidden)
    +    hidden_bias_gradient = np.sum(error_hidden, axis=0)
    +
    +    return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient
    +
    +print("Old accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train)))
    +
    +eta = 0.01
    +lmbd = 0.01
    +for i in range(1000):
    +    # calculate gradients
    +    dWo, dBo, dWh, dBh = backpropagation(X_train, Y_train_onehot)
    +    
    +    # regularization term gradients
    +    dWo += lmbd * output_weights
    +    dWh += lmbd * hidden_weights
    +    
    +    # update weights and biases
    +    output_weights -= eta * dWo
    +    output_bias -= eta * dBo
    +    hidden_weights -= eta * dWh
    +    hidden_bias -= eta * dBh
    +
    +print("New accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train)))
    +
    +
    +
    +
    +
    Old accuracy on training data: 0.1440501043841336
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    New accuracy on training data: 0.09951287404314545
    +
    +
    +
    +
    +
    +
    +

    Improving performance

    +

    As we can see the network does not seem to be learning at all. It seems to be just guessing the label for each image.
    +In order to obtain a network that does something useful, we will have to do a bit more work.

    +

    The choice of hyperparameters such as learning rate and regularization parameter is hugely influential for the performance of the network. Typically a grid-search is performed, wherein we test different hyperparameters separated by orders of magnitude. For example we could test the learning rates \(\eta = 10^{-6}, 10^{-5},...,10^{-1}\) with different regularization parameters \(\lambda = 10^{-6},...,10^{-0}\).

    +

    Next, we haven’t implemented minibatching yet, which introduces stochasticity and is though to act as an important regularizer on the weights. We call a feed-forward + backward pass with a minibatch an iteration, and a full training period +going through the entire dataset (\(n/M\) batches) an epoch.

    +

    If this does not improve network performance, you may want to consider altering the network architecture, adding more neurons or hidden layers.
    +Andrew Ng goes through some of these considerations in this video. You can find a summary of the video here.

    +
    +
    +

    Full object-oriented implementation

    +

    It is very natural to think of the network as an object, with specific instances of the network +being realizations of this object with different hyperparameters. An implementation using Python classes provides a clean structure and interface, and the full implementation of our neural network is given below.

    +
    +
    +
    class NeuralNetwork:
    +    def __init__(
    +            self,
    +            X_data,
    +            Y_data,
    +            n_hidden_neurons=50,
    +            n_categories=10,
    +            epochs=10,
    +            batch_size=100,
    +            eta=0.1,
    +            lmbd=0.0):
    +
    +        self.X_data_full = X_data
    +        self.Y_data_full = Y_data
    +
    +        self.n_inputs = X_data.shape[0]
    +        self.n_features = X_data.shape[1]
    +        self.n_hidden_neurons = n_hidden_neurons
    +        self.n_categories = n_categories
    +
    +        self.epochs = epochs
    +        self.batch_size = batch_size
    +        self.iterations = self.n_inputs // self.batch_size
    +        self.eta = eta
    +        self.lmbd = lmbd
    +
    +        self.create_biases_and_weights()
    +
    +    def create_biases_and_weights(self):
    +        self.hidden_weights = np.random.randn(self.n_features, self.n_hidden_neurons)
    +        self.hidden_bias = np.zeros(self.n_hidden_neurons) + 0.01
    +
    +        self.output_weights = np.random.randn(self.n_hidden_neurons, self.n_categories)
    +        self.output_bias = np.zeros(self.n_categories) + 0.01
    +
    +    def feed_forward(self):
    +        # feed-forward for training
    +        self.z_h = np.matmul(self.X_data, self.hidden_weights) + self.hidden_bias
    +        self.a_h = sigmoid(self.z_h)
    +
    +        self.z_o = np.matmul(self.a_h, self.output_weights) + self.output_bias
    +
    +        exp_term = np.exp(self.z_o)
    +        self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +    def feed_forward_out(self, X):
    +        # feed-forward for output
    +        z_h = np.matmul(X, self.hidden_weights) + self.hidden_bias
    +        a_h = sigmoid(z_h)
    +
    +        z_o = np.matmul(a_h, self.output_weights) + self.output_bias
    +        
    +        exp_term = np.exp(z_o)
    +        probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +        return probabilities
    +
    +    def backpropagation(self):
    +        error_output = self.probabilities - self.Y_data
    +        error_hidden = np.matmul(error_output, self.output_weights.T) * self.a_h * (1 - self.a_h)
    +
    +        self.output_weights_gradient = np.matmul(self.a_h.T, error_output)
    +        self.output_bias_gradient = np.sum(error_output, axis=0)
    +
    +        self.hidden_weights_gradient = np.matmul(self.X_data.T, error_hidden)
    +        self.hidden_bias_gradient = np.sum(error_hidden, axis=0)
    +
    +        if self.lmbd > 0.0:
    +            self.output_weights_gradient += self.lmbd * self.output_weights
    +            self.hidden_weights_gradient += self.lmbd * self.hidden_weights
    +
    +        self.output_weights -= self.eta * self.output_weights_gradient
    +        self.output_bias -= self.eta * self.output_bias_gradient
    +        self.hidden_weights -= self.eta * self.hidden_weights_gradient
    +        self.hidden_bias -= self.eta * self.hidden_bias_gradient
    +
    +    def predict(self, X):
    +        probabilities = self.feed_forward_out(X)
    +        return np.argmax(probabilities, axis=1)
    +
    +    def predict_probabilities(self, X):
    +        probabilities = self.feed_forward_out(X)
    +        return probabilities
    +
    +    def train(self):
    +        data_indices = np.arange(self.n_inputs)
    +
    +        for i in range(self.epochs):
    +            for j in range(self.iterations):
    +                # pick datapoints with replacement
    +                chosen_datapoints = np.random.choice(
    +                    data_indices, size=self.batch_size, replace=False
    +                )
    +
    +                # minibatch training data
    +                self.X_data = self.X_data_full[chosen_datapoints]
    +                self.Y_data = self.Y_data_full[chosen_datapoints]
    +
    +                self.feed_forward()
    +                self.backpropagation()
    +
    +
    +
    +
    +
    +
    +

    Evaluate model performance on test data

    +

    To measure the performance of our network we evaluate how well it does it data it has never seen before, i.e. the test data.
    +We measure the performance of the network using the accuracy score.
    +The accuracy is as you would expect just the number of images correctly labeled divided by the total number of images. A perfect classifier will have an accuracy score of \(1\).

    +
    +\[ \text{Accuracy} = \frac{\sum_{i=1}^n I(\tilde{y}_i = y_i)}{n} ,\]
    +

    where \(I\) is the indicator function, \(1\) if \(\tilde{y}_i = y_i\) and \(0\) otherwise.

    +
    +
    +
    epochs = 100
    +batch_size = 100
    +
    +dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,
    +                    n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)
    +dnn.train()
    +test_predict = dnn.predict(X_test)
    +
    +# accuracy score from scikit library
    +print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict))
    +
    +# equivalent in numpy
    +def accuracy_score_numpy(Y_test, Y_pred):
    +    return np.sum(Y_test == Y_pred) / len(Y_test)
    +
    +#print("Accuracy score on test set: ", accuracy_score_numpy(Y_test, test_predict))
    +
    +
    +
    +
    +
    Accuracy score on test set:  0.9444444444444444
    +
    +
    +
    +
    +
    +
    +

    Adjust hyperparameters

    +

    We now perform a grid search to find the optimal hyperparameters for the network.
    +Note that we are only using 1 layer with 50 neurons, and human performance is estimated to be around \(98\%\) (\(2\%\) error rate).

    +
    +
    +
    eta_vals = np.logspace(-5, 1, 7)
    +lmbd_vals = np.logspace(-5, 1, 7)
    +# store the models for later use
    +DNN_numpy = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)
    +
    +# grid search
    +for i, eta in enumerate(eta_vals):
    +    for j, lmbd in enumerate(lmbd_vals):
    +        dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,
    +                            n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)
    +        dnn.train()
    +        
    +        DNN_numpy[i][j] = dnn
    +        
    +        test_predict = dnn.predict(X_test)
    +        
    +        print("Learning rate  = ", eta)
    +        print("Lambda = ", lmbd)
    +        print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict))
    +        print()
    +
    +
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  1e-05
    +Accuracy score on test set:  0.11666666666666667
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.0001
    +Accuracy score on test set:  0.20833333333333334
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.001
    +Accuracy score on test set:  0.12222222222222222
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.01
    +Accuracy score on test set:  0.14722222222222223
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.1
    +Accuracy score on test set:  0.17777777777777778
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  1.0
    +Accuracy score on test set:  0.16111111111111112
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  10.0
    +Accuracy score on test set:  0.20277777777777778
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  1e-05
    +Accuracy score on test set:  0.5305555555555556
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.0001
    +Accuracy score on test set:  0.5944444444444444
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.001
    +Accuracy score on test set:  0.5888888888888889
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.01
    +Accuracy score on test set:  0.6111111111111112
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.1
    +Accuracy score on test set:  0.5222222222222223
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  1.0
    +Accuracy score on test set:  0.5555555555555556
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  10.0
    +Accuracy score on test set:  0.8055555555555556
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  1e-05
    +Accuracy score on test set:  0.85
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.0001
    +Accuracy score on test set:  0.85
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.001
    +Accuracy score on test set:  0.875
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.01
    +Accuracy score on test set:  0.8666666666666667
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.1
    +Accuracy score on test set:  0.8638888888888889
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  1.0
    +Accuracy score on test set:  0.9555555555555556
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  10.0
    +Accuracy score on test set:  0.925
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  1e-05
    +Accuracy score on test set:  0.9472222222222222
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.0001
    +Accuracy score on test set:  0.9277777777777778
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.001
    +Accuracy score on test set:  0.9472222222222222
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.01
    +Accuracy score on test set:  0.9305555555555556
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.1
    +Accuracy score on test set:  0.9555555555555556
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  1.0
    +Accuracy score on test set:  0.7694444444444445
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  10.0
    +Accuracy score on test set:  0.19166666666666668
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  1e-05
    +Accuracy score on test set:  0.10555555555555556
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.0001
    +Accuracy score on test set:  0.08611111111111111
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.001
    +Accuracy score on test set:  0.10555555555555556
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.01
    +Accuracy score on test set:  0.08888888888888889
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.1
    +Accuracy score on test set:  0.08611111111111111
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  1.0
    +Accuracy score on test set:  0.08888888888888889
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  10.0
    +Accuracy score on test set:  0.09166666666666666
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  1e-05
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  0.0001
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  0.001
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  0.01
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  0.1
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  1.0
    +Accuracy score on test set:  0.10555555555555556
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  10.0
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  1e-05
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.0001
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.001
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.01
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.1
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  1.0
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp
    +  exp_term = np.exp(self.z_o)
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide
    +  self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  10.0
    +Accuracy score on test set:  0.07777777777777778
    +
    +
    +
    +
    +
    +
    +

    Visualization

    +
    +
    +
    # visual representation of grid search
    +# uses seaborn heatmap, you can also do this with matplotlib imshow
    +import seaborn as sns
    +
    +sns.set()
    +
    +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +
    +for i in range(len(eta_vals)):
    +    for j in range(len(lmbd_vals)):
    +        dnn = DNN_numpy[i][j]
    +        
    +        train_pred = dnn.predict(X_train) 
    +        test_pred = dnn.predict(X_test)
    +
    +        train_accuracy[i][j] = accuracy_score(Y_train, train_pred)
    +        test_accuracy[i][j] = accuracy_score(Y_test, test_pred)
    +
    +        
    +fig, ax = plt.subplots(figsize = (10, 10))
    +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis")
    +ax.set_title("Training Accuracy")
    +ax.set_ylabel("$\eta$")
    +ax.set_xlabel("$\lambda$")
    +plt.show()
    +
    +fig, ax = plt.subplots(figsize = (10, 10))
    +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis")
    +ax.set_title("Test Accuracy")
    +ax.set_ylabel("$\eta$")
    +ax.set_xlabel("$\lambda$")
    +plt.show()
    +
    +
    +
    +
    +
    /var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp
    +  return 1/(1 + np.exp(-x))
    +
    +
    +_images/week41_197_1.png +_images/week41_197_2.png +
    +
    +
    +
    +

    scikit-learn implementation

    +

    scikit-learn focuses more +on traditional machine learning methods, such as regression, +clustering, decision trees, etc. As such, it has only two types of +neural networks: Multi Layer Perceptron outputting continuous values, +MPLRegressor, and Multi Layer Perceptron outputting labels, +MLPClassifier. We will see how simple it is to use these classes.

    +

    scikit-learn implements a few improvements from our neural network, +such as early stopping, a varying learning rate, different +optimization methods, etc. We would therefore expect a better +performance overall.

    +
    +
    +
    from sklearn.neural_network import MLPClassifier
    +# store models for later use
    +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)
    +
    +for i, eta in enumerate(eta_vals):
    +    for j, lmbd in enumerate(lmbd_vals):
    +        dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic',
    +                            alpha=lmbd, learning_rate_init=eta, max_iter=epochs)
    +        dnn.fit(X_train, Y_train)
    +        
    +        DNN_scikit[i][j] = dnn
    +        
    +        print("Learning rate  = ", eta)
    +        print("Lambda = ", lmbd)
    +        print("Accuracy score on test set: ", dnn.score(X_test, Y_test))
    +        print()
    +
    +
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  1e-05
    +Accuracy score on test set:  0.18333333333333332
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.0001
    +Accuracy score on test set:  0.18611111111111112
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.001
    +Accuracy score on test set:  0.13055555555555556
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.01
    +Accuracy score on test set:  0.24444444444444444
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  0.1
    +Accuracy score on test set:  0.23333333333333334
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  1.0
    +Accuracy score on test set:  0.12777777777777777
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  10.0
    +Accuracy score on test set:  0.1527777777777778
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  1e-05
    +Accuracy score on test set:  0.9111111111111111
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.0001
    +Accuracy score on test set:  0.8888888888888888
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.001
    +Accuracy score on test set:  0.8722222222222222
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.01
    +Accuracy score on test set:  0.8305555555555556
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  0.1
    +Accuracy score on test set:  0.8888888888888888
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  1.0
    +Accuracy score on test set:  0.8805555555555555
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.0001
    +Lambda =  10.0
    +Accuracy score on test set:  0.8944444444444445
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  1e-05
    +Accuracy score on test set:  0.975
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.0001
    +Accuracy score on test set:  0.9777777777777777
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.001
    +Accuracy score on test set:  0.9805555555555555
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.01
    +Accuracy score on test set:  0.9861111111111112
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  0.1
    +Accuracy score on test set:  0.9805555555555555
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  1.0
    +Accuracy score on test set:  0.9777777777777777
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.001
    +Lambda =  10.0
    +Accuracy score on test set:  0.9444444444444444
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  1e-05
    +Accuracy score on test set:  0.9861111111111112
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.0001
    +Accuracy score on test set:  0.9888888888888889
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.001
    +Accuracy score on test set:  0.9888888888888889
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.01
    +Accuracy score on test set:  0.9861111111111112
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  0.1
    +Accuracy score on test set:  0.9888888888888889
    +
    +
    +
    Learning rate  =  0.01
    +Lambda =  1.0
    +Accuracy score on test set:  0.9722222222222222
    +
    +Learning rate  =  0.01
    +Lambda =  10.0
    +Accuracy score on test set:  0.9527777777777777
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  1e-05
    +Accuracy score on test set:  0.9027777777777778
    +
    +Learning rate  =  0.1
    +Lambda =  0.0001
    +Accuracy score on test set:  0.8583333333333333
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.001
    +Accuracy score on test set:  0.8722222222222222
    +
    +Learning rate  =  0.1
    +Lambda =  0.01
    +Accuracy score on test set:  0.9055555555555556
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  0.1
    +Accuracy score on test set:  0.8805555555555555
    +
    +Learning rate  =  0.1
    +Lambda =  1.0
    +Accuracy score on test set:  0.8722222222222222
    +
    +
    +
    Learning rate  =  0.1
    +Lambda =  10.0
    +Accuracy score on test set:  0.8666666666666667
    +
    +Learning rate  =  1.0
    +Lambda =  1e-05
    +Accuracy score on test set:  0.08611111111111111
    +
    +Learning rate  =  1.0
    +Lambda =  0.0001
    +Accuracy score on test set:  0.10555555555555556
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  0.001
    +Accuracy score on test set:  0.10555555555555556
    +
    +Learning rate  =  1.0
    +Lambda =  0.01
    +Accuracy score on test set:  0.17777777777777778
    +
    +Learning rate  =  1.0
    +Lambda =  0.1
    +Accuracy score on test set:  0.08333333333333333
    +
    +Learning rate  =  1.0
    +Lambda =  1.0
    +Accuracy score on test set:  0.08888888888888889
    +
    +
    +
    Learning rate  =  1.0
    +Lambda =  10.0
    +Accuracy score on test set:  0.09444444444444444
    +
    +Learning rate  =  10.0
    +Lambda =  1e-05
    +Accuracy score on test set:  0.17222222222222222
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.0001
    +Accuracy score on test set:  0.11666666666666667
    +
    +Learning rate  =  10.0
    +Lambda =  0.001
    +Accuracy score on test set:  0.10555555555555556
    +
    +Learning rate  =  10.0
    +Lambda =  0.01
    +Accuracy score on test set:  0.1388888888888889
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  0.1
    +Accuracy score on test set:  0.11388888888888889
    +
    +
    +
    Learning rate  =  10.0
    +Lambda =  1.0
    +Accuracy score on test set:  0.10555555555555556
    +
    +Learning rate  =  10.0
    +Lambda =  10.0
    +Accuracy score on test set:  0.09444444444444444
    +
    +
    +
    +
    +
    +
    +

    Visualization

    +
    +
    +
    # optional
    +# visual representation of grid search
    +# uses seaborn heatmap, could probably do this in matplotlib
    +import seaborn as sns
    +
    +sns.set()
    +
    +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +
    +for i in range(len(eta_vals)):
    +    for j in range(len(lmbd_vals)):
    +        dnn = DNN_scikit[i][j]
    +        
    +        train_pred = dnn.predict(X_train) 
    +        test_pred = dnn.predict(X_test)
    +
    +        train_accuracy[i][j] = accuracy_score(Y_train, train_pred)
    +        test_accuracy[i][j] = accuracy_score(Y_test, test_pred)
    +
    +        
    +fig, ax = plt.subplots(figsize = (10, 10))
    +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis")
    +ax.set_title("Training Accuracy")
    +ax.set_ylabel("$\eta$")
    +ax.set_xlabel("$\lambda$")
    +plt.show()
    +
    +fig, ax = plt.subplots(figsize = (10, 10))
    +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis")
    +ax.set_title("Test Accuracy")
    +ax.set_ylabel("$\eta$")
    +ax.set_xlabel("$\lambda$")
    +plt.show()
    +
    +
    +
    +
    +_images/week41_201_0.png +_images/week41_201_1.png +
    +
    +
    +
    +

    Testing our code for the XOR, OR and AND gates

    +

    Last week we discussed three different types of gates, the so-called +XOR, the OR and the AND gates. Their inputs and outputs can be +summarized using the following tables, first for the OR gate with +inputs \(x_1\) and \(x_2\) and outputs \(y\):

    + + + + + + + + + + +
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 1
    +
    +

    The AND and XOR Gates

    +

    The AND gate is defined as

    + + + + + + + + + + +
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 0
    1 0 0
    1 1 1
    +

    And finally we have the XOR gate

    + + + + + + + + + + +
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    +
    +

    Representing the Data Sets

    +

    Our design matrix is defined by the input values \(x_1\) and \(x_2\). Since we have four possible outputs, our design matrix reads

    +
    +\[\begin{split} +\boldsymbol{X}=\begin{bmatrix} 0 & 0 \\ + 0 & 1 \\ + 1 & 0 \\ + 1 & 1 \end{bmatrix}, +\end{split}\]
    +

    while the vector of outputs is \(\boldsymbol{y}^T=[0,1,1,0]\) for the XOR gate, \(\boldsymbol{y}^T=[0,0,0,1]\) for the AND gate and \(\boldsymbol{y}^T=[0,1,1,1]\) for the OR gate.

    +
    +
    +

    Setting up the Neural Network

    +

    We define first our design matrix and the various output vectors for the different gates.

    +
    +
    +
    """
    +Simple code that tests XOR, OR and AND gates with linear regression
    +"""
    +
    +# import necessary packages
    +import numpy as np
    +import matplotlib.pyplot as plt
    +from sklearn import datasets
    +
    +def sigmoid(x):
    +    return 1/(1 + np.exp(-x))
    +
    +def feed_forward(X):
    +    # weighted sum of inputs to the hidden layer
    +    z_h = np.matmul(X, hidden_weights) + hidden_bias
    +    # activation in the hidden layer
    +    a_h = sigmoid(z_h)
    +    
    +    # weighted sum of inputs to the output layer
    +    z_o = np.matmul(a_h, output_weights) + output_bias
    +    # softmax output
    +    # axis 0 holds each input and axis 1 the probabilities of each category
    +    probabilities = sigmoid(z_o)
    +    return probabilities
    +
    +# we obtain a prediction by taking the class with the highest likelihood
    +def predict(X):
    +    probabilities = feed_forward(X)
    +    return np.argmax(probabilities, axis=1)
    +
    +# ensure the same random numbers appear every time
    +np.random.seed(0)
    +
    +# Design matrix
    +X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64)
    +
    +# The XOR gate
    +yXOR = np.array( [ 0, 1 ,1, 0])
    +# The OR gate
    +yOR = np.array( [ 0, 1 ,1, 1])
    +# The AND gate
    +yAND = np.array( [ 0, 0 ,0, 1])
    +
    +# Defining the neural network
    +n_inputs, n_features = X.shape
    +n_hidden_neurons = 2
    +n_categories = 2
    +n_features = 2
    +
    +# we make the weights normally distributed using numpy.random.randn
    +
    +# weights and bias in the hidden layer
    +hidden_weights = np.random.randn(n_features, n_hidden_neurons)
    +hidden_bias = np.zeros(n_hidden_neurons) + 0.01
    +
    +# weights and bias in the output layer
    +output_weights = np.random.randn(n_hidden_neurons, n_categories)
    +output_bias = np.zeros(n_categories) + 0.01
    +
    +probabilities = feed_forward(X)
    +print(probabilities)
    +
    +
    +predictions = predict(X)
    +print(predictions)
    +
    +
    +
    +
    +
    [[0.80625657 0.36420967]
    + [0.90297441 0.30170017]
    + [0.89823921 0.28566769]
    + [0.93420126 0.25920793]]
    +[0 0 0 0]
    +
    +
    +
    +
    +

    Not an impressive result, but this was our first forward pass with randomly assigned weights. Let us now add the full network with the back-propagation algorithm discussed above.

    +
    +
    +

    The Code using Scikit-Learn

    +
    +
    +
    # import necessary packages
    +import numpy as np
    +import matplotlib.pyplot as plt
    +from sklearn.neural_network import MLPClassifier
    +from sklearn.metrics import accuracy_score
    +import seaborn as sns
    +
    +# ensure the same random numbers appear every time
    +np.random.seed(0)
    +
    +# Design matrix
    +X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64)
    +
    +# The XOR gate
    +yXOR = np.array( [ 0, 1 ,1, 0])
    +# The OR gate
    +yOR = np.array( [ 0, 1 ,1, 1])
    +# The AND gate
    +yAND = np.array( [ 0, 0 ,0, 1])
    +
    +# Defining the neural network
    +n_inputs, n_features = X.shape
    +n_hidden_neurons = 2
    +n_categories = 2
    +n_features = 2
    +
    +eta_vals = np.logspace(-5, 1, 7)
    +lmbd_vals = np.logspace(-5, 1, 7)
    +# store models for later use
    +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)
    +epochs = 100
    +
    +for i, eta in enumerate(eta_vals):
    +    for j, lmbd in enumerate(lmbd_vals):
    +        dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic',
    +                            alpha=lmbd, learning_rate_init=eta, max_iter=epochs)
    +        dnn.fit(X, yXOR)
    +        DNN_scikit[i][j] = dnn
    +        print("Learning rate  = ", eta)
    +        print("Lambda = ", lmbd)
    +        print("Accuracy score on data set: ", dnn.score(X, yXOR))
    +        print()
    +
    +sns.set()
    +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))
    +for i in range(len(eta_vals)):
    +    for j in range(len(lmbd_vals)):
    +        dnn = DNN_scikit[i][j]
    +        test_pred = dnn.predict(X)
    +        test_accuracy[i][j] = accuracy_score(yXOR, test_pred)
    +
    +fig, ax = plt.subplots(figsize = (10, 10))
    +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis")
    +ax.set_title("Test Accuracy")
    +ax.set_ylabel("$\eta$")
    +ax.set_xlabel("$\lambda$")
    +plt.show()
    +
    +
    +
    +
    +
    Learning rate  =  1e-05
    +Lambda =  1e-05
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  0.0001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  0.001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  0.01
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1e-05
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  1e-05
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  0.0001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  0.001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  0.01
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.0001
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  1e-05
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  0.0001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  0.001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  0.01
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.001
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.01
    +Lambda =  1e-05
    +Accuracy score on data set:  0.25
    +
    +Learning rate  =  0.01
    +Lambda =  0.0001
    +Accuracy score on data set:  0.75
    +
    +Learning rate  =  0.01
    +Lambda =  0.001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.01
    +Lambda =  0.01
    +Accuracy score on data set:  0.75
    +
    +Learning rate  =  0.01
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.01
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.01
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.1
    +Lambda =  1e-05
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.1
    +Lambda =  0.0001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.1
    +Lambda =  0.001
    +Accuracy score on data set:  1.0
    +
    +Learning rate  =  0.1
    +Lambda =  0.01
    +Accuracy score on data set:  1.0
    +
    +Learning rate  =  0.1
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.1
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  0.1
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1.0
    +Lambda =  1e-05
    +Accuracy score on data set:  0.75
    +
    +Learning rate  =  1.0
    +Lambda =  0.0001
    +Accuracy score on data set:  0.75
    +
    +Learning rate  =  1.0
    +Lambda =  0.001
    +Accuracy score on data set:  0.75
    +
    +Learning rate  =  1.0
    +Lambda =  0.01
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1.0
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1.0
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  1.0
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  1e-05
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  0.0001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  0.001
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  0.01
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  0.1
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  1.0
    +Accuracy score on data set:  0.5
    +
    +Learning rate  =  10.0
    +Lambda =  10.0
    +Accuracy score on data set:  0.5
    +
    +
    +
    /Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.
    +  warnings.warn(
    +
    +
    +_images/week41_211_2.png +
    +
    +
    +
    + + + + +
    + + + + + +
    +
    +
    +

    + + By Morten Hjorth-Jensen
    + + © Copyright 2021.
    +

    +
    +
    + + +
    +
    + + + + + \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/exercisesweek41.ipynb b/doc/LectureNotes/_build/jupyter_execute/exercisesweek41.ipynb new file mode 100644 index 000000000..82ab2e8fa --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/exercisesweek41.ipynb @@ -0,0 +1,87 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "42211505", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "abcd6d2e", + "metadata": { + "editable": true + }, + "source": [ + "# Exercises week 41\n", + "**October 9-13, 2023**\n", + "\n", + "Date: **Deadline is Sunday October 15 at midnight**" + ] + }, + { + "cell_type": "markdown", + "id": "a754339c", + "metadata": { + "editable": true + }, + "source": [ + "## Overarching aims of the exercises this week\n", + "\n", + "The aim of the exercises this week is to get started with implementing\n", + "gradient methods of relevance for project 2. This exercise will also\n", + "be continued next week with the addition of automatic differentation.\n", + "Everything you develop here will be used in project 2. \n", + "\n", + "In order to get started, we will now replace in our standard ordinary\n", + "least squares (OLS) and Ridge regression codes (from project 1) the\n", + "matrix inversion algorithm with our own gradient descent (GD) and SGD\n", + "codes. You can use the Franke function or the terrain data from\n", + "project 1. **However, we recommend using a simpler function like**\n", + "$f(x)=a_0+a_1x+a_2x^2$ or higher-order one-dimensional polynomials.\n", + "You can obviously test your final codes against for example the Franke\n", + "function.\n", + "\n", + "You should include in your analysis of the GD and SGD codes the following elements\n", + "1. A plain gradient descent with a fixed learning rate (you will need to tune it) using the analytical expression of the gradients\n", + "\n", + "2. Add momentum to the plain GD code and compare convergence with a fixed learning rate (you may need to tune the learning rate), again using the analytical expression of the gradients.\n", + "\n", + "3. Repeat these steps for stochastic gradient descent with mini batches and a given number of epochs. Use a tunable learning rate as discussed in the lectures from week 39. Discuss the results as functions of the various parameters (size of batches, number of epochs etc)\n", + "\n", + "4. Implement the Adagrad method in order to tune the learning rate. Do this with and without momentum for plain gradient descent and SGD.\n", + "\n", + "5. Add RMSprop and Adam to your library of methods for tuning the learning rate.\n", + "\n", + "The lecture notes from \"weeks 39 and 40 contain more information and code examples. Feel free to use these examples.\n", + "\n", + "In summary, you should \n", + "perform an analysis of the results for OLS and Ridge regression as\n", + "function of the chosen learning rates, the number of mini-batches and\n", + "epochs as well as algorithm for scaling the learning rate. You can\n", + "also compare your own results with those that can be obtained using\n", + "for example **Scikit-Learn**'s various SGD options. Discuss your\n", + "results. For Ridge regression you need now to study the results as functions of the hyper-parameter $\\lambda$ and \n", + "the learning rate $\\eta$. Discuss your results.\n", + "\n", + "You will need your SGD code for the setup of the Neural Network and\n", + "Logistic Regression codes. You will find the Python [Seaborn\n", + "package](https://seaborn.pydata.org/generated/seaborn.heatmap.html)\n", + "useful when plotting the results as function of the learning rate\n", + "$\\eta$ and the hyper-parameter $\\lambda$ when you use Ridge\n", + "regression.\n", + "\n", + "We recommend reading chapter 8 on optimization from the textbook of [Goodfellow, Bengio and Courville](https://www.deeplearningbook.org/). This chapter contains many useful insights and discussions on the optimization part of machine learning." + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/exercisesweek41.txt b/doc/LectureNotes/_build/jupyter_execute/exercisesweek41.txt new file mode 100644 index 000000000..e69de29bb diff --git a/doc/LectureNotes/_build/jupyter_execute/project2.ipynb b/doc/LectureNotes/_build/jupyter_execute/project2.ipynb new file mode 100644 index 000000000..21bbab7b1 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/project2.ipynb @@ -0,0 +1,348 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "6afd3fdb", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "21a10baa", + "metadata": { + "editable": true + }, + "source": [ + "# Project 2 on Machine Learning, deadline November 13 (Midnight)\n", + "**[Data Analysis and Machine Learning FYS-STK3155/FYS4155](http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html)**, Department of Physics, University of Oslo, Norway\n", + "\n", + "Date: **Oct 9, 2023**\n", + "\n", + "Copyright 1999-2023, [Data Analysis and Machine Learning FYS-STK3155/FYS4155](http://www.uio.no/studier/emner/matnat/fys/FYS3155/index-eng.html). Released under CC Attribution-NonCommercial 4.0 license" + ] + }, + { + "cell_type": "markdown", + "id": "4f67ce6e", + "metadata": { + "editable": true + }, + "source": [ + "## Classification and Regression, from linear and logistic regression to neural networks\n", + "\n", + "The main aim of this project is to study both classification and\n", + "regression problems by developing our own feed-forward neural network\n", + "(FFNN) code. We can reuse the regression algorithms studied in project\n", + "1. We will also include logistic regression for classification\n", + "problems and write our own FFNN code for studying both regression and\n", + "classification problems. The codes developed in project 1, including\n", + "bootstrap **and/or** cross-validation as well as the computation of the\n", + "mean-squared error and/or the $R2$ or the accuracy score\n", + "(classification problems) functions can also be utilized in the\n", + "present analysis.\n", + "\n", + "The data sets that we propose here are (the default sets)\n", + "\n", + "* Regression (fitting a continuous function). In this part you will need to bring back your results from project 1 and compare these with what you get from your Neural Network code to be developed here. The data sets could be\n", + "\n", + "a. A simple one-dimensional function or the Franke function or the terrain data from project 1, or data sets your propose. It could be a simpler function than the Franke function. We recommend testing a simpler function (see below). But if you wish to try more complex function, feel free to do so.\n", + "\n", + "* Classification. Here you will also need to develop a Logistic regression code that you will use to compare with the Neural Network code. The data set we propose are the so-called [Wisconsin Breat Cancer Data](https://www.kaggle.com/uciml/breast-cancer-wisconsin-data) data set of images representing various features of tumors. These are discussed intensively in the lecture notes, see for example the slides from [week 41](https://compphysics.github.io/MachineLearning/doc/pub/week41/html/week41.html). A longer explanation with links to the scientific literature can be found at the [Machine Learning repository of the University of California at Irvine](https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29). Feel free to consult this site and the pertinent literature.\n", + "\n", + "You can find more information about this at the [Scikit-Learn site](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html) or at the [University of California at Irvine](https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(original)). \n", + "\n", + "However, if you would like to study other data sets, feel free to\n", + "propose other sets. What we list here are mere suggestions from our\n", + "side. If you opt for another data set, consider using a set which has\n", + "been studied in the scientific literature. This makes it easier for\n", + "you to compare and analyze your results. Comparing with existing\n", + "results from the scientific literature is also an essential element of\n", + "the scientific discussion. The University of California at Irvine\n", + "with its Machine Learning repository at\n", + " is an excellent site to\n", + "look up for examples and\n", + "inspiration. [Kaggle.com](https://www.kaggle.com/) is an equally\n", + "interesting site. Feel free to explore these sites.\n", + "\n", + "We will start with a regression problem and we will reuse our codes from project 1 starting with writing our own Stochastic Gradient Descent (SGD) code." + ] + }, + { + "cell_type": "markdown", + "id": "67c6916e", + "metadata": { + "editable": true + }, + "source": [ + "### Part a): Write your own Stochastic Gradient Descent code, first step\n", + "\n", + "In order to get started, we will now replace in our standard ordinary\n", + "least squares (OLS) and Ridge regression codes (from project 1) the\n", + "matrix inversion algorithm with our own gradient descent (GD) and SGD\n", + "codes. You can use the Franke function or the terrain data from\n", + "project 1. **However, we recommend using a simpler function like**\n", + "$f(x)=a_0+a_1x+a_2x^2$ or higher-order one-dimensional polynomials.\n", + "You can obviously test your final codes against for example the Franke\n", + "function.\n", + "\n", + "You should include in your analysis of the GD and SGD codes the following elements\n", + "1. A plain gradient descent with a fixed learning rate (you will need to tune it) using the analytical expression for the gradient.\n", + "\n", + "2. Add momentum to the plain GD code and compare convergence with a fixed learning rate (you may need to tune the learning rate). Keep using the analytical expression for the gradient.\n", + "\n", + "3. Repeat these steps for stochastic gradient descent with mini batches and a given number of epochs. Use a tunable learning rate as discussed in the lectures from weeks 39 and 40. Discuss the results as functions of the various parameters (size of batches, number of epochs etc). Use the analytical gradient.\n", + "\n", + "4. Implement the Adagrad method in order to tune the learning rate. Do this with and without momentum for plain gradient descent and SGD.\n", + "\n", + "5. Add RMSprop and Adam to your library of methods for tuning the learning rate.\n", + "\n", + "The lecture notes from [weeks 39 and 40contain more\n", + "details](https://compphysics.github.io/MachineLearning/doc/pub/week39/html/week39.html) and code examples. Feel free to use these examples.\n", + "1. Replace thereafter your analytical gradient with either **Autograd** or **JAX**\n", + "\n", + "In summary, you should \n", + "perform an analysis of the results for OLS and Ridge regression as\n", + "function of the chosen learning rates, the number of mini-batches and\n", + "epochs as well as algorithm for scaling the learning rate. You can\n", + "also compare your own results with those that can be obtained using\n", + "for example **Scikit-Learn**'s various SGD options. Discuss your\n", + "results. For Ridge regression you need now to study the results as functions of the hyper-parameter $\\lambda$ and \n", + "the learning rate $\\eta$. Discuss your results.\n", + "\n", + "You will need your SGD code for the setup of the Neural Network and\n", + "Logistic Regression codes. You will find the Python [Seaborn\n", + "package](https://seaborn.pydata.org/generated/seaborn.heatmap.html)\n", + "useful when plotting the results as function of the learning rate\n", + "$\\eta$ and the hyper-parameter $\\lambda$ when you use Ridge\n", + "regression.\n", + "\n", + "We recommend reading chapter 8 on optimization from the textbook of [Goodfellow, Bengio and Courville](https://www.deeplearningbook.org/). This chapter contains many useful insights and discussions on the optimization part of machine learning." + ] + }, + { + "cell_type": "markdown", + "id": "fff54502", + "metadata": { + "editable": true + }, + "source": [ + "### Part b): Writing your own Neural Network code\n", + "\n", + "Your aim now, and this is the central part of this project, is to\n", + "write your own Feed Forward Neural Network code implementing the back\n", + "propagation algorithm discussed in the lecture slides from [week 40](https://compphysics.github.io/MachineLearning/doc/pub/week41/html/week40.html) and\n", + "[week 41](https://compphysics.github.io/MachineLearning/doc/pub/week41/html/week41.html).\n", + "\n", + "We will focus on a regression problem first and study either the simple second-order polynomial from part a) or the \n", + "Franke function or terrain data (or both or other data sets) from\n", + "project 1.\n", + "\n", + "Discuss again your choice of cost function.\n", + "\n", + "Write an FFNN code for regression with a flexible number of hidden\n", + "layers and nodes using the Sigmoid function as activation function for\n", + "the hidden layers. Initialize the weights using a normal\n", + "distribution. How would you initialize the biases? And which\n", + "activation function would you select for the final output layer?\n", + "\n", + "Train your network and compare the results with those from your OLS and Ridge Regression codes from project 1 if you use the Franke function or the terrain data.\n", + "You should test your results against a similar code using **Scikit-Learn** (see the examples in the above lecture notes from week 41) or **tensorflow/keras**. \n", + "\n", + "Comment your results and give a critical discussion of the results\n", + "obtained with the Linear Regression code and your own Neural Network\n", + "code. \n", + "Make an analysis of the regularization parameters and the learning rates employed to find the optimal MSE and $R2$ scores.\n", + "\n", + "A useful reference on the back progagation algorithm is [Nielsen's\n", + "book](http://neuralnetworksanddeeplearning.com/). It is an excellent\n", + "read." + ] + }, + { + "cell_type": "markdown", + "id": "6e0f9012", + "metadata": { + "editable": true + }, + "source": [ + "### Part c): Testing different activation functions\n", + "\n", + "You should now also test different activation functions for the hidden layers. Try out the Sigmoid, the RELU and the Leaky RELU functions and discuss your results. You may also study the way you initialize your weights and biases." + ] + }, + { + "cell_type": "markdown", + "id": "075046bf", + "metadata": { + "editable": true + }, + "source": [ + "### Part d): Classification analysis using neural networks\n", + "\n", + "With a well-written code it should now be easy to change the\n", + "activation function for the output layer.\n", + "\n", + "Here we will change the cost function for our neural network code\n", + "developed in parts b) and c) in order to perform a classification analysis. \n", + "\n", + "We will here study the Wisconsin Breast Cancer data set. This is a typical binary classification problem with just one single output, either True or Fale, $0$ or $1$ etc.\n", + "You find more information about this at the [Scikit-Learn\n", + "site](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html) or at the [University of California\n", + "at Irvine](https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(original)). \n", + "\n", + "To measure the performance of our classification problem we use the\n", + "so-called *accuracy* score. The accuracy is as you would expect just\n", + "the number of correctly guessed targets $t_i$ divided by the total\n", + "number of targets, that is" + ] + }, + { + "cell_type": "markdown", + "id": "080dadf2", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\text{Accuracy} = \\frac{\\sum_{i=1}^n I(t_i = y_i)}{n} ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "e3418dd4", + "metadata": { + "editable": true + }, + "source": [ + "where $I$ is the indicator function, $1$ if $t_i = y_i$ and $0$\n", + "otherwise if we have a binary classification problem. Here $t_i$\n", + "represents the target and $y_i$ the outputs of your FFNN code and $n$ is simply the number of targets $t_i$.\n", + "\n", + "Discuss your results and give a critical analysis of the various parameters, including hyper-parameters like the learning rates and the regularization parameter $\\lambda$ (as you did in Ridge Regression), various activation functions, number of hidden layers and nodes and activation functions. \n", + "\n", + "As stated in the introduction, it can also be useful to study other\n", + "datasets. \n", + "\n", + "Again, we strongly recommend that you compare your own neural Network\n", + "code for classification and pertinent results against a similar code using **Scikit-Learn** or **tensorflow/keras** or **pytorch**." + ] + }, + { + "cell_type": "markdown", + "id": "828ad79f", + "metadata": { + "editable": true + }, + "source": [ + "### Part e): Write your Logistic Regression code, final step\n", + "\n", + "Finally, we want to compare the FFNN code we have developed with\n", + "Logistic regression, that is we wish to compare our neural network\n", + "classification results with the results we can obtain with another\n", + "method.\n", + "\n", + "Define your cost function and the design matrix before you start writing your code.\n", + "Write thereafter a Logistic regression code using your SGD algorithm. You can also use standard gradient descent in this case, with a learning rate as hyper-parameter.\n", + "Study the results as functions of the chosen learning rates.\n", + "Add also an $l_2$ regularization parameter $\\lambda$. Compare your results with those from your FFNN code as well as those obtained using **Scikit-Learn**'s logistic regression functionality.\n", + "\n", + "The weblink here compares logistic regression and FFNN using the so-called MNIST data set. You may find several useful hints and ideas from this article." + ] + }, + { + "cell_type": "markdown", + "id": "07059668", + "metadata": { + "editable": true + }, + "source": [ + "### Part f) Critical evaluation of the various algorithms\n", + "\n", + "After all these glorious calculations, you should now summarize the\n", + "various algorithms and come with a critical evaluation of their pros\n", + "and cons. Which algorithm works best for the regression case and which\n", + "is best for the classification case. These codes can also be part of\n", + "your final project 3, but now applied to other data sets." + ] + }, + { + "cell_type": "markdown", + "id": "e88200db", + "metadata": { + "editable": true + }, + "source": [ + "## Background literature\n", + "\n", + "1. The text of Michael Nielsen is highly recommended, see [Nielsen's book](http://neuralnetworksanddeeplearning.com/). It is an excellent read.\n", + "\n", + "2. [Mehta et al, arXiv 1803.08823](https://arxiv.org/abs/1803.08823), *A high-bias, low-variance introduction to Machine Learning for physicists*, ArXiv:1803.08823.\n", + "\n", + "c. [Goodfellow, Bengio and Courville](https://www.deeplearningbook.org/), *Deep Learning*." + ] + }, + { + "cell_type": "markdown", + "id": "66733be9", + "metadata": { + "editable": true + }, + "source": [ + "## Introduction to numerical projects\n", + "\n", + "Here follows a brief recipe and recommendation on how to write a report for each\n", + "project.\n", + "\n", + " * Give a short description of the nature of the problem and the eventual numerical methods you have used.\n", + "\n", + " * Describe the algorithm you have used and/or developed. Here you may find it convenient to use pseudocoding. In many cases you can describe the algorithm in the program itself.\n", + "\n", + " * Include the source code of your program. Comment your program properly.\n", + "\n", + " * If possible, try to find analytic solutions, or known limits in order to test your program when developing the code.\n", + "\n", + " * Include your results either in figure form or in a table. Remember to label your results. All tables and figures should have relevant captions and labels on the axes.\n", + "\n", + " * Try to evaluate the reliabilty and numerical stability/precision of your results. If possible, include a qualitative and/or quantitative discussion of the numerical stability, eventual loss of precision etc.\n", + "\n", + " * Try to give an interpretation of you results in your answers to the problems.\n", + "\n", + " * Critique: if possible include your comments and reflections about the exercise, whether you felt you learnt something, ideas for improvements and other thoughts you've made when solving the exercise. We wish to keep this course at the interactive level and your comments can help us improve it.\n", + "\n", + " * Try to establish a practice where you log your work at the computerlab. You may find such a logbook very handy at later stages in your work, especially when you don't properly remember what a previous test version of your program did. Here you could also record the time spent on solving the exercise, various algorithms you may have tested or other topics which you feel worthy of mentioning." + ] + }, + { + "cell_type": "markdown", + "id": "5c49a400", + "metadata": { + "editable": true + }, + "source": [ + "## Format for electronic delivery of report and programs\n", + "\n", + "The preferred format for the report is a PDF file. You can also use DOC or postscript formats or as an ipython notebook file. As programming language we prefer that you choose between C/C++, Fortran2008 or Python. The following prescription should be followed when preparing the report:\n", + "\n", + " * Use Canvas to hand in your projects, log in at with your normal UiO username and password.\n", + "\n", + " * Upload **only** the report file or the link to your GitHub/GitLab or similar typo of repos! For the source code file(s) you have developed please provide us with your link to your GitHub/GitLab or similar domain. The report file should include all of your discussions and a list of the codes you have developed. Do not include library files which are available at the course homepage, unless you have made specific changes to them.\n", + "\n", + " * In your GitHub/GitLab or similar repository, please include a folder which contains selected results. These can be in the form of output from your code for a selected set of runs and input parameters.\n", + "\n", + "Finally, \n", + "we encourage you to collaborate. Optimal working groups consist of \n", + "2-3 students. You can then hand in a common report." + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/project2.txt b/doc/LectureNotes/_build/jupyter_execute/project2.txt new file mode 100644 index 000000000..e69de29bb diff --git a/doc/LectureNotes/_build/jupyter_execute/week41.ipynb b/doc/LectureNotes/_build/jupyter_execute/week41.ipynb new file mode 100644 index 000000000..19e341be3 --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/week41.ipynb @@ -0,0 +1,5785 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "2ab4355a", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "bb11e4db", + "metadata": { + "editable": true + }, + "source": [ + "# Week 41 Neural networks and constructing a neural network code\n", + "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Isotope Beams, Michigan State University\n", + "\n", + "Date: **Week 41**" + ] + }, + { + "cell_type": "markdown", + "id": "1d2fb3fd", + "metadata": { + "editable": true + }, + "source": [ + "## Plan for week 41\n", + "\n", + "**Material for the active learning sessions on Tuesday and Wednesday.**\n", + "\n", + " * Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation\n", + "\n", + " * One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code\n", + "\n", + " * Discussion of project 2\n", + "\n", + " * Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent\n", + "\n", + " \n", + "\n", + "**Material for the lecture on Thursday October 12, 2023.**\n", + "\n", + " * Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model.\n", + "\n", + " * Building our own Feed-forward Neural Network\n", + "\n", + " * Readings and Videos:\n", + "\n", + " * These lecture notes\n", + "\n", + " * For neural networks we recommend Goodfellow et al chapter 6.\n", + "\n", + " * [Neural Networks demystified](https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs)\n", + "\n", + " * [Building Neural Networks from scratch](https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex)\n", + "\n", + " * [Video on Neural Networks](https://www.youtube.com/watch?v=CqOfi41LfDw)\n", + "\n", + " * [Video on the back propagation algorithm](https://www.youtube.com/watch?v=Ilg3gGewQ5U)\n", + "\n", + "I also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at ." + ] + }, + { + "cell_type": "markdown", + "id": "9dcb51d0", + "metadata": { + "editable": true + }, + "source": [ + "## Lecture Thursday October 12" + ] + }, + { + "cell_type": "markdown", + "id": "b2dde1a5", + "metadata": { + "editable": true + }, + "source": [ + "## Introduction to Neural networks\n", + "\n", + "Artificial neural networks are computational systems that can learn to\n", + "perform tasks by considering examples, generally without being\n", + "programmed with any task-specific rules. It is supposed to mimic a\n", + "biological system, wherein neurons interact by sending signals in the\n", + "form of mathematical functions between layers. All layers can contain\n", + "an arbitrary number of neurons, and each connection is represented by\n", + "a weight variable." + ] + }, + { + "cell_type": "markdown", + "id": "9dbb7580", + "metadata": { + "editable": true + }, + "source": [ + "## Artificial neurons\n", + "\n", + "The field of artificial neural networks has a long history of\n", + "development, and is closely connected with the advancement of computer\n", + "science and computers in general. A model of artificial neurons was\n", + "first developed by McCulloch and Pitts in 1943 to study signal\n", + "processing in the brain and has later been refined by others. The\n", + "general idea is to mimic neural networks in the human brain, which is\n", + "composed of billions of neurons that communicate with each other by\n", + "sending electrical signals. Each neuron accumulates its incoming\n", + "signals, which must exceed an activation threshold to yield an\n", + "output. If the threshold is not overcome, the neuron remains inactive,\n", + "i.e. has zero output.\n", + "\n", + "This behaviour has inspired a simple mathematical model for an artificial neuron." + ] + }, + { + "cell_type": "markdown", + "id": "9b37b818", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y = f\\left(\\sum_{i=1}^n w_ix_i\\right) = f(u)\n", + "\\label{artificialNeuron} \\tag{1}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f0c18c43", + "metadata": { + "editable": true + }, + "source": [ + "Here, the output $y$ of the neuron is the value of its activation function, which have as input\n", + "a weighted sum of signals $x_i, \\dots ,x_n$ received by $n$ other neurons.\n", + "\n", + "Conceptually, it is helpful to divide neural networks into four\n", + "categories:\n", + "1. general purpose neural networks for supervised learning,\n", + "\n", + "2. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs),\n", + "\n", + "3. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and\n", + "\n", + "4. neural networks for unsupervised learning such as Deep Boltzmann Machines.\n", + "\n", + "In natural science, DNNs and CNNs have already found numerous\n", + "applications. In statistical physics, they have been applied to detect\n", + "phase transitions in 2D Ising and Potts models, lattice gauge\n", + "theories, and different phases of polymers, or solving the\n", + "Navier-Stokes equation in weather forecasting. Deep learning has also\n", + "found interesting applications in quantum physics. Various quantum\n", + "phase transitions can be detected and studied using DNNs and CNNs,\n", + "topological phases, and even non-equilibrium many-body\n", + "localization. Representing quantum states as DNNs quantum state\n", + "tomography are among some of the impressive achievements to reveal the\n", + "potential of DNNs to facilitate the study of quantum systems.\n", + "\n", + "In quantum information theory, it has been shown that one can perform\n", + "gate decompositions with the help of neural. \n", + "\n", + "The applications are not limited to the natural sciences. There is a\n", + "plethora of applications in essentially all disciplines, from the\n", + "humanities to life science and medicine." + ] + }, + { + "cell_type": "markdown", + "id": "4d476078", + "metadata": { + "editable": true + }, + "source": [ + "## Neural network types\n", + "\n", + "An artificial neural network (ANN), is a computational model that\n", + "consists of layers of connected neurons, or nodes or units. We will\n", + "refer to these interchangeably as units or nodes, and sometimes as\n", + "neurons.\n", + "\n", + "It is supposed to mimic a biological nervous system by letting each\n", + "neuron interact with other neurons by sending signals in the form of\n", + "mathematical functions between layers. A wide variety of different\n", + "ANNs have been developed, but most of them consist of an input layer,\n", + "an output layer and eventual layers in-between, called *hidden\n", + "layers*. All layers can contain an arbitrary number of nodes, and each\n", + "connection between two nodes is associated with a weight variable.\n", + "\n", + "Neural networks (also called neural nets) are neural-inspired\n", + "nonlinear models for supervised learning. As we will see, neural nets\n", + "can be viewed as natural, more powerful extensions of supervised\n", + "learning methods such as linear and logistic regression and soft-max\n", + "methods we discussed earlier." + ] + }, + { + "cell_type": "markdown", + "id": "6577603f", + "metadata": { + "editable": true + }, + "source": [ + "## Feed-forward neural networks\n", + "\n", + "The feed-forward neural network (FFNN) was the first and simplest type\n", + "of ANNs that were devised. In this network, the information moves in\n", + "only one direction: forward through the layers.\n", + "\n", + "Nodes are represented by circles, while the arrows display the\n", + "connections between the nodes, including the direction of information\n", + "flow. Additionally, each arrow corresponds to a weight variable\n", + "(figure to come). We observe that each node in a layer is connected\n", + "to *all* nodes in the subsequent layer, making this a so-called\n", + "*fully-connected* FFNN." + ] + }, + { + "cell_type": "markdown", + "id": "3f765006", + "metadata": { + "editable": true + }, + "source": [ + "## Convolutional Neural Network\n", + "\n", + "A different variant of FFNNs are *convolutional neural networks*\n", + "(CNNs), which have a connectivity pattern inspired by the animal\n", + "visual cortex. Individual neurons in the visual cortex only respond to\n", + "stimuli from small sub-regions of the visual field, called a receptive\n", + "field. This makes the neurons well-suited to exploit the strong\n", + "spatially local correlation present in natural images. The response of\n", + "each neuron can be approximated mathematically as a convolution\n", + "operation. (figure to come)\n", + "\n", + "Convolutional neural networks emulate the behaviour of neurons in the\n", + "visual cortex by enforcing a *local* connectivity pattern between\n", + "nodes of adjacent layers: Each node in a convolutional layer is\n", + "connected only to a subset of the nodes in the previous layer, in\n", + "contrast to the fully-connected FFNN. Often, CNNs consist of several\n", + "convolutional layers that learn local features of the input, with a\n", + "fully-connected layer at the end, which gathers all the local data and\n", + "produces the outputs. They have wide applications in image and video\n", + "recognition." + ] + }, + { + "cell_type": "markdown", + "id": "20de12ca", + "metadata": { + "editable": true + }, + "source": [ + "## Recurrent neural networks\n", + "\n", + "So far we have only mentioned ANNs where information flows in one\n", + "direction: forward. *Recurrent neural networks* on the other hand,\n", + "have connections between nodes that form directed *cycles*. This\n", + "creates a form of internal memory which are able to capture\n", + "information on what has been calculated before; the output is\n", + "dependent on the previous computations. Recurrent NNs make use of\n", + "sequential information by performing the same task for every element\n", + "in a sequence, where each element depends on previous elements. An\n", + "example of such information is sentences, making recurrent NNs\n", + "especially well-suited for handwriting and speech recognition." + ] + }, + { + "cell_type": "markdown", + "id": "48751fb1", + "metadata": { + "editable": true + }, + "source": [ + "## Other types of networks\n", + "\n", + "There are many other kinds of ANNs that have been developed. One type\n", + "that is specifically designed for interpolation in multidimensional\n", + "space is the radial basis function (RBF) network. RBFs are typically\n", + "made up of three layers: an input layer, a hidden layer with\n", + "non-linear radial symmetric activation functions and a linear output\n", + "layer (''linear'' here means that each node in the output layer has a\n", + "linear activation function). The layers are normally fully-connected\n", + "and there are no cycles, thus RBFs can be viewed as a type of\n", + "fully-connected FFNN. They are however usually treated as a separate\n", + "type of NN due the unusual activation functions." + ] + }, + { + "cell_type": "markdown", + "id": "4bc57cc0", + "metadata": { + "editable": true + }, + "source": [ + "## Multilayer perceptrons\n", + "\n", + "One uses often so-called fully-connected feed-forward neural networks\n", + "with three or more layers (an input layer, one or more hidden layers\n", + "and an output layer) consisting of neurons that have non-linear\n", + "activation functions.\n", + "\n", + "Such networks are often called *multilayer perceptrons* (MLPs)." + ] + }, + { + "cell_type": "markdown", + "id": "f194e3be", + "metadata": { + "editable": true + }, + "source": [ + "## Why multilayer perceptrons?\n", + "\n", + "According to the *Universal approximation theorem*, a feed-forward\n", + "neural network with just a single hidden layer containing a finite\n", + "number of neurons can approximate a continuous multidimensional\n", + "function to arbitrary accuracy, assuming the activation function for\n", + "the hidden layer is a **non-constant, bounded and\n", + "monotonically-increasing continuous function**.\n", + "\n", + "Note that the requirements on the activation function only applies to\n", + "the hidden layer, the output nodes are always assumed to be linear, so\n", + "as to not restrict the range of output values." + ] + }, + { + "cell_type": "markdown", + "id": "11dceaa5", + "metadata": { + "editable": true + }, + "source": [ + "## Illustration of a single perceptron model and a multi-perceptron model\n", + "\n", + "\n", + "\n", + "\n", + "

    Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

    \n", + "" + ] + }, + { + "cell_type": "markdown", + "id": "9564ced4", + "metadata": { + "editable": true + }, + "source": [ + "## Examples of XOR, OR and AND gates\n", + "\n", + "Let us first try to fit various gates using standard linear\n", + "regression. The gates we are thinking of are the classical XOR, OR and\n", + "AND gates, well-known elements in computer science. The tables here\n", + "show how we can set up the inputs $x_1$ and $x_2$ in order to yield a\n", + "specific target $y_i$." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "605a35fc", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The X.TX matrix:[[4. 2. 2.]\n", + " [2. 2. 1.]\n", + " [2. 1. 2.]]\n", + "The invers of X.TX matrix:[[ 7.50000000e-01 -5.00000000e-01 -5.00000000e-01]\n", + " [-5.00000000e-01 1.00000000e+00 -2.27693602e-16]\n", + " [-5.00000000e-01 9.94484047e-17 1.00000000e+00]]\n", + "The values of theta for the XOR gate:[ 5.00000000e-01 -2.22044605e-16 -1.11022302e-16]\n", + "The linear regression prediction for the XOR gate:[0.5 0.5 0.5 0.5]\n", + "The values of theta for the OR gate:[0.25 0.5 0.5 ]\n", + "The linear regression prediction for the OR gate:[0.25 0.75 0.75 1.25]\n", + "The values of theta for the AND gate:[-0.25 0.5 0.5 ]\n", + "The linear regression prediction for the AND gate:[-0.25 0.25 0.25 0.75]\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "Simple code that tests XOR, OR and AND gates with linear regression\n", + "\"\"\"\n", + "\n", + "import numpy as np\n", + "# Design matrix\n", + "X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)\n", + "print(f\"The X.TX matrix:{X.T @ X}\")\n", + "Xinv = np.linalg.pinv(X.T @ X)\n", + "print(f\"The invers of X.TX matrix:{Xinv}\")\n", + "\n", + "# The XOR gate \n", + "yXOR = np.array( [ 0, 1 ,1, 0])\n", + "ThetaXOR = Xinv @ X.T @ yXOR\n", + "print(f\"The values of theta for the XOR gate:{ThetaXOR}\")\n", + "print(f\"The linear regression prediction for the XOR gate:{X @ ThetaXOR}\")\n", + "\n", + "\n", + "# The OR gate \n", + "yOR = np.array( [ 0, 1 ,1, 1])\n", + "ThetaOR = Xinv @ X.T @ yOR\n", + "print(f\"The values of theta for the OR gate:{ThetaOR}\")\n", + "print(f\"The linear regression prediction for the OR gate:{X @ ThetaOR}\")\n", + "\n", + "\n", + "# The OR gate \n", + "yAND = np.array( [ 0, 0 ,0, 1])\n", + "ThetaAND = Xinv @ X.T @ yAND\n", + "print(f\"The values of theta for the AND gate:{ThetaAND}\")\n", + "print(f\"The linear regression prediction for the AND gate:{X @ ThetaAND}\")" + ] + }, + { + "cell_type": "markdown", + "id": "7682eeab", + "metadata": { + "editable": true + }, + "source": [ + "What is happening here?" + ] + }, + { + "cell_type": "markdown", + "id": "8bbee5fe", + "metadata": { + "editable": true + }, + "source": [ + "## Does Logistic Regression do a better Job?" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "9ede7953", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The X.TX matrix:[[4. 2. 2.]\n", + " [2. 2. 1.]\n", + " [2. 1. 2.]]\n", + "The invers of X.TX matrix:[[ 7.50000000e-01 -5.00000000e-01 -5.00000000e-01]\n", + " [-5.00000000e-01 1.00000000e+00 -2.27693602e-16]\n", + " [-5.00000000e-01 9.94484047e-17 1.00000000e+00]]\n", + "The values of theta for the XOR gate:[ 5.00000000e-01 -2.22044605e-16 -1.11022302e-16]\n", + "The linear regression prediction for the XOR gate:[0.5 0.5 0.5 0.5]\n", + "The values of theta for the OR gate:[0.25 0.5 0.5 ]\n", + "The linear regression prediction for the OR gate:[0.25 0.75 0.75 1.25]\n", + "The values of theta for the AND gate:[-0.25 0.5 0.5 ]\n", + "The linear regression prediction for the AND gate:[-0.25 0.25 0.25 0.75]\n", + "Test set accuracy with Logistic Regression for OR gate: 0.75\n", + "Test set accuracy with Logistic Regression for XOR gate: 0.50\n", + "Test set accuracy with Logistic Regression for AND gate: 0.75\n" + ] + } + ], + "source": [ + "%matplotlib inline\n", + "\n", + "\"\"\"\n", + "Simple code that tests XOR and OR gates with linear regression\n", + "and logistic regression\n", + "\"\"\"\n", + "\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.linear_model import LogisticRegression\n", + "import numpy as np\n", + "\n", + "# Design matrix\n", + "X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64)\n", + "print(f\"The X.TX matrix:{X.T @ X}\")\n", + "Xinv = np.linalg.pinv(X.T @ X)\n", + "print(f\"The invers of X.TX matrix:{Xinv}\")\n", + "\n", + "# The XOR gate \n", + "yXOR = np.array( [ 0, 1 ,1, 0])\n", + "ThetaXOR = Xinv @ X.T @ yXOR\n", + "print(f\"The values of theta for the XOR gate:{ThetaXOR}\")\n", + "print(f\"The linear regression prediction for the XOR gate:{X @ ThetaXOR}\")\n", + "\n", + "\n", + "# The OR gate \n", + "yOR = np.array( [ 0, 1 ,1, 1])\n", + "ThetaOR = Xinv @ X.T @ yOR\n", + "print(f\"The values of theta for the OR gate:{ThetaOR}\")\n", + "print(f\"The linear regression prediction for the OR gate:{X @ ThetaOR}\")\n", + "\n", + "\n", + "# The OR gate \n", + "yAND = np.array( [ 0, 0 ,0, 1])\n", + "ThetaAND = Xinv @ X.T @ yAND\n", + "print(f\"The values of theta for the AND gate:{ThetaAND}\")\n", + "print(f\"The linear regression prediction for the AND gate:{X @ ThetaAND}\")\n", + "\n", + "# Now we change to logistic regression\n", + "\n", + "\n", + "# Logistic Regression\n", + "logreg = LogisticRegression()\n", + "logreg.fit(X, yOR)\n", + "print(\"Test set accuracy with Logistic Regression for OR gate: {:.2f}\".format(logreg.score(X,yOR)))\n", + "\n", + "logreg.fit(X, yXOR)\n", + "print(\"Test set accuracy with Logistic Regression for XOR gate: {:.2f}\".format(logreg.score(X,yXOR)))\n", + "\n", + "\n", + "logreg.fit(X, yAND)\n", + "print(\"Test set accuracy with Logistic Regression for AND gate: {:.2f}\".format(logreg.score(X,yAND)))" + ] + }, + { + "cell_type": "markdown", + "id": "110b8ae5", + "metadata": { + "editable": true + }, + "source": [ + "Not exactly impressive, but somewhat better." + ] + }, + { + "cell_type": "markdown", + "id": "7e5f94af", + "metadata": { + "editable": true + }, + "source": [ + "## Adding Neural Networks" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f5aee400", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Test set accuracy with Feed Forward Neural Network for XOR gate:1.0\n" + ] + } + ], + "source": [ + "\n", + "# and now neural networks with Scikit-Learn and the XOR\n", + "\n", + "from sklearn.neural_network import MLPClassifier\n", + "from sklearn.datasets import make_classification\n", + "X, yXOR = make_classification(n_samples=100, random_state=1)\n", + "FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR)\n", + "FFNN.predict_proba(X)\n", + "print(f\"Test set accuracy with Feed Forward Neural Network for XOR gate:{FFNN.score(X, yXOR)}\")" + ] + }, + { + "cell_type": "markdown", + "id": "812e072e", + "metadata": { + "editable": true + }, + "source": [ + "## Mathematical model\n", + "\n", + "The output $y$ is produced via the activation function $f$" + ] + }, + { + "cell_type": "markdown", + "id": "64b04fac", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "y = f\\left(\\sum_{i=1}^n w_ix_i + b_i\\right) = f(z),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "7f8be757", + "metadata": { + "editable": true + }, + "source": [ + "This function receives $x_i$ as inputs.\n", + "Here the activation $z=(\\sum_{i=1}^n w_ix_i+b_i)$. \n", + "In an FFNN of such neurons, the *inputs* $x_i$ are the *outputs* of\n", + "the neurons in the preceding layer. Furthermore, an MLP is\n", + "fully-connected, which means that each neuron receives a weighted sum\n", + "of the outputs of *all* neurons in the previous layer." + ] + }, + { + "cell_type": "markdown", + "id": "a3a920b2", + "metadata": { + "editable": true + }, + "source": [ + "## Mathematical model\n", + "\n", + "First, for each node $i$ in the first hidden layer, we calculate a weighted sum $z_i^1$ of the input coordinates $x_j$," + ] + }, + { + "cell_type": "markdown", + "id": "dacd264b", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} z_i^1 = \\sum_{j=1}^{M} w_{ij}^1 x_j + b_i^1\n", + "\\label{_auto1} \\tag{2}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "5cb2ca57", + "metadata": { + "editable": true + }, + "source": [ + "Here $b_i$ is the so-called bias which is normally needed in\n", + "case of zero activation weights or inputs. How to fix the biases and\n", + "the weights will be discussed below. The value of $z_i^1$ is the\n", + "argument to the activation function $f_i$ of each node $i$, The\n", + "variable $M$ stands for all possible inputs to a given node $i$ in the\n", + "first layer. We define the output $y_i^1$ of all neurons in layer 1 as" + ] + }, + { + "cell_type": "markdown", + "id": "c33f37be", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^1 = f(z_i^1) = f\\left(\\sum_{j=1}^M w_{ij}^1 x_j + b_i^1\\right)\n", + "\\label{outputLayer1} \\tag{3}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8747dd79", + "metadata": { + "editable": true + }, + "source": [ + "where we assume that all nodes in the same layer have identical\n", + "activation functions, hence the notation $f$. In general, we could assume in the more general case that different layers have different activation functions.\n", + "In this case we would identify these functions with a superscript $l$ for the $l$-th layer," + ] + }, + { + "cell_type": "markdown", + "id": "238b66fc", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^l = f^l(u_i^l) = f^l\\left(\\sum_{j=1}^{N_{l-1}} w_{ij}^l y_j^{l-1} + b_i^l\\right)\n", + "\\label{generalLayer} \\tag{4}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ec349a1b", + "metadata": { + "editable": true + }, + "source": [ + "where $N_l$ is the number of nodes in layer $l$. When the output of\n", + "all the nodes in the first hidden layer are computed, the values of\n", + "the subsequent layer can be calculated and so forth until the output\n", + "is obtained." + ] + }, + { + "cell_type": "markdown", + "id": "ab5abd1e", + "metadata": { + "editable": true + }, + "source": [ + "## Mathematical model\n", + "\n", + "The output of neuron $i$ in layer 2 is thus," + ] + }, + { + "cell_type": "markdown", + "id": "f4cebe1e", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^2 = f^2\\left(\\sum_{j=1}^N w_{ij}^2 y_j^1 + b_i^2\\right) \n", + "\\label{_auto2} \\tag{5}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "dd700242", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = f^2\\left[\\sum_{j=1}^N w_{ij}^2f^1\\left(\\sum_{k=1}^M w_{jk}^1 x_k + b_j^1\\right) + b_i^2\\right]\n", + "\\label{outputLayer2} \\tag{6}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "6e309498", + "metadata": { + "editable": true + }, + "source": [ + "where we have substituted $y_k^1$ with the inputs $x_k$. Finally, the ANN output reads" + ] + }, + { + "cell_type": "markdown", + "id": "aad2882a", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y_i^3 = f^3\\left(\\sum_{j=1}^N w_{ij}^3 y_j^2 + b_i^3\\right) \n", + "\\label{_auto3} \\tag{7}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "dc802cd2", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + " = f_3\\left[\\sum_{j} w_{ij}^3 f^2\\left(\\sum_{k} w_{jk}^2 f^1\\left(\\sum_{m} w_{km}^1 x_m + b_k^1\\right) + b_j^2\\right)\n", + " + b_1^3\\right]\n", + "\\label{_auto4} \\tag{8}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "57e22c56", + "metadata": { + "editable": true + }, + "source": [ + "## Mathematical model\n", + "\n", + "We can generalize this expression to an MLP with $l$ hidden\n", + "layers. The complete functional form is," + ] + }, + { + "cell_type": "markdown", + "id": "6e91389e", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "y^{l+1}_i = f^{l+1}\\left[\\!\\sum_{j=1}^{N_l} w_{ij}^3 f^l\\left(\\sum_{k=1}^{N_{l-1}}w_{jk}^{l-1}\\left(\\dots f^1\\left(\\sum_{n=1}^{N_0} w_{mn}^1 x_n+ b_m^1\\right)\\dots\\right)+b_k^2\\right)+b_1^3\\right] \n", + "\\label{completeNN} \\tag{9}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8755afdf", + "metadata": { + "editable": true + }, + "source": [ + "which illustrates a basic property of MLPs: The only independent\n", + "variables are the input values $x_n$." + ] + }, + { + "cell_type": "markdown", + "id": "f1dc0077", + "metadata": { + "editable": true + }, + "source": [ + "## Mathematical model\n", + "\n", + "This confirms that an MLP, despite its quite convoluted mathematical\n", + "form, is nothing more than an analytic function, specifically a\n", + "mapping of real-valued vectors $\\hat{x} \\in \\mathbb{R}^n \\rightarrow\n", + "\\hat{y} \\in \\mathbb{R}^m$.\n", + "\n", + "Furthermore, the flexibility and universality of an MLP can be\n", + "illustrated by realizing that the expression is essentially a nested\n", + "sum of scaled activation functions of the form" + ] + }, + { + "cell_type": "markdown", + "id": "71fb8777", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " f(x) = c_1 f(c_2 x + c_3) + c_4\n", + "\\label{_auto5} \\tag{10}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "96280b34", + "metadata": { + "editable": true + }, + "source": [ + "where the parameters $c_i$ are weights and biases. By adjusting these\n", + "parameters, the activation functions can be shifted up and down or\n", + "left and right, change slope or be rescaled which is the key to the\n", + "flexibility of a neural network." + ] + }, + { + "cell_type": "markdown", + "id": "6be3363c", + "metadata": { + "editable": true + }, + "source": [ + "### Matrix-vector notation\n", + "\n", + "We can introduce a more convenient notation for the activations in an A NN. \n", + "\n", + "Additionally, we can represent the biases and activations\n", + "as layer-wise column vectors $\\hat{b}_l$ and $\\hat{y}_l$, so that the $i$-th element of each vector \n", + "is the bias $b_i^l$ and activation $y_i^l$ of node $i$ in layer $l$ respectively. \n", + "\n", + "We have that $\\mathrm{W}_l$ is an $N_{l-1} \\times N_l$ matrix, while $\\hat{b}_l$ and $\\hat{y}_l$ are $N_l \\times 1$ column vectors. \n", + "With this notation, the sum becomes a matrix-vector multiplication, and we can write\n", + "the equation for the activations of hidden layer 2 (assuming three nodes for simplicity) as" + ] + }, + { + "cell_type": "markdown", + "id": "d1eb96a8", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\hat{y}_2 = f_2(\\mathrm{W}_2 \\hat{y}_{1} + \\hat{b}_{2}) = \n", + " f_2\\left(\\left[\\begin{array}{ccc}\n", + " w^2_{11} &w^2_{12} &w^2_{13} \\\\\n", + " w^2_{21} &w^2_{22} &w^2_{23} \\\\\n", + " w^2_{31} &w^2_{32} &w^2_{33} \\\\\n", + " \\end{array} \\right] \\cdot\n", + " \\left[\\begin{array}{c}\n", + " y^1_1 \\\\\n", + " y^1_2 \\\\\n", + " y^1_3 \\\\\n", + " \\end{array}\\right] + \n", + " \\left[\\begin{array}{c}\n", + " b^2_1 \\\\\n", + " b^2_2 \\\\\n", + " b^2_3 \\\\\n", + " \\end{array}\\right]\\right).\n", + "\\label{_auto6} \\tag{11}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "044d5e68", + "metadata": { + "editable": true + }, + "source": [ + "### Matrix-vector notation and activation\n", + "\n", + "The activation of node $i$ in layer 2 is" + ] + }, + { + "cell_type": "markdown", + "id": "23a2c440", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + " y^2_i = f_2\\Bigr(w^2_{i1}y^1_1 + w^2_{i2}y^1_2 + w^2_{i3}y^1_3 + b^2_i\\Bigr) = \n", + " f_2\\left(\\sum_{j=1}^3 w^2_{ij} y_j^1 + b^2_i\\right).\n", + "\\label{_auto7} \\tag{12}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "5f6921f1", + "metadata": { + "editable": true + }, + "source": [ + "This is not just a convenient and compact notation, but also a useful\n", + "and intuitive way to think about MLPs: The output is calculated by a\n", + "series of matrix-vector multiplications and vector additions that are\n", + "used as input to the activation functions. For each operation\n", + "$\\mathrm{W}_l \\hat{y}_{l-1}$ we move forward one layer." + ] + }, + { + "cell_type": "markdown", + "id": "bc3e047f", + "metadata": { + "editable": true + }, + "source": [ + "### Activation functions\n", + "\n", + "A property that characterizes a neural network, other than its\n", + "connectivity, is the choice of activation function(s). As described\n", + "in, the following restrictions are imposed on an activation function\n", + "for a FFNN to fulfill the universal approximation theorem\n", + "\n", + " * Non-constant\n", + "\n", + " * Bounded\n", + "\n", + " * Monotonically-increasing\n", + "\n", + " * Continuous" + ] + }, + { + "cell_type": "markdown", + "id": "f2ff2ee2", + "metadata": { + "editable": true + }, + "source": [ + "### Activation functions, Logistic and Hyperbolic ones\n", + "\n", + "The second requirement excludes all linear functions. Furthermore, in\n", + "a MLP with only linear activation functions, each layer simply\n", + "performs a linear transformation of its inputs.\n", + "\n", + "Regardless of the number of layers, the output of the NN will be\n", + "nothing but a linear function of the inputs. Thus we need to introduce\n", + "some kind of non-linearity to the NN to be able to fit non-linear\n", + "functions Typical examples are the logistic *Sigmoid*" + ] + }, + { + "cell_type": "markdown", + "id": "a336177e", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "f(x) = \\frac{1}{1 + e^{-x}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "c9a263c9", + "metadata": { + "editable": true + }, + "source": [ + "and the *hyperbolic tangent* function" + ] + }, + { + "cell_type": "markdown", + "id": "f102c33c", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "f(x) = \\tanh(x)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "92eeded3", + "metadata": { + "editable": true + }, + "source": [ + "### Relevance\n", + "\n", + "The *sigmoid* function are more biologically plausible because the\n", + "output of inactive neurons are zero. Such activation function are\n", + "called *one-sided*. However, it has been shown that the hyperbolic\n", + "tangent performs better than the sigmoid for training MLPs. has\n", + "become the most popular for *deep neural networks*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "17339021", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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vdp/xVwaD9ehsXAdGgvX4SljUdf89SojeXl5OBwOYmNjqy2PjY0lJyen1m1ycnJqXb+iooK8vDxatWpVY5vp06czderUGsuXLFlCcPCZHaYxW3p6utkR5Fc0Hq5DY+E6NBauw93HorS0tE7rNWgC62/PADEM47RnhdS2fm3LT5o8eTKpqalVjwsLC4mPjyclJeXM9oyYyG63k56ezogRIzSB1QVoPFyHxsJ1aCxch6eMxckjG7+nXmWkRYsW+Pr61tgLkpubW2Pvx0ktW7asdX0/Pz+ioqJq3cZqtWK11rxdvb+/v1sPCnjGe/AkGg/XobFwHRoL1+HuY1HX7PU6PSQgIIDk5OQau43S09MZNGhQrdsMHDiwxvpLliyhX79+bv0DFhERkcZR73NVU1NTef3113njjTfYtm0b999/P5mZmVXXDZk8eTJjxoypWn/ixIns37+f1NRUtm3bxhtvvMGcOXN48MEHG+9diIiIiNuq95yRUaNGkZ+fz7Rp08jOzqZ79+4sWrSItm3bApCdnU1mZmbV+klJSSxatIj777+fWbNmERcXx4svvljv03pFRETEMzVoAuukSZOYNGlSrd+bO3dujWVDhw5l3bp1DXkpERER8XC6pKiIiIiYSmVERERETKUyIiIiIqZSGRERERFTqYyIiIiIqVRGRERExFQqIyIiImIqlRERERExlcqIiIiImEplREREREylMiIiIiKmUhkRERERU6mMiIiIiKlURkRERMRUKiMiIiJiKpURERERMZXKiIiIiJhKZURERERMpTIiIiIiplIZEREREVOpjIiIiIipVEZERETEVCojIiIiYio/swPUhWEYABQWFpqcpOHsdjulpaUUFhbi7+9vdhyvp/FwHRoL16GxcB2eMhYn/90++e/4qbhFGSkqKgIgPj7e5CQiIiJSX0VFRURERJzy+xbj9+qKC3A6nWRlZREWFobFYjE7ToMUFhYSHx/PgQMHCA8PNzuO19N4uA6NhevQWLgOTxkLwzAoKioiLi4OH59Tzwxxiz0jPj4+tGnTxuwYjSI8PNyt/2J5Go2H69BYuA6NhevwhLE43R6RkzSBVUREREylMiIiIiKmUhlpIlarlSeffBKr1Wp2FEHj4Uo0Fq5DY+E6vG0s3GICq4iIiHgu7RkRERERU6mMiIiIiKlURkRERMRUKiMiIiJiKpURk9lsNnr37o3FYmHDhg1mx/E6+/btY/z48SQlJREUFET79u158sknKS8vNzuaV0hLSyMpKYnAwECSk5NZtmyZ2ZG80vTp0zn33HMJCwsjJiaGq6++mh07dpgdy+tNnz4di8XCfffdZ3aUs05lxGQPP/wwcXFxZsfwWtu3b8fpdPLqq6+yZcsW/vGPf/DKK6/w2GOPmR3N4y1YsID77ruPxx9/nPXr1zNkyBBGjhxJZmam2dG8ztKlS7nrrrtYuXIl6enpVFRUkJKSQklJidnRvNbq1at57bXX6Nmzp9lRmoRO7TXRV199RWpqKh999BHdunVj/fr19O7d2+xYXu/ZZ59l9uzZZGRkmB3Fow0YMIC+ffsye/bsqmVdunTh6quvZvr06SYmkyNHjhATE8PSpUu54IILzI7jdYqLi+nbty9paWk89dRT9O7dm5kzZ5od66zSnhGTHD58mNtvv523336b4OBgs+PIrxQUFBAZGWl2DI9WXl7O2rVrSUlJqbY8JSWF5cuXm5RKTiooKADQ58Akd911F5dffjkXX3yx2VGajFvcKM/TGIbBuHHjmDhxIv369WPfvn1mR5Jf7Nmzh5deeonnn3/e7CgeLS8vD4fDQWxsbLXlsbGx5OTkmJRKoPL3U2pqKueffz7du3c3O47Xef/991m3bh2rV682O0qT0p6RRjRlyhQsFstpv9asWcNLL71EYWEhkydPNjuyx6rrWPxaVlYWl156KTfccAMTJkwwKbl3sVgs1R4bhlFjmTStP/3pT2zatIn58+ebHcXrHDhwgHvvvZd33nmHwMBAs+M0Kc0ZaUR5eXnk5eWddp3ExET+53/+h88//7zaL12Hw4Gvry+33HILb7311tmO6vHqOhYnP/BZWVkMHz6cAQMGMHfuXHx81NPPpvLycoKDg1m4cCHXXHNN1fJ7772XDRs2sHTpUhPTea+7776bTz/9lB9++IGkpCSz43idTz/9lGuuuQZfX9+qZQ6HA4vFgo+PDzabrdr3PInKiAkyMzMpLCysepyVlcUll1zChx9+yIABA2jTpo2J6bzPoUOHGD58OMnJybzzzjse+2F3NQMGDCA5OZm0tLSqZV27duWqq67SBNYmZhgGd999N5988gnff/89HTt2NDuSVyoqKmL//v3Vlt1222107tyZRx55xKMPm2nOiAkSEhKqPQ4NDQWgffv2KiJNLCsri2HDhpGQkMBzzz3HkSNHqr7XsmVLE5N5vtTUVEaPHk2/fv0YOHAgr732GpmZmUycONHsaF7nrrvu4r333uOzzz4jLCysat5OREQEQUFBJqfzHmFhYTUKR0hICFFRUR5dREBlRLzckiVL2L17N7t3765RBLXT8OwaNWoU+fn5TJs2jezsbLp3786iRYto27at2dG8zsnTq4cNG1Zt+Ztvvsm4ceOaPpB4HR2mEREREVNplp6IiIiYSmVERERETKUyIiIiIqZSGRERERFTqYyIiIiIqVRGRERExFQqIyIiImIqlRERERExlcqIiIiImEplREREREylMiIipti3bx8Wi6XG12/vjyIink83yhMRU8THx5OdnV31OCcnh4svvpgLLrjAxFQiYgbdKE9ETFdWVsawYcOIjo7ms88+w8dHO21FvIn2jIiI6caPH09RURHp6ekqIiJeSGVEREz11FNPsXjxYlatWkVYWJjZcUTEBDpMIyKm+eijj7jpppv46quvuOiii8yOIyImURkREVNs3ryZAQMGkJqayl133VW1PCAggMjISBOTiUhTUxkREVPMnTuX2267rcbyoUOH8v333zd9IBExjcqIiIiImErT1kVERMRUKiMiIiJiKpURERERMZXKiIiIiJhKZURERERMpTIiIiIiplIZEREREVOpjIiIiIipVEZERETEVCojIiIiYiqVERERETGVyoiIiIiY6v8BvTbMmmTYTNIAAAAASUVORK5CYII=\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_57_0.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAHFCAYAAAD/kYOsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4kUlEQVR4nO3de3SU1b3/8c8EwoQIiQYkCW0IlEWBAAoEyYWCREwQBNGKQLVRFLAssIKpy5p6A/Q0R2slgILSQ02R67ER0BqRYA3gIVCBBKun8gMPGIRELkqGi5kMyfP7QzMwTghJZZjJnvdrrVn67Nnz5LvZTvj47OdisyzLEgAAgEFC/F0AAADApUbAAQAAxiHgAAAA4xBwAACAcQg4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABcFErVqxQbm6uX2v46quvNGHCBHXo0EE2m0233nqrX+v5/e9/r7Vr13q1FxUVyWazqaio6LLXBOAcG49qAHAxo0aN0scff6wDBw74rYaHHnpICxcu1J///Gd17dpVUVFR+ulPf+q3etq0aaOxY8cqLy/Po93hcOh///d/lZCQoIiICP8UB0At/V0AADTGxx9/rK5du+quu+7ydykNioiIUHJysr/LAIIeS1RAkDt69Kjuv/9+xcXFyW636+qrr9agQYO0ceNGSdLQoUP19ttv6/PPP5fNZnO/6lRXV+uZZ55Rjx493J+/9957dfToUY+f07lzZ40aNUpr1qzRNddco7CwMP3kJz/R/PnzG6zvwIEDstls2rhxo/71r3+5f35RUdEFl4PqPnP+0ZWJEyeqTZs22rdvn0aOHKk2bdooLi5Ov/nNb+R0Oj0+73Q6NWfOHPXs2VNhYWFq166d0tLStHXrVkmSzWbT6dOn9Ze//MVdz9ChQyVdeInqzTffVEpKisLDw9W2bVulp6eruLjYo8+sWbNks9n0ySef6Be/+IUiIyMVHR2t++67T5WVlQ3+OQHwxBEcIMhlZmZq165d+o//+A/99Kc/1YkTJ7Rr1y4dP35ckrRw4ULdf//9+uyzz7RmzRqPz9bW1mrMmDHasmWLHnnkEaWmpurzzz/XU089paFDh2rHjh1q3bq1u39paalmzpypWbNmKSYmRsuXL9eMGTNUXV2thx9+uN76YmNjVVxcrGnTpqmyslLLly+XJCUkJGjXrl1NGqvL5dItt9yiSZMm6Te/+Y02b96sp59+WpGRkXryySclSWfPntWIESO0ZcsWzZw5UzfccIPOnj2rbdu2qaysTKmpqSouLtYNN9ygtLQ0PfHEE5LU4HLUihUrdNdddykjI0MrV66U0+nUc889p6FDh+q9997Tz372M4/+t99+u8aPH69Jkybpn//8p7KzsyVJf/7zn5s0XiCoWQCCWps2bayZM2c22Ofmm2+24uPjvdpXrlxpSbLy8/M92j/88ENLkrVw4UJ3W3x8vGWz2azS0lKPvunp6VZERIR1+vTpBmu4/vrrrV69enm0vf/++5Yk6/333/do379/vyXJevXVV91t99xzjyXJ+u///m+PviNHjrS6d+/u3l66dKklyfrTn/7UYD1XXHGFdc8993i1f7+mmpoaq2PHjlafPn2smpoad7+TJ09aHTp0sFJTU91tTz31lCXJeu655zz2OW3aNCssLMyqra1tsCYA57BEBQS5gQMHKi8vT88884y2bdsml8vV6M/+7W9/05VXXqnRo0fr7Nmz7lffvn0VExPjtUzTq1cvXXvttR5td955pxwOR5OPxvw7bDabRo8e7dF2zTXX6PPPP3dvv/POOwoLC9N99913SX7mnj17dPjwYWVmZiok5Nyv3DZt2uj222/Xtm3bdObMGY/P3HLLLV41VlVV6ciRI5ekJiAYEHCAILd69Wrdc889+q//+i+lpKQoKipKd999tyoqKi762S+//FInTpxQq1atFBoa6vGqqKjQsWPHPPrHxMR47aOurW5JzJfCw8MVFhbm0Wa321VVVeXePnr0qDp27OgRRn6IunHFxsZ6vdexY0fV1tbq66+/9mhv166dV42S9M0331ySmoBgwDk4QJBr3769cnNzlZubq7KyMr355pt69NFHdeTIEa1fv/6in23Xrt0F+7Vt29Zju77QVNf2/b/UG6MurHz/JOHvB6umuPrqq/XBBx+otrb2koScunGVl5d7vXf48GGFhIToqquu+sE/B4AnjuAAcOvUqZMeeOABpaeneywZ2e32eo8ejBo1SsePH1dNTY0GDBjg9erevbtH/08++US7d+/2aFuxYoXatm2r/v37N7nezp07S5I++ugjj/Y333yzyfuqM2LECFVVVXnd3+b7LvRn8n3du3fXj370I61YsULWebcdO336tPLz891XVgG4tDiCAwSxyspKpaWl6c4771SPHj3Utm1bffjhh1q/fr1+/vOfu/v16dNHb7zxhhYtWqTExESFhIRowIABmjBhgpYvX66RI0dqxowZGjhwoEJDQ/XFF1/o/fff15gxY3Tbbbe599OxY0fdcsstmjVrlmJjY7Vs2TIVFhbq2Wef/bf+ko+JidGNN96onJwcXXXVVYqPj9d7772nN95449/+M/nFL36hV199VVOnTtWePXuUlpam2tpabd++XT179tSECRPcfyZFRUV66623FBsbq7Zt23oFOkkKCQnRc889p7vuukujRo3Sr371KzmdTv3hD3/QiRMn9J//+Z//dq0AGuDvs5wB+E9VVZU1depU65prrrEiIiKs1q1bW927d7eeeuopj6uavvrqK2vs2LHWlVdeadlsNuv8Xx0ul8t6/vnnrWuvvdYKCwuz2rRpY/Xo0cP61a9+Ze3du9fdLz4+3rr55putv/71r1avXr2sVq1aWZ07d7ZeeOGFRtVa31VUlmVZ5eXl1tixY62oqCgrMjLS+uUvf2nt2LGj3quorrjiCq/P1125dL5vvvnGevLJJ61u3bpZrVq1stq1a2fdcMMN1tatW919SktLrUGDBlnh4eGWJOv666+3LOvCV3atXbvWSkpKssLCwqwrrrjCGjZsmPU///M/9dZy9OhRj/ZXX33VkmTt37+/EX9SACzLsnhUA4DLonPnzurdu7f+9re/+bsUAEGAc3AAAIBxCDgAAMA4LFEBAADj+PQIzubNmzV69Gh17NhRNptNa9eubbB/3UPqvv/69NNPPfrl5+crISFBdrtdCQkJXs/HAQAAwc2nAef06dO69tpr9eKLLzbpc3v27FF5ebn71a1bN/d7xcXFGj9+vDIzM7V7925lZmZq3Lhx2r59+6UuHwAANFOXbYnKZrNpzZo1uvXWWy/Yp6ioSGlpafr666915ZVX1ttn/Pjxcjgceuedd9xtN910k6666iqtXLnyElcNAACao4C80V+/fv1UVVWlhIQEPf7440pLS3O/V1xcrIceesij//Dhw5Wbm3vB/TmdTo9budfW1uqrr75Su3btZLPZLnn9AADg0rMsSydPnmzU8+ICKuDExsZq8eLFSkxMlNPp1GuvvaZhw4apqKhIQ4YMkfTtc2uio6M9PhcdHd3ggwFzcnI0e/Zsn9YOAAAuj4MHD+rHP/5x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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_57_1.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_57_2.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAHFCAYAAAD7ZFORAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABFNElEQVR4nO3deViVdf7/8ddhB0VUkM0F0HLJFbFcJhUqcSnHsiylMW3KGctljBwnbEqsUcuvmZlbfcekTXPKbGoyk5lEm9TSxF0xC8UFXFABReEA9+8Pv55fCKIohwP3eT6ui+vqvs/nvs/7zQfk1f25zzkWwzAMAQAAmJCLowsAAACwF4IOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOAAAwLYIOUM2SkpJksVhsX25ubgoJCdHQoUP1008/2e15jx07psTERG3btq3MY4mJibJYLKX2FRYWavTo0QoJCZGrq6s6deokSQoPD9fIkSOrtDaLxaLExMQKxxw8eFAWi0VJSUm2fZe/lwcPHqzSemqz8uZywYIFpb5vgDNxc3QBgLNasmSJWrdurYsXL+q7777TtGnTtHbtWu3bt08NGjSo8uc7duyYpk6dqvDwcFtouezJJ59Uv379Su1buHCh3nrrLb355puKiopS3bp1JUkrV65UvXr1qry+G3Hvvfdq48aNCgkJcXQpNUZ5c7lgwQIFBARUeUAFagOCDuAg7dq1U5cuXSRJ0dHRKi4u1pQpU/TZZ5/p8ccfr9ZamjRpoiZNmpTat2vXLnl7e2vs2LGl9kdGRlZnaRVq1KiRGjVq5OgyKpSfny8fH59qe77y5hJwZixdATXE5dBz/PjxUvu3bNmi3/72t2rYsKG8vLwUGRmpf/zjH2WOP3r0qP7whz+oadOm8vDwUGhoqB566CEdP35cKSkpuv322yVJjz/+uG3Z7PJy0ZXLHRaLRX//+9914cIF29jLSx/lLV3l5uZq4sSJioiIkIeHhxo3bqwJEybo/PnzZcaNGjVK/v7+qlu3rvr166f9+/ff8PesvKWr6OhotWvXTps3b1bPnj3l4+Oj5s2b65VXXlFJSckN1T1//nz16tVLgYGBqlOnjtq3b6+ZM2fKarWWGnf5udevX68ePXrIx8dHv//9769af3R0tKKjo8vsHzlypMLDw23bl5ftZs2apdmzZysiIkJ169ZV9+7dtWnTplLHXjmX4eHh2r17t9atW2eby1+fGzA7rugANUR6erokqWXLlrZ9a9euVb9+/dS1a1ctWrRIfn5++uijj/TII48oPz/fFjiOHj2q22+/XVarVZMnT1aHDh2UnZ2tr7/+WmfOnFHnzp21ZMkSPf744/rrX/+qe++9V5Ku+n/+Gzdu1Msvv6y1a9fqm2++kSS1aNGi3LH5+fnq3bu3jhw5Ynvu3bt368UXX9TOnTv173//WxaLRYZh6P7779eGDRv04osv6vbbb9d3332n/v37V9W30CYrK0uPPvqonn32WU2ZMkUrV65UQkKCQkND9dhjj1Wqbkn6+eefFRcXZwtE27dv17Rp07Rv3z698847pZ47MzNTv/vd7zRp0iRNnz5dLi5V9/+T8+fPV+vWrTVnzhxJ0gsvvKABAwYoPT1dfn5+5R6zcuVKPfTQQ/Lz89OCBQskSZ6enlVWE1DjGQCq1ZIlSwxJxqZNmwyr1Wrk5eUZq1evNoKDg41evXoZVqvVNrZ169ZGZGRkqX2GYRj33XefERISYhQXFxuGYRi///3vDXd3d2PPnj1Xfd7NmzcbkowlS5aUeWzKlCnGlf8cjBgxwqhTp06ZsWFhYcaIESNs2zNmzDBcXFyMzZs3lxr3ySefGJKMVatWGYZhGF999ZUhyXjjjTdKjZs2bZohyZgyZcpVazcMw0hPTy9T/+XvZXp6um1f7969DUnG999/X+r42267zejbt2+l675ScXGxYbVajffee89wdXU1Tp8+Xea5//Of/1TYy6/H9+7du8z+ESNGGGFhYbbty723b9/eKCoqsu3/4YcfDEnGsmXLbPvKm8u2bduW+zyAM2DpCnCQbt26yd3dXb6+vurXr58aNGigf/7zn3Jzu3Sh9cCBA9q3b58effRRSVJRUZHta8CAAcrMzFRaWpok6auvvlJMTIzatGlT7X3861//Urt27dSpU6dSNfbt21cWi0UpKSmSLl2dkmTr57K4uLgqryk4OFh33HFHqX0dOnTQoUOHKl23JKWmpuq3v/2t/P395erqKnd3dz322GMqLi4us/TWoEED3XXXXVXek3Tp5mtXV9dSPUkq1ReA0li6AhzkvffeU5s2bZSXl6fly5frrbfe0rBhw/TVV19J+v/36kycOFETJ04s9xynTp2SJJ08edJhN6AeP35cBw4ckLu7e7mPX64xOztbbm5u8vf3L/V4cHBwldd05XNIl5ZrLly4YNu+3rozMjLUs2dPtWrVSm+88YbCw8Pl5eWlH374QWPGjCl1Tkl2fQXYlX1dXoK6sgYA/x9BB3CQNm3a2G5AjomJUXFxsf7+97/rk08+0UMPPaSAgABJUkJCggYPHlzuOVq1aiXp0quPjhw5Uj2FXyEgIEDe3t5l7lX59ePSpT/SRUVFys7OLvUHOysrq1rqLK+u66n7s88+0/nz5/Xpp58qLCzM9nh570ckqcx72FTEy8tLOTk5ZfZfDlkAbh5BB6ghZs6cqRUrVujFF1/U4MGD1apVK916663avn27pk+fXuGx/fv31/vvv6+0tDRb+LmSvf7v/7777tP06dPl7++viIiIq46LiYnRzJkz9eGHH2r8+PG2/UuXLq3Seq7X9dZ9Obj8+gZewzD0v//7vzddQ3h4uD7++GMVFBTYzp+dna0NGzZU6XsVXXk1C3AmBB2ghmjQoIESEhI0adIkLV26VL/73e/01ltvqX///urbt69Gjhypxo0b6/Tp09q7d6+2bt2qjz/+WJL00ksv6auvvlKvXr00efJktW/fXmfPntXq1asVHx+v1q1bq0WLFvL29taHH36oNm3aqG7dugoNDVVoaOhN1T1hwgStWLFCvXr10jPPPKMOHTqopKREGRkZWrNmjZ599ll17dpVsbGx6tWrlyZNmqTz58+rS5cu+u677/T+++9XxbfPbnX36dNHHh4eGjZsmCZNmqSLFy9q4cKFOnPmzE3XMHz4cL311lv63e9+p1GjRik7O1szZ86s8jdkbN++vT766CMtX75czZs3l5eXl9q3b1+lzwHUVNyMDNQg48aNU7NmzfTSSy+puLhYMTEx+uGHH1S/fn1NmDBB99xzj5566in9+9//1j333GM7rnHjxvrhhx9033336ZVXXlG/fv00btw45eTkqGHDhpIkHx8fvfPOO8rOzlZsbKxuv/12vf322zddc506dfTtt99q5MiRevvtt3Xvvffq4Ycf1ty5c9WkSRPbe7a4uLjo888/16OPPqqZM2faXmq+atWqm67BnnW3bt1aK1as0JkzZzR48GCNGzdOnTp10ty5c2+6ht/85jd69913tXv3bg0aNEh/+9vflJCQUO5769yMqVOnqnfv3ho1apTu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lAmgFjlXUKRnlm/TpBU7dNFaop63BmjVn3oScgCUYvegs3z5ck2YMEHPP/+8UlNT1bNnT/Xv318ZGRnljk9PT9eAAQPUs2dPpaamavLkyRo/frxWrFhh71IB1BJ7M/P02zf/q8+2HZOri0V/7ttK7z5+hwLqejq6NAA1jN2XrmbPnq0nnnhCTz75pCRpzpw5+vrrr7Vw4ULNmDGjzPhFixapWbNmmjNnjiSpTZs22rJli2bNmqUHH3zwup/3WM4FXXDJr5IeaoOioiKdLpCOnr0gNzero8upNvTtfH3/N8uiP7/9vQqLShRcz0tvxkXq9vCGji4NQA1l16BTWFioH3/8Uc8991yp/bGxsdqwYUO5x2zcuFGxsbGl9vXt21eLFy+W1WqVu7t7qccKCgpUUFBg287NvfQW7/e+uVEunj5V0UYt4qapWyteFjQn+nYurpJKFN0yQK8ObqeGdTxktZo77F3uz+x9Xom+nbPvqmbXoHPq1CkVFxcrKKj0JwMHBQUpKyur3GOysrLKHV9UVKRTp04pJCSk1GMzZszQ1KlTy5zH3WLIxWLcZAcAahoPV+mexiWKbpilTevK/3fErJKTkx1dgkPQt3PIz7fPKky1vOrKYin9Ek/DMMrsu9b48vZLUkJCguLj423bubm5atq0qb6b1Ev+/s5zU6LValVycrL69OlT5qqXmdE3fTsD+qZvZ5CdnW2X89o16AQEBMjV1bXM1ZsTJ06UuWpzWXBwcLnj3dzcyg0unp6e8vQsewOiu7u7U/2AXEbfzoW+nQt9Oxdn69tevdr1VVceHh6Kiooqc/ktOTlZPXr0KPeY7t27lxm/Zs0adenSxakmHAAA3Dy7v7w8Pj5ef//73/XOO+9o7969euaZZ5SRkaHRo0dLurT09Nhjj9nGjx49WocOHVJ8fLz27t2rd955R4sXL9bEiRPtXSoAADAZu9+j88gjjyg7O1svvfSSMjMz1a5dO61atUphYWGSpMzMzFLvqRMREaFVq1bpmWee0fz58xUaGqq5c+dW6qXlAAAAUjXdjPz000/r6aefLvexpKSkMvt69+6trVu32rkqAABgdtXyERAAAACOQNABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmRdABAACmZdegc+bMGQ0fPlx+fn7y8/PT8OHDdfbs2QqPGTlypCwWS6mvbt262bNMAABgUm72PHlcXJyOHDmi1atXS5L+8Ic/aPjw4friiy8qPK5fv35asmSJbdvDw8OeZQIAAJOyW9DZu3evVq9erU2bNqlr166SpP/93/9V9+7dlZaWplatWl31WE9PTwUHB9urNAAA4CTsFnQ2btwoPz8/W8iRpG7dusnPz08bNmyoMOikpKQoMDBQ9evXV+/evTVt2jQFBgaWO7agoEAFBQW27dzcXEmS1WqV1Wqtom5qvsu9OlPPEn3Tt3Ogb/p2Bvbq12IYhmGPE0+fPl1JSUnav39/qf0tW7bU448/roSEhHKPW758uerWrauwsDClp6frhRdeUFFRkX788Ud5enqWGZ+YmKipU6eW2b906VL5+PhUTTMAAMCu8vPzFRcXp5ycHNWrV6/KzlvpKzpXCxa/tnnzZkmSxWIp85hhGOXuv+yRRx6x/Xe7du3UpUsXhYWF6csvv9TgwYPLjE9ISFB8fLxtOzc3V02bNlVMTIz8/f2v2Y9ZWK1WJScnq0+fPnJ3d3d0OdWGvunbGdA3fTuD7Oxsu5y30kFn7NixGjp0aIVjwsPDtWPHDh0/frzMYydPnlRQUNB1P19ISIjCwsL0008/lfu4p6dnuVd63N3dneoH5DL6di707Vzo27k4W9/26rXSQScgIEABAQHXHNe9e3fl5OTohx9+0B133CFJ+v7775WTk6MePXpc9/NlZ2fr8OHDCgkJqWypAADAydntfXTatGmjfv36adSoUdq0aZM2bdqkUaNG6b777it1I3Lr1q21cuVKSdK5c+c0ceJEbdy4UQcPHlRKSooGDhyogIAAPfDAA/YqFQAAmJRd3zDwww8/VPv27RUbG6vY2Fh16NBB77//fqkxaWlpysnJkSS5urpq586dGjRokFq2bKkRI0aoZcuW2rhxo3x9fe1ZKgAAMCG7vmFgw4YN9cEHH1Q45tcv+vL29tbXX39tz5IAAIAT4bOu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AwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATIugAwAATMtuQefgwYN64oknFBERIW9vb7Vo0UJTpkxRYWFhhccZhqHExESFhobK29tb0dHR2r17t73KBAAAJma3oLNv3z6VlJTorbfe0u7du/X6669r0aJFmjx5coXHzZw5U7Nnz9a8efO0efNmBQcHq0+fPsrLy7NXqQAAwKTc7HXifv36qV+/frbt5s2bKy0tTQsXLtSsWbPKPcYwDM2ZM0fPP/+8Bg8eLEl69913FRQUpKVLl+qPf/yjvcoFAAAmVK336OTk5Khhw4ZXfTw9PV1ZWVmKjY217fP09FTv3r21YcOG6igRAACYiN2u6Fzp559/1ptvvqnXXnvtqmOysrIkSUFBQaX2BwUF6dChQ+UeU1BQoIKCAtt2Tk6OJOn06dM3W3KtYrValZ+fr+zsbLm7uzu6nGpD3/TtDOibvp3B5b/bhmFU6XkrHXQSExM1derUCsds3rxZXbp0sW0fO3ZM/fr105AhQ/Tkk09e8zksFkupbcMwyuy7bMaMGeXW07Jly2s+DwAAqFmys7Pl5+dXZeezGJWMTqdOndKpU6cqHBMeHi4vLy9Jl0JOTEyMunbtqqSkJLm4XH217JdfflGLFi20detWRUZG2vYPGjRI9evX17vvvlvmmCuv6Jw9e1ZhYWHKyMio0m9UTZebm6umTZvq8OHDqlevnqPLqTb0Td/OgL7p2xnk5OSoWbNmOnPmjOrXr19l5630FZ2AgAAFBARc19ijR48qJiZGUVFRWrJkSYUhR5IiIiIUHBys5ORkW9ApLCzUunXr9Oqrr5Z7jKenpzw9Pcvs9/Pzc6ofkMvq1atH306Evp0LfTsXZ+37Wlmh0uer0rP9yrFjxxQdHa2mTZtq1qxZOnnypLKysmz34VzWunVrrVy5UtKlJasJEyZo+vTpWrlypXbt2qWRI0fKx8dHcXFx9ioVAACYlN1uRl6zZo0OHDigAwcOqEmTJqUe+/VqWVpamu0GYkmaNGmSLly4oKefflpnzpxR165dtWbNGvn6+tqrVAAAYFJ2CzojR47UyJEjrznuyluELBaLEhMTlZiYeEPP6+npqSlTppS7nGVm9E3fzoC+6dsZ0HfV9l3pm5EBAABqCz7UEwAAmBZBBwAAmBZBBwAAmBZBBwAAmFatDzoHDx7UE088oYiICHl7e6tFixaaMmWKCgsLKzzOMAwlJiYqNDRU3t7eio6O1u7du6up6qoxbdo09ejRQz4+Ptf9LpIjR46UxWIp9dWtWzf7FlrFbqRvM8z3mTNnNHz4cPn5+cnPz0/Dhw/X2bNnKzymNs73ggULFBERIS8vL0VFRenbb7+tcPy6desUFRUlLy8vNW/eXIsWLaqmSqtWZfpOSUkpM68Wi0X79u2rxopv3vr16zVw4ECFhobKYrHos88+u+YxZpjvyvZthvmeMWOGbr/9dvn6+iowMFD333+/0tLSrnlcVcx3rQ86+/btU0lJid566y3t3r1br7/+uhYtWqTJkydXeNzMmTM1e/ZszZs3T5s3b1ZwcLD69OmjvLy8aqr85hUWFmrIkCF66qmnKnVcv379lJmZaftatWqVnSq0jxvp2wzzHRcXp23btmn16tVavXq1tm3bpuHDh1/zuNo038uXL9eECRP0/PPPKzU1VT179lT//v2VkZFR7vj09HQNGDBAPXv2VGpqqiZPnqzx48drxYoV1Vz5zals35elpaWVmttbb721miquGufPn1fHjh01b9686xpvlvmubN+X1eb5XrduncaMGaNNmzYpOTlZRUVFio2N1fnz5696TJXNt2FCM2fONCIiIq76eElJiREcHGy88sortn0XL140/Pz8jEWLFlVHiVVqyZIlhp+f33WNHTFihDFo0CC71lNdrrdvM8z3nj17DEnGpk2bbPs2btxoSDL27dt31eNq23zfcccdxujRo0vta926tfHcc8+VO37SpElG69atS+374x//aHTr1s1uNdpDZfteu3atIck4c+ZMNVRXPSQZK1eurHCMWeb7166nbzPO94kTJwxJxrp16646pqrmu9Zf0SlPTk6OGjZseNXH09PTlZWVpdjYWNs+T09P9e7dWxs2bKiOEh0qJSVFgYGBatmypUaNGqUTJ044uiS7MsN8b9y4UX5+furatattX7du3eTn53fNHmrLfBcWFurHH38sNU+SFBsbe9UeN27cWGZ83759tWXLFlmtVrvVWpVupO/LIiMjFRISorvvvltr1661Z5k1ghnm+2aYab4vfyJCRX+rq2q+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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_57_3.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "\"\"\"The sigmoid function (or the logistic curve) is a \n", + "function that takes any real number, z, and outputs a number (0,1).\n", + "It is useful in neural networks for assigning weights on a relative scale.\n", + "The value z is the weighted sum of parameters involved in the learning algorithm.\"\"\"\n", + "\n", + "import numpy\n", + "import matplotlib.pyplot as plt\n", + "import math as mt\n", + "\n", + "z = numpy.arange(-5, 5, .1)\n", + "sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z)))\n", + "sigma = sigma_fn(z)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(z, sigma)\n", + "ax.set_ylim([-0.1, 1.1])\n", + "ax.set_xlim([-5,5])\n", + "ax.grid(True)\n", + "ax.set_xlabel('z')\n", + "ax.set_title('sigmoid function')\n", + "\n", + "plt.show()\n", + "\n", + "\"\"\"Step Function\"\"\"\n", + "z = numpy.arange(-5, 5, .02)\n", + "step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0)\n", + "step = step_fn(z)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(z, step)\n", + "ax.set_ylim([-0.5, 1.5])\n", + "ax.set_xlim([-5,5])\n", + "ax.grid(True)\n", + "ax.set_xlabel('z')\n", + "ax.set_title('step function')\n", + "\n", + "plt.show()\n", + "\n", + "\"\"\"Sine Function\"\"\"\n", + "z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1)\n", + "t = numpy.sin(z)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(z, t)\n", + "ax.set_ylim([-1.0, 1.0])\n", + "ax.set_xlim([-2*mt.pi,2*mt.pi])\n", + "ax.grid(True)\n", + "ax.set_xlabel('z')\n", + "ax.set_title('sine function')\n", + "\n", + "plt.show()\n", + "\n", + "\"\"\"Plots a graph of the squashing function used by a rectified linear\n", + "unit\"\"\"\n", + "z = numpy.arange(-2, 2, .1)\n", + "zero = numpy.zeros(len(z))\n", + "y = numpy.max([zero, z], axis=0)\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111)\n", + "ax.plot(z, y)\n", + "ax.set_ylim([-2.0, 2.0])\n", + "ax.set_xlim([-2.0, 2.0])\n", + "ax.grid(True)\n", + "ax.set_xlabel('z')\n", + "ax.set_title('Rectified linear unit')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "8c915f6d", + "metadata": { + "editable": true + }, + "source": [ + "## The multilayer perceptron (MLP)\n", + "\n", + "The multilayer perceptron is a very popular, and easy to implement approach, to deep learning. It consists of\n", + "1. A neural network with one or more layers of nodes between the input and the output nodes.\n", + "\n", + "2. The multilayer network structure, or architecture, or topology, consists of an input layer, one or more hidden layers, and one output layer.\n", + "\n", + "3. The input nodes pass values to the first hidden layer, its nodes pass the information on to the second and so on till we reach the output layer.\n", + "\n", + "As a convention it is normal to call a network with one layer of input units, one layer of hidden\n", + "units and one layer of output units as a two-layer network. A network with two layers of hidden units is called a three-layer network etc etc.\n", + "\n", + "For an MLP network there is no direct connection between the output nodes/neurons/units and the input nodes/neurons/units.\n", + "Hereafter we will call the various entities of a layer for nodes.\n", + "There are also no connections within a single layer.\n", + "\n", + "The number of input nodes does not need to equal the number of output\n", + "nodes. This applies also to the hidden layers. Each layer may have its\n", + "own number of nodes and activation functions.\n", + "\n", + "The hidden layers have their name from the fact that they are not\n", + "linked to observables and as we will see below when we define the\n", + "so-called activation $\\hat{z}$, we can think of this as a basis\n", + "expansion of the original inputs $\\hat{x}$. The difference however\n", + "between neural networks and say linear regression is that now these\n", + "basis functions (which will correspond to the weights in the network)\n", + "are learned from data. This results in an important difference between\n", + "neural networks and deep learning approaches on one side and methods\n", + "like logistic regression or linear regression and their modifications on the other side." + ] + }, + { + "cell_type": "markdown", + "id": "cdcb2b32", + "metadata": { + "editable": true + }, + "source": [ + "## From one to many layers, the universal approximation theorem\n", + "\n", + "A neural network with only one layer, what we called the simple\n", + "perceptron, is best suited if we have a standard binary model with\n", + "clear (linear) boundaries between the outcomes. As such it could\n", + "equally well be replaced by standard linear regression or logistic\n", + "regression. Networks with one or more hidden layers approximate\n", + "systems with more complex boundaries.\n", + "\n", + "As stated earlier, \n", + "an important theorem in studies of neural networks, restated without\n", + "proof here, is the [universal approximation\n", + "theorem](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.441.7873&rep=rep1&type=pdf).\n", + "\n", + "It states that a feed-forward network with a single hidden layer\n", + "containing a finite number of neurons can approximate continuous\n", + "functions on compact subsets of real functions. The theorem thus\n", + "states that simple neural networks can represent a wide variety of\n", + "interesting functions when given appropriate parameters. It is the\n", + "multilayer feedforward architecture itself which gives neural networks\n", + "the potential of being universal approximators." + ] + }, + { + "cell_type": "markdown", + "id": "566b0dcb", + "metadata": { + "editable": true + }, + "source": [ + "## Deriving the back propagation code for a multilayer perceptron model\n", + "\n", + "As we have seen now in a feed forward network, we can express the final output of our network in terms of basic matrix-vector multiplications.\n", + "The unknowwn quantities are our weights $w_{ij}$ and we need to find an algorithm for changing them so that our errors are as small as possible.\n", + "This leads us to the famous [back propagation algorithm](https://www.nature.com/articles/323533a0).\n", + "\n", + "The questions we want to ask are how do changes in the biases and the\n", + "weights in our network change the cost function and how can we use the\n", + "final output to modify the weights?\n", + "\n", + "To derive these equations let us start with a plain regression problem\n", + "and define our cost function as" + ] + }, + { + "cell_type": "markdown", + "id": "66c76764", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "{\\cal C}(\\hat{W}) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - t_i\\right)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "e3d0bfa4", + "metadata": { + "editable": true + }, + "source": [ + "where the $t_i$s are our $n$ targets (the values we want to\n", + "reproduce), while the outputs of the network after having propagated\n", + "all inputs $\\hat{x}$ are given by $y_i$. Below we will demonstrate\n", + "how the basic equations arising from the back propagation algorithm\n", + "can be modified in order to study classification problems with $K$\n", + "classes." + ] + }, + { + "cell_type": "markdown", + "id": "01cf3c8d", + "metadata": { + "editable": true + }, + "source": [ + "## Definitions\n", + "\n", + "With our definition of the targets $\\hat{t}$, the outputs of the\n", + "network $\\hat{y}$ and the inputs $\\hat{x}$ we\n", + "define now the activation $z_j^l$ of node/neuron/unit $j$ of the\n", + "$l$-th layer as a function of the bias, the weights which add up from\n", + "the previous layer $l-1$ and the forward passes/outputs\n", + "$\\hat{a}^{l-1}$ from the previous layer as" + ] + }, + { + "cell_type": "markdown", + "id": "1417eea3", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "z_j^l = \\sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3c4e10cf", + "metadata": { + "editable": true + }, + "source": [ + "where $b_k^l$ are the biases from layer $l$. Here $M_{l-1}$\n", + "represents the total number of nodes/neurons/units of layer $l-1$. The\n", + "figure here illustrates this equation. We can rewrite this in a more\n", + "compact form as the matrix-vector products we discussed earlier," + ] + }, + { + "cell_type": "markdown", + "id": "d9dc403d", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\hat{z}^l = \\left(\\hat{W}^l\\right)^T\\hat{a}^{l-1}+\\hat{b}^l.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "83b73b28", + "metadata": { + "editable": true + }, + "source": [ + "With the activation values $\\hat{z}^l$ we can in turn define the\n", + "output of layer $l$ as $\\hat{a}^l = f(\\hat{z}^l)$ where $f$ is our\n", + "activation function. In the examples here we will use the sigmoid\n", + "function discussed in our logistic regression lectures. We will also use the same activation function $f$ for all layers\n", + "and their nodes. It means we have" + ] + }, + { + "cell_type": "markdown", + "id": "0516dfcf", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "a_j^l = f(z_j^l) = \\frac{1}{1+\\exp{-(z_j^l)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "7cebeb6f", + "metadata": { + "editable": true + }, + "source": [ + "## Derivatives and the chain rule\n", + "\n", + "From the definition of the activation $z_j^l$ we have" + ] + }, + { + "cell_type": "markdown", + "id": "e94a91e9", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial z_j^l}{\\partial w_{ij}^l} = a_i^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "343a68be", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "1eb93ade", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial z_j^l}{\\partial a_i^{l-1}} = w_{ji}^l.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "b4294825", + "metadata": { + "editable": true + }, + "source": [ + "With our definition of the activation function we have that (note that this function depends only on $z_j^l$)" + ] + }, + { + "cell_type": "markdown", + "id": "3c84d05d", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial a_j^l}{\\partial z_j^{l}} = a_j^l(1-a_j^l)=f(z_j^l)(1-f(z_j^l)).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "acd76b39", + "metadata": { + "editable": true + }, + "source": [ + "## Derivative of the cost function\n", + "\n", + "With these definitions we can now compute the derivative of the cost function in terms of the weights.\n", + "\n", + "Let us specialize to the output layer $l=L$. Our cost function is" + ] + }, + { + "cell_type": "markdown", + "id": "f0383586", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "{\\cal C}(\\hat{W^L}) = \\frac{1}{2}\\sum_{i=1}^n\\left(y_i - t_i\\right)^2=\\frac{1}{2}\\sum_{i=1}^n\\left(a_i^L - t_i\\right)^2,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "81c5b644", + "metadata": { + "editable": true + }, + "source": [ + "The derivative of this function with respect to the weights is" + ] + }, + { + "cell_type": "markdown", + "id": "31fde909", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\left(a_j^L - t_j\\right)\\frac{\\partial a_j^L}{\\partial w_{jk}^{L}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "4e4e2612", + "metadata": { + "editable": true + }, + "source": [ + "The last partial derivative can easily be computed and reads (by applying the chain rule)" + ] + }, + { + "cell_type": "markdown", + "id": "9c9e5698", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial a_j^L}{\\partial w_{jk}^{L}} = \\frac{\\partial a_j^L}{\\partial z_{j}^{L}}\\frac{\\partial z_j^L}{\\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "421c9de0", + "metadata": { + "editable": true + }, + "source": [ + "## Bringing it together, first back propagation equation\n", + "\n", + "We have thus" + ] + }, + { + "cell_type": "markdown", + "id": "10597fa3", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\left(a_j^L - t_j\\right)a_j^L(1-a_j^L)a_k^{L-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "0cf3157b", + "metadata": { + "editable": true + }, + "source": [ + "Defining" + ] + }, + { + "cell_type": "markdown", + "id": "01128c99", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L = a_j^L(1-a_j^L)\\left(a_j^L - t_j\\right) = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "097ee928", + "metadata": { + "editable": true + }, + "source": [ + "and using the Hadamard product of two vectors we can write this as" + ] + }, + { + "cell_type": "markdown", + "id": "cb2ff4ec", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\hat{\\delta}^L = f'(\\hat{z}^L)\\circ\\frac{\\partial {\\cal C}}{\\partial (\\hat{a}^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ee3423ea", + "metadata": { + "editable": true + }, + "source": [ + "This is an important expression. The second term on the right handside\n", + "measures how fast the cost function is changing as a function of the $j$th\n", + "output activation. If, for example, the cost function doesn't depend\n", + "much on a particular output node $j$, then $\\delta_j^L$ will be small,\n", + "which is what we would expect. The first term on the right, measures\n", + "how fast the activation function $f$ is changing at a given activation\n", + "value $z_j^L$.\n", + "\n", + "Notice that everything in the above equations is easily computed. In\n", + "particular, we compute $z_j^L$ while computing the behaviour of the\n", + "network, and it is only a small additional overhead to compute\n", + "$f'(z^L_j)$. The exact form of the derivative with respect to the\n", + "output depends on the form of the cost function.\n", + "However, provided the cost function is known there should be little\n", + "trouble in calculating" + ] + }, + { + "cell_type": "markdown", + "id": "49a7e0e3", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8efd3f58", + "metadata": { + "editable": true + }, + "source": [ + "With the definition of $\\delta_j^L$ we have a more compact definition of the derivative of the cost function in terms of the weights, namely" + ] + }, + { + "cell_type": "markdown", + "id": "dd61c9f6", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\delta_j^La_k^{L-1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "7574ecb2", + "metadata": { + "editable": true + }, + "source": [ + "## Derivatives in terms of $z_j^L$\n", + "\n", + "It is also easy to see that our previous equation can be written as" + ] + }, + { + "cell_type": "markdown", + "id": "103823da", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L =\\frac{\\partial {\\cal C}}{\\partial z_j^L}= \\frac{\\partial {\\cal C}}{\\partial a_j^L}\\frac{\\partial a_j^L}{\\partial z_j^L},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8fffaff6", + "metadata": { + "editable": true + }, + "source": [ + "which can also be interpreted as the partial derivative of the cost function with respect to the biases $b_j^L$, namely" + ] + }, + { + "cell_type": "markdown", + "id": "ae94d046", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L = \\frac{\\partial {\\cal C}}{\\partial b_j^L}\\frac{\\partial b_j^L}{\\partial z_j^L}=\\frac{\\partial {\\cal C}}{\\partial b_j^L},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3874588e", + "metadata": { + "editable": true + }, + "source": [ + "That is, the error $\\delta_j^L$ is exactly equal to the rate of change of the cost function as a function of the bias." + ] + }, + { + "cell_type": "markdown", + "id": "296c98ed", + "metadata": { + "editable": true + }, + "source": [ + "## Bringing it together\n", + "\n", + "We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are\n", + "\n", + "**The starting equations.**" + ] + }, + { + "cell_type": "markdown", + "id": "19e9a098", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\frac{\\partial{\\cal C}(\\hat{W^L})}{\\partial w_{jk}^L} = \\delta_j^La_k^{L-1},\n", + "\\label{_auto8} \\tag{13}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "edb4be27", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "f85640ae", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)},\n", + "\\label{_auto9} \\tag{14}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ef718563", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "69a17671", + "metadata": { + "editable": true + }, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation}\n", + "\\delta_j^L = \\frac{\\partial {\\cal C}}{\\partial b_j^L},\n", + "\\label{_auto10} \\tag{15}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "84ef0653", + "metadata": { + "editable": true + }, + "source": [ + "An interesting consequence of the above equations is that when the\n", + "activation $a_k^{L-1}$ is small, the gradient term, that is the\n", + "derivative of the cost function with respect to the weights, will also\n", + "tend to be small. We say then that the weight learns slowly, meaning\n", + "that it changes slowly when we minimize the weights via say gradient\n", + "descent. In this case we say the system learns slowly.\n", + "\n", + "Another interesting feature is that is when the activation function,\n", + "represented by the sigmoid function here, is rather flat when we move towards\n", + "its end values $0$ and $1$ (see the above Python codes). In these\n", + "cases, the derivatives of the activation function will also be close\n", + "to zero, meaning again that the gradients will be small and the\n", + "network learns slowly again.\n", + "\n", + "We need a fourth equation and we are set. We are going to propagate\n", + "backwards in order to the determine the weights and biases. In order\n", + "to do so we need to represent the error in the layer before the final\n", + "one $L-1$ in terms of the errors in the final output layer." + ] + }, + { + "cell_type": "markdown", + "id": "fb567e6f", + "metadata": { + "editable": true + }, + "source": [ + "## Final back propagating equation\n", + "\n", + "We have that (replacing $L$ with a general layer $l$)" + ] + }, + { + "cell_type": "markdown", + "id": "42773e4f", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l =\\frac{\\partial {\\cal C}}{\\partial z_j^l}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "c01f5515", + "metadata": { + "editable": true + }, + "source": [ + "We want to express this in terms of the equations for layer $l+1$. Using the chain rule and summing over all $k$ entries we have" + ] + }, + { + "cell_type": "markdown", + "id": "b23962dc", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l =\\sum_k \\frac{\\partial {\\cal C}}{\\partial z_k^{l+1}}\\frac{\\partial z_k^{l+1}}{\\partial z_j^{l}}=\\sum_k \\delta_k^{l+1}\\frac{\\partial z_k^{l+1}}{\\partial z_j^{l}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "c84de332", + "metadata": { + "editable": true + }, + "source": [ + "and recalling that" + ] + }, + { + "cell_type": "markdown", + "id": "ed77e307", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "z_j^{l+1} = \\sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ab04fbdc", + "metadata": { + "editable": true + }, + "source": [ + "with $M_l$ being the number of nodes in layer $l$, we obtain" + ] + }, + { + "cell_type": "markdown", + "id": "d0ce3d50", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l =\\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "a217439f", + "metadata": { + "editable": true + }, + "source": [ + "This is our final equation.\n", + "\n", + "We are now ready to set up the algorithm for back propagation and learning the weights and biases." + ] + }, + { + "cell_type": "markdown", + "id": "71731044", + "metadata": { + "editable": true + }, + "source": [ + "## Setting up the Back propagation algorithm\n", + "\n", + "The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.\n", + "\n", + "First, we set up the input data $\\hat{x}$ and the activations\n", + "$\\hat{z}_1$ of the input layer and compute the activation function and\n", + "the pertinent outputs $\\hat{a}^1$.\n", + "\n", + "Secondly, we perform then the feed forward till we reach the output\n", + "layer and compute all $\\hat{z}_l$ of the input layer and compute the\n", + "activation function and the pertinent outputs $\\hat{a}^l$ for\n", + "$l=2,3,\\dots,L$.\n", + "\n", + "Thereafter we compute the ouput error $\\hat{\\delta}^L$ by computing all" + ] + }, + { + "cell_type": "markdown", + "id": "a2afecfd", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "0ffa0ea9", + "metadata": { + "editable": true + }, + "source": [ + "Then we compute the back propagate error for each $l=L-1,L-2,\\dots,2$ as" + ] + }, + { + "cell_type": "markdown", + "id": "025daba8", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "935b27ef", + "metadata": { + "editable": true + }, + "source": [ + "Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\\dots,2$ and update the weights and biases according to the rules" + ] + }, + { + "cell_type": "markdown", + "id": "50179be2", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "90daf72c", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "b_j^l \\leftarrow b_j^l-\\eta \\frac{\\partial {\\cal C}}{\\partial b_j^l}=b_j^l-\\eta \\delta_j^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "63e9545c", + "metadata": { + "editable": true + }, + "source": [ + "The parameter $\\eta$ is the learning parameter discussed in connection with the gradient descent methods.\n", + "Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training." + ] + }, + { + "cell_type": "markdown", + "id": "e8fbaffb", + "metadata": { + "editable": true + }, + "source": [ + "## Setting up the Back propagation algorithm\n", + "\n", + "The four equations above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.\n", + "\n", + "First, we set up the input data $\\boldsymbol{x}$ and the activations\n", + "$\\boldsymbol{z}_1$ of the input layer and compute the activation function and\n", + "the pertinent outputs $\\boldsymbol{a}^1$.\n", + "\n", + "Secondly, we perform then the feed forward till we reach the output\n", + "layer and compute all $\\boldsymbol{z}_l$ of the input layer and compute the\n", + "activation function and the pertinent outputs $\\boldsymbol{a}^l$ for\n", + "$l=2,3,\\dots,L$.\n", + "\n", + "Thereafter we compute the ouput error $\\boldsymbol{\\delta}^L$ by computing all" + ] + }, + { + "cell_type": "markdown", + "id": "59b2fcba", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "db7fd0df", + "metadata": { + "editable": true + }, + "source": [ + "Then we compute the back propagate error for each $l=L-1,L-2,\\dots,2$ as" + ] + }, + { + "cell_type": "markdown", + "id": "fef9229b", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "720ee2fe", + "metadata": { + "editable": true + }, + "source": [ + "Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\\dots,2$ and update the weights and biases according to the rules" + ] + }, + { + "cell_type": "markdown", + "id": "df965f5a", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "29bef69b", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "b_j^l \\leftarrow b_j^l-\\eta \\frac{\\partial {\\cal C}}{\\partial b_j^l}=b_j^l-\\eta \\delta_j^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8f8670bc", + "metadata": { + "editable": true + }, + "source": [ + "The parameter $\\eta$ is the learning parameter discussed in connection with the gradient descent methods.\n", + "Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training." + ] + }, + { + "cell_type": "markdown", + "id": "b37be623", + "metadata": { + "editable": true + }, + "source": [ + "## Setting up the Back propagation algorithm\n", + "\n", + "The four equations derived discussed above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm.\n", + "\n", + "First, we set up the input data $\\boldsymbol{x}$ and the activations\n", + "$\\boldsymbol{z}_1$ of the input layer and compute the activation function and\n", + "the pertinent outputs $\\boldsymbol{a}^1$.\n", + "\n", + "Secondly, we perform then the feed forward till we reach the output\n", + "layer and compute all $\\boldsymbol{z}_l$ of the input layer and compute the\n", + "activation function and the pertinent outputs $\\boldsymbol{a}^l$ for\n", + "$l=2,3,\\dots,L$.\n", + "\n", + "Thereafter we compute the ouput error $\\boldsymbol{\\delta}^L$ by computing all" + ] + }, + { + "cell_type": "markdown", + "id": "6ebda602", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^L = f'(z_j^L)\\frac{\\partial {\\cal C}}{\\partial (a_j^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "6f2371ba", + "metadata": { + "editable": true + }, + "source": [ + "Then we compute the back propagate error for each $l=L-1,L-2,\\dots,2$ as" + ] + }, + { + "cell_type": "markdown", + "id": "b3458652", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\delta_j^l = \\sum_k \\delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "4a46987f", + "metadata": { + "editable": true + }, + "source": [ + "Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\\dots,2$ and update the weights and biases according to the rules" + ] + }, + { + "cell_type": "markdown", + "id": "2b898b0d", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "w_{jk}^l\\leftarrow = w_{jk}^l- \\eta \\delta_j^la_k^{l-1},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "a1af5bcf", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "b_j^l \\leftarrow b_j^l-\\eta \\frac{\\partial {\\cal C}}{\\partial b_j^l}=b_j^l-\\eta \\delta_j^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "8d7a0d4d", + "metadata": { + "editable": true + }, + "source": [ + "The parameter $\\eta$ is the learning parameter discussed in connection with the gradient descent methods.\n", + "Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training." + ] + }, + { + "cell_type": "markdown", + "id": "37f6a409", + "metadata": { + "editable": true + }, + "source": [ + "## Setting up a Multi-layer perceptron model for classification\n", + "\n", + "We are now gong to develop an example based on the MNIST data\n", + "base. This is a classification problem and we need to use our\n", + "cross-entropy function we discussed in connection with logistic\n", + "regression. The cross-entropy defines our cost function for the\n", + "classificaton problems with neural networks.\n", + "\n", + "In binary classification with two classes $(0, 1)$ we define the\n", + "logistic/sigmoid function as the probability that a particular input\n", + "is in class $0$ or $1$. This is possible because the logistic\n", + "function takes any input from the real numbers and inputs a number\n", + "between 0 and 1, and can therefore be interpreted as a probability. It\n", + "also has other nice properties, such as a derivative that is simple to\n", + "calculate.\n", + "\n", + "For an input $\\boldsymbol{a}$ from the hidden layer, the probability that the input $\\boldsymbol{x}$\n", + "is in class 0 or 1 is just. We let $\\theta$ represent the unknown weights and biases to be adjusted by our equations). The variable $x$\n", + "represents our activation values $z$. We have" + ] + }, + { + "cell_type": "markdown", + "id": "e7939992", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "P(y = 0 \\mid \\boldsymbol{x}, \\boldsymbol{\\theta}) = \\frac{1}{1 + \\exp{(- \\boldsymbol{x}})} ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "d754aefd", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "7711b16e", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "P(y = 1 \\mid \\boldsymbol{x}, \\boldsymbol{\\theta}) = 1 - P(y = 0 \\mid \\boldsymbol{x}, \\boldsymbol{\\theta}) ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "e831f3b5", + "metadata": { + "editable": true + }, + "source": [ + "where $y \\in \\{0, 1\\}$ and $\\boldsymbol{\\theta}$ represents the weights and biases\n", + "of our network." + ] + }, + { + "cell_type": "markdown", + "id": "428cb018", + "metadata": { + "editable": true + }, + "source": [ + "## Defining the cost function\n", + "\n", + "Our cost function is given as (see the Logistic regression lectures)" + ] + }, + { + "cell_type": "markdown", + "id": "303e8c9e", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\theta}) = - \\ln P(\\mathcal{D} \\mid \\boldsymbol{\\theta}) = - \\sum_{i=1}^n\n", + "y_i \\ln[P(y_i = 0)] + (1 - y_i) \\ln [1 - P(y_i = 0)] = \\sum_{i=1}^n \\mathcal{L}_i(\\boldsymbol{\\theta}) .\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "42c3514b", + "metadata": { + "editable": true + }, + "source": [ + "This last equality means that we can interpret our *cost* function as a sum over the *loss* function\n", + "for each point in the dataset $\\mathcal{L}_i(\\boldsymbol{\\theta})$. \n", + "The negative sign is just so that we can think about our algorithm as minimizing a positive number, rather\n", + "than maximizing a negative number. \n", + "\n", + "In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: \n", + "\n", + "$y = 5 \\quad \\rightarrow \\quad \\boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$ and\n", + "\n", + "$y = 1 \\quad \\rightarrow \\quad \\boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$ \n", + "\n", + "i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset (numbers from $0$ to $9$).. \n", + "\n", + "If $\\boldsymbol{x}_i$ is the $i$-th input (image), $y_{ic}$ refers to the $c$-th component of the $i$-th\n", + "output vector $\\boldsymbol{y}_i$. \n", + "The probability of $\\boldsymbol{x}_i$ being in class $c$ will be given by the softmax function:" + ] + }, + { + "cell_type": "markdown", + "id": "6675c087", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "P(y_{ic} = 1 \\mid \\boldsymbol{x}_i, \\boldsymbol{\\theta}) = \\frac{\\exp{((\\boldsymbol{a}_i^{hidden})^T \\boldsymbol{w}_c)}}\n", + "{\\sum_{c'=0}^{C-1} \\exp{((\\boldsymbol{a}_i^{hidden})^T \\boldsymbol{w}_{c'})}} ,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "73cfb814", + "metadata": { + "editable": true + }, + "source": [ + "which reduces to the logistic function in the binary case. \n", + "The likelihood of this $C$-class classifier\n", + "is now given as:" + ] + }, + { + "cell_type": "markdown", + "id": "c32b2b0e", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "P(\\mathcal{D} \\mid \\boldsymbol{\\theta}) = \\prod_{i=1}^n \\prod_{c=0}^{C-1} [P(y_{ic} = 1)]^{y_{ic}} .\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "15c86254", + "metadata": { + "editable": true + }, + "source": [ + "Again we take the negative log-likelihood to define our cost function:" + ] + }, + { + "cell_type": "markdown", + "id": "9da11ce8", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\theta}) = - \\log{P(\\mathcal{D} \\mid \\boldsymbol{\\theta})}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "47275fce", + "metadata": { + "editable": true + }, + "source": [ + "See the logistic regression lectures for a full definition of the cost function.\n", + "\n", + "The back propagation equations need now only a small change, namely the definition of a new cost function. We are thus ready to use the same equations as before!" + ] + }, + { + "cell_type": "markdown", + "id": "22860f6c", + "metadata": { + "editable": true + }, + "source": [ + "## Example: binary classification problem\n", + "\n", + "As an example of the above, relevant for project 2 as well, let us consider a binary class. As discussed in our logistic regression lectures, we defined a cost function in terms of the parameters $\\beta$ as" + ] + }, + { + "cell_type": "markdown", + "id": "2c90d0da", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{\\beta}) = - \\sum_{i=1}^n \\left(y_i\\log{p(y_i \\vert x_i,\\boldsymbol{\\beta})}+(1-y_i)\\log{1-p(y_i \\vert x_i,\\boldsymbol{\\beta})}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "12ae44b0", + "metadata": { + "editable": true + }, + "source": [ + "where we had defined the logistic (sigmoid) function" + ] + }, + { + "cell_type": "markdown", + "id": "7d921bf4", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "p(y_i =1\\vert x_i,\\boldsymbol{\\beta})=\\frac{\\exp{(\\beta_0+\\beta_1 x_i)}}{1+\\exp{(\\beta_0+\\beta_1 x_i)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "5e48ee91", + "metadata": { + "editable": true + }, + "source": [ + "and" + ] + }, + { + "cell_type": "markdown", + "id": "6add3f84", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "p(y_i =0\\vert x_i,\\boldsymbol{\\beta})=1-p(y_i =1\\vert x_i,\\boldsymbol{\\beta}).\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "22759cfd", + "metadata": { + "editable": true + }, + "source": [ + "The parameters $\\boldsymbol{\\beta}$ were defined using a minimization method like gradient descent or Newton-Raphson's method. \n", + "\n", + "Now we replace $x_i$ with the activation $z_i^l$ for a given layer $l$ and the outputs as $y_i=a_i^l=f(z_i^l)$, with $z_i^l$ now being a function of the weights $w_{ij}^l$ and biases $b_i^l$. \n", + "We have then" + ] + }, + { + "cell_type": "markdown", + "id": "d18311a9", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "a_i^l = y_i = \\frac{\\exp{(z_i^l)}}{1+\\exp{(z_i^l)}},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "9761e98e", + "metadata": { + "editable": true + }, + "source": [ + "with" + ] + }, + { + "cell_type": "markdown", + "id": "01a4059b", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "z_i^l = \\sum_{j}w_{ij}^l a_j^{l-1}+b_i^l,\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "56bf706a", + "metadata": { + "editable": true + }, + "source": [ + "where the superscript $l-1$ indicates that these are the outputs from layer $l-1$.\n", + "Our cost function at the final layer $l=L$ is now" + ] + }, + { + "cell_type": "markdown", + "id": "60613b46", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\mathcal{C}(\\boldsymbol{W}) = - \\sum_{i=1}^n \\left(t_i\\log{a_i^L}+(1-t_i)\\log{(1-a_i^L)}\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "e97cc842", + "metadata": { + "editable": true + }, + "source": [ + "where we have defined the targets $t_i$. The derivatives of the cost function with respect to the output $a_i^L$ are then easily calculated and we get" + ] + }, + { + "cell_type": "markdown", + "id": "9c431661", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial \\mathcal{C}(\\boldsymbol{W})}{\\partial a_i^L} = \\frac{a_i^L-t_i}{a_i^L(1-a_i^L)}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "1903bf14", + "metadata": { + "editable": true + }, + "source": [ + "In case we use another activation function than the logistic one, we need to evaluate other derivatives." + ] + }, + { + "cell_type": "markdown", + "id": "dab43f84", + "metadata": { + "editable": true + }, + "source": [ + "## The Softmax function\n", + "In case we employ the more general case given by the Softmax equation, we need to evaluate the derivative of the activation function with respect to the activation $z_i^l$, that is we need" + ] + }, + { + "cell_type": "markdown", + "id": "03d7a2cf", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial f(z_i^l)}{\\partial w_{jk}^l} =\n", + "\\frac{\\partial f(z_i^l)}{\\partial z_j^l} \\frac{\\partial z_j^l}{\\partial w_{jk}^l}= \\frac{\\partial f(z_i^l)}{\\partial z_j^l}a_k^{l-1}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "1813356c", + "metadata": { + "editable": true + }, + "source": [ + "For the Softmax function we have" + ] + }, + { + "cell_type": "markdown", + "id": "debe1289", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "f(z_i^l) = \\frac{\\exp{(z_i^l)}}{\\sum_{m=1}^K\\exp{(z_m^l)}}.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "6fc65621", + "metadata": { + "editable": true + }, + "source": [ + "Its derivative with respect to $z_j^l$ gives" + ] + }, + { + "cell_type": "markdown", + "id": "8c86ad26", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\frac{\\partial f(z_i^l)}{\\partial z_j^l}= f(z_i^l)\\left(\\delta_{ij}-f(z_j^l)\\right),\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "86ecd366", + "metadata": { + "editable": true + }, + "source": [ + "which in case of the simply binary model reduces to having $i=j$." + ] + }, + { + "cell_type": "markdown", + "id": "d68a68c2", + "metadata": { + "editable": true + }, + "source": [ + "## Developing a code for doing neural networks with back propagation\n", + "\n", + "One can identify a set of key steps when using neural networks to solve supervised learning problems: \n", + "\n", + "1. Collect and pre-process data \n", + "\n", + "2. Define model and architecture \n", + "\n", + "3. Choose cost function and optimizer \n", + "\n", + "4. Train the model \n", + "\n", + "5. Evaluate model performance on test data \n", + "\n", + "6. Adjust hyperparameters (if necessary, network architecture)" + ] + }, + { + "cell_type": "markdown", + "id": "c9ec79c6", + "metadata": { + "editable": true + }, + "source": [ + "## Collect and pre-process data\n", + "\n", + "Here we will be using the MNIST dataset, which is readily available through the **scikit-learn**\n", + "package. You may also find it for example [here](http://yann.lecun.com/exdb/mnist/). \n", + "The *MNIST* (Modified National Institute of Standards and Technology) database is a large database\n", + "of handwritten digits that is commonly used for training various image processing systems. \n", + "The MNIST dataset consists of 70 000 images of size $28\\times 28$ pixels, each labeled from 0 to 9. \n", + "The scikit-learn dataset we will use consists of a selection of 1797 images of size $8\\times 8$ collected and processed from this database. \n", + "\n", + "To feed data into a feed-forward neural network we need to represent\n", + "the inputs as a design/feature matrix $X = (n_{inputs}, n_{features})$. Each\n", + "row represents an *input*, in this case a handwritten digit, and\n", + "each column represents a *feature*, in this case a pixel. The\n", + "correct answers, also known as *labels* or *targets* are\n", + "represented as a 1D array of integers \n", + "$Y = (n_{inputs}) = (5, 3, 1, 8,...)$.\n", + "\n", + "As an example, say we want to build a neural network using supervised learning to predict Body-Mass Index (BMI) from\n", + "measurements of height (in m) \n", + "and weight (in kg). If we have measurements of 5 people the design/feature matrix could be for example: \n", + "\n", + "$$ X = \\begin{bmatrix}\n", + "1.85 & 81\\\\\n", + "1.71 & 65\\\\\n", + "1.95 & 103\\\\\n", + "1.55 & 42\\\\\n", + "1.63 & 56\n", + "\\end{bmatrix} ,$$ \n", + "\n", + "and the targets would be: \n", + "\n", + "$$ Y = (23.7, 22.2, 27.1, 17.5, 21.1) $$ \n", + "\n", + "Since each input image is a 2D matrix, we need to flatten the image\n", + "(i.e. \"unravel\" the 2D matrix into a 1D array) to turn the data into a\n", + "design/feature matrix. This means we lose all spatial information in the\n", + "image, such as locality and translational invariance. More complicated\n", + "architectures such as Convolutional Neural Networks can take advantage\n", + "of such information, and are most commonly applied when analyzing\n", + "images." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b07f9bb8", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inputs = (n_inputs, pixel_width, pixel_height) = (1797, 8, 8)\n", + "labels = (n_inputs) = (1797,)\n", + "X = (n_inputs, n_features) = (1797, 64)\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7YAAADICAYAAADcOn20AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAQx0lEQVR4nO3dbWydZRkH8OuMjklYaEHMxla3ji46/KBdiItodB2oEUVXDNMYois6QgLCkKkhEGwHGDCaWIxODY510SUuJmSdZr4AdjUmxPBWEhaNjlBEzSYOOl+SbQwfPxhqN9Y68G7rdc7vl/QDZz3/c5+T6z7P899zOKtVVVUFAAAAJDVrphcAAAAA/wvFFgAAgNQUWwAAAFJTbAEAAEhNsQUAACA1xRYAAIDUFFsAAABSU2wBAABITbEFAAAgtYYptv39/VGr1eLhhx8ukler1eLTn/50kazxmb29va/6/nv37o2Pf/zjsWjRojjttNOivb09brjhhjhw4EC5RZJSvc9/b29v1Gq1CX++//3vF10r+dgD9kAjq/f5f+aZZ+LSSy+Nc889N04//fRobm6O5cuXx9e//vU4evRo0XWSj/lvHE0zvQDKePbZZ+Ntb3tbnHHGGXHbbbfFokWL4rHHHouenp4YHByMRx55JGbNapi/x6DBrFu3Lt73vve97PYrr7wynnzyyRP+GdQTe4BG9o9//CPOOOOMuOWWW2LRokVx5MiR2LVrV1x77bUxPDwc3/nOd2Z6iTBlzP9/KLZ1YmBgIA4cOBDbt2+Piy66KCIiVq1aFYcPH46bbropHn/88Vi+fPkMrxKmRmtra7S2th5z28jISOzZsycuv/zyaGlpmZmFwTSxB2hky5Yti61btx5z28UXXxx//vOfY+vWrfGNb3wj5syZM0Org6ll/v/DJbxxDh06FBs2bIiOjo5obm6Os846Ky644IIYGBiY8D7f/va34w1veEPMmTMn3vSmN53w41779u2Lq666KlpbW+PUU0+NJUuWxMaNG4t+PGD27NkREdHc3HzM7S+dzLzmNa8p9ljUp8zzfyL33HNPVFUV69atm9LHoX7YAzSyepv/iIjXve51MWvWrDjllFOm/LHIzfzXB1dsxzl8+HA899xz8dnPfjYWLlwYR44cifvvvz8+/OEPx5YtW+ITn/jEMb+/c+fOGBwcjFtvvTVOP/302LRpU3zsYx+LpqamuOyyyyLi3wO9YsWKmDVrVnzhC1+I9vb2ePDBB+P222+PkZGR2LJly6Rramtri4h//837ZLq6umLRokWxYcOG2LRpUyxevDgeffTRuPPOO+ODH/xgnHfeea/6daExZJ7/4/3zn/+M/v7+WLp0aaxcufIV3ZfGZQ/QyOph/quqihdffDH+9re/xc9+9rPo7++PDRs2RFOT010mZ/7rRNUgtmzZUkVE9dBDD530fY4ePVq98MIL1ac+9alq+fLlx/xZRFSnnXZatW/fvmN+f9myZdXSpUvHbrvqqququXPnVk8//fQx9//KV75SRUS1Z8+eYzJ7enqO+b329vaqvb39pNb7pz/9qbrggguqiBj7WbNmTXXo0KGTfcrUqUaY//F+/OMfVxFR3XHHHa/4vtQne4BG1ijzf8cdd4yd/9Rqtermm28+6ftSv8x/4/BR5OP84Ac/iHe84x0xd+7caGpqitmzZ8fmzZvj17/+9ct+96KLLop58+aN/fcpp5wSH/3oR2Pv3r3xhz/8ISIifvSjH8WqVatiwYIFcfTo0bGfiy++OCIihoaGJl3P3r17Y+/evf913c8//3ysXr06/vrXv8a2bdviF7/4RWzatCl++ctfxoc+9KGG+1Y0Xp2s83+8zZs3R1NTU3R3d7/i+9LY7AEaWfb57+7ujoceeih++tOfxuc///n48pe/HNdee+1J35/GZv7za6Br0//dvffeGx/5yEdizZo18bnPfS7mz58fTU1N8c1vfjPuueeel/3+/PnzJ7ztwIED0draGvv3748f/vCHY/8P7PH+8pe/FFn7l770pRgeHo6nn346zjnnnIiIeOc73xnLli2LCy+8MLZt2xZr164t8ljUp8zzf3zmzp074wMf+MAJ1wgTsQdoZPUw//Pnzx9bw3vf+94488wz48Ybb4xPfvKTvkCTSZn/+qDYjvO9730vlixZEtu3b49arTZ2++HDh0/4+/v27Zvwtte+9rUREXH22WfHm9/85vjiF794wowFCxb8r8uOiIjh4eFYuHDhWKl9yVvf+taIiHjiiSeKPA71K/P8j/fd7343jhw54gtzeMXsARpZvcz/eCtWrIiIiN/+9rcNc2LPq2P+64NiO06tVotTTz31mIHet2/fhN+I9sADD8T+/fvHPorw4osvxvbt26O9vX3sn1245JJLYteuXdHe3h5nnnnmlK19wYIF8cADD8Qf//jHWLhw4djtDz74YETEy/4ZCDhe5vkfb/PmzbFgwYKxj/rAybIHaGT1Mv/jDQ4ORkTE0qVLp/2xycX814eGK7Y///nPT/jtYu9///vjkksuiXvvvTeuvvrquOyyy+KZZ56J2267Lc4555z43e9+97L7nH322XHhhRfGLbfcMvaNaL/5zW+O+brvW2+9Ne677754+9vfHtddd1288Y1vjEOHDsXIyEjs2rUrvvWtb01aOl8axv/2Gftrrrkmtm3bFu95z3vixhtvjNe//vXxxBNPxO233x7z5s2Lyy+//CRfIepZvc7/S371q1/Fnj174qabbmqor7fn5NkDNLJ6nf+enp7Yv39/vOtd74qFCxfG6Oho/OQnP4m777471qxZE+eff/5JvkLUM/PfAGb626umy0vfiDbRz1NPPVVVVVXdeeedVVtbWzVnzpzqvPPOq+6+++6qp6enOv6liojqmmuuqTZt2lS1t7dXs2fPrpYtW1Zt27btZY/97LPPVtddd121ZMmSavbs2dVZZ51VnX/++dXNN99c/f3vfz8m8/hvRFu8eHG1ePHik3qOjz76aHXppZdWra2t1Zw5c6pzzz23WrduXfX73//+Fb1W1J9GmP+qqqorr7yyqtVq1ZNPPnnS96Ex2AM0snqf/507d1bvfve7q3nz5lVNTU3V3LlzqxUrVlRf+9rXqhdeeOEVv17UF/PfOGpVVVWlyzIAAABMF//cDwAAAKkptgAAAKSm2AIAAJCaYgsAAEBqii0AAACpKbYAAACkptgCAACQWtNML6CU/v7+onm9vb1F81paWormRUT09fUVzevs7Cyax/TZvXt30bzS+2nHjh1F8yIiDh48WDRvcHCwaJ79NL0GBgaK5q1fv75o3lQove/b2tqK5jGxkZGRonmlzwdKHwNKv19HRDQ3NxfNGx4eLppnP01udHS0aN7/+x4o/XwjzOyJuGILAABAaootAAAAqSm2AAAApKbYAgAAkJpiCwAAQGqKLQAAAKkptgAAAKSm2AIAAJCaYgsAAEBqii0AAACpKbYAAACkptgCAACQmmILAABAaootAAAAqSm2AAAApKbYAgAAkJpiCwAAQGqKLQAAAKk1zdQD7969u2jeFVdcUTRv9erVRfNaWlqK5kVEdHV1Fc0bHR0tmsf0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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_174_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# import necessary packages\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import datasets\n", + "\n", + "\n", + "# ensure the same random numbers appear every time\n", + "np.random.seed(0)\n", + "\n", + "# display images in notebook\n", + "%matplotlib inline\n", + "plt.rcParams['figure.figsize'] = (12,12)\n", + "\n", + "\n", + "# download MNIST dataset\n", + "digits = datasets.load_digits()\n", + "\n", + "# define inputs and labels\n", + "inputs = digits.images\n", + "labels = digits.target\n", + "\n", + "print(\"inputs = (n_inputs, pixel_width, pixel_height) = \" + str(inputs.shape))\n", + "print(\"labels = (n_inputs) = \" + str(labels.shape))\n", + "\n", + "\n", + "# flatten the image\n", + "# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64\n", + "n_inputs = len(inputs)\n", + "inputs = inputs.reshape(n_inputs, -1)\n", + "print(\"X = (n_inputs, n_features) = \" + str(inputs.shape))\n", + "\n", + "\n", + "# choose some random images to display\n", + "indices = np.arange(n_inputs)\n", + "random_indices = np.random.choice(indices, size=5)\n", + "\n", + "for i, image in enumerate(digits.images[random_indices]):\n", + " plt.subplot(1, 5, i+1)\n", + " plt.axis('off')\n", + " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n", + " plt.title(\"Label: %d\" % digits.target[random_indices[i]])\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "6b776a41", + "metadata": { + "editable": true + }, + "source": [ + "## Train and test datasets\n", + "\n", + "Performing analysis before partitioning the dataset is a major error, that can lead to incorrect conclusions. \n", + "\n", + "We will reserve $80 \\%$ of our dataset for training and $20 \\%$ for testing. \n", + "\n", + "It is important that the train and test datasets are drawn randomly from our dataset, to ensure\n", + "no bias in the sampling. \n", + "Say you are taking measurements of weather data to predict the weather in the coming 5 days.\n", + "You don't want to train your model on measurements taken from the hours 00.00 to 12.00, and then test it on data\n", + "collected from 12.00 to 24.00." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "3e399ed6", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of training images: 1437\n", + "Number of test images: 360\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "# one-liner from scikit-learn library\n", + "train_size = 0.8\n", + "test_size = 1 - train_size\n", + "X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size,\n", + " test_size=test_size)\n", + "\n", + "# equivalently in numpy\n", + "def train_test_split_numpy(inputs, labels, train_size, test_size):\n", + " n_inputs = len(inputs)\n", + " inputs_shuffled = inputs.copy()\n", + " labels_shuffled = labels.copy()\n", + " \n", + " np.random.shuffle(inputs_shuffled)\n", + " np.random.shuffle(labels_shuffled)\n", + " \n", + " train_end = int(n_inputs*train_size)\n", + " X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:]\n", + " Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:]\n", + " \n", + " return X_train, X_test, Y_train, Y_test\n", + "\n", + "#X_train, X_test, Y_train, Y_test = train_test_split_numpy(inputs, labels, train_size, test_size)\n", + "\n", + "print(\"Number of training images: \" + str(len(X_train)))\n", + "print(\"Number of test images: \" + str(len(X_test)))" + ] + }, + { + "cell_type": "markdown", + "id": "2c165e0e", + "metadata": { + "editable": true + }, + "source": [ + "## Define model and architecture\n", + "\n", + "Our simple feed-forward neural network will consist of an *input* layer, a single *hidden* layer and an *output* layer. The activation $y$ of each neuron is a weighted sum of inputs, passed through an activation function. In case of the simple perceptron model we have \n", + "\n", + "$$ z = \\sum_{i=1}^n w_i a_i ,$$\n", + "\n", + "$$ y = f(z) ,$$\n", + "\n", + "where $f$ is the activation function, $a_i$ represents input from neuron $i$ in the preceding layer\n", + "and $w_i$ is the weight to input $i$. \n", + "The activation of the neurons in the input layer is just the features (e.g. a pixel value). \n", + "\n", + "The simplest activation function for a neuron is the *Heaviside* function:\n", + "\n", + "$$ f(z) = \n", + "\\begin{cases}\n", + "1, & z > 0\\\\\n", + "0, & \\text{otherwise}\n", + "\\end{cases}\n", + "$$\n", + "\n", + "A feed-forward neural network with this activation is known as a *perceptron*. \n", + "For a binary classifier (i.e. two classes, 0 or 1, dog or not-dog) we can also use this in our output layer. \n", + "This activation can be generalized to $k$ classes (using e.g. the *one-against-all* strategy), \n", + "and we call these architectures *multiclass perceptrons*. \n", + "\n", + "However, it is now common to use the terms Single Layer Perceptron (SLP) (1 hidden layer) and \n", + "Multilayer Perceptron (MLP) (2 or more hidden layers) to refer to feed-forward neural networks with any activation function. \n", + "\n", + "Typical choices for activation functions include the sigmoid function, hyperbolic tangent, and Rectified Linear Unit (ReLU). \n", + "We will be using the sigmoid function $\\sigma(x)$: \n", + "\n", + "$$ f(x) = \\sigma(x) = \\frac{1}{1 + e^{-x}} ,$$\n", + "\n", + "which is inspired by probability theory (see logistic regression) and was most commonly used until about 2011. See the discussion below concerning other activation functions." + ] + }, + { + "cell_type": "markdown", + "id": "94075506", + "metadata": { + "editable": true + }, + "source": [ + "## Layers\n", + "\n", + "* Input \n", + "\n", + "Since each input image has 8x8 = 64 pixels or features, we have an input layer of 64 neurons. \n", + "\n", + "* Hidden layer\n", + "\n", + "We will use 50 neurons in the hidden layer receiving input from the neurons in the input layer. \n", + "Since each neuron in the hidden layer is connected to the 64 inputs we have 64x50 = 3200 weights to the hidden layer. \n", + "\n", + "* Output\n", + "\n", + "If we were building a binary classifier, it would be sufficient with a single neuron in the output layer,\n", + "which could output 0 or 1 according to the Heaviside function. This would be an example of a *hard* classifier, meaning it outputs the class of the input directly. However, if we are dealing with noisy data it is often beneficial to use a *soft* classifier, which outputs the probability of being in class 0 or 1. \n", + "\n", + "For a soft binary classifier, we could use a single neuron and interpret the output as either being the probability of being in class 0 or the probability of being in class 1. Alternatively we could use 2 neurons, and interpret each neuron as the probability of being in each class. \n", + "\n", + "Since we are doing multiclass classification, with 10 categories, it is natural to use 10 neurons in the output layer. We number the neurons $j = 0,1,...,9$. The activation of each output neuron $j$ will be according to the *softmax* function: \n", + "\n", + "$$ P(\\text{class $j$} \\mid \\text{input $\\boldsymbol{a}$}) = \\frac{\\exp{(\\boldsymbol{a}^T \\boldsymbol{w}_j)}}\n", + "{\\sum_{c=0}^{9} \\exp{(\\boldsymbol{a}^T \\boldsymbol{w}_c)}} ,$$ \n", + "\n", + "i.e. each neuron $j$ outputs the probability of being in class $j$ given an input from the hidden layer $\\boldsymbol{a}$, with $\\boldsymbol{w}_j$ the weights of neuron $j$ to the inputs. \n", + "The denominator is a normalization factor to ensure the outputs (probabilities) sum up to 1. \n", + "The exponent is just the weighted sum of inputs as before: \n", + "\n", + "$$ z_j = \\sum_{i=1}^n w_ {ij} a_i+b_j.$$ \n", + "\n", + "Since each neuron in the output layer is connected to the 50 inputs from the hidden layer we have 50x10 = 500\n", + "weights to the output layer." + ] + }, + { + "cell_type": "markdown", + "id": "0bb70540", + "metadata": { + "editable": true + }, + "source": [ + "## Weights and biases\n", + "\n", + "Typically weights are initialized with small values distributed around zero, drawn from a uniform\n", + "or normal distribution. Setting all weights to zero means all neurons give the same output, making the network useless. \n", + "\n", + "Adding a bias value to the weighted sum of inputs allows the neural network to represent a greater range\n", + "of values. Without it, any input with the value 0 will be mapped to zero (before being passed through the activation). The bias unit has an output of 1, and a weight to each neuron $j$, $b_j$: \n", + "\n", + "$$ z_j = \\sum_{i=1}^n w_ {ij} a_i + b_j.$$ \n", + "\n", + "The bias weights $\\boldsymbol{b}$ are often initialized to zero, but a small value like $0.01$ ensures all neurons have some output which can be backpropagated in the first training cycle." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f3894282", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "# building our neural network\n", + "\n", + "n_inputs, n_features = X_train.shape\n", + "n_hidden_neurons = 50\n", + "n_categories = 10\n", + "\n", + "# we make the weights normally distributed using numpy.random.randn\n", + "\n", + "# weights and bias in the hidden layer\n", + "hidden_weights = np.random.randn(n_features, n_hidden_neurons)\n", + "hidden_bias = np.zeros(n_hidden_neurons) + 0.01\n", + "\n", + "# weights and bias in the output layer\n", + "output_weights = np.random.randn(n_hidden_neurons, n_categories)\n", + "output_bias = np.zeros(n_categories) + 0.01" + ] + }, + { + "cell_type": "markdown", + "id": "25c08547", + "metadata": { + "editable": true + }, + "source": [ + "## Feed-forward pass\n", + "\n", + "Denote $F$ the number of features, $H$ the number of hidden neurons and $C$ the number of categories. \n", + "For each input image we calculate a weighted sum of input features (pixel values) to each neuron $j$ in the hidden layer $l$: \n", + "\n", + "$$ z_{j}^{l} = \\sum_{i=1}^{F} w_{ij}^{l} x_i + b_{j}^{l},$$\n", + "\n", + "this is then passed through our activation function \n", + "\n", + "$$ a_{j}^{l} = f(z_{j}^{l}) .$$ \n", + "\n", + "We calculate a weighted sum of inputs (activations in the hidden layer) to each neuron $j$ in the output layer: \n", + "\n", + "$$ z_{j}^{L} = \\sum_{i=1}^{H} w_{ij}^{L} a_{i}^{l} + b_{j}^{L}.$$ \n", + "\n", + "Finally we calculate the output of neuron $j$ in the output layer using the softmax function: \n", + "\n", + "$$ a_{j}^{L} = \\frac{\\exp{(z_j^{L})}}\n", + "{\\sum_{c=0}^{C-1} \\exp{(z_c^{L})}} .$$" + ] + }, + { + "cell_type": "markdown", + "id": "96a5c9b5", + "metadata": { + "editable": true + }, + "source": [ + "## Matrix multiplications\n", + "\n", + "Since our data has the dimensions $X = (n_{inputs}, n_{features})$ and our weights to the hidden\n", + "layer have the dimensions \n", + "$W_{hidden} = (n_{features}, n_{hidden})$,\n", + "we can easily feed the network all our training data in one go by taking the matrix product \n", + "\n", + "$$ X W^{h} = (n_{inputs}, n_{hidden}),$$ \n", + "\n", + "and obtain a matrix that holds the weighted sum of inputs to the hidden layer\n", + "for each input image and each hidden neuron. \n", + "We also add the bias to obtain a matrix of weighted sums to the hidden layer $Z^{h}$: \n", + "\n", + "$$ \\boldsymbol{z}^{l} = \\boldsymbol{X} \\boldsymbol{W}^{l} + \\boldsymbol{b}^{l} ,$$\n", + "\n", + "meaning the same bias (1D array with size equal number of hidden neurons) is added to each input image. \n", + "This is then passed through the activation: \n", + "\n", + "$$ \\boldsymbol{a}^{l} = f(\\boldsymbol{z}^l) .$$ \n", + "\n", + "This is fed to the output layer: \n", + "\n", + "$$ \\boldsymbol{z}^{L} = \\boldsymbol{a}^{L} \\boldsymbol{W}^{L} + \\boldsymbol{b}^{L} .$$\n", + "\n", + "Finally we receive our output values for each image and each category by passing it through the softmax function: \n", + "\n", + "$$ output = softmax (\\boldsymbol{z}^{L}) = (n_{inputs}, n_{categories}) .$$" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "948f1d5c", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "probabilities = (n_inputs, n_categories) = (1437, 10)\n", + "probability that image 0 is in category 0,1,2,...,9 = \n", + "[5.41511965e-04 2.17174962e-03 8.84355903e-03 1.44970586e-03\n", + " 1.10378326e-04 5.08318298e-09 2.03256632e-04 1.92507116e-03\n", + " 9.84443254e-01 3.11507992e-04]\n", + "probabilities sum up to: 1.0\n", + "\n", + "predictions = (n_inputs) = (1437,)\n", + "prediction for image 0: 8\n", + "correct label for image 0: 6\n" + ] + } + ], + "source": [ + "# setup the feed-forward pass, subscript h = hidden layer\n", + "\n", + "def sigmoid(x):\n", + " return 1/(1 + np.exp(-x))\n", + "\n", + "def feed_forward(X):\n", + " # weighted sum of inputs to the hidden layer\n", + " z_h = np.matmul(X, hidden_weights) + hidden_bias\n", + " # activation in the hidden layer\n", + " a_h = sigmoid(z_h)\n", + " \n", + " # weighted sum of inputs to the output layer\n", + " z_o = np.matmul(a_h, output_weights) + output_bias\n", + " # softmax output\n", + " # axis 0 holds each input and axis 1 the probabilities of each category\n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " \n", + " return probabilities\n", + "\n", + "probabilities = feed_forward(X_train)\n", + "print(\"probabilities = (n_inputs, n_categories) = \" + str(probabilities.shape))\n", + "print(\"probability that image 0 is in category 0,1,2,...,9 = \\n\" + str(probabilities[0]))\n", + "print(\"probabilities sum up to: \" + str(probabilities[0].sum()))\n", + "print()\n", + "\n", + "# we obtain a prediction by taking the class with the highest likelihood\n", + "def predict(X):\n", + " probabilities = feed_forward(X)\n", + " return np.argmax(probabilities, axis=1)\n", + "\n", + "predictions = predict(X_train)\n", + "print(\"predictions = (n_inputs) = \" + str(predictions.shape))\n", + "print(\"prediction for image 0: \" + str(predictions[0]))\n", + "print(\"correct label for image 0: \" + str(Y_train[0]))" + ] + }, + { + "cell_type": "markdown", + "id": "6a48b541", + "metadata": { + "editable": true + }, + "source": [ + "## Choose cost function and optimizer\n", + "\n", + "To measure how well our neural network is doing we need to introduce a cost function. \n", + "We will call the function that gives the error of a single sample output the *loss* function, and the function\n", + "that gives the total error of our network across all samples the *cost* function.\n", + "A typical choice for multiclass classification is the *cross-entropy* loss, also known as the negative log likelihood. \n", + "\n", + "In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: \n", + "\n", + "$$ y = 5 \\quad \\rightarrow \\quad \\boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$$ \n", + "\n", + "$$ y = 1 \\quad \\rightarrow \\quad \\boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$$ \n", + "\n", + "i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset. \n", + "\n", + "Let $y_{ic}$ denote the $c$-th component of the $i$-th one-hot vector. \n", + "We define the cost function $\\mathcal{C}$ as a sum over the cross-entropy loss for each point $\\boldsymbol{x}_i$ in the dataset.\n", + "\n", + "In the one-hot representation only one of the terms in the loss function is non-zero, namely the\n", + "probability of the correct category $c'$ \n", + "(i.e. the category $c'$ such that $y_{ic'} = 1$). This means that the cross entropy loss only punishes you for how wrong\n", + "you got the correct label. The probability of category $c$ is given by the softmax function. The vector $\\boldsymbol{\\theta}$ represents the parameters of our network, i.e. all the weights and biases." + ] + }, + { + "cell_type": "markdown", + "id": "92ae85de", + "metadata": { + "editable": true + }, + "source": [ + "## Optimizing the cost function\n", + "\n", + "The network is trained by finding the weights and biases that minimize the cost function. One of the most widely used classes of methods is *gradient descent* and its generalizations. The idea behind gradient descent\n", + "is simply to adjust the weights in the direction where the gradient of the cost function is large and negative. This ensures we flow toward a *local* minimum of the cost function. \n", + "Each parameter $\\theta$ is iteratively adjusted according to the rule \n", + "\n", + "$$ \\theta_{i+1} = \\theta_i - \\eta \\nabla \\mathcal{C}(\\theta_i) ,$$\n", + "\n", + "where $\\eta$ is known as the *learning rate*, which controls how big a step we take towards the minimum. \n", + "This update can be repeated for any number of iterations, or until we are satisfied with the result. \n", + "\n", + "A simple and effective improvement is a variant called *Batch Gradient Descent*. \n", + "Instead of calculating the gradient on the whole dataset, we calculate an approximation of the gradient\n", + "on a subset of the data called a *minibatch*. \n", + "If there are $N$ data points and we have a minibatch size of $M$, the total number of batches\n", + "is $N/M$. \n", + "We denote each minibatch $B_k$, with $k = 1, 2,...,N/M$. The gradient then becomes: \n", + "\n", + "$$ \\nabla \\mathcal{C}(\\theta) = \\frac{1}{N} \\sum_{i=1}^N \\nabla \\mathcal{L}_i(\\theta) \\quad \\rightarrow \\quad\n", + "\\frac{1}{M} \\sum_{i \\in B_k} \\nabla \\mathcal{L}_i(\\theta) ,$$\n", + "\n", + "i.e. instead of averaging the loss over the entire dataset, we average over a minibatch. \n", + "\n", + "This has two important benefits: \n", + "1. Introducing stochasticity decreases the chance that the algorithm becomes stuck in a local minima. \n", + "\n", + "2. It significantly speeds up the calculation, since we do not have to use the entire dataset to calculate the gradient. \n", + "\n", + "The various optmization methods, with codes and algorithms, are discussed in our lectures on [Gradient descent approaches](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html)." + ] + }, + { + "cell_type": "markdown", + "id": "50af9f08", + "metadata": { + "editable": true + }, + "source": [ + "## Regularization\n", + "\n", + "It is common to add an extra term to the cost function, proportional\n", + "to the size of the weights. This is equivalent to constraining the\n", + "size of the weights, so that they do not grow out of control.\n", + "Constraining the size of the weights means that the weights cannot\n", + "grow arbitrarily large to fit the training data, and in this way\n", + "reduces *overfitting*.\n", + "\n", + "We will measure the size of the weights using the so called *L2-norm*, meaning our cost function becomes: \n", + "\n", + "$$ \\mathcal{C}(\\theta) = \\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}_i(\\theta) \\quad \\rightarrow \\quad\n", + "\\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}_i(\\theta) + \\lambda \\lvert \\lvert \\boldsymbol{w} \\rvert \\rvert_2^2 \n", + "= \\frac{1}{N} \\sum_{i=1}^N \\mathcal{L}(\\theta) + \\lambda \\sum_{ij} w_{ij}^2,$$ \n", + "\n", + "i.e. we sum up all the weights squared. The factor $\\lambda$ is known as a regularization parameter.\n", + "\n", + "In order to train the model, we need to calculate the derivative of\n", + "the cost function with respect to every bias and weight in the\n", + "network. In total our network has $(64 + 1)\\times 50=3250$ weights in\n", + "the hidden layer and $(50 + 1)\\times 10=510$ weights to the output\n", + "layer ($+1$ for the bias), and the gradient must be calculated for\n", + "every parameter. We use the *backpropagation* algorithm discussed\n", + "above. This is a clever use of the chain rule that allows us to\n", + "calculate the gradient efficently." + ] + }, + { + "cell_type": "markdown", + "id": "947d899e", + "metadata": { + "editable": true + }, + "source": [ + "## Matrix multiplication\n", + "\n", + "To more efficently train our network these equations are implemented using matrix operations. \n", + "The error in the output layer is calculated simply as, with $\\boldsymbol{t}$ being our targets, \n", + "\n", + "$$ \\delta_L = \\boldsymbol{t} - \\boldsymbol{y} = (n_{inputs}, n_{categories}) .$$ \n", + "\n", + "The gradient for the output weights is calculated as \n", + "\n", + "$$ \\nabla W_{L} = \\boldsymbol{a}^T \\delta_L = (n_{hidden}, n_{categories}) ,$$\n", + "\n", + "where $\\boldsymbol{a} = (n_{inputs}, n_{hidden})$. This simply means that we are summing up the gradients for each input. \n", + "Since we are going backwards we have to transpose the activation matrix. \n", + "\n", + "The gradient with respect to the output bias is then \n", + "\n", + "$$ \\nabla \\boldsymbol{b}_{L} = \\sum_{i=1}^{n_{inputs}} \\delta_L = (n_{categories}) .$$ \n", + "\n", + "The error in the hidden layer is \n", + "\n", + "$$ \\Delta_h = \\delta_L W_{L}^T \\circ f'(z_{h}) = \\delta_L W_{L}^T \\circ a_{h} \\circ (1 - a_{h}) = (n_{inputs}, n_{hidden}) ,$$ \n", + "\n", + "where $f'(a_{h})$ is the derivative of the activation in the hidden layer. The matrix products mean\n", + "that we are summing up the products for each neuron in the output layer. The symbol $\\circ$ denotes\n", + "the *Hadamard product*, meaning element-wise multiplication. \n", + "\n", + "This again gives us the gradients in the hidden layer: \n", + "\n", + "$$ \\nabla W_{h} = X^T \\delta_h = (n_{features}, n_{hidden}) ,$$ \n", + "\n", + "$$ \\nabla b_{h} = \\sum_{i=1}^{n_{inputs}} \\delta_h = (n_{hidden}) .$$" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9ac16dfb", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Old accuracy on training data: 0.1440501043841336\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "New accuracy on training data: 0.09951287404314545\n" + ] + } + ], + "source": [ + "# to categorical turns our integer vector into a onehot representation\n", + "from sklearn.metrics import accuracy_score\n", + "\n", + "# one-hot in numpy\n", + "def to_categorical_numpy(integer_vector):\n", + " n_inputs = len(integer_vector)\n", + " n_categories = np.max(integer_vector) + 1\n", + " onehot_vector = np.zeros((n_inputs, n_categories))\n", + " onehot_vector[range(n_inputs), integer_vector] = 1\n", + " \n", + " return onehot_vector\n", + "\n", + "#Y_train_onehot, Y_test_onehot = to_categorical(Y_train), to_categorical(Y_test)\n", + "Y_train_onehot, Y_test_onehot = to_categorical_numpy(Y_train), to_categorical_numpy(Y_test)\n", + "\n", + "def feed_forward_train(X):\n", + " # weighted sum of inputs to the hidden layer\n", + " z_h = np.matmul(X, hidden_weights) + hidden_bias\n", + " # activation in the hidden layer\n", + " a_h = sigmoid(z_h)\n", + " \n", + " # weighted sum of inputs to the output layer\n", + " z_o = np.matmul(a_h, output_weights) + output_bias\n", + " # softmax output\n", + " # axis 0 holds each input and axis 1 the probabilities of each category\n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " \n", + " # for backpropagation need activations in hidden and output layers\n", + " return a_h, probabilities\n", + "\n", + "def backpropagation(X, Y):\n", + " a_h, probabilities = feed_forward_train(X)\n", + " \n", + " # error in the output layer\n", + " error_output = probabilities - Y\n", + " # error in the hidden layer\n", + " error_hidden = np.matmul(error_output, output_weights.T) * a_h * (1 - a_h)\n", + " \n", + " # gradients for the output layer\n", + " output_weights_gradient = np.matmul(a_h.T, error_output)\n", + " output_bias_gradient = np.sum(error_output, axis=0)\n", + " \n", + " # gradient for the hidden layer\n", + " hidden_weights_gradient = np.matmul(X.T, error_hidden)\n", + " hidden_bias_gradient = np.sum(error_hidden, axis=0)\n", + "\n", + " return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient\n", + "\n", + "print(\"Old accuracy on training data: \" + str(accuracy_score(predict(X_train), Y_train)))\n", + "\n", + "eta = 0.01\n", + "lmbd = 0.01\n", + "for i in range(1000):\n", + " # calculate gradients\n", + " dWo, dBo, dWh, dBh = backpropagation(X_train, Y_train_onehot)\n", + " \n", + " # regularization term gradients\n", + " dWo += lmbd * output_weights\n", + " dWh += lmbd * hidden_weights\n", + " \n", + " # update weights and biases\n", + " output_weights -= eta * dWo\n", + " output_bias -= eta * dBo\n", + " hidden_weights -= eta * dWh\n", + " hidden_bias -= eta * dBh\n", + "\n", + "print(\"New accuracy on training data: \" + str(accuracy_score(predict(X_train), Y_train)))" + ] + }, + { + "cell_type": "markdown", + "id": "15fa07c3", + "metadata": { + "editable": true + }, + "source": [ + "## Improving performance\n", + "\n", + "As we can see the network does not seem to be learning at all. It seems to be just guessing the label for each image. \n", + "In order to obtain a network that does something useful, we will have to do a bit more work. \n", + "\n", + "The choice of *hyperparameters* such as learning rate and regularization parameter is hugely influential for the performance of the network. Typically a *grid-search* is performed, wherein we test different hyperparameters separated by orders of magnitude. For example we could test the learning rates $\\eta = 10^{-6}, 10^{-5},...,10^{-1}$ with different regularization parameters $\\lambda = 10^{-6},...,10^{-0}$. \n", + "\n", + "Next, we haven't implemented minibatching yet, which introduces stochasticity and is though to act as an important regularizer on the weights. We call a feed-forward + backward pass with a minibatch an *iteration*, and a full training period\n", + "going through the entire dataset ($n/M$ batches) an *epoch*.\n", + "\n", + "If this does not improve network performance, you may want to consider altering the network architecture, adding more neurons or hidden layers. \n", + "Andrew Ng goes through some of these considerations in this [video](https://youtu.be/F1ka6a13S9I). You can find a summary of the video [here](https://kevinzakka.github.io/2016/09/26/applying-deep-learning/)." + ] + }, + { + "cell_type": "markdown", + "id": "e8e7304b", + "metadata": { + "editable": true + }, + "source": [ + "## Full object-oriented implementation\n", + "\n", + "It is very natural to think of the network as an object, with specific instances of the network\n", + "being realizations of this object with different hyperparameters. An implementation using Python classes provides a clean structure and interface, and the full implementation of our neural network is given below." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "da41ccbe", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [], + "source": [ + "class NeuralNetwork:\n", + " def __init__(\n", + " self,\n", + " X_data,\n", + " Y_data,\n", + " n_hidden_neurons=50,\n", + " n_categories=10,\n", + " epochs=10,\n", + " batch_size=100,\n", + " eta=0.1,\n", + " lmbd=0.0):\n", + "\n", + " self.X_data_full = X_data\n", + " self.Y_data_full = Y_data\n", + "\n", + " self.n_inputs = X_data.shape[0]\n", + " self.n_features = X_data.shape[1]\n", + " self.n_hidden_neurons = n_hidden_neurons\n", + " self.n_categories = n_categories\n", + "\n", + " self.epochs = epochs\n", + " self.batch_size = batch_size\n", + " self.iterations = self.n_inputs // self.batch_size\n", + " self.eta = eta\n", + " self.lmbd = lmbd\n", + "\n", + " self.create_biases_and_weights()\n", + "\n", + " def create_biases_and_weights(self):\n", + " self.hidden_weights = np.random.randn(self.n_features, self.n_hidden_neurons)\n", + " self.hidden_bias = np.zeros(self.n_hidden_neurons) + 0.01\n", + "\n", + " self.output_weights = np.random.randn(self.n_hidden_neurons, self.n_categories)\n", + " self.output_bias = np.zeros(self.n_categories) + 0.01\n", + "\n", + " def feed_forward(self):\n", + " # feed-forward for training\n", + " self.z_h = np.matmul(self.X_data, self.hidden_weights) + self.hidden_bias\n", + " self.a_h = sigmoid(self.z_h)\n", + "\n", + " self.z_o = np.matmul(self.a_h, self.output_weights) + self.output_bias\n", + "\n", + " exp_term = np.exp(self.z_o)\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + "\n", + " def feed_forward_out(self, X):\n", + " # feed-forward for output\n", + " z_h = np.matmul(X, self.hidden_weights) + self.hidden_bias\n", + " a_h = sigmoid(z_h)\n", + "\n", + " z_o = np.matmul(a_h, self.output_weights) + self.output_bias\n", + " \n", + " exp_term = np.exp(z_o)\n", + " probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n", + " return probabilities\n", + "\n", + " def backpropagation(self):\n", + " error_output = self.probabilities - self.Y_data\n", + " error_hidden = np.matmul(error_output, self.output_weights.T) * self.a_h * (1 - self.a_h)\n", + "\n", + " self.output_weights_gradient = np.matmul(self.a_h.T, error_output)\n", + " self.output_bias_gradient = np.sum(error_output, axis=0)\n", + "\n", + " self.hidden_weights_gradient = np.matmul(self.X_data.T, error_hidden)\n", + " self.hidden_bias_gradient = np.sum(error_hidden, axis=0)\n", + "\n", + " if self.lmbd > 0.0:\n", + " self.output_weights_gradient += self.lmbd * self.output_weights\n", + " self.hidden_weights_gradient += self.lmbd * self.hidden_weights\n", + "\n", + " self.output_weights -= self.eta * self.output_weights_gradient\n", + " self.output_bias -= self.eta * self.output_bias_gradient\n", + " self.hidden_weights -= self.eta * self.hidden_weights_gradient\n", + " self.hidden_bias -= self.eta * self.hidden_bias_gradient\n", + "\n", + " def predict(self, X):\n", + " probabilities = self.feed_forward_out(X)\n", + " return np.argmax(probabilities, axis=1)\n", + "\n", + " def predict_probabilities(self, X):\n", + " probabilities = self.feed_forward_out(X)\n", + " return probabilities\n", + "\n", + " def train(self):\n", + " data_indices = np.arange(self.n_inputs)\n", + "\n", + " for i in range(self.epochs):\n", + " for j in range(self.iterations):\n", + " # pick datapoints with replacement\n", + " chosen_datapoints = np.random.choice(\n", + " data_indices, size=self.batch_size, replace=False\n", + " )\n", + "\n", + " # minibatch training data\n", + " self.X_data = self.X_data_full[chosen_datapoints]\n", + " self.Y_data = self.Y_data_full[chosen_datapoints]\n", + "\n", + " self.feed_forward()\n", + " self.backpropagation()" + ] + }, + { + "cell_type": "markdown", + "id": "6ed32b94", + "metadata": { + "editable": true + }, + "source": [ + "## Evaluate model performance on test data\n", + "\n", + "To measure the performance of our network we evaluate how well it does it data it has never seen before, i.e. the test data. \n", + "We measure the performance of the network using the *accuracy* score. \n", + "The accuracy is as you would expect just the number of images correctly labeled divided by the total number of images. A perfect classifier will have an accuracy score of $1$. \n", + "\n", + "$$ \\text{Accuracy} = \\frac{\\sum_{i=1}^n I(\\tilde{y}_i = y_i)}{n} ,$$ \n", + "\n", + "where $I$ is the indicator function, $1$ if $\\tilde{y}_i = y_i$ and $0$ otherwise." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a2566347", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accuracy score on test set: 0.9444444444444444\n" + ] + } + ], + "source": [ + "epochs = 100\n", + "batch_size = 100\n", + "\n", + "dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,\n", + " n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)\n", + "dnn.train()\n", + "test_predict = dnn.predict(X_test)\n", + "\n", + "# accuracy score from scikit library\n", + "print(\"Accuracy score on test set: \", accuracy_score(Y_test, test_predict))\n", + "\n", + "# equivalent in numpy\n", + "def accuracy_score_numpy(Y_test, Y_pred):\n", + " return np.sum(Y_test == Y_pred) / len(Y_test)\n", + "\n", + "#print(\"Accuracy score on test set: \", accuracy_score_numpy(Y_test, test_predict))" + ] + }, + { + "cell_type": "markdown", + "id": "779ebe17", + "metadata": { + "editable": true + }, + "source": [ + "## Adjust hyperparameters\n", + "\n", + "We now perform a grid search to find the optimal hyperparameters for the network. \n", + "Note that we are only using 1 layer with 50 neurons, and human performance is estimated to be around $98\\%$ ($2\\%$ error rate)." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f55e622e", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.11666666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.20833333333333334\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.12222222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.14722222222222223\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.17777777777777778\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.16111111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.20277777777777778\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.5305555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.5944444444444444\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.5888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.6111111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.5222222222222223\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.5555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8055555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.85\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.85\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.875\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.8666666666666667\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.8638888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.925\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9277777777777778\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9472222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9305555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.7694444444444445\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.19166666666666668\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.08611111111111111\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.08888888888888889\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.08611111111111111\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.08888888888888889\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.09166666666666666\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:43: RuntimeWarning: overflow encountered in exp\n", + " exp_term = np.exp(self.z_o)\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/1630775253.py:44: RuntimeWarning: invalid value encountered in true_divide\n", + " self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.07777777777777778\n", + "\n" + ] + } + ], + "source": [ + "eta_vals = np.logspace(-5, 1, 7)\n", + "lmbd_vals = np.logspace(-5, 1, 7)\n", + "# store the models for later use\n", + "DNN_numpy = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + "\n", + "# grid search\n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size,\n", + " n_hidden_neurons=n_hidden_neurons, n_categories=n_categories)\n", + " dnn.train()\n", + " \n", + " DNN_numpy[i][j] = dnn\n", + " \n", + " test_predict = dnn.predict(X_test)\n", + " \n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Accuracy score on test set: \", accuracy_score(Y_test, test_predict))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "4a2ea09c", + "metadata": { + "editable": true + }, + "source": [ + "## Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d1dc32a5", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n", + "/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_74401/953065564.py:4: RuntimeWarning: overflow encountered in exp\n", + " return 1/(1 + np.exp(-x))\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_197_1.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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/FtcXNwNy7l582Zee+01evbsydNPP01gYCAAn376adpD7lfKf20ZL168yO7du6lbty758uWjS5cuzJs3jx07drB48WIef/zxG+5fRETyFqVgiYhco1GjRhw8eJDq1atTq1YtatWqRc2aNZk8eTJLly4FYODAgbz44ouAPWDp2LEj/fr1w2q1EhUVBYDZfP1T7Ny5c6lbty7t27encePGDj/du3cnOjqaP/74A7A/z7Fq1SqH0bH27dvHs88+y86dOwkNDSU8PJx9+/alzU9KSqJ///78/PPPgL0H4vTp0w5l2Lp16w3rY9u2bdhsNgYMGJAWfFit1rR0NJvNRsWKFSlUqBDLly93WHfhwoX06dOHxMREABo2bEj58uUZOXIkFy5c4MEHH7zh/kVEJG9RACIico1+/fpx/Phx+vbty7Jly1i1ahX9+/fn999/T3vGokmTJixdupQRI0awbt06Fi9ezJdffkn58uXTlgkICGDPnj1s3LiRhIQEh33s2LGD/fv3Z5qu1bZtWwoUKJD2kHe/fv24cOECffr04a+//uLPP/9k4MCB1KhRgzvuuIPOnTtTtmxZnn/+eRYsWMCqVasYMGAACQkJab0Md955J7///jvTp09n3bp1vPrqqxw7duyG9VG7dm0Ahg4dyvr161myZAlPPfUUYWFhgL0XxcPDg/79+7N48WLef/991qxZw7Rp0/jiiy/o3r17WuoaQJcuXdi4cSNNmzalZMmSN/OnERGRPEABiIjINYKDg5k2bRomk4lXX32VAQMGcObMGcaNG8ddd90FQLdu3Xj77bdZuXIlzz33HO+++y6VKlVi0qRJeHl5AdC7d2/Onj3L008/za5duxz2MWfOHDw8PBxGuvo3i8VCx44d2b59O3v37iUkJISffvoJm83GoEGDGDp0KHXr1uX777/HYrHg7+/P1KlTqVevHh999BEvvfQSiYmJ/PTTT2kPlL/xxhu0adOGkSNHMmDAAHx9fZ164WHjxo1599132bZtG3369GH48OGUKlUq7e3xV9KwevTowSeffMLmzZvp27cvkyZNonfv3rz++usO27vzzjsB9PC5iIibMhmGYeR0IURExH18//33TJgwgVWrVmGxWHK6OCIi4mJ6CF1ERFxi3rx57N+/n+nTp/Pss88q+BARcVMKQERExCXCwsKYOXMm7dq1o0+fPjldHBERySFKwRIREREREZfRQ+giIiIiIuIyCkBERERERMRlFICIiIiIiIjLKAARERERERGXcatRsDoU1qgr2cmoVCani5DnmY6czOki5GkmP7+cLkLe5686znZJyTldgjzNVkBtOLst3vJBThchU7bTVXO6CBkyB+7P6SLcFPWAiIiIiIiIyygAERERERERl3GrFCwRERERkVtlw5bTRcjQ7dajcLuVV0REREREbmMKQERERERExGWUgiUiIiIi4gSrkTtTsG63C3r1gIiIiIiIiMsoABEREREREZe53XpsRERERERyhA0jp4uQJ6gHREREREREXEYBiIiIiIiIuIxSsEREREREnJBbX0R4u1EPiIiIiIiIuIwCEBERERERcRmlYImIiIiIOMFqaBSsrKAeEBERERERcRkFICIiIiIi4jJKwRIRERERcYJeRJg11AMiIiIiIiIuowBERERERERcRilYIiIiIiJOsCoFK0uoB0RERERERFxGAYiIiIiIiLiMUrBERERERJygUbCyhnpARERERETEZRSAiIiIiIiIyygFS0RERETECVZDKVhZQT0gIiIiIiLiMgpARERERETEZZSCJSIiIiLiBFtOFyCPUA+IiIiIiIi4jAIQERERERFxGaVgiYiIiIg4waoXEWYJ9YCIiIiIiIjLKAARERERERGXUQqWiIiIiIgTrMrAyhLqAREREREREZdRACIiIiIiIi6jFCwRERERESfoRYRZQz0gIiIiIiLiMgpARERERETEZZSCJSIiIiLiBCumnC5CnqAeEBERERERcRkFICIiIiIibspms/HVV1/RsmVL6tSpQ+/evTl27Fimy4eHh/Pcc8/RqFEjmjdvzrBhw4iPj7+pfSoAERERERFxgs3InT//xddff83MmTMZNmwYs2bNwmQy0adPH5KSktIte+nSJbp37050dDQTJkxg/Pjx7Nq1ixdeeOGm9qkARERERETEDSUlJTFp0iT69+9Pq1atCA4OZvTo0URGRrJ06dJ0y8+bN4/Y2FjGjRtH7dq1qVWrFqNHj2bt2rVs3rzZ6f0qABERERERcUNhYWFcvnyZJk2apE0LCAggJCSETZs2pVv+yJEjVKxYkcKFC6dNK1myJIUKFWLjxo1O71ejYLlIg7Y16PXmgwRVK0n0uVgW/bCCWV/84dS6lesE8cWSN3g69G0iw885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RFwmV/SAiIiIiIjkdnnxRYQ5QT0gIiIiIiLiMgpARERERETEZZSCJSIiIiLihNvxpX+5kXpARERERETEZRSAiIiIiIiIyygFS0RERETECVZD9+6zgmpRRERERERcRgGIiIiIiIi4jFKwREREREScYNO9+yyhWhQREREREZdRACIiIiIiIi6jFCwRERERESfoRYRZQz0gIiIiIiLiMgpARERERETEZZSCJSIiIiLiBL2IMGuoFkVERERExGUUgIiIiIiIiMsoBUtERERExAk2jYKVJdQDIiIiIiIiLqMAREREREREXEYpWCIiIiIiTrDq3n2WUC2KiIiIiIjLKAARERERERGXUQqWiIiIiIgT9CLCrKFaFBERERERl1EAIiIiIiIiLqMULBERERERJ9h07z5LqBZFRERERMRlFICIiIiIiIjLKAVLRERERMQJVsOU00XIE9QDIiIiIiIiLqMAREREREREXEYBiIiIiIiIuIyeARERERERcYJV9+6zhGpRRERERERcRgGIiIiIiIi4jFKwREREREScYDN07z4rqBZFRERERMRlFICIiIiIiIjLKAVLRERERMQJGgUra6gWRURERETEZRSAiIiIiIiIyygFS0RERETECVbDlNNFyBPUAyIiIiIiIi6jAERERERERFxGKVgiIiIiIk6w6d59lnCrACTsw+CcLkKeZi6UmNNFyPMMo0JOFyFP87RYc7oIeV7Kad+cLkKeZ/O15XQR8rSBzZfmdBFEbnsK40RERERExGXcqgdERERERORWWQ3du88KqkUREREREXEZBSAiIiIiIuIySsESEREREXGCDb2IMCuoB0RERERERFxGAYiIiIiIiLiMUrBERERERJygUbCyhmpRRERERERcRgGIiIiIiIi4jFKwREREREScYNW9+yyhWhQREREREZdRACIiIiIiIi6jFCwRERERESfYDL2IMCuoB0RERERERFxGAYiIiIiIiLiMUrBERERERJygUbCyhmpRRERERERcRgGIiIiIiIi4jFKwREREREScYDN07z4rqBZFRERERNyUzWbjq6++omXLltSpU4fevXtz7NixTJc/c+YMgwcPpnHjxjRu3JiXXnqJ06dP39Q+FYCIiIiIiLipr7/+mpkzZzJs2DBmzZqFyWSiT58+JCUlZbj8oEGDiIiI4IcffuCHH37g9OnT9OvX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USH1PPzTzu1M2GZva41Ll2Fm50d5ZemfzPnXefilRqnn4Xz5OBZ9kR/+2crM3fY23rRMWaY/9Eim+/tiw1q+3Lgu+w/sGjZf240XygZ3l6vCoAbNqVigEJGXY/lx7za+32k/XzYpWZZZ93Tj5RWLmH0gtX69LAys35y7y1emmK8/xy9dZOKuLczc59g+GxQvxZDQltQtXpL4lGSWHDvIRxuuBimuNrD50hzZL8CR9XFsmnGRiyeTyVfEk5od81PnwQAATu5MYOE7kdzZvwjBbf0BSIqzsXHqRQ6viyMx1kpACS+qts5H7fsD8PBK/30SE5nC9L4nHbaREwZVX5Jj+76Rl7Z1z+kiZOjLerfXu55yTQASGRnJnj17aN26dbbtIycDEHeQkwGIu8jJAMQd5GQA4i5yMgBxFzkVgLiLnAxA3IUCkJt3uwUgOZ6CdUWJEiUoUaJEThdDRERERESyUa4JQEREREREcjObkePjN+UJqkUREREREXEZBSAiIiIiIuIySsESEREREXGCFQ0GkxXUAyIiIiIiIi6jAERERERERFxGKVgiIiIiIk6w6X1cWUI9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4gS9iDBrqBZFRERERMRlFICIiIiIiIjLKAVLRERERMQJNr2IMEuoB0RERERERFxGAYiIiIiIiLiMUrBERERERJxg1YsIs4R6QERERERExGUUgIiIiIiIiMsoBUtERERExAl6EWHWUC2KiIiIiIjLKAARERERERGXUQqWiIiIiIgTbBoFK0uoB0RERERERFxGAYiIiIiIiLiMUrBERERERJxgQylYWUE9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4gSNgpU11AMiIiIiIiIuowBERERERERcRilYIiIiIiJOsBm6d58VVIsiIiIiIuIyCkBERERERMRllIIlIiIiIuIEjYKVNdQDIiIiIiIiLqMAREREREREXEYpWCIiIiIiTrChFKysoB4QERERERFxGQUgIiIiIiLiMkrBEhERERFxgkbByhrqAREREREREZdRACIiIiIiIi6jFCwREREREScoBStrqAdERERERERcRgGIiIiIiIi4jFKwREREREScoBSsrKEeEBERERERcRkFICIiIiIibspms/HVV1/RsmVL6tSpQ+/evTl27FiGy44ZM4Zq1apl+PPGG284vU+TYRhGVh1AbrfgcN2cLoLIf1LYHJvTRcjTkvHI6SLkeVZD972yW1tfa04XIU87Z7uc00XI84qVOpnTRcjUPSsH5HQRMvT7HV/d8rpjx45l+vTpDB8+nBIlSjBy5EjCw8P57bffsFgsDstevnyZuLg4h2mzZ89m/PjxzJo1i+DgYKf2qW8CERERERE3lJSUxKRJk+jfvz+tWrUiODiY0aNHExkZydKlS9Mtny9fPooVK5b2Ex8fz7fffsvrr7/udPABCkBERERERNxSWFgYly9fpkmTJmnTAgICCAkJYdOmTTdc/5NPPqFKlSo8+uijN7VfjYIlIiIiIuIEG7lzFKy2bdted/7y5csznH769GkASpYs6TC9ePHiREREXHebO3fuZPny5UyZMgWz+eb6NNQDIiIiIiLihuLj4wHSPevh7e1NYmLiddedPHkyderUceg9cZZ6QEREREREbmOZ9XDciI+PD2B/FuTKvwESExPx9fXNdL24uDiWLl3Ke++9d0v7VQAiIiIiIuKEvPYiwiupV1FRUQQFBaVNj4qKuu5D5atWrcJms9G+fftb2q9SsERERERE3FBwcDD+/v5s2LAhbVpMTAx79uwhNDQ00/W2bNlCjRo1CAgIuKX9qgdERERERMQNWSwWevbsyWeffUbhwoUpXbo0I0eOJDAwkPbt22O1Wjl//jz58+d3SNEKCwujatWqt7xf9YCIiIiIiDjBZphy5c9/MWDAALp27crbb79N9+7d8fDwYOLEiVgsFiIiImjRogWLFi1yWOfs2bMULFjwlvepN6GL3Eb0JvTspTehZz+9CT376U3o2UtvQs9+uflN6O3/Nyini5ChpXeOzuki3BR9E4iIiIiIiMvoGRARERERESfktVGwcop6QERERERExGUUgIiIiIiIiMsoBUtERERExAlKwcoa6gERERERERGXUQAiIiIiIiIuoxQsEREREREnGErByhLqAREREREREZdRACIiIiIiIi6jFCwRERERESfYUApWVlAPiIiIiIiIuIwCEBERERERcRmlYImIiIiIOEEvIswa6gERERERERGXUQAiIiIiIiIuoxQsEREREREn6EWEWUM9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4gSNgpU11AMiIiIiIiIuowBERERERERcRilYIiIiIiJO0ChYWUM9ICIi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5OYApMaC93O6CBna/cD7OV2Em5IrHkkMCsr8tlyFChWyJPgQEREREZGcp1tRIiIiIiLiMrmiB0REREREJLfL+QcX8gb1gIiIiIiIiMsoABEREREREZdRCpaIiIiIiBNux5f+5UbqAREREREREZdRACIiIiIiIi6jFCwREREREScoBStrqAdERERERERcRgGIiIiIiIi4jFKwREREREScoPcQZg31gIiIiIiIiMsoABEREREREZdRCpaIiIiIiBM0ClbWUA+IiIiIiIi4jAIQERERERFxGaVgiYiIiIg4Q8NgZQn1gIiIiIiIiMsoABEREREREZdRCpaIiIiIiBM0ClbWUA+IiIiIiIi4jAIQERERERFxGaVgiYiIiIg4wdAoWFlCPSAiIiIiIuIyCkBERERERMRlFICIiIiIiDjBMEy58ue/sNlsfPXVV7Rs2ZI6derQu3dvjh07lunyycnJjBo1ipYtW1K3bl169uzJ3r17b2qfCkBERERERNzU119/zcyZMxk2bBizZs3CZDLRp08fkpKSMlz+/fffZ/bs2Xz44YfMmTOHggUL0qdPHy5duuT0PhWAiIiIiIi4oaSkJCZNmkT//v1p1aoVwcHBjB49msjISJYuXZpu+fDwcGbPns3w4cO58847qVSpEh9//DEWi4Vdu3Y5vV+NgiUiIiIi4ow89iLCsLAwLl++TJMmTdKmBQQEEBISwqZNm7jnnnscll+9ejUBAQHccccdDsv/9ddfN7VfBSAiIiIiIrextm3bXnf+8uXLM5x++vRpAEqWLOkwvXjx4kRERKRb/ujRo5QtW5YlS5bw3XffERkZSUhICK+//jqVKlVyurxKwRIRERERcUPx8fEAWCwWh+ne3t4kJiamWz42Npbjx4/z9ddfM3jwYL755hs8PT157LHHOHfunNP7VQ+IiIiIiIgTcuuLCDPr4bgRHx8fwP4syJV/AyQmJuLr65tueS8vLy5dusTo0aPTejxGjx5Nq1atmDdvHs8884xT+1UPiIiIiIiIG7qSehUVFeUwPSoqisDAwHTLBwYG4unp6ZBu5ePjQ9myZTlx4oTT+1UAIiIiIiLihoKDg/H392fDhg1p02JiYtizZw+hoaHplg8NDSUlJYWdO3emTUtISCA8PJxy5co5vV+lYImIiIiIOCOXpmDdKovFQs+ePfnss88oXLgwpUuXZuTIkQQGBtK+fXusVivnz58nf/78+Pj4EBoaSrNmzXjttdcYOnQoBQsW5KuvvsLDw4MHHnjA6f2qB0RERERExE0NGDCArl278vbbb9O9e3c8PDyYOHEiFouFiIgIWrRowaJFi9KWHzNmDI0aNeLFF1+ka9euxMbG8uOPP1K4cGGn92kyjNz6OE3WW3C4bk4XQeQ/KWyOzeki5GnJeOR0EfI8q6H7Xtmtra81p4uQp52zXc7pIuR5xUqdzOkiZKri9I9zuggZOvzYmzldhJuiFCwREREREScYeexFhDlFt6JERERERMRlFICIiIiIiIjLKAVLRERERMQZbvPkdPZSD4iIiIiIiLiMAhAREREREXEZpWCJiIiIiDhBo2BlDfWAiIiIiIiIyygAERERERERl1EKloiIiIiIMzQKVpZQD4iIiIiIiLiMW/WAdPCNyeki5GkxRmJOFyHPCzB553QR8rRYIyGni5DnFTL75XQR8rxXI+vldBHytF1PVM3pIuR5f/6T0yWQ7OZWAYiIiIiIyK3TKFhZQSlYIiIiIiLiMgpARERERETEZZSCJSIiIiLiDI2ClSXUAyIiIiIiIi6jAERERERERFxGKVgiIiIiIs5QClaWUA+IiIiIiIi4jAIQERERERFxGaVgiYiIiIg4w9CLCLOCekBERERERMRlFICIiIiIiIjLKAVLRERERMQJhkbByhLqAREREREREZdRACIiIiIiIi6jFCwREREREWcoBStLqAdERERERERcRgGIiIiIiIi4jFKwREREREScoRcRZgn1gIiIiIiIiMsoABEREREREZdRCpaIiIiIiBNMGgUrS6gHREREREREXEYBiIiIiIiIuIxSsEREREREnKEUrCyhHhAREREREXEZBSAiIiIiIuIySsESEREREXGGXkSYJdQDIiIiIiIiLqMAREREREREXEYpWCIiIiIiztAoWFlCPSAiIiIiIuIyCkBERERERMRllIIlIiIiIuIMpWBlCfWAiIiIiIiIyygAERERERERl1EKloiIiIiIM5SClSXUAyIiIiIiIi6jAERERERERFxGKVgiIiIiIs4wTDldgjxBPSAiIiIiIuIyCkBERERERMRllIIlIiIiIuIEk0bByhLqAREREREREZdRACIiIiIiIi6jFCwREREREWcoBStLqAdERERERERcRj0gLrJ6g4mx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croIN0U9ICIiIiIi4jIKQERERERExGX0HhAREREREWe4zYML2Us9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4oT/8tI/uUo9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4gylYGUJ9YCIiIiIiIjLKAARERERERGXUQqWiIiIiIgTNApW1lAPiIiIiIiIuIwCEBERERERcRmlYImIiIiIOEMpWFlCPSAiIiIiIuIyCkBERERERMRllIIlIiIiIuIMpWBlCfWAiIiIiIiIyygAERERERERl1EKloiIiIiIE/QiwqyhHhAREREREXEZBSAiIiIiIuIyCkBERERERMRlFICIiIiIiIjLKAARERERERGX0ShYIiIiIiLO0ChYWUI9ICIiIiIi4jIKQERERERExGWUgiUiIiIi4gS9iDBrqAdERERERERcRgGIiIiIiIi4jFKwREREREScoRSsLOFWAcgD1VrldBHyNFt8fE4XIc8z+/rmdBHyNFtCYk4XIe8zbDldgrzPpOSG7GQyH87pIojc9nSWEhERERERl3GrHhARERERkVumFKwsoR4QERERERFxGQUgIiIiIiLiMkrBEhERERFxgl5EmDXUAyIiIiIiIi6jAERERERERFxGKVgiIiIiIs5QClaWUA+IiIiIiIi4jAIQERERERFxGaVgiYiIiIg4QaNgZQ31gIiIiIiIiMsoABEREREREZdRCpaIiIiIiDOUgpUl1AMiIiIiIiIuowBERERERERcRilYIiIiIiLOUApWllAPiIiIiIiIuIwCEBERERERcRmlYImIiIiIOEEvIswa6gERERERERGXUQAiIiIiIiIuoxQsERERERFnKAUrS6gHREREREREXEYBiIiIiIiIuIxSsEREREREnKEUrCyhHhAREREREXEZBSAiIiIiIuIySsESEREREXGCXkSYNdQDIiIiIiIiLqMAREREREREXEYpWCIiIiIizlAKVpZQD4iIiIiIiLiMAhAREREREXEZpWCJiIiIiDhBo2BlDfWAiIiIiIiIyygAERERERERl1EKloiIiIiIM5SClSXUAyIiIiIiIi6jAERERERERFxGAYiIiIiIiLiMAhAREREREWcYufTnP7DZbHz11Ve0bNmSOnXq0Lt3b44dO+bUugsXLqRatWqcOHHipvapAERERERExE19/fXXzJw5k2HD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kFzSI488okceecTsMFySr6+vQkNDrcY2bNigM2fOKDg42KSoXNeYMWP0xRdfyMPDQx999JG8vLzMDsklxMfHa9iwYRo9erTN+zEc49ixY6pQoYKeffZZnTp1StWrV9eAAQMUEhJidmgu4dSpU5Kk5ORk9e3bV5GRkQoICNCrr77K//9QILADUoDk9m97eHhYjXt6eiotLc2MkIC/5Mcff9TIkSPVpk0b/qfnBL1799aKFSvUsWNHvfbaazp8+LDZIbmE8ePH65577uF6BCdJT0/XqVOnlJiYqDfeeENz585Vo0aN1L9/f+3cudPs8FxCYmKiJGn48OHq0KGD5s+frwcffFADBgwgxygQ2AEpQHJ7X9PT0636YNPS0lSqVCmzwgLuyLfffquhQ4eqSZMmmj59utnhuKTcFpaJEydq//79WrRokSZPnmxyVIXb6tWrtXfvXn355Zdmh+KyPDw8tGfPHpUoUSLvA7eGDRvq+PHjioiIUMuWLU2OsPBzd3eXJPXt21ddunSRJDVo0ECRkZFasGABOYbp2AEpQHK3+uPi4qzG4+Li5OfnZ0ZIwB1ZtGiRBg4cqIceekjz5s3jwlIHunTpktatW6fMzMy8sWLFiql27do27x24fStWrNClS5f08MMPq2nTpmratKkkady4cWrfvr3J0bkOLy8vm93+evXqKTY21qSIXEvu3wz16tWzGq9Tp47Onj1rRkiAFQqQAiQwMFDe3t7atWtX3lh8fLwiIyPVrFkzEyMD7Ld48WJNnDhRzz33nD744AObPzLw18TFxemtt96yupNNRkaGIiMjVbt2bRMjcw3h4eFav369Vq9enfcjSYMGDdLcuXPNDc5FREVFqWnTpjbfD3To0CEuTHeQoKAglS5dWgcOHLAaP3bsmKpVq2ZSVMDvaMEqQDw8PNSzZ0+Fh4erXLly8vf317Rp0+Tn56e2bduaHR7wp06ePKl3331Xbdu21csvv6xLly7lPVayZEn5+PiYGJ1rCAwMVHBwsCZMmKBJkybJ19dXH3/8seLj4/XCCy+YHV6hV6lSpXzHy5cvL39/f4OjcU316tVT3bp1NWHCBI0bN05ly5bVF198of3792v58uVmh+cSSpYsqX79+mn27NmqVKmSGjdurK+++ko7duzQp59+anZ4AAVIQTNo0CBdv35do0ePVmpqqu6//35FRETwKTIKhY0bNyojI0ObNm2y+e6aLl26aMqUKSZF5jrc3Nz0wQcf6P3339cbb7yhhIQENWvWTJ9//rmqVKlidnjAnypWrJg+/vhjhYeH64033lB8fLyCgoK0YMEC1a9f3+zwXMaAAQNUqlSpvO8Tq127tmbNmqXmzZubHRogN4vFYjE7CAAAAABFA9eAAAAAADAMBQgAAAAAw1CAAAAAADAMBQgAAAAAw1CAAAAAADAMBQgAAAAAw1CAAAAAADAMBQgAAAAAw1CAAEAhk5aWpqCgIDVt2lQTJ040OxwAAG4LBQgAFDJubm5auHChGjdurEWLFunkyZNmhwQAgN0oQACgkPHw8ND999+vfv36SZIOHz5sckQAANiPAgQACqlatWpJko4cOWJyJAAA2I8CBAAKqXnz5kmSoqKiTI4EAAD7UYAAQCG0fft2/ec//1GZMmUUGRlpdjgAANiNAgQACpn4+HiNHDlSbdq0UY8ePXT58mXFxsaaHRYAAHahAAGAQmbChAm6fv26Jk2apKCgIEm0YQEACg8KEAAoRL7++mutW7dO77zzjsqVK5dXgHAhOgCgsKAAAYBC4sKFCxo3bpy6d++u1q1bS5KqVq0qX19frgMBABQaFCAAUEiMGTNGZcqU0YgRI6zGGzRoQAsWAKDQoAABgEJg2bJl2rp1q6ZOnSovLy+rx4KCgnTmzBklJiaaFB0AAPZzs1gsFrODAAAAAFA0sAMCAAAAwDAUIAAAAAAMQwECAAAAwDAUIAAAAAAMQwECAAAAwDAUIAAAAAAMQwECAAAAwDAUIAAAAAAMQwECAAAAwDAUIAAAAAAMQwECAAAAwDAUIAAAAAAM8//cSy9IEvdMCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_197_2.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# visual representation of grid search\n", + "# uses seaborn heatmap, you can also do this with matplotlib imshow\n", + "import seaborn as sns\n", + "\n", + "sns.set()\n", + "\n", + "train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " dnn = DNN_numpy[i][j]\n", + " \n", + " train_pred = dnn.predict(X_train) \n", + " test_pred = dnn.predict(X_test)\n", + "\n", + " train_accuracy[i][j] = accuracy_score(Y_train, train_pred)\n", + " test_accuracy[i][j] = accuracy_score(Y_test, test_pred)\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(train_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Training Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "fb02adc3", + "metadata": { + "editable": true + }, + "source": [ + "## scikit-learn implementation\n", + "\n", + "**scikit-learn** focuses more\n", + "on traditional machine learning methods, such as regression,\n", + "clustering, decision trees, etc. As such, it has only two types of\n", + "neural networks: Multi Layer Perceptron outputting continuous values,\n", + "*MPLRegressor*, and Multi Layer Perceptron outputting labels,\n", + "*MLPClassifier*. We will see how simple it is to use these classes.\n", + "\n", + "**scikit-learn** implements a few improvements from our neural network,\n", + "such as early stopping, a varying learning rate, different\n", + "optimization methods, etc. We would therefore expect a better\n", + "performance overall." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "94531c6e", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.18333333333333332\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.18611111111111112\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.13055555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.24444444444444444\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.23333333333333334\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.12777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.1527777777777778\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9111111111111111\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.8888888888888888\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.8722222222222222\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.8305555555555556\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.8888888888888888\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.8805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8944444444444445\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.975\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9805555555555555\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9777777777777777\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.9444444444444444\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9861111111111112\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.9888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.9722222222222222\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.9527777777777777\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.9027777777777778\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.8583333333333333\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.8722222222222222\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.9055555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.8805555555555555\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.8722222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.8666666666666667\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.08611111111111111\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.17777777777777778\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.08333333333333333\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.08888888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.09444444444444444\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Accuracy score on test set: 0.17222222222222222\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Accuracy score on test set: 0.11666666666666667\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Accuracy score on test set: 0.1388888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Accuracy score on test set: 0.11388888888888889\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Accuracy score on test set: 0.10555555555555556\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Accuracy score on test set: 0.09444444444444444\n", + "\n" + ] + } + ], + "source": [ + "from sklearn.neural_network import MLPClassifier\n", + "# store models for later use\n", + "DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + "\n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic',\n", + " alpha=lmbd, learning_rate_init=eta, max_iter=epochs)\n", + " dnn.fit(X_train, Y_train)\n", + " \n", + " DNN_scikit[i][j] = dnn\n", + " \n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Accuracy score on test set: \", dnn.score(X_test, Y_test))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "1373fc77", + "metadata": { + "editable": true + }, + "source": [ + "## Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2693a59e", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "data": { + "image/png": "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4sWL68SJE5mWnzhxQuXLl89ym61bt2rbtm169NFH1ahRI4/3lixZoi+++EIbNmxQ7dq1FRkZmeVzSdavX6+IiAjlzZtXkjsROjc6I0l79uzRyZMnM0qcnE6nx/bn7t+4mLi4OPXv319VqlTR999/r4oVK8pms+nXX3/VggULMtaLjIz0mFb5nF9//VVVq1ZVsWLF1LlzZ40cOVILFizQ+vXr1aRJk2xL5QAAORc3oQPIdU6dOqW9e/eqR48eqlWrlhwO97WYpUuXSrr4aIY/NGzYUEuXLlVycnLGsm3btl30YYbTp09XcHCw7rnnHl133XUef/r16ye73a6pU6dKct/vceDAAe3YsSNj+5SUFD322GP65ptvVL9+fUnSokWLPD5jzJgxeuWVVyRJERERiomJ8Xh/3bp1/3pse/bs0enTp3X33XercuXKstncPzsXxrpBgwb67bfflJKSkrHtjh07dP/992vTpk2S3PfO3HDDDfr+++/122+/MfoBAFcoRkAA5DqFChVSyZIl9dVXX6l48eLKmzevli1bpokTJ0q6+P0c/vDggw9q3rx56t+/v+677z7Fxsbq3XfflWEYWd7fkJKSoh9++EGtWrVSZGRkpveLFi2qZs2aad68eRo6dKi6deumSZMm6aGHHtKgQYNUsGBBffXVV0pKStJdd92lMmXKqHPnzho9erSSkpJUvXp1LVu2TAsXLsy4D6RNmzZasmSJXn31VbVv315r1671aoas8uXLKyIiQh9//LEcDoccDocWLFig6dOnSzof64cfflh33HGHBgwYoL59+yolJUXvvvuuqlevrpYtW2bsr0ePHrrjjjsUERGhjh07Xka0AQCBxggIgFxp7NixKlasmJ599lk9/vjj+vPPP/XRRx+pQoUKWrNmjaVtKVu2rMaPH6/k5GQNHDhQY8aM0YABA1SkSJGMmaz+adGiRTp9+rRuvPHGbPd56623KikpSbNmzVJERIQmT56sunXr6tVXX9WgQYOUnJysSZMmZdwcP2rUKN19992aNGmSHnjgAS1btkz/+9//MmYO6969uwYMGKB58+ZpwIABWrdund59991/PbbIyEiNHTtWpmlq0KBBGjJkiA4fPqzJkycrT548GbGuVq2aJk2aJJfLpSeeeEIjRoxQnTp1NG7cOI8nytepU0cFChRQly5dFBoaeklxBgDk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SjwrFSxuqH57u1rc6pAj6HxM1/+SpiVT0nTyiKkCRQ016eJQs5sD811KcmX9VHcrbP09VT9/lazjB13KW8hQoxuD1aybe0arvRvT9PnQBN36eKjqdnB/B5ISTC2emKStv6cp8aypAsVtqt02SE1vDc6Ir2maWjEnRWvmp+pUjEuRBQ1VrOtQ+74hypMvMAle6aATAflcyT097uxJdsUclAoUktp2dalzD/eV4O0bDL35tEP9nkpT847un8W0NGnOJJt+X2RT/FmpTEVTXXu7VKOB+/2t642MG9SzcnMfp265+19mcfCDs66ccyfx1dgPOwNfPOJh43KXfpzk1NFDUr5CUvObbGrT3X0RYtcGlz58xqleg+1q9I8YL5js0urFLiWclUpWMNSxt01V6+ec47qhfBYPiskhBq3vFegmZGnzU0cv+n52CciCBQs0cOBAbdiwQaGh5/uOQYMGKSUlRR999JHH+t9//72GDx+un3/+OSPZOHPmjNq0aaNBgwapb9++XrU3xyQgR44c0datW9WmTRu/fUYgE5DcIKclIFejQCYguUEgE5DcIpAJSG6RkxKQq1FOS0CuRiQgl+7dulMua7uNGzfqtttu08KFC1WmTJmM5b169VLVqlX18ssve6w/fPhwbdmyRd98843H8u7du6tWrVqZ1s9OjvlXVKxYMb8mHwAAAADOq1q1qiIiIrRq1aqMZbGxsdq6dasaNGiQaf2oqCjt27dPycnJGcsSExN18ODBbJ8bkpUck4AAAAAAOZnLtOXIP5crODhYffr00ejRo7V48WJt375dTzzxhIoXL64OHTrI6XTq2LFjSkpyP6XylltukSQ9/vjj2r59e8b6wcHB6tatm9efSwICAAAA5FIDBw5Ujx499MILL6hXr16y2+0aP368goODFR0drebNm2vePPfUrEWLFtXXX38t0zTVt29f3XvvvQoKCtKUKVOUN29erz8zx9wDYgXuAfEv7gHxP+4B8S/uAfE/7gHxP+4B8S/uAfG/nHwPyGPrege6CVl6v95XgW7CJeGMEQAAAPCCUzlnRrYrGWk8AAAAAMuQgAAAAACwDCVYAAAAgBdcJiVYvsAICAAAAADLkIAAAAAAsAwlWAAAAIAX/stD/3AeUQQAAABgGRIQAAAAAJahBAsAAADwgosHEfoEIyAAAAAALEMCAgAAAMAylGAB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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_201_0.png" + } + }, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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P6lGjRrKly9fthe6r1u3TrGxsapataok65qTP0tMTPzbdq5evVqPP/64+vfvrzvvvFMlS5aUJL366qsZF7mfb3/mNp4+fVqbN29WgwYNFBMTo169emnmzJnasGGDvv/+e916661/+/4AgLyFEiwAyKRZs2bauXOnatasqbp166pu3bqqU6eOxo4dq/nz50uSHnroId13332SrISlS5cuGjJkiDwej44dOyZJcjj+uoudMWOGGjRooE6dOql58+Y+//r27av4+HjNnTtXknU9x5IlS3xmx9q+fbvuvvtubdy4UU2aNNH+/fu1ffv2jOdTU1N1//3364svvpBkjUAcOXLEpw1r167923isW7dOXq9XDzzwQEby4fF4MsrRvF6vKlWqpEKFCmnhwoU+23799dcaNGiQUlJSJElNmzZVhQoV9Nprr+nUqVPq0aPH374/ACBvIQEBgEyGDBmiffv2afDgwVqwYIGWLFmi+++/X99++23GNRYtWrTQ/Pnz9corr2jFihX6/vvv9c4776hChQoZ6+TPn19btmzRL7/8ouTkZJ/32LBhg3bs2HHRcq0OHTqoQIECGRd5DxkyRKdOndKgQYO0aNEifffdd3rooYdUu3ZttW3bVj179lTZsmX1n//8R7Nnz9aSJUv0wAMPKDk5OWOUoX379vr22281efJkrVixQo899pj27t37t/GoV6+eJGn48OH6+eefNW/ePN1xxx3atm2bJGsUxel06v7779f333+v5557TsuWLdOkSZP09ttvq2/fvhmla5LUq1cv/fLLL2rZsqVKlSp1Kb8aAEAeQAICAJnUqFFDkyZNkmEYeuyxx/TAAw/o+PHjev/993X11VdLkvr06aNnnnlGixcv1j333KNnn31WlStX1pgxYxQWFiZJGjhwoP744w/deeed2rRpk897TJ8+XU6n02emqz8LDw9Xly5d9Ouvv2rr1q2qVauWJkyYIK/Xq4cffljDhw9XgwYN9Mknnyg8PFyxsbGaOHGiGjZsqBdeeEEPPvigUlJSNGHChIwLyp988kldddVVeu211/TAAw8oKirKrxseNm/eXM8++6zWrVunQYMG6aWXXlLp0qUz7h5/vgyrX79+evnll7V69WoNHjxYY8aM0cCBA/XEE0/4vF779u0liYvPASBEGaZpmsFuBAAgdHzyySf69NNPtWTJEoWH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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_201_1.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# optional\n", + "# visual representation of grid search\n", + "# uses seaborn heatmap, could probably do this in matplotlib\n", + "import seaborn as sns\n", + "\n", + "sns.set()\n", + "\n", + "train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " dnn = DNN_scikit[i][j]\n", + " \n", + " train_pred = dnn.predict(X_train) \n", + " test_pred = dnn.predict(X_test)\n", + "\n", + " train_accuracy[i][j] = accuracy_score(Y_train, train_pred)\n", + " test_accuracy[i][j] = accuracy_score(Y_test, test_pred)\n", + "\n", + " \n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(train_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Training Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "a7e93079", + "metadata": { + "editable": true + }, + "source": [ + "## Testing our code for the XOR, OR and AND gates\n", + "\n", + "Last week we discussed three different types of gates, the so-called\n", + "XOR, the OR and the AND gates. Their inputs and outputs can be\n", + "summarized using the following tables, first for the OR gate with\n", + "inputs $x_1$ and $x_2$ and outputs $y$:\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 1
    " + ] + }, + { + "cell_type": "markdown", + "id": "5ed2f79a", + "metadata": { + "editable": true + }, + "source": [ + "## The AND and XOR Gates\n", + "\n", + "The AND gate is defined as\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 0
    1 0 0
    1 1 1
    \n", + "\n", + "And finally we have the XOR gate\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    " + ] + }, + { + "cell_type": "markdown", + "id": "cbf09e4f", + "metadata": { + "editable": true + }, + "source": [ + "## Representing the Data Sets\n", + "\n", + "Our design matrix is defined by the input values $x_1$ and $x_2$. Since we have four possible outputs, our design matrix reads" + ] + }, + { + "cell_type": "markdown", + "id": "fbb06edc", + "metadata": { + "editable": true + }, + "source": [ + "$$\n", + "\\boldsymbol{X}=\\begin{bmatrix} 0 & 0 \\\\\n", + " 0 & 1 \\\\\n", + "\t\t 1 & 0 \\\\\n", + "\t\t 1 & 1 \\end{bmatrix},\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "9859c6a0", + "metadata": { + "editable": true + }, + "source": [ + "while the vector of outputs is $\\boldsymbol{y}^T=[0,1,1,0]$ for the XOR gate, $\\boldsymbol{y}^T=[0,0,0,1]$ for the AND gate and $\\boldsymbol{y}^T=[0,1,1,1]$ for the OR gate." + ] + }, + { + "cell_type": "markdown", + "id": "d71c8649", + "metadata": { + "editable": true + }, + "source": [ + "## Setting up the Neural Network\n", + "\n", + "We define first our design matrix and the various output vectors for the different gates." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "e8dc02bd", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.80625657 0.36420967]\n", + " [0.90297441 0.30170017]\n", + " [0.89823921 0.28566769]\n", + " [0.93420126 0.25920793]]\n", + "[0 0 0 0]\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "Simple code that tests XOR, OR and AND gates with linear regression\n", + "\"\"\"\n", + "\n", + "# import necessary packages\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn import datasets\n", + "\n", + "def sigmoid(x):\n", + " return 1/(1 + np.exp(-x))\n", + "\n", + "def feed_forward(X):\n", + " # weighted sum of inputs to the hidden layer\n", + " z_h = np.matmul(X, hidden_weights) + hidden_bias\n", + " # activation in the hidden layer\n", + " a_h = sigmoid(z_h)\n", + " \n", + " # weighted sum of inputs to the output layer\n", + " z_o = np.matmul(a_h, output_weights) + output_bias\n", + " # softmax output\n", + " # axis 0 holds each input and axis 1 the probabilities of each category\n", + " probabilities = sigmoid(z_o)\n", + " return probabilities\n", + "\n", + "# we obtain a prediction by taking the class with the highest likelihood\n", + "def predict(X):\n", + " probabilities = feed_forward(X)\n", + " return np.argmax(probabilities, axis=1)\n", + "\n", + "# ensure the same random numbers appear every time\n", + "np.random.seed(0)\n", + "\n", + "# Design matrix\n", + "X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64)\n", + "\n", + "# The XOR gate\n", + "yXOR = np.array( [ 0, 1 ,1, 0])\n", + "# The OR gate\n", + "yOR = np.array( [ 0, 1 ,1, 1])\n", + "# The AND gate\n", + "yAND = np.array( [ 0, 0 ,0, 1])\n", + "\n", + "# Defining the neural network\n", + "n_inputs, n_features = X.shape\n", + "n_hidden_neurons = 2\n", + "n_categories = 2\n", + "n_features = 2\n", + "\n", + "# we make the weights normally distributed using numpy.random.randn\n", + "\n", + "# weights and bias in the hidden layer\n", + "hidden_weights = np.random.randn(n_features, n_hidden_neurons)\n", + "hidden_bias = np.zeros(n_hidden_neurons) + 0.01\n", + "\n", + "# weights and bias in the output layer\n", + "output_weights = np.random.randn(n_hidden_neurons, n_categories)\n", + "output_bias = np.zeros(n_categories) + 0.01\n", + "\n", + "probabilities = feed_forward(X)\n", + "print(probabilities)\n", + "\n", + "\n", + "predictions = predict(X)\n", + "print(predictions)" + ] + }, + { + "cell_type": "markdown", + "id": "87cfac77", + "metadata": { + "editable": true + }, + "source": [ + "Not an impressive result, but this was our first forward pass with randomly assigned weights. Let us now add the full network with the back-propagation algorithm discussed above." + ] + }, + { + "cell_type": "markdown", + "id": "fa50c112", + "metadata": { + "editable": true + }, + "source": [ + "## The Code using Scikit-Learn" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6673546e", + "metadata": { + "collapsed": false, + "editable": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Learning rate = 1e-05\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1e-05\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.0001\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.001\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.25\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.75\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.75\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.01\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 1.0\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 1.0\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 0.1\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.75\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.75\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.75\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 1.0\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 1e-05\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.0001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.001\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.01\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 0.1\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 1.0\n", + "Accuracy score on data set: 0.5\n", + "\n", + "Learning rate = 10.0\n", + "Lambda = 10.0\n", + "Accuracy score on data set: 0.5\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n", + "/Users/mhjensen/miniforge3/envs/myenv/lib/python3.9/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (100) reached and the optimization hasn't converged yet.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyAAAANbCAYAAAC6lftqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAA9hAAAPYQGoP6dpAABrR0lEQVR4nO3dd3xUddbH8e9QJgMpQISQSOgEYpQSDEVpIqDriuIKPsqKC4tEmrCCCzYUUGwLigKCq1J0kQWlWigi7q4U6ShCCE1aME0gCSE9mecPJLvjBBhg7r2Z5PN+XvN6mN/cO/fk7BA5c8691+Z0Op0CAAAAABNUsDoAAAAAAOUHBQgAAAAA01CAAAAAADANBQgAAAAA01CAAAAAADANBQgAAAAA01CAAAAAADANBQgAAAAA01CAAICBuNcrAACuKlkdAACY6emnn9ayZcsuuU2dOnX0zTffXPOxPv30Ux0+fFhPP/30ZbddvHixnnvuOXXq1EkffPDBNR8bAIDSyubk6zkA5cjx48d1+vTp4uczZ85UXFycZsyYUbxmt9sVFRV1zce6/fbb1bZtW7322muX3bZv377KzMzUoUOH9NVXX6lu3brXfHwAAEojOiAAypV69eqpXr16xc+Dg4Nlt9vVqlUry2I6cuSIdu7cqffee09jxozRJ598oieffNKyeAAAMBLngABACQ4cOKDBgwerdevWat26tYYPH64TJ064bPOPf/xDv/vd79S8eXN16tRJEyZMUGZmpqTz3Y+TJ09q2bJlatasmRISEi56rCVLligwMFC33HKLfve732nJkiXKy8tz227Pnj0aNGiQbr75ZrVv316jRo1SYmJi8eunTp3Ss88+q1tvvVXR0dF6+OGHtWPHjuLXmzVrpunTp7u85/Tp09WsWbPi508//bT69++v8ePHKyYmRn/4wx9UUFCg06dPa+LEieratatuuukmtW3bVsOHD3f7ub788kvdf//9atmypW677TZNnjxZeXl5OnjwoJo1a6ZFixa5bJ+cnKwbbrjhsmNxAICygwIEAH7jyJEjeuihh3Tq1Cm99tprevnll3XixAn17dtXp06dknT+H9qvv/66Hn74Yc2ePVvDhw/XihUrNGnSJEnSjBkzVKtWLXXp0kWLFi1SSEhIiccqLCzUihUr9Pvf/152u13333+/Tp06pa+//tplu/j4ePXt21fZ2dl67bXX9OKLLyouLk4DBw5Ufn6+srKy9NBDD2nTpk168sknNWPGDPn7+2vQoEE6fPjwFf3827dv17FjxzR9+nQNHz5cFStW1ODBg7Vx40Y9+eSTmj17toYNG6ZNmzbphRdeKN5v4cKFGj16tG644QbNmDFDgwcP1oIFCzRhwgRFRESoZcuWWrFihcuxVqxYIYfDoTvvvPOKYgQA+C5GsADgN2bMmCGHw6F58+YpICBAknTLLbeoe/fu+uCDD/TUU09py5YtqlOnjh5++GFVqFBBbdu2VdWqVXXmzBlJUlRUlOx2u4KDgy853vXtt98qJSVFvXv3liS1atVKTZo00T//+U/9/ve/L95u5syZqlatmubMmSM/Pz9JUmhoqJ544gnt379fP/zwg06cOKHly5crMjJSkhQTE6P77rtP27ZtU+PGjT3++QsKCjRx4kTVr19f0vkuRZUqVfTUU08pJiZGktSuXTslJCRo4cKFkqSioiJNnz5dPXr00Msvv1z8Xrm5uVq2bJny8vLUu3dvvfDCCzpx4kTxOS7Lly/XXXfdpapVq3ocHwDAt9EBAYDf2Lx5s9q1ayeHw6GCggIVFBQoICBAMTEx2rRpkySpffv2Onr0qO6///7iE9nvuece9e/f/4qOtWTJEtWvX18NGzZURkaGMjIydNddd2nr1q0unYsdO3aoc+fOxcWHJLVo0ULffPONbrrpJm3fvl3h4eHFxYck+fn5adWqVXrooYeuKCaHw+Fynkzt2rX10UcfKSYmRj///LO+++47zZ8/Xzt37lR+fr6k812jX375Rd27d3d5rwEDBmjFihWy2+26++67VaVKleIuyO7du3X48GHdf//9VxQfAMC30QEBgN9IS0vTypUrtXLlSrfXgoODJUm///3vVVRUpAULFmjGjBl6++23VadOHT355JO6++67PTrO6dOn9e9//1v5+flq06aN2+uLFi3Ss88+WxzTddddd8mYL/X6lbjuuutks9lc1j777DO9+eabSkxMVPXq1RUZGSmHw+Fy/Av7XkxAQIB+97vf6bPPPtPjjz+uZcuWqX79+sVdFQBA+UABAgC/ERgYqFtvvVV//vOf3V6rVOm/vzZ79uypnj176uzZs9qwYYPef/99jRkzRjExMapdu/Zlj7NixQrl5+drxowZCgoKcnntnXfe0fLlyzV6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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": { + "filenames": { + "image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/week41_211_2.png" + } + }, + "output_type": "display_data" + } + ], + "source": [ + "# import necessary packages\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.neural_network import MLPClassifier\n", + "from sklearn.metrics import accuracy_score\n", + "import seaborn as sns\n", + "\n", + "# ensure the same random numbers appear every time\n", + "np.random.seed(0)\n", + "\n", + "# Design matrix\n", + "X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64)\n", + "\n", + "# The XOR gate\n", + "yXOR = np.array( [ 0, 1 ,1, 0])\n", + "# The OR gate\n", + "yOR = np.array( [ 0, 1 ,1, 1])\n", + "# The AND gate\n", + "yAND = np.array( [ 0, 0 ,0, 1])\n", + "\n", + "# Defining the neural network\n", + "n_inputs, n_features = X.shape\n", + "n_hidden_neurons = 2\n", + "n_categories = 2\n", + "n_features = 2\n", + "\n", + "eta_vals = np.logspace(-5, 1, 7)\n", + "lmbd_vals = np.logspace(-5, 1, 7)\n", + "# store models for later use\n", + "DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object)\n", + "epochs = 100\n", + "\n", + "for i, eta in enumerate(eta_vals):\n", + " for j, lmbd in enumerate(lmbd_vals):\n", + " dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic',\n", + " alpha=lmbd, learning_rate_init=eta, max_iter=epochs)\n", + " dnn.fit(X, yXOR)\n", + " DNN_scikit[i][j] = dnn\n", + " print(\"Learning rate = \", eta)\n", + " print(\"Lambda = \", lmbd)\n", + " print(\"Accuracy score on data set: \", dnn.score(X, yXOR))\n", + " print()\n", + "\n", + "sns.set()\n", + "test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals)))\n", + "for i in range(len(eta_vals)):\n", + " for j in range(len(lmbd_vals)):\n", + " dnn = DNN_scikit[i][j]\n", + " test_pred = dnn.predict(X)\n", + " test_accuracy[i][j] = accuracy_score(yXOR, test_pred)\n", + "\n", + "fig, ax = plt.subplots(figsize = (10, 10))\n", + "sns.heatmap(test_accuracy, annot=True, ax=ax, cmap=\"viridis\")\n", + "ax.set_title(\"Test Accuracy\")\n", + "ax.set_ylabel(\"$\\eta$\")\n", + "ax.set_xlabel(\"$\\lambda$\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file diff --git a/doc/LectureNotes/_build/jupyter_execute/week41.py b/doc/LectureNotes/_build/jupyter_execute/week41.py new file mode 100644 index 000000000..ac72c936e --- /dev/null +++ b/doc/LectureNotes/_build/jupyter_execute/week41.py @@ -0,0 +1,2272 @@ +#!/usr/bin/env python +# coding: utf-8 + +# +# + +# # Week 41 Neural networks and constructing a neural network code +# **Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Isotope Beams, Michigan State University +# +# Date: **Week 41** + +# ## Plan for week 41 +# +# **Material for the active learning sessions on Tuesday and Wednesday.** +# +# * Exercise on writing your own stochastic gradient and gradient descent codes. This exercise continues next week with studies of automatic differentiation +# +# * One lecture at the beginning of each session on the material from weeks 39 and 40 and how to write your own gradient descent code +# +# * Discussion of project 2 +# +# * Your task before the sessions: revisit the material from weeks 39 and 40 and in particular the material from week 40 on stochastic gradient descent +# +# +# +# **Material for the lecture on Thursday October 12, 2023.** +# +# * Neural Networks, setting up the basic steps, from the simple perceptron model to the multi-layer perceptron model. +# +# * Building our own Feed-forward Neural Network +# +# * Readings and Videos: +# +# * These lecture notes +# +# * For neural networks we recommend Goodfellow et al chapter 6. +# +# * [Neural Networks demystified](https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU&ab_channel=WelchLabs) +# +# * [Building Neural Networks from scratch](https://www.youtube.com/watch?v=Wo5dMEP_BbI&list=PLQVvvaa0QuDcjD5BAw2DxE6OF2tius3V3&ab_channel=sentdex) +# +# * [Video on Neural Networks](https://www.youtube.com/watch?v=CqOfi41LfDw) +# +# * [Video on the back propagation algorithm](https://www.youtube.com/watch?v=Ilg3gGewQ5U) +# +# I also recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at . + +# ## Lecture Thursday October 12 + +# ## Introduction to Neural networks +# +# Artificial neural networks are computational systems that can learn to +# perform tasks by considering examples, generally without being +# programmed with any task-specific rules. It is supposed to mimic a +# biological system, wherein neurons interact by sending signals in the +# form of mathematical functions between layers. All layers can contain +# an arbitrary number of neurons, and each connection is represented by +# a weight variable. + +# ## Artificial neurons +# +# The field of artificial neural networks has a long history of +# development, and is closely connected with the advancement of computer +# science and computers in general. A model of artificial neurons was +# first developed by McCulloch and Pitts in 1943 to study signal +# processing in the brain and has later been refined by others. The +# general idea is to mimic neural networks in the human brain, which is +# composed of billions of neurons that communicate with each other by +# sending electrical signals. Each neuron accumulates its incoming +# signals, which must exceed an activation threshold to yield an +# output. If the threshold is not overcome, the neuron remains inactive, +# i.e. has zero output. +# +# This behaviour has inspired a simple mathematical model for an artificial neuron. + +# +#
    +# +# $$ +# \begin{equation} +# y = f\left(\sum_{i=1}^n w_ix_i\right) = f(u) +# \label{artificialNeuron} \tag{1} +# \end{equation} +# $$ + +# Here, the output $y$ of the neuron is the value of its activation function, which have as input +# a weighted sum of signals $x_i, \dots ,x_n$ received by $n$ other neurons. +# +# Conceptually, it is helpful to divide neural networks into four +# categories: +# 1. general purpose neural networks for supervised learning, +# +# 2. neural networks designed specifically for image processing, the most prominent example of this class being Convolutional Neural Networks (CNNs), +# +# 3. neural networks for sequential data such as Recurrent Neural Networks (RNNs), and +# +# 4. neural networks for unsupervised learning such as Deep Boltzmann Machines. +# +# In natural science, DNNs and CNNs have already found numerous +# applications. In statistical physics, they have been applied to detect +# phase transitions in 2D Ising and Potts models, lattice gauge +# theories, and different phases of polymers, or solving the +# Navier-Stokes equation in weather forecasting. Deep learning has also +# found interesting applications in quantum physics. Various quantum +# phase transitions can be detected and studied using DNNs and CNNs, +# topological phases, and even non-equilibrium many-body +# localization. Representing quantum states as DNNs quantum state +# tomography are among some of the impressive achievements to reveal the +# potential of DNNs to facilitate the study of quantum systems. +# +# In quantum information theory, it has been shown that one can perform +# gate decompositions with the help of neural. +# +# The applications are not limited to the natural sciences. There is a +# plethora of applications in essentially all disciplines, from the +# humanities to life science and medicine. + +# ## Neural network types +# +# An artificial neural network (ANN), is a computational model that +# consists of layers of connected neurons, or nodes or units. We will +# refer to these interchangeably as units or nodes, and sometimes as +# neurons. +# +# It is supposed to mimic a biological nervous system by letting each +# neuron interact with other neurons by sending signals in the form of +# mathematical functions between layers. A wide variety of different +# ANNs have been developed, but most of them consist of an input layer, +# an output layer and eventual layers in-between, called *hidden +# layers*. All layers can contain an arbitrary number of nodes, and each +# connection between two nodes is associated with a weight variable. +# +# Neural networks (also called neural nets) are neural-inspired +# nonlinear models for supervised learning. As we will see, neural nets +# can be viewed as natural, more powerful extensions of supervised +# learning methods such as linear and logistic regression and soft-max +# methods we discussed earlier. + +# ## Feed-forward neural networks +# +# The feed-forward neural network (FFNN) was the first and simplest type +# of ANNs that were devised. In this network, the information moves in +# only one direction: forward through the layers. +# +# Nodes are represented by circles, while the arrows display the +# connections between the nodes, including the direction of information +# flow. Additionally, each arrow corresponds to a weight variable +# (figure to come). We observe that each node in a layer is connected +# to *all* nodes in the subsequent layer, making this a so-called +# *fully-connected* FFNN. + +# ## Convolutional Neural Network +# +# A different variant of FFNNs are *convolutional neural networks* +# (CNNs), which have a connectivity pattern inspired by the animal +# visual cortex. Individual neurons in the visual cortex only respond to +# stimuli from small sub-regions of the visual field, called a receptive +# field. This makes the neurons well-suited to exploit the strong +# spatially local correlation present in natural images. The response of +# each neuron can be approximated mathematically as a convolution +# operation. (figure to come) +# +# Convolutional neural networks emulate the behaviour of neurons in the +# visual cortex by enforcing a *local* connectivity pattern between +# nodes of adjacent layers: Each node in a convolutional layer is +# connected only to a subset of the nodes in the previous layer, in +# contrast to the fully-connected FFNN. Often, CNNs consist of several +# convolutional layers that learn local features of the input, with a +# fully-connected layer at the end, which gathers all the local data and +# produces the outputs. They have wide applications in image and video +# recognition. + +# ## Recurrent neural networks +# +# So far we have only mentioned ANNs where information flows in one +# direction: forward. *Recurrent neural networks* on the other hand, +# have connections between nodes that form directed *cycles*. This +# creates a form of internal memory which are able to capture +# information on what has been calculated before; the output is +# dependent on the previous computations. Recurrent NNs make use of +# sequential information by performing the same task for every element +# in a sequence, where each element depends on previous elements. An +# example of such information is sentences, making recurrent NNs +# especially well-suited for handwriting and speech recognition. + +# ## Other types of networks +# +# There are many other kinds of ANNs that have been developed. One type +# that is specifically designed for interpolation in multidimensional +# space is the radial basis function (RBF) network. RBFs are typically +# made up of three layers: an input layer, a hidden layer with +# non-linear radial symmetric activation functions and a linear output +# layer (''linear'' here means that each node in the output layer has a +# linear activation function). The layers are normally fully-connected +# and there are no cycles, thus RBFs can be viewed as a type of +# fully-connected FFNN. They are however usually treated as a separate +# type of NN due the unusual activation functions. + +# ## Multilayer perceptrons +# +# One uses often so-called fully-connected feed-forward neural networks +# with three or more layers (an input layer, one or more hidden layers +# and an output layer) consisting of neurons that have non-linear +# activation functions. +# +# Such networks are often called *multilayer perceptrons* (MLPs). + +# ## Why multilayer perceptrons? +# +# According to the *Universal approximation theorem*, a feed-forward +# neural network with just a single hidden layer containing a finite +# number of neurons can approximate a continuous multidimensional +# function to arbitrary accuracy, assuming the activation function for +# the hidden layer is a **non-constant, bounded and +# monotonically-increasing continuous function**. +# +# Note that the requirements on the activation function only applies to +# the hidden layer, the output nodes are always assumed to be linear, so +# as to not restrict the range of output values. + +# ## Illustration of a single perceptron model and a multi-perceptron model +# +# +# +# +#

    Figure 1: In a) we show a single perceptron model while in b) we dispay a network with two hidden layers, an input layer and an output layer.

    +# + +# ## Examples of XOR, OR and AND gates +# +# Let us first try to fit various gates using standard linear +# regression. The gates we are thinking of are the classical XOR, OR and +# AND gates, well-known elements in computer science. The tables here +# show how we can set up the inputs $x_1$ and $x_2$ in order to yield a +# specific target $y_i$. + +# In[1]: + + +""" +Simple code that tests XOR, OR and AND gates with linear regression +""" + +import numpy as np +# Design matrix +X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) +print(f"The X.TX matrix:{X.T @ X}") +Xinv = np.linalg.pinv(X.T @ X) +print(f"The invers of X.TX matrix:{Xinv}") + +# The XOR gate +yXOR = np.array( [ 0, 1 ,1, 0]) +ThetaXOR = Xinv @ X.T @ yXOR +print(f"The values of theta for the XOR gate:{ThetaXOR}") +print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") + + +# The OR gate +yOR = np.array( [ 0, 1 ,1, 1]) +ThetaOR = Xinv @ X.T @ yOR +print(f"The values of theta for the OR gate:{ThetaOR}") +print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") + + +# The OR gate +yAND = np.array( [ 0, 0 ,0, 1]) +ThetaAND = Xinv @ X.T @ yAND +print(f"The values of theta for the AND gate:{ThetaAND}") +print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") + + +# What is happening here? + +# ## Does Logistic Regression do a better Job? + +# In[2]: + + +get_ipython().run_line_magic('matplotlib', 'inline') + +""" +Simple code that tests XOR and OR gates with linear regression +and logistic regression +""" + +import matplotlib.pyplot as plt +from sklearn.linear_model import LogisticRegression +import numpy as np + +# Design matrix +X = np.array([ [1, 0, 0], [1, 0, 1], [1, 1, 0],[1, 1, 1]],dtype=np.float64) +print(f"The X.TX matrix:{X.T @ X}") +Xinv = np.linalg.pinv(X.T @ X) +print(f"The invers of X.TX matrix:{Xinv}") + +# The XOR gate +yXOR = np.array( [ 0, 1 ,1, 0]) +ThetaXOR = Xinv @ X.T @ yXOR +print(f"The values of theta for the XOR gate:{ThetaXOR}") +print(f"The linear regression prediction for the XOR gate:{X @ ThetaXOR}") + + +# The OR gate +yOR = np.array( [ 0, 1 ,1, 1]) +ThetaOR = Xinv @ X.T @ yOR +print(f"The values of theta for the OR gate:{ThetaOR}") +print(f"The linear regression prediction for the OR gate:{X @ ThetaOR}") + + +# The OR gate +yAND = np.array( [ 0, 0 ,0, 1]) +ThetaAND = Xinv @ X.T @ yAND +print(f"The values of theta for the AND gate:{ThetaAND}") +print(f"The linear regression prediction for the AND gate:{X @ ThetaAND}") + +# Now we change to logistic regression + + +# Logistic Regression +logreg = LogisticRegression() +logreg.fit(X, yOR) +print("Test set accuracy with Logistic Regression for OR gate: {:.2f}".format(logreg.score(X,yOR))) + +logreg.fit(X, yXOR) +print("Test set accuracy with Logistic Regression for XOR gate: {:.2f}".format(logreg.score(X,yXOR))) + + +logreg.fit(X, yAND) +print("Test set accuracy with Logistic Regression for AND gate: {:.2f}".format(logreg.score(X,yAND))) + + +# Not exactly impressive, but somewhat better. + +# ## Adding Neural Networks + +# In[3]: + + + +# and now neural networks with Scikit-Learn and the XOR + +from sklearn.neural_network import MLPClassifier +from sklearn.datasets import make_classification +X, yXOR = make_classification(n_samples=100, random_state=1) +FFNN = MLPClassifier(random_state=1, max_iter=300).fit(X, yXOR) +FFNN.predict_proba(X) +print(f"Test set accuracy with Feed Forward Neural Network for XOR gate:{FFNN.score(X, yXOR)}") + + +# ## Mathematical model +# +# The output $y$ is produced via the activation function $f$ + +# $$ +# y = f\left(\sum_{i=1}^n w_ix_i + b_i\right) = f(z), +# $$ + +# This function receives $x_i$ as inputs. +# Here the activation $z=(\sum_{i=1}^n w_ix_i+b_i)$. +# In an FFNN of such neurons, the *inputs* $x_i$ are the *outputs* of +# the neurons in the preceding layer. Furthermore, an MLP is +# fully-connected, which means that each neuron receives a weighted sum +# of the outputs of *all* neurons in the previous layer. + +# ## Mathematical model +# +# First, for each node $i$ in the first hidden layer, we calculate a weighted sum $z_i^1$ of the input coordinates $x_j$, + +# +#
    +# +# $$ +# \begin{equation} z_i^1 = \sum_{j=1}^{M} w_{ij}^1 x_j + b_i^1 +# \label{_auto1} \tag{2} +# \end{equation} +# $$ + +# Here $b_i$ is the so-called bias which is normally needed in +# case of zero activation weights or inputs. How to fix the biases and +# the weights will be discussed below. The value of $z_i^1$ is the +# argument to the activation function $f_i$ of each node $i$, The +# variable $M$ stands for all possible inputs to a given node $i$ in the +# first layer. We define the output $y_i^1$ of all neurons in layer 1 as + +# +#
    +# +# $$ +# \begin{equation} +# y_i^1 = f(z_i^1) = f\left(\sum_{j=1}^M w_{ij}^1 x_j + b_i^1\right) +# \label{outputLayer1} \tag{3} +# \end{equation} +# $$ + +# where we assume that all nodes in the same layer have identical +# activation functions, hence the notation $f$. In general, we could assume in the more general case that different layers have different activation functions. +# In this case we would identify these functions with a superscript $l$ for the $l$-th layer, + +# +#
    +# +# $$ +# \begin{equation} +# y_i^l = f^l(u_i^l) = f^l\left(\sum_{j=1}^{N_{l-1}} w_{ij}^l y_j^{l-1} + b_i^l\right) +# \label{generalLayer} \tag{4} +# \end{equation} +# $$ + +# where $N_l$ is the number of nodes in layer $l$. When the output of +# all the nodes in the first hidden layer are computed, the values of +# the subsequent layer can be calculated and so forth until the output +# is obtained. + +# ## Mathematical model +# +# The output of neuron $i$ in layer 2 is thus, + +# +#
    +# +# $$ +# \begin{equation} +# y_i^2 = f^2\left(\sum_{j=1}^N w_{ij}^2 y_j^1 + b_i^2\right) +# \label{_auto2} \tag{5} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# = f^2\left[\sum_{j=1}^N w_{ij}^2f^1\left(\sum_{k=1}^M w_{jk}^1 x_k + b_j^1\right) + b_i^2\right] +# \label{outputLayer2} \tag{6} +# \end{equation} +# $$ + +# where we have substituted $y_k^1$ with the inputs $x_k$. Finally, the ANN output reads + +# +#
    +# +# $$ +# \begin{equation} +# y_i^3 = f^3\left(\sum_{j=1}^N w_{ij}^3 y_j^2 + b_i^3\right) +# \label{_auto3} \tag{7} +# \end{equation} +# $$ + +# +#
    +# +# $$ +# \begin{equation} +# = f_3\left[\sum_{j} w_{ij}^3 f^2\left(\sum_{k} w_{jk}^2 f^1\left(\sum_{m} w_{km}^1 x_m + b_k^1\right) + b_j^2\right) +# + b_1^3\right] +# \label{_auto4} \tag{8} +# \end{equation} +# $$ + +# ## Mathematical model +# +# We can generalize this expression to an MLP with $l$ hidden +# layers. The complete functional form is, + +# +#
    +# +# $$ +# \begin{equation} +# y^{l+1}_i = f^{l+1}\left[\!\sum_{j=1}^{N_l} w_{ij}^3 f^l\left(\sum_{k=1}^{N_{l-1}}w_{jk}^{l-1}\left(\dots f^1\left(\sum_{n=1}^{N_0} w_{mn}^1 x_n+ b_m^1\right)\dots\right)+b_k^2\right)+b_1^3\right] +# \label{completeNN} \tag{9} +# \end{equation} +# $$ + +# which illustrates a basic property of MLPs: The only independent +# variables are the input values $x_n$. + +# ## Mathematical model +# +# This confirms that an MLP, despite its quite convoluted mathematical +# form, is nothing more than an analytic function, specifically a +# mapping of real-valued vectors $\hat{x} \in \mathbb{R}^n \rightarrow +# \hat{y} \in \mathbb{R}^m$. +# +# Furthermore, the flexibility and universality of an MLP can be +# illustrated by realizing that the expression is essentially a nested +# sum of scaled activation functions of the form + +# +#
    +# +# $$ +# \begin{equation} +# f(x) = c_1 f(c_2 x + c_3) + c_4 +# \label{_auto5} \tag{10} +# \end{equation} +# $$ + +# where the parameters $c_i$ are weights and biases. By adjusting these +# parameters, the activation functions can be shifted up and down or +# left and right, change slope or be rescaled which is the key to the +# flexibility of a neural network. + +# ### Matrix-vector notation +# +# We can introduce a more convenient notation for the activations in an A NN. +# +# Additionally, we can represent the biases and activations +# as layer-wise column vectors $\hat{b}_l$ and $\hat{y}_l$, so that the $i$-th element of each vector +# is the bias $b_i^l$ and activation $y_i^l$ of node $i$ in layer $l$ respectively. +# +# We have that $\mathrm{W}_l$ is an $N_{l-1} \times N_l$ matrix, while $\hat{b}_l$ and $\hat{y}_l$ are $N_l \times 1$ column vectors. +# With this notation, the sum becomes a matrix-vector multiplication, and we can write +# the equation for the activations of hidden layer 2 (assuming three nodes for simplicity) as + +# +#
    +# +# $$ +# \begin{equation} +# \hat{y}_2 = f_2(\mathrm{W}_2 \hat{y}_{1} + \hat{b}_{2}) = +# f_2\left(\left[\begin{array}{ccc} +# w^2_{11} &w^2_{12} &w^2_{13} \\ +# w^2_{21} &w^2_{22} &w^2_{23} \\ +# w^2_{31} &w^2_{32} &w^2_{33} \\ +# \end{array} \right] \cdot +# \left[\begin{array}{c} +# y^1_1 \\ +# y^1_2 \\ +# y^1_3 \\ +# \end{array}\right] + +# \left[\begin{array}{c} +# b^2_1 \\ +# b^2_2 \\ +# b^2_3 \\ +# \end{array}\right]\right). +# \label{_auto6} \tag{11} +# \end{equation} +# $$ + +# ### Matrix-vector notation and activation +# +# The activation of node $i$ in layer 2 is + +# +#
    +# +# $$ +# \begin{equation} +# y^2_i = f_2\Bigr(w^2_{i1}y^1_1 + w^2_{i2}y^1_2 + w^2_{i3}y^1_3 + b^2_i\Bigr) = +# f_2\left(\sum_{j=1}^3 w^2_{ij} y_j^1 + b^2_i\right). +# \label{_auto7} \tag{12} +# \end{equation} +# $$ + +# This is not just a convenient and compact notation, but also a useful +# and intuitive way to think about MLPs: The output is calculated by a +# series of matrix-vector multiplications and vector additions that are +# used as input to the activation functions. For each operation +# $\mathrm{W}_l \hat{y}_{l-1}$ we move forward one layer. + +# ### Activation functions +# +# A property that characterizes a neural network, other than its +# connectivity, is the choice of activation function(s). As described +# in, the following restrictions are imposed on an activation function +# for a FFNN to fulfill the universal approximation theorem +# +# * Non-constant +# +# * Bounded +# +# * Monotonically-increasing +# +# * Continuous + +# ### Activation functions, Logistic and Hyperbolic ones +# +# The second requirement excludes all linear functions. Furthermore, in +# a MLP with only linear activation functions, each layer simply +# performs a linear transformation of its inputs. +# +# Regardless of the number of layers, the output of the NN will be +# nothing but a linear function of the inputs. Thus we need to introduce +# some kind of non-linearity to the NN to be able to fit non-linear +# functions Typical examples are the logistic *Sigmoid* + +# $$ +# f(x) = \frac{1}{1 + e^{-x}}, +# $$ + +# and the *hyperbolic tangent* function + +# $$ +# f(x) = \tanh(x) +# $$ + +# ### Relevance +# +# The *sigmoid* function are more biologically plausible because the +# output of inactive neurons are zero. Such activation function are +# called *one-sided*. However, it has been shown that the hyperbolic +# tangent performs better than the sigmoid for training MLPs. has +# become the most popular for *deep neural networks* + +# In[4]: + + +"""The sigmoid function (or the logistic curve) is a +function that takes any real number, z, and outputs a number (0,1). +It is useful in neural networks for assigning weights on a relative scale. +The value z is the weighted sum of parameters involved in the learning algorithm.""" + +import numpy +import matplotlib.pyplot as plt +import math as mt + +z = numpy.arange(-5, 5, .1) +sigma_fn = numpy.vectorize(lambda z: 1/(1+numpy.exp(-z))) +sigma = sigma_fn(z) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.plot(z, sigma) +ax.set_ylim([-0.1, 1.1]) +ax.set_xlim([-5,5]) +ax.grid(True) +ax.set_xlabel('z') +ax.set_title('sigmoid function') + +plt.show() + +"""Step Function""" +z = numpy.arange(-5, 5, .02) +step_fn = numpy.vectorize(lambda z: 1.0 if z >= 0.0 else 0.0) +step = step_fn(z) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.plot(z, step) +ax.set_ylim([-0.5, 1.5]) +ax.set_xlim([-5,5]) +ax.grid(True) +ax.set_xlabel('z') +ax.set_title('step function') + +plt.show() + +"""Sine Function""" +z = numpy.arange(-2*mt.pi, 2*mt.pi, 0.1) +t = numpy.sin(z) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.plot(z, t) +ax.set_ylim([-1.0, 1.0]) +ax.set_xlim([-2*mt.pi,2*mt.pi]) +ax.grid(True) +ax.set_xlabel('z') +ax.set_title('sine function') + +plt.show() + +"""Plots a graph of the squashing function used by a rectified linear +unit""" +z = numpy.arange(-2, 2, .1) +zero = numpy.zeros(len(z)) +y = numpy.max([zero, z], axis=0) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.plot(z, y) +ax.set_ylim([-2.0, 2.0]) +ax.set_xlim([-2.0, 2.0]) +ax.grid(True) +ax.set_xlabel('z') +ax.set_title('Rectified linear unit') + +plt.show() + + +# ## The multilayer perceptron (MLP) +# +# The multilayer perceptron is a very popular, and easy to implement approach, to deep learning. It consists of +# 1. A neural network with one or more layers of nodes between the input and the output nodes. +# +# 2. The multilayer network structure, or architecture, or topology, consists of an input layer, one or more hidden layers, and one output layer. +# +# 3. The input nodes pass values to the first hidden layer, its nodes pass the information on to the second and so on till we reach the output layer. +# +# As a convention it is normal to call a network with one layer of input units, one layer of hidden +# units and one layer of output units as a two-layer network. A network with two layers of hidden units is called a three-layer network etc etc. +# +# For an MLP network there is no direct connection between the output nodes/neurons/units and the input nodes/neurons/units. +# Hereafter we will call the various entities of a layer for nodes. +# There are also no connections within a single layer. +# +# The number of input nodes does not need to equal the number of output +# nodes. This applies also to the hidden layers. Each layer may have its +# own number of nodes and activation functions. +# +# The hidden layers have their name from the fact that they are not +# linked to observables and as we will see below when we define the +# so-called activation $\hat{z}$, we can think of this as a basis +# expansion of the original inputs $\hat{x}$. The difference however +# between neural networks and say linear regression is that now these +# basis functions (which will correspond to the weights in the network) +# are learned from data. This results in an important difference between +# neural networks and deep learning approaches on one side and methods +# like logistic regression or linear regression and their modifications on the other side. + +# ## From one to many layers, the universal approximation theorem +# +# A neural network with only one layer, what we called the simple +# perceptron, is best suited if we have a standard binary model with +# clear (linear) boundaries between the outcomes. As such it could +# equally well be replaced by standard linear regression or logistic +# regression. Networks with one or more hidden layers approximate +# systems with more complex boundaries. +# +# As stated earlier, +# an important theorem in studies of neural networks, restated without +# proof here, is the [universal approximation +# theorem](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.441.7873&rep=rep1&type=pdf). +# +# It states that a feed-forward network with a single hidden layer +# containing a finite number of neurons can approximate continuous +# functions on compact subsets of real functions. The theorem thus +# states that simple neural networks can represent a wide variety of +# interesting functions when given appropriate parameters. It is the +# multilayer feedforward architecture itself which gives neural networks +# the potential of being universal approximators. + +# ## Deriving the back propagation code for a multilayer perceptron model +# +# As we have seen now in a feed forward network, we can express the final output of our network in terms of basic matrix-vector multiplications. +# The unknowwn quantities are our weights $w_{ij}$ and we need to find an algorithm for changing them so that our errors are as small as possible. +# This leads us to the famous [back propagation algorithm](https://www.nature.com/articles/323533a0). +# +# The questions we want to ask are how do changes in the biases and the +# weights in our network change the cost function and how can we use the +# final output to modify the weights? +# +# To derive these equations let us start with a plain regression problem +# and define our cost function as + +# $$ +# {\cal C}(\hat{W}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2, +# $$ + +# where the $t_i$s are our $n$ targets (the values we want to +# reproduce), while the outputs of the network after having propagated +# all inputs $\hat{x}$ are given by $y_i$. Below we will demonstrate +# how the basic equations arising from the back propagation algorithm +# can be modified in order to study classification problems with $K$ +# classes. + +# ## Definitions +# +# With our definition of the targets $\hat{t}$, the outputs of the +# network $\hat{y}$ and the inputs $\hat{x}$ we +# define now the activation $z_j^l$ of node/neuron/unit $j$ of the +# $l$-th layer as a function of the bias, the weights which add up from +# the previous layer $l-1$ and the forward passes/outputs +# $\hat{a}^{l-1}$ from the previous layer as + +# $$ +# z_j^l = \sum_{i=1}^{M_{l-1}}w_{ij}^la_i^{l-1}+b_j^l, +# $$ + +# where $b_k^l$ are the biases from layer $l$. Here $M_{l-1}$ +# represents the total number of nodes/neurons/units of layer $l-1$. The +# figure here illustrates this equation. We can rewrite this in a more +# compact form as the matrix-vector products we discussed earlier, + +# $$ +# \hat{z}^l = \left(\hat{W}^l\right)^T\hat{a}^{l-1}+\hat{b}^l. +# $$ + +# With the activation values $\hat{z}^l$ we can in turn define the +# output of layer $l$ as $\hat{a}^l = f(\hat{z}^l)$ where $f$ is our +# activation function. In the examples here we will use the sigmoid +# function discussed in our logistic regression lectures. We will also use the same activation function $f$ for all layers +# and their nodes. It means we have + +# $$ +# a_j^l = f(z_j^l) = \frac{1}{1+\exp{-(z_j^l)}}. +# $$ + +# ## Derivatives and the chain rule +# +# From the definition of the activation $z_j^l$ we have + +# $$ +# \frac{\partial z_j^l}{\partial w_{ij}^l} = a_i^{l-1}, +# $$ + +# and + +# $$ +# \frac{\partial z_j^l}{\partial a_i^{l-1}} = w_{ji}^l. +# $$ + +# With our definition of the activation function we have that (note that this function depends only on $z_j^l$) + +# $$ +# \frac{\partial a_j^l}{\partial z_j^{l}} = a_j^l(1-a_j^l)=f(z_j^l)(1-f(z_j^l)). +# $$ + +# ## Derivative of the cost function +# +# With these definitions we can now compute the derivative of the cost function in terms of the weights. +# +# Let us specialize to the output layer $l=L$. Our cost function is + +# $$ +# {\cal C}(\hat{W^L}) = \frac{1}{2}\sum_{i=1}^n\left(y_i - t_i\right)^2=\frac{1}{2}\sum_{i=1}^n\left(a_i^L - t_i\right)^2, +# $$ + +# The derivative of this function with respect to the weights is + +# $$ +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_j\right)\frac{\partial a_j^L}{\partial w_{jk}^{L}}, +# $$ + +# The last partial derivative can easily be computed and reads (by applying the chain rule) + +# $$ +# \frac{\partial a_j^L}{\partial w_{jk}^{L}} = \frac{\partial a_j^L}{\partial z_{j}^{L}}\frac{\partial z_j^L}{\partial w_{jk}^{L}}=a_j^L(1-a_j^L)a_k^{L-1}, +# $$ + +# ## Bringing it together, first back propagation equation +# +# We have thus + +# $$ +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \left(a_j^L - t_j\right)a_j^L(1-a_j^L)a_k^{L-1}, +# $$ + +# Defining + +# $$ +# \delta_j^L = a_j^L(1-a_j^L)\left(a_j^L - t_j\right) = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +# $$ + +# and using the Hadamard product of two vectors we can write this as + +# $$ +# \hat{\delta}^L = f'(\hat{z}^L)\circ\frac{\partial {\cal C}}{\partial (\hat{a}^L)}. +# $$ + +# This is an important expression. The second term on the right handside +# measures how fast the cost function is changing as a function of the $j$th +# output activation. If, for example, the cost function doesn't depend +# much on a particular output node $j$, then $\delta_j^L$ will be small, +# which is what we would expect. The first term on the right, measures +# how fast the activation function $f$ is changing at a given activation +# value $z_j^L$. +# +# Notice that everything in the above equations is easily computed. In +# particular, we compute $z_j^L$ while computing the behaviour of the +# network, and it is only a small additional overhead to compute +# $f'(z^L_j)$. The exact form of the derivative with respect to the +# output depends on the form of the cost function. +# However, provided the cost function is known there should be little +# trouble in calculating + +# $$ +# \frac{\partial {\cal C}}{\partial (a_j^L)} +# $$ + +# With the definition of $\delta_j^L$ we have a more compact definition of the derivative of the cost function in terms of the weights, namely + +# $$ +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}. +# $$ + +# ## Derivatives in terms of $z_j^L$ +# +# It is also easy to see that our previous equation can be written as + +# $$ +# \delta_j^L =\frac{\partial {\cal C}}{\partial z_j^L}= \frac{\partial {\cal C}}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L}, +# $$ + +# which can also be interpreted as the partial derivative of the cost function with respect to the biases $b_j^L$, namely + +# $$ +# \delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}\frac{\partial b_j^L}{\partial z_j^L}=\frac{\partial {\cal C}}{\partial b_j^L}, +# $$ + +# That is, the error $\delta_j^L$ is exactly equal to the rate of change of the cost function as a function of the bias. + +# ## Bringing it together +# +# We have now three equations that are essential for the computations of the derivatives of the cost function at the output layer. These equations are needed to start the algorithm and they are +# +# **The starting equations.** + +# +#
    +# +# $$ +# \begin{equation} +# \frac{\partial{\cal C}(\hat{W^L})}{\partial w_{jk}^L} = \delta_j^La_k^{L-1}, +# \label{_auto8} \tag{13} +# \end{equation} +# $$ + +# and + +# +#
    +# +# $$ +# \begin{equation} +# \delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}, +# \label{_auto9} \tag{14} +# \end{equation} +# $$ + +# and + +# +#
    +# +# $$ +# \begin{equation} +# \delta_j^L = \frac{\partial {\cal C}}{\partial b_j^L}, +# \label{_auto10} \tag{15} +# \end{equation} +# $$ + +# An interesting consequence of the above equations is that when the +# activation $a_k^{L-1}$ is small, the gradient term, that is the +# derivative of the cost function with respect to the weights, will also +# tend to be small. We say then that the weight learns slowly, meaning +# that it changes slowly when we minimize the weights via say gradient +# descent. In this case we say the system learns slowly. +# +# Another interesting feature is that is when the activation function, +# represented by the sigmoid function here, is rather flat when we move towards +# its end values $0$ and $1$ (see the above Python codes). In these +# cases, the derivatives of the activation function will also be close +# to zero, meaning again that the gradients will be small and the +# network learns slowly again. +# +# We need a fourth equation and we are set. We are going to propagate +# backwards in order to the determine the weights and biases. In order +# to do so we need to represent the error in the layer before the final +# one $L-1$ in terms of the errors in the final output layer. + +# ## Final back propagating equation +# +# We have that (replacing $L$ with a general layer $l$) + +# $$ +# \delta_j^l =\frac{\partial {\cal C}}{\partial z_j^l}. +# $$ + +# We want to express this in terms of the equations for layer $l+1$. Using the chain rule and summing over all $k$ entries we have + +# $$ +# \delta_j^l =\sum_k \frac{\partial {\cal C}}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}=\sum_k \delta_k^{l+1}\frac{\partial z_k^{l+1}}{\partial z_j^{l}}, +# $$ + +# and recalling that + +# $$ +# z_j^{l+1} = \sum_{i=1}^{M_{l}}w_{ij}^{l+1}a_i^{l}+b_j^{l+1}, +# $$ + +# with $M_l$ being the number of nodes in layer $l$, we obtain + +# $$ +# \delta_j^l =\sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l), +# $$ + +# This is our final equation. +# +# We are now ready to set up the algorithm for back propagation and learning the weights and biases. + +# ## Setting up the Back propagation algorithm +# +# The four equations provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm. +# +# First, we set up the input data $\hat{x}$ and the activations +# $\hat{z}_1$ of the input layer and compute the activation function and +# the pertinent outputs $\hat{a}^1$. +# +# Secondly, we perform then the feed forward till we reach the output +# layer and compute all $\hat{z}_l$ of the input layer and compute the +# activation function and the pertinent outputs $\hat{a}^l$ for +# $l=2,3,\dots,L$. +# +# Thereafter we compute the ouput error $\hat{\delta}^L$ by computing all + +# $$ +# \delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +# $$ + +# Then we compute the back propagate error for each $l=L-1,L-2,\dots,2$ as + +# $$ +# \delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +# $$ + +# Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,2$ and update the weights and biases according to the rules + +# $$ +# w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +# $$ + +# $$ +# b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +# $$ + +# The parameter $\eta$ is the learning parameter discussed in connection with the gradient descent methods. +# Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training. + +# ## Setting up the Back propagation algorithm +# +# The four equations above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm. +# +# First, we set up the input data $\boldsymbol{x}$ and the activations +# $\boldsymbol{z}_1$ of the input layer and compute the activation function and +# the pertinent outputs $\boldsymbol{a}^1$. +# +# Secondly, we perform then the feed forward till we reach the output +# layer and compute all $\boldsymbol{z}_l$ of the input layer and compute the +# activation function and the pertinent outputs $\boldsymbol{a}^l$ for +# $l=2,3,\dots,L$. +# +# Thereafter we compute the ouput error $\boldsymbol{\delta}^L$ by computing all + +# $$ +# \delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +# $$ + +# Then we compute the back propagate error for each $l=L-1,L-2,\dots,2$ as + +# $$ +# \delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +# $$ + +# Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,2$ and update the weights and biases according to the rules + +# $$ +# w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +# $$ + +# $$ +# b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +# $$ + +# The parameter $\eta$ is the learning parameter discussed in connection with the gradient descent methods. +# Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training. + +# ## Setting up the Back propagation algorithm +# +# The four equations derived discussed above provide us with a way of computing the gradient of the cost function. Let us write this out in the form of an algorithm. +# +# First, we set up the input data $\boldsymbol{x}$ and the activations +# $\boldsymbol{z}_1$ of the input layer and compute the activation function and +# the pertinent outputs $\boldsymbol{a}^1$. +# +# Secondly, we perform then the feed forward till we reach the output +# layer and compute all $\boldsymbol{z}_l$ of the input layer and compute the +# activation function and the pertinent outputs $\boldsymbol{a}^l$ for +# $l=2,3,\dots,L$. +# +# Thereafter we compute the ouput error $\boldsymbol{\delta}^L$ by computing all + +# $$ +# \delta_j^L = f'(z_j^L)\frac{\partial {\cal C}}{\partial (a_j^L)}. +# $$ + +# Then we compute the back propagate error for each $l=L-1,L-2,\dots,2$ as + +# $$ +# \delta_j^l = \sum_k \delta_k^{l+1}w_{kj}^{l+1}f'(z_j^l). +# $$ + +# Finally, we update the weights and the biases using gradient descent for each $l=L-1,L-2,\dots,2$ and update the weights and biases according to the rules + +# $$ +# w_{jk}^l\leftarrow = w_{jk}^l- \eta \delta_j^la_k^{l-1}, +# $$ + +# $$ +# b_j^l \leftarrow b_j^l-\eta \frac{\partial {\cal C}}{\partial b_j^l}=b_j^l-\eta \delta_j^l, +# $$ + +# The parameter $\eta$ is the learning parameter discussed in connection with the gradient descent methods. +# Here it is convenient to use stochastic gradient descent (see the examples below) with mini-batches with an outer loop that steps through multiple epochs of training. + +# ## Setting up a Multi-layer perceptron model for classification +# +# We are now gong to develop an example based on the MNIST data +# base. This is a classification problem and we need to use our +# cross-entropy function we discussed in connection with logistic +# regression. The cross-entropy defines our cost function for the +# classificaton problems with neural networks. +# +# In binary classification with two classes $(0, 1)$ we define the +# logistic/sigmoid function as the probability that a particular input +# is in class $0$ or $1$. This is possible because the logistic +# function takes any input from the real numbers and inputs a number +# between 0 and 1, and can therefore be interpreted as a probability. It +# also has other nice properties, such as a derivative that is simple to +# calculate. +# +# For an input $\boldsymbol{a}$ from the hidden layer, the probability that the input $\boldsymbol{x}$ +# is in class 0 or 1 is just. We let $\theta$ represent the unknown weights and biases to be adjusted by our equations). The variable $x$ +# represents our activation values $z$. We have + +# $$ +# P(y = 0 \mid \boldsymbol{x}, \boldsymbol{\theta}) = \frac{1}{1 + \exp{(- \boldsymbol{x}})} , +# $$ + +# and + +# $$ +# P(y = 1 \mid \boldsymbol{x}, \boldsymbol{\theta}) = 1 - P(y = 0 \mid \boldsymbol{x}, \boldsymbol{\theta}) , +# $$ + +# where $y \in \{0, 1\}$ and $\boldsymbol{\theta}$ represents the weights and biases +# of our network. + +# ## Defining the cost function +# +# Our cost function is given as (see the Logistic regression lectures) + +# $$ +# \mathcal{C}(\boldsymbol{\theta}) = - \ln P(\mathcal{D} \mid \boldsymbol{\theta}) = - \sum_{i=1}^n +# y_i \ln[P(y_i = 0)] + (1 - y_i) \ln [1 - P(y_i = 0)] = \sum_{i=1}^n \mathcal{L}_i(\boldsymbol{\theta}) . +# $$ + +# This last equality means that we can interpret our *cost* function as a sum over the *loss* function +# for each point in the dataset $\mathcal{L}_i(\boldsymbol{\theta})$. +# The negative sign is just so that we can think about our algorithm as minimizing a positive number, rather +# than maximizing a negative number. +# +# In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: +# +# $y = 5 \quad \rightarrow \quad \boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$ and +# +# $y = 1 \quad \rightarrow \quad \boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$ +# +# i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset (numbers from $0$ to $9$).. +# +# If $\boldsymbol{x}_i$ is the $i$-th input (image), $y_{ic}$ refers to the $c$-th component of the $i$-th +# output vector $\boldsymbol{y}_i$. +# The probability of $\boldsymbol{x}_i$ being in class $c$ will be given by the softmax function: + +# $$ +# P(y_{ic} = 1 \mid \boldsymbol{x}_i, \boldsymbol{\theta}) = \frac{\exp{((\boldsymbol{a}_i^{hidden})^T \boldsymbol{w}_c)}} +# {\sum_{c'=0}^{C-1} \exp{((\boldsymbol{a}_i^{hidden})^T \boldsymbol{w}_{c'})}} , +# $$ + +# which reduces to the logistic function in the binary case. +# The likelihood of this $C$-class classifier +# is now given as: + +# $$ +# P(\mathcal{D} \mid \boldsymbol{\theta}) = \prod_{i=1}^n \prod_{c=0}^{C-1} [P(y_{ic} = 1)]^{y_{ic}} . +# $$ + +# Again we take the negative log-likelihood to define our cost function: + +# $$ +# \mathcal{C}(\boldsymbol{\theta}) = - \log{P(\mathcal{D} \mid \boldsymbol{\theta})}. +# $$ + +# See the logistic regression lectures for a full definition of the cost function. +# +# The back propagation equations need now only a small change, namely the definition of a new cost function. We are thus ready to use the same equations as before! + +# ## Example: binary classification problem +# +# As an example of the above, relevant for project 2 as well, let us consider a binary class. As discussed in our logistic regression lectures, we defined a cost function in terms of the parameters $\beta$ as + +# $$ +# \mathcal{C}(\boldsymbol{\beta}) = - \sum_{i=1}^n \left(y_i\log{p(y_i \vert x_i,\boldsymbol{\beta})}+(1-y_i)\log{1-p(y_i \vert x_i,\boldsymbol{\beta})}\right), +# $$ + +# where we had defined the logistic (sigmoid) function + +# $$ +# p(y_i =1\vert x_i,\boldsymbol{\beta})=\frac{\exp{(\beta_0+\beta_1 x_i)}}{1+\exp{(\beta_0+\beta_1 x_i)}}, +# $$ + +# and + +# $$ +# p(y_i =0\vert x_i,\boldsymbol{\beta})=1-p(y_i =1\vert x_i,\boldsymbol{\beta}). +# $$ + +# The parameters $\boldsymbol{\beta}$ were defined using a minimization method like gradient descent or Newton-Raphson's method. +# +# Now we replace $x_i$ with the activation $z_i^l$ for a given layer $l$ and the outputs as $y_i=a_i^l=f(z_i^l)$, with $z_i^l$ now being a function of the weights $w_{ij}^l$ and biases $b_i^l$. +# We have then + +# $$ +# a_i^l = y_i = \frac{\exp{(z_i^l)}}{1+\exp{(z_i^l)}}, +# $$ + +# with + +# $$ +# z_i^l = \sum_{j}w_{ij}^l a_j^{l-1}+b_i^l, +# $$ + +# where the superscript $l-1$ indicates that these are the outputs from layer $l-1$. +# Our cost function at the final layer $l=L$ is now + +# $$ +# \mathcal{C}(\boldsymbol{W}) = - \sum_{i=1}^n \left(t_i\log{a_i^L}+(1-t_i)\log{(1-a_i^L)}\right), +# $$ + +# where we have defined the targets $t_i$. The derivatives of the cost function with respect to the output $a_i^L$ are then easily calculated and we get + +# $$ +# \frac{\partial \mathcal{C}(\boldsymbol{W})}{\partial a_i^L} = \frac{a_i^L-t_i}{a_i^L(1-a_i^L)}. +# $$ + +# In case we use another activation function than the logistic one, we need to evaluate other derivatives. + +# ## The Softmax function +# In case we employ the more general case given by the Softmax equation, we need to evaluate the derivative of the activation function with respect to the activation $z_i^l$, that is we need + +# $$ +# \frac{\partial f(z_i^l)}{\partial w_{jk}^l} = +# \frac{\partial f(z_i^l)}{\partial z_j^l} \frac{\partial z_j^l}{\partial w_{jk}^l}= \frac{\partial f(z_i^l)}{\partial z_j^l}a_k^{l-1}. +# $$ + +# For the Softmax function we have + +# $$ +# f(z_i^l) = \frac{\exp{(z_i^l)}}{\sum_{m=1}^K\exp{(z_m^l)}}. +# $$ + +# Its derivative with respect to $z_j^l$ gives + +# $$ +# \frac{\partial f(z_i^l)}{\partial z_j^l}= f(z_i^l)\left(\delta_{ij}-f(z_j^l)\right), +# $$ + +# which in case of the simply binary model reduces to having $i=j$. + +# ## Developing a code for doing neural networks with back propagation +# +# One can identify a set of key steps when using neural networks to solve supervised learning problems: +# +# 1. Collect and pre-process data +# +# 2. Define model and architecture +# +# 3. Choose cost function and optimizer +# +# 4. Train the model +# +# 5. Evaluate model performance on test data +# +# 6. Adjust hyperparameters (if necessary, network architecture) + +# ## Collect and pre-process data +# +# Here we will be using the MNIST dataset, which is readily available through the **scikit-learn** +# package. You may also find it for example [here](http://yann.lecun.com/exdb/mnist/). +# The *MNIST* (Modified National Institute of Standards and Technology) database is a large database +# of handwritten digits that is commonly used for training various image processing systems. +# The MNIST dataset consists of 70 000 images of size $28\times 28$ pixels, each labeled from 0 to 9. +# The scikit-learn dataset we will use consists of a selection of 1797 images of size $8\times 8$ collected and processed from this database. +# +# To feed data into a feed-forward neural network we need to represent +# the inputs as a design/feature matrix $X = (n_{inputs}, n_{features})$. Each +# row represents an *input*, in this case a handwritten digit, and +# each column represents a *feature*, in this case a pixel. The +# correct answers, also known as *labels* or *targets* are +# represented as a 1D array of integers +# $Y = (n_{inputs}) = (5, 3, 1, 8,...)$. +# +# As an example, say we want to build a neural network using supervised learning to predict Body-Mass Index (BMI) from +# measurements of height (in m) +# and weight (in kg). If we have measurements of 5 people the design/feature matrix could be for example: +# +# $$ X = \begin{bmatrix} +# 1.85 & 81\\ +# 1.71 & 65\\ +# 1.95 & 103\\ +# 1.55 & 42\\ +# 1.63 & 56 +# \end{bmatrix} ,$$ +# +# and the targets would be: +# +# $$ Y = (23.7, 22.2, 27.1, 17.5, 21.1) $$ +# +# Since each input image is a 2D matrix, we need to flatten the image +# (i.e. "unravel" the 2D matrix into a 1D array) to turn the data into a +# design/feature matrix. This means we lose all spatial information in the +# image, such as locality and translational invariance. More complicated +# architectures such as Convolutional Neural Networks can take advantage +# of such information, and are most commonly applied when analyzing +# images. + +# In[5]: + + +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn import datasets + + +# ensure the same random numbers appear every time +np.random.seed(0) + +# display images in notebook +get_ipython().run_line_magic('matplotlib', 'inline') +plt.rcParams['figure.figsize'] = (12,12) + + +# download MNIST dataset +digits = datasets.load_digits() + +# define inputs and labels +inputs = digits.images +labels = digits.target + +print("inputs = (n_inputs, pixel_width, pixel_height) = " + str(inputs.shape)) +print("labels = (n_inputs) = " + str(labels.shape)) + + +# flatten the image +# the value -1 means dimension is inferred from the remaining dimensions: 8x8 = 64 +n_inputs = len(inputs) +inputs = inputs.reshape(n_inputs, -1) +print("X = (n_inputs, n_features) = " + str(inputs.shape)) + + +# choose some random images to display +indices = np.arange(n_inputs) +random_indices = np.random.choice(indices, size=5) + +for i, image in enumerate(digits.images[random_indices]): + plt.subplot(1, 5, i+1) + plt.axis('off') + plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') + plt.title("Label: %d" % digits.target[random_indices[i]]) +plt.show() + + +# ## Train and test datasets +# +# Performing analysis before partitioning the dataset is a major error, that can lead to incorrect conclusions. +# +# We will reserve $80 \%$ of our dataset for training and $20 \%$ for testing. +# +# It is important that the train and test datasets are drawn randomly from our dataset, to ensure +# no bias in the sampling. +# Say you are taking measurements of weather data to predict the weather in the coming 5 days. +# You don't want to train your model on measurements taken from the hours 00.00 to 12.00, and then test it on data +# collected from 12.00 to 24.00. + +# In[6]: + + +from sklearn.model_selection import train_test_split + +# one-liner from scikit-learn library +train_size = 0.8 +test_size = 1 - train_size +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, + test_size=test_size) + +# equivalently in numpy +def train_test_split_numpy(inputs, labels, train_size, test_size): + n_inputs = len(inputs) + inputs_shuffled = inputs.copy() + labels_shuffled = labels.copy() + + np.random.shuffle(inputs_shuffled) + np.random.shuffle(labels_shuffled) + + train_end = int(n_inputs*train_size) + X_train, X_test = inputs_shuffled[:train_end], inputs_shuffled[train_end:] + Y_train, Y_test = labels_shuffled[:train_end], labels_shuffled[train_end:] + + return X_train, X_test, Y_train, Y_test + +#X_train, X_test, Y_train, Y_test = train_test_split_numpy(inputs, labels, train_size, test_size) + +print("Number of training images: " + str(len(X_train))) +print("Number of test images: " + str(len(X_test))) + + +# ## Define model and architecture +# +# Our simple feed-forward neural network will consist of an *input* layer, a single *hidden* layer and an *output* layer. The activation $y$ of each neuron is a weighted sum of inputs, passed through an activation function. In case of the simple perceptron model we have +# +# $$ z = \sum_{i=1}^n w_i a_i ,$$ +# +# $$ y = f(z) ,$$ +# +# where $f$ is the activation function, $a_i$ represents input from neuron $i$ in the preceding layer +# and $w_i$ is the weight to input $i$. +# The activation of the neurons in the input layer is just the features (e.g. a pixel value). +# +# The simplest activation function for a neuron is the *Heaviside* function: +# +# $$ f(z) = +# \begin{cases} +# 1, & z > 0\\ +# 0, & \text{otherwise} +# \end{cases} +# $$ +# +# A feed-forward neural network with this activation is known as a *perceptron*. +# For a binary classifier (i.e. two classes, 0 or 1, dog or not-dog) we can also use this in our output layer. +# This activation can be generalized to $k$ classes (using e.g. the *one-against-all* strategy), +# and we call these architectures *multiclass perceptrons*. +# +# However, it is now common to use the terms Single Layer Perceptron (SLP) (1 hidden layer) and +# Multilayer Perceptron (MLP) (2 or more hidden layers) to refer to feed-forward neural networks with any activation function. +# +# Typical choices for activation functions include the sigmoid function, hyperbolic tangent, and Rectified Linear Unit (ReLU). +# We will be using the sigmoid function $\sigma(x)$: +# +# $$ f(x) = \sigma(x) = \frac{1}{1 + e^{-x}} ,$$ +# +# which is inspired by probability theory (see logistic regression) and was most commonly used until about 2011. See the discussion below concerning other activation functions. + +# ## Layers +# +# * Input +# +# Since each input image has 8x8 = 64 pixels or features, we have an input layer of 64 neurons. +# +# * Hidden layer +# +# We will use 50 neurons in the hidden layer receiving input from the neurons in the input layer. +# Since each neuron in the hidden layer is connected to the 64 inputs we have 64x50 = 3200 weights to the hidden layer. +# +# * Output +# +# If we were building a binary classifier, it would be sufficient with a single neuron in the output layer, +# which could output 0 or 1 according to the Heaviside function. This would be an example of a *hard* classifier, meaning it outputs the class of the input directly. However, if we are dealing with noisy data it is often beneficial to use a *soft* classifier, which outputs the probability of being in class 0 or 1. +# +# For a soft binary classifier, we could use a single neuron and interpret the output as either being the probability of being in class 0 or the probability of being in class 1. Alternatively we could use 2 neurons, and interpret each neuron as the probability of being in each class. +# +# Since we are doing multiclass classification, with 10 categories, it is natural to use 10 neurons in the output layer. We number the neurons $j = 0,1,...,9$. The activation of each output neuron $j$ will be according to the *softmax* function: +# +# $$ P(\text{class $j$} \mid \text{input $\boldsymbol{a}$}) = \frac{\exp{(\boldsymbol{a}^T \boldsymbol{w}_j)}} +# {\sum_{c=0}^{9} \exp{(\boldsymbol{a}^T \boldsymbol{w}_c)}} ,$$ +# +# i.e. each neuron $j$ outputs the probability of being in class $j$ given an input from the hidden layer $\boldsymbol{a}$, with $\boldsymbol{w}_j$ the weights of neuron $j$ to the inputs. +# The denominator is a normalization factor to ensure the outputs (probabilities) sum up to 1. +# The exponent is just the weighted sum of inputs as before: +# +# $$ z_j = \sum_{i=1}^n w_ {ij} a_i+b_j.$$ +# +# Since each neuron in the output layer is connected to the 50 inputs from the hidden layer we have 50x10 = 500 +# weights to the output layer. + +# ## Weights and biases +# +# Typically weights are initialized with small values distributed around zero, drawn from a uniform +# or normal distribution. Setting all weights to zero means all neurons give the same output, making the network useless. +# +# Adding a bias value to the weighted sum of inputs allows the neural network to represent a greater range +# of values. Without it, any input with the value 0 will be mapped to zero (before being passed through the activation). The bias unit has an output of 1, and a weight to each neuron $j$, $b_j$: +# +# $$ z_j = \sum_{i=1}^n w_ {ij} a_i + b_j.$$ +# +# The bias weights $\boldsymbol{b}$ are often initialized to zero, but a small value like $0.01$ ensures all neurons have some output which can be backpropagated in the first training cycle. + +# In[7]: + + +# building our neural network + +n_inputs, n_features = X_train.shape +n_hidden_neurons = 50 +n_categories = 10 + +# we make the weights normally distributed using numpy.random.randn + +# weights and bias in the hidden layer +hidden_weights = np.random.randn(n_features, n_hidden_neurons) +hidden_bias = np.zeros(n_hidden_neurons) + 0.01 + +# weights and bias in the output layer +output_weights = np.random.randn(n_hidden_neurons, n_categories) +output_bias = np.zeros(n_categories) + 0.01 + + +# ## Feed-forward pass +# +# Denote $F$ the number of features, $H$ the number of hidden neurons and $C$ the number of categories. +# For each input image we calculate a weighted sum of input features (pixel values) to each neuron $j$ in the hidden layer $l$: +# +# $$ z_{j}^{l} = \sum_{i=1}^{F} w_{ij}^{l} x_i + b_{j}^{l},$$ +# +# this is then passed through our activation function +# +# $$ a_{j}^{l} = f(z_{j}^{l}) .$$ +# +# We calculate a weighted sum of inputs (activations in the hidden layer) to each neuron $j$ in the output layer: +# +# $$ z_{j}^{L} = \sum_{i=1}^{H} w_{ij}^{L} a_{i}^{l} + b_{j}^{L}.$$ +# +# Finally we calculate the output of neuron $j$ in the output layer using the softmax function: +# +# $$ a_{j}^{L} = \frac{\exp{(z_j^{L})}} +# {\sum_{c=0}^{C-1} \exp{(z_c^{L})}} .$$ + +# ## Matrix multiplications +# +# Since our data has the dimensions $X = (n_{inputs}, n_{features})$ and our weights to the hidden +# layer have the dimensions +# $W_{hidden} = (n_{features}, n_{hidden})$, +# we can easily feed the network all our training data in one go by taking the matrix product +# +# $$ X W^{h} = (n_{inputs}, n_{hidden}),$$ +# +# and obtain a matrix that holds the weighted sum of inputs to the hidden layer +# for each input image and each hidden neuron. +# We also add the bias to obtain a matrix of weighted sums to the hidden layer $Z^{h}$: +# +# $$ \boldsymbol{z}^{l} = \boldsymbol{X} \boldsymbol{W}^{l} + \boldsymbol{b}^{l} ,$$ +# +# meaning the same bias (1D array with size equal number of hidden neurons) is added to each input image. +# This is then passed through the activation: +# +# $$ \boldsymbol{a}^{l} = f(\boldsymbol{z}^l) .$$ +# +# This is fed to the output layer: +# +# $$ \boldsymbol{z}^{L} = \boldsymbol{a}^{L} \boldsymbol{W}^{L} + \boldsymbol{b}^{L} .$$ +# +# Finally we receive our output values for each image and each category by passing it through the softmax function: +# +# $$ output = softmax (\boldsymbol{z}^{L}) = (n_{inputs}, n_{categories}) .$$ + +# In[8]: + + +# setup the feed-forward pass, subscript h = hidden layer + +def sigmoid(x): + return 1/(1 + np.exp(-x)) + +def feed_forward(X): + # weighted sum of inputs to the hidden layer + z_h = np.matmul(X, hidden_weights) + hidden_bias + # activation in the hidden layer + a_h = sigmoid(z_h) + + # weighted sum of inputs to the output layer + z_o = np.matmul(a_h, output_weights) + output_bias + # softmax output + # axis 0 holds each input and axis 1 the probabilities of each category + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + return probabilities + +probabilities = feed_forward(X_train) +print("probabilities = (n_inputs, n_categories) = " + str(probabilities.shape)) +print("probability that image 0 is in category 0,1,2,...,9 = \n" + str(probabilities[0])) +print("probabilities sum up to: " + str(probabilities[0].sum())) +print() + +# we obtain a prediction by taking the class with the highest likelihood +def predict(X): + probabilities = feed_forward(X) + return np.argmax(probabilities, axis=1) + +predictions = predict(X_train) +print("predictions = (n_inputs) = " + str(predictions.shape)) +print("prediction for image 0: " + str(predictions[0])) +print("correct label for image 0: " + str(Y_train[0])) + + +# ## Choose cost function and optimizer +# +# To measure how well our neural network is doing we need to introduce a cost function. +# We will call the function that gives the error of a single sample output the *loss* function, and the function +# that gives the total error of our network across all samples the *cost* function. +# A typical choice for multiclass classification is the *cross-entropy* loss, also known as the negative log likelihood. +# +# In *multiclass* classification it is common to treat each integer label as a so called *one-hot* vector: +# +# $$ y = 5 \quad \rightarrow \quad \boldsymbol{y} = (0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ,$$ +# +# $$ y = 1 \quad \rightarrow \quad \boldsymbol{y} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0) ,$$ +# +# i.e. a binary bit string of length $C$, where $C = 10$ is the number of classes in the MNIST dataset. +# +# Let $y_{ic}$ denote the $c$-th component of the $i$-th one-hot vector. +# We define the cost function $\mathcal{C}$ as a sum over the cross-entropy loss for each point $\boldsymbol{x}_i$ in the dataset. +# +# In the one-hot representation only one of the terms in the loss function is non-zero, namely the +# probability of the correct category $c'$ +# (i.e. the category $c'$ such that $y_{ic'} = 1$). This means that the cross entropy loss only punishes you for how wrong +# you got the correct label. The probability of category $c$ is given by the softmax function. The vector $\boldsymbol{\theta}$ represents the parameters of our network, i.e. all the weights and biases. + +# ## Optimizing the cost function +# +# The network is trained by finding the weights and biases that minimize the cost function. One of the most widely used classes of methods is *gradient descent* and its generalizations. The idea behind gradient descent +# is simply to adjust the weights in the direction where the gradient of the cost function is large and negative. This ensures we flow toward a *local* minimum of the cost function. +# Each parameter $\theta$ is iteratively adjusted according to the rule +# +# $$ \theta_{i+1} = \theta_i - \eta \nabla \mathcal{C}(\theta_i) ,$$ +# +# where $\eta$ is known as the *learning rate*, which controls how big a step we take towards the minimum. +# This update can be repeated for any number of iterations, or until we are satisfied with the result. +# +# A simple and effective improvement is a variant called *Batch Gradient Descent*. +# Instead of calculating the gradient on the whole dataset, we calculate an approximation of the gradient +# on a subset of the data called a *minibatch*. +# If there are $N$ data points and we have a minibatch size of $M$, the total number of batches +# is $N/M$. +# We denote each minibatch $B_k$, with $k = 1, 2,...,N/M$. The gradient then becomes: +# +# $$ \nabla \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \nabla \mathcal{L}_i(\theta) \quad \rightarrow \quad +# \frac{1}{M} \sum_{i \in B_k} \nabla \mathcal{L}_i(\theta) ,$$ +# +# i.e. instead of averaging the loss over the entire dataset, we average over a minibatch. +# +# This has two important benefits: +# 1. Introducing stochasticity decreases the chance that the algorithm becomes stuck in a local minima. +# +# 2. It significantly speeds up the calculation, since we do not have to use the entire dataset to calculate the gradient. +# +# The various optmization methods, with codes and algorithms, are discussed in our lectures on [Gradient descent approaches](https://compphysics.github.io/MachineLearning/doc/pub/Splines/html/Splines-bs.html). + +# ## Regularization +# +# It is common to add an extra term to the cost function, proportional +# to the size of the weights. This is equivalent to constraining the +# size of the weights, so that they do not grow out of control. +# Constraining the size of the weights means that the weights cannot +# grow arbitrarily large to fit the training data, and in this way +# reduces *overfitting*. +# +# We will measure the size of the weights using the so called *L2-norm*, meaning our cost function becomes: +# +# $$ \mathcal{C}(\theta) = \frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) \quad \rightarrow \quad +# \frac{1}{N} \sum_{i=1}^N \mathcal{L}_i(\theta) + \lambda \lvert \lvert \boldsymbol{w} \rvert \rvert_2^2 +# = \frac{1}{N} \sum_{i=1}^N \mathcal{L}(\theta) + \lambda \sum_{ij} w_{ij}^2,$$ +# +# i.e. we sum up all the weights squared. The factor $\lambda$ is known as a regularization parameter. +# +# In order to train the model, we need to calculate the derivative of +# the cost function with respect to every bias and weight in the +# network. In total our network has $(64 + 1)\times 50=3250$ weights in +# the hidden layer and $(50 + 1)\times 10=510$ weights to the output +# layer ($+1$ for the bias), and the gradient must be calculated for +# every parameter. We use the *backpropagation* algorithm discussed +# above. This is a clever use of the chain rule that allows us to +# calculate the gradient efficently. + +# ## Matrix multiplication +# +# To more efficently train our network these equations are implemented using matrix operations. +# The error in the output layer is calculated simply as, with $\boldsymbol{t}$ being our targets, +# +# $$ \delta_L = \boldsymbol{t} - \boldsymbol{y} = (n_{inputs}, n_{categories}) .$$ +# +# The gradient for the output weights is calculated as +# +# $$ \nabla W_{L} = \boldsymbol{a}^T \delta_L = (n_{hidden}, n_{categories}) ,$$ +# +# where $\boldsymbol{a} = (n_{inputs}, n_{hidden})$. This simply means that we are summing up the gradients for each input. +# Since we are going backwards we have to transpose the activation matrix. +# +# The gradient with respect to the output bias is then +# +# $$ \nabla \boldsymbol{b}_{L} = \sum_{i=1}^{n_{inputs}} \delta_L = (n_{categories}) .$$ +# +# The error in the hidden layer is +# +# $$ \Delta_h = \delta_L W_{L}^T \circ f'(z_{h}) = \delta_L W_{L}^T \circ a_{h} \circ (1 - a_{h}) = (n_{inputs}, n_{hidden}) ,$$ +# +# where $f'(a_{h})$ is the derivative of the activation in the hidden layer. The matrix products mean +# that we are summing up the products for each neuron in the output layer. The symbol $\circ$ denotes +# the *Hadamard product*, meaning element-wise multiplication. +# +# This again gives us the gradients in the hidden layer: +# +# $$ \nabla W_{h} = X^T \delta_h = (n_{features}, n_{hidden}) ,$$ +# +# $$ \nabla b_{h} = \sum_{i=1}^{n_{inputs}} \delta_h = (n_{hidden}) .$$ + +# In[9]: + + +# to categorical turns our integer vector into a onehot representation +from sklearn.metrics import accuracy_score + +# one-hot in numpy +def to_categorical_numpy(integer_vector): + n_inputs = len(integer_vector) + n_categories = np.max(integer_vector) + 1 + onehot_vector = np.zeros((n_inputs, n_categories)) + onehot_vector[range(n_inputs), integer_vector] = 1 + + return onehot_vector + +#Y_train_onehot, Y_test_onehot = to_categorical(Y_train), to_categorical(Y_test) +Y_train_onehot, Y_test_onehot = to_categorical_numpy(Y_train), to_categorical_numpy(Y_test) + +def feed_forward_train(X): + # weighted sum of inputs to the hidden layer + z_h = np.matmul(X, hidden_weights) + hidden_bias + # activation in the hidden layer + a_h = sigmoid(z_h) + + # weighted sum of inputs to the output layer + z_o = np.matmul(a_h, output_weights) + output_bias + # softmax output + # axis 0 holds each input and axis 1 the probabilities of each category + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + # for backpropagation need activations in hidden and output layers + return a_h, probabilities + +def backpropagation(X, Y): + a_h, probabilities = feed_forward_train(X) + + # error in the output layer + error_output = probabilities - Y + # error in the hidden layer + error_hidden = np.matmul(error_output, output_weights.T) * a_h * (1 - a_h) + + # gradients for the output layer + output_weights_gradient = np.matmul(a_h.T, error_output) + output_bias_gradient = np.sum(error_output, axis=0) + + # gradient for the hidden layer + hidden_weights_gradient = np.matmul(X.T, error_hidden) + hidden_bias_gradient = np.sum(error_hidden, axis=0) + + return output_weights_gradient, output_bias_gradient, hidden_weights_gradient, hidden_bias_gradient + +print("Old accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train))) + +eta = 0.01 +lmbd = 0.01 +for i in range(1000): + # calculate gradients + dWo, dBo, dWh, dBh = backpropagation(X_train, Y_train_onehot) + + # regularization term gradients + dWo += lmbd * output_weights + dWh += lmbd * hidden_weights + + # update weights and biases + output_weights -= eta * dWo + output_bias -= eta * dBo + hidden_weights -= eta * dWh + hidden_bias -= eta * dBh + +print("New accuracy on training data: " + str(accuracy_score(predict(X_train), Y_train))) + + +# ## Improving performance +# +# As we can see the network does not seem to be learning at all. It seems to be just guessing the label for each image. +# In order to obtain a network that does something useful, we will have to do a bit more work. +# +# The choice of *hyperparameters* such as learning rate and regularization parameter is hugely influential for the performance of the network. Typically a *grid-search* is performed, wherein we test different hyperparameters separated by orders of magnitude. For example we could test the learning rates $\eta = 10^{-6}, 10^{-5},...,10^{-1}$ with different regularization parameters $\lambda = 10^{-6},...,10^{-0}$. +# +# Next, we haven't implemented minibatching yet, which introduces stochasticity and is though to act as an important regularizer on the weights. We call a feed-forward + backward pass with a minibatch an *iteration*, and a full training period +# going through the entire dataset ($n/M$ batches) an *epoch*. +# +# If this does not improve network performance, you may want to consider altering the network architecture, adding more neurons or hidden layers. +# Andrew Ng goes through some of these considerations in this [video](https://youtu.be/F1ka6a13S9I). You can find a summary of the video [here](https://kevinzakka.github.io/2016/09/26/applying-deep-learning/). + +# ## Full object-oriented implementation +# +# It is very natural to think of the network as an object, with specific instances of the network +# being realizations of this object with different hyperparameters. An implementation using Python classes provides a clean structure and interface, and the full implementation of our neural network is given below. + +# In[10]: + + +class NeuralNetwork: + def __init__( + self, + X_data, + Y_data, + n_hidden_neurons=50, + n_categories=10, + epochs=10, + batch_size=100, + eta=0.1, + lmbd=0.0): + + self.X_data_full = X_data + self.Y_data_full = Y_data + + self.n_inputs = X_data.shape[0] + self.n_features = X_data.shape[1] + self.n_hidden_neurons = n_hidden_neurons + self.n_categories = n_categories + + self.epochs = epochs + self.batch_size = batch_size + self.iterations = self.n_inputs // self.batch_size + self.eta = eta + self.lmbd = lmbd + + self.create_biases_and_weights() + + def create_biases_and_weights(self): + self.hidden_weights = np.random.randn(self.n_features, self.n_hidden_neurons) + self.hidden_bias = np.zeros(self.n_hidden_neurons) + 0.01 + + self.output_weights = np.random.randn(self.n_hidden_neurons, self.n_categories) + self.output_bias = np.zeros(self.n_categories) + 0.01 + + def feed_forward(self): + # feed-forward for training + self.z_h = np.matmul(self.X_data, self.hidden_weights) + self.hidden_bias + self.a_h = sigmoid(self.z_h) + + self.z_o = np.matmul(self.a_h, self.output_weights) + self.output_bias + + exp_term = np.exp(self.z_o) + self.probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + + def feed_forward_out(self, X): + # feed-forward for output + z_h = np.matmul(X, self.hidden_weights) + self.hidden_bias + a_h = sigmoid(z_h) + + z_o = np.matmul(a_h, self.output_weights) + self.output_bias + + exp_term = np.exp(z_o) + probabilities = exp_term / np.sum(exp_term, axis=1, keepdims=True) + return probabilities + + def backpropagation(self): + error_output = self.probabilities - self.Y_data + error_hidden = np.matmul(error_output, self.output_weights.T) * self.a_h * (1 - self.a_h) + + self.output_weights_gradient = np.matmul(self.a_h.T, error_output) + self.output_bias_gradient = np.sum(error_output, axis=0) + + self.hidden_weights_gradient = np.matmul(self.X_data.T, error_hidden) + self.hidden_bias_gradient = np.sum(error_hidden, axis=0) + + if self.lmbd > 0.0: + self.output_weights_gradient += self.lmbd * self.output_weights + self.hidden_weights_gradient += self.lmbd * self.hidden_weights + + self.output_weights -= self.eta * self.output_weights_gradient + self.output_bias -= self.eta * self.output_bias_gradient + self.hidden_weights -= self.eta * self.hidden_weights_gradient + self.hidden_bias -= self.eta * self.hidden_bias_gradient + + def predict(self, X): + probabilities = self.feed_forward_out(X) + return np.argmax(probabilities, axis=1) + + def predict_probabilities(self, X): + probabilities = self.feed_forward_out(X) + return probabilities + + def train(self): + data_indices = np.arange(self.n_inputs) + + for i in range(self.epochs): + for j in range(self.iterations): + # pick datapoints with replacement + chosen_datapoints = np.random.choice( + data_indices, size=self.batch_size, replace=False + ) + + # minibatch training data + self.X_data = self.X_data_full[chosen_datapoints] + self.Y_data = self.Y_data_full[chosen_datapoints] + + self.feed_forward() + self.backpropagation() + + +# ## Evaluate model performance on test data +# +# To measure the performance of our network we evaluate how well it does it data it has never seen before, i.e. the test data. +# We measure the performance of the network using the *accuracy* score. +# The accuracy is as you would expect just the number of images correctly labeled divided by the total number of images. A perfect classifier will have an accuracy score of $1$. +# +# $$ \text{Accuracy} = \frac{\sum_{i=1}^n I(\tilde{y}_i = y_i)}{n} ,$$ +# +# where $I$ is the indicator function, $1$ if $\tilde{y}_i = y_i$ and $0$ otherwise. + +# In[11]: + + +epochs = 100 +batch_size = 100 + +dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size, + n_hidden_neurons=n_hidden_neurons, n_categories=n_categories) +dnn.train() +test_predict = dnn.predict(X_test) + +# accuracy score from scikit library +print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict)) + +# equivalent in numpy +def accuracy_score_numpy(Y_test, Y_pred): + return np.sum(Y_test == Y_pred) / len(Y_test) + +#print("Accuracy score on test set: ", accuracy_score_numpy(Y_test, test_predict)) + + +# ## Adjust hyperparameters +# +# We now perform a grid search to find the optimal hyperparameters for the network. +# Note that we are only using 1 layer with 50 neurons, and human performance is estimated to be around $98\%$ ($2\%$ error rate). + +# In[12]: + + +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) +# store the models for later use +DNN_numpy = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +# grid search +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = NeuralNetwork(X_train, Y_train_onehot, eta=eta, lmbd=lmbd, epochs=epochs, batch_size=batch_size, + n_hidden_neurons=n_hidden_neurons, n_categories=n_categories) + dnn.train() + + DNN_numpy[i][j] = dnn + + test_predict = dnn.predict(X_test) + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Accuracy score on test set: ", accuracy_score(Y_test, test_predict)) + print() + + +# ## Visualization + +# In[13]: + + +# visual representation of grid search +# uses seaborn heatmap, you can also do this with matplotlib imshow +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + dnn = DNN_numpy[i][j] + + train_pred = dnn.predict(X_train) + test_pred = dnn.predict(X_test) + + train_accuracy[i][j] = accuracy_score(Y_train, train_pred) + test_accuracy[i][j] = accuracy_score(Y_test, test_pred) + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## scikit-learn implementation +# +# **scikit-learn** focuses more +# on traditional machine learning methods, such as regression, +# clustering, decision trees, etc. As such, it has only two types of +# neural networks: Multi Layer Perceptron outputting continuous values, +# *MPLRegressor*, and Multi Layer Perceptron outputting labels, +# *MLPClassifier*. We will see how simple it is to use these classes. +# +# **scikit-learn** implements a few improvements from our neural network, +# such as early stopping, a varying learning rate, different +# optimization methods, etc. We would therefore expect a better +# performance overall. + +# In[14]: + + +from sklearn.neural_network import MLPClassifier +# store models for later use +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic', + alpha=lmbd, learning_rate_init=eta, max_iter=epochs) + dnn.fit(X_train, Y_train) + + DNN_scikit[i][j] = dnn + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Accuracy score on test set: ", dnn.score(X_test, Y_test)) + print() + + +# ## Visualization + +# In[15]: + + +# optional +# visual representation of grid search +# uses seaborn heatmap, could probably do this in matplotlib +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + dnn = DNN_scikit[i][j] + + train_pred = dnn.predict(X_train) + test_pred = dnn.predict(X_test) + + train_accuracy[i][j] = accuracy_score(Y_train, train_pred) + test_accuracy[i][j] = accuracy_score(Y_test, test_pred) + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + + +# ## Testing our code for the XOR, OR and AND gates +# +# Last week we discussed three different types of gates, the so-called +# XOR, the OR and the AND gates. Their inputs and outputs can be +# summarized using the following tables, first for the OR gate with +# inputs $x_1$ and $x_2$ and outputs $y$: +# +# +# +# +# +# +# +# +# +# +# +#
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 1
    + +# ## The AND and XOR Gates +# +# The AND gate is defined as +# +# +# +# +# +# +# +# +# +# +# +#
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 0
    1 0 0
    1 1 1
    +# +# And finally we have the XOR gate +# +# +# +# +# +# +# +# +# +# +# +#
    $x_1$ $x_2$ $y$
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    + +# ## Representing the Data Sets +# +# Our design matrix is defined by the input values $x_1$ and $x_2$. Since we have four possible outputs, our design matrix reads + +# $$ +# \boldsymbol{X}=\begin{bmatrix} 0 & 0 \\ +# 0 & 1 \\ +# 1 & 0 \\ +# 1 & 1 \end{bmatrix}, +# $$ + +# while the vector of outputs is $\boldsymbol{y}^T=[0,1,1,0]$ for the XOR gate, $\boldsymbol{y}^T=[0,0,0,1]$ for the AND gate and $\boldsymbol{y}^T=[0,1,1,1]$ for the OR gate. + +# ## Setting up the Neural Network +# +# We define first our design matrix and the various output vectors for the different gates. + +# In[16]: + + +""" +Simple code that tests XOR, OR and AND gates with linear regression +""" + +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn import datasets + +def sigmoid(x): + return 1/(1 + np.exp(-x)) + +def feed_forward(X): + # weighted sum of inputs to the hidden layer + z_h = np.matmul(X, hidden_weights) + hidden_bias + # activation in the hidden layer + a_h = sigmoid(z_h) + + # weighted sum of inputs to the output layer + z_o = np.matmul(a_h, output_weights) + output_bias + # softmax output + # axis 0 holds each input and axis 1 the probabilities of each category + probabilities = sigmoid(z_o) + return probabilities + +# we obtain a prediction by taking the class with the highest likelihood +def predict(X): + probabilities = feed_forward(X) + return np.argmax(probabilities, axis=1) + +# ensure the same random numbers appear every time +np.random.seed(0) + +# Design matrix +X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64) + +# The XOR gate +yXOR = np.array( [ 0, 1 ,1, 0]) +# The OR gate +yOR = np.array( [ 0, 1 ,1, 1]) +# The AND gate +yAND = np.array( [ 0, 0 ,0, 1]) + +# Defining the neural network +n_inputs, n_features = X.shape +n_hidden_neurons = 2 +n_categories = 2 +n_features = 2 + +# we make the weights normally distributed using numpy.random.randn + +# weights and bias in the hidden layer +hidden_weights = np.random.randn(n_features, n_hidden_neurons) +hidden_bias = np.zeros(n_hidden_neurons) + 0.01 + +# weights and bias in the output layer +output_weights = np.random.randn(n_hidden_neurons, n_categories) +output_bias = np.zeros(n_categories) + 0.01 + +probabilities = feed_forward(X) +print(probabilities) + + +predictions = predict(X) +print(predictions) + + +# Not an impressive result, but this was our first forward pass with randomly assigned weights. Let us now add the full network with the back-propagation algorithm discussed above. + +# ## The Code using Scikit-Learn + +# In[17]: + + +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn.neural_network import MLPClassifier +from sklearn.metrics import accuracy_score +import seaborn as sns + +# ensure the same random numbers appear every time +np.random.seed(0) + +# Design matrix +X = np.array([ [0, 0], [0, 1], [1, 0],[1, 1]],dtype=np.float64) + +# The XOR gate +yXOR = np.array( [ 0, 1 ,1, 0]) +# The OR gate +yOR = np.array( [ 0, 1 ,1, 1]) +# The AND gate +yAND = np.array( [ 0, 0 ,0, 1]) + +# Defining the neural network +n_inputs, n_features = X.shape +n_hidden_neurons = 2 +n_categories = 2 +n_features = 2 + +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) +# store models for later use +DNN_scikit = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) +epochs = 100 + +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + dnn = MLPClassifier(hidden_layer_sizes=(n_hidden_neurons), activation='logistic', + alpha=lmbd, learning_rate_init=eta, max_iter=epochs) + dnn.fit(X, yXOR) + DNN_scikit[i][j] = dnn + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Accuracy score on data set: ", dnn.score(X, yXOR)) + print() + +sns.set() +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + dnn = DNN_scikit[i][j] + test_pred = dnn.predict(X) + test_accuracy[i][j] = accuracy_score(yXOR, test_pred) + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + diff --git a/doc/LectureNotes/_build/jupyter_execute/week41_174_1.png b/doc/LectureNotes/_build/jupyter_execute/week41_174_1.png new file mode 100644 index 0000000000000000000000000000000000000000..51eceb2fa4112d0b0c00e81de2ab4c7b878a066b GIT binary patch literal 4442 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/week41_197_1.png b/doc/LectureNotes/_build/jupyter_execute/week41_197_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f67803304c427354d9489ebec45b63c6e2efa2 GIT binary patch literal 37317 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

    D%B<|<3|H9;60f(7 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/week41_197_2.png b/doc/LectureNotes/_build/jupyter_execute/week41_197_2.png new file mode 100644 index 0000000000000000000000000000000000000000..45a30c936b4131d2beee63d57097d127875ff9dc GIT binary patch literal 47458 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 z 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

    kCdJQtf9@_ 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/jupyter_execute/week41_201_1.png b/doc/LectureNotes/_build/jupyter_execute/week41_201_1.png new file mode 100644 index 0000000000000000000000000000000000000000..63f89ad964ce85a63c99eaaab0bd700523ea3b45 GIT binary patch literal 47022 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

    D%B<|<3|H9;60f(7 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 literal 0 HcmV?d00001 diff --git a/doc/LectureNotes/_build/html/_images/week41_197_2.png b/doc/LectureNotes/_build/html/_images/week41_197_2.png new file mode 100644 index 0000000000000000000000000000000000000000..45a30c936b4131d2beee63d57097d127875ff9dc GIT binary patch literal 47458 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 z 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