Detail předmětu

Konvoluční neuronové sítě

KNN Ak. rok 2019/2020 letní semestr 5 kreditů

Aktuální akademický rok

Ř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.

Garant předmětu

Koordinátor předmětu

Jazyk výuky

česky

Zakončení

klasifikovaný zápočet

Rozsah

  • 26 hod. přednášky
  • 26 hod. projekty

Bodové hodnocení

  • 35 bodů půlsemestrální test (18 bodů písemná část, 17 bodů testová část)
  • 65 bodů projekty

Zajišťuje ústav

Přednášející

Cvičící

Získané dovednosti, znalosti a kompetence z předmětu

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í.

Cíle předmětu

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.

Proč je předmět vyučován

Tento předmět využijete, ať už je vaším cílem pracovat jako odborník na umělou inteligenci v předních nadnárodních společnostech jako je Google či Facebook, chcete posunovat hranice umělé inteligence ve špičkovém akademickém týmu, nebo si jen tak chcete rozšířit obzory o současnosti umělé inteligence. Neuronové sítě jsou dnes jádrem mnoha komerčních aplikací od přepisu řeči, vyhledávání obrázků podle jejich obsahu a inteligentních dohledových systémů, až po konverzační systémy a autonomní automobily. Zároveň jsou neuronové sítě i hnací silou současného pokroku ve výzkumu a vývoji umělé inteligence. V tomto předmětu získáte základní povědomí o tom, jak takové sítě fungují a jak se prakticky používají. Zároveň vám představíme konkrétní příklady praktických sítí pro úlohy zpracování obrazu, zvuku a textu.

Požadované prerekvizitní znalosti a dovednosti

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.

Technické vybavení

volně dostupné

  • Python, PyTorch, Numpy, Matplotlib, OpenCV.

Literatura studijní

  • Goodfellow, I., Bengio, Y., Courville, A.: Deep Learning. MIT Press, 2016.
  • 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.

Osnova přednášek

  1. Uvod, lineární modely, chybová funkce, alg. učení (optimalizace), vyhodnocení. (Organizace a projektyzáklady neuronových sítínumpy tutoriál)
  2. Plně propojené sítě, chybové funkce pro klasifikaci a regresi. (Regrese v PyTorch, Klasifikace obrazu)
  3. Generalizace, batch normalizace, regularizace, rozšiřování datových sad, multi-task sítě a předtrénování. (Přednáška)
  4. Problémy při učení, trénovací algoritmy. (Optimalizátory)
  5. Konvoluční sítě, lokalita a invariance výpočtů. Existující architektury klasifikačních sítí pro obraz. (Architektury klasifikačních sítí)
  6. Detekce objektů: MTCNN face detektor, R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD.
  7. Sémantická segmentace a segmentace instancí. Odhad vzdáleností, normál povrchu, osvětlení a pohybu.
  8. Sítě pro učení podobností a embedding. Rozpoznávání osob podle obličeje a hlasu. 
  9. Rekurentní neuronové sítě a zpracování sekvencí (textu a řeči). Connectionist Temporal Classification (CTC). Sítě s pozorností.
  10. Jazykové modely. Základní modely pro generování popisů obrázků, odpovědi na otázky, překlad jazyka a podobně.
  11. Generativní modely. Autoregresivní faktorizace. Generative Adversarial Networks.
  12. Posilované učení s neuronovými sítěmi. Deep Q-network (DQN) a policy gradients.
  13. Přehled nových a neortodoxních aplikací konvolučních sítí a jejich základní myšlenky.

Osnova ostatní - projekty, práce

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.

Průběžná kontrola studia

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


Podmínky zápočtu:
Získání alespoň 50 bodů z hodnocených částí předmětu.

Podmínky zápočtu

Získání alespoň 50 bodů z hodnocených částí předmětu.

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

Nahoru