Přeskočit na obsah
coden

Data, model, trénink, inference: základní pojmy na jednom příkladu

Celá cesta strojového učení na odhadu ceny bytu: data a jejich rozdělení, model s parametry, trénink gradientním sestupem, hyperparametry a rychlost učení, vyhodnocení, inference a slovníček pojmů s odkazy na díly série.

9 minut Matěj Žalmánek 2026-10-16

Série Základy AI Díl 3 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • Co znamenají data, model, trénink a inference a jak spolu souvisejí.
  • Rozdíl mezi parametry a hyperparametry a proč záleží na rychlosti učení.
  • Proč je trénink drahý jednou a inference levná, ale častá.

Co se hodí znát předem: Mapa umělé inteligence: co je co a jak to do sebe zapadá

V celé sérii se opakují čtyři slova: data, model, trénink a inference. Ať jde o rozpoznávání číslic, filtr spamu nebo velký jazykový model, cesta je pořád stejná: z příkladů se naučí funkce, která pak odpovídá na nové otázky. V tomhle dílu tu cestu projdeme celou na nejmenším možném příkladu — odhadu ceny bytu podle plochy — a u každého kroku řekneme, jak vypadá u velkých modelů. Na konci je slovníček pojmů s odkazy na díly, kde se o nich dozvíte víc.

Navazuje na díly Mapa umělé inteligence a Stručná historie AI.

TRÉNINK — jednou, dlouho INFERENCE — pokaždé, rychle trénovací dataučeníparametrynový vstupmodelpředpověď
Trénink a inference

1. Data: příklady se správnými odpověďmi

Definice — data, příznaky a štítky

Data jsou příklady, ze kterých se model učí. Každý příklad se skládá z

  1. příznaků — vstupů, které o něm víme (u nás plocha bytu),
  2. a při učení s učitelem i ze štítku — správné odpovědi (u nás cena bytu).

Data se dělí na tři navzájem disjunktní části, každou s jiným účelem:

  1. trénovací — z nich se model učí (hledají se podle nich parametry);
  2. validační — podle nich ladíme nastavení učení a vybíráme mezi modely;
  3. testovací — použijí se jen jednou, na konci, aby poctivě odhadly, jak model dopadne na nových datech.

Přesný zápis je v definici „datová sada formálně“ níže.

Laicky řečeno

Učebnice s příklady a výsledky vzadu. Na trénovacích příkladech se učíte, na cvičné písemce zjistíte, jestli to umíte, a ostrá písemka (kterou jste předtím neviděli) ukáže, jak na tom doopravdy jste.

Naše data jsou vymyšlená: 60 bytů, u každého plocha (příznak) a cena v milionech korun (štítek). Cena roste s plochou, ale ne přesně — dva stejně velké byty se liší polohou, stavem, patrem. Rozdělíme je na 40 trénovacích, 10 validačních a 10 testovacích.

Definice — datová sada formálně

Nechť d, n ∈ ℕ, d, n ≥ 1, a nechť Y je množina možných štítků (Y = ℝ u regrese, konečná množina tříd u klasifikace). Datová sada je konečná posloupnost dvojic

D = ((x(1), y(1)), …, (x(n), y(n))),   kde x(i) ∈ ℝd a y(i) ∈ Y pro i = 1, …, n.

Vektor x(i) obsahuje d příznaků i-tého příkladu a y(i) je jeho štítek. Předpokládá se, že existuje (neznámé) rozdělení pravděpodobnosti na ℝd × Y, ze kterého jsou dvojice vybrány navzájem nezávisle a ze kterého pocházejí i budoucí dotazy.

Rozdělení dat je dáno rozkladem množiny indexů na tři navzájem disjunktní množiny

{1, …, n} = Itr ∪ Ival ∪ Itest,   Itr ∩ Ival = Itr ∩ Itest = Ival ∩ Itest = ∅;

části dat jsou Dtr = ((x(i), y(i)))i ∈ Itr a obdobně Dval, Dtest. Každý příklad tedy patří do právě jedné části. U nás d = 1 (plocha), Y = ℝ (cena v milionech Kč), n = 60 a části mají 40, 10 a 10 příkladů.

Laicky řečeno

Tabulka, kde každý řádek je jeden byt: sloupce s příznaky a poslední sloupec s cenou. Disjunktní znamená, že žádný byt není ve dvou částech zároveň — jinak by „ostrá písemka“ obsahovala příklady, které model už viděl. A předpoklad stejného rozdělení říká, že testovací byty jsou z téhož trhu jako ty, na které se pak budeme ptát; bez něj by chyba na testu o budoucnosti nevypovídala nic.

U velkých jazykových modelů jsou daty biliony tokenů textu z webu, knih a kódu; příznakem je dosavadní text a štítkem další token (díl o předtrénování). Princip je stejný.

2. Model: funkce s parametry

Definice — model a parametry

Nechť X je množina vstupů, Y množina výstupů a Θ ⊆ ℝp, p ≥ 1, množina přípustných hodnot parametrů. Model je systém funkcí

{fθ : X → Y  |  θ ∈ Θ},

tj. pro každou volbu θ = (θ1, …, θp) ∈ Θ jedna funkce, která ze vstupu x ∈ X spočítá výstup fθ(x) ∈ Y. Čísla θ1, …, θp jsou parametry modelu (u neuronových sítí váhy). Tvar funkce (a tím X, Y, Θ) volíme my; hodnoty parametrů hledá učení.

Náš model je přímka: X = Y = ℝ, Θ = ℝ2, θ = (w, b) a fw,b(x) = w · x + b, kde x je plocha, w říká, o kolik stoupne cena s každou jednotkou plochy, a b, kde přímka začíná.

Laicky řečeno

Model je stroj s knoflíky. Náš má knoflíky dva. Jazykový model jich má miliardy — ale je to pořád stroj, který ze vstupu počítá výstup, a jeho „znalosti“ nejsou nic jiného než nastavení knoflíků.

ŷ = w · x + b

ŷ
předpověď ceny; stříška ji odlišuje od skutečné ceny y, se kterou ji pak porovnáváme
w
sklon — kolik milionů přidá každý metr navíc; bez něj by cena na ploše vůbec nezávisela
x
plocha v m², jediný příznak; to jediné, co model o bytě ví
b
posun — „cena nulového bytu“; bez něj by přímka musela procházet počátkem, a ceny bytů k nule nemíří
Obecně se píše ŷ = fθ(x): funkce f s parametry θ = (w, b). U jazykového modelu je f transformer a θ miliardy vah.

3. Trénink: ladění parametrů

Definice — ztrátová funkce a trénink

Nechť {fθ : θ ∈ Θ}, Θ ⊆ ℝp, je model a Dtr = ((x1, y1), …, (xn, yn)), n ≥ 1, trénovací data. Ztrátová funkce je funkce

J : Θ → [0, ∞),

která každé volbě parametrů θ přiřadí číslo J(θ) udávající, jak moc se model fθ na Dtr mýlí — u nás průměr druhých mocnin chyb (MSE), zapsaný celý v rozboru níže. Trénink je hledání parametrů s co nejmenší ztrátou, ideálně θ* ∈ argminθ ∈ Θ J(θ).

Je-li J diferencovatelná a Θ = ℝp, označme ∇J(θ) = (∂J/∂θ1, …, ∂J/∂θp) její gradient. Gradientní sestup je algoritmus:

  • Vstup: počáteční parametry θ0 ∈ ℝp, rychlost učení η > 0, počet kroků T ∈ ℕ.
  • Výstup: parametry θT ∈ ℝp.
  1. Pro t = 0, 1, …, T − 1 polož θt+1 = θt − η · ∇J(θt).
  2. Po T krocích skonči a vrať θT.

Sestup tedy v každém kroku spočítá, kterým směrem ztráta nejrychleji roste, a posune parametry malým krokem opačně. Epocha je jeden průchod všemi trénovacími daty; u našeho sestupu, kde každý krok počítá gradient ze všech n příkladů, je jedna epocha právě jeden krok.

Laicky řečeno

Mlha na kopci a cíl dostat se do údolí. Vidíte jen svah pod nohama, tak uděláte krok z kopce, znovu se podíváte, další krok. Každý krok je jedna úprava knoflíků, údolí jsou knoflíky, se kterými se model mýlí nejmíň.

Naše ztrátová funkce, střední kvadratická chyba (MSE), zapsaná celá:

J(w, b) = 1/n ∑i=1n ( w xi + b − yi )2

J(w, b)
ztráta jako funkce parametrů — data jsou pevná, měnit smíme jen w a b, proto jsou v závorce jen ony
1/n ∑
průměr přes všech n = 40 trénovacích bytů — ať je ztráta srovnatelná pro různě velká data a žádný byt nemá přednost
w xi + b − yi
chyba na i-tém bytě: předpověď ŷi minus skutečná cena; kladná, když model přestřelí, záporná, když podstřelí
2
druhá mocnina — aby se kladné a záporné chyby nevyrušily, velké chyby vážily víc než malé a ztráta šla hladce derivovat
Ztráta je nulová jen tehdy, když přímka prochází všemi body přesně; jinak je kladná.
Věta — gradient MSE pro přímku

Nechť n ≥ 1, (x1, y1), …, (xn, yn) ∈ ℝ2 jsou trénovací data a J : ℝ2 → ℝ je MSE přímky,

J(w, b) = 1/n ∑i=1n (w xi + b − yi)2.

Označme ŷi = w xi + b pro i = 1, …, n. Pak pro všechna (w, b) ∈ ℝ2 platí

∂J/∂w = 2/n ∑i=1n (ŷi − yi) · xi,   ∂J/∂b = 2/n ∑i=1n (ŷi − yi).

Důkaz. Derivace součtu je součet derivací a konstantní násobek 1/n se derivováním zachová. Pro jeden člen podle pravidla o derivaci složené funkce: ∂/∂w (w xi + b − yi)2 = 2 (w xi + b − yi) · xi, protože vnitřek závorky má podle w derivaci xi; podle b má derivaci 1. ∎

Laicky řečeno

Každý byt „tahá“ za parametry úměrně tomu, jak moc se model na něm spletl. U w se tah ještě násobí plochou: chyba u velkého bytu říká o sklonu víc než chyba u garsonky.

Jeden krok gradientního sestupu pak posune oba parametry proti gradientu:

w ← w − η · ∂J/∂w

w
parametr před krokem a po něm — šipka ← znamená „přepiš novou hodnotou“, ne rovnost
−
jdeme opačně než gradient, tedy z kopce: ztrátu chceme zmenšit, ne zvětšit
η
rychlost učení — jak dlouhý krok uděláme; gradient platí jen v okolí bodu, takže krok musí být malý (viz další kapitola)
∂J/∂w
gradient — kterým směrem a jak strmě ztráta roste, když w zvětšíme
Pro b stejně, jen s ∂J/∂b. Oba parametry se mění zároveň, z gradientu spočítaného ve starém bodě.

Celý trénink jako algoritmus (přesně tak to počítá obrázek níže):

w, b = 0, 0                                  # počáteční parametry
for epocha in range(200):                    # hyperparametr: počet epoch
    gw = gb = 0
    for plocha, cena in trenovaci_data:      # jedna epocha = všechna data
        x = plocha / 100                     # plocha ve stovkách m²
        chyba = (w * x + b) - cena           # ŷ − y
        gw += 2 * chyba * x / n              # ∂J/∂w
        gb += 2 * chyba / n                  # ∂J/∂b
    w, b = w - eta * gw, b - eta * gb        # krok z kopce, eta = rychlost učení

Plochu dosazujeme ve stovkách m² (52 m² → 0,52). V metrech by gradient podle w vycházel desítkykrát větší než podle b a jedna rychlost učení by nesedla oběma parametrům zároveň. Takové škálování příznaků je v praxi běžné. Proto w níže vychází v milionech za 100 m².

Příklad — první krok sestupu

V bodě w = b = 0 model všude předpovídá 0, takže chyba na každém bytě je −yi. Gradient je proto

∂J/∂w = −2 · 1/n ∑i=1n xi yi = −2 · 5,678 = −11,36,   ∂J/∂b = −2 · ȳ = −2 · 6,88 = −13,76,

kde 5,678 je průměr součinů plochy (ve stovkách m²) a ceny a ȳ = 6,88 průměrná cena v milionech. S rychlostí učení η = 0,5 (barvy odpovídají členům vzorce kroku výše):

w ← 0 − 0,5 · (−11,36) = 5,68,   b ← 0 − 0,5 · (−13,76) = 6,88.

(w je zde v milionech za 100 m².) Ztráta klesne z 54,2 na 17,7. Oba gradienty byly záporné (model všude podstřeloval), a tak oba parametry vzrostly.

Začneme s w = 0 a b = 0 (model říká „všechno stojí nula“, ztráta 54,2) a uděláme 200 epoch gradientního sestupu. Výsledek: w = 0,0910 milionu za m², tedy zhruba 91 000 Kč za každý metr navíc, a b = 0,35 milionu. Přesné řešení metodou nejmenších čtverců (u přímky ho jde spočítat vzorcem, viz díl o lineární regresi) se liší až na čtvrtém desetinném místě. Sestup dorazil tam, kam měl.

04812 nový byt 65 m² → 6,27 mil. 255075100125 plocha (m²) cena (mil. Kč)
Byty podle plochy a ceny, naučená přímka a předpověď pro nový byt trénovací validační testovací model

4. Hyperparametry: co nastavujeme my

Definice — hyperparametry

Trénink je postup, který z trénovacích dat Dtr a z nastavení h spočítá parametry θ* (např. gradientní sestup výše). Hyperparametry jsou složky nastavení h: veličiny, které ovlivňují tvar modelu nebo průběh učení, nejsou součástí θ, trénink je nemění a volíme je my předem. Patří k nim:

  1. tvar a velikost modelu (tvar funkce fθ a množina Θ);
  2. rychlost učení η > 0 — jak velký je krok gradientního sestupu;
  3. počet epoch;
  4. velikost dávky B ∈ {1, …, n} — kolik trénovacích příkladů se použije na výpočet gradientu v jednom kroku.

Hyperparametry se ladí podle výsledků na validačních datech Dval, nikdy na testovacích.

Laicky řečeno

Parametry jsou to, co se žák naučí. Hyperparametry jsou to, jak ho učíme: jak rychle, jak dlouho, kolik příkladů najednou.

0,11101001000 050100150200 epocha (průchody trénovacími daty) ztráta MSE ((mil. Kč)², log. měřítko)
Ztráta na trénovacích datech během učení pro tři rychlosti učení rychlost učení 0,05rychlost učení 0,5rychlost učení 1,6

S rychlostí 0,05 se model učí pomalu — po 200 epochách má ztrátu 0,48 a ještě není v cíli. S 0,5 dorazí za pár desítek epoch na 0,165. S 1,6 jsou kroky tak velké, že model přeskakuje údolí čím dál dál a ztráta exploduje — po pěti epochách je 46 310 590. Správná rychlost učení je jedno z nejčastějších ladění v celém strojovém učení.

U přímky a MSE se dá přesně spočítat, kde leží hranice mezi „pomalu“ a „exploduje“. Ztráta je kvadratická funkce parametrů, takže její zakřivení je všude stejné a popisují ho dvě čísla — zakřivení ve strmém a v plochém směru údolí (vlastní čísla λ Hessovy matice, tabulky druhých derivací).

et+1 = (1 − η λ) · et

et+1
vzdálenost parametrů od nejlepších hodnot po další epoše (v jednom ze dvou směrů) — tu chceme dostat k nule
1
bez kroku by vzdálenost zůstala, jaká byla; krok z ní ubere díl η λ. Je-li |1 − η λ| < 1, vzdálenost se zmenšuje, je-li větší než 1, roste geometrickou řadou
η
rychlost učení — jediné, co tu volíme my
λ
zakřivení ztráty v daném směru — dané daty, ne námi; ve strmém směru je gradient velký, a krok proto dlouhý
et
vzdálenost před epochou; vzorec se opakuje, takže po t epochách je et = (1 − η λ)t e0
Věta — kdy gradientní sestup konverguje

Nechť p ≥ 1, H ∈ ℝp×p je symetrická matice s vlastními čísly λ1, …, λp, kde λmin = minj λj > 0 a λmax = maxj λj, θ* ∈ ℝp, c ∈ ℝ a ztráta je kvadratická funkce

J(θ) = c + 1/2 (θ − θ*)T H (θ − θ*),   θ ∈ ℝp,

s Hessovou maticí H a minimem v θ*. Nechť η ∈ ℝ a θt+1 = θt − η ∇J(θt) pro t = 0, 1, 2, … Pak θt → θ* pro každý počáteční bod θ0 ∈ ℝp, právě když

0 < η < 2/λmax.

Důkaz. Platí ∇J(θ) = H(θ − θ*), takže odchylka et = θt − θ* splňuje et+1 = (I − ηH) et. V ortonormální bázi vlastních vektorů H se j-tá složka et(j) vyvíjí jako et+1(j) = (1 − η λj) et(j), tedy et(j) = (1 − η λj)t e0(j). Všechny složky jdou pro každé e0 k nule, právě když |1 − η λj| < 1 pro všechna j, tj. 0 < η λj < 2; protože λj > 0, je nejpřísnější podmínka pro λmax. ∎

Příklad — mez pro naše byty

Pro MSE přímky je H = 2/n · [[∑xi2, ∑xi], [∑xi, n]] = [[1,193, 1,435], [1,435, 2]] (plocha ve stovkách m²). Vlastní čísla vyjdou λmax = 3,087 a λmin = 0,106, takže sestup konverguje pro η < 2/3,087 = 0,648. Barvy odpovídají členům vzorce et+1 = (1 − η λ) · et výše.

η = 0,05: násobitel v plochém směru je 1 − 0,05 · 0,106 = 0,9947; po 200 epochách zbývá 0,9947200 ≈ 35 % původní odchylky — proto model není v cíli.

η = 0,5: násobitele jsou |1 − 0,5 · 3,087| = 0,544 a 1 − 0,5 · 0,106 = 0,947; po 200 epochách zbývá 0,947200 ≈ 2 · 10−5 odchylky — prakticky nic.

η = 1,6 > 0,648: ve strmém směru je |1 − 1,6 · 3,087| = 3,94. Odchylka se každou epochu zhruba zečtyřnásobí a ztráta, která roste s její druhou mocninou, 15,5krát — v grafu z 801 na 12 395.

Laicky řečeno

Údolí je úzký žlab: napříč strmý, podél skoro rovný. Rychlost učení musí být dost malá na strmé stěny, jinak přeskočíte na protější svah výš, než jste byli. Jenže pak podél žlabu postupujete pomaloučku. Tenhle spor mezi strmým a plochým směrem je důvod, proč se u velkých modelů používají chytřejší varianty sestupu.

5. Jak dobrý model je

Nechť D′ je libovolná část dat s m ≥ 1 příklady (x, y) a ŷ(x) = fθ*(x) předpověď naučeného modelu. Chybu na D′ měříme odmocninou ze střední kvadratické chyby (RMSE):

RMSE = √1/m ∑(x, y) ∈ D′ (ŷ(x) − y)2

√
odmocnina vrátí výsledek z (mil. Kč)² zpátky do milionů korun — číslo se dá číst jako „typická chyba“
1/m ∑D′
průměr přes vybranou část — trénovací, validační, nebo testovací; každá odpovídá na jinou otázku
(ŷ(x) − y)2
čtverec chyby na jednom bytě, stejně jako ve ztrátě — měříme tím, co jsme minimalizovali
Na testovací části: RMSE = √0,256 = 0,51 milionu (pod odmocninou je průměr čtverců chyb na testovacích bytech).

Průměrná chyba (odmocnina z MSE) je na trénovacích datech 0,41 milionu, na validačních 0,60 a na testovacích 0,51 milionu, tedy zhruba půl milionu korun. Lepší to s jediným příznakem být nemůže: šum, který jsme do cen přidali (poloha, stav), má právě takovou velikost a z plochy se uhodnout nedá. Kdo chce přesnější odhad, potřebuje víc příznaků — ne chytřejší přímku. Kdybychom naopak model udělali příliš pružný, naučil by se šum trénovacích dat nazpaměť (přeučení) a na nových bytech by se mýlil víc.

6. Inference: model v provozu

Definice — inference

Nechť {fθ : θ ∈ Θ} je model a θ* ∈ Θ parametry, které našel trénink. Inference je výpočet předpovědi

ŷ = fθ*(x)

pro nový vstup x ∈ X, přičemž parametry θ* zůstávají pevné. Model se při inferenci neučí (pokud ho výslovně znovu netrénujeme). U jazykových modelů je inferencí každá odpověď — model generuje token po tokenu a pro každý token udělá jeden průchod sítí.

Laicky řečeno

Trénink je studium, inference je zkouška — nebo práce. Studuje se jednou a dlouho, pracuje se pak denně a rychle. Když si s chatbotem píšete, neučíte ho (to se děje jindy a jinak), jen ho používáte.

Náš model pro byt o 65 m² odhadne 6,27 milionu. Stojí to 3 početní operace. Trénink stál zhruba 72 000 operací. U velkých modelů je poměr podobný, jen v jiném měřítku: trénink trvá měsíce na tisících grafických karet, jedna odpověď vteřiny. Jenže odpovědí jsou miliardy, takže u nejpoužívanějších modelů může inference dohromady stát víc výpočtu než jejich trénink — a proto se tolik řeší, jak modely zmenšit a zrychlit.

Příklad — inference a počet operací

Dosadíme naučené parametry w = 9,0957 milionu za 100 m² (tj. 0,0910 za m²) a b = 0,3538; plochu ve stovkách m², x = 0,65:

ŷ = 9,0957 · 0,65 + 0,3538 = 5,9122 + 0,3538 = 6,2660 ≈ 6,27 milionu

(barvy odpovídají členům vzorce ŷ = w · x + b v kapitole o modelu).

To jsou 3 operace: převod jednotek (dělení stem), násobení a sčítání. Jedna epocha tréninku udělá pro každý z 40 bytů předpověď, chybu a oba příspěvky ke gradientu — počítáme zhruba 9 operací na byt (přesný počet záleží na tom, co za jednu operaci považujeme), tedy 40 · 9 · 200 = 72 000 operací za celý trénink. Poměr trénink : jedna předpověď je 24 000 : 1.

7. Slovníček

Pojmy z tohoto dílu a kde se o nich v sérii dozvíte víc:

data
příklady, ze kterých se model učí — u nás 60 bytů s plochou a cenou — podrobně
příznak
vstupní údaj o příkladu (plocha); obrázek má příznaků tisíce — pixely — podrobně
štítek
správná odpověď, kterou chceme předpovídat (cena) — podrobně
trénovací, validační a testovací data
na prvních se model učí, na druhých se ladí nastavení, třetí se použijí jednou na konci — podrobně
model
funkce s nastavitelnými parametry, která ze vstupu počítá výstup — podrobně
parametr (váha)
číslo uvnitř modelu, které se učí; jazykové modely jich mají miliardy — podrobně
ztrátová funkce
číslo, které měří, jak moc se model mýlí; učení ho zmenšuje — podrobně
trénink (učení)
hledání parametrů, při kterých je ztráta na trénovacích datech malá — podrobně
gradient
směr, kterým ztráta roste nejrychleji; trénink jde opačně — podrobně
epocha
jeden průchod všemi trénovacími daty — podrobně
dávka (batch)
kolik příkladů se použije na jeden krok učení — podrobně
hyperparametr
nastavení, které si volíme my a model se ho neučí (rychlost učení, počet epoch, velikost modelu) — podrobně
přeučení
model se naučí trénovací data nazpaměť a na nových datech selhává — podrobně
inference
použití naučeného modelu na nový vstup — to, co děláte, když se ptáte chatbota — podrobně
token
kousek textu, se kterým jazykový model pracuje — podrobně
embedding
vektor čísel, který reprezentuje slovo, obrázek nebo jiný objekt — podrobně
kontext a prompt
všechen text, který model dostane při inferenci — podrobně

8. Shrnutí

  • Data = příklady s příznaky a štítky, rozdělené na trénovací, validační a testovací část.
  • Model = funkce s parametry; trénink hledá parametry s nejmenší ztrátou, typicky gradientním sestupem.
  • Náš model se naučil 91 000 Kč za m² — stejně jako přesný výpočet.
  • Hyperparametry volíme my: s malou rychlostí učení je trénink pomalý, s velkou se rozpadne.
  • Chyba na testu (0,51 mil.) odpovídá šumu v datech; lepší model potřebuje víc příznaků.
  • Inference = použití naučeného modelu; je levná na jeden dotaz, ale dotazů je obrovské množství.

Chcete si to osahat? Požádejte AI agenta, ať stáhne skutečná data o cenách bytů ve vašem městě, rozdělí je na tři části a natrénuje stejnou přímku — a pak ať přidá druhý příznak (třeba vzdálenost od centra) a porovná chybu na testu.

Máte na to jiný názor? Napište na support@coden-app.com.

Agent na vašem počítači, ovládaný z telefonu