# Topologie sítí a druhy učení

Otázka „jakou neuronovou síť mám použít" má v drtivé většině případů odpověď, která vyplyne z jediné věci: **jaký tvar mají tvoje data.** Obrázek, sekvence, tabulka. Nic jiného rozhodovat nemusíš, protože pro každý z těch tvarů existuje topologie, která na něj sedí.

Druhá otázka - „jak se to učí" - má tři odpovědi a rozhoduje o ní jiná věc: **co k datům máš.** Označení, nic, nebo odměnu za chování.

Tahle stránka je rozcestník. Předpokládá to [umělý neuron](Neuron-a-perceptron) a je dobré mít přečtené [MLP](MLP-a-backpropagation), protože dopředná síť je referenční bod pro všechno ostatní. Konkrétní architektury mají vlastní stránky.

## Pět topologií

**Dopředná síť (feed-forward).** Signál postupuje pouze vpřed, mezi vrstvami. Nejběžnější topologie - patří sem [perceptron](Neuron-a-perceptron) i [MLP](MLP-a-backpropagation). Nemá žádnou paměť: tentýž vstup dá vždycky tentýž výstup, bez ohledu na to, co bylo předtím.

**Rekurentní síť (recurrent).** Obsahuje **zpětné vazby**, takže výstup neuronu se vrací zpátky na vstup. Vhodná pro zpracování sekvencí - text, řeč, časové řady. Příkladem je **Hopfieldova síť** (symetrické váhy `wij = wji`) nebo **Boltzmannův stroj** (pravděpodobnostní přechody stavů). Podrobně u [rekurentních sítí a LSTM](Rekurentni-site-a-LSTM).

**Síť s pevnými váhami.** LAM, BAM, Hopfield. Asociativní paměti, které se **neučí** - váhy se spočítají jednorázově ze vzorů, které si má síť pamatovat. Dnes historická kategorie, ale ukazuje, že „neuronová síť" nemusí znamenat „trénování".

**Konvoluční síť (CNN).** Specializovaná dopředná síť pro obrazová data. Viz [konvoluční sítě](Konvolucni-site).

**LSTM a GRU.** Rekurentní sítě s **hradlovacím mechanizmem**, který řeší problém dlouhodobých závislostí. Viz [rekurentní sítě a LSTM](Rekurentni-site-a-LSTM).

Souhrn i s tím, jak se která učí:

| Skupina | Topologie | Učení |
|---|---|---|
| Pevné váhy | LAM, Hopfield, BAM | bez učení |
| S učitelem | Perceptron, MLP, TDNN | supervised |
| Bez učitele | ART1/2, Kohonen (SOM) | unsupervised |
| Obrazová data | CNN, ResNet | supervised |
| Sekvence | RNN, LSTM, GRU | supervised |

**Ta tabulka je nejužitečnější věc na stránce**, protože z ní jde přečíst rozhodnutí. Máš obrázky a označení? Řádek CNN. Máš sekvenci a označení? Řádek LSTM. Nemáš označení? Řádek Kohonen.

## Tři druhy učení

Učení znamená **nastavení vah tak, aby síť dávala na trénovacích datech správné výstupy**.

**Učení s učitelem (supervised).** Ke každému vstupu je znám požadovaný výstup. Příklady: [perceptron](Neuron-a-perceptron), [MLP](MLP-a-backpropagation), [CNN](Konvolucni-site).

**Učení bez učitele (unsupervised).** Síť hledá strukturu v datech samostatně. Příklady: [Kohonenovy mapy](Kohonenovy-mapy), ART.

**Posilované učení (reinforcement).** Síť je odměňována nebo trestána za své akce v prostředí. Tohle je přesně rámec [učícího se agenta](Inteligentni-agenti#učící-se-agent) - odměna je výstup **kritiky**, ne senzoru.

**Rozdíl mezi těmi třemi je v tom, co dostaneš zpátky:**

| Druh učení | Zpětná vazba | Kdy ji dostaneš |
|---|---|---|
| S učitelem | správná odpověď | ke každému vzorku hned |
| Bez učitele | žádná | nikdy |
| Posilované | číslo (odměna) | často se zpožděním, po mnoha akcích |

To zpoždění u posilovaného učení je celý jeho problém. Když prohraješ šachovou partii, víš, že jsi něco zkazil, ale ne který ze čtyřiceti tahů to byl. Tomu se říká **problém přiřazení zásluh** a je to důvod, proč je posilované učení výrazně těžší než ostatní dva druhy.

## Hebbovo pravidlo

Nejjednodušší pravidlo učení bez učitele (Hebb, 1949): **posiluje spojení mezi neurony, které jsou aktivní současně.**

```
wij(t + 1) = wij(t) + α · yi · yj
```

kde `α` je rychlost učení a `yi`, `yj` aktivity propojených neuronů.

Ve vzorci **není požadovaný výstup** a to je definiční znak učení bez učitele. Pravidlo nesleduje správnost, jen souběžnost.

Podrobněji je Hebbovo pravidlo u [umělého neuronu](Neuron-a-perceptron#hebbovo-pravidlo).

## Jak si vybrat

| Data | Máš označení | Topologie |
|---|---|---|
| Tabulka čísel | ano | MLP, nebo rovnou [klasické metody](Priznakove-metody) |
| Obrázky | ano | [CNN](Konvolucni-site) |
| Text, řeč, časová řada | ano | [LSTM/GRU](Rekurentni-site-a-LSTM), dnes spíš Transformer |
| Cokoliv | ne | [SOM](Kohonenovy-mapy), shlukování |
| Prostředí, ve kterém agent jedná | odměna | posilované učení |

**Jedno doporučení, které se běžně neříká, ale platí:** u tabulkových dat zkus nejdřív [náhodný les nebo gradient boosting](Priznakove-metody#klasifikační-a-regresní-strom-cart), ne neuronovou síť. Na strukturovaných tabulkách je porážejí konzistentně a jsou rychlejší a interpretovatelnější. Neuronové sítě vyhrávají tam, kde jsou data nestrukturovaná - obraz, zvuk, text.

## Co si odnést

**Topologii určuje tvar dat.** Obrázek → CNN, sekvence → LSTM, tabulka → MLP.

**Druh učení určuje to, co k datům máš.** Označení, nic, nebo odměnu.

**Dopředná síť nemá paměť.** Tentýž vstup dá vždycky tentýž výstup.

**Rekurentní síť má zpětnou vazbu**, a proto umí sekvence.

**Sítě s pevnými váhami se neučí.** Váhy se spočítají jednou ze vzorů.

**Posilované učení má zpožděnou odměnu** a s ní problém přiřazení zásluh.

## Kam dál

- **[MLP a backpropagation](MLP-a-backpropagation)** - jak se učí ta nejběžnější topologie
- **[Konvoluční sítě](Konvolucni-site)** - pro obrazová data
- **[Rekurentní sítě a LSTM](Rekurentni-site-a-LSTM)** - pro sekvence
- **[Kohonenovy mapy](Kohonenovy-mapy)** - učení bez učitele se zachováním topologie
- **[Inteligentní agenti](Inteligentni-agenti)** - rámec, do kterého patří posilované učení
