Kapitola 22
Státnice I3: Stochastické metody a jejich aplikace v počítačové lingvistice

22.1 Teorie informace

Pravděpodobnost

Jev, pravděpodobnost

Jev je podmnožina libovolných výstupů (např. nějakého experimentu) – sample space . Prostor jevů je množina všech možných jevů.

Pravděpodobnost je zobrazení , pro kterou platí:

- ,

- pro takové, že platí

Důsledky – , , , .

Spojená a podmíněná pravděpodobnost

Spojená (joint) pravděpodobnost dvou jevů je . Podmíněná pravděpodobnost (pravděpodobnost , jestliže už nastalo) je:

Přímým důsledkem je řetězové pravdilo:

Bayesova věta

Bayesova věta vychází z toho, že což plyne z . Proto platí:

Pokud jsou a nezávislé jevy.

Zlaté pravidlo statistického zpracování jazyka se hodí pro zjištění, který jev je nejpravděpodobnější za předpokladu, že nastalo a nelze dobře odhadnout . Přes všechny jevy :

Náhodné veličiny, rozdělení

Náhodná veličina je funkce (často , nebo jde o spočetnou množinu pro diskrétní náhodné veličiny). Střední (očekáváná) hodnota je průměr náhodné veličiny – v diskrétním případě vychází .

Rozdělení (distribuce) pravděpodobnosti potom je funkce , kde .

Spojené rozdělení je a podmíněné rozdělení je . Bayesova věta a řetězové pravidlo platí i pro rozdělení.

Častá rozdělení pravděpodobnosti:

- u diskrétních náhodných veličin je nejčastější binomické –

- u spojitých veličin normální (Gaussovo) – .

Entropie

Entropie je míra nejistoty. Označuje nejmenší průměrný počet bitů potřebný k zakódování “zprávy” – výstupu nějaké náhodné veličiny. Mějme distribuci náhodné veličiny , jejíž hodnoty jsou v množině . Potom se entropie spočítá následovně:

Jednotky entropie jsou bity (používáme-li dvojkový logaritmus). Alternativní notace: . Platí, že pokud známe výsledek předem, tj. . Horní hranice hodnot není, ale .

Alternativní definice: protože , platí pro náhodnou veličinu , že

Perplexity je jiné vyjádření míry nejistoty – .

Spojená a podmíněná entropie

Spojená entropie dvou náhodných veličin , se počítá tak, že považujeme za jeden jev. Potom .

Podmíněná entropie se definuje jako . Protože , dá se to ekvivalentně zapsat následujícím způsobem:

Vlastnosti entropie

- Je nezáporná (, ).

- Řetězové pravidlo: (z definice a vlastností logaritmu)

- Podmíněná entropie je menší nebo rovna než nepodmíněná. Z toho , rovnost pro nezávislé jevy.

- je konkávní funkce ().

Relativní entropie

Kullback-Leibler divergence (distance)/relativní entropie pro odhad pravděpodobnostního rozdělení a skutečné rozdělení nad stejným sample space je:

Tato funkce není symetrická a nesplňuje trojúhelníkovou nerovnost, ale je dobré jí uvažovat jako vzdálenost. Počet bitů pro zakódování dat z , používáme-li , lze vyjádřit jako .

Vlastnosti relativní entropie

Informační nerovnost:

Důkaz plyne z Jensenovy nerovnosti – pro , náhodnou veličinu on a konvexní funkci platí, že . Jensenovu nerovnost lze ověřit indukcí nad za použití definice konvexity funkce. Pak stačí vzít a použít Jensenovu nerovnost.

Dále platí:

- Platí nerovnost sumy logaritmů pro : . Z toho je konvexní v .

- Pro rozdělení a rovnoměrné rozdělení nad platí: , , je konkávní.

Vzájmená informace

Vzájemná informace dvou náhodných veličin je:

Měří, kolik v průměru přispívá k zjednodušení predikce (o kolik bitů se sníží entropie), nebo o kolik se odchyluje od . Alternativní zápis je:

Platí:

Protože v předchozím vzorci se dá díky definici podmíněné pravděpodobnosti vyčlenit jako , zbývající se dá přepsat na rozdíl dvou logartimů a z něj dá .

Další vlastnosti:

- (protože )

- (z Informační nerovnosti)

Křížová entropie

Odhadujeme skutečné rozdělení pravděpodobnosti rozdělením (na základě vzorku pozorování ) a potřebujeme znát přesnost aproximace. Nemáme skutečné , takže ho simulujeme další množinou vzorků (s rozdělením ). Křížová entropie se pak vypočítá jako:

V praxi se více používá podmíněná křížová entropie. Testujeme rozdělení proti (z nezávislých dat ):

Křížová entropie může být nižší, vyšší než i rovna entropii odhadu rozdělení . Používá se k porovnávání odhadů – lepší odhad má nižší křížovou entropii na testovacích datech.

22.2 Bayesovské učení

Bayesovské učení je jiný přístup k odhadování pravděpodobnosti jevů než na základě frekvence výskytu: používáme navíc apriorní předpoklad (např. předpoklad známého rozdělení náhodné veličiny apod.), který na základě pozorovaných dat upravujeme. Hledaný jev (hypotéza) přitom může být např. klasifikační funkce strojového učení nebo nějaký neznámý parametr pravděpodobnostního modelu. Úplně přesně odpovídá Zlatému pravidlu NLP.

Definujeme:

- – apriorní pravděpodobnost jevu . Toto je náš apriorní předpoklad, nezávisí na datech.

- – pravděpodobnost výskytu pozorovaných dat bez znalosti pravděpodobnosti jevů (naštestí díky Zlatému pravidlu není moc potřeba ji znát).

- – podmíněná pravděpodobnost výskytu dat , nastal-li jev .

- – aposteriorní pravděpodobnost, pravděpodobnost jevu za předpokladu, že máme pozorovaná data .

Zajímá nás právě . Z Bayesovy věty plyne, že .

Hledáme-li jev s maximální aposteriorní pravděpodobností (maximální aposteriorní hypotézu), pak můžeme podle Zlatého pravidla použít vzorec:

Pokud jsou apriorní pravděpodobnosti všech jevů stejné (tj. apriorní předpoklad je rovnoměrné rozdělení), pak maximálně vhodná hypotéza (maximum likelihood hypothesis) je:

Bayesovské rozhodovací pravidlo (nebo optimální bayesovské rozhodnutí) velí vybrat právě ze všech možných hypotéz.

Příklad

Mějme medicínský diagnostický test, který pro určité onemocnění vyjde pozitivně () nebo negativně (), a dva jevy (hypotézy) – pacient buď má () nebo nemá () danou nemoc. Apriorní předpoklad je, že populace má tuto nemoc.

Testy mají omezenou spolehlivost:

platí

platí

pozitivní test ()

98%

3%

negativní test ()

2%

97%

Potom u pacienta s pozitivním výsledkem testu (tj. pozorovaných dat ) najdeme :

1. pravděpodobnost, že tento pacient má danou nemoc je

2. pravděpodobnost, že tento pacient nemá tuto nemoc je

A tedy . I když takto přesný test vyjde pozitivní, je u málo častého onemocnění velká šance, že jde o planý poplach. V praxi se proto testy opakují.

Vztah k učení založenému na konceptech

Mějme problém strojového učení, kdy hledané hypotézy představují funkce klasifikující data a my chceme z nich vybrat tu nejlepší. Použijme bayesovské učení tímto brutálně neefektivním způsobem:

1. Spočteme pro každé .

2. Najdeme .

Předpokládejme, že žádná z hypotéz není pravděpodobnější než jiná (což typicky předpokládat musíme). Dále uvažujeme, že bude , pokud klasifikace hypotézou souhlasí s ohodnocením dat a jinak.

Odhady velikostí pravděpodobností dojdeme k tomu, že jakákoliv hypotéza, která je konzistentní s trénovacími daty (tj. tato funkce by trénovací data klasifikovala správně), je . Tedy mnoho algoritmů strojového učení, které takové hypotézy hledají, je efektivnější variantou bayesovského učení.

Souvislost s minimální délkou popisu

Bayesovské učení splňuje podmínku Occamovy břitvy, neboli minimální délky popisu (minimum descripton length), tedy nalezení co nejkratšího modelu pro danou situaci. Platí totiž:

A to se dá interpretovat jako preference nejkratší hypotézy s ohledem na specifický systém reprezentace hypotéz a dat. Pokud označíme počet bitů potřebných k zakódování zprávy v kódování , pak se dá vzorec přepsat jako:

Použijeme-li optimální kódování prostoru hypotéz i dat s ohledem na hypotézu , pak .

Optimální bayesovská klasifikace

Ve strojovém učení často není třeba vybrat nejlepší hypotézu , ale postupně po jednom klasifikovat nové příklady z dat. Máme-li možné hodnoty , pak je bayesovská pravděpodobnost těcthto hodnot dána vztahem:

Optimální bayesovská klasifikace (optimální bayesovské učení) je to , pro kterou je maximální, tedy .

Tato metoda maximalizuje pravděpodobnost, že nová data budou klasifikována správně, jsou-li dána trénovací data, prostor hypotéz a apriorních pravděpodobnosti.

Bayesův optimální klasifikátor poskytuje sice nejlepší možné výsledky z trénovacích dat, ale je výpočetně náročný. To motivuje použití Gibbsova algoritmu:

1. Vybere se náhodně , ale vzhledem k distribuci aposteriorních pravděpodobností nad .

2. se použije k predikci klasifikace nové instance.

Dá se dokázat, že klasifikační chyba Gibbsova algoritmu je menší než dvojnásobek chyby optimálního bayesovského učení.

Naive Bayes Classifier

Naivní bayesovský klasifikátor je rychlá a relativně úspěšná metoda strojového učení. Mějme data, jejichž instance lze popsat -ticí hodnot atributů a jejich klasifikaci, jež nabývá hodnot .

Naivní bayesovský klasifikátor předpokládá nezávislost hodnot jednotlivých atributů, tedy:

Ve výsledku z běžného bayesovského přístupu dostaneme:

(a odhadneme jako relativní frekvence na trénovacích datech)

Je-li splněn předpoklad o podmíněné nezávislosti hodnot atributů, je . To sice v praxi splněno nebývá, ale přesto lze dosáhnout dobrých výsledků.

22.3 Hidden Markov Models

Skrytý Markovův model je užitečný prostředek k predikci dat na základě omezené historie předchozích výstupů. Dá se aplikovat např. na jazykové modelování při statistickém překladu nebo na morfologické značkování.

Markovův proces

Mějme posloupnost náhodných veličin (obecně až do ) a stavový prostor . Potom posloupnost nazveme Markovův řetězec (proces), pokud splňuje Markovovu vlastnost:

Přitom musí pro každé platit . Mám tu tedy omezenou historii a rozdělení pravděpodobnosti přechodů z jednotlivých stavů se s časem nemění.

Formálně, abychom mohli mít závislost na více předchozích stavech, můžeme si nadefinovat nové stavy jako uspořádané -tice stavů původních (a nastavit pravděpodobnosti u nenavazujících na ). Takovému Markovovu procesu se říká Markovův proces -tého řádu. Máme tu vlastně aproximaci řetězového pravidla:

Markovův proces lze zapsat buď přechodovou maticí, kde na pozici se nachází pravděpodobnost přechodu ze stavu do , nebo stavovým diagramem – grafem. Odpovídá to vlastně nedeterministickému konečnému automatu.

Skrytý Markovův Model

Obrázek 22.1: Skrytý Markovův model – nejsložitější varianta

Nyní uvažujme složitější případ, kdy jednotlivé stavy Markovova procesu generují pozorovatelný výstup (znaky nějaké konečné abecedy), ale stavy samy a pravděpodobnosti přechodu nám jsou neznámé. Takové modely nazveme skryté Markovovy modely (HMM). Uvažuje se několik (postupně čím dál tím složitějších) variant:

1. Každý z výstupních symbolů je generován jen v jednom stavu

2. Různé stavy můžou generovat shodné symboly

3. Generování symbolů se provádí ne ve stavech, ale při přechodu (tj. závisí na dvojicích stavů)

4. Při každém přechodu mohou být s různou pravděpodobností vygenerovány různé symboly (tj. pro každou dvojici stavů mám rozdělení pravděpodobnosti výstupních symbolů)

Formálně se HMM definují jako pětice , kde:

- je množina stavů, je počáteční stav

- je abeceda výstupních symbolů

- je množina pravděpodobnostních rozdělení přechodů mezi stavy

- je množina rozdělení pravděpodobností výstupu jednotlivých symbolů abecedy pro každý přechod

HMM můžeme reprezentovat maticí přechodu a množinou matic, které pro každý symbol udávají pravděpodobnost jeho vygenerování při všech stavových přechodech.

Hlavní použití HMM je:

- Spočtení pravděpodobnosti dané posloupnosti vygenerovaných symbolů

- Spočtení nejpravděpodobnější sekvence stavů, která vygenerovala danou posloupnost symbolů

Trellis a forward/backward algoritmus

Obrázek 22.2: HMM a jeho rozvití do trellisu. Stavy, které mohly vygenerovat výstupní sekvenci, jsou vyznačeny barevně a opatřeny hodnotou α.

Uvažujme nyní HMM, kde se výstupní symboly generují ve stavech a každý stav generuje jeden symbol (ale více stavů může generovat shodné symboly) . Pro spočtení pravděpodobnosti posloupnosti výstupních znaků vytvoříme speciální graf – trellis, který modeluje chování původního HMM.

Stavy trellisu odpovídají stavům HMM v každém kroku generování, tj. místo stavů máme stavy . Pravděpodobnosti přechodů jsou vzaty z původního HMM. Uvažujeme ovšem jen stavy, které mohly vygenerovat sekvenci , ostatní nejsou užitečné.

Navíc si pro každý nový stav stanovíme hodnotu , která udává pravděpodobnost, že se HMM v daný čas nacházel v daném stavu, je-li dána posloupnost . Ta se spočítá následovně:

(pro nějaký stav a , symbol ""zde značí "generuje")

Potom pravděpodobnost posloupnosti je součet hodnot ve stavech odpovídajících poslednímu kroku, které mohly vygenerovat poslední symbol. Při praktickém výpočtu pravděpodobnosti stačí, abychom drželi v paměti dva kroky výpočtu, tj. maximálně dvojnásobek stavů, než měl původní HMM. Máme tedy algoritmus s výpočetní složitostí a paměťovou složitostí , formálně nazývaný forward algoritmus.

Pro variantu HMM, kde se výstupní symboly emitují při přechodech, můžeme pracovat podobně, jen vzorec pro bude následující:

Je zřejmé, že takhle lze postupovat oběma směry (čímž dostáváme backward algoritmus). Při implementaci je třeba dát pozor na normalizaci, abychom nepočítali s příliš malými čísly a nedošlo k podtečení. Výhodné je např. počítat v logaritmech.

Viterbi

Uvažujme teď další problém nad HMM. Pro danou posloupnost výstupních symbolů chceme najít nejpravděpodobnější sekvenci stavů , která ji vygenerovala. Platí:

Protože je dané a tedy fixované. Potom z Markovovy vlastnosti plyne:

Uvažujme opět trellis, kde místo hodnot budeme počítat hodnoty , udávající pravděpodobnost nejpravděpodobnější sekvence stavů, která v zavedla HMM v daný čas do daného stavu, je-li dáno :

Viterbiho algoritmus na základě této rekurentní rovnice postupně počítá (tedy jde o dynamické programování) a v každém stavu trellisu si pamatuje odkaz na nejpravděpodobnějšího předchůdce. Po projití celé posloupnosti výstupních symbolů pak může zpětně získat nejpravděpodobnější posloupnost skrytých stavů. V tomto případě je už nutné trellis uchovávat v paměti.

Existuje i varianta Viterbiho algoritmu, která hledá nejpravděpodobnějších posloupností skrytých stavů. Pro tu je třeba uchovávat v každém stavu trellisu nejpravděpodobnějších předchůdců. Při průchodu zpět stále uchováváme nejlepších kandidátů.

Samozřejmě i tady je třeba pamatovat na normalizace a je možné použít prořezávání (s prahovou hodnotou buď pro , nebo pro pravděpodobnost přechodu, nebo uchovávat jen daný počet stavů).

Baum-Welch

Dalším problémem na HMM je odhadnutí neznámých pravděpodobností a na základě posloupnosti výstupních symbolů , tj. spočtení . Globální maximum efektivně nalézt neumíme, takže se musíme spokojit s lokálním.

K tomu se opět použije trellis a Baum-Welchův algoritmus, specifický typ EM-algoritmu (expectation-maximization). Ten postupuje následovně:

1. Inicializuje a na nějaké počáteční hodnoty

2. Expectation (estimation) step: spočítá pravděpodobnost dat na základě původních odhadů

1. Spočítá forward pravděpodobnosti (tj. aplikuje forward algoritmus, ale v paměti drží celý trellis)

2. Spočítá (obdobně) backward pravděpodobnosti

3. Maximization step: spočítá nové odhady pravděpodobností :

1. Pro všechny dvojice stavů i generované symboly –

2. Pro všechny dvojice stavů –

3. Pro všechny stavy –

4. Nové pravděpodobnosti: ,

4. Opakuje počítání odhadů, dokud nezačne konvergovat.

I tady je třeba normalizovat, navíc pokud máme nějaké aspoň hrubé odhady pravděpodobností (hlavně ), výsledek bude mnohem lepší.

22.4 Algoritmy učení a zpracování, aplikace v lingvistice

Sem zřejmě patří něco z otázky o strojovém učení. Přidávám ještě dvě věci, které tam nejsou a v lingvistice se používají. Aplikace je možné vidět třeba v analýze jazyka.

EM-Algoritmus

EM (expectation-maximization) algoritmus je obecný postup iterativního odhadu neznámých parametrů nějakého modelu, který se používá např. v Baum-Welchově algoritmu z předchozí sekce.

Mějme pozorovaná data . Uvažujme ještě další, nepozorovaná data nad stejnými jevy, které popisuje . Ta lze považovat za náhodnou veličinu, potom celková data jsou také náhodná veličina, jejíž rozdělení je určeno známými hodnotami a rozdělením .

Cílem EM algoritmu je maximalizace pravděpodobnosti výskytu trénovacích dat za daných parametrů – tím nalezneme parametry, které odpovídají pozorovaným datům. Používáme střední hodnotu, protože je náhodná veličina. Musíme tedy spočíst střední hodnotu přes její rozdělení, které je ale určeno parametry , jež neznáme. Proto definujeme rekurentní funkci, která počítá potřebnou střední hodnotu, má-li dány nějaké “předběžné” parametry :

Celý algoritmus pak postupuje iterací následujících dvou kroků, za předpokladu, že nastavíme počáteční :

- Expectation/Estimation – spočítá se očekávaná hodnota

- Maximization – vybere se takové , které maximalizuje funkci :

Je-li funkce spojitá, je zaručeno, že EM algoritmus v každém kroku zvýší její hodnotu a bude konvergovat ke stacionárnímu bodu věrohodnostní funkce (tj. k lokálnímu maximu).

Maximum Entropy

Modely maximální entropie (maximum entropy, MaxEnt) jsou pro zpracování jazyka jedny z nejpoužívanějších. Jejich základní ideou je najít podmíněné rozdělení pravděpodobnosti, které má, za daných podmínek, maximální entropii. To odpovídá principu Occamovy břitvy – najít co nejjednodušší popis na základě toho, co známe. Takový popis se co nejvíce blíží rovnoměrnému rozdělení a tedy má co nejvyšší entropii. Základní forma takového modelu, snažíme-li se předpovídat nějaký jev na základě kontextu , jako např. morfologický tag nějakého slova na základě vlastností okolního textu, vypadá následovně:

Funkce představuje -dimenzionální vektor rysů (jakýchkoli binárních klasifikací okolního textu) a odpovídající vektor vah. Jmenovatel tohoto zlomku, tj. suma přes všechna možná ohodnocení, má v praxi pouze normalizační funkci.

Váhy modelu se potom odhadují tak, aby splnily podmínku maximální entropie, což je ekvivalentní minimalizaci relativní entropie našeho modelu vzhledem k empirickému rozdělení pravděpodobnosti pozorovanému na trénovacích datech (očekávaná frekvence výskytu jednotlivých vlastností), nebo maximalizaci jeho aposteriorní pravděpodobnosti (podmíněné pravděpodobnosti, jsou-li dána trénovací data), která se většinou popisuje pomocí logartimu věrohodnostní funkce:

Hledání maxima logaritmické věrohodnostní funkce se většinou provádí gradientovou metodou.

_____________________________________________________________________________________________________________________________________________________