Hluboké učení
doc. Ing. Petr Sosík, Dr.
Hluboké učení

Conditions for passing the course, study materials

Chapter contains:
1
Web

Umělé neuronové sítě se inspirují fungováním neuronových sítí živých organismů a mezi jejich schopnosti patří např. učit se na příkladech, vyrovnat se s částečným poškozením sítě, zobecňovat naučená data. Důležitými vlastnostmi jsou masívní paralelismus a absence centrálního řízení sítě. Jednotlivé neurony v sítí si vzájemně posílají signály, jejichž intenzita je modulována vahami synapsí - propojů mezi neurony. V každém neuronu je zpracován souhrn do něj přicházejících signálů a výsledek je přeposlán dále. Sítě jsou v naprosté většině aplikací simulovány na běžně dostupných GPU, speciální hardware se dnes používá v minimální míře.

Chapter contains:
1
Homework Vault
2
Web

Lineární klasifikátor je nejjednodušší model hlubokého učení (v tomto případě "mělkého" učení, protože nepoužívá hlubokou architekturu). Lineární klasifikátor implementujeme pomocí jednoduchého modelu neuronu - tzv. perceptronu, s nímž jste se seznámili v předchozí kapitole. Vyložíme základní rámec hlubokého učení, na čem je založeno, jak probíhá a jaké základní fáze a komponenty používá. Představíme tři algoritmy tréninku - lineární regresi, perceptronový učící algoritmus a logictickou regresi. Hledání minima ztrátové funkce přiblížíme z pohledu gradientního sestupu, z pohledu algebry a pomocí počtu pravděpodobnosti - aby pravděpodobnost správné klasifikace byla co nejvyšší.

Chapter contains:
2
Homework Vault
4
Web

Perceptron je souhrnný název pro přímovazebné typy sítí, jednovrstvé nebo vícevrstvé, které používají učení s učitelem. Toto učení je založeno na minimalizaci ztrátové funkce, nejčastěji s využitím gradientních metod. Jde o momentálně nejpoužívanější model UNS. Velká většina aplikací UNS je založeno na perceptronech. Klasický algoritmus Backpropagation ze 70. let, který jako první umožnil učení vícevrstvého perceptronu, je stále používán a optimalizován pro zvýšení rychlosti a účinnosti učení.

Chapter contains:
1
Homework Vault
3
Web

Při klasifikaci do dvou kategorií se ve výstupní vrstvě (s jedním neuronem) používá obvykle aktivační funkce sigmoida, a jako ztrátová funkce sítě se bere střední kvadratická chyba (mean_squared_error), anebo lépe binární křížová entropie (binary_crossentropy). Co ale v případě více kategorií? V této kapitole odvodíme, že přirozeným zobecněním sigmoidy na více kategorií je aktivační funkce softmax, a ztrátovou funkcí poskytujíc správné výsledky s největší pravděpodobností je křížová entropie (categorical_crossentropy).

Chapter contains:
2
Web

Pro zvýšení rychlosti tréninku a zejména pro zlepšení kvality výsledného naučení sítě (kdy nejčastějším problémem bývá přeučení) je nutno laborovat s nastavením sítě, tedy tzv. hyperparametry, jako např. počet, velikost a struktura vrstev, jejich aktivační funkce apod. Regularizace je pak modifikace učícího algoritmu zaměřená na snížení chyby na testovací množině, bez ohledu na tréninkovou chybu. Konečně optimalizátor je obecně funkce vložená mezi výpočet ztrátového skóre a úpravu vah s cílem zvýšit efektivitu a přesnost učení. Přestože existuje řada doporučení, jak tato vylepšení sítě používat, není zatím možné je zcela automatizovat a zpravidla vyžadují experimentování a patřičnou zkušenost toho, kdo síť nastavuje.

Chapter contains:
1
Homework Vault
2
Web

Zpracování obrazu je dnes jednou z nejrozšířenějších aplikací hlubokého učení a výsledky jsou často srovnatelné s lidským pozorovatelem. Obrazová data (tj. matice obrazových bodů) vyžadují poněkud odlišný způsob zpracování. Dříve se obrazy složitě předzpracovávaly a extrahovaly se z nich tzv. příznaky nezávislé na obrazových transformacích (posun, rotace, změna měřítka, osvětlení...). Příznaky pak sloužily jako vstup sítě. S nástupem hlubokého učení je možno napájet síť přímo obrazovými data. To však vyžaduje mnohavrstevné architektury se speciálními typy vrstev, zejména konvoluční vrstvy a vrstvy sdružující dle maxima (max-pooling).

Chapter contains:
5
Web

Sekvenčními daty jsou nejčastěji texty anebo sekvence obrázků (video), hudební záznamy a podobně. Tedy data, kde existuje vnitřní logika a závislost mezi jednotlivými prvky sekvence, a to mnohdy od sebe vzdálenými na textové/časové ose. Rekurentní vrstvy sítě se snaží tyto závislosti postihnout pomoc vnitřních zpětných vazeb, tzn. vstupem do vrstvy je jednak výstup předchozí vrstvy, jednak výstup této vrstvy samotné z předchozího kroku výpočtu. Graf propojení neuronů v síti tedy obsahuje cykly.

Chapter contains:
1
Homework Vault
3
Web

Transformer je model hlubokého učení, který využívá mechanismus sebepozornosti (self-attention), přiřazující každé části vstupních/výstupních dat k ní relevantní kontext. Používá se především v oblastech zpracování přirozeného jazyka (NLP) a počítačového vidění (CV). Transformery se zpravidla skládají z enkodéru, který kóduje vstupní sekvenci do její vnitřní reprezentace stejné délky, a dekodéru, který z vnitřní reprezentace generuje výstup. Některé modely (např. pro generování textů) neobsahují enkodér.

Chapter contains:
1
Homework Vault
4
Web

Introductory information about the course

Požadavky na studenta
  • Seminární projekty návrhu a tréninku neuronových sítí zadávané na seminářích, termíny odevzdání dle pokynů cvičícíhoNutno získat nejméně 50% z každého projektu.
  • Sada teoretických příkladů k domácímu řešení, které budou průběžně zadávány během semestru. Musí být odevzdány přes odevzdávárnu, chybně vyřešené příklady budou vraceny k přepracování.  Nutno získat nejméně 50% z každého příkladu.
  • Celkové hodnocení podle součtu bodů: 50-59 % E, 60-69 % D, 70-79 % C, 80-89 % B, 90-100 % A.
  • Seminar projects for the design and training of neural networks assigned at seminars, submission dates according to the trainer's instructions. At least 50% of each project must be obtained.
  • A set of theoretical examples for homework, which will be continuously assigned during the semester. They must be submitted through the submission office, incorrectly solved examples will be returned for rework. Must get at least 50% of each example.
  • Overall grade by sum of points: 50-59% E, 60-69% D, 70-79% C, 80-89% B, 90-100% A.
Literatura

Základní:

  • I. Goodfellow, Y. Bengio. A Courville: Deep Learning. MIT Press, 2016. Dostupné online.
  • F. Chollet: Deep learning v jazyku Python. Grada, Praha, 2019.

Rozšiřující:

Motivation and principles

Úkol: Trénink neuronové sítě pro problém XOR

Jde o obtížnější geometrickou variantu problému XOR. Pokud se trénovací chyba nedostane pod 0,2,  restartujte učení, dokud se to nepodaří. Laborováním s parametry sítě můžeme dosáhnout ještě lepších výsledků.

Odkaz na úkol zde

Další studijní materiály

F. Chollet: Deep Learning v jazyku Python, kapitola 1.

R. Neruda, J. Šíma: Teoretické otázky neuronových sítí, kapitola 1 (neaktualizováno).

P. Sosík: Skripta z neuronových sítí, kapitola 1 (částečně aktualizováno).

Perceptron computing NAND (3 points)
Build a perceptron with an activation function sgn, implementing a three-input NAND function: y = not (x1 and x2 and x3). You can find some hints online at https://www.simplilearn.com/tutorials/deep-learning-tutorial/perceptron#implementing_basic_logic_gates_with_perceptron. Negation can be achieved by changing the sign of the weights. I recommend writing a table of the NAND function values to find out how to properly set the bias.

Intro to learning - linear classifier

S. Lazebnik - presentation No. 3.
Slides to study: 1-20, (24-28), 30-31, 34-36, 39-47
Další studijní materiály

F. Chollet: Deep Learning v jazyku Python, kapitola 2.4.

R. Neruda, J. Šíma: Teoretické otázky neuronových sítí, kapitola 2.1 (volitelný materiál).

P. Sosík: Skripta z neuronových sítí, kapitola 2.1 ( volitelný materiál).

Mean squared error (3 points)
Consider a training set with 30 samples (x_i, y_i) and the loss function MSE - mean squared error shown at slide 18 in the presentation No. 3 - Linear Classifiers. When will the total loss be lower: if (a) the difference between the neuron output w * x_i and the desired value y_i is 1 for each training sample, or (b) if ten samples have the difference 2 and the remaining samples have the difference 0? Justify your answer. Hint: just use the formula for MSE.
Gradient descent (3 points)
Explain what the gradient of a loss function is and what its geometric meaning is when we think of the loss function as a hypersurface. How do we use it to minimize the loss with Stochastic Gradient Descent (SGD)? What does the word ``stochastic'' refer to in this method?

Multilayer perceptron - the basic model of deep learning

S. Lazebnik - presentation No. 6
Slides to read: 1-32, and the 50. Please read the Andrjej Andrej Karpathy's post why you should understand Backprop (follow the link at slide 50).
Další studijní materiály

R. Neruda, J. Šíma: Teoretické otázky neuronových sítí, kapitola 2.2.

P. Sosík: Skripta z neuronových sítí, kapitola 2.2.

Derivative of tanh (6 points)
Assignment description here: https://www.dropbox.com/scl/fi/l7xpewz2so37l0ar6nk95/Assignment_tanh.png?rlkey=spsbhkllpgl77kig4owht0k7w&dl=0

Classification into multiple categories

Hyperparameters, regularization, optimizers

Momentum coefficient (4 points)
Assignment description here: https://www.dropbox.com/scl/fi/hdn8co8zc5q6x92ibhzb4/Assignment_momentum.png?rlkey=n4l8cexvoy2gf3mvqt31v9dwt&dl=0

Convolutional networks for computer vision

Recurrent networks for sequential data

Úvod do tématu

Jak bylo zmíněno v anotaci, rekurentní sítě obsahují rekurentní vrstvy s cyklickým propojením neuronů. Samotné rekurentní vrstvy ale k naučení nestačí, protože u dlouhých sekvencí se během učení algoritmem Backpropagation through time (BPTT) ztrácí, dík výpočtu gradientu, závislosti mezi vzdálenými prvky sekvence. Používají se proto speciální jednotky jako LSTM (Long Short-Term Memory) a GRU (Gated Recurrent Unit). Ty řeší problém mizejícího gradientu tak, že přidávají jednotce další signál - její vnitřní stav, který při učení nepodléhá derivaci, a tím umožňuje zapamatovat předchozí členy sekvencí po delší dobu.

Termín "LSTM jednotka" nebo "GRU jednotka" ve skutečnosti označuje celou vrstvu sítě, jejímž vstupem i výstupem je vektor hodnot popisující jeden prvek zpracovávané sekvence (např. jedno slovo). Celá sekvence se předá na vstupu/výstupu sítě v sérii po sobě následujících časových kroků. Rekurentní sítě se velmi často graficky znázorňují "rozvinuté" v čase:  rozkreslíme postup jednotlivých signálů jednotkou na časové ose zleva doprava, jako např. na slajdech č. 5, 7, 8, 11 a dalších. Vztah mezi rozvinutým a nerozvinutým vykreslením znázorňují slajdy č. 15-16.

Peephole LSTM unit (4 points)
Learn about peephole LSTM units at C. Olah's blog (https://colah.github.io/posts/2015-08-Understanding-LSTMs/) and at Wikipedia (https://en.wikipedia.org/wiki/Long_short-term_memory). Explain the differences between "classical" and peephole LSTM.

Transformers

Úvod do tématu

Stejně jako rekurentní neuronové sítě (RNN) jsou transformery navrženy pro zpracování sekvenčních dat, jako je přirozený jazyk, s aplikacemi pro úkoly, jako je překlad a generování textu. Na rozdíl od RNN však transformery zpracovávají celý vstup najednou. Mechanismus pozornosti poskytuje okamžitě kontext pro jakoukoli pozici ve vstupní sekvenci. To umožňuje větší paralelizaci než RNN, a proto se významně snižuje doba učení. Cenou za to je však vysoká paměťová a výkonová náročnost transformerů (současné modely vyžadují pro naučení běžně stovky GPU-roků; aby se učení realizovalo v řádu týdnů či měsíců, užívají se farmy mnoha tisíc GPU).

Transformery byly představeny v roce 2017 týmem společnosti Google Brain. Jsou stále častěji preferovaným modelem pro úlohy NLP a nahrazují modely RNN, jako je dlouhá krátkodobá paměť (LSTM). Vysoká paralelizace učení umožňuje trénink na větších datových množinách. To vedlo k vývoji před-učených systémů, jako jsou BERT (Bidirectional Encoder Representations from Transformers) a GPT (Generative Pre-trained Transformer), které byly trénovány s velkými jazykovými datovými sadami, jako je Wikipedia Corpus a Common Crawl, a mohou být jemně doladěny pro konkrétní úlohy. U opravdu velkých transformerů (stovky miliard parametrů - vah) trénovaných na terrabytech dat se ukazuje, že dík tomuto natrénování už o jazyce "vědí mnoho" a doladění není často zapotřebí. Například model -4 je schopen mj. generovat dlouhé odborné texty, jež jsou k nerozeznání od lidských.

(část textu převzata z anglické Wikipedie, český překlad modelem BERT)

Explain the function of a self-attention unit (6 points)
Explain the role of queries, keys and values in defining, how much attention is paid to input x_i when processing input x_j (i.e. i-th and j-th element of the input sequence). Please use your own ideas, not a paraphrase of slides or Internet texts / chatbots.