Přeskočit na obsah
coden

Logistická regrese: sigmoida, šance a křížová entropie

Proč na třídy nestačí přímka, sigmoida a pravděpodobnost, šance a logit, křížová entropie proti kvadratické chybě, rozhodovací hranice ve dvou rozměrech, ohnutí hranice příznaky a dokonale oddělitelná data.

13 minut Matěj Žalmánek 2026-10-16

Série Základy AI Díl 49 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
  • Proč klasifikovat sigmoidou, a ne přímkou, a jak číst koeficienty jako násobky šancí.
  • Proč se logistická regrese učí křížovou entropií.
  • Proč je hranice přímka, jak ji ohnout a co se stane, když jdou třídy oddělit dokonale.

Co se hodí znát předem: Klasifikace a regrese: dvě úlohy učení s učitelem, Lineární regrese: nejmenší čtverce geometricky i maticově

Spamový filtr, předpověď, jestli zákazník odejde ke konkurenci, odhad, jestli pacient potřebuje další vyšetření — za překvapivě mnoha z nich stojí logistická regrese. Model s matoucím jménem — je to regrese, která klasifikuje. Sigmoidu, na které stojí, popsal Pierre-François Verhulst už ve 40. letech 19. století pro růst populace; jako model pro klasifikaci ji v roce 1958 zpopularizoval statistik David Cox. Nevrací jen „ano“ nebo „ne“, ale pravděpodobnost, a dá se jí rozumět. A protože jeden umělý neuron s sigmoidou je přesně logistická regrese, je to také první krok k neuronovým sítím.

Navazuje na díly Klasifikace a regrese a Lineární regrese.

1. Proč ne obyčejná přímka

Čtyřicet studentů, u každého víme, kolik hodin se učil na zkoušku a jestli ji složil (1), nebo ne (0). Složilo jich 24. Nejjednodušší nápad: proložit nuly a jedničky přímkou a říct „složí“, když přímka přesáhne 0,5.

00,51 051015202530 doba učení (hodiny) výsledek, P(složí) (0 = ne, 1 = ano)
Hodiny učení a výsledek zkoušky; svislé čárky jsou hranice 0,5 přímka přímka s dříči logistická regrese (s dříči i bez) dříči

Na prvních čtyřiceti studentech to funguje: hranice vyjde 4,15 hodiny a přímka se splete u tří studentů. Má ale dvě vady. Předpovídá čísla, která nejsou pravděpodobnosti — pro nula hodin −0,08. A hlavně ji rozhodí data, která jsou úplně v pořádku: přidáme šest dříčů, kteří se učili 22 až 32 hodin a všichni složili. Přímka se kvůli nim nakloní, aby se k nim přiblížila (pro 32 hodin předpoví 1,36), a hranice uteče na 2,56 hodiny. Na původních studentech se teď mýlí u osmi. Dříči přitom nepřinesli žádnou novou informaci — je jasné, že kdo se učí 30 hodin, složí.

Příklad — přímka nejmenšími čtverci a proč ji dříči nakloní

Přímka p̂ = a + b · h minimalizuje součet čtverců odchylek ∑ (yi − a − bhi)2. Z dílu o lineární regresi: b = ∑ (hi − h̄)(yi − ȳ)/∑ (hi − h̄)2, a = ȳ − bh̄. Hranice je tam, kde přímka protne 0,5: h* = 0,5 − a/b.

40 studentů: h̄ = 4,858 h,   ȳ = 24/40 = 0,6,   vyjde b = 0,1404 za hodinu

a = 0,6 − 0,1404 · 4,858 = −0,082   (předpověď pro nula hodin)

h* = 0,5 + 0,082/0,1404 = 4,15 h

dříč s 32 hodinami: přímka předpoví −0,082 + 0,1404 · 32 = 4,41,   čtverec odchylky (1 − 4,41)2 = 11,6

šest dříčů dohromady: 45,4,   všech 40 původních studentů dohromady: 4,11

Nejmenší čtverce sčítají čtverce odchylek, a dříči, kteří jsou „příliš správně“, by tvořili přes 90 % celé chyby. Přímce se proto vyplatí naklonit se k nim, i když tím pokazí hranici u ostatních.

2. Sigmoida: z přímky pravděpodobnost

Definice — logistická regrese

Sigmoida (logistická funkce) je funkce

σ : ℝ → (0, 1),   σ(z) = 1/1 + e−z.

Je spojitá a rostoucí, σ(0) = 0,5, σ(z) → 1 pro z → ∞ a σ(z) → 0 pro z → −∞.

Nechť d ∈ ℕ, d ≥ 1, je počet příznaků, x = (x1, …, xd) ∈ ℝd vektor příznaků jednoho příkladu a y ∈ {0, 1} jeho třída. Nechť w0 ∈ ℝ a w = (w1, …, wd) ∈ ℝd jsou váhy. Logistická regrese s vahami w0, w je model, který vektoru x přiřadí:

  1. skóre z(x) = w0 + ∑j=1d wjxj = w0 + w · x;
  2. předpovězenou pravděpodobnost třídy 1 P(y = 1 | x) = σ(z(x)),   P(y = 0 | x) = 1 − σ(z(x));
  3. předpovězenou třídu ŷ(x) = 1, právě když σ(z(x)) > 0,5, jinak ŷ(x) = 0.

Protože σ je rostoucí a σ(0) = 0,5, platí σ(z) > 0,5, právě když z > 0: model tedy předpoví třídu 1, právě když je skóre kladné.

Laicky řečeno

Přímka z může nabývat jakýchkoli hodnot, od mínus do plus nekonečna. Sigmoida ji „ohne“ do písmene S mezi 0 a 1: velká záporná z dají skoro 0, velká kladná skoro 1, a z = 0 přesně 0,5. Dříči mají z tak velké, že jejich pravděpodobnost je prakticky 1 a model s nimi nemusí nic dělat. Logistická regrese proto vyjde s dříči i bez nich stejně: hranice 3,86 hodiny, čtyři chyby na prvních čtyřiceti studentech.

σ(z) = 1/1 + e−z,   z = w0 + w1x

σ(z)
předpovězená pravděpodobnost P(y = 1 | x) — v obrázku zelená křivka; potřebujeme číslo mezi 0 a 1, ne libovolné číslo jako u přímky
1 + e−z
jmenovatel — e−z je vždy kladné, takže jmenovatel je větší než 1 a zlomek leží v (0, 1); pro velké z je e−z ≈ 0 a výsledek ≈ 1, pro velmi záporné z roste jmenovatel nade všechny meze a výsledek ≈ 0
z
skóre — obyčejná lineární funkce příznaků jako v lineární regresi; sigmoida ji jen „ohne“, takže se model dá učit a číst stejně jako přímka
w0
úsek — skóre pro x = 0; posouvá křivku doleva a doprava, a tím i hranici
w1
váha příznaku — o kolik vzroste skóre, když x vzroste o 1; určuje, jak strmé je písmeno S (a znaménkem, kterým směrem stoupá)
Hranice σ(z) = 0,5 je přesně tam, kde z = 0, tedy v x = −w0/w1.
Příklad — model studentů hodinu po hodině

Naučený model má w0 = −4,82 a w1 = 1,25, hranice je tedy −w0/w1 = 4,82/1,25 = 3,86 hodiny. Skóre z = −4,82 + 1,25 h a pravděpodobnost σ(z) pro h hodin učení (barvy podle vzorce výše):

h02462232
z−4,82−2,320,182,6822,735,2
σ(z)0,0080,0890,5450,936≈ 1≈ 1

Například pro 2 hodiny: e2,32 = 10,2, takže σ(−2,32) = 1/1 + 10,2 = 0,089. U dříčů je 1 − σ(22,7) = 1,4 · 10−10 a 1 − σ(35,2) = 5 · 10−16. Dříči tedy mají pravděpodobnost od jedničky vzdálenou o méně než miliardtinu — jejich chyba p − y je prakticky nulová, a jak uvidíme u křížové entropie, právě chyba určuje, jak silně příklad model táhne.

Na čistých datech je tedy přímka dokonce o jednu chybu lepší. Jenže logistická regrese je stabilní: body, o kterých je všechno jasné, ji nerozhodí. A vrací pravděpodobnosti, se kterými se dá dál počítat.

3. Šance a logit: jak číst koeficienty

Definice — šance a logit

Nechť A je jev s pravděpodobností p = P(A) ∈ (0, 1). Šance (odds) jevu A jsou číslo

o(p) = p/1 − p ∈ (0, ∞).

Logit je funkce

logit : (0, 1) → ℝ,   logit(p) = ln p/1 − p,

tedy logaritmus šancí. Logit je inverzní funkce k sigmoidě σ (definice výše): σ(logit(p)) = p pro každé p ∈ (0, 1) a logit(σ(z)) = z pro každé z ∈ ℝ.

Nechť w0 ∈ ℝ, w ∈ ℝd jsou váhy logistické regrese, x ∈ ℝd a p = P(y = 1 | x) = σ(w0 + w · x). Pak

logit(p) = w0 + w1x1 + … + wdxd   a   o(p) = ew0 + w · x,

takže logistická regrese je lineární model pro logit. Zvětší-li se jeden příznak xj o 1 a ostatní zůstanou stejné, vzroste skóre o wj a šance se vynásobí číslem ewj.

Laicky řečeno

Šance znají sázkaři: „tři ku jedné“ znamená pravděpodobnost 75 %. U nás vyšlo w1 = 1,25, takže každá hodina učení navíc vynásobí šance na složení e1,25 ≈ 3,49krát. Student s šancemi 1 : 1 (50 %) má po hodině navíc šance 3,5 : 1 (78 %), po dvou hodinách 12 : 1 (92 %). V pravděpodobnostech hodina přidá různě moc — v šancích vždy stejně.

ln p/1 − p = w0 + w1x

p/1 − p
šance — kolikrát je „ano“ pravděpodobnější než „ne“; na rozdíl od p nejsou shora omezené (leží v (0, ∞)), takže se dají násobit bez obav, že přetečou přes 1
ln
logaritmus — natáhne (0, ∞) na celou reálnou osu, takže se levá strana může rovnat přímce; a násobení mění na sčítání, proto přičtení w1 k logitu znamená násobení šancí
w0
logit pro x = 0 — u studentů −4,82, tedy šance e−4,82 ≈ 0,008 pro toho, kdo se neučil vůbec
w1
o kolik vzroste logit za jednotku x — u studentů 1,25 za hodinu, tedy šance krát e1,25 = 3,49
Totéž co p = σ(w0 + w1x): z p = 1/1 + e−z plyne e−z = 1 − p/p, a tedy z = ln p/1 − p.

šance 1 : 1  →  po hodině 1 · 3,49 = 3,49 : 1,   p = 3,49/1 + 3,49 = 0,78

po dvou hodinách 3,492 = 12,2 : 1,   p = 12,2/1 + 12,2 = 0,92   (z šancí s je pravděpodobnost s/1 + s; barvou jsou šance p/1 − p ze vzorce výše, 3,49 = ew1)

4. Křížová entropie: co model minimalizuje

Lineární regresi jsme učili nejmenšími čtverci. Mohli bychom i tady minimalizovat (p − y)2? Mohli, ale je to špatný nápad.

Definice — křížová entropie (logaritmická ztráta)

Nechť n ∈ ℕ, n ≥ 1, je počet příkladů, y1, …, yn ∈ {0, 1} jsou jejich skutečné třídy a p1, …, pn ∈ (0, 1) předpovězené pravděpodobnosti třídy 1 (pi = P(yi = 1 | xi)). Křížová entropie (logaritmická ztráta) je číslo

L = −1/n ∑i=1n [yi ln pi + (1 − yi) ln(1 − pi)].

U logistické regrese je pi = σ(w0 + w · xi), kde xi ∈ ℝd jsou příznaky i-tého příkladu, takže L = L(w0, w) je funkce vah. Platí:

  1. věrohodnost vah pro Bernoulliho rozdělení tříd je ∏i=1n piyi(1 − pi)1 − yi a L je minus n-tina jejího logaritmu; minimalizace L je proto totéž co metoda maximální věrohodnosti;
  2. L je konvexní funkce vah a její parciální derivace jsou ∂L/∂wj = 1/n ∑i=1n (pi − yi) xij pro j = 0, …, d, kde xi0 = 1 (věta níže).
Laicky řečeno

Model platí −ln p za každý příklad, kde p je pravděpodobnost, kterou dal skutečnosti. Řekl-li 90 % a měl pravdu, zaplatí 0,1. Řekl-li 1 % a mýlil se, zaplatí 4,6. Sebevědomý omyl je drahý — a čím sebevědomější, tím dražší, bez horní hranice. Gradient vypadá stejně jako u lineární regrese: chyba krát příznak.

L(w) = − 1/n ∑i [ yi ln pi + (1 − yi) ln(1 − pi) ]

−
logaritmus pravděpodobnosti je záporný (nebo nula); minus z něj udělá kladnou cenu, kterou chceme co nejmenší
1/n ∑i
průměr přes všechny příklady — každý příklad váží stejně a ztráta nezávisí na tom, kolik dat máme
yi ln pi
platí jen pro ty, kdo složili (yi = 1, v obrázcích červené body): cena −ln pi za to, jak málo model věřil skutečnému „ano“
(1 − yi) ln(1 − pi)
platí jen pro ty, kdo nesložili (yi = 0, modré body): cena −ln(1 − pi), protože 1 − pi je pravděpodobnost, kterou model dal „ne“
Protože yi je 0, nebo 1, je v hranaté závorce vždy jen jeden sčítanec nenulový: model zaplatí −ln pravděpodobnosti, kterou přiřadil tomu, co se skutečně stalo.
Věta — gradient křížové entropie je „chyba krát příznak“

Nechť n, d ∈ ℕ, n, d ≥ 1, a pro i = 1, …, n nechť xi = (xi0, xi1, …, xid) ∈ ℝd+1 s xi0 = 1 (sloupec jedniček pro úsek) a yi ∈ {0, 1}. Pro váhy w = (w0, …, wd) ∈ ℝd+1 nechť pi = σ(w · xi) a L(w) je křížová entropie (definice výše). Pak pro každé j = 0, …, d platí

∂L/∂wj(w) = 1/n ∑i=1n (pi − yi) xij

a L je konvexní funkce na ℝd+1.

Důkaz (pro jeden příklad, řetízkovým pravidlem; ℓ = −[y ln p + (1 − y) ln(1 − p)], p = σ(z), z = w · x):

dℓ/dp = −y/p + 1 − y/1 − p = p − y/p(1 − p)

dp/dz = e−z/(1 + e−z)2 = σ(z) (1 − σ(z)) = p(1 − p)

∂z/∂wj = xj

∂ℓ/∂wj = p − y/p(1 − p) · p(1 − p) · xj = (p − y) xj

Sečtením přes i = 1, …, n a vydělením n dostaneme vzorec pro ∂L/∂wj. Člen p(1 − p) se pokrátí — to je celé kouzlo dvojice sigmoida + křížová entropie. Konvexita plyne z druhých derivací: Hessova matice 1/n ∑i=1n pi(1 − pi) xixiT je pozitivně semidefinitní, protože každá matice xixiT je pozitivně semidefinitní a všechny váhy pi(1 − pi) jsou kladné. ∎

∂L/∂wj = 1/n ∑i (pi − yi) · xij

∂L/∂wj
jak se ztráta změní, když pohneme váhou wj — gradientní sestup jde opačným směrem
1/n ∑i
průměr přes příklady — každý příklad „tahá“ za váhy svým dílem, gradient je jejich průměrný tah
pi − yi
chyba předpovědi — znaménkem říká, jestli model přestřelil, nebo podstřelil, a velikostí, o kolik; kde model trefil (dříči), je nulová a příklad netáhne vůbec
xij
hodnota příznaku — váha wj se na chybě podílela tím víc, čím větší byl její příznak; pro úsek w0 je xi0 = 1
Stejný tvar jako u lineární regrese s kvadratickou chybou — jen pi je teď sigmoida.

Dříč s 22 hodinami má chybu p − y = −1,4 · 10−10 a k parciální derivaci podle w1 přispěje (p − y) · 22 = −3 · 10−9 (barvy podle vzorce výše); ten s 32 hodinami −1,7 · 10−14. Čtyřicet původních studentů přispívá v absolutních hodnotách dohromady 22,4, průměrně 0,56 na studenta. Proto dříči logistickou regresi nerozhodí: tahají za ni víc než stomilionkrát slaběji.

def uc_logistickou(X, y, eta=0.1, kroku=1000, lam=0.0):
    # X má v prvním sloupci jedničky, takže w[0] je úsek w0
    n, d = len(X), len(X[0])
    w = [0.0] * d
    for _ in range(kroku):
        g = [0.0] * d
        for x_i, y_i in zip(X, y):
            p = sigmoida(skal(w, x_i))          # předpověď
            for j in range(d):
                g[j] += (p - y_i) * x_i[j] / n  # chyba krát příznak
        for j in range(1, d):
            g[j] += lam * w[j]                  # L2 trest; úsek se netrestá
        w = [w[j] - eta * g[j] for j in range(d)]
    return w

Tímhle sestupem je spočtená tabulka v posledním oddílu. Ostatní modely v dílu počítáme Newtonovou metodou, která místo pevného kroku η použije i druhé derivace a minimum najde za osm až devět kroků; protože je ztráta konvexní, je to totéž minimum.

Porovnejme obě ztráty na jednom parametru: hranici necháme v 5 hodinách a měníme jen strmost w modelu p = σ(w · (hodiny − 5)).

0369 −4−20246 strmost w (1 / hodina) křížová entropie (nat) 00,30,60,9 −4−20246 strmost w (1 / hodina) kvadratická chyba MSE (0–1)
Dvě ztráty podle strmosti w

Křížová entropie je jedno hladké údolí — konvexní, takže gradientní sestup najde minimum odkudkoli. Kvadratická chyba konvexní není (mění se v ní zakřivení) a vpravo je skoro plochá: pro w = 1 je 0,100, pro w = 2 také 0,100. A model, který je si úplně jistý opakem pravdy (w = −3), dostane od kvadratické chyby trest jen 0,83, kdežto od křížové entropie 6,39 — a s ním i silný gradient, který ho z omylu vytáhne.

Příklad — sebevědomý omyl u jednoho studenta

Student se učil 9 hodin a složil (y = 1); model s w = −3 mu dá z = −3 · (9 − 5) = −12.

p = σ(−12) = 1/1 + e12 = 6,1 · 10−6   (barvy podle vzorce sigmoidy výše)

křížová entropie: −ln p = 12,0   ·   kvadratická chyba: (p − 1)2 = 1,00   (víc nikdy nedá)

derivace podle z — křížová entropie: p − y = −1,00

derivace podle z — kvadratická chyba: 2(p − y) · p(1 − p) = −1,2 · 10−5

U kvadratické chyby se člen p(1 − p) z derivace sigmoidy nepokrátí, a když je model sebevědomý, je skoro nulový. Gradient je tak zhruba 80 000krát slabší než u křížové entropie — model o svém omylu „neví“.

5. Rozhodovací hranice ve dvou rozměrech

S více příznaky se nic zásadního nemění. Přijímačky na střední školu: 300 uchazečů, body z matematiky a z češtiny (0–100), přijato 57.

2020404060608080100100 matematika (body, 0–100) čeština (body, 0–100)
Přijímačky: barva pozadí = pravděpodobnost přijetí, čára = hranice 0,5

Hranice z = 0 je v rovině přímka, ve třech rozměrech rovina a obecně nadrovina — logistická regrese je lineární klasifikátor. Pravděpodobnost se mění jen kolmo k hranici: na rovnoběžkách s ní je všude stejná. Deset bodů z matematiky navíc vynásobí šance na přijetí 2,45krát, deset bodů z češtiny 1,68krát (generátor dat měl 2,72 a 1,82). Přesnost je 88,7 % proti 81,0 % u modelu, který neřekne „přijat“ nikomu.

Definice — rozhodovací hranice lineárního klasifikátoru

Nechť d ∈ ℕ, d ≥ 1, w0 ∈ ℝ a w = (w1, …, wd) ∈ ℝd, w ≠ 0. Lineární klasifikátor s vahami w0, w je model se skóre

z : ℝd → ℝ,   z(x) = w0 + w · x = w0 + ∑j=1d wjxj,

který bodu x ∈ ℝd předpoví třídu 1, právě když z(x) > 0 (logistická regrese je takový model). Jeho rozhodovací hranice je množina

H = {x ∈ ℝd : w0 + w · x = 0}.

U logistické regrese je tedy x ∈ H, právě když σ(z(x)) = 0,5. Množina H je nadrovina kolmá k vektoru vah w: posun bodu x o vektor v ∈ ℝd změní skóre o z(x + v) − z(x) = w · v, a to je nula, právě když v ⊥ w. Proto je pravděpodobnost na nadrovinách rovnoběžných s hranicí všude stejná a nejrychleji se mění ve směru w.

Příklad — hranice přijímaček

Naučený model: z = −10,8647 + 0,089673 · m + 0,052169 · č (m, č jsou body z matematiky a češtiny).

hranice z = 0:   č = 10,8647 − 0,089673 · m/0,052169

m = 70:   č = 10,8647 − 6,2771/0,052169 = 87,9;   m = 90:   č = 53,6

bod z matematiky vyváží 0,089673/0,052169 = 1,72 bodu z češtiny

deset bodů navíc:   e0,89673 = 2,45,   e0,52169 = 1,68

Uchazeč se 70 body z matematiky a 87,9 z češtiny má podle modelu pravděpodobnost přijetí přesně 50 % (šance 1 : 1). Generátor dat měl váhy 0,1 a 0,06, tedy násobky e1 = 2,72 a e0,6 = 1,82 — model je z 300 uchazečů odhadl jen přibližně.

6. Když hranice nemá být přímka

Někdy jedna třída leží uvnitř druhé. Body ve čtverci, třída 1 (28 % bodů) uvnitř kruhu, a pro realismus u 5 % bodů prohozený štítek.

−1−10011 příznak x₁ (bez jednotky) příznak x₂ (bez jednotky) příznaky x₁, x₂ −1−10011 příznak x₁ (bez jednotky) příznak x₂ (bez jednotky) navíc x₁², x₂², x₁x₂
Kruhová data: lineární a kvadratické příznaky

S příznaky x1, x2 žádná přímka kruh neoddělí; model rezignuje a má přesnost 72 % — přesně tolik, kolik dá „vždycky třída 0“. Stačí přidat příznaky x12, x22 a x1x2, stejně jako v dílu o nelineární regresi: hranice je teď elipsa a přesnost 95 %, víc se s pěti procenty prohozených štítků čekat nedá. Model je pořád lineární ve vahách — ohnuli jsme prostor, ne model. Neuronové sítě dělají totéž, jen si vhodné příznaky najdou samy.

Příklad — proč je hranice elipsa

S kvadratickými příznaky se model naučil skóre

z = 3,95 − 0,03 x1 + 0,85 x2 − 9,13 x12 − 13,78 x22 − 4,34 x1x2

Hranice z = 0 je kuželosečka Ax12 + Bx1x2 + Cx22 + … = 0, a ta je elipsa, když B2 − 4AC < 0:

B2 − 4AC = 4,342 − 4 · (−9,13) · (−13,78) = 18,8 − 503,2 = −484 < 0

uprostřed: z(0, 0) = 3,95,   σ(3,95) = 0,98;   obě kvadratické váhy záporné, takže směrem ven skóre klesá

Skutečná hranice je kruh (A = C, B = 0); ze 200 bodů s prohozenými štítky ji model odhadl jako mírně protaženou a natočenou elipsu.

7. Když jdou třídy oddělit dokonale

Paradoxně nejvíc potíží dělají data, která jsou „příliš dobrá“. Deset studentů: všichni, kdo se učili víc než 5 hodin, složili, a nikdo jiný.

Definice — lineárně oddělitelná data

Nechť n, d ∈ ℕ, n, d ≥ 1, a (x1, y1), …, (xn, yn) jsou příklady, xi ∈ ℝd, yi ∈ {0, 1}. Data jsou lineárně oddělitelná, právě když existují w0 ∈ ℝ a w ∈ ℝd takové, že pro všechna i = 1, …, n platí

  1. yi = 1 ⇒ w0 + w · xi > 0,
  2. yi = 0 ⇒ w0 + w · xi < 0.

Slovy: existuje nadrovina {x : w0 + w · x = 0}, která obě třídy odděluje bez chyby a žádný bod na ní neleží.

Pro taková data nemá logistická regrese bez regularizace řešení: křížová entropie je pro všechny váhy kladná (všechna pi leží v (0, 1)), ale pro oddělující váhy vynásobené číslem c > 0 jde k nule, když c → ∞. Minimum se tedy nenabývá a ztráta klesá k nule, jen když norma vah roste nade všechny meze.

Laicky řečeno

Hranici model najde hned. Ale pak zjistí, že může být ještě jistější: strmější sigmoida dá všem studentům pravděpodobnost blíž 0 nebo 1 a ztráta ještě klesne. A tak strmost zvyšuje pořád dál, až z písmene S udělá schod. Model, který tvrdí „4,9 hodiny = jistě nesloží, 5,1 hodiny = jistě složí“, je přesvědčený víc, než data opravňují.

Kroků gradientního sestupu101001 00010 000
váha u hodin, bez regularizace0,631,784,067,94
křížová entropie0,2800,0980,0270,004
váha u hodin, L2 s λ = 0,010,621,702,782,84

Bez regularizace váha roste dál, jen čím dál pomaleji, a s ní jistota modelu. Malá hřebenová regularizace z dílu o přeučení přidá trest za velké váhy a růst zastaví u 2,84. Proto se v knihovnách logistická regrese s regularizací pouští automaticky.

Lλ(w) = L(w) + λ · ½ w12

Lλ(w)
to, co sestup v tabulce minimalizuje ve třetím řádku
L(w)
křížová entropie — odměňuje jistotu na trénovacích datech; na oddělitelných datech klesá k nule, jen když w1 → ∞
λ
síla trestu (tady 0,01) — určuje, kolik ztráty jsme ochotni obětovat za menší váhy
½
jen pro pohodlí: derivace trestu je pak přesně λw1, v pseudokódu výše řádek g[j] += lam * w[j]
w12
trest roste se čtvercem váhy, takže se s rostoucí w1 přitvrzuje, kdežto zisk z dalšího zostření sigmoidy slábne; úsek w0 se netrestá, protože jen posouvá hranici
Minimum je tam, kde se tah ztráty a tah trestu vyrovnají: ∂L/∂w1 + λw1 = 0. Bez trestu taková rovnováha neexistuje: u našich deseti studentů (příznak h − 5) má každý sčítanec (pi − yi)(hi − 5) záporné znaménko, takže ∂L/∂w1 < 0 pro jakékoli váhy.

8. Shrnutí

  • Přímka proložená nulami a jedničkami předpovídá nesmysly mimo [0, 1] a rozhodí ji i správná data: šest dříčů posunulo hranici ze 4,15 na 2,56 hodiny.
  • Logistická regrese pošle lineární kombinaci příznaků sigmoidou; dříčům nevěnuje pozornost a hranice zůstala na 3,86 hodiny.
  • Koeficient je logaritmus násobku šancí: hodina učení vynásobí šance na složení 3,49krát.
  • Učí se minimalizací křížové entropie, která je konvexní a sebevědomé omyly trestá tvrdě; kvadratická chyba je plochá a nekonvexní.
  • Hranice je přímka (nadrovina); kvadratické příznaky ji ohnou a na kruhu zvedly přesnost ze 72 % na 95 %.
  • Na dokonale oddělitelných datech váhy rostou bez konce; regularizace je zastaví.

Chcete si to osahat? Nechte AI agenta naučit logistickou regresi na vašich e-mailech — příznaky třeba počet odkazů, vykřičníků a slov „zdarma“ — a podívejte se, který příznak násobí šance spamu nejvíc.

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