Preskočiť na obsah
coden

Dáta, model, tréning, inferencia: základné pojmy na jednom príklade

Celá cesta strojového učenia na odhade ceny bytu: dáta a ich rozdelenie, model s parametrami, tréning gradientným zostupom, hyperparametre a rýchlosť učenia, vyhodnotenie, inferencia a slovníček pojmov s odkazmi na diely série.

9 minút Matěj Žalmánek 2026-10-16

Séria Základy AI Diel 3 z 52
  1. Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
  2. Stručná história umelej inteligencie: od Turinga po jazykové modely
  3. Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
  4. Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
  6. Funkcie a zobrazenia: prečo je každý model v AI funkcia
  7. Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
  8. Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
  9. Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
  10. Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
  11. Gradientný zostup: ako sa model učí
  12. Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
  13. Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
  14. Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
  15. Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
  16. Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
  17. Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
  18. Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
  19. Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
  20. Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
  21. Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
  22. Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
  23. Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
  24. Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
  25. Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
  26. Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
  27. Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
  28. Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
  29. Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
  30. Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
  31. Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
  32. Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
  33. Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
  34. Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
  35. Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
  36. Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
  38. Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
  39. Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
  40. Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
  41. Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
  42. Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
  43. Prompty, kontext a RAG: ako modelu dať správne informácie
  44. Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
  45. Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
  46. Difúzne modely: ako sa z čistého šumu stane obrázok
  47. Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
  48. Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
  49. Policy gradient a PPO: učenie priamo stratégie
  50. Ako funguje AI agent: jazykový model v slučke s nástrojmi
  51. Programovanie s AI agentmi: zadanie, testy a kontrola
  52. Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť

Celá osnova série Hotovo: 52 z 83 tém

Čo si odnesiete
  • Čo znamenajú dáta, model, tréning a inferencia a ako spolu súvisia.
  • Rozdiel medzi parametrami a hyperparametrami a prečo záleží na rýchlosti učenia.
  • Prečo je tréning drahý raz a inferencia lacná, ale častá.

Čo sa hodí vedieť vopred: Mapa umelej inteligencie: čo je čo a ako to do seba zapadá

V celej sérii sa opakujú štyri slová: dáta, model, tréning a inferencia. Či ide o rozpoznávanie číslic, filter spamu alebo veľký jazykový model, cesta je stále rovnaká: z príkladov sa naučí funkcia, ktorá potom odpovedá na nové otázky. V tomto diele túto cestu prejdeme celú na najmenšom možnom príklade — odhade ceny bytu podľa plochy — a pri každom kroku povieme, ako vyzerá pri veľkých modeloch. Na konci je slovníček pojmov s odkazmi na diely, kde sa o nich dozviete viac.

Nadväzuje na diely Mapa umelej inteligencie a Stručná história AI.

TRÉNING — raz, dlho INFERENCIA — zakaždým, rýchlo trénovacie dátaučenieparametrenový vstupmodelpredpoveď
Tréning a inferencia

1. Dáta: príklady so správnymi odpoveďami

Definícia — dáta, príznaky a štítky

Dáta sú príklady, z ktorých sa model učí. Každý príklad sa skladá z

  1. príznakov — vstupov, ktoré o ňom vieme (u nás plocha bytu),
  2. a pri učení s učiteľom aj zo štítku — správnej odpovede (u nás cena bytu).

Dáta sa delia na tri navzájom disjunktné časti, každú s iným účelom:

  1. trénovacie — z nich sa model učí (hľadajú sa podľa nich parametre);
  2. validačné — podľa nich ladíme nastavenie učenia a vyberáme medzi modelmi;
  3. testovacie — použijú sa len raz, na konci, aby poctivo odhadli, ako model dopadne na nových dátach.

Presný zápis je v definícii „dátová sada formálne“ nižšie.

Laicky povedané

Učebnica s príkladmi a výsledkami vzadu. Na trénovacích príkladoch sa učíte, na cvičnej písomke zistíte, či to viete, a ostrá písomka (ktorú ste predtým nevideli) ukáže, ako na tom naozaj ste.

Naše dáta sú vymyslené: 60 bytov, pri každom plocha (príznak) a cena v miliónoch korún (štítok). Cena rastie s plochou, ale nie presne — dva rovnako veľké byty sa líšia polohou, stavom, poschodím. Rozdelíme ich na 40 trénovacích, 10 validačných a 10 testovacích.

Definícia — dátová sada formálne

Nech d, n ∈ ℕ, d, n ≥ 1, a nech Y je množina možných štítkov (Y = ℝ pri regresii, konečná množina tried pri klasifikácii). Dátová sada je konečná postupnosť dvojíc

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

Vektor x(i) obsahuje d príznakov i-tého príkladu a y(i) je jeho štítok. Predpokladá sa, že existuje (neznáme) rozdelenie pravdepodobnosti na ℝd × Y, z ktorého sú dvojice vybrané navzájom nezávisle a z ktorého pochádzajú aj budúce dotazy.

Rozdelenie dát je dané rozkladom množiny indexov na tri navzájom disjunktné množiny

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

časti dát sú Dtr = ((x(i), y(i)))i ∈ Itr a obdobne Dval, Dtest. Každý príklad teda patrí do práve jednej časti. U nás d = 1 (plocha), Y = ℝ (cena v miliónoch Kč), n = 60 a časti majú 40, 10 a 10 príkladov.

Laicky povedané

Tabuľka, kde každý riadok je jeden byt: stĺpce s príznakmi a posledný stĺpec s cenou. Disjunktné znamená, že žiadny byt nie je v dvoch častiach zároveň — inak by „ostrá písomka“ obsahovala príklady, ktoré model už videl. A predpoklad rovnakého rozdelenia hovorí, že testovacie byty sú z toho istého trhu ako tie, na ktoré sa potom budeme pýtať; bez neho by chyba na teste o budúcnosti nevypovedala nič.

Pri veľkých jazykových modeloch sú dátami bilióny tokenov textu z webu, kníh a kódu; príznakom je doterajší text a štítkom ďalší token (diel o predtrénovaní). Princíp je rovnaký.

2. Model: funkcia s parametrami

Definícia — model a parametre

Nech X je množina vstupov, Y množina výstupov a Θ ⊆ ℝp, p ≥ 1, množina prípustných hodnôt parametrov. Model je systém funkcií

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

t. j. pre každú voľbu θ = (θ1, …, θp) ∈ Θ jedna funkcia, ktorá zo vstupu x ∈ X vypočíta výstup fθ(x) ∈ Y. Čísla θ1, …, θp sú parametre modelu (pri neurónových sieťach váhy). Tvar funkcie (a tým X, Y, Θ) volíme my; hodnoty parametrov hľadá učenie.

Náš model je priamka: X = Y = ℝ, Θ = ℝ2, θ = (w, b) a fw,b(x) = w · x + b, kde x je plocha, w hovorí, o koľko stúpne cena s každou jednotkou plochy, a b, kde priamka začína.

Laicky povedané

Model je stroj s gombíkmi. Náš má gombíky dva. Jazykový model ich má miliardy — ale stále je to stroj, ktorý zo vstupu počíta výstup, a jeho „znalosti“ nie sú nič iné než nastavenie gombíkov.

ŷ = w · x + b

ŷ
predpoveď ceny; strieška ju odlišuje od skutočnej ceny y, s ktorou ju potom porovnávame
w
sklon — koľko miliónov pridá každý meter navyše; bez neho by cena od plochy vôbec nezávisela
x
plocha v m², jediný príznak; to jediné, čo model o byte vie
b
posun — „cena nulového bytu“; bez neho by priamka musela prechádzať začiatkom, a ceny bytov k nule nesmerujú
Všeobecne sa píše ŷ = fθ(x): funkcia f s parametrami θ = (w, b). Pri jazykovom modeli je f transformer a θ miliardy váh.

3. Tréning: ladenie parametrov

Definícia — stratová funkcia a tréning

Nech {fθ : θ ∈ Θ}, Θ ⊆ ℝp, je model a Dtr = ((x1, y1), …, (xn, yn)), n ≥ 1, trénovacie dáta. Stratová funkcia je funkcia

J : Θ → [0, ∞),

ktorá každej voľbe parametrov θ priradí číslo J(θ) udávajúce, ako veľmi sa model fθ na Dtr mýli — u nás priemer druhých mocnín chýb (MSE), zapísaný celý v rozbore nižšie. Tréning je hľadanie parametrov s čo najmenšou stratou, ideálne θ* ∈ argminθ ∈ Θ J(θ).

Ak je J diferencovateľná a Θ = ℝp, označme ∇J(θ) = (∂J/∂θ1, …, ∂J/∂θp) jej gradient. Gradientný zostup je algoritmus:

  • Vstup: počiatočné parametre θ0 ∈ ℝp, rýchlosť učenia η > 0, počet krokov T ∈ ℕ.
  • Výstup: parametre θT ∈ ℝp.
  1. Pre t = 0, 1, …, T − 1 polož θt+1 = θt − η · ∇J(θt).
  2. Po T krokoch skonči a vráť θT.

Zostup teda v každom kroku vypočíta, ktorým smerom strata najrýchlejšie rastie, a posunie parametre malým krokom opačne. Epocha je jeden prechod všetkými trénovacími dátami; pri našom zostupe, kde každý krok počíta gradient zo všetkých n príkladov, je jedna epocha práve jeden krok.

Laicky povedané

Hmla na kopci a cieľ dostať sa do údolia. Vidíte len svah pod nohami, tak urobíte krok z kopca, znova sa pozriete, ďalší krok. Každý krok je jedna úprava gombíkov, údolie sú gombíky, s ktorými sa model mýli najmenej.

Naša stratová funkcia, stredná kvadratická chyba (MSE), zapísaná celá:

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

J(w, b)
strata ako funkcia parametrov — dáta sú pevné, meniť smieme len w a b, preto sú v zátvorke len ony
1/n ∑
priemer cez všetkých n = 40 trénovacích bytov — aby bola strata porovnateľná pre rôzne veľké dáta a žiadny byt nemal prednosť
w xi + b − yi
chyba na i-tom byte: predpoveď ŷi mínus skutočná cena; kladná, keď model prestrelí, záporná, keď podstrelí
2
druhá mocnina — aby sa kladné a záporné chyby nevyrušili, veľké chyby vážili viac než malé a strata sa dala hladko derivovať
Strata je nulová len vtedy, keď priamka prechádza všetkými bodmi presne; inak je kladná.
Veta — gradient MSE pre priamku

Nech n ≥ 1, (x1, y1), …, (xn, yn) ∈ ℝ2 sú trénovacie dáta a J : ℝ2 → ℝ je MSE priamky,

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

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

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

Dôkaz. Derivácia súčtu je súčet derivácií a konštantný násobok 1/n sa derivovaním zachová. Pre jeden člen podľa pravidla o derivácii zloženej funkcie: ∂/∂w (w xi + b − yi)2 = 2 (w xi + b − yi) · xi, pretože vnútro zátvorky má podľa w deriváciu xi; podľa b má deriváciu 1. ∎

Laicky povedané

Každý byt „ťahá“ za parametre úmerne tomu, ako veľmi sa model na ňom pomýlil. Pri w sa ťah ešte násobí plochou: chyba pri veľkom byte hovorí o sklone viac než chyba pri garsónke.

Jeden krok gradientného zostupu potom posunie oba parametre proti gradientu:

w ← w − η · ∂J/∂w

w
parameter pred krokom a po ňom — šípka ← znamená „prepíš novou hodnotou“, nie rovnosť
−
ideme opačne než gradient, teda z kopca: stratu chceme zmenšiť, nie zväčšiť
η
rýchlosť učenia — aký dlhý krok urobíme; gradient platí len v okolí bodu, takže krok musí byť malý (pozri ďalšiu kapitolu)
∂J/∂w
gradient — ktorým smerom a ako strmo strata rastie, keď w zväčšíme
Pre b rovnako, len s ∂J/∂b. Oba parametre sa menia naraz, z gradientu vypočítaného v starom bode.

Celý tréning ako algoritmus (presne tak to počíta obrázok nižšie):

w, b = 0, 0                                  # počiatočné parametre
for epocha in range(200):                    # hyperparameter: počet epoch
    gw = gb = 0
    for plocha, cena in trenovaci_data:      # jedna epocha = všetky dáta
        x = plocha / 100                     # plocha v 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 kopca, eta = rýchlosť učenia

Plochu dosadzujeme v stovkách m² (52 m² → 0,52). V metroch by gradient podľa w vychádzal desiatky ráz väčší než podľa b a jedna rýchlosť učenia by nesedela obom parametrom zároveň. Takéto škálovanie príznakov je v praxi bežné. Preto w nižšie vychádza v miliónoch na 100 m².

Príklad — prvý krok zostupu

V bode w = b = 0 model všade predpovedá 0, takže chyba na každom byte je −yi. Gradient je preto

∂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 priemer súčinov plochy (v stovkách m²) a ceny a ȳ = 6,88 priemerná cena v miliónoch. S rýchlosťou učenia η = 0,5 (farby zodpovedajú členom vzorca kroku vyššie):

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

(w je tu v miliónoch na 100 m².) Strata klesne z 54,2 na 17,7. Oba gradienty boli záporné (model všade podstreľoval), a tak oba parametre vzrástli.

Začneme s w = 0 a b = 0 (model hovorí „všetko stojí nula“, strata 54,2) a urobíme 200 epoch gradientného zostupu. Výsledok: w = 0,0910 milióna na m², teda zhruba 91 000 Kč za každý meter navyše, a b = 0,35 milióna. Presné riešenie metódou najmenších štvorcov (pri priamke sa dá vypočítať vzorcom, pozri diel o lineárnej regresii) sa líši až na štvrtom desatinnom mieste. Zostup dorazil tam, kam mal.

04812 nový byt 65 m² → 6,27 mil. 255075100125 plocha (m²) cena (mil. Kč)
Byty podľa plochy a ceny, naučená priamka a predpoveď pre nový byt trénovacie validačné testovacie model

4. Hyperparametre: čo nastavujeme my

Definícia — hyperparametre

Tréning je postup, ktorý z trénovacích dát Dtr a z nastavenia h vypočíta parametre θ* (napr. gradientný zostup vyššie). Hyperparametre sú zložky nastavenia h: veličiny, ktoré ovplyvňujú tvar modelu alebo priebeh učenia, nie sú súčasťou θ, tréning ich nemení a volíme ich my vopred. Patria k nim:

  1. tvar a veľkosť modelu (tvar funkcie fθ a množina Θ);
  2. rýchlosť učenia η > 0 — aký veľký je krok gradientného zostupu;
  3. počet epoch;
  4. veľkosť dávky B ∈ {1, …, n} — koľko trénovacích príkladov sa použije na výpočet gradientu v jednom kroku.

Hyperparametre sa ladia podľa výsledkov na validačných dátach Dval, nikdy na testovacích.

Laicky povedané

Parametre sú to, čo sa žiak naučí. Hyperparametre sú to, ako ho učíme: ako rýchlo, ako dlho, koľko príkladov naraz.

0,11101001000 050100150200 epocha (prechody trénovacími dátami) strata MSE ((mil. Kč)², log. mierka)
Strata na trénovacích dátach počas učenia pre tri rýchlosti učenia rýchlosť učenia 0,05rýchlosť učenia 0,5rýchlosť učenia 1,6

S rýchlosťou 0,05 sa model učí pomaly — po 200 epochách má stratu 0,48 a ešte nie je v cieli. S 0,5 dorazí za pár desiatok epoch na 0,165. S 1,6 sú kroky také veľké, že model preskakuje údolie čoraz ďalej a strata exploduje — po piatich epochách je 46 310 590. Správna rýchlosť učenia je jedno z najčastejších ladení v celom strojovom učení.

Pri priamke a MSE sa dá presne vypočítať, kde leží hranica medzi „pomaly“ a „exploduje“. Strata je kvadratická funkcia parametrov, takže jej zakrivenie je všade rovnaké a opisujú ho dve čísla — zakrivenie v strmom a v plochom smere údolia (vlastné čísla λ Hessovej matice, tabuľky druhých derivácií).

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

et+1
vzdialenosť parametrov od najlepších hodnôt po ďalšej epoche (v jednom z dvoch smerov) — tú chceme dostať k nule
1
bez kroku by vzdialenosť zostala taká, aká bola; krok z nej uberie diel η λ. Ak je |1 − η λ| < 1, vzdialenosť sa zmenšuje, ak je väčšia než 1, rastie geometrickým radom
η
rýchlosť učenia — jediné, čo tu volíme my
λ
zakrivenie straty v danom smere — dané dátami, nie nami; v strmom smere je gradient veľký, a krok preto dlhý
et
vzdialenosť pred epochou; vzorec sa opakuje, takže po t epochách je et = (1 − η λ)t e0
Veta — kedy gradientný zostup konverguje

Nech p ≥ 1, H ∈ ℝp×p je symetrická matica s vlastnými číslami λ1, …, λp, kde λmin = minj λj > 0 a λmax = maxj λj, θ* ∈ ℝp, c ∈ ℝ a strata je kvadratická funkcia

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

s Hessovou maticou H a minimom v θ*. Nech η ∈ ℝ a θt+1 = θt − η ∇J(θt) pre t = 0, 1, 2, … Potom θt → θ* pre každý počiatočný bod θ0 ∈ ℝp práve vtedy, keď

0 < η < 2/λmax.

Dôkaz. Platí ∇J(θ) = H(θ − θ*), takže odchýlka et = θt − θ* spĺňa et+1 = (I − ηH) et. V ortonormálnej báze vlastných vektorov H sa j-tá zložka et(j) vyvíja ako et+1(j) = (1 − η λj) et(j), teda et(j) = (1 − η λj)t e0(j). Všetky zložky idú pre každé e0 k nule práve vtedy, keď |1 − η λj| < 1 pre všetky j, t. j. 0 < η λj < 2; keďže λj > 0, najprísnejšia je podmienka pre λmax. ∎

Príklad — hranica pre naše byty

Pre MSE priamky je H = 2/n · [[∑xi2, ∑xi], [∑xi, n]] = [[1,193, 1,435], [1,435, 2]] (plocha v stovkách m²). Vlastné čísla vyjdú λmax = 3,087 a λmin = 0,106, takže zostup konverguje pre η < 2/3,087 = 0,648. Farby zodpovedajú členom vzorca et+1 = (1 − η λ) · et vyššie.

η = 0,05: násobiteľ v plochom smere je 1 − 0,05 · 0,106 =0,9947; po 200 epochách zostáva 0,9947200 ≈ 35 % pôvodnej odchýlky — preto model nie je v cieli.

η = 0,5: násobitele sú |1 − 0,5 · 3,087| = 0,544 a 1 − 0,5 · 0,106 = 0,947; po 200 epochách zostáva 0,947200 ≈ 2 · 10−5 odchýlky — prakticky nič.

η = 1,6 > 0,648: v strmom smere je |1 − 1,6 · 3,087| = 3,94. Odchýlka sa každú epochu zhruba zoštvornásobí a strata, ktorá rastie s jej druhou mocninou, 15,5-krát — v grafe z 801 na 12 395.

Laicky povedané

Údolie je úzky žľab: naprieč strmý, pozdĺž skoro rovný. Rýchlosť učenia musí byť dosť malá na strmé steny, inak preskočíte na protiľahlý svah vyššie, než ste boli. Lenže potom pozdĺž žľabu postupujete pomaličky. Tento spor medzi strmým a plochým smerom je dôvod, prečo sa pri veľkých modeloch používajú chytrejšie varianty zostupu.

5. Aký dobrý je model

Nech D′ je ľubovoľná časť dát s m ≥ 1 príkladmi (x, y) a ŷ(x) = fθ*(x) predpoveď naučeného modelu. Chybu na D′ meriame odmocninou zo strednej kvadratickej chyby (RMSE):

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

√
odmocnina vráti výsledok z (mil. Kč)² späť do miliónov korún — číslo sa dá čítať ako „typická chyba“
1/m ∑D′
priemer cez vybranú časť — trénovaciu, validačnú alebo testovaciu; každá odpovedá na inú otázku
(ŷ(x) − y)2
štvorec chyby na jednom byte, rovnako ako v strate — meriame tým, čo sme minimalizovali
Na testovacej časti: RMSE = √0,256 = 0,51 milióna (pod odmocninou je priemer štvorcov chýb na testovacích bytoch).

Priemerná chyba (odmocnina z MSE) je na trénovacích dátach 0,41 milióna, na validačných 0,60 a na testovacích 0,51 milióna, teda zhruba pol milióna korún. Lepšie to s jediným príznakom byť nemôže: šum, ktorý sme do cien pridali (poloha, stav), má práve takú veľkosť a z plochy sa uhádnuť nedá. Kto chce presnejší odhad, potrebuje viac príznakov — nie chytrejšiu priamku. Keby sme naopak model urobili príliš pružný, naučil by sa šum trénovacích dát naspamäť (preučenie) a na nových bytoch by sa mýlil viac.

6. Inferencia: model v prevádzke

Definícia — inferencia

Nech {fθ : θ ∈ Θ} je model a θ* ∈ Θ parametre, ktoré našiel tréning. Inferencia je výpočet predpovede

ŷ = fθ*(x)

pre nový vstup x ∈ X, pričom parametre θ* zostávajú pevné. Model sa pri inferencii neučí (pokiaľ ho výslovne znova netrénujeme). Pri jazykových modeloch je inferenciou každá odpoveď — model generuje token po tokene a pre každý token urobí jeden prechod sieťou.

Laicky povedané

Tréning je štúdium, inferencia je skúška — alebo práca. Študuje sa raz a dlho, pracuje sa potom denne a rýchlo. Keď si s chatbotom píšete, neučíte ho (to sa deje inokedy a inak), len ho používate.

Náš model pre byt s plochou 65 m² odhadne 6,27 milióna. Stojí to 3 početné operácie. Tréning stál zhruba 72 000 operácií. Pri veľkých modeloch je pomer podobný, len v inej mierke: tréning trvá mesiace na tisícoch grafických kariet, jedna odpoveď sekundy. Lenže odpovedí sú miliardy, takže pri najpoužívanejších modeloch môže inferencia dohromady stáť viac výpočtov než ich tréning — a preto sa toľko rieši, ako modely zmenšiť a zrýchliť.

Príklad — inferencia a počet operácií

Dosadíme naučené parametre w = 9,0957 milióna na 100 m² (t. j. 0,0910 na m²) a b = 0,3538; plochu v stovkách m², x = 0,65:

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

(farby zodpovedajú členom vzorca ŷ = w · x + b v kapitole o modeli).

To sú 3 operácie: prevod jednotiek (delenie stom), násobenie a sčítanie. Jedna epocha tréningu urobí pre každý z 40 bytov predpoveď, chybu a oba príspevky ku gradientu — počítame zhruba 9 operácií na byt (presný počet závisí od toho, čo za jednu operáciu považujeme), teda 40 · 9 · 200 = 72 000 operácií za celý tréning. Pomer tréning : jedna predpoveď je 24 000 : 1.

7. Slovníček

Pojmy z tohto dielu a kde sa o nich v sérii dozviete viac:

dáta
príklady, z ktorých sa model učí — u nás 60 bytov s plochou a cenou — podrobne
príznak
vstupný údaj o príklade (plocha); obrázok má príznakov tisíce — pixely — podrobne
štítok
správna odpoveď, ktorú chceme predpovedať (cena) — podrobne
trénovacie, validačné a testovacie dáta
na prvých sa model učí, na druhých sa ladí nastavenie, tretie sa použijú raz na konci — podrobne
model
funkcia s nastaviteľnými parametrami, ktorá zo vstupu počíta výstup — podrobne
parameter (váha)
číslo vnútri modelu, ktoré sa učí; jazykové modely ich majú miliardy — podrobne
stratová funkcia
číslo, ktoré meria, ako veľmi sa model mýli; učenie ho zmenšuje — podrobne
tréning (učenie)
hľadanie parametrov, pri ktorých je strata na trénovacích dátach malá — podrobne
gradient
smer, ktorým strata rastie najrýchlejšie; tréning ide opačne — podrobne
epocha
jeden prechod všetkými trénovacími dátami — podrobne
dávka (batch)
koľko príkladov sa použije na jeden krok učenia — podrobne
hyperparameter
nastavenie, ktoré si volíme my a model sa ho neučí (rýchlosť učenia, počet epoch, veľkosť modelu) — podrobne
preučenie
model sa naučí trénovacie dáta naspamäť a na nových dátach zlyháva — podrobne
inferencia
použitie naučeného modelu na nový vstup — to, čo robíte, keď sa pýtate chatbota — podrobne
token
kúsok textu, s ktorým jazykový model pracuje — podrobne
embedding
vektor čísel, ktorý reprezentuje slovo, obrázok alebo iný objekt — podrobne
kontext a prompt
všetok text, ktorý model dostane pri inferencii — podrobne

8. Zhrnutie

  • Dáta = príklady s príznakmi a štítkami, rozdelené na trénovaciu, validačnú a testovaciu časť.
  • Model = funkcia s parametrami; tréning hľadá parametre s najmenšou stratou, typicky gradientným zostupom.
  • Náš model sa naučil 91 000 Kč za m² — rovnako ako presný výpočet.
  • Hyperparametre volíme my: s malou rýchlosťou učenia je tréning pomalý, s veľkou sa rozpadne.
  • Chyba na teste (0,51 mil.) zodpovedá šumu v dátach; lepší model potrebuje viac príznakov.
  • Inferencia = použitie naučeného modelu; je lacná na jeden dotaz, ale dotazov je obrovské množstvo.

Chcete si to vyskúšať? Požiadajte AI agenta, nech stiahne skutočné dáta o cenách bytov vo vašom meste, rozdelí ich na tri časti a natrénuje rovnakú priamku — a potom nech pridá druhý príznak (napríklad vzdialenosť od centra) a porovná chybu na teste.

Máte na to iný názor? Napíšte na support@coden-app.com.

Agent na vašom počítači, ovládaný z telefónu