Detail předmětu

Konvoluční neuronové sítě

FIT-KNNAk. rok: 2024/2025

Řešení založená na metodách strojového učení postupně nahrazují ručně navržená řešení v mnoha oblastech vývoje software, speciálně pak v percepčních úlohách zaměřených na získávání informací o reálném světě z informačně bohatých senzorů jako jsou kamery, mikrofony a podobně. Dominantní metodou strojového učení jsou v současné době neuronové sítě, a speciálně pak jejich varianty zaměřené na strukturovaná data - konvoluční neuronové sítě. Tyto přístupy jsou jádrem mnoha úspěšných komerčních aplikací a posunují možnosti umělé inteligence.

Jazyk výuky

čeština

Počet kreditů

5

Vstupní znalosti

Základní znalosti lineární algebry (násobení vektorů a matic), diferenciálního počtu (parciální derivace a její význam, řetězcové pravidlo), jazyka Python a intuitivní pochopení teorie pravděpodobnosti (např. podmíněná pravděpodobnost). Jakékoliv znalosti strojového učení a zpracování obrazu jsou výhodou.

Pravidla hodnocení a ukončení předmětu

  • Hodnocený projekt s obhajobou - 65 bodů.
  • Dva testy během semestru - 35 bodů.

Učební cíle

Seznámit se s konovlučními neuronovými sítěmi, jejich možnostmi, limity a s jejich praktickým využitím převážně v úlohách zpracování obrazu a počítačového vidění s částečným přesahem do zpracování řeči a jazyka. Umožnit absolventům samostatně používat konvoluční sítě v praktických aplikacích a celkově navrhovat řešení založená na konvolučních sítích včetně struktury sítí, jejich učení, tvorby datových sad a vyhodnocení kvality výsledku.
Studenti se seznámí se základy konvolučních neuronových sítí, jejich učení (optimalizace), jejich stavebními bloky a programovými prostředími (frameworky) pro jejich implementaci. Získají základní povědomí o faktorech, které určují jejich úspěšnost v reálných aplikacích včetně vlastností datové sady, vhodnosti chybové funkce, vhodné struktury sítě, regularizace, optimalizace, přetrénování sítí a multi-task učení. Studenti se také seznámí s konkrétními příklady neuronových sítí pro široké spektrum úloh počítačového vidění (klasifikace, detekce, segmentace, identifikace), zpracování řeči, jazykového modelování, posilovaného učení a generování dat.
Studenti si vyzkouší spolupráci na týmovém projektu a seznámí se s knihovnami jazyka Python zaměřenými na matematické operace, lineární algebru a strojové učení.

Základní literatura

Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning. MIT Press, 2016. (EN)

Doporučená literatura

Li, Fei-Fei, et al.: CS231n: Convolutional Neural Networks for Visual Recognition. Stanford, 2018.
Bishop, C. M.: Pattern Recognition, Springer Science + Business Media, LLC, 2006, ISBN 0-387-31073-8.
Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning. MIT Press, 2016.

Zařazení předmětu ve studijních plánech

  • Program MITAI magisterský navazující

    specializace NGRI , 0 ročník, letní semestr, volitelný
    specializace NADE , 0 ročník, letní semestr, volitelný
    specializace NISD , 0 ročník, letní semestr, volitelný
    specializace NMAT , 0 ročník, letní semestr, volitelný
    specializace NSEC , 0 ročník, letní semestr, volitelný
    specializace NISY do 2020/21 , 0 ročník, letní semestr, volitelný
    specializace NNET , 0 ročník, letní semestr, volitelný
    specializace NMAL , 0 ročník, letní semestr, povinný
    specializace NCPS , 0 ročník, letní semestr, volitelný
    specializace NHPC , 0 ročník, letní semestr, volitelný
    specializace NVER , 0 ročník, letní semestr, volitelný
    specializace NIDE , 0 ročník, letní semestr, volitelný
    specializace NISY , 0 ročník, letní semestr, volitelný
    specializace NEMB do 2023/24 , 0 ročník, letní semestr, volitelný
    specializace NSPE , 0 ročník, letní semestr, povinný
    specializace NEMB , 0 ročník, letní semestr, volitelný
    specializace NBIO , 0 ročník, letní semestr, povinný
    specializace NSEN , 0 ročník, letní semestr, volitelný
    specializace NVIZ , 0 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

    1. Úvod, lineární modely, chybová funkce, alg. učení (optimalizace), vyhodnocení. (organizace, opakování NN)
    2. Plně propojené sítě, chybové funkce pro klasifikaci a regresi.(prezentace)
    3. Konvoluční sítě, lokalita a invariance výpočtů, inicializace vah vah, batch normalizace. (prezentace, ukázka vlivu inicializace vah)
    4. Existující architektury klasifikačních sítí pro obraz. (prezentace)
    5. Generalizace, regularizace, rozšiřování datových sad, transfer learning, multi-task sítě, semi supervised learning, active learning, self-supervised learning. (prezentace)
    6. Detekce objektů: MTCNN face detektor, R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD. (prezentace včetně následující segmentace)
    7. Sémantická segmentace a segmentace instancí. Odhad vzdáleností, normál povrchu, osvětlení a pohybu (prezentace je stejná jako předchozí).
    8. Sítě pro učení podobností a embedding. Rozpoznávání osob podle obličeje a hlasu. (prezentace)
    9. Rekurentní neuronové sítě a zpracování sekvencí (textu a řeči). Connectionist Temporal Classification (CTC). Sítě s pozorností. (prezentace)
    10. Jazykové modely. Základní modely pro generování popisů obrázků, odpovědi na otázky, překlad jazyka a podobně.(prezentace)
    11. Generativní modely. Autoregresivní faktorizace. Generative Adversarial Networks. (prezentace)
    12. Posilované učení s neuronovými sítěmi. Deep Q-network (DQN) a policy gradients. (prezentace)
    13. Přehled nových a neortodoxních aplikací konvolučních sítí a jejich základní myšlenky.

    Odkazy jsou na živé prezentace a je pravděpodobné, že se budou během semestru mírně měnit k lepšímu.

    Pokud máte návrhy na zlepšení, odkazy na zajímavé zdroje nebo najdete v prezentacích chyby, budu rád, když přidáte komentáře přímo ke konkrétním snímkům prezentací.

Projekt

26 hod., povinná

Vyučující / Lektor

Osnova

Týmový projekt (2-3 studenti).
Libovolná témata navržená studenty a odsouhlasená vyučujícím.
Postup řešení projektu:
  • Formulace úlohy a utvoření týmu.
  • Průzkum existujících řešení a použitelných nástrojů.
  • Základní řešení a návrh vyhodnocování.
  • Sběr dat.
  • Experimenty, testování a postupné vylepšení řešení.
  • Závěrečná zpráva a prezentace projektu.