Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
Informácia ako prekvapenie, entropia a Huffmanov kód, krížová entropia, KL divergencia a informačný zisk — a prečo je stratová funkcia jazykových modelov krížová entropia.
Séria Základy AI Diel 20 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo je informácia a entropia, prečo sa merajú v bitoch a prečo je entropia hranicou kompresie.
- Čo meria krížová entropia a KL divergencia a prečo je ich minimum tam, kde model hovorí pravdu.
- Prečo je krížová entropia stratovou funkciou klasifikátorov a jazykových modelov a čo je perplexita.
Čo sa hodí vedieť vopred: Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
Keď trénujete klasifikátor alebo jazykový model, takmer určite minimalizujete „krížovú entropiu“. Odkiaľ sa to slovo vzalo? Z teórie informácie, ktorú v roku 1948 založil Claude Shannon, keď riešil, ako čo najúspornejšie posielať správy po telefónnej linke. Ukázalo sa, že otázka „koľko bitov potrebujem“ a otázka „ako dobre model predpovedá“ sú jedna a tá istá. Týmto dielom sa končí modul o pravdepodobnosti a štatistike.
Nadväzuje na diely Prehľad rozdelení a Štatistika a odhady.
1. Informácia ako prekvapenie
Definícia — informácia javu
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A ∈ 𝓕 jav s pravdepodobnosťou p = P(A) > 0. Informácia (vlastná informácia) javu A je číslo
I(p) = −log2 p bitov.
Informácia teda závisí len od pravdepodobnosti javu; I chápeme ako funkciu I : (0, 1] → [0, ∞). Jednotkou je bit (pri prirodzenom logaritme by to bol nat). Čím menšie je p, tým väčšie je I(p), a I(1) = 0.
Informácia meria prekvapenie. To, že ráno vyšlo slnko, vás neprekvapí — nula bitov. Hod mincou nesie 1 bit, hod kockou log2 6 ≈ 2,585 bitu a jav so šancou 1 : 1024 celých 10 bitov. Logaritmus zaistí, že informácie nezávislých javov sa sčítavajú: dve mince sú 2 bity.
Bit je informácia jednej otázky áno/nie s férovou odpoveďou. Číslo od 1 do 1024 uhádnete na 10 otázok („je väčšie ako 512?“…) — práve preto, že každá odpoveď nesie 1 bit a log2 1024 = 10.
I(p) = −log2 p
- −
- pre p ≤ 1 je logaritmus záporný alebo nulový; mínus z neho urobí nezáporné číslo, ktoré s klesajúcim p rastie
- log
- premení násobenie pravdepodobností nezávislých javov na sčítanie informácií: log(pq) = log p + log q
- 2
- základ určuje jednotku: s dvojkou je jednotkou bit, odpoveď na jednu férovú otázku áno/nie (s e by to bol nat)
- p
- pravdepodobnosť javu — čím menšia, tým viac nás jav prekvapí
Veta — informácie nezávislých javov sa sčítavajú
Nech (Ω, 𝓕, P) je pravdepodobnostný priestor a A, B ∈ 𝓕 sú nezávislé javy s pravdepodobnosťami p = P(A) > 0 a q = P(B) > 0. Potom P(A ∩ B) = pq a
I(pq) = I(p) + I(q).
Dôkaz. Z nezávislosti P(A ∩ B) = pq a I(pq) = −log2 (pq) = −log2 p − log2 q = I(p) + I(q). ∎
Naopak: nech J : (0, 1] → ℝ je spojitá funkcia taká, že J(pq) = J(p) + J(q) pre všetky p, q ∈ (0, 1]. Potom existuje c ∈ ℝ, že J(p) = −c log2 p pre všetky p ∈ (0, 1] (substitúciou p = 2−t dostaneme Cauchyho funkcionálnu rovnicu g(s + t) = g(s) + g(t) pre spojitú g na [0, ∞), ktorej jediným riešením je g(t) = ct). Požiadavka J(1/2) = 1 dá c = 1. Logaritmus teda nie je ľubovôľa — je to jediná spojitá miera prekvapenia, ktorá sa pri nezávislých javoch sčítava.
Príklad: kocka a minca zároveň, p = 1/6 · 1/2 = 1/12: I = log2 12 ≈ 3,585 = 2,585 + 1 bitu.
2. Entropia
Definícia — entropia
Nech X je diskrétna náhodná premenná s konečnou alebo spočítateľnou množinou hodnôt 𝒳 a pravdepodobnostnou funkciou p : 𝒳 → [0, 1], p(x) = P(X = x). Entropia premennej X je
H(X) = −∑x ∈ 𝒳 p(x) log2 p(x),
kde člen s p(x) = 0 berieme ako 0 (0 · log2 0 := 0, čo je limita t log2 t pre t → 0+). Pre spočítateľnú 𝒳 môže byť súčet +∞. Ekvivalentne H(X) = E[I(p(X))], stredná hodnota informácie výsledku. Keďže H(X) závisí len od rozdelenia p, píšeme aj H(p).
Priemerné prekvapenie — nakoľko je výsledok neistý. Férová minca má entropiu 1 bit, minca, ktorá padá lícom v 90 % prípadov, len 0,469 bitu: takmer vždy viete, čo padne. Kocka má 2,585 bitu.
H(X) = ∑x p(x) · (−log2 p(x))
- ∑x
- cez všetky možné výsledky — entropia je vlastnosť celého rozdelenia, nie jedného javu
- p(x)
- váha: ako často výsledok nastane; časté výsledky do priemeru prispievajú viac
- −log2 p(x)
- prekvapenie z výsledku x, informácia z predchádzajúcej časti; zriedkavé výsledky prekvapia veľmi, ale prichádzajú zriedka
Príklad — entropia mince s 90 % líc
Pre premennú s dvoma hodnotami s pravdepodobnosťami p a 1 − p (p ∈ [0, 1]) má entropia tvar h(p) = −p log2 p − (1 − p) log2 (1 − p) (binárna entropia, krivka nižšie).
h(0,9) = 0,9 · (−log2 0,9) + 0,1 · (−log2 0,1) = 0,9 · 0,152 + 0,1 · 3,322 = 0,137 + 0,332 = 0,469 bitu (farby podľa vzorca vyššie).
Väčšinu entropie dodá zriedkavý znak: prekvapí za 3,32 bitu, hoci len v desatine hodov.
Veta — hranice entropie
Nech X je diskrétna náhodná premenná s konečnou množinou hodnôt 𝒳, |𝒳| = n ≥ 1, a pravdepodobnostnou funkciou p. Potom
0 ≤ H(X) ≤ log2 n,
pričom
- H(X) = 0 práve vtedy, keď existuje x ∈ 𝒳 s p(x) = 1 (výsledok je istý);
- H(X) = log2 n práve vtedy, keď p(x) = 1/n pre všetky x ∈ 𝒳 (rozdelenie je rovnomerné).
Dôkaz. Každý člen −p(x) log2 p(x) je pre p(x) ∈ [0, 1] nezáporný a nulový len pre p(x) ∈ {0, 1}; súčet je teda nulový práve vtedy, keď všetky p(x) sú 0 alebo 1, t. j. jedno z nich je 1. Horná hranica a podmienka rovnosti vyplývajú z Gibbsovej nerovnosti nižšie pre rovnomerné q(x) = 1/n: H(p) ≤ H(p, q) = −∑ p(x) log2 1/n = log2 n, s rovnosťou práve pre p = q. ∎
Najmenej neistoty je, keď je výsledok istý; najviac, keď sú všetky možnosti rovnako pravdepodobné. Preto je vrchol krivky presne v p = 0,5.
3. Entropia ako dĺžka kódu
Definícia — bezprefixový kód a priemerná dĺžka
Nech 𝒳 je konečná neprázdna množina symbolov a {0, 1}+ množina všetkých neprázdnych konečných slov z núl a jednotiek. Binárny kód je zobrazenie C : 𝒳 → {0, 1}+; slovo C(x) je kódové slovo symbolu x a ℓ(x) ∈ ℕ jeho dĺžka (počet znakov).
- Kód C je bezprefixový práve vtedy, keď pre všetky x, y ∈ 𝒳, x ≠ y, nie je C(x) začiatkom (prefixom) C(y), t. j. neexistuje slovo w (ani prázdne) s C(y) = C(x)w.
- Kód C je jednoznačne dekódovateľný práve vtedy, keď je prosté jeho rozšírenie na správy C(x1x2…xm) = C(x1)C(x2)…C(xm) (zreťazenie), m ≥ 1 — rôzne správy dajú rôzne postupnosti bitov. Každý bezprefixový kód je jednoznačne dekódovateľný: správu možno dekódovať zľava bez oddeľovačov.
- Nech p je rozdelenie pravdepodobnosti na 𝒳. Priemerná dĺžka kódu C je L(C) = ∑x ∈ 𝒳 p(x) ℓ(x).
Veta — Kraftova nerovnosť
Nech 𝒳 je konečná neprázdna množina a ℓ : 𝒳 → ℕ, ℓ(x) ≥ 1, predpísané dĺžky. Bezprefixový binárny kód C s dĺžkami slov ℓ(x), x ∈ 𝒳, existuje práve vtedy, keď
∑x ∈ 𝒳 2−ℓ(x) ≤ 1.
Krátke slová sú drahé: slovo dĺžky 1 zaberie polovicu všetkých možných pokračovaní, slovo dĺžky 2 štvrtinu. Rozpočet je 1 a nedá sa prečerpať. Odtiaľ vyplýva Shannonova veta — dĺžky ℓ(x) = −log2 p(x) rozpočet presne vyčerpajú a priemerná dĺžka sa potom rovná entropii.
Veta — Shannonova veta o kódovaní zdroja
Nech 𝒳 je konečná množina s aspoň dvoma prvkami a p rozdelenie pravdepodobnosti na 𝒳 s p(x) > 0 pre všetky x ∈ 𝒳. Potom
- každý jednoznačne dekódovateľný binárny kód C pre 𝒳 má priemernú dĺžku L(C) ≥ H(p);
- existuje bezprefixový binárny kód C pre 𝒳 s L(C) < H(p) + 1 (stačia dĺžky ℓ(x) = ⌈−log2 p(x)⌉, ktoré spĺňajú Kraftovu nerovnosť).
Entropia je hranica kompresie: správu nemožno zakódovať do menej bitov, než koľko je jej entropia. Častým symbolom dáte krátke kódy, zriedkavým dlhé — ako Morseova abeceda, kde najčastejšie písmeno E je jediná bodka.
Štyri písmená A, B, C, D s pravdepodobnosťami 1/2, 1/4, 1/8, 1/8 majú entropiu 1,75 bitu. Pevný kód potrebuje 2 bity na písmeno. Huffmanov kód (0, 10, 110, 111) má priemernú dĺžku 1/2 · 1 + 1/4 · 2 + 2 · 1/8 · 3 = 1,75 bitu — presne entropiu. Správa ABACABAD sa tak zmestí do 14 bitov namiesto 16:
Kód 0, 10, 110, 111 má dĺžky 1, 2, 3, 3 — presne −log2 pravdepodobností 1/2, 1/4, 1/8, 1/8. Kraftov súčet 1/2 + 1/4 + 1/8 + 1/8 = 1: rozpočet je vyčerpaný do posledného bitu. Taký kód nájde Huffmanov algoritmus:
huffman(symboly s pravdepodobnosťami):
každý symbol je samostatný strom
kým zostáva viac než jeden strom:
vezmi dva stromy s najmenšou pravdepodobnosťou # najzriedkavejšie dostanú najdlhší kód
spoj ich pod nový uzol: ľavý dostane 0, pravý 1
pravdepodobnosť uzla = súčet oboch
kód symbolu = cesta od koreňa k nemu
Príklad — Huffman pre A, B, C, D
- Spoja sa dva najmenšie: 1/8 + 1/8 = 1/4.
- Spoja sa dva najmenšie: 1/4 + 1/4 = 1/2.
- Spoja sa dva najmenšie: 1/2 + 1/2 = 1 (koreň).
Cesty od koreňa: A = 0, B = 10, C = 110, D = 111. Každé zlúčenie predĺži kód všetkých symbolov v oboch spojených stromoch o jeden bit — preto C a D, spojené ako prvé, majú kód najdlhší.
4. Krížová entropia
Definícia — krížová entropia
Nech 𝒳 je konečná neprázdna množina, p : 𝒳 → [0, 1] skutočné rozdelenie pravdepodobnosti a q : 𝒳 → [0, 1] rozdelenie podľa modelu, pričom q(x) > 0 pre každé x s p(x) > 0. Krížová entropia rozdelenia q vzhľadom na p je
H(p, q) = −∑x ∈ 𝒳, p(x) > 0 p(x) log2 q(x).
Je to stredná hodnota prekvapenia modelu −log2 q(X), keď X má skutočné rozdelenie p. (Keby q(x) = 0 pre nejaké x s p(x) > 0, kladie sa H(p, q) = +∞.) Pre q = p je H(p, p) = H(p).
Priemerný počet bitov, keď dáta prichádzajú podľa p, ale kód ste navrhli podľa modelu q. Inými slovami: nakoľko vás model v priemere prekvapuje. Prší v 70 % dní; model, ktorý tvrdí „50 : 50“, platí 1 bit za deň, kým správny model len 0,881 bitu.
H(p, q) = ∑x p(x) · (−log2 q(x))
- ∑x
- cez všetky výsledky, ktoré môžu nastať
- p(x)
- ako často výsledok skutočne nastáva — váhy dáva realita, pretože priemerujeme cez dáta, ktoré naozaj prídu
- −log2 q(x)
- ako veľmi výsledok prekvapí model (a koľko bitov mu dá kód navrhnutý podľa modelu); kde model dá malú pravdepodobnosť niečomu častému, platí veľa
Príklad — tri predpovede dažďa
Skutočnosť: prší s p = 0,7, teda p(dážď) = 0,7 a p(sucho) = 0,3. Model „q“ dáva dažďu pravdepodobnosť q a suchu 1 − q. Farby podľa vzorca vyššie:
- Model 0,5: H = 0,7 · 1 + 0,3 · 1 = 1 bit.
- Model 0,7: H = 0,7 · 0,515 + 0,3 · 1,737 = 0,881 bitu — to je entropia H(p).
- Model 0,9: H = 0,7 · 0,152 + 0,3 · 3,322 = 0,106 + 0,997 = 1,103 bitu.
Prehnane istý model je tu horší než nerozhodný: suché dni (30 %) ho prekvapia za 3,32 bitu.
Veta — Gibbsova nerovnosť
Nech 𝒳 je konečná neprázdna množina a p, q rozdelenia pravdepodobnosti na 𝒳 také, že q(x) > 0 pre každé x s p(x) > 0. Potom
H(p, q) ≥ H(p),
s rovnosťou práve vtedy, keď q(x) = p(x) pre všetky x ∈ 𝒳.
Dôkaz. Využijeme ln t ≤ t − 1 pre t > 0 (rovnosť len pre t = 1) a log2 t = ln t/ln 2. Sčítame cez x s p(x) > 0:
H(p) − H(p, q) = ∑ p(x) log2 q(x)/p(x) ≤ 1/ln 2 ∑ p(x) (q(x)/p(x) − 1) = 1/ln 2 (∑ q(x) − 1) ≤ 0,
kde posledný súčet je len cez x s p(x) > 0, a je preto najviac 1. Rovnosť v prvej nerovnosti nastane práve vtedy, keď q(x)/p(x) = 1 pre všetky x s p(x) > 0; potom je ∑ q(x) cez tieto x rovný 1, platí rovnosť aj v druhej a q je mimo nich nulové, teda q = p. ∎
Zlý model vás vždy stojí bity navyše. Najmenej prekvapenia dosiahnete len so správnym rozdelením — a preto má zmysel krížovú entropiu minimalizovať: minimum je tam, kde model hovorí pravdu.
5. KL divergencia
Definícia — Kullbackova–Leiblerova divergencia
Nech 𝒳 je konečná neprázdna množina a p, q rozdelenia pravdepodobnosti na 𝒳 také, že q(x) > 0 pre každé x s p(x) > 0. Kullbackova–Leiblerova divergencia rozdelenia q od p je
DKL(p ‖ q) = ∑x ∈ 𝒳, p(x) > 0 p(x) log2 p(x)/q(x).
Rozpísaním log2 p(x)/q(x) = −log2 q(x) − (−log2 p(x)) vyjde DKL(p ‖ q) = H(p, q) − H(p), takže podľa Gibbsovej nerovnosti DKL(p ‖ q) ≥ 0, s rovnosťou práve pre q = p.
Koľko bitov navyše platíte za to, že používate model q namiesto skutočnosti p — tá oranžová úsečka na obrázku. Model „50 : 50“ pre dážď v 70 % dní stojí 1 − 0,881 = 0,119 bitu navyše, model „90 % dážď“ dokonca 0,222 bitu. Podľa Gibbsovej nerovnosti je KL divergencia vždy nezáporná a nulová len pre q = p.
DKL(p ‖ q) = ∑x p(x) · log2 p(x)/q(x)
- p(x)
- váhy zo skutočnosti — chyby modelu na častých výsledkoch bolia viac; preto záleží na poradí argumentov
- log2 p(x)/q(x)
- = (−log2 q(x)) − (−log2 p(x)): o koľko bitov viac nás výsledok x stojí s modelom než so skutočnosťou; kladné tam, kde model výsledok podcenil, záporné, kde ho precenil
Pozor, KL divergencia nie je vzdialenosť: nie je symetrická. Ak pri dvoch výsledkoch (dážď, sucho) píšeme namiesto rozdelenia len pravdepodobnosť dažďa, je DKL(0,7 ‖ 0,5) = 0,119, ale DKL(0,5 ‖ 0,7) = 0,126. Záleží na tom, čo je skutočnosť a čo model.
Príklad — prečo KL divergencia nie je symetrická
Farby podľa vzorca vyššie.
DKL(0,7 ‖ 0,5) = 0,7 · log2 0,7/0,5 + 0,3 · log2 0,3/0,5 = 0,340 − 0,221 = 0,119.
DKL(0,5 ‖ 0,7) = 0,5 · log2 0,5/0,7 + 0,5 · log2 0,5/0,3 = −0,243 + 0,368 = 0,126.
Kladný člen je zakaždým ten, kde model niečo podceňuje: v prvom prípade dážď pomerom 0,7/0,5 = 1,4, v druhom sucho pomerom 0,5/0,3 ≈ 1,67. Druhé podcenenie je hrubšie, a tak stojí viac bitov. Vymeniť skutočnosť a model teda výsledok mení.
6. Informačný zisk
Definícia — podmienená entropia
Nech X a Y sú diskrétne náhodné premenné na tom istom pravdepodobnostnom priestore s konečnými množinami hodnôt 𝒳 a 𝒴. Pre x ∈ 𝒳 s P(X = x) > 0 je entropia podmieneného rozdelenia Y pri X = x
H(Y | X = x) = −∑y ∈ 𝒴 P(Y = y | X = x) log2 P(Y = y | X = x)
(opäť s 0 · log2 0 := 0). Podmienená entropia Y pri znalosti X je vážený priemer týchto entropií:
H(Y | X) = ∑x ∈ 𝒳, P(X = x) > 0 P(X = x) · H(Y | X = x).
Koľko neistoty o Y v priemere zostane potom, čo sa dozviete X.
Definícia — informačný zisk (vzájomná informácia)
Nech X a Y sú diskrétne náhodné premenné na tom istom pravdepodobnostnom priestore s konečnými množinami hodnôt. Vzájomná informácia (informačný zisk) premenných X a Y je
I(X; Y) = H(Y) − H(Y | X).
Je to teda rozdiel neistoty o Y pred zistením hodnoty X a priemernej neistoty po ňom.
O koľko bitov sa neistota zmenší, keď sa dozviete X. V spamovom príklade z dielu o Bayesovej vete je spam 40 % pošty: neistota 0,971 bitu. Keď viete, či e-mail obsahuje slovo „výhra“, klesne v priemere na 0,826 bitu — zisk 0,971 − 0,826 = 0,145 bitu (farby podľa vzorca nižšie). Rozhodovacie stromy presne takto vyberajú, na čo sa opýtať ako prvé: na príznak s najväčším informačným ziskom.
I(X; Y) = H(Y) − H(Y | X)
- H(Y)
- neistota o Y predtým, než sa na čokoľvek pozrieme — východiskový stav
- H(Y | X)
- neistota, ktorá zostane po zistení X, spriemerovaná cez všetky možné hodnoty X (vopred nevieme, ktorá vyjde); odčítame ju, pretože nás zaujíma len to, čo X odstránilo
Príklad — informačný zisk slova „výhra“
Spam je 40 % pošty, slovo „výhra“ obsahuje 30 % spamu a 1 % ostatných e-mailov. Y je „spam, alebo nie“, X „obsahuje slovo, alebo nie“. Farby podľa vzorca vyššie.
- Pred: H(Y) = h(0,4) = 0,971 bitu.
- P(slovo) = 0,3 · 0,4 + 0,01 · 0,6 = 0,126.
- So slovom (Bayes): P(spam | slovo) = 0,3 · 0,4/0,126 = 0,12/0,126 = 0,952, entropia h(0,952) = 0,276.
- Bez slova: P(spam | bez slova) = 0,7 · 0,4/0,874 = 0,320, entropia h(0,320) = 0,905.
- Po: H(Y | X) = 0,126 · 0,276 + 0,874 · 0,905 = 0,826.
- Zisk: 0,971 − 0,826 = 0,145 bitu.
Slovo takmer isto prezradí spam, ale objaví sa len v 12,6 % e-mailov; v ostatných klesne neistota len málo (0,905 namiesto 0,971). Preto je priemerný zisk skromný.
nejlepsi_otazka(data, príznaky): # krok rozhodovacieho stromu (ID3)
pre každý príznak X:
zisk[X] ← H(trieda) − ∑ podiel(X = x) · H(trieda | X = x)
vráť príznak s najväčším zisk[X] # dáta rozdelíme podľa neho a opakujeme
7. Teória informácie v umelej inteligencii
- Krížová entropia ako stratová funkcia. Pre jeden príklad so správnou triedou y je to −log q(y) — nakoľko model prekvapila správna odpoveď. Priemer cez dáta je záporná logaritmická vierohodnosť, takže minimalizácia krížovej entropie je metóda maximálnej vierohodnosti z minulého dielu. Knižnice používajú prirodzený logaritmus (jednotka nat): 1 bit = ln 2 ≈ 0,693 natu.
- Perplexita jazykového modelu je 2H, kde H je krížová entropia na slovo v bitoch. Perplexita 8 znamená, že model je v priemere rovnako neistý, ako keby vyberal z ôsmich rovnako pravdepodobných slov.
- KL divergencia drží pohromade variačné autoenkodéry (VAE), destiláciu modelov (malý model napodobňuje rozdelenie veľkého) aj dolaďovanie jazykových modelov spätnou väzbou od ľudí (RLHF), kde trest za KL divergenciu nedovolí modelu vzdialiť sa príliš ďaleko od pôvodného.
- Kompresia a predikcia sú jedno. Model, ktorý dobre predpovedá ďalší symbol, vie dáta dobre skomprimovať — a naopak. Preto sa jazykové modely porovnávajú počtom bitov na znak.
strata(θ) = 1/N ∑i=1N (−ln qθ(yi | xi))
- strata(θ)
- číslo, ktoré trénovanie znižuje zmenou parametrov θ
- 1/N ∑
- priemer cez trénovacie príklady — namiesto neznámeho p priemerujeme cez dáta, ktoré z p prišli
- −ln
- prekvapenie v natoch; prirodzený logaritmus kvôli pohodlným deriváciám, od bitov sa líši len násobkom ln 2
- qθ(yi | xi)
- pravdepodobnosť, ktorú model pre vstup xi dal správnej odpovedi yi; ostatné triedy vo vzorci nie sú, pretože skutočné p má pri správnej triede 1 a inde 0
Príklad — perplexita na štyroch slovách
Model dal správnym slovám vety pravdepodobnosti 1/2, 1/4, 1/8, 1/8. Prekvapenia v bitoch: 1, 2, 3, 3; priemer H = 2,25 bitu na slovo.
Perplexita 22,25 ≈ 4,76: model váhal zhruba ako medzi piatimi rovnako pravdepodobnými slovami. Pozor, je to 2 na priemer logaritmov, teda geometrický priemer čísel 1/q — nie obyčajný priemer čísel 2, 4, 8, 8 (ten by bol 5,5).
8. Zhrnutie
- Informácia javu −log2 p meria prekvapenie v bitoch; informácie nezávislých javov sa sčítavajú.
- Entropia je priemerné prekvapenie, najviac log2 n, a je to dolná hranica priemernej dĺžky kódu.
- Krížová entropia meria, koľko bitov stojí model q na dátach z p; najmenšia je pre q = p.
- KL divergencia je cena za zlý model: H(p, q) − H(p) ≥ 0, a nie je symetrická.
- Stratová funkcia klasifikátorov a jazykových modelov je krížová entropia — teda maximálna vierohodnosť.
Máte na to iný názor? Napíšte na support@coden-app.com.