Ztrátové funkce: co přesně model minimalizuje
Ztráta, riziko a metrika; kvadratická, absolutní a Huberova ztráta při poruše čidla; kvantilová ztráta a předpověď rozpětí; klasifikační ztráty podle marže a proč s hinge ztrátou rozhodují jen body u hranice.
Série Základy AI Díl 52 z 83
- Mapa umělé inteligence: co je co a jak to do sebe zapadá
- Stručná historie umělé inteligence: od Turinga po jazykové modely
- Data, model, trénink, inference: základní pojmy na jednom příkladu
- Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relace: stavebnice, ze které se skládají definice v AI
- Funkce a zobrazení: proč je každý model v AI funkce
- Logika a důkazy: pravidla, podle kterých se v AI uvažuje
- Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
- Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
- Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
- Gradientní sestup: jak se model učí
- Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
- Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
- Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
- Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
- Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
- Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
- Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
- Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
- Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
- Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
- Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
- Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
- Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
- Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
- Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
- Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
- Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
- Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
- Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
- Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
- Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
- Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
- Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
- Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
- Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
- Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
- Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
- Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
- Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
- Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
- Přeučení a regularizace: proč model, který zná data nazpaměť, selže
- Vyhodnocení modelu: křížová validace, F1 a křivka ROC
- Shlukování a snížení dimenze: k-means, PCA a t-SNE
- Klasifikace a regrese: dvě úlohy učení s učitelem
- Lineární regrese: nejmenší čtverce geometricky i maticově
- Polynomiální a nelineární regrese: jak přímku ohnout
- Logistická regrese: sigmoida, šance a křížová entropie
- Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
- Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
- Ztrátové funkce: co přesně model minimalizuje
- Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
- Ansámbly: náhodný les a gradient boosting
- SVM a jádrový trik: nejširší hranice a jak ji ohnout
- Signál a vzorkování: proč platí Nyquistův teorém
- Fourierova transformace: rozklad signálu na frekvence
- Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
- Zvuk a řeč: spektrogram, melová škála a MFCC
- Obraz jako signál: pixely, barvy, konvoluce a hrany
- Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
- Neuronová síť od nuly: zpětné šíření chyby krok za krokem
- Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
- Konvoluční sítě: jak síť poznává obrázky
- Rekurentní sítě: paměť pro posloupnosti a mizející gradient
- LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
- Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
- Embeddingy a word2vec: jak se slovo stane vektorem
- Mechanismus pozornosti: jak se model naučí, kam se dívat
- Transformery a velké jazykové modely: architektura krok za krokem
- Tokenizace: jak se text rozseká na kousky pro model
- Předtrénování a škálování: proč větší model a víc dat funguje
- Doladění a RLHF: jak se z doplňovače textu stane asistent
- Prompty, kontext a RAG: jak modelu dát správné informace
- Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
- Generativní adversariální sítě (GAN): padělatel proti detektivovi
- Difúzní modely: jak se z čistého šumu stane obrázek
- Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
- Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
- Policy gradient a PPO: učení přímo strategie
- Jak funguje AI agent: jazykový model ve smyčce s nástroji
- Programování s AI agenty: zadání, testy a kontrola
- Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat
Celá osnova série 83 z 83 témat hotovo
- Proč se model učí na jiné ztrátě, než podle které ho hodnotíme.
- Jak se regresní ztráty chovají k odlehlým bodům a jak kvantilovou ztrátou předpovídat rozpětí.
- Čím se liší logistická, hinge a exponenciální ztráta a jak ztrátu vybrat.
Co se hodí znát předem: Klasifikace a regrese: dvě úlohy učení s učitelem, Logistická regrese: sigmoida, šance a křížová entropie
Model se neučí „dobře předpovídat“. Učí se minimalizovat jedno konkrétní číslo — ztrátu — a dělá přesně to, co mu ztráta řekne, ani o kousek víc. V předchozích dílech jsme viděli, že kvadratická chyba vede k průměru a absolutní k mediánu, a že logistická regrese potřebuje křížovou entropii. Teď si ztráty seřadíme vedle sebe, podíváme se, jak se chovají k odlehlým bodům, jak s nimi předpovídat rozpětí místo jednoho čísla a proč u klasifikace záleží na tom, jak ztráta trestá body daleko od hranice.
Navazuje na díly Klasifikace a regrese a Logistická regrese.
1. Ztráta, riziko a metrika
Definice — ztrátová funkce, empirické riziko, metrika
Nechť 𝒳 je množina možných vstupů, 𝒴 množina možných skutečných hodnot (např. 𝒴 = ℝ u regrese, 𝒴 = {−1, +1} u dvou tříd) a 𝒵 množina možných předpovědí (např. ℝ). Ztrátová funkce je funkce
ℓ : 𝒴 × 𝒵 → [0, ∞), (y, ŷ) ↦ ℓ(y, ŷ);
číslo ℓ(y, ŷ) je cena předpovědi ŷ ∈ 𝒵, když skutečná hodnota je y ∈ 𝒴.
Nechť dále n ∈ ℕ, n ≥ 1, (x1, y1), …, (xn, yn) ∈ 𝒳 × 𝒴 jsou trénovací data a f : 𝒳 → 𝒵 je model. Empirické riziko modelu f je číslo
R̂(f) = 1/n ∑i=1n ℓ(yi, f(xi)),
tedy průměrná cena chyb modelu na trénovacích datech; učení hledá model (v praxi parametry θ modelu fθ), pro který je R̂ co nejmenší.
Metrika je předpis M, který modelu f a (obvykle testovacím) datům přiřadí reálné číslo hodnotící kvalitu jeho předpovědí — např. přesnost, F1 nebo RMSE z dílu o vyhodnocení modelu. Metrika nemusí být průměrem ztráty přes body (F1 není) a obecně se od empirického rizika liší.
Ztráta je pokyn pro učení, metrika je známka na vysvědčení. Často chceme dobrou známku z přesnosti, ale přesnost se učit nedá: když posuneme váhy o kousek, přesnost se buď nezmění vůbec, nebo skočí — gradient je skoro všude nula. Proto se učí náhradní ztráta, hladká a s užitečným gradientem, která přesnost táhne správným směrem.
Definice — riziko
Nechť (X, Y) je náhodný vektor s hodnotami v 𝒳 × 𝒴 a s rozdělením P (z něj pocházejí trénovací i nová data), ℓ : 𝒴 × 𝒵 → [0, ∞) je ztrátová funkce a f : 𝒳 → 𝒵 model. Riziko modelu f je střední hodnota ztráty
R(f) = E(X, Y) ∼ P[ ℓ(Y, f(X)) ]
(pokud existuje), tedy průměrná cena chyby na nových datech. Rozdělení P neznáme, proto ho nahradíme trénovacími daty a riziko průměrem — empirickým rizikem. Podle zákona velkých čísel se pro pevné f empirické riziko s rostoucím n blíží skutečnému; pro model vybraný právě podle trénovacích dat to už neplatí automaticky (přeučení).
R̂(θ) = 1/n ∑i=1n ℓ( yi, fθ(xi) )
- R̂(θ)
- empirické riziko jako funkce parametrů θ — jediné číslo, které učení zmenšuje; všechno, co od modelu chceme, se musí propsat sem
- 1/n ∑
- průměr přes trénovací příklady — každý bod má stejný hlas a výsledek nezávisí na tom, kolik dat máme (součet by s n rostl a s ním i vhodná velikost kroku)
- ℓ
- ztrátová funkce — tady se rozhoduje, které chyby jsou drahé; zbytek vzorce je u všech ztrát v tomto dílu stejný
- yi
- skutečná hodnota — s ní předpověď srovnáváme
- fθ(xi)
- předpověď modelu — jediné místo, kudy do rizika vstupují parametry; proto má smysl derivovat podle θ
2. Kvadratická, absolutní a Huberova ztráta
Definice — regresní ztráty pro reziduum r = y − ŷ
Nechť y ∈ ℝ je skutečná hodnota, ŷ ∈ ℝ předpověď a r = y − ŷ ∈ ℝ reziduum. Regresní ztráty zapisujeme jako funkce rezidua ℝ → [0, ∞):
- kvadratická ztráta: ℓ2(r) = r2;
- absolutní ztráta: ℓ1(r) = |r|;
- Huberova ztráta s parametrem δ > 0: Hδ(r) = ½r2 pro |r| ≤ δ, Hδ(r) = δ(|r| − ½δ) pro |r| > δ.
Huberova ztráta je tedy pro malá rezidua kvadratická, pro velká lineární a v bodech |r| = δ, kde se obě části potkávají, má spojitou derivaci (je hladká).
Důležitější než ztráta sama je její derivace — „tah“, kterým každý bod působí na model. U kvadratické ztráty roste tah s velikostí chyby: bod desetkrát dál táhne desetkrát silněji. U absolutní je tah vždy stejný, jen směr se liší. Huberova ztráta je kompromis: blízké body táhnou podle vzdálenosti, vzdálené už jen stálou silou.
Hδ(r) = ½r2 pro |r| ≤ δ, jinak δ|r| − ½δ2
- Hδ(r)
- Huberova ztráta (zelená v grafu) — kvadratická uprostřed, lineární na okrajích
- ½r2
- kvadratická část (jako oranžová křivka) — blízko nuly je hladká a tah r se s klesající chybou zmenšuje, takže se model u optima zastaví jemně; ½ je tam proto, aby derivace byla rovnou r
- |r| ≤ δ
- práh — od jaké chyby bod považujeme za podezřelý; volí se v jednotkách dat (u čidla 1 °C, zhruba dvaapůlnásobek šumu)
- δ|r|
- lineární část (jako modrá křivka) — tah je už stálý, δ, takže vzdálený bod táhne stejně jako bod na prahu, ne silněji
- − ½δ2
- posun, aby se obě části v |r| = δ potkaly: ½δ2 = δ · δ − ½δ2; sklon tam mají oba kusy stejný (δ), proto je ztráta hladká
Definice — tah (funkce vlivu)
Nechť ℓ : ℝ → [0, ∞) je konvexní regresní ztráta zapsaná jako funkce rezidua r = y − fθ(x). Číslo g ∈ ℝ je subgradient ℓ v bodě r0, právě když ℓ(r) ≥ ℓ(r0) + g · (r − r0) pro všechna r ∈ ℝ; je-li ℓ v r0 diferencovatelná, je jediným subgradientem ℓ′(r0). Tah (funkce vlivu) ztráty ℓ je funkce ψ : ℝ → ℝ,
ψ(r) = ℓ′(r) v bodech, kde ℓ má derivaci,
a v ostatních bodech je ψ(r) některý subgradient ℓ v r. Tah říká, jak silně a kterým směrem bod s reziduem r táhne za model. Pro naše tři ztráty:
- kvadratická: ψ(r) = 2r;
- absolutní: ψ(r) = sign r pro r ≠ 0 a ψ(0) ∈ [−1, 1] (subgradienty |r| v nule tvoří celý interval [−1, 1]);
- Huberova: ψ(r) = r pro |r| ≤ δ a ψ(r) = δ · sign r pro |r| > δ.
Podle řetízkového pravidla je gradient empirického rizika součtem tahů jednotlivých bodů:
∂R̂/∂θ = − 1/n ∑i ψ(ri) · ∂fθ(xi)/∂θ
- 1/n ∑
- gradient je průměr příspěvků jednotlivých bodů — každý bod za model tahá zvlášť a výsledný krok je jejich součet
- ψ(ri)
- tah bodu — jak silně bod tahá; jediné místo, kde se ztráty liší, a proto o odolnosti vůči odlehlým bodům rozhoduje právě on
- ∂fθ(xi)/∂θ
- kterým směrem by se změnou parametrů pohnula předpověď v bodě — u přímky a + bt je to (1, t), takže body na konci intervalu silněji natáčejí sklon
Věta — kvadratická ztráta vede k průměru, absolutní k mediánu
Nechť n ∈ ℕ, n ≥ 1, a y1, …, yn ∈ ℝ. Označme ȳ = 1/n ∑i=1n yi jejich průměr. Číslo m ∈ ℝ je medián hodnot y1, …, yn, právě když
|{i : yi < m}| ≤ n/2 ∧ |{i : yi > m}| ≤ n/2,
tj. pod ani nad m neleží víc než polovina hodnot (pro liché n je medián jediný — prostřední hodnota; pro sudé n je mediánem každé číslo mezi dvěma prostředními hodnotami). Pak platí:
- funkce Q(c) = ∑i=1n (yi − c)2 nabývá na ℝ minima právě v bodě c = ȳ;
- funkce A(c) = ∑i=1n |yi − c| nabývá na ℝ minima právě v mediánech.
Jediné číslo, které nejlépe zastupuje všechny hodnoty, je tedy pro kvadratickou ztrátu průměr a pro absolutní medián.
Důkaz. Obě funkce jsou konvexní, takže minimum je právě tam, kde je součet tahů nulový (nebo kde nulu obsahuje subgradient). Kvadratická: Q′(c) = −∑ 2(yi − c) = 0 ⇔ c = 1/n ∑ yi = ȳ. Absolutní: ∑ sign(yi − c) = (počet bodů nad c) − (počet bodů pod c), a to je nula (nebo nulu obsahuje subgradient), právě když nad i pod c leží nejvýš polovina bodů — to je medián. ∎
Příklad. Pět měření 20, 21, 22, 24 a 33 °C, poslední vadné. Průměr je 120/5 = 24 °C, medián 22 °C. Huberova ztráta s δ = 2 dá c = 22⅓ °C: rezidua jsou −2⅓, −1⅓, −⅓, 1⅔ a 10⅔, tahy −2, −1⅓, −⅓, 1⅔ a 2 (u krajních bodů oříznuté na ±δ) a jejich součet je 0. Vadný bod odtáhl průměr o 2 °C nad medián, Huberovo řešení jen o třetinu stupně.
3. Když se čidlo porouchá
Čidlo měří teplotu v místnosti deset hodin, 60 měření. Teplota ve skutečnosti roste z 18 °C o půl stupně za hodinu. Ke konci se ale čidlo začne přehřívat a osm měření ukáže o 6 až 9 °C víc. Proložíme přímku podle všech tří ztrát:
| Ztráta | sklon (°C/h) | chyba předpovědi v 10 h | RMSE na správných měřeních |
|---|---|---|---|
| skutečnost | 0,500 | — | — |
| kvadratická | 0,913 | +3,02 °C | 1,41 |
| Huberova (δ = 1) | 0,576 | +0,58 °C | 0,47 |
| absolutní | 0,533 | +0,26 °C | 0,39 |
Osm vadných bodů skoro zdvojnásobilo sklon kvadratické přímky — každý z nich táhne silou úměrnou svým sedmi stupňům odchylky. Absolutní ztráta je vůči nim skoro imunní a Huberova je někde mezi. Proč tedy nepoužívat absolutní ztrátu vždycky? Na čistých datech je kvadratická ztráta přesnější (optimum je průměr, ten se odhaduje s menším rozptylem než medián), je hladká a má řešení vzorcem. Huberova ztráta si bere od každé něco: blízko optima se chová jako kvadratická, daleko jako absolutní.
Příklad — tah vadného a dobrého měření
Vadné měření s reziduem r = 7 °C a dobré s r = 0,4 °C (zhruba velikost šumu):
| Ztráta | ψ(7) | ψ(0,4) | poměr |
|---|---|---|---|
| kvadratická, 2r | 14 | 0,8 | 17,5× |
| Huberova (δ = 1) | 1 | 0,4 | 2,5× |
| absolutní, sign r | 1 | 1 | 1× |
U kvadratické ztráty táhne osm vadných měření zhruba tak silně jako 8 · 17,5 = 140 dobrých s typickou chybou — a dobrých je jen 52.
Věta — o kolik je medián na čistých datech horší
Nechť n ≥ 1 a Y1, …, Yn jsou nezávislé náhodné veličiny se stejným normálním rozdělením N(μ, σ2), kde μ ∈ ℝ a σ > 0 (měření μ s normálním šumem). Nechť Ȳn = 1/n ∑i=1n Yi je výběrový průměr a Mn výběrový medián. Pak
- var Ȳn = σ2/n pro každé n;
- pro n → ∞ je rozptyl mediánu přibližně var Mn ≈ πσ2/2n ≈ 1,57 · σ2/n (přesně: √n (Mn − μ) konverguje v distribuci k N(0, πσ2/2)).
Bod 2 je případ klasického asymptotického výsledku (viz např. A. W. van der Vaart, Asymptotic Statistics, 1998, kap. 21): má-li rozdělení hustotu φ spojitou a kladnou v mediánu m, je var Mn ≈ 1/4n φ(m)2. Pro normální rozdělení je m = μ a φ(m) = 1/σ√2π, takže 1/4n φ(m)2 = 2πσ2/4n = πσ2/2n. Medián tedy potřebuje o 57 % víc dat, aby byl stejně přesný jako průměr. Jakmile ale data obsahují odlehlé body, poměr se obrátí.
Jak se přímka s absolutní nebo Huberovou ztrátou hledá, když na ni není vzorec? Postupem iterativně převážených nejmenších čtverců: střídavě se spočítají váhy bodů a vyřeší vážená kvadratická úloha. Váha je úměrná ψ(r)/r, takže vážená kvadratická úloha má v aktuálním bodě stejný gradient jako ta původní. Obrázek výše je spočítaný takhle:
w_i = 1 pro všechny body # první krok = obyčejné nejmenší čtverce
opakuj 200×: # u kvadratické ztráty stačí jednou
(a, b) = argmin ∑ w_i · (T_i − a − b·t_i)² # vážené nejm. čtverce, soustava 2×2
r_i = T_i − a − b·t_i
w_i = 1 pro kvadratickou ztrátu
w_i = 1 / |r_i| pro absolutní (|r_i| zdola omezené 10⁻⁶)
w_i = min(1, δ / |r_i|) pro Huberovu (vzdálené body ztrácejí váhu)
4. Kvantilová ztráta: předpovídat rozpětí
Aplikace na jízdní řády nechce znát jen „typickou“ dobu jízdy. Chce říct: „s 90% jistotou tam budete do 34 minut.“ To je otázka na kvantil, ne na průměr.
Definice — kvantilová (pinball) ztráta
Nechť τ ∈ (0, 1) a r = y − ŷ ∈ ℝ je reziduum. Kvantilová (pinball) ztráta pro kvantil τ je funkce ρτ : ℝ → [0, ∞),
ρτ(r) = τ · r pro r ≥ 0, ρτ(r) = (τ − 1) · r pro r < 0.
Nechť Y je náhodná veličina s distribuční funkcí F(y) = P(Y ≤ y). Její τ-kvantil je číslo
qτ = min {y ∈ ℝ : F(y) ≥ τ},
tedy nejmenší hodnota, pod kterou (včetně ní) leží aspoň podíl τ případů. Je-li E|Y| < ∞, nabývá funkce c ↦ E[ρτ(Y − c)] minima v c = qτ; se vstupem x jde o podmíněný kvantil rozdělení Y při X = x. Pro τ = ½ je ρ½(r) = ½|r|, polovina absolutní ztráty, a optimem je medián.
Je to absolutní ztráta s nesouměrnými tresty. Pro τ = 0,9 stojí podcenění devětkrát víc než přecenění. Model se proto vyplatí posunout nahoru, až pod ním zůstane jen desetina bodů — přesně tam, kde je 90% kvantil. Stejný trik funguje vždy, když jedna chyba stojí víc než druhá: přijet pozdě na vlak je horší než přijet o pět minut dřív.
ρτ(r) = τ · max(r, 0) + (1 − τ) · max(−r, 0)
- ρτ(r)
- kvantilová ztráta pro reziduum r = y − ŷ; v každém bodě je nenulový nejvýš jeden ze dvou sčítanců
- τ · max(r, 0)
- cena podcenění (skutečnost nad předpovědí, autobus jel déle) — s velkým τ je drahé, a tak model předpověď zvedá
- (1 − τ) · max(−r, 0)
- cena přecenění (skutečnost pod předpovědí) — s velkým τ levné; poměr cen τ : (1 − τ) určí, kde se model zastaví
Věta — minimum kvantilové ztráty je kvantil
Nechť τ ∈ (0, 1), n ≥ 1 a y1, …, yn ∈ ℝ. Pro c ∈ ℝ označme S(c) = ∑i=1n ρτ(yi − c). Pak S nabývá na ℝ minima právě v těch c, pro která
|{i : yi < c}| ≤ τn ≤ |{i : yi ≤ c}|,
a aspoň jedno takové c existuje (je jím ⌈τn⌉-tá nejmenší z hodnot). Takovým c se říká výběrový τ-kvantil: pod c leží nejvýš podíl τ hodnot a pod c včetně c aspoň podíl τ.
Důkaz. Posuneme-li c o malé ε > 0 nahoru, ztráta každého bodu nad c klesne o τε a každého bodu pod c (či na c) vzroste o (1 − τ)ε. Je-li takových bodů k z n, změní se součet o ε · [(1 − τ)k − τ(n − k)] = ε · (k − τn). Dokud k/n < τ, posun nahoru se vyplatí, jakmile k/n > τ, vyplatí se posun dolů. S je konvexní, minimum je tedy tam, kde k/n přejde přes τ — to je přesně podmínka výše. Pro τ = ½ je to medián. ∎
U přímky a + b · km dává stejný argument pro posun a stejnou podmínku: v optimu leží pod přímkou podíl τ trénovacích jízd (až na body ležící přesně na ní). Rozpětí mezi 10% a 90% přímkou proto slibuje 90 − 10 = 80 % jízd.
Na 5 000 nových jízdách leží pod 10% přímkou 11,0 % jízd, pod mediánem 49,1 % a pod 90% přímkou 88,7 %. Pro trasu dlouhou 10 km předpovídá model rozpětí od 18,2 do 33,7 minuty s mediánem 24,8 minuty. Do rozpětí mezi 10% a 90% přímkou padne 77,7 % nových jízd, skoro slibovaných 80 %. Rozpětí se s délkou trasy rozšiřuje, protože delší trasa nabírá víc zpoždění — model s kvadratickou ztrátou by tohle neviděl.
5. Klasifikační ztráty podle marže
U dvou tříd je výhodné označit třídy y = −1 a +1 a podívat se na marži.
Definice — marže a náhradní ztráty
Nechť f : 𝒳 → ℝ je model, který příkladu x ∈ 𝒳 přiřadí skóre z = f(x) a předpovídá třídu sign z, a nechť y ∈ {−1, +1} je skutečná třída příkladu x. Marže příkladu je číslo
m = y · z ∈ ℝ.
Platí m > 0, právě když sign z = y (příklad je zařazený správně), a čím je m větší, tím dál od hranice z = 0 na správné straně příklad leží. Klasifikační ztráty zapisujeme jako funkce marže ℝ → [0, ∞):
- 0–1: ℓ01(m) = 1 pro m ≤ 0 a ℓ01(m) = 0 pro m > 0 (počet chyb — to, co chceme, ale nedá se učit);
- logistická (křížová entropie): ℓlog(m) = log2(1 + e−m);
- hinge: ℓhinge(m) = max(0, 1 − m);
- exponenciální: ℓexp(m) = e−m.
Ztráty 2–4 se nazývají náhradní: jsou konvexní a pro každé m ∈ ℝ platí ℓ(m) ≥ ℓ01(m), tj. 0–1 ztrátu shora omezují (důkaz ve větě níže).
Marže říká, na které straně hranice bod leží a jak daleko. Náhradní ztráty jsou hladké „obálky“ schodu 0–1: když model zmenšuje je, zmenšuje i počet chyb. Liší se tím, co dělají na krajích — jak moc trestají hrubý omyl vlevo a jestli přestanou zajímat body, které jsou bezpečně na správné straně vpravo.
ℓlog(m) = log2( 1 + e−m ), m = y · z
- ℓlog(m)
- logistická ztráta (zelená v grafu) — totéž co křížová entropie logistické regrese, jen zapsané pomocí marže
- e−m
- jádro trestu — pro velkou kladnou marži rychle mizí (jistě správné body skoro netáhnou), pro zápornou roste, takže omyly stojí hodně
- 1 +
- drží ztrátu nezápornou a pro m → −∞ ji zkrotí: log(1 + e−m) ≈ −m, takže omyl roste jen lineárně, ne exponenciálně jako u exponenciální ztráty
- log2
- logaritmus o základu 2 (ztráta v bitech) — v m = 0 dá log2 2 = 1, stejně jako 0–1 ztráta, a proto ji shora omezuje; s přirozeným logaritmem by to bylo jen ln 2 ≈ 0,69
Věta — logistická ztráta je křížová entropie; náhradní ztráty omezují 0–1 ztrátu
Nechť x ∈ 𝒳, y ∈ {−1, +1}, z = f(x) ∈ ℝ a m = yz. Nechť model (logistická regrese) předpovídá pravděpodobnost
P(y = +1 | x) = σ(z) = 1/1 + e−z, P(y = −1 | x) = 1 − σ(z).
Pak platí:
- křížová entropie této předpovědi (v bitech) je rovna ℓlog(m);
- pro ℓ ∈ {ℓlog, ℓhinge, ℓexp} a každé m ∈ ℝ je ℓ(m) ≥ ℓ01(m); proto pro data (x1, y1), …, (xn, yn) je podíl chyb 1/n ∑i ℓ01(yif(xi)) nejvýš roven průměrné náhradní ztrátě 1/n ∑i ℓ(yif(xi)).
Důkaz. 1. Křížová entropie (v bitech) pro y = +1 je −log2 σ(z) = log2(1 + e−z) a pro y = −1 je −log2(1 − σ(z)) = −log2 σ(−z) = log2(1 + ez). V obou případech je to log2(1 + e−yz) = ℓlog(m).
2. Pro m ≤ 0 je e−m ≥ 1, takže logistická ztráta ≥ log2 2 = 1, exponenciální ≥ 1 a hinge 1 − m ≥ 1 = ℓ01(m); pro m > 0 je 0–1 ztráta nulová a všechny tři jsou nezáporné. Nerovnost platí v každém bodě, a tedy i pro průměry. ∎
| marže m | 0–1 | logistická | hinge | exponenciální |
|---|---|---|---|---|
| −2 | 1 | 3,07 | 3 | 7,39 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0,45 | 0 | 0,37 |
| 2 | 0 | 0,18 | 0 | 0,14 |
Například logistická ztráta pro m = −2 (barvy podle vzorce výše): ℓlog(−2) = log2(1 + e2) ≈ log2(1 + 7,389) = log2 8,389 ≈ 3,07; pro m = 1: ℓlog(1) = log2(1 + e−1) ≈ log2(1 + 0,368) ≈ 0,45.
Při hrubém omylu s marží −2 dá exponenciální ztráta 7,39, hinge 3 a logistická 3,07. Exponenciální ztráta, na které stojí algoritmus AdaBoost, je proto velmi citlivá na chybně označené příklady — jeden špatný štítek ji dokáže strhnout. Na druhém konci je rozdíl ještě zajímavější: s marží 1 má hinge ztrátu přesně nulovou, logistická 0,45 a ani s marží 2 neklesne na nulu (0,18).
6. Hinge: rozhodují jen body u hranice
Co to znamená v praxi? Naučíme lineární klasifikátor na 120 bodech dvou tříd jednou hinge ztrátou a jednou logistickou (obojí s malou regularizací). Na obrázku je velikost bodu úměrná tomu, jak silně táhne za výsledek:
S hinge ztrátou má nenulový tah jen 26 bodů ze 120 — ty, které leží uvnitř pásu −1 < z < 1 nebo na špatné straně. Ostatních 94 bodů na hranici netáhne vůbec. U logistické ztráty táhnou všechny body; aby dohromady nesly 90 % celkového tahu, je jich potřeba 53. Přesnost je skoro stejná (93,3 % a 92,5 %). Body, na kterých hinge řešení stojí, se jmenují podpůrné vektory a jsou základem metody SVM, které je věnovaný samostatný díl.
J(w) = 1/n ∑i max(0, 1 − yizi) + λ/2 (w12 + w22),
zi = w0 + w1xi1 + w2xi2
- 1/n ∑ max(0, 1 − yizi)
- průměrná hinge ztráta (modrá v grafu marží) — „1 −“ chce od každého bodu marži aspoň 1, ne jen správnou stranu; „max(0, …)“ body, které to splní, úplně umlčí
- λ/2 (w12 + w22)
- regularizace (u nás λ = 0,01) — bez ní by šlo marže zvětšit prostým vynásobením všech vah a pás −1 < z < 1 by se smrskl k nule; malé váhy znamenají široký pás, tedy hranici co nejdál od bodů
- zi
- skóre lineárního modelu; posun w0 se neregularizuje, aby trest nezáležel na tom, kde leží počátek souřadnic
Tah bodu je derivace ztráty podle skóre: u hinge ztráty −yi, když yizi < 1, a přesně 0 jinak; u logistické −yi/1 + eyizi, což je malé, ale nikdy nulové. Proto hinge řešení stojí jen na 26 bodech a logistické na všech 120. Model na obrázku je naučený subgradientním sestupem (hinge ztráta nemá v m = 1 derivaci, stačí ale subgradient — ve zlomu vezmeme jednu z jednostranných derivací):
w = (0, 0, 0); λ = 0,01
for t = 1 … 20 000:
η = 1 / (λ · (t + 100)) # krok se postupně zkracuje
g = (0, λ·w₁, λ·w₂) # gradient regularizace (bez w₀)
for každý bod (x₁, x₂, y):
m = y · (w₀ + w₁·x₁ + w₂·x₂)
k = (m < 1 ? −y : 0) # hinge
k = −y / (1 + e^m) # nebo: logistická
g += (k, k·x₁, k·x₂) / n
w = w − η · g
7. Jak ztrátu vybrat
- Co chcete předpovídat? Průměr → kvadratická, medián → absolutní, kvantil (rozpětí, záruky) → kvantilová, pravděpodobnost třídy → křížová entropie.
- Jak špinavá jsou data? Odlehlé body nebo chybné štítky → Huberova nebo absolutní ztráta, u klasifikace se vyhnout exponenciální.
- Kolik stojí která chyba? Nesouměrné ceny se dají zabudovat přímo do ztráty: kvantilem, nebo vahami tříd (chyba na vzácné nemoci se počítá desetkrát).
- Metrika není ztráta. Model se učí na náhradní ztrátě a hodnotí se na metrice, o kterou jde. Když se ty dvě rozcházejí, je to stejná past jako Goodhartův zákon z dílu o vyhodnocení modelu.
Věta — co která ztráta odhaduje
Nechť (X, Y) je náhodný vektor s hodnotami v 𝒳 × 𝒴, ℓ : 𝒴 × 𝒵 → [0, ∞) ztrátová funkce a předpokládejme, že model může být libovolná (měřitelná) funkce f : 𝒳 → 𝒵 („má dost volnosti“). Nechť pro každé x ∈ 𝒳 existuje
f*(x) = argminc ∈ 𝒵 E[ ℓ(Y, c) | X = x ].
Pak R(f*) ≤ R(f) pro každý model f — riziko se minimalizuje v každém bodě x zvlášť, protože R(f) = E[ E[ℓ(Y, f(X)) | X] ]. Podle vět výše (a jejich verzí pro rozdělení místo konečného výběru) tak vychází:
| Ztráta | optimální předpověď f*(x) |
|---|---|
| kvadratická | podmíněný průměr E[Y | X = x] |
| absolutní | podmíněný medián |
| kvantilová ρτ | podmíněný τ-kvantil |
| logistická (křížová entropie) | skóre z = ln p/1 − p, kde p = P(Y = +1 | X = x) |
| hinge | jen znaménko: +1, když p > ½, jinak −1 — pravděpodobnost z něj nevyčteme |
Pro logistickou ztrátu: při daném x minimalizujeme p · log2(1 + e−z) + (1 − p) · log2(1 + ez); derivace podle z je úměrná −p(1 − σ(z)) + (1 − p)σ(z) = σ(z) − p, takže σ(z*) = p. Proto z logistické regrese pravděpodobnost dostaneme a ze SVM ne.
I ty nejsložitější modely mají ztrátu překvapivě jednoduchou. Velký jazykový model se při předtrénování učí jedinou věc: minimalizovat křížovou entropii dalšího slova — tu samou, kterou jsme v dílu o softmaxu počítali pro čtyři třídy, jen pro desítky tisíc tříd a biliony slov.
8. Shrnutí
- Model minimalizuje ztrátu, hodnotí se metrikou; přesnost se učit nedá, proto se učí náhradní ztráty.
- Rozhoduje tah (derivace): u kvadratické ztráty roste se vzdáleností, u absolutní je stálý, Huberova je mezi.
- Osm vadných měření zvedlo sklon kvadratické přímky z 0,5 na 0,913; absolutní ztráta dala 0,533.
- Kvantilová ztráta předpovídá rozpětí: pod 90% přímkou leželo 88,7 % nových jízd.
- Klasifikační ztráty se liší na krajích: exponenciální tvrdě trestá omyly, hinge přestane brát v úvahu bezpečné body — výsledek neslo 26 bodů ze 120.
Chcete si to osahat? Nechte AI agenta proložit přímku vašimi daty s kvadratickou a s Huberovou ztrátou — a pak do dat schválně přidejte jeden nesmyslný bod a sledujte, která přímka se pohne.
Máte na to jiný názor? Napište na support@coden-app.com.