Přeskočit na obsah
coden

Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další

Učení s učitelem, bez učitele, s částečným učitelem, samoučení a zpětnovazební učení — s přesnými definicemi, laickým vysvětlením a animacemi skutečných algoritmů.

15 minut Matěj Žalmánek 2026-10-15

Série Základy AI Díl 42 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
  • Pět druhů strojového učení podle toho, jaký signál model při učení dostává.
  • Proč může stačit pár štítků a hodně neoznačených dat — a jak se učí jazykové modely.
  • Jak se agent naučí jednat jen z odměn a trestů.

Co se hodí znát předem: Mapa umělé inteligence: co je co a jak to do sebe zapadá, Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory

„Model se to naučil.“ Tahle věta zní pokaždé stejně, ale znamená velmi různé věci. Jednou se model učil z tisíců fotek, u kterých mu někdo napsal, co na nich je. Jindy dostal jen hromadu dat bez jediného popisku a měl v nich najít řád. A jindy se učil jako pes na cvičišti — zkoušel, a za dobré kroky dostal odměnu.

Strojové učení se proto dělí podle toho, jaký signál model při učení dostává. Projdeme hlavní druhy od učení s učitelem až po zpětnovazební učení. U každého najdete přesnou definici, laické vysvětlení a graf, který je skutečným výsledkem algoritmu — nic není kreslené ručně.

1. Co znamená, že se stroj učí

Definice — učení (T. Mitchell, 1997)

Nechť je dán počítačový program a tyto tři objekty:

  1. T — třída úloh, které má program řešit (např. „rozhodni o e-mailu, zda je spam“);
  2. P — míra výkonu: pravidlo, které výsledku programu na úlohách z T přiřadí číslo, přičemž větší číslo znamená lepší výkon (např. podíl správně zařazených e-mailů);
  3. E — zkušenost: data nebo interakce, které program při učení dostane (např. e-maily, které už někdo roztřídil).

Program se učí ze zkušenosti E vzhledem ke třídě úloh T a míře výkonu P, právě když se jeho výkon na úlohách z T, měřený pomocí P, zlepšuje se zkušeností E — tj. program, který zpracoval víc zkušenosti z E, dosahuje na T (v průměru) vyšší hodnoty P.

Je to pojmová definice, ne matematická: T, P a E se pro každou konkrétní úlohu teprve musí zvolit. Formální tvar pro učení s učitelem je v další části.

Laicky řečeno

Učí se to, co se zlepšuje praxí. Úloha T je třeba „poznat spam“, míra P „kolik e-mailů zařadí správně“ a zkušenost E „tisíc e-mailů, které už někdo roztřídil“. Druhy učení se liší hlavně v tom, jak vypadá ta zkušenost E.

Definice — model a parametry

Nechť 𝒳 je neprázdná množina (prostor vstupů), 𝒴 neprázdná množina (prostor výstupů) a p ∈ ℕ, p ≥ 1. Model s parametry θ ∈ ℝp je soustava funkcí

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

tj. každá volba vektoru θ určuje jednu funkci ze vstupů do výstupů.

Nechť J : ℝp → ℝ je účelová funkce spočítaná z dat (čím menší J(θ), tím lépe model s parametry θ data popisuje). Učení (trénink) je hledání parametrů

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

Je-li J diferencovatelná, hledá se typicky gradientním sestupem: zvol počáteční θ0 ∈ ℝp a rychlost učení η > 0 a pro t = 0, 1, 2, … polož

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

dokud se J znatelně zmenšuje (nebo do pevného počtu kroků). Gradientní sestup obecně najde jen lokální minimum, ne nutně prvek argmin.

Laicky řečeno

Model je stroj s mnoha knoflíky — parametry. Učení je otáčení knoflíky tak dlouho, dokud stroj nedělá to, co chceme. Účelová funkce je číslo, které říká, jak moc se zatím mýlí; gradientní sestup otáčí knoflíky vždycky tím směrem, kde se mýlí nejméně.

θ ← θ − η ∇J(θ)

θ
všechny parametry modelu najednou (vektor); šipka ← znamená „přepiš novou hodnotou“ — krok se opakuje, dokud se J zmenšuje
∇J(θ)
gradient — vektor parciálních derivací ∂J/∂θj, j = 1, …, p; ukazuje směr, kterým chyba roste nejrychleji, a pro každý parametr říká, jak moc na něm chyba záleží
−
chceme chybu zmenšit, tedy jít opačně, než ukazuje gradient
η
rychlost učení (malé kladné číslo); gradient platí jen v okolí současného bodu, takže kroky musí být krátké — příliš velké η přeskočí údolí, příliš malé učí pomalu
Jeden krok gradientního sestupu: kousek z kopce dolů.

Hlavní druhy učení v kostce — liší se tím, co je v datech k dispozici:

S učitelemvstup + správná odpověď

Naučit se odpovídat jako učitel.

Bez učitelejen vstupy

Najít v datech strukturu.

S částečným učitelempár odpovědí + hodně vstupů

Vytěžit i data bez popisků.

Samoučeníodpovědi vyrobené z dat

Tak se učí jazykové modely.

Zpětnovazebníodměna za činy

Naučit se jednat.

2. Učení s učitelem (supervised learning)

Definice — učení s učitelem

Nechť 𝒳 je prostor vstupů, 𝒴 prostor štítků (správných odpovědí) a P neznámé rozdělení pravděpodobnosti dvojic (X, Y) na 𝒳 × 𝒴. Dále nechť

  1. n ∈ ℕ, n ≥ 1, a trénovací množina D = ((xi, yi))i=1n je posloupnost dvojic (xi, yi) ∈ 𝒳 × 𝒴 vybraných z P navzájem nezávisle;
  2. {fθ : 𝒳 → 𝒴 : θ ∈ ℝp} je model (viz definice výše);
  3. L : 𝒴 × 𝒴 → [0, ∞) je ztrátová funkce — L(ŷ, y) je trest za odpověď ŷ, je-li správná odpověď y.

Učení s učitelem je hledání parametrů, které minimalizují empirické riziko R̂ : ℝp → [0, ∞):

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

Cílem ale není trénovací množina — model má mít malé skutečné riziko R(θ) = E(X, Y) ∼ P[L(fθ(X), Y)], tj. dobře fungovat na nových datech z téhož rozdělení (generalizace). R neznáme, proto se odhaduje průměrnou ztrátou na odložené testovací množině, která se k učení nepoužila.

Laicky řečeno

Jako dítě s obrázkovou knížkou: u každého obrázku je napsáno „pes“ nebo „kočka“. Model se dívá na příklady se správnou odpovědí a ladí se tak, aby se trefoval. Ztrátová funkce je trest za každou chybu. A zkoušku dělá na obrázcích, které nikdy předtím neviděl — nazpaměť naučené odpovědi se nepočítají.

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

fθ(xi)
odpověď modelu na i-tý příklad — jediné místo, kde vystupují parametry, se kterými smíme hýbat
yi
správná odpověď od učitele; právě tenhle signál učení s učitelem odlišuje od ostatních druhů
L
ztráta převede rozdíl mezi odpovědí a štítkem na jedno nezáporné číslo, aby se dalo minimalizovat — pro třídy křížová entropie, pro čísla čtverec rozdílu
1/n ∑
průměr přes trénovací množinu; skutečné riziko E[L] přes celé rozdělení P(X, Y) neznáme, tak ho odhadneme průměrem na vzorku (proto „empirické“)
θ* = argminθ
nezajímá nás nejmenší hodnota ztráty, ale parametry, při kterých nastane — ty jsou naučený model
Učení s učitelem jako optimalizace: najdi parametry s nejmenší průměrnou chybou na označených příkladech.

Podle toho, co je štítek y, rozlišujeme dvě úlohy.

Klasifikace

Definice — klasifikace

Klasifikace je učení s učitelem, ve kterém je prostor štítků konečná množina tříd 𝒴 = {1, …, K}, K ∈ ℕ, K ≥ 2. Model k vstupu x ∈ 𝒳 vrací odhad rozdělení přes třídy, tj. čísla pθ(k | x) ≥ 0 pro k = 1, …, K s ∑k=1K pθ(k | x) = 1.

Běžná ztráta je křížová entropie: pro x ∈ 𝒳 se štítkem y ∈ 𝒴

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

kde [y = k] je 1, právě když y = k, a jinak 0.

Logistická regrese pro dvě třídy 𝒴 = {0, 1}: nechť 𝒳 = ℝd, parametry jsou w ∈ ℝd a b ∈ ℝ a σ : ℝ → (0, 1) je logistická funkce

σ(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 zařadí do třídy 1, právě když σ(w⊤x + b) ≥ 0,5, tj. právě když w⊤x + b ≥ 0. Rozhodovací hranice je množina

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

— pro w ≠ 0 nadrovina, v rovině (d = 2) přímka.

Laicky řečeno

Klasifikace odpovídá „do které škatulky to patří“: spam, nebo ne? Pes, kočka, nebo papoušek? Logistická regrese natáhne mezi třídami čáru a o každém bodu řekne, s jakou jistotou leží na které straně.

V grafu je 60 bodů ze dvou tříd. Hranice začíná schválně špatně a gradientní sestup ji epochu po epoše posouvá, až třídy oddělí:

příznak x₁ (bez jednotky) příznak x₂ (bez jednotky)
Logistická regrese se učí oddělit dvě třídy epoch: 60 přesnost na trénovacích datech: 100 %

Pro dvě třídy se křížová entropie zapisuje jedním vzorcem (barvy tříd jako v grafu, p = σ(w⊤x + b) je odhad pravděpodobnosti třídy 1):

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

y log p
uplatní se jen u bodů třídy 1 (y = 1, jantarové): trestá, když model jejich třídě dá malou pravděpodobnost p
(1 − y) log(1 − p)
totéž pro třídu 0 (y = 0, zelené), jejíž pravděpodobnost je 1 − p; činitele y a 1 − y fungují jako vypínač — vždy platí jen jeden ze sčítanců
−
logaritmus pravděpodobnosti je záporný; minus z něj udělá kladný trest. Jistá správná odpověď stojí −log 1 = 0, jistá chybná → ∞ — sebevědomý omyl je nejdražší
Je to záporný logaritmus pravděpodobnosti, kterou model přisoudil správné odpovědi.
Algoritmus — logistická regrese gradientním sestupem

Derivace průměrné křížové entropie J podle vah vyjde překvapivě jednoduše (díky σ′ = σ(1 − σ) se zkrátí):

∂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čáteční hodnoty
opakuj E epoch:                       # epocha = jeden průchod všemi daty
    g_w, g_b ← 0, 0
    pro každý příklad (x, y):
        p ← σ(w·x + b)                # odhad pravděpodobnosti třídy 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
třída(x) = 1, pokud σ(w·x + b) ≥ 0,5, jinak 0

Přesnost (accuracy) je podíl správně zařazených příkladů: |{i ∈ {1, …, n} : třída(xi) = yi}|/n.

Příklad — co se děje v grafu

Start: w = (0,4; 1,2), b = −0,9, rychlost učení η = 2,5. První bod má souřadnice (0,604; 0,673) a třídu 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 tedy bodu třídy 0 přisoudí třídu 1 s pravděpodobností 0,537 — chyba. Ztráta (y = 0, takže ze vzorce křížové entropie výše zbude jen druhý sčítanec) je −ln(1 − 0,537) = 0,770 (barvy podle vzorce výše) a příspěvek ke gradientu (p − y) x = 0,537 · (0,604; 0,673) táhne obě váhy dolů.

Na celých datech: přesnost na startu 15 %, po 5 epochách 95 %, od 16. epochy 100 %. Průměrná křížová entropie (přirozený logaritmus) klesne z 0,780 na 0,175 po 60 epochách; i když jsou už všechny body správně, model dál zvětšuje váhy, aby si byl jistější.

Regrese

Definice — regrese

Regrese je učení s učitelem, ve kterém jsou štítky reálná čísla: 𝒴 = ℝ. Nechť (xi, yi) ∈ 𝒳 × ℝ, i = 1, …, n, jsou trénovací dvojice a f : 𝒳 → ℝ model. Běžná ztráta je střední kvadratická chyba

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

Lineární regrese s jedním vstupem: nechť 𝒳 = ℝ, n ≥ 2 a x1, …, xn nejsou všechna stejná. Model je f(x) = ax + b s parametry a, b ∈ ℝ. Označme průměry x̄ = 1/n ∑i=1n xi a ȳ = 1/n ∑i=1n yi. Pak MSE má jediné minimum (metoda nejmenších čtverců) v bodě

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

(Předpoklad, že xi nejsou všechna stejná, zaručuje nenulový jmenovatel.)

Laicky řečeno

Regrese odpovídá „kolik“: kolik bude stát byt, jaká bude zítra teplota. Lineární regrese proloží body přímku tak, aby součet čtverců svislých vzdáleností — na obrázku čárkovaně — byl co nejmenší.

plocha bytu (normováno 0–1) cena bytu (normováno 0–1)
Lineární regrese: cena bytu podle plochy
Odvození a příklad — proč zrovna tenhle vzorec pro přímku

MSE(a, b) je kvadratická funkce dvou proměnných, takže minimum je tam, kde jsou obě parciální derivace nulové:

∂/∂b: 2/n ∑ (axi + b − yi) = 0  ⇒  b = ȳ − ax̄ (přímka prochází těžištěm dat),

∂/∂a: 2/n ∑ (axi + b − yi) xi = 0; po dosazení b vyjde vzorec pro a z definice výše.

Pro 24 bytů v grafu: a = 0,797, b = 0,083, MSE = 0,0046, tedy typická svislá odchylka (čárkované úsečky) √MSE ≈ 0,068. Data jsme vyrobili jako y = 0,12 + 0,72 x + šum se směrodatnou odchylkou 0,06 — metoda z 24 bodů trefila skutečný sklon i šum zhruba, ne přesně.

Učení s učitelem pohání většinu praktických aplikací: filtry spamu, rozpoznávání obličejů, diagnostiku z rentgenových snímků, odhad ceny nemovitosti. Má ale jednu drahou podmínku — někdo musí data označit. A to bývá to nejdražší na celém projektu.

3. Učení bez učitele (unsupervised learning)

Definice — učení bez učitele

Nechť 𝒳 je prostor vstupů, PX neznámé rozdělení na 𝒳 a D = (xi)i=1n, xi ∈ 𝒳, vstupy vybrané z PX navzájem nezávisle — bez štítků. Učení bez učitele hledá z D strukturu rozdělení PX. Typické úlohy:

  1. shlukování — rozklad indexů {1, …, n} na k neprázdných, navzájem disjunktních množin C1, …, Ck (shluků) tak, aby si body v jednom shluku byly podobné;
  2. snížení dimenze — pro 𝒳 = ℝd zobrazení g : ℝd → ℝm, m < d, které zachová co nejvíc informace o datech;
  3. odhad hustoty — funkce p̂ : 𝒳 → [0, ∞), která aproximuje hustotu p(x) rozdělení PX.

Co přesně je „podobné“ nebo „co nejvíc informace“, určí až konkrétní metoda svou účelovou funkcí — jako k-means níže.

Laicky řečeno

Dostanete krabici fotek bez popisků a máte je roztřídit. Nikdo vám neřekne podle čeho — sami si všimnete, že některé jsou z moře a jiné z hor. Model hledá podobnosti a vzory, které v datech jsou, i když je nikdo nepojmenoval.

Shlukování: k-means

Definice — k-means

Nechť x1, …, xn ∈ ℝd jsou body, k ∈ ℕ, 1 ≤ k ≤ n, a ‖·‖ je eukleidovská norma. Pro rozklad bodů do k navzájem disjunktních shluků C1, …, Ck (každý bod patří právě do jednoho) a středy μ1, …, μk ∈ ℝd je vnitroshluková suma čtverců

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

Úloha k-means je najít shluky a středy, pro které je J minimální.

Lloydův algoritmus (přibližné řešení). Vstup: body x1, …, xn ∈ ℝd, počet shluků k a počáteční středy μ1, …, μk ∈ ℝd. Výstup: shluky C1, …, Ck a středy μ1, …, μk. Opakuj:

  1. přiřazení: každý bod xi zařaď do shluku Cj s j ∈ argminj′ ∈ {1, …, k} ‖xi − μj′‖2 (nejbližší střed);
  2. přesun středů: pro každé j = 1, …, k s Cj ≠ ∅ polož μj = 1/|Cj| ∑x ∈ Cj x (průměr bodů shluku).

Zastavení: když se v kroku 2 žádný střed nezmění. Žádný krok J nezvýší a možných rozkladů je konečně mnoho, takže algoritmus skončí — ale obecně jen v lokálním minimu J.

Laicky řečeno

Postavíte do místnosti tři vlajky. Každý člověk se postaví k té nejbližší. Pak každou vlajku přenesete doprostřed jejího hloučku. Lidé se znovu přerozdělí, vlajky se znovu posunou — a za pár kol se nic nemění. Hloučky jsou shluky.

příznak x₁ (bez jednotky) příznak x₂ (bez jednotky)
k-means najde tři shluky (k = 3) iterací: 4

Středy (křížky) začínají schválně všechny v levém dolním rohu. Už po první iteraci se rozjedou ke svým skupinám a po čtyřech iteracích se přestanou hýbat.

Algoritmus — Lloydův algoritmus (k-means)
μ₁, …, μ_k ← počáteční středy
opakuj:
    pro každý bod x:                     # krok 1: přiřazení
        c(x) ← argmin_j ‖x − μ_j‖²
    pro každé j = 1, …, k:               # krok 2: přesun středů
        μ_j ← průměr bodů s c(x) = j
dokud se středy hýbou

Proč J neroste. Krok 1 mění jen přiřazení a každý bod přejde k bližšímu středu, takže jeho sčítanec ‖x − μj‖2 neroste. Krok 2 mění jen středy a průměr je bod, který minimalizuje součet čtverců vzdáleností ke skupině bodů (derivace ∑ ‖x − μ‖2 podle μ je −2 ∑ (x − μ), nulová právě pro průměr). Možných přiřazení je konečně mnoho, takže algoritmus skončí.

V našem grafu (66 bodů) má J v jednotlivých iteracích hodnoty 19,330 → 2,937 → 1,048 → 0,655 — největší kus práce udělá hned první přesun středů ze špatného startu.

Další úlohy bez učitele: snížení dimenze (například PCA promítne data do několika směrů, ve kterých se nejvíc liší — užitečné pro vizualizaci i kompresi), detekce anomálií (co se nepodobá ničemu, co už známe — podvodná platba, porucha stroje) a odhad hustoty.

4. Učení s částečným učitelem (semi-supervised learning)

Definice — učení s částečným učitelem

Nechť 𝒳 je prostor vstupů, 𝒴 prostor štítků, P neznámé rozdělení na 𝒳 × 𝒴 a l, u ∈ ℕ, l ≥ 1. Jsou dány

  1. malá označená množina DL = ((xi, yi))i=1l, (xi, yi) ∈ 𝒳 × 𝒴, vybraná nezávisle z P;
  2. velká neoznačená množina DU = (xj)j=l+1l+u, xj ∈ 𝒳, vybraná nezávisle z rozdělení samotných vstupů X (štítky yj existují, ale neznáme je), kde u ≫ l.

Učení s částečným učitelem má stejný cíl jako učení s učitelem — model fθ : 𝒳 → 𝒴 s malým skutečným rizikem —, ale k jeho dosažení využije DL i DU.

Neoznačená data mohou pomoci jen tehdy, když rozdělení vstupů něco říká o štítcích. Používají se tyto předpoklady (každá metoda stojí aspoň na jednom z nich):

  1. hladkost — jsou-li dva vstupy x, x′ ∈ 𝒳 blízko sebe v oblasti, kde je hodně dat, mají (s velkou pravděpodobností) stejný štítek;
  2. shluky — vstupy z jednoho shluku mají (s velkou pravděpodobností) stejný štítek, takže hranice tříd vede místy s malou hustotou dat;
  3. varieta — data v 𝒳 = ℝd leží blízko plochy (variety) dimenze m < d a vzdálenost bodů se má měřit po této ploše, ne přímou čarou v ℝd.
Laicky řečeno

Máte deset tisíc fotek, ale popsat jste stihli jen deset. Neoznačené fotky přesto pomáhají: ukazují, jak data „vypadají“ — kde jsou hloučky a kudy mezi nimi vede prázdno. Štítky se pak rozšíří po hloučcích samy.

Šíření štítků po grafu

Vstup: body x1, …, xN ∈ ℝd, z nichž některé mají štítek ze 𝒴 = {0, 1}, a počet sousedů k ∈ ℕ (zde k = 4). Výstup: štítek pro každý bod, do kterého se dá z označených bodů dojít po hranách grafu.

  1. Sestroj neorientovaný graf: body xi a xj (i ≠ j) spoj hranou, právě když xj patří mezi k nejbližších sousedů bodu xi, nebo xi mezi k nejbližších sousedů bodu xj (podle eukleidovské vzdálenosti).
  2. V jednom kole projdi všechny neoznačené body; každý, který má aspoň jednoho označeného souseda, dostane štítek, který má většina jeho označených sousedů (při rovnosti hlasů štítek 0). Štítky přidělené v kole platí až od dalšího kola.
  3. Zastavení: opakuj krok 2, dokud jsou neoznačené body a v posledním kole přibyl aspoň jeden štítek.

Data jsou dva „měsíce“ po 40 bodech. Štítek mají jen dva body — jeden v každém měsíci, zvýrazněné obrysem. Ostatní jsou šedé:

příznak x₁ (bez jednotky) příznak x₂ (bez jednotky)
Šíření štítků ze dvou označených bodů kol: 10 správně označeno: 100 %

Štítky se šíří po měsících jako požár po suché trávě a za 10 kol jsou správně označené všechny body. Kdybychom neoznačená data ignorovali a každý bod zařadili jen podle toho, ke kterému ze dvou označených bodů má blíž, bylo by správně jen 84 %: konce měsíců leží blíž k cizímu označenému bodu než k vlastnímu. Rozdíl dělá právě tvar dat, který známe jen díky neoznačeným bodům.

Podobně fungují pseudoštítky (self-training): model natrénovaný na malé označené množině označí ta neoznačená data, kde si je nejjistější, a učí se dál i z nich.

5. Samoučení (self-supervised learning)

Definice — samoučení

Nechť D = (xi)i=1n, xi ∈ 𝒳, jsou neoznačená data a nechť g je pevně zvolené (případně náhodné) pravidlo, které z každého vstupu x ∈ 𝒳 automaticky, bez lidské práce, vyrobí dvojici

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

kde x̃ je část nebo poškozená verze vstupu x a t to, co v x̃ chybí. Samoučení je učení s učitelem na trénovací množině (g(xi))i=1n: model dostane x̃ a má předpovědět t. Tato uměle vyrobená úloha se jmenuje předtextová úloha (pretext task).

Předpověď dalšího tokenu — tak se předtrénovávají velké jazykové modely. Nechť V je konečný slovník tokenů a text je posloupnost x1, …, xT ∈ V, T ≥ 1. Model pro každé t = 1, …, T vrací rozdělení pθ(· | x1, …, xt−1) na V (pro t = 1 bez podmínky) a parametry θ se volí tak, aby byla co největší

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

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

Laicky řečeno

Učitel tu je, ale nikdo ho nemusel platit: odpovědi jsou schované přímo v datech. Zakryjete slovo ve větě a model hádá, jaké tam bylo. Text z internetu tak sám sebe opraví — a model si cestou musí osvojit gramatiku, fakta i kus uvažování, jinak by hádal špatně.

Samoučení je technicky učení s učitelem, ale štítky stojí nula korun — a proto se dá použít na celý internet. Pro obrázky se používá podobný trik: model dostane dva různé ořezy téže fotky a učí se, že patří k sobě (kontrastivní učení). Výsledek, takzvaný základní model, se pak pro konkrétní úlohu doladí na malém množství označených dat.

6. Zpětnovazební učení (reinforcement learning)

Definice — Markovův rozhodovací proces

Markovův rozhodovací proces (prostředí) je pětice (S, A, P, R, γ), kde

  1. S je neprázdná množina stavů (u nás konečná — políčka mřížky);
  2. A je neprázdná konečná množina akcí;
  3. P je pravděpodobnost přechodu: pro každé s ∈ S a a ∈ A je P(· | s, a) rozdělení pravděpodobnosti na S, tj. P(s′ | s, a) ≥ 0 a ∑s′ ∈ S P(s′ | s, a) = 1 (P(s′ | s, a) je pravděpodobnost, že akce a ve stavu s vede do stavu s′);
  4. R : S × A × S → ℝ je odměna za přechod z s akcí a do s′;
  5. γ ∈ [0, 1) je diskontní faktor.

Politika agenta je pravidlo π, které každému stavu s ∈ S přiřadí rozdělení π(· | s) na A. Agent začne ve stavu s0 a pro t = 0, 1, 2, … volí akci at podle π(· | st), prostředí vybere další stav st+1 podle P(· | st, at) a agent dostane odměnu rt = R(st, at, st+1). Návrat je

G = ∑t=0∞ γt rt

(v koncovém stavu epizoda končí a další odměny jsou 0) a cílem je najít politiku, která maximalizuje jeho střední hodnotu E[G].

Hodnota akce Q(s, a) je očekávaný návrat, když agent ve stavu s provede akci a a dál hraje nejlépe. Q-learning ji odhaduje tabulkou Q : S × A → ℝ (na začátku např. samé nuly): po každém kroku (s, a, r, s′) s rychlostí učení α ∈ (0, 1] provede

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

přičemž je-li s′ koncový stav, bere se maxa′ Q(s′, a′) = 0.

Laicky řečeno

Nikdo agentovi neřekne, co je správný tah. Zkouší, a svět mu za každý krok vrátí odměnu nebo trest. Postupně si zapamatuje, které tahy se kde vyplácejí — včetně těch, které se vyplatí až za deset kroků. Diskontní faktor γ říká, jak moc mu na budoucích odměnách záleží oproti těm okamžitým.

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

Q(s, a)
dosavadní odhad, kolik vynese akce a ve stavu s; uvnitř závorky se odečítá, aby závorka měřila překvapení — rozdíl mezi tím, co agent čekal, a tím, co právě zažil
r
odměna, kterou svět vrátil hned po kroku (−1, +10 nebo −10) — jediný skutečný signál zvenku
maxa′ Q(s′, a′)
odhad všeho, co přijde potom, když bude agent od stavu s′ hrát nejlépe; díky tomuhle členu se hodnota cíle šíří zpět po cestě krok za krokem. Maximum (ne skutečně zvolená akce) dovolí učit se nejlepší politiku, i když agent občas zkouší náhodné tahy. V koncovém stavu je tento člen 0
γ
budoucí odměny mají menší váhu než okamžité; zároveň díky γ < 1 zůstane nekonečný součet G konečný
α
rychlost učení — jakou část překvapení převzít; odměny i přechody mohou být náhodné, tak nový zážitek starý odhad jen posune, nepřepíše
Závorka je časová diference: (lepší odhad z jednoho skutečného kroku) − (starý odhad).
Definice — ε-hladová volba akcí

Nechť A je konečná neprázdná množina akcí, Q : S × A → ℝ tabulka hodnot akcí a ε ∈ [0, 1]. Pro stav s ∈ S zvolme a*(s) ∈ argmaxa ∈ A Q(s, a) (při rovnosti libovolnou z nejlepších). ε-hladová politika zvolí ve stavu s akci a ∈ A s pravděpodobností

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

kde [a = a*(s)] je 1, právě když a = a*(s), jinak 0. Jinými slovy: s pravděpodobností ε zvolí akci náhodně (rovnoměrně ze všech), jinak akci s největším Q(s, a). U nás ε = 0,2.

Laicky řečeno

Kdo chodí pořád do své oblíbené restaurace, nikdy nezjistí, že o ulici dál vaří líp. Agent proto v pětině kroků zkusí něco náhodného — průzkum — a jinak dělá to, co zatím považuje za nejlepší — využití.

Agent (oranžový) se pohybuje po mřížce. Každý krok stojí −1, cíl dává +10 a past −10; do zdí vstoupit nejde. Na začátku nic neví. Po 600 epizodách Q-learningu (α = 0,5, γ = 0,95, s náhodným průzkumem v 20 % kroků) ukazují šipky nejlepší naučenou akci v každém políčku:

+10 −10
Naučená politika a cesta agenta ze startu kroků: 10 návrat: 1

Agent jde nejkratší cestou do cíle a past obchází. Jak se to učil, je vidět na průměrném návratu: v prvních 50 epizodách byl −11,1 (agent bloudil a padal do pasti), v posledních 50 už −1,8 — rozdíl proti optimu dělá náhodný průzkum, který agent při tréninku nevypíná.

Příklad — první aktualizace a hodnota startu

První krok. Na začátku je celá tabulka Q nulová. Agent udělá krok na obyčejné 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

(barvy podle vzorce Q-learningu výše). Krok do cíle je koncový, takže člen maxa′ Q(s′, a′) je 0: Q ← 0 + 0,5 · [10 − 0] = 5. Při dalších návštěvách se pětka posune k 10 a po cestě zpět se šíří dál, vždy vynásobená 0,95 a zmenšená o cenu kroku.

Hodnota startu. Nejkratší cesta má 10 kroků: devět obyčejných za −1 a poslední do cíle 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á tabulka má na startu maxa Q(start, a) = −1,093 — Q-learning tu hodnotu optimální cesty našel přesně.

0 −20 epizoda (pořadí) průměrný návrat (body odměny)
Křivka učení — průměrný návrat za posledních 25 epizod

Zpětnovazební učení stojí za programy, které porazily mistry světa v go, za řízením robotů — a také za doladěním jazykových modelů: RLHF (zpětnovazební učení z lidské zpětné vazby) používá jako odměnu model natrénovaný na tom, které odpovědi lidé hodnotili lépe.

7. Další způsoby dělení

Druh učitele není jediné hledisko. Pár dalších, které potkáte:

Definice — přenos učení (transfer learning)

Nechť Jzdroj, Jcíl : ℝp → ℝ jsou účelové funkce zdrojové úlohy (obvykle s hodně daty) a cílové úlohy (obvykle s málo daty) pro model se stejnými parametry θ ∈ ℝp, a nechť θ0 jsou parametry naučené na zdrojové úloze, tj. (přibližně) θ0 ∈ argminθ Jzdroj(θ). Přenos učení hledá

θ* ∈ argminθ Jcíl(θ)

gradientním sestupem, který začne v θ0 (místo náhodných hodnot). Při doladění (fine-tuning) se často mění jen parametry s indexy z malé množiny I ⊂ {1, …, p}; ostatní zůstanou rovné hodnotám v θ0.

Laicky řečeno

Kdo umí jezdit na kole, naučí se motorku rychleji. Model, který už „viděl svět“, stačí doučit na pár stovkách příkladů z vaší úlohy.

Definice — aktivní učení

Nechť DL je označená a DU neoznačená množina (jako u učení s částečným učitelem), 𝒴 = {1, …, K} a model pθ(· | x) natrénovaný na DL. Aktivní učení opakuje tyto kroky:

  1. model sám vybere vstup x* ∈ DU, o kterém je nejméně jistý — například s nejvyšší entropií: x* ∈ argmaxx ∈ DU H(pθ(· | x));
  2. člověk (učitel) mu doplní štítek y*; dvojice (x*, y*) se přesune z DU do DL;
  3. model se znovu natrénuje na DL;

dokud nedojde rozpočet na označování.

Nechť p je rozdělení na {1, …, K}, tj. p(k) ≥ 0 a ∑k=1K p(k) = 1. Jeho entropie (v bitech) je

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

Pro dvě třídy: odhad 50 : 50 má H = −2 · 0,5 · log2 0,5 = 1 bit (nejvíc 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 jen 0,081 bitu. K označení půjde jako první příklad, kde model váhá 50 : 50.

Laicky řečeno

Místo aby člověk popisoval všechno, model se ptá jen na to, čemu nerozumí. Stejný výsledek za zlomek práce.

Definice — generativní a diskriminativní modely

Nechť 𝒳 je prostor vstupů a 𝒴 prostor štítků.

  1. Diskriminativní model se učí přímo podmíněné rozdělení pθ(y | x) pro x ∈ 𝒳, y ∈ 𝒴, nebo rovnou rozhodovací funkci fθ : 𝒳 → 𝒴 (a tedy rozhodovací hranici). O tom, jak jsou rozdělené samotné vstupy x, nic neříká.
  2. Generativní model se učí rozdělení dat pθ(x) na 𝒳, případně sdružené rozdělení pθ(x, y) na 𝒳 × 𝒴, a umí z něj vzorkovat nová data. Ze sdruženého rozdělení se dá dopočítat i podmíněné (pro konečné 𝒴): pθ(y | x) = pθ(x, y)/∑y′ ∈ 𝒴 pθ(x, y′).
Laicky řečeno

Diskriminativní model pozná psa od kočky. Generativní model ví, jak pes vypadá, tak dobře, že ho umí nakreslit. Jazykové modely i generátory obrázků jsou generativní.

A ještě dávkové vs. průběžné učení (model se natrénuje jednou na všech datech, nebo se učí průběžně z každého nového příkladu) a parametrické vs. neparametrické modely (pevný počet parametrů jako logistická regrese, nebo model, který roste s daty jako k nejbližších sousedů).

8. Srovnání

Druh učeníDataSignálTypické úlohyPříklady algoritmů
S učitelem(x, y)správná odpověďklasifikace, regreselogistická regrese, rozhodovací stromy, neuronové sítě
Bez učitelexžádnýshlukování, snížení dimenze, anomáliek-means, PCA, autoenkodéry
S částečným učitelemmálo (x, y) + hodně xpár odpovědíklasifikace s drahými štítkyšíření štítků, pseudoštítky
Samoučeníxvyrobený z datpředtrénování základních modelůpředpověď tokenu, maskování, kontrastivní učení
Zpětnovazebníinterakce s prostředímodměnahry, roboti, řízení, RLHFQ-learning, policy gradient, PPO

9. Shrnutí

  • Druhy učení se liší tím, jakou zkušenost E model dostane: správné odpovědi, jen data, trochu obojího, odpovědi vyrobené z dat, nebo odměny za činy.
  • Učení s učitelem je nejpřímočařejší, ale potřebuje drahé štítky.
  • Bez učitele se hledá struktura; s částečným učitelem pomáhá neoznačená data rozšířit pár štítků na všechno.
  • Samoučení vyrábí štítky z dat samotných — na něm stojí dnešní jazykové modely.
  • Zpětnovazební učení učí jednat: zkoušet, sbírat odměny a myslet dopředu.

V praxi se druhy kombinují. Velký jazykový model se předtrénuje samoučením, doladí s učitelem na ukázkových odpovědích a nakonec zpětnovazebním učením podle hodnocení lidí. Tři druhy učení v jednom modelu, se kterým si možná zrovna píšete.

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