Neparametrick metody Neparametrick metody obsah princip odhadu hustoty
Neparametrické metody
Neparametrické metody • obsah: – princip odhadu hustoty • odhad hustoty pomocí metody Parzenova okénka • pravděpodobnostní neuronové sítě • odhad hustoty pomocí metody kn-nejbližších sousedů – odhad aposteriorní pravděpodobnosti – pravidlo nejbližšího souseda a pravidlo k-nejbližších sousedů
Neparametrické metody • doposud jsme uvažovali učící algoritmy, které předpokládaly znalost hustoty rozdělení – v praxi hustoty rozdělení neznáme – umíme hustoty odhadnout, pokud mají tvar nějaké „běžné“ funkce hustoty (jako např. normální rozdělení, . . . ) – problém: hustota reálných dat málokdy „pasuje“ na některou z běžných funkcí hustoty • neparametrické metody: – lze je použít pro libovolné rozdělení bez předpokladu, že známe tvar funkce hustoty • rozdělení metod: – odhady funkce hustoty p(x|ωj) z trénovacích dat • když jsou odhady uspokojivé => použijeme tyto odhady jako skutečné hodnoty do klasifikátoru – odhady aposteriorní pravděpodobnosti P(ωj|x)
Odhady hustoty • metody založené na aproximaci hustoty pomocí histogramu – označme P pravděpodobnost, že x padne do oblasti R: (*) neznáme „hladká zprůměrovaná verze hustoty“ • když odhadneme P => můžeme odhadnout i p(x)
Odhady hustoty • • nechť máme n vzorů x 1, . . . , xn vybraných nezávisle podle p(x) spočteme pravděpodnost Pk , že k z n vzorů spadne do oblasti R: – tedy Pk má binomické rozdělení a očekávaná hodnota pro k je: • binomické rozdělení pro k má ostrý vrchol okolo střední hodnoty – poměr k/n bude dobrý odhad pro P (zejména pro velké n) P ~ k/n (**)
Odhady hustoty • když oblast je R malá => p se v oblasti R příliš nemění => oblast lze aproximovat obdélníkem: (***) „velikost“ oblasti R – x je bod uvnitř R – V je objem R • pravděpodobnost v bodě x – „výška“ obdélníku pravděpodobnost, že bod x padne do R kombinací vztahů (*), (**) a (***) dostaneme, že pravděpodobnost v bodě x lze odhadnout jako:
Odhady hustoty • příklad na zobrazení závislosti odhadnuté p(x) na hodnotě k/n: – skutečná P=0. 7 – každá křivka je binomická - je označena počtem vzorů n a je naškálovaná, aby dala stejnou hodnotu v maximu – pro rostoucí n má křivka ostřejší vrchol (pro n→∞ dostaneme Diracovu delta funkci) • jak se bude měnit odhad pro n→∞?
Odhady hustoty • uvažujme následující postup pro odhad hustoty: – vytvoříme posloupnost R 1, R 2. . . • každá Ri obsahuje vzor x • R 1 pracuje s 1 trénovacím vzorem, R 2 pracuje s 2 trénovacími vzory, . . . – označme Vn objem Rn – pro pn(x) bude platit: • kde kn je počet vzorů, které padnou do Rn • pn(x) je n-tý odhad pro p(x) – aby pn(x) konvergovalo k p(x), musí být splněno: • limn→∞Vn = 0 • limn→∞kn = ∞ • limn→∞ kn /n = 0. . . ačkoliv velké množství vzorů padne do Rn => musí to být jen malý vzorek z celkového počtu vzorů n
Odhady hustoty • 2 nejčastější způsoby, jak získat tyto posloupnosti, aby splňovaly požadované podmínky: – zmenšovat počáteční oblast určením Vn jako funkci n • např. Vn = 1 / √n • pak je nutné ukázat, že náhodná veličina kn/n se budou chovat „patřičně“ => metoda: Parzenovo okénko – určit kn jako funkci n • např. kn = √n • objem Vn roste, dokud neobsahuje kn sousedů x => metoda: k-nejbližších sousedů
Odhad hustoty pomocí metody Parzenova okénka • metoda na odhad hustoty, která předpokládá, že oblast Rn je d-dimenzionální hyperkostka – hyperkostka se stranou hn má objem Vn: Vn = hnd – potřebujeme analyticky zjistit výraz pro kn • počet vzorů, které padnou do hyperkostky, budeme definovat pomocí okénka: φ(u) = 1 |uj| ≤ 1/2 pro j=1, . . . , d 0 jinak => φ(u) definuje jednotkovou hyperkostku vycentrovanou v počátku • okénko pro hyperkostku o objemu Vn vycentrovanou v x má tvar: = 1 0 když xi padne do hyperkostky o objemu Vn vycentrované v x jinak
Odhad hustoty pomocí metody Parzenova okénka • počet vzorů, které padnou do této hyperkostky, je: • tento výraz dosadíme do a dostaneme odhad hustoty pn(x): (*) – aby byl odhad pn(x) funkcí hustoty, pak musí být nezáporný a integrovatelný – zde se snažíme aproximovat spojitou funkci p(x) pomocí nespojité skokové funkce φ(u) => náš odhad bude zatížen chybou • Parzen tento odhad (*) zobecnil pomocí hladké funkce φ(u) – aby docílil toho, že odhad pn(x) bude hustotou => zavedel okénko tak, aby samo bylo funkcí hustoty: φ(u) ≥ 0 a ∫ φ(u)du = 1 => pomocí takového okénka bude funkce (*) již funkcí hustoty a okénko bude mít stejný jednotkový objem
Parzenovo okénko – vliv hn • máme definované okénko a chceme zjistit, jak bude okénko ovlivňovat délka okénka hn: – zavedeme funkci δn(x): – pomocí funkce δn(x) vyjádříme pn(x): – protože Vn=hnd => pak hn má vliv na amplitudu (výšku) i šířku funkce δn(x)
Příklady Parzenova okénka • příklad (dim=2) – Parzenovo okénko má tvar 2 D-rotační symetrické normální funkce – je zachycen tvar funkce δn pro 3 různé hodnoty hn δn(x) je normalizována => na svislé ose jsou různá škálování
Vlastnosti Parzenova okénka • nastavení hn : – hn velmi velké: • amplituda δn je malá (funkce je nízká) • x musí být daleko od xi, aby se δn(x-xi) změnilo od δn(0) – hn velmi malé: • vrchol δn(x-xi) je vysoký a vrcholu se nabývá blízko x=xi • pn(x) bude mít tvar ostrých výběžků vycentrovaných v trénovacích vzorech – hn dosáhne 0: • δn(x-xi) je Diracova delta funkce vycentrovaná v xi
Příklady Parzenova okénka • uvažujme Parzenovo okénko s parametry jako v přechozím případě • nyní předložíme 5 trénovacích vzorů pro odhad hustoty pn(x) – získaný tvar pn(x) je uveden na obrázku (různé škálování na svislé ose)
Konvergence Parzenova okénka • mluvíme o konvergenci posloupnosti náhodných proměnných – x je pevná hodnota hn => hodnota pn(x) závisí na trénovacích vzorech x 1, . . . , xn • pn(x) má: – střední hodnotu – rozptyl σn 2(x) • pn(x) konverguje k p(x), když: – pro důkaz konvergence je nutné zavést podmínky na hustotu p(x), okénkovou funkci φ(u) a délku okénka hn • důkaz lze najít v literatuře
1. ilustrační příklad (dim=1) • chceme odhadnout neznámou hustotu p(x) – ve skutečnosti má neznámá hustota normální rozdělení p(x) ~ N(0, 1) – použijeme okénko, které má tvar Gaussovy funkce: – velikost hn definujeme jako: kde h 1 je parametr, který ovlivňuje šířku okénka a je nastavitelný uživatelem => pn(x) bude mít tvar:
1. ilustrační příklad – výsledky • odhad neznámé hustoty p(x) ~ N(0, 1) pomocí metody Parzenova okénka – různý parametr h 1 pro šířku okénka a různý počet vzorů n
1. ilustrační příklad – postřehy • různé iniciální šířky okénka h 1 a různý počet vzorů n – svislá osa má různé škálování, aby byla vystižena struktura grafu – pro n→∞ jsou odhady stejné a odpovídají skutečné hustotě nezávisle na šířce okénka – n=1 • pn(x) je jediná Gaussovka vycentrovaná v prvním vzoru – n=10 • pro h 1=0. 1 je možné rozlišit příspěvky jednotlivých vzorů • pro h 1=0. 5 nebo h 1=1 situace se zlepší – pro rostoucí n se zlepšuje schopnost pn(x) rozlišit změny v p(x) – když je n velké • pn(x) je citlivější na lokální nepravidelnosti ve vzorech (ač víme, že pn(x) bude konvergovat pro n →∞ k hladké křivce normálního rozdělení)
2. ilustrační příklad (dim=2) • odhad neznámé hustoty p(x), která má ve skutečnosti dvourozměrné normální rozdělení – různý parametr h 1 pro šířku okénka a různý počet vzorů n (n=1 a n=10)
2. ilustrační příklad (dim=2) • odhad neznámé hustoty p(x), která má ve skutečnosti dvourozměrné normální rozdělení – různý parametr h 1 pro šířku okénka a různý počet vzorů n (n=100 a n=∞)
3. ilustrační příklad (dim=1) • neznámá hustota je směs uniformní a trojúhelníkové hustoty
3. ilustrační příklad – postřehy • • neznámá hustota je směs uniformní a trojúhelníkové hustoty n=1 – dozvíme se více o okénkové funkci než o neznámé hustotě • n = 16 – žádný z odhadů není dobrý • n = 256, h 1 = 1 – výsledky začínají být přijatelné
Klasifikace založená na Parzenově okénku • v klasifikátoru založeném na Parzenově okénku se odhaduje hustota pro každou třídu • vzor se klasifikuje podle odpovídající maximální aposteriorní pravděpodobnosti • pro 2 třídy může klasifikátor vypadat: – x dáme do ω1(ω2) když:
Klasifikace – rozhodovací hranice • rozhodovací hranice závisí na okénkové funkci φ a na šířce h – h malé => oblasti jsou komplikované – h velké => oblasti jsou jednodušší
Parzenovo okénko – závěr • • okénko úzké => malá chyba na trénovacích vzorech klasifikátor má klasifikovat i neznámé vzory – malá chyba na trénovacích vzorech negarantuje malou chybu na testovacích datech • parametrické metody: – výhoda spočívá v obecnosti (+) – potřeba obrovského množství trénovacích dat (−) • mnohem více než u metod, kde známe tvar hustoty funkce – časová i prostorová náročnost (−) • požadavek na velké množství dat roste exponenciálně s dimenzí dat => „ prokletí dimenze“ • mnohodimenzionální funkce mají potenciál být mnohonásobně složitější než nízkodimenzionální funkce • tyto komplikace se těžko poznají • jediný způsob, jak obejít „ prokletí dimenze“ je přidat další informace o datech
Pravděpodobnostní neuronové sítě • většina metod při rozpoznávání lze implementovat paralelně – lze použít neuronové sítě (NS) => zde se ukážeme použití NS na Parzenovo okénko • uvažujem n d-dimenzionálních vzorů v c třídách – d vstupních jednotek (neuronů) – n „pattern“-neuronů – c výstupních neuronů, kterén přísluší jednotlivým třídám – vstupní neuron je spojen s každým „pattern“-neuronem – každý „pattern“-neuron je spojen s právě jediným výstupním neuronem
Pravděpodobnostní neuronové sítě • spojení mezi vstupní a „pattern“-vrstvou představují váhy, které je nutné naučit • každý „pattern“-neuron spočte skalární součin svého váhového vektoru a normalizovaného trénovacího vzoru z = w. Tx na výsledek skalárného součinu z se aplikuje funkce: exp [(z-1)/σ2] • • každý neuron ve výstupní vrstvě spočte součet výstupů z „pattern“-neuronů, se kterými je spojen
Učení pravděpodobnostní neuronové sítě • každý trénovací vzor je normalizován: • síti je předložen první trénovací vzor x 1: – váhy spojující vstupní jednotky a první „pattern“-neuron se nastaví na tento vzor: w 1= x 1 – je vytvořena vazba od prvního „pattern“-neuronu k výstupnímu neuronu, který odpovídá třídě, kam x 1 patří • tento proces se opakuje pro každý trénovací vzor: – váhy se nastaví na odpovídající vzory: wk= xk k=1, . . . , n – je vytvořena vazba mezi každým „pattern“-neuronem a výstupnímu neuronem, který odpovídá třídě, kam xk patří
Algoritmus učení • značení: – xj = (xj 1, . . . , xjn) j=1, . . . , n – wj = (wj 1, . . . , wjn) j=1, . . . , n • algoritmus: 1. begin initialize j← 0, n, aij← 0 j=1, . . . , n 2. do j←j+1 3. xjk← xjk / (Σxji)2 // normalizace 4. wjk← xjk // učení 5. if (x in ωi) then aij← 1 6. until j=n 7. end i=1, . . . , c
Klasifikace pomocí neuronové sítě • testovaný vzor je normalizován a poté je předložen vstupní vrstvě • každý „pattern“-neuron spočte skalární součin netk: netk= wk. T ∙x • na netk je aplikována aktivační funkce: – kde σ je uživatelsky definovaný parametr, který určuje šířku Gaussova okénka • každý výstupní neuron spočte součet příspěvků od jednotlivých „pattern“neuronů, se kterými je spojen vazbou
Klasifikace pomocí neuronové sítě • aktivační funkce musí být exponenciála, abychom při klasifikaci dostali Parzenovo okénko: protože wk. T ∙wk =1 a x T ∙x =1 a hn je konstanta • výstup „pattern“-neuronu: – odpovídá pravděpodobnosti, že testovaný vzor byl generován Gaussovkou umístěnou ve středu tohoto trénovacího vzoru – součet těchto lokálních odhadů dá diskriminant funkci gi(x). . odhad hustoty pomocí Parzenova okénka – max gi(x) dá hledanou třídu pro testovaný vzor x
Algoritmus klasifikace • algoritmus: 1. begin initialize k← 0, x←tested_pattern 2. do k←k+1 3. netk← wk. T∙ x 4. if (aki=1) then gi←gi+exp((netk-1)/σ2) 5. until k=n 6. return class←argmaxi(gi(x)) 7. end • vlastnosti popsané neuronové sítě: – výhodou je rychlost učení – stačí jeden průchod trénovací množinou – prostorová složitost je úměrná počtu vazeb O((n+1)d) – lze použít online učení • nový vzor lze snadno zabudovat do již naučeného modelu
Odhad hustoty pomocí kn-nejbližších sousedů • • chceme najít „nejlepší“ okénko => uděláme ho závislé na trénovacích datech princip odhadu hustoty pn(x) z n trénovacích vzorů: – uděláme okénko okolo x – toto okénko zvětšujeme, dokud v něm není kn vzorů => tyto vzory nazveme kn-nejbližších sousedů k bodu x • hustota blízko bodu x je: – velká => okénko bude relativně malé a dostaneme dobré rozlišení – malá => okénko bude široké a zastaví se, až narazí na nějakou oblast s velkou hustotou • odhad hustoty je – chceme, aby kn→∞ pro n →∞ – to nám zaručí, že kn/n bude dobrý odhad pravděpodobnosti
Odhad hustoty pomocí kn-nejbližších sousedů – postřehy • postřeh: – ačkoliv pn(x) je spojitá => její gradient není spojitý – navíc body nespojitosti gradientu jsou málokdy na pozici trén. vzorů odhad hustoty pomocí 3 - a 5 - nejbližších sousedů (dim=1) odhad hustoty pomocí 5 -nejbližších sousedů (dim=2)
Porovnání metody kn-nejbližších sousedů a Parzenova okénka • uvažujeme dřívější příklad: – odhadujeme uniformní a trojúhelníkové hustoty pro n =1, 16, 256, ∞ Parzenovo okénko kn-nejbližších sousedů
Metoda kn-nejbližších sousedů – postřehy • n = 1 a kn= √n =1 – odhad hustoty má tvar pn(x) = 1/(2|x-x 1|) – a to je velmi špatný odhad hustoty • pro rostoucí n se odhad zlepšuje, ale: ∫ pn(x)=∞. . špatné (má být 1) • tato nepříjemná skutečnost je kompenzována faktem, že pn(x) se nikdy nepřiblíží k 0 – nikdy nemůža nastat situace, že žádný vzor nespadne do okénka (okénko je konstruováno tak, aby v něm bylo právě kn vzorů) – toto se hodí pro mnohorozměrné prostory
Klasifikace založená na metodě k-nejbližších sousedů • • pro jednoduchost uvažujeme jen 2 třídy ω1 a ω2 postup: – předložíme neznámý vzor x a zjistíme (Eukleidovskou) vzdálenost k trén. vzorům – označme r 1 (r 2) poloměr hyperkoule se středem v x, které obsahuje k trénovacích bodů z ω1 (ω2) – označme V 1 (V 2) objem těchto hyperkoulí – vzor x bude klasifikován do ω1 (ω2), když: • poznámky: – hodnota k může být různá pro jednotlivé třídy – když se místo Eukleidovské vzdálenosti použije Mahalanobisova vzdálenost => dostaneme hyperelipsoidy
Odhad aposteriorní pravděpodobnosti • popsané metody lze použít nejen k odhadu hustoty ve třídě, ale také k odhadu aposterironí pravděpdoobnosti P(ωi|x) z n trénovacích vzorů – umístíme okénko o velikosti V okolo x, které bude mít k trénovacích vzorů – nechť ki z k trénovacích vzorů patří do třídy ωi => rozumný odhad Pn(ωi|x) = ki / k poměr počtu vzorů v okénku, které padnou do dané třídy ku počtu vzorů v okénku – v případě klasifikátoru založením na minimální pravděpodobnosti chyby vybíráme třídu, která je nejvíce reprezentována v daném okénku – když máme dostatek trénovacích vzorů a dostatečně malé okénko => dostaneme dobré výsledky
Metody odhadu hustoty - shrnutí • metody na odhad hustoty: – Parzenovo okénko • definujeme, jak se má zvětšovat objem okénka • Vn je funkcí n • např. Vn = 1/√n – kn-nejbližších sousedů • definujeme, kolik vzorů má okénko obsahovat - Vn se zvětšuje, dokud nemá kn vzorů • kn je funkcí n • např. kn = √n • když n→∞, pak nekonečně vzorů padne do okénka
Pravidlo nejbližšího souseda • základní princip pravidla: – označme Dn = {x 1, . . . , xn} množinu n „označkovaných prototypů“ (tj. trénovací vzory, u kterých máme značku, do jakých tříd patří) – označme x neznámý bod, který máme klasifikovat – označme x’ z množiny Dn prototyp, který je nejblíž k x – pravidlo nejbližšího souseda klasifikuje vzor x do třídy, kam patří x’ • vlastnosti pravidla: – pravidlo nejbližšího souseda je suboptimální – typicky vede k horší chybě pravděpodobnosti než je minimální možná chyba – lze ukázat, že s nekonečným množstvím trénovacích vzorů pravděpodobnost chyby není nikdy horší než dvojnásobek Bayesovské pravděpodobnosti chyby
Proč funguje pravidlo nejbližšího souseda? • označme θ’ značku třídy, kam patří nejbližší soused – pravděpodobnost, že θ’=ωi, je aposteriorní pravděpodobnost P(ωi|x’) – když je počet vzorů velký • můžeme předpokládat, že x’ je dostatečně blízko k x • tedy P(ωi|x’) ≈ P(ωi|x) => toto je pravděpodobnost, že vzor x bude ve třídě ωi => pravidlo nejbližšího souseda bude „přiřazovat“ tyto pravděpodobnosti ke třídám • pravidlo nejbližšího souseda rozdělí příznakový prostor do oblastí: – oblast je tvořena všemi body, které jsou bližší trénovacímu bodu x’ než k ostatním trénovacím vzorům – všechny body v jedné oblasti jsou označkovány třídou, jakou má „jejich“ trénovací vzor – dostaneme tzv. Voronoiovu mozaiku
Pravidlo nejbližšího souseda – Voronoiova mozaika • • dim=2. . . pravidlo rozdělí prostor do n-úhelníkových oblastí dim=3. . . oblasti jsou 3 D a dělicí rozvnice mají tvar krystalu
Pravidlo nejbližšího souseda – vlastnosti • označme ωm nejpravděpodobnější třídu pro bod x: • když P(ωm|x) je blízko 1 – výběr nejbližšího souseda je téměř shodný jako Bayesovský výběr – když minumum chybné pravděpodobnosti je malé => pravděpodobnost chyby při metodě nejbližšího souseda je také malá • když P(ωm|x) je blízko 1/c – všechny třídy jsou zhruba stejně pravděpodobné – výběr Bayesovským pravidlem i pravidlem nejbližšího souseda jsou zřídkakdy stejné – pravděpodobnosti chyby je přibližně stejná u obou metod
Pravidlo nejbližšího souseda – vlastnosti • značení – – • Pn(e) je průměrná pravděpodobnost chyby na n trénovacích vzorech lze ukázat, že platí: minimální možná chyba klasifikace (Bayesovská klasifikace) – lze najít vztah mezi chybou Bayesovské klasifikace a klasifikace pomocí nejbližšího souseda pro nekonečně trénovacích vzorů • jak je to pro konečně trénovacích vzorů? – je vynakládáno velké úsilí na tento problém, ale všechny výsledky pro obecný případ jsou negativní – lze ukázat, že konvergence může být libovolně pomala a chyba Pn(e) se dokonce ani nemusí monotónně snižovat (pro rostoucí n) – je těžké cokoliv analyticky spočítat, když neuděláme další předpoklady o pravděpodobnostní struktuře zvoleného problému
Pravidlo k-nejbližších sousedů • • zobecnění metody nejbližšího souseda idea: – vzor x je klasifikován do třídy, která je nejvíce zastoupena mezi k nejbližšími trénovacími vzory • k neznámému vzoru najdeme jeho k nejbližších sousedů (trénovacích vzorů) a zjistíme jejich třídy • třída, která má „největší počet hlasů“, zvítězí • máme vzor x • do bodu x umístíme sférickou oblast • tuto sférickou oblast rozšiřujeme, dokud neobsahuje k trénovacích vzorů • zjistíme „počet hlasů“ • zde je k=5 a tak x je klasifikován do množiny černých bodů
Zlepšení výpočetní složitosti nejbližšího souseda • • v literatuře existuje mnoho analýz týkající se výpočetné složitosti této metody (pro dim=1 a dim=2) zde se zaměříme na mnohodimenzionální prostory – nechť máme n trénovacích vzorů dimenze d a hledáme trénovací vzor, který je nejblíže neznámému vektoru x • 2 základní techniky, jak lze snížit výpočetní složitost – metoda částečné vzdálenosti – eliminace zbytečných prototypů
Metoda částečné vzdálenosti • definujeme r: r<d • spočteme vzdálenost neznámého vzoru a trénovacího vzoru (prototypu) jen pomocí prvních r příznaků ve vzorech. . . částečná vzdálenost • když je tato částečná vzdálenost příliš velká => nepočítáme dál – když částečná vzdálenost je větší než celá vzdálenost pro doposud nejbližší vzor, pak nemusíme počítat dál
Eliminace zbytečných prototypů • • editace/čistění/kondenzace metoda eliminuje prototypy, v jejichž okolí jsou jen trénovací vzory ze stejné třídy – – • tyto prototypy můžeme odstranit rozhodovací hranice i celková chyba se nezmění algoritmus: 1. begin initialize j← 0, D←trénovací_data, n←počet_prototypů 2. vytvoř úplný Voronoi diagram z množiny D 3. do j←j+1; pro každý prototyp xj’ 4. najdi Voronoiovy sousedy k xj’ 5. if (některý soused je z jiné třídy než xj’) then označ xj’ 6. until j=n 7. odstraň všechny neoznačené prototypy 8. vytvoř Voronoi diagram ze zbývajících (označených) prototypů 9. end
Eliminace zbytečných prototypů • prototyp zůstane zachován: – když prototyp přispívá k rozhodovací hranici (tedy aspoň jeden z jeho sousedů patří k jiné třídě) • vlastnosti metody: – algoritmus negarantuje minimální množinu prototypů (–) – algoritmus sníží výpočetní složitost, aniž by se měnila přesnost výpočtu – nelze dodatečně přidávat trénovací data do „vyčištěného“ modelu (–) • k vyčištení je potřeba znalost všech trénovacích dat (+)
Metriky pro metody nejbližších sousedů • doposud jsme uvažovali jen Eukleidovskou vzdálenost – lze použít i jiné metriky • vlastnosti metriky: – – • nezápornost: D(a, b) ≥ 0 reflexivita: D(a, b) = 0 jen když a = b symetrie: D(a, b) = D(b, a) trojúhelníková nerovnost: D(a, b) + D(b, c) ≥ D(a, c) nejběžnější metriky: – Eukleidovská metrika: – Minkowského metrika:
Metriky pro metody nejbližších sousedů • Minkowského metrika: – k=1. . . Manhatannovská vzdálenost (vzdálenost městských bloků) – k=2. . . Eukleidovslá vzdálenost (vzdálenost městských bloků) – k=∞. . . projekce a, b na jednotlivé souřadnicové osy • na jednotlivých souřadnicových osách najdeme vzdálenosti promítnutých bodů • L∞ je maximum mezi vzdálenostmi v jednotlivých souřadnicových osách každá výplň odpovídá bodům ve vzdálenosti 1 od počátku měřeno Minkowského metrikou
Metriky pro metody nejbližších sousedů • • ne vždy se hodí Eukleidovská metrika např. prostor je transformován tak, že každá ze souřadnicových os se vynásobí nějakou konstantou – Eukleidovské vzdálenosti ve transformovaném prostoru mohou být odlišné od vzdáleností v původním prostoru – toto může mít vliv na nalezení nejbližšího souseda • vlevo je předložen x v původním prostoru => nejbližší bod je černý bod • vpravo je transformovaný prostor, kde byla osa x vynásobena konstantou α=1/3 => nejbližší bod je červený bod
Metriky pro metody nejbližších sousedů • Eukleidovská metrika má také problém s invariancí vůči posunutí • na obrázku x’ reprezentuje ručně psanou cifru 5 • x’(s=3) je stejná cifra jen posunutá o 3 pixely doprava • x 8 je ručně psaná cifra 8 • Eukleidovská vzdálenost D(x’, x’(s=3)) > D(x’, x 8) => tedy klasifikátor bude fungovat špatně • na grafu dole je zachycena vzdálenost původní a posunuté cifry 5 v závislosti na velikosti posunutí • když s>1 pak D(x’, x’(s)) > D(x’, x 8) => tedy klasifikace je chybná
Tangentová metrika a klasifikátor • • tato metrika je výpočetně náročná, ale je invariantní vůči základním transformacím uvažujme r transformací – horizontální a verikální posun, rotace, škálování, čárové ztenčení, . . • konstrukce klasifikátoru – vezmene každý prototyp x’ a aplikujeme jednotlivé transformace Fi(x’, αi) – vytvoříme tangentový vektor TVi pro každou transformaci i TVi = Fi(x’, αi) - x’ – tangentové vektory TVi pro x’ dáme do matice T např. Fi(x’, αi) je rotace o malý úhel αi
Tangentová metrika a klasifikátor • klasifikace neznámého vektoru x – pro každý prototyp x’ spočteme tangentovou vzdálenost minimální hodnotu a najdeme např. metodami diferenciálního počtu – najdeme prototyp s minimální tangentovou vzdáleností od x
Tangentová metrika a klasifikátor – příklad • prototyp ručně psané cifry 5 (v levém dolním rohu) byl ovlivněn 2 transformacemi – rotací a čárovým ztenčením • dostaneme 2 tangentové vektory TV 1 a TV 2 (jsou nakresleny vně os) • každý z 16 obrázků uvnitř os reprezentuje prototyp + lineární kombinace tangentových vektorů s koeficienty a 1, a 2 x’tan = x+a 1 TV 1+a 2 TV 2 malé červené číslo v obrázku je Eukleidovská vzdálenost mezi prototypem a tangentovou aproximací x’tan • • Eukleidovská vzdálenost je 0 pro: a 1 = 1, a 2 = 0 a 1 = 0, a 2 = 1 a 1 = 0, a 2 = 0
Tangentová metrika a klasifikátor – příklad • prototyp x’, který je kombinací dvou základních transformací, spadne na povrch mnoharozměrné plochy (šedá plocha) • tangentový prostor prototypu x’ je r-dimenzionální Eukleidovský prostor určený tangentovými vektory (zde TV 1 a TV 2) • tangentová vzdálenost Dtan(x, x’) je nejmenší Eukleidovská vzdálenost od bodu x k tangentovému prostoru bodu x’ (červená čára k roviny k bodům x 1 a x 2) • Eukleidovská vzdálenost od x’ k x 1 je menší než k bodu x 2 ale u tangentové vzdálenosti je situace je obrácená • Eukleidovská vzdálenost od x 2 k tangentovému prostoru x’ je kvadratická funkce proměnné a (červený paraboloid) • pomocí jednoduché gradientní metody snadno najdeme optimální hodnotu pro parametr a • pomocí nalezené hodnoty a spočteme tangentovou vzdálenost Dtan(x 2, x’)
- Slides: 58