Proč neuronové sítě nenásobí: od perceptronů k SwiGLU
Neuronové sítě, navzdory úspěchům v generování textu a obrazu, fundamentálně neprovádějí operaci násobení vstupních dat. V perceptronu vstupy procházejí lineární kombinací: váží se a sčítají. Vzorec základního neuronu: $$h = \sigma(\sum w_i x_i + b)$$, kde není součin dvou proměnných $x_1 \cdot x_2$.
Pro úlohu jako výpočet ceny (cena × množství) síť aproximuje výsledek pomocí zapamatování vzorů, ale nenásobí přímo. Přidání skrytých vrstev zachovává princip: v každé fázi pouze součty vážených signálů.
V první vrstvě:
$$h_1^{(1)} = x_1 w_{11}^{(1)} + x_2 w_{12}^{(1)}$$
$$h_2^{(1)} = x_1 w_{21}^{(1)} + x_2 w_{22}^{(1)}$$
Ve druhé:
$$h_1^{(2)} = h_1^{(1)} w_{11}^{(2)} + h_2^{(1)} w_{12}^{(2)}$$
Dosazení ukazuje: $x_1$ a $x_2$ zůstávají v součtu, jejich součin nevzniká. Váhy se mezi vrstvami násobí, ale vstupy ne.
Obejití: čtverce a předvýpočty
Inženýři přidávají na vstup již vynásobené hodnoty ($x_1 x_2$) nebo čtverce pro simulaci. Školní vzorec umožňuje vyjádřit součin:
$$x y = \frac{1}{2} \left( (x+y)^2 - x^2 - y^2 \right)$$
Tím se násobení redukuje na sčítání, odčítání a umocňování na druhou. Hypotetická aktivace $f(z) = z^2$ by mohla pomoci, ale standardní ReLU, Sigmoid, Tanh neposkytují nelinearitu čtverce.
Praxe ukazuje: takové berličky fungují pro demonstrace, ale v reálných úlohách s mnoha vstupy vyžadují předem znát potřebné kombinace.
- Předvýpočty: Předání $x_1 x_2$ na vstup.
- Čtverce: Použití $(x+y)^2$, $x^2$, $y^2$.
- Omezení: Neškáluje se, narušuje univerzálnost aproximátoru.
Průlom transformerů: role GLU variant
Architektura Transformer (2017) zavedla attention, ale klíčový krok – nahrazení aktivací na Gated Linear Units (GLU) v roce 2020 (Noam Shazeer, "GLU Variants Improve Transformer"). ReGLU, GEGLU, SwiGLU překonávají ReLU v konvergenci.
| Aktivace | Chyba |
|-----------|--------|
| ReLU | 2.45 |
| ReGLU | 2.32 |
| GEGLU | 2.25 |
| SwiGLU | 2.24 |
SwiGLU je preferovaná kvůli rychlosti. Vzorec:
$$\text{SwiGLU}(x) = \text{Swish}(x W + b) \odot (x V + c)$$
Zde $\odot$ – prvek po prvku násobení dvou projekcí. Tím se zavádějí kvadratické závislosti, umožňující modelovat $x_1 x_2$ bez berliček. SwiGLU se používá v FFN blocích moderních LLM.
Mechanismus:
- Vstup $x$ se promítne do dvou cest: $xW + b$ a $xV + c$.
- První přes Swish ($\text{Swish}(z) = z \sigma(\beta z)$).
- Prvek po prvku násobení.
Praktické důsledky pro modely
SwiGLU zlepšuje učení, ale nedělá z AI přesnou kalkulačku. Generativní modely jsou pravděpodobnostní: "2×2=4" – pravděpodobný token, ne dedukce. Pro složité výpočty LLM delegují Python kód do sandboxu.
- Výhody GLU: Lepší konvergence, modelování nelinearit.
- Nevýhody: Síť ne vždy automaticky najde potřebné váhy.
- Vyžaduje velká data.
- Pravděpodobnostní charakter zůstává.
Budoucí integrace (WebAssembly v Transformeru) umožní spouštět nativní kód uvnitř modelu.
Co je důležité
- Klasické perceptrony sčítají, ale nenásobí vstupy.
- GLU (SwiGLU) zavádí prvek po prvku násobení projekcí pro kvadratické závislosti.
- Brány nahrazují ReLU v moderních transformerech, snižují chybu o 5–10 %.
- Pro přesné výpočty LLM používají externí nástroje.
— Editorial Team
Zatím žádné komentáře.