====== Závěrečný projekt ====== Téma závěrečného projektu si student vybírá sám. Doporučujeme jednou z dvou následujících typů: * //Vlastní projekt//: Vyberte si svůj vlastní projekt a pracujte na něm. Projekt lze propojit s vaší bakalářskou nebo diplomovou prací. * //Kaggle projekt//: [[https://www.kaggle.com/|Kaggle]] je oblíbený web s veřejně dostupnými datasety a [[https://www.kaggle.com/competitions|soutěžemi]]. Vyberte si jednu soutěž a zúčastněte se jí. ==== Kaggle projekty ==== Ačkoli si můžete vybrat libovolnou soutěž, doporučujeme jednu z následujících: * [[https://www.kaggle.com/c/facial-keypoints-detection|Facial Keypoints Detection]] předpovídá pozice klíčových bodů na obrázcích obličeje o velikosti 96x96 pixelů. * [[https://www.kaggle.com/c/titanic|Titanic]] na základě osobních údajů předpovídá, zda cestující přežil potopení Titanicu. * [[https://www.kaggle.com/c/iwildcam2021-fgvc8|iWildcam 2021 - FGVC8]] je náročná velká datová sada k rozpoznání zvířat z fotopastí. * [[https://www.kaggle.com/c/herbarium-2021-fgvc8|Herbarium 2021 - Half-Earth Challenge - FGVC8]] je obtížný velký soubor dat k rozpoznání rostlin z fotografií. Doporučujeme první dvě datové sady. Neexistují žádná omezení, jak postupovat. Vyzkoušet můžete jak tradiční techniky, tak neuronové sítě. Pokud si nevíte rady, zkontrolujte vysoce hodnocená řešení. Poslední dvě datové sady jsou určeny pro ty, kteří se chtějí poprat s výzvou. Vytvořte skupinu až tří lidí a ohromte nás svými dovednostmi. Tyto dva datové sady obsahují přibližně 100 GB dat; měli bychom být schopni poskytnout vám přístup k serveru s GPU. ==== Instrukce pro projekty ==== U obou typů projektů by struktura balíčku měla zhruba odpovídat struktuře [[https://juliateachingctu.github.io/Julia-for-Optimization-and-Learning/stable/lecture_07/develop/|ImageInspector]] z předkášky. Pro lepší orientaci jsme vytvořili [[https://github.com/JuliaTeachingCTU/ImageInspector.jl|ukázkový příspěvek]] pro tento balík. Projekt musí splňovat následující strukturální požadavky: * Obsah musí být netriviální. Nestačí zvolit soutěž Kaggle a použít balíček ke zpracování dat a spuštění klasifikátoru. * Root složka balíčku musí obsahovat ''LICENSE'', ''Project.toml'' a ''README.md'' se stručným popisem úložiště napsaným v [[https://www.markdownguide.org/getting-started/|Markdownu]]. Zahrnutí .gitignore je doporučeno, ale není vyžadováno. * Složka ''report'' by měla obsahovat zprávu s klíčovými zjištěními. Doporučujeme jej vygenerovat pomocí balíčku [[https://fredrikekre.github.io/Literate.jl/v2/|Literate]], ale nahrání souboru pdf je také přijatelné. * Složka ''scripts'' by měla obsahovat skripty s příklady pro spuštění balíčku. * Složka ''src'' by měla obsahovat veškerý zdrojový kód. Jednotlivé funkce by měly být seskupeny do souborů. * Složka ''tests'' by měly obsahovat jednotkové testy. * Lze přidat další složky. Projekt by měl splňovat následující obsahové požadavky: * Mělo by být zahrnuto srovnání s nějakou triviální metodou. V kontextu soutěží Kaggle může být tato metoda například logistická regrese. * Měla by být zahrnuta ablační studie. Algoritmus se obvykle skládá z několika kroků, z nichž některé lze odstranit. Ablační studie říká, jak se mění výkon, když jsou jednotlivé části odstraněny. * Je možné prezentovat negativní výsledky: nápady, které by mohly fungovat, ale ukázalo se, že nefungují. V těchto případech by měl být předložen určitý náhled na to, proč tyto myšlenky nefungovaly. ==== Odevzdání a vyhodnocení ==== Úkoly budou diskutovány jedním z vyučujících. Projekt je třeba dopředu poslat, optimálně vytvořením repa na [[https://github.com/|GitHubu]].