Conditions for passing the course, study materials
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.
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šší.
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í.
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).
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.
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).
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.
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.