From 7b07bf3ee13853beac7800327825fcc68ca58dd8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fran=C3=A7ois=20Fleuret?= Date: Tue, 25 Jun 2024 06:35:12 +0200 Subject: [PATCH 1/1] Added the report --- report/culture.tex | 227 +++++++++++++++++++++++++++++++++ report/pics/4_birds_1.png | Bin 0 -> 922 bytes report/pics/5_birds_1.png | Bin 0 -> 11995 bytes report/pics/6_birds_1.png | Bin 0 -> 12122 bytes report/pics/examples_train.png | Bin 0 -> 2373 bytes report/pics/occlusions_1.png | Bin 0 -> 11600 bytes report/pics/other_shapes_1.png | Bin 0 -> 882 bytes report/pics/other_shapes_2.png | Bin 0 -> 11704 bytes report/pics/other_shapes_3.png | Bin 0 -> 11328 bytes 9 files changed, 227 insertions(+) create mode 100644 report/culture.tex create mode 100644 report/pics/4_birds_1.png create mode 100644 report/pics/5_birds_1.png create mode 100644 report/pics/6_birds_1.png create mode 100644 report/pics/examples_train.png create mode 100644 report/pics/occlusions_1.png create mode 100644 report/pics/other_shapes_1.png create mode 100644 report/pics/other_shapes_2.png create mode 100644 report/pics/other_shapes_3.png diff --git a/report/culture.tex b/report/culture.tex new file mode 100644 index 0000000..f8f7767 --- /dev/null +++ b/report/culture.tex @@ -0,0 +1,227 @@ +%% -*- mode: latex; mode: reftex; mode: flyspell; coding: utf-8; tex-command: "pdflatex.sh" -*- + +%% Any copyright is dedicated to the Public Domain. +%% https://creativecommons.org/publicdomain/zero/1.0/ +%% Written by Francois Fleuret + +\documentclass[11pt,a4paper,oneside]{article} +\usepackage[paperheight=15cm,paperwidth=8cm,top=2mm,bottom=15mm,right=2mm,left=2mm]{geometry} +%\usepackage[a4paper,top=2.5cm,bottom=2cm,left=2.5cm,right=2.5cm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage{amsmath,amssymb,dsfont} +\usepackage[pdftex]{graphicx} +\usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,citecolor=blue]{hyperref} +\urlstyle{same} +\usepackage{tikz} +\usetikzlibrary{arrows,arrows.meta,calc} +\usetikzlibrary{patterns,backgrounds} +\usetikzlibrary{positioning,fit} +\usetikzlibrary{shapes.geometric,shapes.multipart} +\usetikzlibrary{patterns.meta,decorations.pathreplacing,calligraphy} +\usetikzlibrary{tikzmark} +\usetikzlibrary{decorations.pathmorphing} +\usepackage[round]{natbib} +\usepackage[osf]{libertine} +\usepackage{microtype} + +\usepackage{mleftright} + +\usepackage{enumitem} +\setlist[itemize]{leftmargin=0pt,itemindent=1em,itemsep=2ex} +\setlist{nosep} % or \setlist{noitemsep} to leave space around whole list + +\newcommand{\setmuskip}[2]{#1=#2\relax} +\setmuskip{\thinmuskip}{1.5mu} % by default it is equal to 3 mu +\setmuskip{\medmuskip}{2mu} % by default it is equal to 4 mu +\setmuskip{\thickmuskip}{3.5mu} % by default it is equal to 5 mu + +\setlength{\parindent}{0cm} +\setlength{\parskip}{1ex} +%\renewcommand{\baselinestretch}{1.3} +%\setlength{\tabcolsep}{0pt} +%\renewcommand{\arraystretch}{1.0} + +\def\argmax{\operatornamewithlimits{argmax}} +\def\argmin{\operatornamewithlimits{argmin}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\given{\,\middle\vert\,} +\def\proba{\operatorname{P}} +\newcommand{\seq}{{S}} +\newcommand{\expect}{\mathds{E}} +\newcommand{\variance}{\mathds{V}} +\newcommand{\empexpect}{\hat{\mathds{E}}} +\newcommand{\mutinf}{\mathds{I}} +\newcommand{\empmutinf}{\hat{\mathds{I}}} +\newcommand{\entropy}{\mathds{H}} +\newcommand{\empentropy}{\hat{\mathds{H}}} +\newcommand{\ganG}{\mathbf{G}} +\newcommand{\ganD}{\mathbf{D}} +\newcommand{\ganF}{\mathbf{F}} + +\newcommand{\dkl}{\mathds{D}_{\mathsf{KL}}} +\newcommand{\djs}{\mathds{D}_{\mathsf{JS}}} + +\newcommand*{\vertbar}{\rule[-1ex]{0.5pt}{2.5ex}} +\newcommand*{\horzbar}{\rule[.5ex]{2.5ex}{0.5pt}} + +\def\positionalencoding{\operatorname{pos-enc}} +\def\concat{\operatorname{concat}} +\def\crossentropy{\LL_{\operatorname{ce}}} + +\begin{document} + +\vspace*{-3ex} + +\begin{center} +{\Large Self-Generated Culture} + +Fran\c cois Fleuret + +\today + +\vspace*{2ex} + +\centerline{\color{red}(work in progress, to be updated)}\\[3ex] + +\centerline{\url{https://fleuret.org/public/culture/culture.pdf}} + +\end{center} + +\section{Introduction} + +The hypothesis behind this experiment is that high-level abstract +thinking is fueled by social competition. A group of communicating +agents that try to demonstrate their cognitive superiority would end +up developing a rich and consistent culture. + +The experiment is designed with a group of GPTs that alternatively +learn to solve quizzes and generate new ones. + +A ``quiz'' is a triplet of the form $(A, d, B)$ where $A$ and $B$ are +two sequences and $d$ is a token indicating if the direction is +forward or backward. Given $(A, d)$, the challenge is to generate $B$. + +The experiments starts with a set of quizzes, that is going to be +progressively enriched. + +\section{Bird World} + +The initial set of quizzes consist of predicting the dynamics of a +very simple world: A $6 \times 8$ grid with three colored ``birds'' moving in +a straight line, possibly bouncing on the grid's borders. There are +ten different colors. +% +\begin{center} +\includegraphics[scale=0.35]{pics/examples_train.png} +\end{center} +% + +\vspace*{-2ex} + +In each on these quizzes, $A$ is the left image serialized in +raster-scan order as a sequence of $6 \times 8 = 48$ tokens, $d$ is +either the token ``forward'' or the token ``backward'', and $B$ is the +right image, also serialized. The direction of prediction is chosen at +random. + +\section{Generating Quizzes} + +Given a set of $N$ GPTs, we can generate new quizzes as follows: +Select one of the models, and use it to generate the $97$ tokens of a +triplet $(A, d, B)$. + +Then with each one of the $N-1$ other models, predict $B$ from $(A, +d)$, and $A$ from $(B, d')$ where $d'$ is the direction token opposite +of $d$. + +A quiz is validated if \textbf{all the other GPTs but one predict it + deterministically correctly in both directions.} + +This criterion assures that the new quizzes are both solvable and +sophisticated, and incrementally complexify the culture. Imposing both +direction prevents the generation of quizzes which are not trivial +only because the prompt has been randomly degraded. + +\section{Overall Process} + +The overall process consists of training the GPTs from scratch by +iterating the following steps: +% +\begin{itemize} + +\item select the GPT with the lowest recorded test accuracy, train it through one epoch, + +\item if its test accuracy gets above $97.5\%$, generate $1'000$ new + quizzes, add them to the training set, re-compute the accuracy of + all the models + +\end{itemize} + +\section{Results} + +This procedure results in the discovery of patterns which are not +present in the original quizzes: + +\textbf{More birds} + +\begin{center} +\includegraphics[scale=0.35]{pics/4_birds_1.png} +\includegraphics[scale=0.35]{pics/5_birds_1.png} + +\includegraphics[scale=0.35]{pics/6_birds_1.png} +\end{center} + +\textbf{New bird shapes} + +\begin{center} + +\includegraphics[scale=0.35]{pics/other_shapes_2.png} +\includegraphics[scale=0.35]{pics/other_shapes_3.png} +\end{center} + +\textbf{Occlusions} + +\begin{center} +\includegraphics[scale=0.35]{pics/other_shapes_1.png} +\includegraphics[scale=0.35]{pics/occlusions_1.png} +\end{center} + +\section*{Appendix} + +The code is available at\\[-2ex] + +\centerline{\url{https://fleuret.org/git/culture}} + +The experiments are done with a GTX 4090. + +The GPT used has 37M parameters and the following structure: + +\begin{center} +\begin{tabular}{lc} + \texttt{dim\_model} & 512 \\ + \texttt{dim\_keys} & 64 \\ + \texttt{dim\_hidden} & 2048 \\ + \texttt{nb\_heads} & 8 \\ + \texttt{nb\_blocks} & 12 +\end{tabular} +\end{center} + +Adam, $\eta = 1e-4$, no scheduling. + +There are $N_{\text{train}}=250'000$ original quizzes for training and +$N_{\text{test}} = 10'000$ for test. + +At each epoch, for both train and test samples, we mix original +quizzes and the generated ones. + +For training for instance, if there are less than $N_{\text{train}}/2$ +new quizzes, we take all of them, otherwise we sample +$N_{\text{train}}/2$ of them without replacement, and then we sample +without replacement enough original quizzes to get $N_{\text{train}}$ +samples in total. + +We proceed similarly to get $N_{\text{test}}$ samples for test. + +\end{document} diff --git a/report/pics/4_birds_1.png b/report/pics/4_birds_1.png new file mode 100644 index 0000000000000000000000000000000000000000..961b95da05f30fa83252c0735f0acf573be0ddc4 GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0y~yU}Oif6FHcGWQg!*W}rYzrn7T^r?ay{K~a8MW=<*t zgT}<#iMAex9b}Hi2X9r<R~fVjuqmE8WAsc#v$OB5y@)?8NN4$?_`rdx9 z$6qGRHB!}1eV)O~rX&3^;Wl-TV+tZ4%uF<%J4>BUxVzOX?A8oX-`HCxM5@%j&pN?5>*~KEZk%d!9BqY#D(rnR|S4$#1F4pa7u0QhC`$^D= zP$uQ$Oj;KdcGrEd|8aNi)cLc%Olm4z@cU??-LZxPdKXq$p8LM>v56nUf8&Cs+y6|p zGWhLTwRWj%U&FuL2ak3w)vP}7l+WN#%86xfyy|8-+41k0f6+X(u`zl<{@K@SclKXq zSMZHh&2MOSPT1pc^R?`~ySMM%-k(0}?_Y-Ar9~U(I$81qqlL4;BeIx*fm;}a85w5H zkpK#^mw5WRvcF&x=an}2Ty<~_Fy2;rx;TbZ+EL#NlF6jD+|5b05w#T)YvU zqgi$Cy3eJVGY*Ab6b}MMwnbXh|4lmHFX#JCJ}N7AdxCg(@W)3Yzt5kapFd9`!CiC# zR{-k@rVz$e451BL4p8p8yiKfsUDMOvMx=k=wfL*J@adgDj?4|tDBRuUHtRc|jp6aO z!^+*oda*X=)lMEP#WVnDUc>!Vub(VxC)v{{{rUUoLPfEj-Rb9TqOoO@Y&KY!$mC6u zi3vy87~&`ze|u$9tMS?dBaflfUt0O%dnSXI-Z)(58ikB$Rk&!#&w>|B>?n;T`HfAGFO;;n&SG z^OTdeUOy}1UzKb4-oMp)c8{?62clhTMvz^j=cj`}M{NIbATsZ}mAv@-1qZPE9vE{B Z+vJWfcR#jQa``?h$#R7 literal 0 HcmV?d00001 diff --git a/report/pics/5_birds_1.png b/report/pics/5_birds_1.png new file mode 100644 index 0000000000000000000000000000000000000000..09870c72abfff3f91b25b900ac0b7af1341dd86d GIT binary patch literal 11995 zcmeHtbx_;e+HPF0aQIHi@!(YX093LPKJ8%GJRveJet(sGMIXV+IgKTWWI2wjoyo%`_2d{WGdWdhd4%ziIXFD04g#-CwnA-V*x^ z;cnh+7Ij*woK%aTx)pqX6n8!uc?~1%5t0mDyLb9Io+m$?g2OeNXRqTY)w7laN6*ab zcLT{U*0m2CGuF9&UUc0|3cW1Uc2T!i-d=iEd2Z|wk>B@~?*$2om&CKo1N1=un=1`h zLOGCasvcupIQ=0dQ`3h;;Gz@`x9U@Wf$f2-#UPfo@#v05Da~HnbcFV{r+wpAEz;N~BK>3^I`JDwvZQGC8p38{Y zB~Qs$^LSg`$?6iDQC2?6c{Se;dEMvNfjz@17hFz1e$t2( zj@@?k-7+*t$~#6!Y{h*lm*FZS)Ll8VZh89JoGI5h!@5#sbdT$m)qIrNi<$j>>O$fd zc&`wmCRauFwqw}i{4$G-*%H^;bq3R538Mrw-$<~ z1^P+)LIS>MTc6pd3NA5lp8Ggc4t)t;Vfc8VPc6~lf^1Vs3k!xUF-qNtJj5gM~*NED|rm zdg&#@$6_J_TNP@xutxarTQ9Y?)$QP75;b+*HwS zVjtgCvg)Y*rE%F>#Or|)A$k|1Xb*l;bZuP6_t;vhNq`;AHI5g;V_yq(8q3AQkSl-*_d)$(XB2hk(+bxofrj) zx%1?AWal*8z80Td?sJ?l97U2JSfiaka^1dP3ZKQV@P$#uIWNv=O^F}0XX6<$ZrpZf zqbYI;uP=g+9Stj9W~91%br)-ON3*)u**fPtDk1p3kuT(HB#Y)iwl8LWWbcOrc1W`$V~HG{GRMWa`nuEu~(cgtDW#o8al_2xXj}< z?r-DD_VMzuIK#6F+7;coFo)j_Q_%K+(BJf^y5YN%r6OhTzGx@%iEm&8TiS!CmVqp7RdZ`6wQ=?|o6tgQ6~jPU9*YW{%fYn1o~wAg-Szw>E*Ysev=V^ldz z;GIM9LC*1xM`9k1ZS1!N4Eeo#m_lqLTr%b0GunC2-eCq)nq65tt_Uh#6;nJ;tnSCB zf{M#lN1sH1Y|gCPyJ*ZfR*9G40FY7zjg<5w^R+Ns`MZ90p~rq7bHBdmAx3+A=VK7$ zDru%LWmF<$-$0m{0Z>dJuuQiD>1Psr zWv0_9SV>0AKYh5!o84A+w3)=Cm{t<`PJF1?@F|cYhvos~F6(Fai_~uTDF`l_zc6M6 z=WiMpPc6AadL&}b%pg_`?S*HJS5C_956PX)8N=x6JvAhx01r4mYp;>$4TsrksdvJA zMcPM5zeBN1b0daw(U#qDySU~X3Ud~{7``#lFbXKM%o{lBK6|?J#+3lnJK}ZQ_`Ic7 zIBOw@k#ir*04_ulp)=z44juPR*S%p!v1qbX4QC@KsYejnfyhr|uWW-UpE?{&sRWOC z+LQ?9Xn*E;D0k^WH>qTnj%HN$q!?BvCL=`g(KlJzMc9Gg#Mk3YDo6EgiP}W@hlzNA z-5fKqG*hQ5MtO&3+8dt+)HED+EV-FAv~tHjY$B`qu}o>}!}PQY*XM#PKc3=wKvAtH z6O*zPqaCe=c)pT`uF^I$+VdabK{h;W zvl4H_w*?uQUOFm27>BDf!OQ_Bk~1SuO~iD2^(`u@Y$$dZ8tj)aSAZ0>Z<=X}HV8n??asn2>yD~K25^Qm|U zMEFby`caLLHG;`(BcFPTE~D!)Q|8P?)?$o7HEa=tj=dfDvdF7F=Mf@;Ly?XAphV(X zUvUx`NvB6BL{<$m5WMy%>?ft#`5}HFzE@UAGZuBg=@+nmfasS}(K2{9!d4-&=7bG= zt{J8l6D|Ux?9I}o;Gn!f9593pfclW8!3WP2Ndcn56iHkm%da1YZ2TDLa#Kw6Utxq^ z(%Sh8M&#B!qxW=5?{n9Yc*}5GyoO)j9z@^D66}Ga*e%y*6PcE8sKnr96i!!wp2`N0 z4~(Gl02|Cq@Y+w1I7Sb<6;jF8udIJ5b|oTmC70k9`*AD!e{F#)X% z;G3jpc7K}S4j?;uc5s`?3o4lW&TXKSTuGn+=b=^3A|dWo$PK%&EJp$dNm-=VXcm=T zy4kKQS137EM?p}`mu2`m{83dS8;<_g1CtbtNN5D(G6eCG@-FXzt za(F`6+ribHR=jQuQ_>Fu3!l5+J^{IuN)DWcAXpsT6eMA5M_VLoDrEd+YBCyT1>1JH zLYuR+8W~0c{%KkUXkZ0F>8?Z{`DR(_k{oQyT2snZtpzN~d)}QfvJB5L?XEgS4|EA# zFnC4RD5fl2^Y|X!`B@EK`+5HkoT=1D2-pn8>1h;gRqp$urz{-vKg_ zc>BS4+O#C@^89B5MPHH<%esg!b)65miB0VaJQFA}|_5FXIp3LTjOmx_V{L81ts=nI9}U zsjnuItQ4JMu7Q{^O=U|!?ZEI+dE7>|ID|(Oc3y1R<_Lu;I-#tPmRe>n1fX6bS0fkK z1(>Tbt)UT>3ahjJ@^FAG)jdc>%&P$wr4hCeQ#E?b6dhanQm@6Zyva z-C#r7&6EDToiQzU_gX5ZBK0+$EMDh(a`gnhE#BCCZ#;rA41KIvV(A=9G6z9e8nxiw zcDwwWKHSICy|@7)rDZ)BOw|fv0(V(SV2@6gB*&rxRXcCe!?)V+_{uZ$-U%~crgmK@ z3yz|INMVkE?iHua(clyJRscdbl1$Hf#Dp+?0Z5sVj~H63Hj3dDSYShW7KVhpG-5%Y z*wL;${HRi{P%ANQIkTKBw{Rnj5WndOx;gsMb^kh55T#vO#fXf~v{U(bMmRz<`D@yg zLbg)q8VQ?2F=<)GyE8l-jO7Hq3Z+-84bPJ(dqh%KpF=As{B1_66+SgRipH_jOuV!B zA-wzc!6(Be+^*7KU9M>l6MANuFZy}i(gB~>n4Y})s4600rDD6TT%S1+dr%yHQy-t6 ziT#yaKjmAZFyUCjOjXGzy59E@X&(jXaHDk+e_BiuxU#z7S9@pxo!`Bnk=bT*MK6=E zs+Bo;uGA&It(((Cz!B>q$3nc4MGb8tC|;L&XYlhOP~S`eJ@L8L*7Oh%BX~vO8cbc9 zs`r2-FG1Dn=>rSag@=~YF6%}UX9(dn$L!q6lyk5*)?leW~>C0C_13?58~$ve04HHPG-(CiOF)BO3x}6O^!A zwQDEJ=$>Sp0iO)o#!JY&^>(D=Y92=~lF+sZ@wd6hg)coHqPn}WL241seoO_R>W9L$(H;k>o;agD&Jxa7j66Lao z-%GH)b%Y=;#1|XPn)=JnxG?|2%uu_{@vyFN-L93uKSbkOH z4*N2LC&PZ7cOA?3W``t=N0mUEkjrGmoAjd3ne(04cmXDK>4J55O&tnpNd}!~?3%sl z?T`Jx^Z|??`fcXwD_gWb@gSDWv381l`tppXskTJ52Gh@$pti1Gr@Od(R6|kqvbI=T zJrQ^k*BJ1Y_5*Oq<)@o5tUV4 zU+yECQ^iEKR!sd`{3Y@l zlSR!btD5!hXpzn)fbrNjCG66ql8c45_VdVS+%v-YK@ib4Zr=2WZo2&Od`dEFbBi1^ zu5aPWbVYwkff*0FA%iy`tci$N;Q0^UtPcA9QBw{W^=pp1&=M|kLe&M?QkEdKHlnq6 zMh^zk=6f_=Jf(EsEEO;fg(n+h?cgml%vdXSTCZq$w~>?_AAUS>;|z+%^J9 z65}-Z1Or0SW*2eP+POlhJIU}$R{)>lSS_p)nVXbt_w|80DCGh~+J=6qx2?)?2uX-e z5ey%}T~p-mn_lVk*pXU>3|^m}QT><*z$*I2M!Jp>ipg9FHPeitL<^E{KWW%{c0R@b zG_FnAaGJtZnT(q2DKNk*yLWc|;;x;PwF;}HkPDMjz5yD>L=QUHPqQ)|+BjH2N?ImC z5G3mK^5{gpMrL?g<6v$$?Sykft80g+DZX;~USiK$yb_+K?^l}zK=o%OP?FhOwM6Xn z73EB|%QT5ySN41bcHI~}f(cFW*gIcB2aXg?+C|>yyw=gkh&F(!Wtt--haAE7bBT`a zjXfFFHr*Yi-XKTp}>*|gqpSpmMlHIjMs05K>iuo+Onp@sNo8r79J(sKT;zOB7 zx|508)MS?G+1nj|Msg{O(}*Q{E`^eEkJQ+JS0E!Jd>U+~z_6Q7N_!Dg(e!e60cX{^ z-G@y`fe>ry=84_*doYr33}|e-q|S_iit21f`RWb^FX#rNz%H-$0Y1TbTCZrqFfR>t z{||aW^Rom*^D)jZ8i0Z?@u=e=8wWdq<+nv@-i?IMCE0W*UUALkWK?N3K8(H3fQc1i zQJfbqCw!q~)Oos=+{`g5ql|c@(pXWu!CDg@>!@7eKY(Rq^N1zt2YGn@!jz;urVXe1 zSB0WZ^(H`KW~|Bl<%87b5gcGLX2Yp;aXSW!*${A<19g9DE?HPx_*{qU7g z)Vf*lK$ACBXp9q!^y_zfvVpf4XJfdt;!59-izI4bQCTUa%@8h3LNBVl1Ez`;?B+X3 z@BD73R?(pN9r8S?!PJd2BT7`fJUywz5?Doku?FVz&X^FMyC)RMH8ERcQ0$zOwOj!I5(abk8%D4RN zT~b$M0r;dTLkt{J!hqyPE9N*>>qH8jxTS$(R=k;@L|ul)X>iXp74_+IG>wYtiGlp& zN?ZD82982z={oPD{dR-M$cNhSdJb`}N$x2VHhZ}@XXeAxTM}N#YQdAbpBXRC-ok6T zgSR_?2u;xd+cHF8mgH@1giUf1gN$8PxkE%jGG5|#EE{=MoH6YLp3Om^e;QWyV)5k< z+$y`vQis&vmip@pSk%-P3=&>HPq!4ePAOR% zWL-lP;QAD{6jF7G17%MOqhij4wGR7d+ePz1 zp-;I@RmA$KW?eK)-ycR(oU0G#`(mEe0X7AzUru21hT%3pwalok?M2X!Sv0XLThJe8 zoVmIcSub)`e1G#GJ(SRL?E-!6$=R`cHI5u@KgPH= z)c`Mnljs~xqRqFV`ty67Y@+s8FUu5Lav!Dnm4~ExCg5*)WDUN!ncC_7`h+BL2Vmoa-fToRlZH#>%&BQ& zXKXuaSS5!0y7fi8;2z$lR$=govxjc>TRFbEjA`86o4a!$AU$CyF-@X$ zn`4SVku;Z9wNuBb&cVKO)Jx;Xr04x5-Xpti!kV9R;!_FC=L3QSX2$aMWXPsB>Ow@q zI4HTx{DbSYGWUIkzaa<{tu(K8-sROs_^V+s=IH}x@G&`^tyM&c(?8J^UQN1#4zgc< zW21TexTxgTFFPG5Dq#&iUT9L&@F6XGXOt9rs|a;Id{;2ZlIC5b@Z&(RWOEPaBto7^ zd)!x3)$Q1LFZhUi-yL1Lp|ZZLGOxDeYmTaeX107_um}j0NfFQ_lEd@i+8E$@(H1{`FdG1E-xnz0Hqx?xl|ZaCZ%N|A0?oA> zM+}t>K6}%_8oub!XcWkaAzN*##@f8xs8Vy)MV5^LbUns2Yl7Snzzy0JFLPqcqHF41 z+L3i#h6EMP>N2#(3mt;JVsbC>!Vm9I;5gzlz$aoL2pUCdpU0UGnSILMJnz!pZRcN? zNy*AWD8_vkvfhwxVV#vIV@_81%2cfW3DQtTczY7-ADhs~Nu$j=`L3g%zD*qhAQW9F z;hP0{FG9%Oqdh2!yVi2a#_Z->^~aklO9;&lO|Wco72h)vDAQ+LD?z8VXb%srJTwcI z4Oe9uqi50cLAcK4BRXQ>wi}tg*4mOo<{i;UUyb~nvp0nUB8z-R35DZk9dyq#=J!>( zt0Gbo_rmOyjWMDNk2{9>(w33v)#uJQ8t);{tx+6}#Lvc6dDF)>+POH(317Q2PQE-A zrekhX&sXig@7-PE8A^1Lcn70?GeVO;{>G_j??-W0@jNpuDHkc1e#t+i8-ff{T(CcT z&1^AIm;C+w+320)DZ543IG$-|f;O`WEyl-D!m1>CHlE?#>riX!=7ELs?ikN6_^0Ba8?vZE|_{{fs9gBa)7*g3cbDUybYy-pK6D zf1Rl5sHCcVz)k^kyc56h`9>CFC}c*}LMjd~XXWyoUcW?j8;RS;l)U0ooEz&l+UJEf;q_84t~2o}oZ* z3`oE&{ie>%a4XVve|KfEEGg1&bEQ?L?&=wt3;w{}NB7U9{d(>{`Z;WwoVX$;nDm9S zBOsy3YvCMY7K({6GF&*xPK_7VT8jrrEV3Ct^wgU@IZuXG_`Np`#D)I2XMDm?o=0{eEAY$yKsGa zRqor6hlI*8&k9$KU5+fPcUITll!ulBaRY*cMTOa$m7;&D;B&#mg%3Wq_$9P>1!?l| z4e!LDWjbY*%9#$q4SL!+eL-Qw*bfGVc(<6@qvO|i86@5>%lqhmaSx17%&etaC5yHk z0y(Y`u4Sk#thQ>P%$ted(Rt!6;^vNKtU$ex7@>d&WBsKt3_ z3K!TxHVLQ`^hQix*14q$9QK=24SnStG%Xg1!KAFl#A77a)smqWEO@u`%1~)MpfxnG z`&4B^yH5|D=_5MF7_cSaNb+K-A~iSjBq_u-@4ClTqBp3Wd#prc&b#_Al z`MLSIL0t0Qww}C<68JzdH@Fodock&h(4o4-PqmyQQ103)0rv3HXZ>3Ul^AiZe2z`hoxO&(TFq z?Vt2c?tiL)(u2nv>cRu&2JtvL^8D4p9VzdLBKgyye{12ci~3Umk2b>H*~85eA@7NB zLNfi80&e+FdlwHkhu`7AEqM?Q2uBpu9W^TWZ$m07t7-nz;+F*0wvH~ptx#hB4T-e1 z`j=RL^X*s9?{NO=2+I7QynjRgBlh256iQ7EBIj)B@yk7BIdR5c<3r%imbP%n?;|&u z2nyo`TX6{rLJ?g2mi#a-VGu8v3n~Z~6cL7rfUUrYzffqn*`l%%>hM>ueo?_uRA5V( zFbFJy;DVtzx%k1nFfNz~KbT7h!3P$x;uV7N3WI)A!7U*Q&TfuS)O6Z9Lah-zE>70J zJAMfck=9feXXNGn1Nyr~(*cUKLK%oNs@ghvc>fEkYwL*6K|+722^Ip2fca6w2?_D> z3xoOp1=2^jxuY`i7bh6R&G$#ouW5mxf36+B)5hzj+FFyn%2;t?^1q(pP^&joF|1K3^2w@nnr3e?FAV`RdpHEl>l})^;%z*OqSqWKMAq4p>|IY62 zY=!iKx*?>kQ97cuLZ#<#t$=L5CyM>=XfGSYuUS9|#sw1O`j=ore+tI)XTUta_Kbf- zEXMPHX(IL;@Rv;nW%oxLYV$(vg*^Y<4FA;Z*S7P&`1x}#{uf6;QU7<4|485e%JpBl z{v!qcBk+H->%VgSM+*E$;QwaV|2Mht|8<-~IHBHxyikWF?F<<@)Ikf+Majq=03aay z^+f|@zNA7m;vkjP^DY3(o&vDA3?cMB1SP*-?M ziB7r#&E9#MeouAcC6=(Guf3x)AXz99K#U_r7nFW}NpSuC47cFiX_eXFf z7P{+iodB+YZnVZQl%IPw!&>GF^^=}5-1S-CbiC%&7YN1e;Vnm(pXDxx^wd^iWj4^>NIopo?mZVOwj&ke1FwkHP!*+?H{BU1o!*BmBy}4 SN{fG;!j~og0wn$BNMLZlz8~^}-r>rFR3;;mE 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 G!T$&HmLER= literal 0 HcmV?d00001 diff --git a/report/pics/examples_train.png b/report/pics/examples_train.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b349fff461737afe76d9e337c76019a3d4279a GIT binary patch literal 2373 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 literal 0 HcmV?d00001 diff --git a/report/pics/occlusions_1.png b/report/pics/occlusions_1.png new file mode 100644 index 0000000000000000000000000000000000000000..28c39babd664bf05cbb100ddd6f95742713fcbc7 GIT binary patch literal 11600 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 Lwo;|S)1dzYkf=&b literal 0 HcmV?d00001 diff --git a/report/pics/other_shapes_3.png b/report/pics/other_shapes_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5779ebbcdbae9677ad4b4273e71316bd49c5d910 GIT binary patch literal 11328 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 literal 0 HcmV?d00001 -- 2.20.1