Perceptron (6) posouval své váhy „trochu správným směrem“. Tady uvidíš, co ten směr přesně je: model spočítá, kam jeho chyba roste, a udělá krok opačně — z kopce. A ve druhé části uvidíš past, do které může učení spadnout: model se data naučí nazpaměť, místo aby je pochopil. The perceptron (6) nudged its weights “a little in the right direction”. Here you’ll see what that direction actually is: the model works out where its error grows and takes a step the opposite way — downhill. In the second part you’ll see the trap learning can fall into: the model memorizes the data instead of understanding it.
Co to jeWhat it is Model má čísla (váhy), kterými může hýbat, a jedno číslo, které chce mít co nejmenší: chybu. Gradientní sestup je postup, jak váhy krok za krokem posouvat směrem k menší chybě. Přeučení nastává, když model trénovací data zvládá skvěle, ale na nových datech selhává.A model has numbers (weights) it can turn, and one number it wants as small as possible: the error. Gradient descent is the recipe for nudging the weights step by step towards a smaller error. Overfitting is when the model does great on the training data but fails on new data.
Co zkusitWhat to try A: stiskni „Spusť“ a sleduj, jak bod v krajině chyby sjíždí do údolí a přímka se přitom přimyká k bodům. Pak vyzkoušej tři učící rychlosti: moc malá se plazí, moc velká přestřeluje, až se rozletí. B: posuvníkem zvyšuj složitost modelu — trénovací chyba pořád klesá, ale testovací od určitého místa roste.A: press “Run” and watch the point slide down into the valley of the error landscape while the line snuggles up to the data. Then try the three learning rates: too small crawls, too large overshoots until it blows up. B: raise the model complexity with the slider — the training error keeps falling, but the test error starts rising at some point.
Proč je to důležitéWhy it matters Gradientním sestupem (v různých vylepšených variantách) se učí prakticky všechny dnešní neuronové sítě včetně velkých jazykových modelů. A přeučení je hlavní důvod, proč se každý model zkouší na datech, která při učení neviděl.Practically every neural network today, large language models included, learns by gradient descent (in various improved flavours). And overfitting is the main reason every model is tested on data it did not see while learning.
Model je přímka y = w·x + b se dvěma váhami: w (sklon) a b (posun). Chyba je průměrná čtvercová odchylka (MSE): pro každý bod vezmi svislou vzdálenost od přímky (červené úsečky), umocni ji na druhou a zprůměruj. Každá dvojice (w, b) má svou chybu — vpravo je to celé nakreslené jako mapa. The model is a line y = w·x + b with two weights: w (slope) and b (offset). The error is the mean squared error (MSE): for each point take its vertical distance from the line (red segments), square it and average. Every pair (w, b) has its own error — on the right that is all drawn as a map.
Mapu vpravo kreslíme jen pro tebe — algoritmus ji nevidí. Zná jen sklon terénu v místě, kde právě stojí (gradient), jako turista v mlze, který jde pořád z kopce. Červená čárkovaná šipka ukazuje, kam povede příští krok: míří proti gradientu a je dlouhá „gradient × učící rychlost“. Poctivě: minimum přímky by šlo spočítat rovnou vzorcem — sestup tu ukazujeme proto, že u neuronových sítí žádný takový vzorec není. The map on the right is drawn just for you — the algorithm cannot see it. It only knows the slope of the terrain where it stands right now (the gradient), like a hiker in fog who keeps walking downhill. The red dashed arrow shows where the next step will go: against the gradient, with length “gradient × learning rate”. To be fair: the best line could be computed directly with a formula — we show descent here because for neural networks no such formula exists.
Body vznikly z hladké křivky (čárkovaně) a náhodného šumu. Model se učí jen z modrých trénovacích bodů; oranžové testovací body při učení nevidí — slouží jako „písemka“ na konci. Model je polynom: čím vyšší stupeň, tím složitější (ohebnější) křivku umí nakreslit. The points come from a smooth curve (dashed) plus random noise. The model learns only from the blue training points; it never sees the orange test points while learning — they are the “final exam”. The model is a polynomial: the higher the degree, the more complex (bendier) the curve it can draw.
Poctivě: data jsou uměle vyrobená (sinusovka + šum) a křivku tu nepočítáme gradientním sestupem, ale přímo metodou nejmenších čtverců — dává stejný výsledek, jen hned. Verdikt „nedoučený / tak akorát / přeučený“ se řídí testovací chybou; ve skutečnosti by se na to použila samostatná validační data, aby písemka zůstala nevyzrazená. To be fair: the data are synthetic (a sine wave + noise), and we don’t fit the curve by gradient descent here but directly with least squares — same result, just instantly. The “underfit / just right / overfit” verdict follows the test error; in real life you’d use separate validation data for that, so the exam stays secret.
Učení modelu je hledání vah s nejmenší chybou. U přímky jsou váhy dvě a krajinu chyby jde nakreslit. Neuronová síť jich má tisíce, velký jazykový model miliardy — krajina má pak tolik rozměrů, že si ji nikdo nepředstaví. Postup je ale stejný: spočítej, kam chyba roste, a udělej malý krok opačně. Training a model means searching for the weights with the lowest error. A line has two weights and its error landscape can be drawn. A neural network has thousands, a large language model billions — the landscape then has so many dimensions nobody can picture it. The recipe is the same, though: find where the error grows and take a small step the other way.
Aby se stroj mohl zlepšovat, musí „špatnost“ vyjádřit jedním číslem — chybou (ztrátou). Tady je to průměr čtverců odchylek (MSE). Umocnění na druhou dělá z chyby vždy kladné číslo a velké odchylky trestá víc než malé. To improve, a machine must express “badness” as one number — the error (the loss). Here it’s the mean of squared deviations (MSE). Squaring makes every error positive and punishes big deviations more than small ones.
Gradient říká, jak se chyba změní, když maličko pohneš každou vahou — dohromady ukazuje směr nejstrmějšího stoupání. My chceme dolů, takže jdeme opačně. Proto se tomu říká gradientní sestup. Všimni si, že šipka nemíří rovnou do minima, ale kolmo na vrstevnice. The gradient tells how the error changes when you nudge each weight a tiny bit — together it points in the direction of steepest ascent. We want to go down, so we go the opposite way. Hence gradient descent. Notice the arrow doesn’t point straight at the minimum but at right angles to the contour lines.
Říká, jak dlouhý krok uděláme. Příliš malá: učení se plazí a stojí spoustu kroků (u velkých modelů i spoustu peněz za výpočty). Příliš velká: krok přeskočí údolí na druhý svah, chyba roste a model se rozletí. Správná hodnota se v praxi hledá zkoušením. It sets how long each step is. Too small: learning crawls and takes a huge number of steps (for large models also a lot of money for compute). Too large: the step jumps over the valley to the other slope, the error grows and the model blows up. In practice the right value is found by trying.
Krajina chyby přímky je hladká mísa s jediným dnem. U neuronových sítí je hrbolatá a sestup může uvíznout v místním důlku, který není nejhlubší. U velkých sítí to podle praktických zkušeností vadí méně, než by se zdálo: při obrovském počtu rozměrů obvykle vede nějaký směr dál dolů a mnoho nalezených důlků je zhruba stejně dobrých. Proč přesně to tak funguje, je dodnes předmětem výzkumu. A line’s error landscape is a smooth bowl with a single bottom. For neural networks it is bumpy, and descent can get stuck in a local dip that isn’t the deepest. For large networks, practical experience says this hurts less than you might expect: with a huge number of dimensions some direction usually still leads down, and many of the dips found are roughly equally good. Exactly why this works is still an active research question.
Příliš ohebný model projde každým trénovacím bodem — i jeho šumem — a mezi body divoce kličkuje. Trénovací chyba je skoro nulová, na nových datech ale selže. Je to student, který se naučil odpovědi nazpaměť a nepochopil látku. A model that’s too flexible passes through every training point — noise included — and wiggles wildly in between. Its training error is almost zero, yet it fails on new data. It’s the student who memorized the answers without understanding.
Stejný jev už znáš: Markovův řetězec vysokého řádu (5) jen opisuje předlohu. A potkáš ho znovu: difúzní model (11) s dokonalým odšumovačem by jen reprodukoval trénovací obrázky. You’ve met this before: a high-order Markov chain (5) just copies its source text. And a diffusion model (11) with a perfect denoiser would merely reproduce its training images.
Data se dělí na tři hromádky: z trénovacích se model učí, podle validačních ladíme nastavení (třeba složitost), testovací se použijí jen jednou na konci jako poctivá písemka. Přeučení brzdí: víc dat, jednodušší model, regularizace (trest za příliš velké váhy) a předčasné zastavení učení ve chvíli, kdy validační chyba začne růst. Data are split into three piles: the model learns from the training set, we tune settings (such as complexity) on the validation set, and the test set is used only once at the end as a fair exam. Overfitting is curbed by more data, a simpler model, regularization (a penalty for overly large weights) and early stopping — halting training once the validation error starts to rise.
Pointa: učení = sjíždění z kopce po krajině chyby. Neuronová síť (8) dělá úplně totéž, jen s tisíci vahami — a backpropagation je jen chytrý a rychlý způsob, jak gradient pro všechny ty váhy spočítat najednou. Velké jazykové modely se s miliardami vah učí právě takhle. A pozor: nízká chyba na trénovacích datech ještě nic nedokazuje — rozhoduje chyba na datech, která model nikdy neviděl. The point: learning = sliding downhill on the error landscape. A neural network (8) does exactly the same, only with thousands of weights — and backpropagation is just a clever, fast way to compute the gradient for all those weights at once. Large language models with billions of weights learn exactly like this. And beware: a low error on the training data proves nothing yet — what counts is the error on data the model has never seen.