Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Klastrování - II.

Podobné prezentace


Prezentace na téma: "Klastrování - II."— Transkript prezentace:

1 Klastrování - II

2 Klastrování - II obsah hierarchické shlukování
algoritmus nejbližšího souseda algoritmus nejvzdálenějšího souseda krokově optimální hierarchické shlukování sekvenční algoritmus k-středů online algoritmy kompetiční učení shlukovací algoritmus „předchůdce-následník“ adaptivní rezonance učení s kritikou

3 Hierarchické klastrování
doposud: zatím jsme vytvořili jen disjunktní shluky .... plochý popis dat v praxi: shluky jsou tvořeny podshluky a ty jsou opět tvořeny podshluky, .... hierarchické klastrování uvažujme posloupnost rozdělení n vzorů do c shluků: 1) nejprve rozdělíme n vzorů do n shluků a tedy každý vzor bude mít svůj vlastní shluk 2) v následujícím dělení bude do n-1 shluků ..... n) všechny shluky padnou do jediného shluku => na úrovni k rozdělujeme do c = n – k + 1 shluků když dva libovolné vzory x a x’ jsou na úrovni k seskupeny do jednoho shluku, pak na všech dalších úrovních již zůstanou seskupeny

4 Hierarchické klastrování
reprezentace hierarchického klastrování množiny na každé úrovni shluky mohou obsahovat množiny, které jsou podshluky dendogram ...... na úrovni k=1 má každý vzor svůj shluk pro k=2 došlo k seskupení x6 a x7 vpravo je zobrazena stupnice, která měří míru podobnosti mezi shluky např. pro k=5 je podobnost shluků 60

5 Hierarchické klastrování
metody hierarchického klastrování v praxi se ukazuje, že tyto metody jsou jedny z nejlepších (díky své jednoduchosti) typy hierarchického klastrování shlukující metody zdola nahoru začíná s n shluky, které obsahují jediný vzor postupně jsou shluky spojovány do větších shluků dělící metody shora dolů začíná s jediným shlukem, který obsahuje všechny vzory postupně jsou shluky děleny na menší shluky

6 Shlukující hierarchické algoritmy
základní algoritmus shlukujícího klastrování c je požadovaný počet výsledných shluků 1. begin initialize c, c’←n, Di←{xi} i=1,...,n 2. do c’←c’+1 najdeme nejbližší shluky Di a Dj sloučíme shluky Di a Dj 5. until c=c’ 6. return c shluků 7. end procedura skončí, když je dosaženo požadovaného počtu shluků když c=1, dostaneme dendogram složitost O(cn2d) a typicky n>>c zbývá určit, jak budeme měřit vzdálenost mezi shluky a tedy jak najdeme dva nejbližší shluky

7 Algoritmus nejbližšího souseda
příklad shlukujícího hierarchického klastrování k měření vzdálenosti mezi shluky použijeme funkci dmin(∙, ∙) algoritmus jednoduchého propojení (single linkage alg.) navíc přidáme ukončující podmínku algoritmu algoritmus končí v okamžiku, kdy vzdálenost mezi nejbližšími shluky je větší než daný práh zavedeme graf vzory představují uzly grafu hrany tvoří cesty mezi uzly v daném shluku když použijeme funkci dmin(∙, ∙) jako vzdálenost mezi shluky => nejbližší shluky jsou určeny dvojicí nejbližších uzlů sloučení shluků Di a Dj odpovídá přidání hrany mezi nejbližším párem uzlů v Di a Dj hrany spojující shluky jdou vždy mezi rozdílními shluky => výsledný graf neobsahuje cykly => algoritmus vytvoří strom kdybychom nechali algoritmus běžet dokud nejsou všechny shluky spojeny => dostaneme minimální kostru grafu

8 Algoritmus nejbližšího souseda - příklad
testovací vzory (červené a černé body) byly vygenerovány podle dvou normálních rozdělení vlevo na data byl použit shlukující algoritmus nejbližšího souseda, který dobře aproximoval normální rozdělení navíc byly vytvořeny 3 shluky, které obsahovaly po jediném vzoru vpravo k vygenerovaným vzorům přidáme další nový bod a algoritmus byl zopakován vznikl most mezi velkými shluky tedy velké shluky byly spojeny nedošlo k dobré aproximaci normálních rozdělení => algoritmus je citlivý na šum a změny v poloze bodů

9 Algoritmus nejvzdálenějšího souseda
příklad shlukujícího hierarchického shlukování k měření vzdálenosti mezi shluky použijeme funkci dmax(∙, ∙) algoritmus úplného propojení (complete linkage alg.) navíc přidáme ukončující podmínku algoritmu algoritmus končí v okamžiku, kdy vzdálenost mezi nejbližšími shluky je větší než daný práh algoritmus omezuje růst oválných shluků zavedeme graf vzory představují uzly grafu všechny uzly v daném shluku jsou propojeny každý shluk vytvoří úplný podgraf vzdálenost mezi 2 shluky je určena nejvzdálenějšími uzly ve shlucích když jsou nejbližší shluky sloučeny => do grafu se přidají hrany mezi uzly z různých shluků

10 Shlukující hierarchické algoritmy - míry
míry, které měří maximum nebo minimum, představují extrémy při měření vzdáleností mezi shluky jsou citlivé na „bludné vzory“ řešení: použijeme průměrů davg(∙, ∙) nebo dmean(∙, ∙) apod výpočetně nejjednodušší je dmean(∙, ∙) ostatní metody vyžadují spočtení všech nj∙nj dvojic vzdáleností ║ x - x’║

11 Krokově optimální hierarchické shlukování
shluky se zvětšují tím, že dochází k jejich slučování vždy se sloučí nejbližší dva shluky když je míra vzdálenosti mezi shluky vybrána libovolně => málokdy můžeme říci, zda výsledné rozdělení odpovídá extrému nějaké kriteriální funkce algoritmus hierarchického shlukování vytvoří shluky jako výsledek shlukujícího procesu základní algoritmus hierarchického shlukování lze snadno modifikovat, abychom dostali krokově optimální proces 1. begin initialize c, c’←n, Di←{xi} i=1,...,n 2. do c’←c’+1 najdeme shluky Di a Dj, jejichž slitím dojde k nejmenší změně kriteriální funkce sloučíme shluky Di a Dj 5. until c=c’ 6. return c shluků 7. end

12 Krokově optimální hierarchické shlukování
uvažujme, že kriteriální funkce je Je (součet mocnin chyb) jak mají vypadat shluky Di a Dj, které vedou k nejmenšímu nárůstu Je? analýza je velmi podobná analýze iterativní optimalizace v každém kroku najdeme dvojici shluků, jejichž sloučením dojde k nejmenšímu nárůstu Je to odpovídá dvojici shluků Di a Dj, pro kterou je minimální při výběru shluků, které mají být sloučeny, se uvažuje: počet vzorů v daném shluku vzdálenost mezi shluky vlastnosti funkce de(∙, ∙) funkce upřednostňuje slučování malých shluků s velkými shluky funkce potlačuje slučování středně velkých shluků výsledné dělení nemusí minimalizovat Je, ale typicky poskytne dobrý startovací bod pro dalši optimalizace

13 Sekvenční algoritmus k-středů
jednoduchý shlukovací algoritmus, který se snaží najít c středů ve vstupních datech vstup: n vzorů a počet výsledných středů c výstup: výsledné středy μ1,..., μc algoritmus: 1. begin initialize n, c, μ1,..., μc 2. do klasifikuj n vzorů k jejich nejbližšímu μi přepočti μi 4. until žádný μi se nezměnil 6. return μ1,..., μc 7. end složitost: O(ndcT) kde d je dimenze vzorů a T je počet iterací

14 Sekvenční algoritmus k-středů
příklad: uvažujeme 2D vzory a 3 shluky růžově je iniciální (náhodné) rozdělení středů puntík .... střed shluku čáry ... Voronoiova mřížka vzory v každé z Voronoiových buněk jsou použity pro spočtení nového středu, ... algoritmus na obrázku zkonvergoval v 3 iteracích (červené body a čáry)

15 Online shlukování zatím se všechny algoritmy pokoušely optimalizovat globální kriteriální funkci se známým (nebo předpokládaným) počtem shluků toto nemusí dát vždy očekávané nebo přiměřené výsledky často můžeme dostat strukturu shluků, která je velmi citlivá na malé změny kriteriální funkce není stabilní (neustále se mění) tato citlivost se pak projeví zejména u online učení, kde je nutné doučovat nová a nová data při online učení musí být systém adaptivní musí být schopen vytvářet nové shluky (když to nová data „potřebují“) problém stability/plasticity někdy je vytvéřená struktura shluků nestabilní a nová data movou způsobit zásadní reorganizaci struktury => pak je těžké dát nějaký význam vytvářeným shlukům

16 Online shlukování jeden zdroj problémů při online učení spočívá v globální kriterální funkci každý vzor může mít vliv na pozici shluku (nezávisle na tom, jak daleko daný vzor je) => toto pozorování vede ke vzniku tzv. kompetičního učení změna parametrů systému při učení je omezena jen na shluky, které jsou nejvíce podobné předloženému vzoru struktura shluků, které nejsou podobné aktuálnímu vzoru není kompetičním učením nijak dotčena kompetiční učení je velmi podobné sekvenčnímu algoritmu k-středů na začátku je zvolen počet shluků a jejich středy jsou inicializovány během učení je aktuální vzor klasifikován do jednoho ze shluků následně dojde k aktualizaci nejpodobnějších shluku(ů) (shluky, které jsou „příliš daleko“ nejsou aktualizovány) nevýhoda kompetiční učení globální kriteriální funkce, která se minimalizuje, nemusí být snadno definovatelná analýza algoritmu je typicky velmi těžká

17 Kompetiční učení kompetiční učení pochází z oblasti neuronových sítí a tedy převezmeme jejich terminologii předpoklady: d-dimenzionální vzory jsou rozšířené o x0 = 1 vzory jsou normalizované ║x║ = 1 => vzory leží na povrchu (d+1)-dimenzionální koule pro kompetiční učení použijeme neuronovou síť:

18 Kompetiční učení – neuronová síť
neuronová síť má 2 vrstvy (d+1) vstupních jednotek c výstupních (kompetičních) neuronů každý výstupní neuron odpovídá jednomu shluku po předložení vzoru x: každý výstupní neuron spočte svoji aktivaci net: netj = wT∙x aktualizují se jen váhy neuronu s největší aktivací na základě předloženého vzoru x tzv. vítězný neuron (vítězný shluk) dochází k potlačení aktivity všech neuronů (kromě vítězného neuronu) tohoto lze dosáhnout implementací kompetice mezi výstupními neurony ... červené šipky

19 Kompetiční učení - postup
inicializace vah váhy výstupních neuronů jsou nastaveny náhodně (váhy musí být normalizovány!) např. váhy se inicializují na hodnoty náhodně vybraných vzorů učení učení se týká jen vítězného neuronu při učení je snaha změnit neuron tak, aby se více „podobal“ předloženému vzoru w(t+1) = w(t) + ηx kde η je parametr učení normalizace vah po aktualizaci vah dojde k normalizaci vah, aby platilo že ║w║ = 1 normalizace vah zaručí, že aktivace wTx neuronu závisí jen na úhlu mezi w a x a nezávisí na velikosti w bez normalizace: jedna váha by mohla neustále růst aktivace tohoto neuronu byla stále největší došlo by k tomu, že ostatní shluky by se nemohly učit

20 Kompetiční učení - algoritmus
algoritmus kompetičního učení 1. begin initialize η, n, c, k, w1,..., wc 2. xi ← {1,xi}, i=1,...,n // rozšíření vzorů 3. xi ← xi/║xi║ i=1,...,n // normování vzorů 4. do náhodně vyber vzor x j ← argmaxk wkT∙x // klasifikace vzoru x wj ← wj + η∙x // aktualizace vah wj ← wj / ║wj║ // normování vah 8. until (během k pokusů nedošlo k žádné významné změně w) 9. return w1,..., wc 10. end příklad zobrazeny trajektorie 3 středů shluků podle předkládaných vzorů

21 Kompetiční učení - vlastnosti
při kompetičním učení nemáme záruku, že algoritmus skončí a to dokonce i pro konečně vzorů! řádek 8 v algoritmu nemusí být nikdy splněn a tedy váhy se budou neustále měnit jednoduchá heuristika parametr učení necháme klesat v čase např. η(t) = η(0) ∙ αt kde 0 < α < 1, t je čas po naučení sítě přidáme další vzor tento vzor nelze naučit, protože parametr učení je již příliš malý a tedy změna vah bude téměř nulová

22 Neznámý počet shluků co když neznáme počet shluků?
1. zkoušíme různé hodnoty c a srovnáváme kriteriální funkce pro daná shlukování (různý počet shluků) když najdeme velkou mezeru v kriteriální funkci => „přirozený“ počet shluků 2. určíme práh, kdy máme vytvořit nový shluk tato metoda je užitečná pro online případy metoda závisí na pořadí vybírání vzorů => shlukovací algoritmus „přechůdce-následník“ (leader-follower clustering)

23 Shlukovací algoritmus „přechůdce-následník“
1. begin initialize η, θ 2. w1 ← x 3. do vezmi další vzor x j ← argmink ║x - wk║ // nalezení nejbližšího shluku if ║x - wj║ < θ then wj ← wj + η∙x else přidej nové w ← x w ← w / ║w║ // normování vah 10. until (nejsou žádné nové vzory) 11. return w1,w2 ,... 12. end

24 Shlukovací algoritmus „přechůdce-následník“
hodnota prahu θ implicitně určuje počet shluků velké θ .... málo shluků malé θ .... hodně malých shluků pokud nemáme žádnou informaci o datech pak nelze obecne nic říci o hodnotě θ základní verze algoritmu nijak neslučuje shluky, které jsou velmi podobmé

25 Adaptivní rezonance shlukující algoritmus „předchůdce-následník“ je jádrem obecné metody na navrhování samoorganizující se neuronové sítě ... tzv. ART-sítě (adaptive resonance theory) ART-teorie byla primárně vyvinuta k modelování biologických procesů jak by biologické neuronové sítě mohly být schopny rozpoznávat neočekávané vzory a jak by je mohly zapamatovat pro další použití jeden z neočekávaných vzorů se může stát středem nového shluku jeden z cílů ART je zajistit, aby i málo odlišné instance tohoto vzoru mohly aktualizovat střed shluku, ale přesto aby si shluk zachoval svoje základní vlastnosti

26 Adaptivní rezonance během kompetičního učení může dojít k nestabilitě:
uvažujme situaci dva vzory x1 a x2 dva shluky určené váhovými vektory w1 a w2 v čase t = 0 x1 patří do shluku 1 x2 patří do shluku 2 nyní předpokládejme, že vzor x1 byl několikrát vybrán a předložen síti během kompetičního učení se w1 „posunul“ směrem k x1 nastala situace, že x2 patří do shluku 1 a to i když vzor x2 nebyl vůbec vybrán k aktualizaci

27 Adaptivní rezonance ART lze aplikovat pro různé neuronové sítě
pro jednoduchost budeme uvažovat jen jednoduchou 2-vrstvou strukturu síť má 2 vrstvy vstupní výstupní (neurony shluků)

28 Adaptivní rezonance síť má 2 vrstvy vstupní vrstva výstupní vrstva
výstupní (neurony shluků) vstupní vrstva je plně propojena s výstupní vrstvou ... w tyto vazby určují středy shluků výstupní vrstva dostane vstup od vstupní vrstvy a provádí kompetici tedy hledá se neuron, který má největší aktivaci navíc je výstupní vrstva je propojena s výstupní vrstvou přes zpětné vazby ... ŵ

29 Adaptivní rezonance zpětné vazby kvalita shody
slouží ke zjištění skutečné podobnosti předloženého vzoru a rozpoznaného středu shluku síť používá zpětnou vazbu k tomu, aby poslala informaci o nalezeném středu shluku zpět do vstupní vrstvy ve vstupní vrstvě se pak měří shoda mezi předloženým vstupem a nalezeným středem shluku kvalita shody určena parametrem ρ ... vigilance tento parametr zadává uživatel

30 Adaptivní rezonance když je shoda mezi vstupem a nalezeným
středem shluku velmi malá vítězný neuron je dočasně zmrazen pomocí reset-signálu hledá se další nejpodobnější shluk tento proces se opakuje => signál rezonuje v síti a hledá se nejvhodnější shluk když je vhodný shluk nalezen shluk je aktualizován podle předloženého vzoru když je vhodný shluk není nalezen vytvoří se nový shluk a ten je aktualizován podle předloženého vzoru

31 Učení s kritikou zatím jsme uvažovali učení
s učitelem .... známe informaci o požadovaném výstupu bez učitele .... neznáme informaci o požadovaném výstupu může nastat situace, kdy učitel zná jen informaci, zda nalezená třída je správná nebo není tzv. učení s kritikou kritika se snadno zabuduje do kompetičního učení a adaptivní rezonance např. síť nalezne shluk podle předloženého vzoru kritik řekne, zda je shluk zprávný nebo ne pokud je nalezený shluk správný => proběhne standardní učení pokud nalezený shluk není správný => žádné učení neproběhne


Stáhnout ppt "Klastrování - II."

Podobné prezentace


Reklamy Google