K Nearest Neighbor ANALIZA I IMPLEMENTACIJA ALGORITMA NA
K Nearest Neighbor ANALIZA I IMPLEMENTACIJA ALGORITMA NA DFE PLATFORMI Student: Marko Dimitrijević 2015/3056 Mentor: Profesor dr Veljko Milutinović
Uvod • K najbližih suseda je data mining metoda (algoritam) • Koristi okolinu podatka za predviđanje - “S kim si takav si” • Može da klasifikuje ili da predviđa vrednost podatka • Potreban je inicijalni skup poznatih podataka • Na osnovu njih predviđamo nove vrednosti • Potrebno je izabrati broj suseda koji posmatramo • Udaljenost se meri prema sličnosti atributa podataka 14/2
Atributi • Svaka klasa ima skup atributa koji je opisuje (oblik, boja, veličina) • Atributi treba da budu skalirani prema svom značaju za rešenje • Atribute treba svesti na sličan opseg vrednosti • Atributi mogu biti simbolički ili numerički • Treba eliminisati atribute koji su nepotrebni • Broja atributa utiče na tačnost, ali i na performanse 14/3
Izbor broja suseda K • Malo K daje overfiting, veliko K daje underfiting Isprobati različito K dok se ne nađe optimalna vrednost • Držati K konstantno, menjati radijus Uvek gledati isti broj najbližih suseda, rastojanje nebitno • Držati radijus konstantan, menjati K Uvek gledati susede u okolnoj oblasti konstantnog radijusa • Dozvoliti veliko K, vrednovati susede prema rastojanju Bitniji su bliži susedi, manje vrednovati dalje susede 14/4
Performanse • Računa rastojanje do svih suseda - N • Računa rastojanje po svim dimenzijama - D • Računa sve ponovo za svaki ulazni podatak Mašina ne može da “vidi” šta je blizu • Jednostavan algoritam, velika složenost O(ND) 14/5
Primena, prednosti i mane üNe pravi pretpostavku o podacima • Detekcija lica üJednostavan za implementaciju üNema vremena učenja • Detekcija rukopisa üPrimenljiv na širok spektar problema • Klasifikacija podataka v. Ne toleriše nepotpune podatke v. Veoma skup za izračunavanje • Predviđanje funkcije v. Spor u obradi podataka – vreme v. Treba čuvati mnogo primera – prostor 14/6
Poboljšanja • Ako hoćemo bolje performanse → smanjujemo preciznost Manje test primera – manja rezolucija rešenja Manje atributa – manja opštost rešenja • Primeniti alternativne metode nalaženja suseda Ne računati rastojanje za sve susede • Promeniti platformu na kojoj se obrađuju podaci Pribeći paralelnoj obradi podataka - Maxeler 14/7
Maxeler implementacija KNN algoritma • Iskoristiti prednosti maxeler kartice da se ubrza algoritam Postoji mogućnost za veliki paralelizam Ima ugrađene memorijske module U jednom taktu može da se obavi više operacija • Analizirati algoritam i naći paralelne poslove Izračunavanja rastojanja među tačkama međusobno nezavisno Izračunavanje rastojanja za svaku od dimenzija takođe nezavisno • Napraviti implementaciju tako da kernel ne mora često da se prevodi 14/8
Maxeler implemetacija • U kernelu računati rastojanja između tačaka Broj dimenzija ne pravi usporenje Euklidovo rastojanje računamo u jednom taktu 14/9
Maxeler implemetacija • U kernelu računati rastojanja između tačaka • Paralelno računati rastojanje do svih tačaka Rastojanja se računaju nezavisno jedno od drugog Dobijamo rastojanja do svih tačaka u jednom taktu 14/10
Maxeler implemetacija • U kernelu računati rastojanja između tačaka • Paralelno računati rastojanje do svih tačaka • Početni skup tačaka smestiti na karticu Brži pritup do lokalnih podataka Paralelno čitanje ako su podaci na različitim memorijskim čipovima 14/11
Maxeler implemetacija • U kernelu računati rastojanja između tačaka Ako ima N tačaka i M memorijskih čipova • Paralelno računati rastojanje do svih tačaka Na svaki čip smestiti N/M tačaka • Početni skup tačaka smestiti na karticu Na prvom čipu će biti 1, M+1, 2 M+1…. Tačka • Tačke pametno rasporediti na memorijske čipove Potrebno je N/M ciklusa za sva rastojanja 14/12
Poređenje performansi • Sa porastom trening seta veći dobitak na DFE • Sa porastom dimenzija veći dobitak na DFE 3 2 Traning Dimensions points 500 Testing points CPU cycle Clock[Mhz] time[ns] DFE cycles to one Time to one Total result[ns] time[ms] cycle Clock[Mhz] time[ns] cycles to one Time to one Total result[ns] time[ms] 2 10 1000000 3000 0. 33 120 39. 6 250 4 1 4 4 2 1000000 3000 0. 33 1200 396 250 4 1 4 4 • Na DFE se može raditi i komplikovanija obrada bez gubitka performansi 2 1000000 3000 0. 33 12000 3960 250 4 2 8 8 2 3000 0. 33 120000 39600 250 4 20 80 80 • Svaka operacija na procesoru košta n taktova 3 1000000 10 0 1000000 1000 0 1000000 10000 0 3000 0. 33 180 59. 4 594 250 4 1 4 40 3000 0. 33 1800 5940 250 4 1 4 40 3000 0. 33 18000 59400 250 4 2 8 80 3000 0. 33 180000 594000 250 4 20 80 800 3000 0. 33 240 79. 2 792 250 4 1 4 40 3000 0. 33 2400 7920 250 4 1 4 40 3000 0. 33 24000 79200 250 4 2 8 80 3000 0. 33 240000 792000 250 4 20 80 800 • Ogranicenje je brza memorija kartice • Procesoru treba puno taktova da obradi jedan rezultat 3 3 3 4 4 14/13
Primer Zvezde su trening skup Svaka zvezda ima “Goldilocks” zonu - ogovarajuća temperatura Rastojanje do zone različito za svaku zvezdu Obrađivani podaci su planete Kordinate zvezda i planeta su atributi Tražimo planete pogodne za život! U memoriji čuvati kordinate zveda i radijus do zone U kernel dodati poređenje rastojanja i radijusa 14/14
- Slides: 14