{{TOC float}}
{{Sources| Zpracováno na základě poznámek z <Pravděpodobnostní%20metody>, <Statistické%20metody%20zpracování%20přirozených%20jazyků%20I> a <Úvod%20do%20strojového%20učení%20%28v%20počítačové%20lingvistice%29>. -- User:Tuetschek 15:23, 24 Aug 2010 (CEST)
Literatura:
Manning, Schütze -- Foundations of Statistical NLP
Mitchell -- Machine Learning
}}
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í
ParseError: KaTeX parse error: Undefined control sequence: \[ at position 17: …p:2^{\Omega}\to\̲[̲0,1]\,\!
, 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
ParseError: KaTeX parse error: Got group of unknown type: 'internal'
, 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ě{{ref|1}} . 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
ParseError: KaTeX parse error: Got group of unknown type: 'internal'
. 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 (
ParseError: KaTeX parse error: Undefined control sequence: \[ at position 39: …orall\lambda\in\̲[̲0,1]: f(\lambda…
).
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.
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:
Potom u pacienta s pozitivním výsledkem testu (tj. pozorovaných dat ) najdeme :
pravděpodobnost, že tento pacient má danou nemoc je
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 <Státnice%20I3:%20Metody%20strojového%20učení#Úvod%20-%20učení%20založené%20na%20konceptu>, 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:
Spočteme pro každé .
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 <Státnice%20I3:%20Metody%20strojového%20uč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:
Vybere se náhodně , ale vzhledem k distribuci <u>aposteriorních pravděpodobností</u> nad .
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 <Státnice%20I3:%20Metody%20strojového%20učení>. Mějme data, jejichž instance lze popsat -ticí hodnot atributů $a_i,\dots a_n,;
y_i \in Y,;$.
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ů.
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 <Státnice%20I3:%20Strojový%20překlad#Statistický%20strojový%20překlad%20-%20phrase-based> nebo na <Státnice%20I3:%20Automatická%20analýza%20jazyka#Morphology%20&%20Tagging>.
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
Image:Hmm.png 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:
Každý z výstupních symbolů je generován jen v jednom stavu
Různé stavy můžou generovat shodné symboly
Generování symbolů se provádí ne ve stavech, ale při přechodu (tj. závisí na dvojicích stavů)
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
Image:Trellis.png
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){{ref|2}}. 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%20a%20forward/backward%20algoritmus>, 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ě:
Inicializuje a na nějaké počáteční hodnoty
Expectation (estimation) step: spočítá pravděpodobnost dat na základě původních odhadů
Spočítá forward pravděpodobnosti (tj. aplikuje <#Trellis%20a%20forward/backward%20algoritmus>, ale v paměti drží celý trellis)
Spočítá (obdobně) backward pravděpodobnosti
Maximization step: spočítá nové odhady pravděpodobností :
Pro všechny dvojice stavů i generované symboly --
Pro všechny dvojice stavů --
Pro všechny stavy --
Nové pravděpodobnosti: ,
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ší.
Algoritmy učení a zpracování, aplikace v lingvistice
Sem zřejmě patří něco z otázky <Státnice%20I3:%20Metody%20strojového%20uč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 <Státnice%20I3:%20Automatická%20analýza%20jazyka>.
EM-Algoritmus
{{Sources|Zdroj: wen:EM%20Algorithm, Manning/Schütze, Mitchell -- User:Tuetschek 22:13, 26 Aug 2010 (CEST)}}
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-Welch> z předchozí sekce.
Mějme pozorovaná data nad nějakými jevy. Uvažujme ještě další, nepozorovaná data nad stejnými jevy. 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
{{Sources|Tuto část jsem upravil ze své diplomky, takže je zkompilovaná z několika knih a článků. -- User:Tuetschek 22:13, 26 Aug 2010 (CEST)}}
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.
{{note|1|V definicích entropie označuje množinu výstupů, ne vstupů náhodné veličiny .}}
{{Statnice I3}}