Agruparea spectrală

Tehnicile de grupare spectrală utilizează spectrul ( valorile proprii ) ale matricei de similaritate a datelor pentru a efectua reducerea dimensionalității înainte de gruparea în spații dimensionale inferioare. Matricea de similaritate este dată ca intrare și constă în estimări cantitative ale similitudinii relative a fiecărei perechi de puncte din date.

Când este aplicată la segmentarea imaginii, gruparea spectrală este cunoscută sub denumirea de clustering de caracteristici bazate pe segmentare .

Algoritmi

Având în vedere un set enumerat de puncte de date, matricea de similaritate poate fi definită ca o matrice simetrică în care elementele reprezintă o măsură a similitudinii între punctele de date cu indici și . Principiul general al grupării spectrale este de a folosi metoda standard de grupare (există multe astfel de metode, metoda k-means este discutată mai jos ) pe vectorii proprii semnificativi ai matricei Kirchhoff a matricei . Există multe moduri diferite de a defini matricea Kirchhoff, care are interpretări matematice diferite, astfel încât gruparea va avea și interpretări diferite. Vectorii proprii semnificativi sunt cei care corespund celor mai mici valori proprii ale matricei Kirchhoff, cu excepția valorilor proprii 0. Pentru eficiența computațională, acești vectori proprii sunt adesea calculați ca vectori proprii corespunzători unora dintre cele mai mari valori proprii ale unui funcţia matricei Kirchhoff.

O tehnică de grupare spectrală este algoritmul de secțiune normalizată (sau algoritmul Shi-Malik ) propus de Jiambo Shi și Jitendra Malik [1] , o metodă utilizată pe scară largă pentru segmentarea imaginilor . Algoritmul împarte punctele în două seturi pe baza vectorului propriu corespunzător celei de-a doua valori proprii ca mărime a matricei Kirchhoff normalizate simetric, dată de formula

unde este matricea diagonală

Algoritmul echivalent matematic [2] folosește un vector propriu corespunzător celei mai mari valori proprii a matricei Kirchhoff normalizate de mers aleator . Algoritmul Meil–Shi a fost testat în contextul hărților de difuzie , care s-au descoperit că au conexiuni cu mecanica cuantică computațională [3] .

O altă posibilitate este folosirea matricei Kirchhoff dată de expresie

mai degrabă decât o matrice Kirchhoff normalizată simetric.

Partiționarea se poate face în diferite moduri, cum ar fi calcularea medianei componentelor celui de-al doilea cel mai mic vector propriu și plasarea tuturor punctelor în , ale căror componente în sunt mai mari decât , restul punctelor sunt plasate în . Algoritmul poate fi utilizat pentru gruparea ierarhică prin partiționarea secvenţială a submulţilor într-un mod similar.

Dacă matricea de similitudine nu a fost încă construită algebric, eficiența grupării spectrale poate fi îmbunătățită dacă rezolvarea problemei corespunzătoare - căutarea valorilor proprii - este efectuată printr -o metodă fără matrice (fără manipulare explicită sau chiar calcul ). a matricei de similaritate), cum ar fi algoritmul Lanczos .

Pentru graficele de dimensiuni mari, a doua valoare proprie a matricei Kirchhoff (normalizate) a graficului este adesea prost condiționată , ceea ce duce la o convergență lentă a metodelor iterative de găsire a valorilor proprii. Precondiționarea este o tehnică cheie pentru îmbunătățirea convergenței, de exemplu în metoda LOBPCG fără matrice . Agruparea spectrală a fost aplicată cu succes la grafice mari, mai întâi prin recunoașterea structurii unei comunități de rețea și apoi prin gruparea comunității [4] .

Agruparea spectrală este strâns legată de reducerea neliniară a dimensionalității și tehnicile de reducere a dimensionalității, cum ar fi imbricarea liniară locală, pot fi utilizate pentru a reduce eroarea de la zgomot sau valorile aberante din observații [5] .

Software-ul gratuit pentru implementarea grupării spectrale este disponibil în proiecte open source mari, cum ar fi Scikit-learn [6] , MLlib pentru clustering bazat pe pseudovalori proprii folosind metoda iterației puterii [7] , limbajul R [8] .

Relația cu k -means

Problema k - means cu un nucleu neliniar este o extensie a problemei k - means în care punctele de intrare sunt mapate neliniar într-un spațiu de caracteristici cu dimensiuni mari folosind o funcție de nucleu . Problema k -means ponderată cu un nucleu neliniar extinde problema mai mult prin specificarea ponderii fiecărui cluster ca valoare invers proporțională cu numărul de elemente ale clusterului,

Fie o matrice de coeficienți normalizați pentru fiecare punct al oricărui cluster, unde , dacă și 0 în caz contrar. Fie matricea nucleului pentru toate punctele. O problemă ponderată k -means cu un nucleu neliniar cu n puncte și k clustere este definită ca o problemă de maximizare

in conditii

In acelasi timp . În plus, există o constrângere asupra coeficienților

,

unde este un vector de unități.

Sarcina poate fi convertită în

Această problemă este echivalentă cu problema grupării spectrale atunci când constrângerea este relaxată. În special, o problemă ponderată k -means cu un nucleu neliniar poate fi reformulată ca o problemă de grupare spectrală (partiționare grafică) și invers. Ieșirea algoritmului este reprezentată de vectori proprii care nu îndeplinesc restricțiile privind variabilele indicator definite de vector . Prin urmare, este necesară post-procesarea vectorilor proprii pentru ca sarcinile să fie echivalente [9] . Transformarea problemei de clustering spectral într-o problemă ponderată de k -means cu un nucleu neliniar reduce semnificativ costurile de calcul [10] .

Măsuri pentru compararea grupării

Ravi Kannan, Santosh Vempala și Adrian Wetta [11] au propus o măsură bicriterială pentru determinarea calității grupării. Ei spun că o grupare este (α, ε)-clustering dacă conductivitatea fiecărui cluster este de cel puțin α și greutatea muchiilor interclusterelor nu depășește ε fracțiune din greutatea tuturor muchiilor din grafic. În același articol, ei iau în considerare și doi algoritmi de aproximare.

Vezi și

Note

  1. Shi, Malik, 2000 .
  2. Meilă, Shi, 2001 , p. 873–879.
  3. Scott, Therani, Wang, 2017 , p. 1-17.
  4. Zare, Shooshtari, Gupta, Brinkman, 2010 , p. 403.
  5. Arias-Castro, Chen, Lerman, 2011 , p. 1537–1587
  6. 2.3. Clustering - documentația scikit-learn 0.20.2 . Preluat la 28 iunie 2017. Arhivat din original la 15 mai 2015.
  7. Clustering - API bazat pe RDD - Documentație Spark 2.4.0 . Preluat la 28 iunie 2017. Arhivat din original la 3 iulie 2017.
  8. CRAN - Pachetul kernlab . Consultat la 28 iunie 2017. Arhivat din original pe 27 iunie 2017.
  9. Dhillon, Guan, Kulis, 2004 , p. 551–556.
  10. Dhillon, Guan, Kulis, 2007 , p. 1-14.
  11. Kannan, Vempala, Vetta, 2000 , p. 497–515.

Literatură