Klasifikace a rozpoznávání Prezentace přednášek M. Španěl, 2009 Ústav počítačové grafiky a multimédií
Téma přednášky Unsupervised techniky
Obsah: Literatura Úvod do shlukování Metriky, základní přístupy, dendrogram, Hierarchické přístupy K-means Vektorová kvantizace Další metody Fuzzy C-Means, GMMs, Mean Shift Grafové metody Jak poznat dobré shlukování? Optimální počet shluků IKR'08: Unsupervised techniky 3
Doporučená literatura Duda, R. O., et al.: Pattern Classification, 2 nd Ed., 2000. http://rii.ricoh.com/~stork/dhs.html Sonka M., Hlavac, V., Boyle, R.: Image Processing, Analysis and Machine Vision, 3rd Ed., 2008. http://visionbook.felk.cvut.cz/ Webb, A.: Statistical Pattern Recognition, 2 nd Ed., 2002. Další podklady pro přednášku Černocký, J.: Statistické rozpoznávání vzorů, SRE. Buhmann, J.: Data Clustering, Tutorial at CVPR 2003. Fung, G.: Lecture Note 4: Clustering, INFS, Univ. of Queensland. IKR'08: Unsupervised techniky 4
Téma přednášky Klasifikace vs. shlukování
Statistické rozpoznávání vzorů Zařazuje objekty/události do předem známých kategorií. Příznakový vektor (feature vector) výsledek pozorování a měření. Bod v příznakovém prostoru (feature space). y x x M 1 2 x n = x Klasifikátor na základě pozorování a měření (příznakového vektoru) zařazuje vzory do tříd. q : X Y IKR'08: Unsupervised techniky 6
Technicky Sensors and preprocessing Segmentation Feature extraction Classifier Class Pattern Teacher Learning algorithm Učení bez učitele (unsupervised learning) Dělení vzorů do tříd podle zadaného kritéria kvality (též. clustering). Jak optimalizovat kritérium? Učení s učitelem (supervised learning) Rozdělení vzorů do tříd je dáno učitelem (classification). Jak generalizovat klasifikaci pro nové objekty? IKR'08: Unsupervised techniky 7
Příklad využití shlukování Kategorizace dokumentů, web stránek, obrázků, apod. IKR'08: Unsupervised techniky 8
Téma přednášky Shlukování
Co je to shlukování? Není k dispozici informace od učitele (non-supervised learning). Nekompletní trénovací data. Dělení vzorů do tříd podle zadaného kritéria. Data patřící jedné třídě jsou si podobnější než data z různých tříd. Jaké kritérium zvolit? IKR'08: Unsupervised techniky 10
IKR'08: Unsupervised techniky 11 Kritéria podobnosti vzorů (vzdálenost) Similarity measures vzdálenost v prostoru Euclidian distance Manhattan distance Cosine distance = = N i p i q i Q P d 1 2 ) ( ), ( = 2 2.. ), ( i i i i q p q p Q P s = = N i p i q i Q P m 1 ), (
Aplikace Segmentace obrazu Dolování v datech (Data Mining) Analýza dat Kategorizace dokumentů Hledání duplikátů Komprese dat IKR'08: Unsupervised techniky 12
Základní přístupy Hierarchical clustering vytváří stromové struktury Tzv. dendrogram Agglomerative na začátku tvoří každý vzorek samostatný shluk, vybíráme nejbližší a spojujeme Divisive jeden shluk, dělíme na menší Partitional clustering statistické přístupy, K-Means Rekurzivní aplikace -> hierarchický clustering IKR'08: Unsupervised techniky 13
Podobnost shluků (angl. inter-cluster similarity) Min (Single-linkage) Max (Complete-linkage) Group average Vzdálenost centroidů apod. IKR'08: Unsupervised techniky 14
Podobnost shluků, pokr. Min podobnost (vzdálenost) dvou nejvíce podobných (nejbližších) vzorků. Max podobnost dvou nejméně podobných vzorků. IKR'08: Unsupervised techniky 15
Podobnost shluků, pokr. Group average průměr ze všech možných dvojic. Vzdálenost centroidů IKR'08: Unsupervised techniky 16
Min kritérium + Neeliptické tvary - Citlivé na šum IKR'08: Unsupervised techniky 17
Max kritérium + Méně citlivé na šum - Problémy s velkými shluky IKR'08: Unsupervised techniky 18
Hierarchické přístupy +/- Nemusíme znát počet shluků -> lze určit z dendrogramu Jakmile jednou spojíme shluky, není cesta zpět! Problémy se Šumem a outliers Různě velkými shluky IKR'08: Unsupervised techniky 19
Identifikace outliers IKR'08: Unsupervised techniky 20
Téma přednášky Non-Hierarchical Clustering
K-Means algoritmus (metoda nejbližších středů) N-dimenzionální příznakové vektory x i Každý shluk reprezentován středem (centroid) µ i Kritériem je minimální vzdálenost od středu shluků N 1,..., y N, µ 1,..., µ k ) = xi yi i= 1 H ( y µ y i {1,, k } přiřazení do shluků. 2 1D varianta shlukování 2D varianta IKR'08: Unsupervised techniky 22
K-Means algoritmus, pokr. 1. Náhodně inicializuj středy regionů µ i. 2. Klasifikuj vektory x i vždy do nejbližšího shluku: y = arg min x µ i k {1,.., K} i k 2 3. Vypočti nové středy regionů: µ' k = 1 N y = k i: y i i = k x i 4. Opakuj kroky (2) a (3), dokud se středy shluků mění. IKR'08: Unsupervised techniky 23
K-Means algoritmus, pokr. Dělí data do kompaktních shluků. IKR'08: Unsupervised techniky 24
Demo č.1 K-Means v Matlabu Černocký, J.: ZRE IKR'08: Unsupervised techniky 25
Problémy K-Means Rozdílná velikost shluků IKR'08: Unsupervised techniky 26
Problémy K-Means, pokr. Rozdílná hustota IKR'08: Unsupervised techniky 27
Problémy K-Means, pokr. Nekulaté shluky IKR'08: Unsupervised techniky 28
Možné řešení? Použít více shluků -> je nutné sloučit! IKR'08: Unsupervised techniky 29
Demo č.2 K-Means v Matlabu IKR'08: Unsupervised techniky 30
Vector Quantization (VQ) Kódování a zpracování P-dimenzionálních vektorů je velmi náročné (P x float). Skalární kvantování není ideální. VQ ~ nalezení kódových vektorů, na které zaokrouhlujeme IKR'08: Unsupervised techniky 31
Trénování kódových vektorů N trénovacích vzorů. Chceme kódovou knihu (codebook) o velikosti K. Trénování ~ clustering Kódování přiřazení vektorů ke shlukům Nejčastěji K-Means Vyhodnocení kvality kódové knihy totální vzdálenost, zkreslení N 1 D = d( pi, Q[ pi ]) N i= 1 iterujeme dokud se D významně mění IKR'08: Unsupervised techniky 32
Linde-Buzo-Gray Reší problémy s inicializací K-Means (nahodný výběr?) LBG postupně dělí shluky v kódové knize Po každém dělení necháme proběhnout K-Means Hierarchický přístup ( top-down ) IKR'08: Unsupervised techniky 33
LBG, pokr. IKR'08: Unsupervised techniky 34
Demo č.3 K-Means v Matlabu Černocký, J.: ZRE IKR'08: Unsupervised techniky 35
Varianty VQ dlouhé vektory, velké N Split VQ vektor rozdělen na několik menších (více codebooků). Algebraická VQ kódové vektory jsou rozmístěny libovolně, ale pozice jsou deterministické (není nutné porovnávat vstup se všemi). Multi-stage VQ 2 codebooky, druhý kvantuje chybu prvního, při dekódování se sčítají. Tree-structured VQ pamatujeme si generace, vektor v k generaci může v k+1 generaci příslušet pouze dětičkám (suboptimální řešeni, ale méně porovnání). IKR'08: Unsupervised techniky 36
Téma přednášky Další metody shlukování
IKR'08: Unsupervised techniky 38 Fuzzy C-Means algoritmus Jim Bezdek, 1981 Každý bod x patří s určitou pravděpodobností u(x) do všech shluků (~ fuzzy logic). Střed shluku průměr všech bodů x i váhovaný pravděpodobností s jakou do shluku náleží 1 ) ( 1 = = K k u k x = = = N n m n k N n n m n k k x u x x u 1 1 ) ( ) ( µ
Hard vs. Soft Classifier Pevné přiřazení do shluku (K-Means) FCM IKR'08: Unsupervised techniky 39
IKR'08: Unsupervised techniky 40 Fuzzy C-Means algoritmus, pokr. Pravděpodobnost u k (x), že bod x patří do k-tého shluku je úměrná převrácené hodnotě vzdálenosti od středu shluku. po normalizaci a fuzzifikaci m ~ 1 degraduje na k-means = = K j m j k k x d x d x u 1 1) 2/( ), ( ), ( 1 ) ( µ µ ), ( 1 ) ( x d x u k k µ =
Příklad č. Fuzzy C-Means Obraz s nehomogenní m osvětlením a šumem. Segmentovaný obraz (bez potlačení vlivu osvětlení). Segmentovaný obraz, adaptivní FCM algoritmus. IKR'08: Unsupervised techniky 41
Gaussian Mixture Models (GMMs) Každá třída popsána jednou Gaussovkou! Neznáme přířazení vektorů y k do tříd, ani parametry Gaussovek. Obdoba GMM v rozpoznávání (~jedna třída, ale několik neznámých Gaussovek). IKR'08: Unsupervised techniky 42
Gaussian Mixture Models, pokr. Data modelujeme směsí Gaussových (normálních) rozložení pravděpodobnosti. p( x ω ) = α N( x; µ, Σ kde α ij jsou váhy jednotlivých Gaussovek (Σ=1). i= 1 Celková log-likelihood pro všechna data: ln p( D Θ) = j n M 0 0 0.5 1 (b) S maximalizací máme problém (příliš parametrů, suma v logaritmu) iterativní EM algoritmus. M ji ln k = 1 i= 1 α jin ( x k ji ; µ ji ji ), Σ ji ) 1 0.5 IKR'08: Unsupervised techniky 43
Příklad č. GMMs IKR'08: Unsupervised techniky 44
Demo č.4 Ukázka GMM pro shlukování IKR'08: Unsupervised techniky 45
Mean Shift algoritmus Předpoklad, že hustota bodů x i v prostoru roste směrem ke středu shluku. IKR'08: Unsupervised techniky 46
IKR'08: Unsupervised techniky 47 Mean Shift algoritmus, pokr. Hustotu f() lze vyhodnotit lokálně: k(x) gaussian kernel = = N i i d h k Nh f 1 1 ) ( x x x = 2 2 1 exp 2 1 ) ( σ µ π σ x x k
IKR'08: Unsupervised techniky 48 Mean Shift algoritmus, pokr. Hledáme trajektorii pohybu tzv. mean shift vectors + Je schopen analyzovat podlouhlé shluky. x x x x x x x = = = N i i N i i i h k h k m 1 2 1 2 ) 1 ( ) 1 ( ) (
Příklad č. Mean Shift algoritmus Comanciu D., Meer. P: Mean Shift: A Robust Approach Toward Feature Space Analysis, 2002. IKR'08: Unsupervised techniky 49
Příklad č. Segmentace Mean Shift algoritmem IKR'08: Unsupervised techniky 50
Demo č.5 Mean Shift v Matlabu IKR'08: Unsupervised techniky 51
Téma přednášky Grafové metody
Shlukování na základě spojitosti Vektory ve stejném shluku Existuje cesta s malými rozdíly. Vektory v různých shlucích Všechny cesty obsahují alespoň jeden velký rozdíl. Single linkage Začíná s N shluky (N počet vektorů). V každém kroku spoj dva shluky, které jsou k sobě nejblíže. IKR'08: Unsupervised techniky 53
Shlukování na základě spojitosti, pokr. Problém: jaké zvolit kritérium spojitosti, aby bylo odolné vůči izolovaným bodům a šumu? k-means Single linkage IKR'08: Unsupervised techniky 54
Path-based clustering Body v prostoru jsou popsány vzájemnou rozdílností (dissimilarity). Matice rozdílností všech vektorů x i se označuje D. Funkce y: X {1,,M} přiřazuje každému vektoru index třídy. Rozdílnost dvou bodů: D ij min max D p Pij ( y) 1 h p 1 = p h ph+ 1 P ij (y) množina všech možných cest z bodu x i do x j v rámci stejné třídy. IKR'08: Unsupervised techniky 55
Path-based clustering Minimalizace účelové funkce M 1 H ( y; D) = D ( y; D) ij k = 1 Nk i, j: y = y = k All-Pairs-Shortest-Path problem (např. Floyd-Warshall algoritmus). Fisher, B., Buhmann, J. M.: Data Resampling for Path Based Clustering, 2002. i j IKR'08: Unsupervised techniky 56
Příklad č. Path-based clustering IKR'08: Unsupervised techniky 57
Téma přednášky Jak určit optimální počet shluků?
Cluster validity Shluková analýza zavádí strukturu do dat. Nesprávný počet shluků Nesprávný model tříd Jak ověřit, že model dat je správný? Jak zjistit optimální počet tříd? IKR'08: Unsupervised techniky 59
Complexity-based validity Vyber co nejjednodušší model, který dobře popisuje data. Záporná log-likelihood neustále klesá s rostoucím počtem tříd korekce penalizační funkcí. Např.: MDL (Minimum Description Length) a BIC (Bayesian Information Criterion). IKR'08: Unsupervised techniky 60
Cross Validated Likelihood Aplikuje se klasická cross validace. Natrénuj model na jednéčásti dat a vyhodnoť neg. loglikelihood na druhé části. Vyber takový počet tříd, pro který byl průměr přes několik pokusů nejmenší. Vhodné zejména pro GMMs. + Snadné na implementaci. Výpočetně náročné. IKR'08: Unsupervised techniky 61
Stability-based validation Idea: Natrénované modely by na dvou skupinách dat ze stejného zdroje měly být stejné. Stabilita míra shody obou modelů. IKR'08: Unsupervised techniky 62
Stability-based validation, pokr. V praxi máme pouze jednu trénovací sadu: -> Vyhodnoť stabilitu řešení pro různé počty shluků na podvzorkovaných datech. Jak vyhodnotit stabilitu? Míra rozdílnosti (dissimilarity) = počet různě klasifikovaných vzorů. Problémy: Jak vyhodnotit na disjunktních množinách dat? Silně závislé na počtu tříd. 50% hrůza pro k = 2, ale dobré pro k = 10 IKR'08: Unsupervised techniky 63
Disjunktní množiny datové sady Rozšířenířešení z množiny A do B: 1. Natrénovat na množině A. 2. Otestovat na množině B. 3. Porovnat výsledky obou řešení nad B. IKR'08: Unsupervised techniky 64
Příklad č. Stability-based validation IKR'08: Unsupervised techniky 65