Preskočiť na obsah
coden

Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie

Učenie s učiteľom, bez učiteľa, s čiastočným učiteľom, samoučenie a učenie posilňovaním — s presnými definíciami, laickým vysvetlením a animáciami skutočných algoritmov.

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

Séria Základy AI Diel 42 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
  • Päť druhov strojového učenia podľa toho, aký signál model pri učení dostáva.
  • Prečo môže stačiť pár štítkov a veľa neoznačených dát — a ako sa učia jazykové modely.
  • Ako sa agent naučí konať len z odmien a trestov.

Čo sa hodí vedieť vopred: Mapa umelej inteligencie: čo je čo a ako to do seba zapadá, Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory

„Model sa to naučil.“ Táto veta znie zakaždým rovnako, ale znamená veľmi rozdielne veci. Raz sa model učil z tisícov fotiek, pri ktorých mu niekto napísal, čo je na nich. Inokedy dostal len kopu dát bez jediného popisu a mal v nich nájsť poriadok. A inokedy sa učil ako pes na cvičisku — skúšal a za dobré kroky dostal odmenu.

Strojové učenie sa preto delí podľa toho, aký signál model pri učení dostáva. Prejdeme hlavné druhy od učenia s učiteľom až po učenie posilňovaním. Pri každom nájdete presnú definíciu, laické vysvetlenie a graf, ktorý je skutočným výsledkom algoritmu — nič nie je kreslené ručne.

1. Čo znamená, že sa stroj učí

Definícia — učenie (T. Mitchell, 1997)

Nech je daný počítačový program a tieto tri objekty:

  1. T — trieda úloh, ktoré má program riešiť (napr. „rozhodni o e-maile, či je spam“);
  2. P — miera výkonu: pravidlo, ktoré výsledku programu na úlohách z T priradí číslo, pričom väčšie číslo znamená lepší výkon (napr. podiel správne zaradených e-mailov);
  3. E — skúsenosť: dáta alebo interakcie, ktoré program pri učení dostane (napr. e-maily, ktoré už niekto roztriedil).

Program sa učí zo skúsenosti E vzhľadom na triedu úloh T a mieru výkonu P práve vtedy, keď sa jeho výkon na úlohách z T, meraný pomocou P, zlepšuje so skúsenosťou E — t. j. program, ktorý spracoval viac skúsenosti z E, dosahuje na T (v priemere) vyššiu hodnotu P.

Je to pojmová definícia, nie matematická: T, P a E sa pre každú konkrétnu úlohu ešte len musia zvoliť. Formálny tvar pre učenie s učiteľom je v ďalšej časti.

Laicky povedané

Učí sa to, čo sa zlepšuje praxou. Úloha T je napríklad „rozpoznať spam“, miera P „koľko e-mailov zaradí správne“ a skúsenosť E „tisíc e-mailov, ktoré už niekto roztriedil“. Druhy učenia sa líšia hlavne v tom, ako vyzerá tá skúsenosť E.

Definícia — model a parametre

Nech 𝒳 je neprázdna množina (priestor vstupov), 𝒴 neprázdna množina (priestor výstupov) a p ∈ ℕ, p ≥ 1. Model s parametrami θ ∈ ℝp je sústava funkcií

fθ : 𝒳 → 𝒴,   x ↦ fθ(x),   θ ∈ ℝp,

t. j. každá voľba vektora θ určuje jednu funkciu zo vstupov do výstupov.

Nech J : ℝp → ℝ je účelová funkcia vypočítaná z dát (čím menšie J(θ), tým lepšie model s parametrami θ dáta opisuje). Učenie (tréning) je hľadanie parametrov

θ* ∈ argminθ ∈ ℝp J(θ) = {θ ∈ ℝp : J(θ) ≤ J(θ′) pre všetky θ′ ∈ ℝp}.

Ak je J diferencovateľná, hľadá sa typicky gradientným zostupom: zvoľ počiatočné θ0 ∈ ℝp a rýchlosť učenia η > 0 a pre t = 0, 1, 2, … polož

θt+1 = θt − η ∇J(θt),

kým sa J citeľne zmenšuje (alebo do pevného počtu krokov). Gradientný zostup vo všeobecnosti nájde len lokálne minimum, nie nutne prvok argmin.

Laicky povedané

Model je stroj s mnohými gombíkmi — parametrami. Učenie je otáčanie gombíkmi tak dlho, kým stroj nerobí to, čo chceme. Účelová funkcia je číslo, ktoré hovorí, ako veľmi sa zatiaľ mýli; gradientný zostup otáča gombíkmi vždy tým smerom, kde sa mýli najmenej.

θ ← θ − η ∇J(θ)

θ
všetky parametre modelu naraz (vektor); šípka ← znamená „prepíš novou hodnotou“ — krok sa opakuje, kým sa J zmenšuje
∇J(θ)
gradient — vektor parciálnych derivácií ∂J/∂θj, j = 1, …, p; ukazuje smer, ktorým chyba rastie najrýchlejšie, a pre každý parameter hovorí, ako veľmi na ňom chyba záleží
−
chceme chybu zmenšiť, teda ísť opačne, než ukazuje gradient
η
rýchlosť učenia (malé kladné číslo); gradient platí len v okolí súčasného bodu, takže kroky musia byť krátke — príliš veľké η preskočí údolie, príliš malé učí pomaly
Jeden krok gradientného zostupu: kúsok z kopca dolu.

Hlavné druhy učenia v kocke — líšia sa tým, čo je v dátach k dispozícii:

S učiteľomvstup + správna odpoveď

Naučiť sa odpovedať ako učiteľ.

Bez učiteľalen vstupy

Nájsť v dátach štruktúru.

S čiastočným učiteľompár odpovedí + veľa vstupov

Vyťažiť aj dáta bez popisov.

Samoučenieodpovede vyrobené z dát

Tak sa učia jazykové modely.

Posilňovanímodmena za činy

Naučiť sa konať.

2. Učenie s učiteľom (supervised learning)

Definícia — učenie s učiteľom

Nech 𝒳 je priestor vstupov, 𝒴 priestor štítkov (správnych odpovedí) a P neznáme rozdelenie pravdepodobnosti dvojíc (X, Y) na 𝒳 × 𝒴. Ďalej nech

  1. n ∈ ℕ, n ≥ 1, a trénovacia množina D = ((xi, yi))i=1n je postupnosť dvojíc (xi, yi) ∈ 𝒳 × 𝒴 vybraných z P navzájom nezávisle;
  2. {fθ : 𝒳 → 𝒴 : θ ∈ ℝp} je model (pozri definíciu vyššie);
  3. L : 𝒴 × 𝒴 → [0, ∞) je stratová funkcia — L(ŷ, y) je trest za odpoveď ŷ, ak je správna odpoveď y.

Učenie s učiteľom je hľadanie parametrov, ktoré minimalizujú empirické riziko R̂ : ℝp → [0, ∞):

R̂(θ) = 1/n ∑i=1n L(fθ(xi), yi),   θ* ∈ argminθ ∈ ℝp R̂(θ).

Cieľom však nie je trénovacia množina — model má mať malé skutočné riziko R(θ) = E(X, Y) ∼ P[L(fθ(X), Y)], t. j. dobre fungovať na nových dátach z toho istého rozdelenia (generalizácia). R nepoznáme, preto sa odhaduje priemernou stratou na odloženej testovacej množine, ktorá sa na učenie nepoužila.

Laicky povedané

Ako dieťa s obrázkovou knižkou: pri každom obrázku je napísané „pes“ alebo „mačka“. Model sa pozerá na príklady so správnou odpoveďou a ladí sa tak, aby sa trafil. Stratová funkcia je trest za každú chybu. A skúšku robí na obrázkoch, ktoré nikdy predtým nevidel — naspamäť naučené odpovede sa nepočítajú.

θ* = argminθ 1/n ∑i=1n L(fθ(xi), yi)

fθ(xi)
odpoveď modelu na i-tý príklad — jediné miesto, kde vystupujú parametre, s ktorými smieme hýbať
yi
správna odpoveď od učiteľa; práve tento signál odlišuje učenie s učiteľom od ostatných druhov
L
strata prevedie rozdiel medzi odpoveďou a štítkom na jedno nezáporné číslo, aby sa dalo minimalizovať — pre triedy krížová entropia, pre čísla štvorec rozdielu
1/n ∑
priemer cez trénovaciu množinu; skutočné riziko E[L] cez celé rozdelenie P(X, Y) nepoznáme, tak ho odhadneme priemerom na vzorke (preto „empirické“)
θ* = argminθ
nezaujíma nás najmenšia hodnota straty, ale parametre, pri ktorých nastane — tie sú naučený model
Učenie s učiteľom ako optimalizácia: nájdi parametre s najmenšou priemernou chybou na označených príkladoch.

Podľa toho, čo je štítok y, rozlišujeme dve úlohy.

Klasifikácia

Definícia — klasifikácia

Klasifikácia je učenie s učiteľom, v ktorom je priestor štítkov konečná množina tried 𝒴 = {1, …, K}, K ∈ ℕ, K ≥ 2. Model k vstupu x ∈ 𝒳 vracia odhad rozdelenia cez triedy, t. j. čísla pθ(k | x) ≥ 0 pre k = 1, …, K s ∑k=1K pθ(k | x) = 1.

Bežná strata je krížová entropia: pre x ∈ 𝒳 so štítkom y ∈ 𝒴

L = −∑k=1K [y = k] log pθ(k | x) = −log pθ(y | x),

kde [y = k] je 1 práve vtedy, keď y = k, a inak 0.

Logistická regresia pre dve triedy 𝒴 = {0, 1}: nech 𝒳 = ℝd, parametre sú w ∈ ℝd a b ∈ ℝ a σ : ℝ → (0, 1) je logistická funkcia

σ(z) = 1/1 + e−z.

Model je p(y = 1 | x) = σ(w⊤x + b) a p(y = 0 | x) = 1 − σ(w⊤x + b). Bod x zaradí do triedy 1 práve vtedy, keď σ(w⊤x + b) ≥ 0,5, t. j. práve vtedy, keď w⊤x + b ≥ 0. Rozhodovacia hranica je množina

{x ∈ ℝd : w⊤x + b = 0}

— pre w ≠ 0 nadrovina, v rovine (d = 2) priamka.

Laicky povedané

Klasifikácia odpovedá na otázku „do ktorej škatuľky to patrí“: spam, alebo nie? Pes, mačka, alebo papagáj? Logistická regresia natiahne medzi triedami čiaru a o každom bode povie, s akou istotou leží na ktorej strane.

V grafe je 60 bodov z dvoch tried. Hranica začína schválne zle a gradientný zostup ju epochu po epoche posúva, až kým triedy neoddelí:

príznak x₁ (bez jednotky) príznak x₂ (bez jednotky)
Logistická regresia sa učí oddeliť dve triedy epoch: 60 presnosť na trénovacích dátach: 100 %

Pre dve triedy sa krížová entropia zapisuje jedným vzorcom (farby tried ako v grafe, p = σ(w⊤x + b) je odhad pravdepodobnosti triedy 1):

L(p, y) = −[ y log p + (1 − y) log(1 − p) ]

y log p
uplatní sa len pri bodoch triedy 1 (y = 1, jantárové): trestá, keď model ich triede dá malú pravdepodobnosť p
(1 − y) log(1 − p)
to isté pre triedu 0 (y = 0, zelené), ktorej pravdepodobnosť je 1 − p; činitele y a 1 − y fungujú ako vypínač — vždy platí len jeden zo sčítancov
−
logaritmus pravdepodobnosti je záporný; mínus z neho urobí kladný trest. Istá správna odpoveď stojí −log 1 = 0, istá chybná → ∞ — sebavedomý omyl je najdrahší
Je to záporný logaritmus pravdepodobnosti, ktorú model priradil správnej odpovedi.
Algoritmus — logistická regresia gradientným zostupom

Derivácia priemernej krížovej entropie J podľa váh vyjde prekvapivo jednoducho (vďaka σ′ = σ(1 − σ) sa skráti):

∂J/∂w = 1/n ∑i=1n (pi − yi) xi,   ∂J/∂b = 1/n ∑i=1n (pi − yi),

kde pi = σ(w⊤xi + b).

w, b ← počiatočné hodnoty
opakuj E epoch:                       # epocha = jeden prechod všetkými dátami
    g_w, g_b ← 0, 0
    pre každý príklad (x, y):
        p ← σ(w·x + b)                # odhad pravdepodobnosti triedy 1
        g_w ← g_w + (p − y)·x         # chyba odhadu krát vstup
        g_b ← g_b + (p − y)
    w ← w − η·g_w / n                 # krok proti gradientu
    b ← b − η·g_b / n
trieda(x) = 1, ak σ(w·x + b) ≥ 0,5, inak 0

Presnosť (accuracy) je podiel správne zaradených príkladov: |{i ∈ {1, …, n} : trieda(xi) = yi}|/n.

Príklad — čo sa deje v grafe

Štart: w = (0,4; 1,2), b = −0,9, rýchlosť učenia η = 2,5. Prvý bod má súradnice (0,604; 0,673) a triedu 0:

z = 0,4 · 0,604 + 1,2 · 0,673 − 0,9 = 0,148,   p = σ(0,148) = 1/1 + e−0,148 = 0,537.

Model teda bodu triedy 0 priradí triedu 1 s pravdepodobnosťou 0,537 — chyba. Strata (y = 0, takže zo vzorca krížovej entropie vyššie zostane len druhý sčítanec) je −ln(1 − 0,537) = 0,770 (farby podľa vzorca vyššie) a príspevok ku gradientu (p − y) x = 0,537 · (0,604; 0,673) ťahá obe váhy nadol.

Na celých dátach: presnosť na štarte 15 %, po 5 epochách 95 %, od 16. epochy 100 %. Priemerná krížová entropia (prirodzený logaritmus) klesne z 0,780 na 0,175 po 60 epochách; hoci sú už všetky body správne, model ďalej zväčšuje váhy, aby si bol istejší.

Regresia

Definícia — regresia

Regresia je učenie s učiteľom, v ktorom sú štítky reálne čísla: 𝒴 = ℝ. Nech (xi, yi) ∈ 𝒳 × ℝ, i = 1, …, n, sú trénovacie dvojice a f : 𝒳 → ℝ model. Bežná strata je stredná kvadratická chyba

MSE(f) = 1/n ∑i=1n (f(xi) − yi)2.

Lineárna regresia s jedným vstupom: nech 𝒳 = ℝ, n ≥ 2 a x1, …, xn nie sú všetky rovnaké. Model je f(x) = ax + b s parametrami a, b ∈ ℝ. Označme priemery x̄ = 1/n ∑i=1n xi a ȳ = 1/n ∑i=1n yi. Potom MSE má jediné minimum (metóda najmenších štvorcov) v bode

a = ∑i=1n (xi − x̄)(yi − ȳ)/∑i=1n (xi − x̄)2,   b = ȳ − ax̄.

(Predpoklad, že xi nie sú všetky rovnaké, zaručuje nenulový menovateľ.)

Laicky povedané

Regresia odpovedá na otázku „koľko“: koľko bude stáť byt, aká bude zajtra teplota. Lineárna regresia preloží bodmi priamku tak, aby súčet štvorcov zvislých vzdialeností — na obrázku čiarkovane — bol čo najmenší.

plocha bytu (normované 0–1) cena bytu (normované 0–1)
Lineárna regresia: cena bytu podľa plochy
Odvodenie a príklad — prečo práve tento vzorec pre priamku

MSE(a, b) je kvadratická funkcia dvoch premenných, takže minimum je tam, kde sú obe parciálne derivácie nulové:

∂/∂b: 2/n ∑ (axi + b − yi) = 0  ⇒  b = ȳ − ax̄ (priamka prechádza ťažiskom dát),

∂/∂a: 2/n ∑ (axi + b − yi) xi = 0; po dosadení b vyjde vzorec pre a z definície vyššie.

Pre 24 bytov v grafe: a = 0,797, b = 0,083, MSE = 0,0046, teda typická zvislá odchýlka (čiarkované úsečky) √MSE ≈ 0,068. Dáta sme vyrobili ako y = 0,12 + 0,72 x + šum so smerodajnou odchýlkou 0,06 — metóda z 24 bodov trafila skutočný sklon aj šum zhruba, nie presne.

Učenie s učiteľom poháňa väčšinu praktických aplikácií: filtre spamu, rozpoznávanie tvárí, diagnostiku z röntgenových snímok, odhad ceny nehnuteľnosti. Má však jednu drahú podmienku — niekto musí dáta označiť. A to býva to najdrahšie na celom projekte.

3. Učenie bez učiteľa (unsupervised learning)

Definícia — učenie bez učiteľa

Nech 𝒳 je priestor vstupov, PX neznáme rozdelenie na 𝒳 a D = (xi)i=1n, xi ∈ 𝒳, vstupy vybrané z PX navzájom nezávisle — bez štítkov. Učenie bez učiteľa hľadá z D štruktúru rozdelenia PX. Typické úlohy:

  1. zhlukovanie — rozklad indexov {1, …, n} na k neprázdnych, navzájom disjunktných množín C1, …, Ck (zhlukov) tak, aby si body v jednom zhluku boli podobné;
  2. zníženie dimenzie — pre 𝒳 = ℝd zobrazenie g : ℝd → ℝm, m < d, ktoré zachová čo najviac informácie o dátach;
  3. odhad hustoty — funkcia p̂ : 𝒳 → [0, ∞), ktorá aproximuje hustotu p(x) rozdelenia PX.

Čo presne je „podobné“ alebo „čo najviac informácie“, určí až konkrétna metóda svojou účelovou funkciou — ako k-means nižšie.

Laicky povedané

Dostanete krabicu fotiek bez popisov a máte ich roztriediť. Nikto vám nepovie podľa čoho — sami si všimnete, že niektoré sú od mora a iné z hôr. Model hľadá podobnosti a vzory, ktoré v dátach sú, aj keď ich nikto nepomenoval.

Zhlukovanie: k-means

Definícia — k-means

Nech x1, …, xn ∈ ℝd sú body, k ∈ ℕ, 1 ≤ k ≤ n, a ‖·‖ je euklidovská norma. Pre rozklad bodov do k navzájom disjunktných zhlukov C1, …, Ck (každý bod patrí práve do jedného) a stredy μ1, …, μk ∈ ℝd je vnútrozhlukový súčet štvorcov

J(C1, …, Ck, μ1, …, μk) = ∑j=1k ∑x ∈ Cj ‖x − μj‖2.

Úloha k-means je nájsť zhluky a stredy, pre ktoré je J minimálne.

Lloydov algoritmus (približné riešenie). Vstup: body x1, …, xn ∈ ℝd, počet zhlukov k a počiatočné stredy μ1, …, μk ∈ ℝd. Výstup: zhluky C1, …, Ck a stredy μ1, …, μk. Opakuj:

  1. priradenie: každý bod xi zaraď do zhluku Cj s j ∈ argminj′ ∈ {1, …, k} ‖xi − μj′‖2 (najbližší stred);
  2. presun stredov: pre každé j = 1, …, k s Cj ≠ ∅ polož μj = 1/|Cj| ∑x ∈ Cj x (priemer bodov zhluku).

Zastavenie: keď sa v kroku 2 žiadny stred nezmení. Žiadny krok J nezvýši a možných rozkladov je konečne veľa, takže algoritmus skončí — ale vo všeobecnosti len v lokálnom minime J.

Laicky povedané

Postavíte do miestnosti tri vlajky. Každý človek sa postaví k tej najbližšej. Potom každú vlajku prenesiete doprostred jej hlúčika. Ľudia sa znovu prerozdelia, vlajky sa znovu posunú — a po pár kolách sa nič nemení. Hlúčiky sú zhluky.

príznak x₁ (bez jednotky) príznak x₂ (bez jednotky)
k-means nájde tri zhluky (k = 3) iterácií: 4

Stredy (krížiky) začínajú schválne všetky v ľavom dolnom rohu. Už po prvej iterácii sa rozídu k svojim skupinám a po štyroch iteráciách sa prestanú hýbať.

Algoritmus — Lloydov algoritmus (k-means)
μ₁, …, μ_k ← počiatočné stredy
opakuj:
    pre každý bod x:                     # krok 1: priradenie
        c(x) ← argmin_j ‖x − μ_j‖²
    pre každé j = 1, …, k:               # krok 2: presun stredov
        μ_j ← priemer bodov s c(x) = j
kým sa stredy hýbu

Prečo J nerastie. Krok 1 mení len priradenie a každý bod prejde k bližšiemu stredu, takže jeho sčítanec ‖x − μj‖2 nerastie. Krok 2 mení len stredy a priemer je bod, ktorý minimalizuje súčet štvorcov vzdialeností ku skupine bodov (derivácia ∑ ‖x − μ‖2 podľa μ je −2 ∑ (x − μ), nulová práve pre priemer). Možných priradení je konečne veľa, takže algoritmus skončí.

V našom grafe (66 bodov) má J v jednotlivých iteráciách hodnoty 19,330 → 2,937 → 1,048 → 0,655 — najväčší kus práce urobí hneď prvý presun stredov zo zlého štartu.

Ďalšie úlohy bez učiteľa: zníženie dimenzie (napríklad PCA premietne dáta do niekoľkých smerov, v ktorých sa najviac líšia — užitočné na vizualizáciu aj kompresiu), detekcia anomálií (čo sa nepodobá ničomu, čo už poznáme — podvodná platba, porucha stroja) a odhad hustoty.

4. Učenie s čiastočným učiteľom (semi-supervised learning)

Definícia — učenie s čiastočným učiteľom

Nech 𝒳 je priestor vstupov, 𝒴 priestor štítkov, P neznáme rozdelenie na 𝒳 × 𝒴 a l, u ∈ ℕ, l ≥ 1. Sú dané

  1. malá označená množina DL = ((xi, yi))i=1l, (xi, yi) ∈ 𝒳 × 𝒴, vybraná nezávisle z P;
  2. veľká neoznačená množina DU = (xj)j=l+1l+u, xj ∈ 𝒳, vybraná nezávisle z rozdelenia samotných vstupov X (štítky yj existujú, ale nepoznáme ich), kde u ≫ l.

Učenie s čiastočným učiteľom má rovnaký cieľ ako učenie s učiteľom — model fθ : 𝒳 → 𝒴 s malým skutočným rizikom —, ale na jeho dosiahnutie využije DL aj DU.

Neoznačené dáta môžu pomôcť len vtedy, keď rozdelenie vstupov niečo hovorí o štítkoch. Používajú sa tieto predpoklady (každá metóda stojí aspoň na jednom z nich):

  1. hladkosť — ak sú dva vstupy x, x′ ∈ 𝒳 blízko seba v oblasti, kde je veľa dát, majú (s veľkou pravdepodobnosťou) rovnaký štítok;
  2. zhluky — vstupy z jedného zhluku majú (s veľkou pravdepodobnosťou) rovnaký štítok, takže hranica tried vedie miestami s malou hustotou dát;
  3. varieta — dáta v 𝒳 = ℝd ležia blízko plochy (variety) dimenzie m < d a vzdialenosť bodov sa má merať po tejto ploche, nie priamou čiarou v ℝd.
Laicky povedané

Máte desaťtisíc fotiek, ale popísať ste stihli len desať. Neoznačené fotky napriek tomu pomáhajú: ukazujú, ako dáta „vyzerajú“ — kde sú hlúčiky a kadiaľ medzi nimi vedie prázdno. Štítky sa potom rozšíria po hlúčikoch samy.

Šírenie štítkov po grafe

Vstup: body x1, …, xN ∈ ℝd, z ktorých niektoré majú štítok zo 𝒴 = {0, 1}, a počet susedov k ∈ ℕ (tu k = 4). Výstup: štítok pre každý bod, do ktorého sa dá z označených bodov dôjsť po hranách grafu.

  1. Zostroj neorientovaný graf: body xi a xj (i ≠ j) spoj hranou práve vtedy, keď xj patrí medzi k najbližších susedov bodu xi alebo xi medzi k najbližších susedov bodu xj (podľa euklidovskej vzdialenosti).
  2. V jednom kole prejdi všetky neoznačené body; každý, ktorý má aspoň jedného označeného suseda, dostane štítok, ktorý má väčšina jeho označených susedov (pri rovnosti hlasov štítok 0). Štítky pridelené v kole platia až od ďalšieho kola.
  3. Zastavenie: opakuj krok 2, kým sú neoznačené body a v poslednom kole pribudol aspoň jeden štítok.

Dáta sú dva „mesiace“ po 40 bodoch. Štítok majú len dva body — jeden v každom mesiaci, zvýraznené obrysom. Ostatné sú sivé:

príznak x₁ (bez jednotky) príznak x₂ (bez jednotky)
Šírenie štítkov z dvoch označených bodov kôl: 10 správne označené: 100 %

Štítky sa šíria po mesiacoch ako požiar po suchej tráve a za 10 kôl sú správne označené všetky body. Keby sme neoznačené dáta ignorovali a každý bod zaradili len podľa toho, ku ktorému z dvoch označených bodov má bližšie, bolo by správne len 84 %: konce mesiacov ležia bližšie k cudziemu označenému bodu než k vlastnému. Rozdiel robí práve tvar dát, ktorý poznáme len vďaka neoznačeným bodom.

Podobne fungujú pseudoštítky (self-training): model natrénovaný na malej označenej množine označí tie neoznačené dáta, pri ktorých si je najistejší, a učí sa ďalej aj z nich.

5. Samoučenie (self-supervised learning)

Definícia — samoučenie

Nech D = (xi)i=1n, xi ∈ 𝒳, sú neoznačené dáta a nech g je pevne zvolené (prípadne náhodné) pravidlo, ktoré z každého vstupu x ∈ 𝒳 automaticky, bez ľudskej práce, vyrobí dvojicu

g(x) = (x̃, t),

kde x̃ je časť alebo poškodená verzia vstupu x a t to, čo v x̃ chýba. Samoučenie je učenie s učiteľom na trénovacej množine (g(xi))i=1n: model dostane x̃ a má predpovedať t. Táto umelo vyrobená úloha sa volá predtextová úloha (pretext task).

Predpoveď ďalšieho tokenu — tak sa predtrénovávajú veľké jazykové modely. Nech V je konečný slovník tokenov a text je postupnosť x1, …, xT ∈ V, T ≥ 1. Model pre každé t = 1, …, T vracia rozdelenie pθ(· | x1, …, xt−1) na V (pre t = 1 bez podmienky) a parametre θ sa volia tak, aby bol čo najväčší súčet

∑t=1T log pθ(xt | x1, …, xt−1).

Tu x̃ = (x1, …, xt−1) a t-tý token je štítok.

Laicky povedané

Učiteľ tu je, ale nikto ho nemusel platiť: odpovede sú schované priamo v dátach. Zakryjete slovo vo vete a model háda, aké tam bolo. Text z internetu tak sám seba opraví — a model si cestou musí osvojiť gramatiku, fakty aj kus uvažovania, inak by hádal zle.

Samoučenie je technicky učenie s učiteľom, ale štítky stoja nula eur — a preto sa dá použiť na celý internet. Pre obrázky sa používa podobný trik: model dostane dva rôzne orezy tej istej fotky a učí sa, že patria k sebe (kontrastívne učenie). Výsledok, takzvaný základný model, sa potom pre konkrétnu úlohu doladí na malom množstve označených dát.

6. Učenie posilňovaním (reinforcement learning)

Definícia — Markovov rozhodovací proces

Markovov rozhodovací proces (prostredie) je pätica (S, A, P, R, γ), kde

  1. S je neprázdna množina stavov (u nás konečná — políčka mriežky);
  2. A je neprázdna konečná množina akcií;
  3. P je pravdepodobnosť prechodu: pre každé s ∈ S a a ∈ A je P(· | s, a) rozdelenie pravdepodobnosti na S, t. j. P(s′ | s, a) ≥ 0 a ∑s′ ∈ S P(s′ | s, a) = 1 (P(s′ | s, a) je pravdepodobnosť, že akcia a v stave s vedie do stavu s′);
  4. R : S × A × S → ℝ je odmena za prechod z s akciou a do s′;
  5. γ ∈ [0, 1) je diskontný faktor.

Stratégia agenta je pravidlo π, ktoré každému stavu s ∈ S priradí rozdelenie π(· | s) na A. Agent začne v stave s0 a pre t = 0, 1, 2, … volí akciu at podľa π(· | st), prostredie vyberie ďalší stav st+1 podľa P(· | st, at) a agent dostane odmenu rt = R(st, at, st+1). Návrat je

G = ∑t=0∞ γt rt

(v koncovom stave epizóda končí a ďalšie odmeny sú 0) a cieľom je nájsť stratégiu, ktorá maximalizuje jeho strednú hodnotu E[G].

Hodnota akcie Q(s, a) je očakávaný návrat, keď agent v stave s vykoná akciu a a ďalej hrá najlepšie. Q-learning ju odhaduje tabuľkou Q : S × A → ℝ (na začiatku napr. samé nuly): po každom kroku (s, a, r, s′) s rýchlosťou učenia α ∈ (0, 1] vykoná

Q(s, a) ← Q(s, a) + α [r + γ maxa′ ∈ A Q(s′, a′) − Q(s, a)],

pričom ak je s′ koncový stav, berie sa maxa′ Q(s′, a′) = 0.

Laicky povedané

Nikto agentovi nepovie, aký ťah je správny. Skúša a svet mu za každý krok vráti odmenu alebo trest. Postupne si zapamätá, ktoré ťahy sa kde oplatia — vrátane tých, ktoré sa oplatia až o desať krokov. Diskontný faktor γ hovorí, nakoľko mu na budúcich odmenách záleží v porovnaní s tými okamžitými.

Q(s, a) ← Q(s, a) + α [r + γ maxa′ Q(s′, a′) − Q(s, a)]

Q(s, a)
doterajší odhad, koľko vynesie akcia a v stave s; vnútri zátvorky sa odčíta, aby zátvorka merala prekvapenie — rozdiel medzi tým, čo agent čakal, a tým, čo práve zažil
r
odmena, ktorú svet vrátil hneď po kroku (−1, +10 alebo −10) — jediný skutočný signál zvonka
maxa′ Q(s′, a′)
odhad všetkého, čo príde potom, keď bude agent od stavu s′ hrať najlepšie; vďaka tomuto členu sa hodnota cieľa šíri späť po ceste krok za krokom. Maximum (nie skutočne zvolená akcia) dovolí učiť sa najlepšiu stratégiu, aj keď agent občas skúša náhodné ťahy. V koncovom stave je tento člen 0
γ
budúce odmeny majú menšiu váhu než okamžité; zároveň vďaka γ < 1 zostane nekonečný súčet G konečný
α
rýchlosť učenia — akú časť prekvapenia prevziať; odmeny aj prechody môžu byť náhodné, tak nový zážitok starý odhad len posunie, neprepíše
Zátvorka je časová diferencia: (lepší odhad z jedného skutočného kroku) − (starý odhad).
Definícia — ε-hladná voľba akcií

Nech A je konečná neprázdna množina akcií, Q : S × A → ℝ tabuľka hodnôt akcií a ε ∈ [0, 1]. Pre stav s ∈ S zvoľme a*(s) ∈ argmaxa ∈ A Q(s, a) (pri rovnosti ľubovoľnú z najlepších). ε-hladná stratégia zvolí v stave s akciu a ∈ A s pravdepodobnosťou

π(a | s) = ε/|A| + (1 − ε) · [a = a*(s)],

kde [a = a*(s)] je 1 práve vtedy, keď a = a*(s), inak 0. Inými slovami: s pravdepodobnosťou ε zvolí akciu náhodne (rovnomerne zo všetkých), inak akciu s najväčším Q(s, a). U nás ε = 0,2.

Laicky povedané

Kto chodí stále do svojej obľúbenej reštaurácie, nikdy nezistí, že o ulicu ďalej varia lepšie. Agent preto v pätine krokov skúsi niečo náhodné — prieskum — a inak robí to, čo zatiaľ považuje za najlepšie — využitie.

Agent (oranžový) sa pohybuje po mriežke. Každý krok stojí −1, cieľ dáva +10 a pasca −10; do stien vstúpiť nejde. Na začiatku nič nevie. Po 600 epizódach Q-learningu (α = 0,5, γ = 0,95, s náhodným prieskumom v 20 % krokov) ukazujú šípky najlepšiu naučenú akciu v každom políčku:

+10 −10
Naučená stratégia a cesta agenta zo štartu krokov: 10 návrat: 1

Agent ide najkratšou cestou do cieľa a pascu obchádza. Ako sa to učil, je vidieť na priemernom návrate: v prvých 50 epizódach bol −11,1 (agent blúdil a padal do pasce), v posledných 50 už −1,8 — rozdiel oproti optimu robí náhodný prieskum, ktorý agent pri tréningu nevypína.

Príklad — prvá aktualizácia a hodnota štartu

Prvý krok. Na začiatku je celá tabuľka Q nulová. Agent urobí krok na obyčajné políčko: r = −1 a maxa′ Q(s′, a′) = 0, takže

Q(s, a) ← 0 + 0,5 · [−1 + 0,95 · 0 − 0] = −0,5

(farby podľa vzorca Q-learningu vyššie). Krok do cieľa je koncový, takže člen maxa′ Q(s′, a′) je 0: Q ← 0 + 0,5 · [10 − 0] = 5. Pri ďalších návštevách sa päťka posunie k 10 a po ceste späť sa šíri ďalej, vždy vynásobená 0,95 a zmenšená o cenu kroku.

Hodnota štartu. Najkratšia cesta má 10 krokov: deväť obyčajných za −1 a posledný do cieľa za +10. Nediskontovaný návrat je 9 · (−1) + 10 = 1, diskontovaný

G = −(1 + 0,95 + … + 0,958) + 0,959 · 10 = −1 − 0,959/1 − 0,95 + 10 · 0,959 = −7,395 + 6,302 = −1,093.

Naučená tabuľka má na štarte maxa Q(štart, a) = −1,093 — Q-learning tu hodnotu optimálnej cesty našiel presne.

0 −20 epizóda (poradie) priemerný návrat (body odmeny)
Krivka učenia — priemerný návrat za posledných 25 epizód

Učenie posilňovaním stojí za programami, ktoré porazili majstrov sveta v go, za riadením robotov — a tiež za doladením jazykových modelov: RLHF (učenie posilňovaním zo spätnej väzby od ľudí) používa ako odmenu model natrénovaný na tom, ktoré odpovede ľudia hodnotili lepšie.

7. Ďalšie spôsoby delenia

Druh učiteľa nie je jediné hľadisko. Pár ďalších, ktoré stretnete:

Definícia — prenos učenia (transfer learning)

Nech Jzdroj, Jcieľ : ℝp → ℝ sú účelové funkcie zdrojovej úlohy (obvykle s veľa dátami) a cieľovej úlohy (obvykle s málo dátami) pre model s rovnakými parametrami θ ∈ ℝp a nech θ0 sú parametre naučené na zdrojovej úlohe, t. j. (približne) θ0 ∈ argminθ Jzdroj(θ). Prenos učenia hľadá

θ* ∈ argminθ Jcieľ(θ)

gradientným zostupom, ktorý začne v θ0 (namiesto náhodných hodnôt). Pri doladení (fine-tuning) sa často menia len parametre s indexmi z malej množiny I ⊂ {1, …, p}; ostatné zostanú rovné hodnotám v θ0.

Laicky povedané

Kto vie jazdiť na bicykli, naučí sa motorku rýchlejšie. Model, ktorý už „videl svet“, stačí doučiť na pár stovkách príkladov z vašej úlohy.

Definícia — aktívne učenie

Nech DL je označená a DU neoznačená množina (ako pri učení s čiastočným učiteľom), 𝒴 = {1, …, K} a model pθ(· | x) natrénovaný na DL. Aktívne učenie opakuje tieto kroky:

  1. model sám vyberie vstup x* ∈ DU, o ktorom si je najmenej istý — napríklad s najvyššou entropiou: x* ∈ argmaxx ∈ DU H(pθ(· | x));
  2. človek (učiteľ) mu doplní štítok y*; dvojica (x*, y*) sa presunie z DU do DL;
  3. model sa znovu natrénuje na DL;

kým sa neminie rozpočet na označovanie.

Nech p je rozdelenie na {1, …, K}, t. j. p(k) ≥ 0 a ∑k=1K p(k) = 1. Jeho entropia (v bitoch) je

H(p) = −∑k=1K p(k) log2 p(k),   kde sa kladie 0 · log2 0 = 0.

Pre dve triedy: odhad 50 : 50 má H = −2 · 0,5 · log2 0,5 = 1 bit (najviac možného), odhad 90 : 10 H = −0,9 log2 0,9 − 0,1 log2 0,1 ≈ 0,137 + 0,332 = 0,469 bitu, odhad 99 : 1 len 0,081 bitu. Na označenie pôjde ako prvý príklad, pri ktorom model váha 50 : 50.

Laicky povedané

Namiesto toho, aby človek popisoval všetko, model sa pýta len na to, čomu nerozumie. Rovnaký výsledok za zlomok práce.

Definícia — generatívne a diskriminatívne modely

Nech 𝒳 je priestor vstupov a 𝒴 priestor štítkov.

  1. Diskriminatívny model sa učí priamo podmienené rozdelenie pθ(y | x) pre x ∈ 𝒳, y ∈ 𝒴, alebo rovno rozhodovaciu funkciu fθ : 𝒳 → 𝒴 (a teda rozhodovaciu hranicu). O tom, ako sú rozdelené samotné vstupy x, nič nehovorí.
  2. Generatívny model sa učí rozdelenie dát pθ(x) na 𝒳, prípadne združené rozdelenie pθ(x, y) na 𝒳 × 𝒴, a vie z neho vzorkovať nové dáta. Zo združeného rozdelenia sa dá dopočítať aj podmienené (pre konečné 𝒴): pθ(y | x) = pθ(x, y)/∑y′ ∈ 𝒴 pθ(x, y′).
Laicky povedané

Diskriminatívny model rozozná psa od mačky. Generatívny model vie, ako pes vyzerá, tak dobre, že ho vie nakresliť. Jazykové modely aj generátory obrázkov sú generatívne.

A ešte dávkové vs. priebežné učenie (model sa natrénuje raz na všetkých dátach, alebo sa učí priebežne z každého nového príkladu) a parametrické vs. neparametrické modely (pevný počet parametrov ako logistická regresia, alebo model, ktorý rastie s dátami ako k najbližších susedov).

8. Porovnanie

Druh učeniaDátaSignálTypické úlohyPríklady algoritmov
S učiteľom(x, y)správna odpoveďklasifikácia, regresialogistická regresia, rozhodovacie stromy, neurónové siete
Bez učiteľaxžiadnyzhlukovanie, zníženie dimenzie, anomáliek-means, PCA, autoenkodéry
S čiastočným učiteľommálo (x, y) + veľa xpár odpovedíklasifikácia s drahými štítkamišírenie štítkov, pseudoštítky
Samoučeniexvyrobený z dátpredtrénovanie základných modelovpredpoveď tokenu, maskovanie, kontrastívne učenie
Posilňovaníminterakcia s prostredímodmenahry, roboty, riadenie, RLHFQ-learning, policy gradient, PPO

9. Zhrnutie

  • Druhy učenia sa líšia tým, akú skúsenosť E model dostane: správne odpovede, len dáta, trochu oboje, odpovede vyrobené z dát, alebo odmeny za činy.
  • Učenie s učiteľom je najpriamočiarejšie, ale potrebuje drahé štítky.
  • Bez učiteľa sa hľadá štruktúra; pri učení s čiastočným učiteľom pomáhajú neoznačené dáta rozšíriť pár štítkov na všetko.
  • Samoučenie vyrába štítky zo samotných dát — stoja na ňom dnešné jazykové modely.
  • Učenie posilňovaním učí konať: skúšať, zbierať odmeny a myslieť dopredu.

V praxi sa druhy kombinujú. Veľký jazykový model sa predtrénuje samoučením, doladí s učiteľom na ukážkových odpovediach a nakoniec učením posilňovaním podľa hodnotenia ľudí. Tri druhy učenia v jednom modeli, s ktorým si možno práve píšete.

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