Klasifikace a regrese: dvě úlohy učení s učitelem
Stejná data o bytech, dvě otázky: kolik byt stojí a jestli je dražší než osm milionů. Výchozí model, průměr proti mediánu, pravděpodobnost a Bayesova chyba, převody mezi úlohami a další podoby odpovědi.
Série Základy AI Díl 46 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
- Kdy je úloha klasifikace a kdy regrese a proč model vždy porovnat s výchozím.
- Proč regrese podle kvadratické chyby předpovídá průměr a podle absolutní medián.
- Proč má klasifikátor vracet pravděpodobnost a proč nezaokrouhlovat číselný cíl do tříd.
Co se hodí znát předem: Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další, Vyhodnocení modelu: křížová validace, F1 a křivka ROC
Realitní kancelář chce od modelu dvě věci. Majitel bytu se ptá: „Za kolik ho prodám?“ Makléř se ptá: „Patří do nabídky luxusních bytů nad osm milionů?“ Data jsou v obou případech stejná, model se učí ze stejných prodaných bytů — a přesto jde o dvě různé úlohy. První chce v odpovědi číslo, druhá třídu. V tomhle dílu uvidíme, co se od toho rozdílu odvíjí: jak model měřit, s čím ho porovnat, co vlastně předpovídá a co se stane, když jednu úlohu převlečeme za druhou.
Navazuje na díly Druhy strojového učení a Vyhodnocení modelu.
1. Učení s učitelem jako hledání funkce
Definice — učení s učitelem, klasifikace a regrese
Nechť 𝒳 je množina vstupů (u nás 𝒳 ⊆ ℝd), 𝒴 množina cílových hodnot a (X, Y) náhodná dvojice s hodnotami v 𝒳 × 𝒴 s neznámým rozdělením. Trénovací data jsou n ≥ 1 dvojic (x1, y1), …, (xn, yn) ∈ 𝒳 × 𝒴, nezávislých realizací (X, Y); xi jsou příznaky (vstup), yi je cílová hodnota (správná odpověď). Nechť dále L : 𝒴 × 𝒴 → [0, ∞) je ztrátová funkce (L(y, ŷ) je cena odpovědi ŷ, když správně je y).
Učení s učitelem je úloha sestrojit z trénovacích dat funkci (model) f : 𝒳 → 𝒴 s co nejmenším rizikem
R(f) = E[L(Y, f(X))],
tj. s co nejmenší střední ztrátou na nových dvojicích ze stejného rozdělení. Podle množiny 𝒴 rozlišujeme:
- klasifikace, právě když 𝒴 je konečná množina tříd, |𝒴| ≥ 2, jejíž prvky jsou jen jména bez číselného významu (např. 𝒴 = {do 8 mil., nad 8 mil.});
- regrese, právě když 𝒴 = ℝ (nebo interval v ℝ) a na velikosti chyby záleží.
Model se tedy učí z dvojic, kde správnou odpověď známe, aby co nejlépe odpovídal i tam, kde ji neznáme.
Klasifikace odpovídá na otázku „co to je?“ nebo „ano, nebo ne?“: spam, nebo ne; kočka, pes, nebo auto; která z deseti číslic. Regrese odpovídá na otázku „kolik?“: kolik bude zítra stupňů, kolik byt stojí, za kolik minut přijede tramvaj. Rozhoduje druh odpovědi, ne druh dat — z fotky se dá klasifikovat plemeno psa i odhadovat jeho věk.
„f(x) ≈ y“ je zatím jen přání. Učení z něj udělá úlohu, kterou umí počítač vyřešit: vybrat z nějaké rodiny funkcí tu, která se na trénovacích dvojicích mýlí v průměru nejméně (princip minimalizace empirického rizika, jak ho formuloval Vladimir Vapnik):
f̂ = arg minf ∈ ℱ 1/n ∑i=1n L(yi, f(xi))
- f̂
- naučený model — ta funkce z rodiny, která vyhrála
- f ∈ ℱ
- rodina modelů, ze které vybíráme (u nás třeba přímky procházející nulou) — bez omezení by vyhrála funkce, která si trénovací dvojice prostě zapamatuje a na nových datech selže
- 1/n ∑i
- průměr přes trénovací dvojice — skutečnou chybu na všech budoucích datech neznáme, tak ji odhadneme průměrem na těch, které máme
- L(y, f(x))
- ztrátová funkce — kolik stojí odpovědět f(x), když správně je y; její volba rozhoduje, co model nakonec předpovídá (průměr, medián, pravděpodobnost — viz níže)
Název „regrese“ je historická náhoda. Francis Galton v 19. století zjistil, že synové velmi vysokých otců bývají vysocí, ale méně než otcové — výška „regreduje“ k průměru. Metoda, kterou to měřil, si jméno ponechala, i když s návratem k průměru už nemá nic společného.
2. Stejná data, dvě otázky
Naše data: 200 prodaných bytů o ploše 30 až 120 m². Cena roste s plochou, ale hodně kolísá — podle lokality, stavu, patra, výhledu. Ty model nezná; vidí jen plochu. (Data jsou vygenerovaná: typický byt stojí 110 tisíc za metr a skutečná cena se od toho náhodně liší, výjimečně i dvakrát nahoru nebo dolů.)
Pro regresi je cílem cena v milionech, pro klasifikaci jedna ze dvou tříd: „do 8 milionů“ a „nad 8 milionů“. Barvy se míchají skoro v celém rozsahu: nejmenší drahý byt má 36 m², největší levný 110 m². Hlavně kolem 70–80 m² se proto klasifikace bude mýlit, ať uděláme cokoli.
3. Výchozí model: s čím se porovnat
Definice — výchozí model
Nechť (x1, y1), …, (xn, yn) ∈ 𝒳 × 𝒴 jsou trénovací data. Výchozí model (baseline) je konstantní funkce f0 : 𝒳 → 𝒴, f0(x) = c pro všechna x ∈ 𝒳, kde
- v regresi (𝒴 = ℝ) je c = ȳ = 1/n ∑i=1n yi (průměr), nebo c = medián čísel y1, …, yn;
- v klasifikaci je c ∈ argmaxk ∈ 𝒴 |{i ∈ {1, …, n} : yi = k}| (nejčastější třída trénovacích dat).
Výchozí model tedy vůbec nečte příznaky. Jiný model má smysl, jen když je na testovacích datech výrazně lepší než výchozí.
Předpověď „zítra bude stejně jako dnes“ je u počasí překvapivě dobrá. Meteorolog, který ji neporazí, je k ničemu, i když jeho model má milion parametrů. Výchozí model je laťka: teprve rozdíl oproti ní říká, kolik se model opravdu naučil.
Průměrná cena trénovacích bytů je 8,30 milionu. Model, který tohle číslo řekne o každém bytu, má na 5 000 nových bytech odmocninu ze střední kvadratické chyby (RMSE) 5,50 milionu. Pro klasifikaci: drahých je v trénovacích datech 44,5 %, takže nejčastější třída je „do 8 milionů“; model, který ji řekne pokaždé, má na nových bytech přesnost 52,6 %. Tohle jsou čísla, která musíme porazit.
Definice — RMSE, MAE a přesnost
Nechť m ≥ 1, (x1, y1), …, (xm, ym) ∈ 𝒳 × 𝒴 jsou testovací dvojice (nepoužité při učení) a f : 𝒳 → 𝒴 model.
- V regresi (𝒴 = ℝ) je odmocnina ze střední kvadratické chyby a střední absolutní chyba RMSE = √1/m ∑i=1m (yi − f(xi))2, MAE = 1/m ∑i=1m |yi − f(xi)|.
- V klasifikaci je přesnost přesnost = 1/m · |{i ∈ {1, …, m} : f(xi) = yi}| ∈ [0, 1].
RMSE a MAE mají jednotku cílové hodnoty (tady miliony Kč), přesnost je podíl správně zařazených. Výchozí klasifikátor tu odpovídá „do 8 milionů“ pokaždé; drahých bytů je mezi testovacími 47,4 %, takže se trefí u 100 − 47,4 = 52,6 %.
RMSE = √1/m ∑i (yi − f(xi))2
- RMSE
- root mean squared error — typická velikost chyby modelu
- yi − f(xi)
- reziduum — o kolik se model u bytu i spletl; kladné, když byt podcenil
- ( … )2
- čtverec — aby se chyby nahoru a dolů navzájem nevyrušily, a aby velké omyly vážily víc: chyba 4 miliony stojí 16, čtyři chyby po milionu dohromady jen 4
- 1/m ∑i
- průměr přes testovací byty — výsledek nezávisí na tom, kolik bytů jsme testovali
- √
- odmocnina vrátí jednotku z „milionů na druhou“ zpět na miliony, takže se RMSE dá přímo porovnat s cenami
4. Co regrese předpovídá: průměr, nebo medián?
Byt o 60 m² se může prodat za 4 miliony i za 12. Model ale musí říct jedno číslo. Které? Záleží na tom, jak chybu trestáme.
Definice — kvadratická a absolutní chyba a jejich optimum
Nechť (X, Y) je náhodná dvojice s hodnotami v 𝒳 × ℝ a E[Y2] < ∞. Pro y, ŷ ∈ ℝ definujeme
- kvadratickou chybu L2(y, ŷ) = (y − ŷ)2 a absolutní chybu L1(y, ŷ) = |y − ŷ|;
- podmíněný průměr jako funkci x ↦ E[Y | X = x];
- podmíněný medián jako funkci x ↦ q(x), kde q(x) je libovolné číslo s P(Y ≤ q(x) | X = x) ≥ 1/2 a P(Y ≥ q(x) | X = x) ≥ 1/2.
Mezi všemi funkcemi f : 𝒳 → ℝ má nejmenší střední kvadratickou chybu E[(Y − f(X))2] podmíněný průměr a nejmenší střední absolutní chybu E|Y − f(X)| podmíněný medián (věta níže to ukazuje pro konstanty; pro každé x zvlášť platí totéž). Model učený minimalizací ∑ (yi − f(xi))2 se proto s přibývajícími daty (a dost bohatou rodinou modelů) blíží podmíněnému průměru, model učený minimalizací ∑ |yi − f(xi)| podmíněnému mediánu.
Kvadratická chyba trestá velké omyly hodně: jeden byt prodaný za dvojnásobek „táhne“ odhad nahoru. Výsledkem je průměr. Absolutní chyba trestá všechny omyly úměrně jejich velikosti; nejlepší je číslo, pod kterým i nad kterým leží polovina cen — medián. U cen, platů nebo délek čekání, kde se občas objeví velký výkyv nahoru, je průměr znatelně vyšší než medián.
Věta — nejlepší konstanta je průměr, resp. medián
Nechť n ≥ 1 a y1, …, yn ∈ ℝ. Pak
- funkce g(c) = ∑i=1n (yi − c)2 nabývá na ℝ minima právě v bodě c = ȳ = 1/n ∑i=1n yi (průměr);
- funkce h(c) = ∑i=1n |yi − c| nabývá minima v každém mediánu čísel y1, …, yn: pro liché n je to prostřední z uspořádaných čísel, pro sudé n každé číslo mezi dvěma prostředními (včetně nich).
Důkaz. Derivace první funkce podle c je −2 ∑ (yi − c) = −2(∑ yi − nc); nulová je pro c = 1/n ∑ yi, a protože jde o parabolu otevřenou nahoru, je to minimum. Druhá funkce je po částech lineární; mimo body yi má derivaci (počet yi pod c) − (počet yi nad c). Dokud je pod c méně čísel než nad ním, posun doprava součet zmenší, a naopak; minimum je tedy tam, kde je na obou stranách stejně — v mediánu. ∎ Totéž platí pro každé x zvlášť, odtud podmíněný průměr a medián v definici.
Příklad — tři byty za 4, 6 a 14 milionů
Průměr je 8, medián 6 (u RMSE barvy podle vzorce RMSE výše).
Konstanta 8: chyby −4, −2, 6, RMSE = √16 + 4 + 36/3 = √18,67 ≈ 4,32, MAE = 4 + 2 + 6/3 = 4.
Konstanta 6: chyby −2, 0, 8, RMSE = √4 + 0 + 64/3 = √22,67 ≈ 4,76, MAE = 2 + 0 + 8/3 ≈ 3,33.
Průměr vyhrál v RMSE, medián v MAE. Za to může jediný drahý byt: kvadratická chyba z jeho 8 milionů odchylky udělá 64 a průměr k sobě přitáhne, absolutní chyba jen 8.
Obě přímky vycházejí z nuly — cena je úměrná ploše — a liší se jen sklonem, tedy cenou za metr. Podle kvadratické chyby vyjde 116 tisíc za metr, podle absolutní 107 tisíc. Pro byt o 60 m² to je 6,97 proti 6,40 milionu. Z generátoru dat známe pravdu: medián ceny takového bytu je 6,60 a průměr 7,30 milionu. Každá přímka míří ke „svému“ středu, odhad z 200 bytů jen není přesný.
b = ∑i xiyi/∑i xi2
- b
- sklon přímky y = bx podle kvadratické chyby (oranžová přímka v obrázku), tedy cena za metr; vyjde z podmínky, že derivace ∑ (yi − bxi)2 podle b, totiž −2 ∑ xi(yi − bxi), je nulová
- ∑ xiyi
- jak moc jdou plocha a cena „spolu“; každý byt sem přispívá cenou násobenou plochou, takže velké byty mají na sklon největší vliv — a s nimi i jejich velké výkyvy ceny
- ∑ xi2
- normalizace — kdyby každý byt stál přesně b · plocha, byl by čitatel b ∑ xi2 a podíl vrátí právě b; zároveň srovná jednotky na miliony za m²
Příklad — proč je u bytu o 60 m² průměr 7,30 a medián 6,60
Generátor dat bere cenu jako 0,11 · plocha · e0,45 Z, kde Z je normované normální číslo. Medián Z je 0 a e0 = 1, takže medián ceny je 0,11 · 60 = 6,60 milionu. Průměr esZ je ale exp(s2/2) (střední hodnota log-normálního rozdělení): exp(0,452/2) = e0,10125 ≈ 1,1066, a průměr ceny je 6,60 · 1,1066 ≈ 7,30 milionu. Šum „dvakrát nahoru“ (×2) a „dvakrát dolů“ (×½) je stejně pravděpodobný, ale v milionech je první o 6,6 nahoru a druhý o 3,3 dolů — proto průměr ujede nad medián.
| Model (chyba na 5 000 nových bytech) | RMSE | MAE |
|---|---|---|
| konstanta: průměr 8,30 | 5,50 | 3,97 |
| konstanta: medián 7,27 | 5,72 | 3,96 |
| přímka podle kvadratické chyby | 4,53 | 3,16 |
| přímka podle absolutní chyby | 4,64 | 3,13 |
Každý model vyhraje v té míře, kterou při učení minimalizoval: přímka podle kvadratické chyby má menší RMSE, přímka podle absolutní chyby menší MAE (střední absolutní chybu). Totéž platí i pro obě konstanty. Žádná není „správná“ — makléř, který chce vědět, kolik vydělá průměrně na sto bytech, chce průměr; majitel, který chce vědět, za kolik se jeho byt „obvykle“ prodá, chce medián. Obě přímky přitom výchozí model porazily zhruba o milion v RMSE.
5. Co klasifikace předpovídá: pravděpodobnost
Klasifikátor by mohl rovnou říct „drahý“ nebo „levný“. Mnohem užitečnější je ale, když řekne, jak moc si je jistý.
Definice — pravděpodobnostní klasifikátor a rozhodovací hranice
Nechť 𝒳 ⊆ ℝd je množina vstupů a 𝒴 = {1, …, K}, K ≥ 2, množina tříd. Označme ΔK = {(p1, …, pK) ∈ [0, 1]K : p1 + … + pK = 1} množinu rozdělení pravděpodobnosti na 𝒴.
- Pravděpodobnostní klasifikátor je funkce p̂ : 𝒳 → ΔK; složka p̂k(x) je odhad pravděpodobnosti P(Y = k | X = x).
- Třída se z něj určí rozhodovacím pravidlem ĥ : 𝒳 → 𝒴: pro dvě třídy 𝒴 = {0, 1} a práh t ∈ (0, 1) je ĥ(x) = 1, právě když p̂1(x) ≥ t (obvykle t = 0,5); pro K tříd ĥ(x) ∈ argmaxk p̂k(x).
- Rozhodovací hranice je množina těch x ∈ 𝒳, v jejichž každém okolí nabývá ĥ aspoň dvou různých hodnot — místa, kde se rozhodnutí mění. Pro dvě třídy a spojité p̂1 leží v množině {x ∈ 𝒳 : p̂1(x) = t}.
Logistická regrese pro jeden příznak (𝒳 = ℝ) a dvě třídy 𝒴 = {0, 1} s parametry w0, w1 ∈ ℝ je pravděpodobnostní klasifikátor
p̂1(x) = σ(w0 + w1x), p̂0(x) = 1 − p̂1(x), kde σ : ℝ → (0, 1), σ(z) = 1/1 + e−z
je sigmoida. Parametry se volí tak, aby byla co nejmenší logaritmická ztráta na trénovacích datech (níže). U nás se místo plochy x dosazuje standardizovaná plocha x − 75/25 (viz rozbor). Přes jméno je to klasifikační model.
Funkce σ (sigmoida) stlačí jakékoli číslo do intervalu od 0 do 1, takže se dá číst jako pravděpodobnost. Byt o 40 m² je podle našeho modelu drahý s pravděpodobností 6 %, byt o 110 m² s pravděpodobností 92 %, a mezi tím se jistota plynule přelévá. Práh pak volíme podle toho, co nás víc mrzí — stejně jako v dílu o vyhodnocení.
P(drahý | x) = σ( w0 + w1 · x − 75/25 )
- P(drahý | x)
- to, co model předpovídá: pravděpodobnost, že byt o ploše x stojí přes 8 milionů (zelená křivka v obrázku níže)
- σ(s) = 1/1 + e−s
- sigmoida — přímka sama by pro malé byty dala záporné číslo a pro velké větší než 1; sigmoida ji ohne do intervalu (0, 1). Je to inverze k logitu: s = ln p/1 − p, takže s jsou logaritmické šance
- w0 + w1 · …
- lineární skóre se dvěma naučenými čísly; u nás w0 = −0,124 a w1 = 1,853. Lineární je proto, že log-šance rostou s plochou rovnoměrně: každý m² navíc je vynásobí stejným číslem exp(1,853/25) ≈ 1,077, tedy +7,7 %
- x − 75/25
- standardizovaná plocha: 75 m² je 0, každých 25 m² je jednotka — model je tentýž, ale čísla zůstanou kolem ±2 a výpočet vah je numericky klidný
Příklad — byt o 40 m² a o 110 m²
Barvy podle vzorce výše.
40 m²: 40 − 75/25 = −1,4; skóre −0,124 + 1,853 · (−1,4) = −2,718; σ(−2,718) = 1/1 + e2,718 = 1/1 + 15,15 ≈ 0,062, tedy 6 %.
110 m²: 110 − 75/25 = 1,4; skóre −0,124 + 1,853 · 1,4 = −0,124 + 2,594 = 2,470; σ(2,470) = 1/1 + e−2,470 = 1/1 + 0,085 ≈ 0,922, tedy 92 %.
Váhy se hledají tak, aby logaritmická ztráta (viz níže) byla co nejmenší. Na rozdíl od přímky tu vzorec pro řešení není; náš výpočet používá Newtonovu metodu, která v každém kroku nahradí ztrátu parabolou a skočí do jejího minima:
zᵢ ← (xᵢ − 75)/25; yᵢ ← 1, když byt i stojí přes 8 mil., jinak 0
w₀, w₁ ← 0, 0
opakuj 50×:
pᵢ ← σ(w₀ + w₁·zᵢ) # pro všechna i
g ← ∑ᵢ (pᵢ − yᵢ) · (1, zᵢ) # gradient ztráty
H ← ∑ᵢ pᵢ(1 − pᵢ) · (1, zᵢ)ᵀ(1, zᵢ) # Hessova matice 2 × 2
(w₀, w₁) ← (w₀, w₁) − H⁻¹ g # Newtonův krok
Model se naučil hranici 76,7 m²: větší byty označí za drahé. Na nových bytech má přesnost 74,0 % proti 52,6 % výchozího modelu. Kdo zná generátor dat, ví, že nejlepší možná hranice je 72,7 m² — tam má typický byt cenu přesně 8 milionů — a dává přesnost 74,1 %. Lepší to z plochy nejde: byt o 75 m² může stát 6 i 11 milionů a plocha nám neřekne který. Zbylou chybu by zmenšily jen další příznaky, třeba lokalita. Této nepřekonatelné chybě se říká Bayesova chyba.
Definice — Bayesův klasifikátor a Bayesova chyba
Nechť (X, Y) je náhodná dvojice s hodnotami v 𝒳 × 𝒴, kde 𝒴 = {1, …, K} je konečná množina tříd, a ηk(x) = P(Y = k | X = x) pro k ∈ 𝒴. Pro klasifikátor h : 𝒳 → 𝒴 je jeho pravděpodobnost chyby R(h) = P(h(X) ≠ Y).
- Bayesův klasifikátor je klasifikátor h* : 𝒳 → 𝒴 s h*(x) ∈ argmaxk ∈ 𝒴 ηk(x) pro každé x ∈ 𝒳.
- Bayesova chyba je číslo R* = R(h*) = E[1 − maxk ∈ 𝒴 ηk(X)].
Pro každý klasifikátor h : 𝒳 → 𝒴 platí R(h) ≥ R* — žádný klasifikátor, který vidí jen x, se nemýlí méně často. Pro dvě třídy 𝒴 = {0, 1} a p(x) = η1(x) je R* = E[min(p(X), 1 − p(X))].
U našich bytů ji spočítáme přesně, protože generátor známe. Byt o ploše x je drahý, když 0,11 · x · e0,45 Z > 8, tedy Z > ln 8/0,11 x/0,45, a p(x) = 1 − Φ(ln 8/0,11 x/0,45), kde Φ je distribuční funkce normovaného normálního rozdělení. Pro 72,7 m² je argument ln 1 = 0 a p = 0,5 — odtud nejlepší hranice. Pro 40 m² vyjde p = 0,09, pro 110 m² 0,82. Zprůměrováním min(p, 1 − p) přes plochy od 30 do 120 m² dostaneme Bayesovu chybu 26,0 %, tedy nejvyšší možnou přesnost 74,0 %. Náhodný vzorek 5 000 testovacích bytů dal 74,1 % — o desetinu víc jen díky náhodě vzorku.
Pravděpodobnost se dá měřit i přímo. Logaritmická ztráta (křížová entropie) průměruje −ln p, kde p je pravděpodobnost, kterou model dal správné třídě; je nulová jen pro model, který je si jistý a má pravdu. Výchozí model, který každému bytu přisoudí 44,5 % „drahý“, má ztrátu 0,693 — skoro přesně tolik jako hod mincí, ln 2 ≈ 0,693. Logistická regrese má 0,550. Podrobně ztráty probere díl o ztrátových funkcích.
L = −1/m ∑i [ yi ln pi + (1 − yi) ln (1 − pi) ]
- L
- logaritmická ztráta; pi je pravděpodobnost „drahý“, kterou model dal bytu i, a yi ∈ {0, 1} skutečnost
- yi ln pi
- uplatní se jen u drahých bytů (y = 1): trestá, když jim model dal malou pravděpodobnost; pro p → 0 jde ln p do −∞, takže jistý a mylný model zaplatí neomezeně
- (1 − yi) ln (1 − pi)
- totéž pro levné byty (y = 0): trestá velké p. Z obou členů je vždy aktivní jen jeden — dohromady je to ln pravděpodobnosti, kterou model dal správné třídě
- 1/m ∑i
- průměr přes byty
- −
- logaritmus pravděpodobnosti je ≤ 0; minus z něj udělá kladnou ztrátu, kterou chceme zmenšovat
6. Převlek: z regrese klasifikace a zpět
Klasifikovat se dá i regresí: předpovíme cenu a řekneme „drahý“, když vyjde přes 8 milionů. Přímka podle kvadratické chyby tak určí hranici 8/0,11616 ≈ 68,9 m² (proti ideálním 8/0,11 ≈ 72,7 m²) a přesnost 73,4 % — skoro stejně jako logistická regrese. Hranice je posunutá doleva, protože přímka míří k průměru, a ten je vyšší než medián; o tom, jestli byt přesáhne 8 milionů, přitom rozhoduje medián. Tenhle převlek tedy funguje, ale model nemyslí na otázku, na kterou se ptáme.
Opačný směr je horší. Představme si, že by nám kancelář místo cen dala jen kategorie: levný (do 5 milionů), střední (5–8) a drahý (nad 8). Z kategorie se dá cena odhadnout jen hrubě — jako průměrná cena bytů v ní (3,58; 6,55; 12,61 milionu). Model naučený jen na kategoriích (pro byt předpoví nejčastější kategorii mezi byty podobné plochy) pak na nových bytech odhaduje cenu s RMSE 5,06 milionu místo 4,53. Informace, kterou zahodíme zaokrouhlením cíle, se už nevrátí. Kdykoli máme číselný cíl, je lepší učit regresi a třídy udělat až z její předpovědi.
7. Další podoby odpovědi
Svět se do dvou škatulek nevejde. Mezi klasifikací a regresí leží řada úloh, které mají vlastní modely a vlastní míry chyby:
| Úloha | Co je y | Příklad |
|---|---|---|
| binární klasifikace | jedna ze dvou tříd | spam / ne spam |
| vícetřídní klasifikace | jedna z K tříd | která číslice, jaké plemeno |
| klasifikace s více štítky | libovolná podmnožina tříd | štítky článku: sport, politika, Praha |
| ordinální regrese | uspořádané třídy | hodnocení 1–5 hvězdiček, stupeň nemoci |
| regrese počtů | celé číslo ≥ 0 | počet zákazníků za hodinu |
| kvantilová regrese | číslo, ale chceme rozpětí | „s 90% jistotou mezi 5 a 9 miliony“ |
| strukturovaný výstup | posloupnost, strom, obrázek | překlad věty, segmentace snímku |
U ordinální regrese je vidět, proč na druhu odpovědi záleží: splést si jednu hvězdičku s pěti je horší než s dvěma, ale obyčejná klasifikace by obě chyby počítala stejně. A jazykový model, který píše text slovo po slově, řeší v každém kroku klasifikaci s desítkami tisíc tříd — ze všech slov ve slovníku vybírá, které přijde dál.
Definice — softmax: logistická regrese pro K tříd
Nechť K ≥ 2 a d ≥ 1. Softmax je funkce softmax : ℝK → ΔK (rozdělení pravděpodobnosti na K třídách, viz definici pravděpodobnostního klasifikátoru výše),
softmax(s)k = esk/∑j=1K esj, k = 1, …, K.
Vícetřídní logistická regrese s parametry w1, …, wK ∈ ℝd a b1, …, bK ∈ ℝ spočte pro vstup x ∈ ℝd skóre sk(x) = wk · x + bk a předpovídá
P(Y = k | X = x) ≈ softmax(s1(x), …, sK(x))k.
Exponenciála udělá ze skóre kladná čísla a zachová jejich pořadí, dělení součtem zajistí, že se pravděpodobnosti sečtou na 1. Pro skóre (2; 1; 0): e2 ≈ 7,389, e1 ≈ 2,718, e0 = 1, součet 11,107, pravděpodobnosti 7,389/11,107 ≈ 0,665; 2,718/11,107 ≈ 0,245; 1/11,107 ≈ 0,090. Pro K = 2 (třídy označme 0 a 1 jako u logistické regrese) je to přesně sigmoida: es1/es0 + es1 = 1/1 + e−(s1 − s0) = σ(s1 − s0). Jazykový model dělá totéž s tolika třídami, kolik má slov ve slovníku.
8. Shrnutí
- Klasifikace předpovídá třídu, regrese číslo; o druhu úlohy rozhoduje otázka, ne data.
- Každý model je třeba porovnat s výchozím: průměr cen měl RMSE 5,50 milionu, nejčastější třída přesnost 52,6 %.
- Regrese podle kvadratické chyby míří k průměru, podle absolutní k mediánu; každá vyhraje ve své míře chyby.
- Klasifikátor má předpovídat pravděpodobnost; logistická regrese dosáhla přesnosti 74,0 % a z plochy víc než zhruba 74 % nevytěžíme — zbytek je Bayesova chyba.
- Regrese se dá převléct za klasifikaci, ale zaokrouhlením cíle do tříd ztratíme informaci: RMSE vzrostla z 4,53 na 5,06.
Chcete si to osahat? Nechte AI agenta stáhnout skutečné ceny bytů z vašeho města a zkuste, o kolik se zlepší předpověď, když k ploše přidáte čtvrť.
Máte na to jiný názor? Napište na support@coden-app.com.