Co jsou neuronové sítě
Neuronové sítě jsou výpočetní modely inspirované strukturou a funkcí biologických neuronů. Učí se mapování vstup → výstup na základě dat – bez explicitního programování pravidel. V moderním pojetí představují parametrizované funkce s miliony až biliony parametrů (váhy a biasy), které se optimalizují minimalizací ztrátové funkce. Neuronové sítě tvoří základ hlubokého učení, které dosahuje špičkových výsledků v rozpoznávání obrazu a řeči, strojovém překladu, generování textu, predikci struktur proteinů či řízení robotů.
Základní stavební prvky: neuron, vrstva, síť
- Neuron: skalární výstup
y = φ(w·x + b), kdexje vektor vstupů,wváhy,bposun aφnelineární aktivační funkce. - Vrstva: vektorová transformace
h = φ(Wx + b)(plně propojená/lineární) nebo konvoluce/filtrování (u obrázků a sekvencí). - Síť: skládání vrstev (kompozice funkcí). Hloubka (počet vrstev) a šířka (počet jednotek/kanálů) určují kapacitu modelu.
Aktivační funkce a jejich vlastnosti
| Funkce | Definice | Výhody | Úskalí | Typické použití |
|---|---|---|---|---|
| ReLU | max(0, x) |
Jednoduchá, rychlá, omezuje saturaci | „Mrtvé“ neurony pro velká záporná x | Standard v CNN/MLP |
| Leaky ReLU / PReLU | x pro x>0, αx jinak |
Menší riziko mrtvých neuronů | Volba α |
Obraz, tabulky |
| Sigmoid | 1/(1+e^{-x}) |
Pravděpodobnostní interpretace | Saturace, mizející gradient | Výstupy (BCE), brány LSTM |
| Tanh | Hyperbolický tangens | Středění kolem 0 | Saturace | Sekvence, starší RNN |
| Softmax | e^{z_i}/∑_j e^{z_j} |
Rozdělení pravděpodobnosti nad třídami | Citlivost na posun/škálování | Více třídová klasifikace |
| GELU/SiLU (Swish) | Hladké, nelineární | V praxi lepší konvergence | Vyšší výpočetní náročnost | Transformery, modely dosahující nejlepších výsledků |
Učení: ztrátová funkce, zpětné šíření a optimalizace
- Ztrátová funkce L(θ) měří neshodu predikce a cílové hodnoty – např. MSE pro regresi, binary cross-entropy pro binární klasifikaci, categorical cross-entropy pro více tříd, CTC pro rozpoznávání sekvencí bez zarovnání.
- Průchod vpřed: výpočet výstupů sítě pro daný vstup.
- Zpětné šíření chyby: pomocí pravidla řetězce se vypočítají gradienty
∂L/∂θpro všechny parametry. - Aktualizace: optimalizátory jako SGD (s momentem), Adam/AdamW, RMSProp upraví parametry ve směru snižování ztráty.
Optimalizátory a praktické rozdíly
| Metoda | Popis | Silné stránky | Kdy zvolit |
|---|---|---|---|
| SGD + momentum | Průměruje gradienty v čase | Dobrá generalizace, jednodušší ladění | Velké modely pro počítačové vidění, plánování rychlosti učení |
| Adam | Adaptivní kroky (moment + RMS) | Rychlá konvergence, robustnost | NLP, tabulky, menší dávky |
| AdamW | Adam se správným weight decay | Lepší regularizace | Výchozí volba u transformerů |
Regularizace a prevence přeučení
- Weight decay (L2): penalizuje velké váhy, zlepšuje generalizaci.
- Dropout: během tréninku náhodně „vypíná“ neurony a brání jejich spoluzávislostem.
- Early stopping: zastavení při zhoršení validační ztráty.
- Rozšiřování dat: syntetické variace vstupů (otočení, ořezy, šum, mixup, cutout).
- BatchNorm/L2 norm: stabilizuje učení, částečně regularizuje.
Inicializace, normalizace a stabilita gradientů
- Inicializace: He/Kaiming (ReLU), Xavier/Glorot (tanh/sigmoid) udržují rozptyl signálu a gradientu.
- Normalizace: BatchNorm (po kanálech v minibatchi), LayerNorm (po příznacích ve vzorku), GroupNorm. Volba závisí na architektuře a velikosti dávky.
- Explodující/mizející gradient: řeší se vhodnou nelinearitou, reziduálními spojeními, normalizací a ořezáváním gradientů.
Architektury: přehled
- MLP (plně propojené sítě): tabulková data, jednodušší úlohy počítačového vidění, metaučení.
- CNN (konvoluční sítě): lokální filtry, sdílení vah, pooling; vynikají při zpracování obrazu a signálů.
- RNN/LSTM/GRU: sekvenční závislosti, stav v čase; dnes je často nahrazují transformery.
- Transformery: self-attention, paralelní zpracování sekvence, škálovatelnost; dominují v NLP, počítačovém vidění (ViT), zpracování řeči a multimodálních úlohách.
- Autoenkodéry: komprese a rekonstrukce, odšumování, reprezentace.
- VAE a generativní modely: modelování rozdělení pravděpodobnosti a generování (VAE, GAN, difuzní modely).
- Grafové neuronové sítě: učení na grafech (sítě, molekuly, doporučování).
Konvoluce a prostorové zpracování
Konvoluce aplikuje sadu filtrů na lokální výřezy vstupu, čímž extrahuje hranové, texturové a tvarové rysy. Hierarchie vrstev vytváří reprezentace od nízkoúrovňových po vysokoúrovňové. Techniky jako padding, stride, dilated a depthwise separable konvoluce ovlivňují receptivní pole, výpočetní náročnost a přesnost.
Pozornost (Attention) a transformery
- Self-attention přiřazuje váhy vztahům mezi všemi dvojicemi pozic. Pro dotazy Q, klíče K a hodnoty V:
softmax(QKᵀ/√d)·V. - Vícehlavá pozornost (Multi-Head) zachycuje různé typy vztahů paralelně.
- Poziční kódování: sinusoidální nebo naučené positional encodings vnášejí informaci o pořadí.
- Reziduální spojení a LayerNorm stabilizují hluboké sítě.
Dataset, rozdělení a metriky
- Rozdělení: trénovací/validační/testovací (např. 70/15/15), případně křížová validace.
- Metriky: přesnost/úplnost/F1 pro klasifikaci, ROC-AUC; PSNR/SSIM pro obraz, BLEU/ROUGE pro text, WER pro řeč, MAE/RMSE pro regresi.
- Hygiena dat: žádný únik štítků, deduplikace, shoda rozdělení dat mezi trénováním a nasazením.
Ladění hyperparametrů
- Rychlost učení, warmup, plánovač (cosine, step, plateau).
- Velikost dávky, počet vrstev/kanálů, dropout, weight decay.
- Vyhledávání: grid/random/Bayesian, Hyperband/ASHA; early stopping a sdílení kontrolních bodů.
Škálování: data, model, výpočet
- Zákony škálování: chyba klesá s logaritmem velikosti modelu, dat a výpočetního výkonu; efektivní je škálovat všechny tři složky koordinovaně.
- Paralelizace: paralelizace dat, modelu/tenzorů a pipeline; smíšená přesnost (FP16/BF16) a optimalizace paměti (checkpointing, FlashAttention).
Nasazení (inference) a MLOps
- Optimalizace inference: kompilátory výpočetních grafů (ONNX, TensorRT), kvantizace (INT8/FP8), prořezávání, destilace do menších modelů.
- Obsluha modelu: latence vs. propustnost, dávkové zpracování dotazů, A/B testy, postupné nasazení pro ověření (canary deploy), monitoring posunu distribuce a výkonnosti.
- Kontinuální učení: zpětná vazba, aktivní učení, ochrana proti katastrofickému zapomínání.
Interpretovatelnost a spolehlivost
- Přisuzování důležitosti příznakům: mapy saliency, Integrated Gradients, SHAP.
- Odhady konfidence: kalibrace (temperature scaling), ensembling, MC dropout.
- Robustnost: adversariální trénink, detekce dat mimo trénovací rozdělení, rozšiřování dat.
Etika, zkreslení a bezpečnost
- Nestrannost: audit dat z hlediska demografického zkreslení, metriky spravedlnosti (equalized odds apod.).
- Soukromí: anonymizace, federované učení, diferenciální soukromí.
- Bezpečnost: odolnost proti otravě dat (data poisoning), ochrana modelů a API (omezení počtu požadavků, detekce anomálií).
Speciální paradigmata učení
- Učení s učitelem: klasifikace, regrese, segmentace.
- Učení bez učitele: shlukování, samoučení, kontrastivní učení (SimCLR, MoCo) – učení reprezentací bez štítků.
- Posilované učení: agent maximalizuje kumulativní odměnu; kombinace s neuronovými sítěmi (DQN, PPO) umožňuje rozhodování v sekvencích.
Vstupní a výstupní transformace
- Vnoření (embeddings): husté vektory pro slova, tokeny a položky v doporučovacích systémech; naučené reprezentace zachycují podobnosti.
- Normalizace vstupů: standardizace/whitening pro rychlejší trénink; škálování pixelů, mel-spektrogramy pro zvuk.
- Zpětné mapování: dekodéry, převzorkování, transponované konvoluce, prohledávání svazku u sekvencí.
Typické potíže a ladění tréninku
| Příznak | Možná příčina | Rychlé kroky |
|---|---|---|
| Ztráta neklesá | Příliš vysoká/nízká rychlost učení, špatná inicializace, chyba v datovém řetězci | Ověřit ručně jednu dávku, snížit rychlost učení, zapnout ořezávání gradientů |
| Trénink v pořádku, validace špatná | Přeučení, posun dat | Přidat regularizaci, rozšiřování dat, early stopping |
| Explodující ztráta | Numerická nestabilita, příliš velký krok | FP32 master, ořezávání gradientů, menší dávka/nižší rychlost učení |
| Pomalá konvergence | Nevhodný optimalizátor/plánovač | AdamW + cosine, warmup, lepší normalizace |
Matematický základ v kostce
- Věta o univerzální aproximaci: MLP s jednou skrytou vrstvou a dostatečným počtem jednotek může aproximovat libovolnou spojitou funkci na kompaktní množině.
- Zpětné šíření chyby: efektivní výpočet gradientů kompozice funkcí; díky sdílení mezivýpočtů je složitost lineární vzhledem k počtu parametrů.
- Kompromis mezi zkreslením a rozptylem: modely s vysokou kapacitou mají malé zkreslení, ale hrozí u nich vysoký rozptyl; regularizace a více dat pomáhají tento kompromis vyrovnat.
Příklady ztrát a výstupních vrstev
- Regrese: lineární výstup + MSE/MAE; robustní Huberova ztráta.
- Binární klasifikace: sigmoid + BCE (s vyvážením tříd/posuny prahu).
- Více třídová klasifikace: softmax + CCE; vyhlazování štítků zlepšuje kalibraci.
- Segmentace: softmax pro každý pixel + ztráta Dice/Focal pro nevyvážené třídy.
Pracovní postup projektu hlubokého učení
- Definujte cíl a metriky, vytvořte katalog dat a protokol experimentů.
- Připravte datový řetězec (načítání, validace, rozšiřování dat, vyvážení tříd).
- Vyberte základní architekturu a ztrátu; ověřte správnost na malé podmnožině dat (přeučte model na několika vzorcích).
- Iterujte: hyperparametry, architektury, regularizace; zaznamenávejte průběh (TensorBoard, Weights&Biases).
- Testujte na nezávislém datasetu; proveďte ablační testy a analýzu chyb.
- Připravte export (ONNX), optimalizaci a monitoring při nasazení.
Kontrolní seznam pro praxi
- ✔ Data: čistá, reprezentativní, bez úniku informací.
- ✔ Základní model: jednoduchý model pro srovnání.
- ✔ Plán rychlosti učení: warmup + cosine/step, ověřte citlivost.
- ✔ Regularizace: dropout/weight decay/rozšiřování dat.
- ✔ Normalizace: vhodná pro daný typ dat a architekturu.
- ✔ Monitoring: tréninkové i produkční metriky, posun distribuce.
- ✔ Reprodukovatelnost: náhodná semena, uzamčené verze knihoven, export konfigurací.
Závěr
Neuronové sítě jsou univerzální aproximátory, které díky kombinaci hlubokých architektur, efektivních optimalizačních metod a velkých datasetů dokážou řešit komplexní úlohy s přesností převyšující tradiční algoritmy. Porozumění jejich stavebním prvkům – od aktivačních funkcí přes normalizaci a pozornost až po strategie škálování a nasazení – umožňuje navrhovat modely, které jsou nejen přesné, ale také robustní, interpretovatelné a provozně efektivní.
