HomeAnaliza slik

Analiza slik

Četrti del: analiza slik

To interaktivno učno gradivo je del spremljevalnega gradiva za strokovno usposabljanje Podatkovna analitika in odkrivanje skupin v podatkih, ki ponuja sklop znanj in veščin za kompetenčni profil Podatkovni analitik (EQF 6), razvit v sklopu evropskega projekta ARISA. Zapiski pokrivajo ključne koncepte in pristope raziskovalne analize podatkov, strojnega učenja in vizualne analitike. Na strokovnem usposabljanju boste skozi praktično delo spoznali, kako z vizualnim programiranjem in uporabo orodja Orange odkrivati vzorce in pridobiti vpogled v podatke s pomočjo metod podatkovnega rudarjenja.

Gradivo sta pripravila Blaž Zupan in Janez Demšar. Ajda Pretnar Žagar in Erika Funa sta gradivo prevedli v slovenščino. Cenimo vso pomoč članov Laboratorija za bioinformatiko na Univerzi v Ljubljani, Slovenija.

Gradivo je na voljo pod licenco Creative Commons CC BY-NC-ND.

Chapter 1: Vložitve slik

Vsi podatkovni nizi, s katerimi smo se doslej srečali, so bili v matrični (tabelarni) obliki, kjer so bili objekti – kot so države, študenti ali rože – opisani z vrstičnimi vektorji, ki predstavljajo nabor značilnosti. Vendar vsi podatki ne ustrezajo tej obliki. Pomislite na zbirke besedilnih člankov, nukleotidnih zaporedij, zvočnih posnetkov ali slik. Idealno bi bilo, da te vrste podatkov transformiramo v enako matrično obliko, kot smo jo uporabljali do sedaj. Tako bi lahko zbirke slik predstavili kot matrike in jih analizirali s pomočjo znanih tehnik gručenja.

Do nedavnega je bilo iskanje uporabne predstavitve kompleksnih objektov, kot so slike, izziv. Dandanes pa globoko učenje omogoča razvoj modelov, ki kompleksne objekte pretvarjajo v številske vektorje. Učenje takšnih modelov je sicer računsko zahtevno in zahteva velike podatkovne nize, vendar pa lahko uporabimo prednaučene modele, s katerimi učinkovito predstavimo podatke s številskimi spremenljivkami.

Pomislite na slike. Ko ljudje zaznamo sliko, informacije obdelujemo hierarhično – začenši s piksli, nato prepoznamo madeže in koščke, in na koncu identificiramo višje strukture, kot so kvadrati, trikotniki in okvirji, kar vodi k prepoznavanju kompleksnih objektov. Umetne nevronske mreže v globokem učenju ta proces posnemajo s pomočjo slojev računalniških enot, ki delujejo kot modeli logistične regresije, obogateni z dodatnimi mehanizmi, kot so izračunavanje uteženih vsot in maksimumov ali selektivna obdelava podmnožic vhodnih podatkov – podrobnosti, ki jih tukaj ne bomo obravnavali.

Če sliko vnesemo v takšno mrežo in vzamemo izhode iz globljih slojev – običajno iz predzadnjega sloja – dobimo vektor, ki predstavlja sliko in kodira njen pomen. Ta vektor vsebuje številske vrednosti, ki v idealnem primeru zajamejo informacije o višjih oblikah ali celo objektih znotraj slike. Čeprav ta predstavitev ni nujno razložljiva na način, ki ga lahko razume človek, je še vedno dragocena, saj kodira smiselne značilnosti. S to predstavitvijo lahko tehnike nenadzorovanega strojnega učenja uporabimo na slikah, kar omogoča odkrivanje skupin s skupnim pomenom.

Proces pretvarjanja slik v številske vektorje, kot je opisan zgoraj, imenujemo vložitev. Sedaj pa poglejmo, kako to tehniko uporabimo v Orangeu. Začeli bomo s sledečim delotokom.

Prenesite zip datoteko s skicami živali in jo naložite v Orange s pomočjo gradnika Import Images.

V delotoku najprej naložimo slike iz mape in jih pregledamo. V gradniku Data Table lahko vidimo, da Orange shranjuje lokacije in velikosti datotek, vendar nimamo na voljo nobenih smiselnih spremenljivk (vse spremenljivke so meta podatki). Za vizualizacijo slik, navedenih v Data Table, uporabimo gradnik Image Viewer. Ta korak je uporaben za preverjanje, ali je struktura mape pravilno prebrana in ali so v analizo vključene vse predvidene slike.

Najpomembnejši del našega delotoka je korak vložitve. Globoko učenje zahteva ogromno podatkov (tisoče do milijone primerkov) in precej računalniške moči za učenje mreže. Namesto učenja novega modela zato uporabimo prednaučeni model. Kljub temu proces vložitev vzame nekaj časa, zato Orange tega ne izvaja lokalno, ampak uporabi strežnik, dostopen preko gradnika Image Embedding. Ta korak pretvori slike v nabor 2048 numeričnih značilnosti, ki se nato dodajo k tabeli poleg slikovnih meta-podatkov.

Vložitev povzroči, da so slike opisane z na tisoče spremenljivkami. Zaradi prekletstva dimenzionalnosti evklidska razdalja postane neučinkovita: v visokodimenzionalnih prostorih se razdalje med točkami zbližujejo, zaradi česar se zdi, da so vse slike med seboj približno enako oddaljene. Do tega pride, ker se z naraščanjem števila dimenzij absolutna razlika med razdaljami zmanjša, kar zmanjša diskriminatorno moč evklidske razdalje. Posledično postane iskanje resnično podobnih slik z uporabo evklidske razdalje nezanesljivo. Primernejša mera je kosinusna razdalja, ki upošteva kot med visokodimenzionalnimi vektorji namesto njihove absolutne velikosti. Kosinusna razdalja zajema podobnost na podlagi smeri, kar je bolj robustno za visokodimenzionalne vložitve, kjer razlike v velikosti morda niso pomembne. To je še posebej uporabno pri vložitvah iz globokega učenja, kjer prostor značilk semantično podobnost pogosto učinkoviteje kodira glede na orientacijo in ne glede na strogo prostorsko bližino.

Ne vemo, kaj te spremenljivke predstavljajo, razen da zajamejo višje abstraktne koncepte znotraj globoke nevronske mreže (kar, priznano, ni najbolj uporabno za interpretacijo). Vendar smo slike uspešno pretvorili v številske vektorje, kar nam omogoča primerjanje in merjenje njihove podobnosti ter razdalj. Smo omenili razdalje? Prav, lahko jih uporabimo za gručenje. Zgručimo slike živali in poglejmo, kaj se zgodi.

Če povzamemo: V zgornjem delotoku smo naložili slike z lokalnega diska, jih pretvorili v številske predstavitve, izračunali matriko razdalj med vsemi pari slik, na podlagi teh razdalj izvedli hierarhično razvrščanje ter slike, ki ustrezajo izbrani veji dendrograma, prikazali v gradniku Image Viewer. Uporabili smo kosinusno podobnost za merjenje razdalj, saj je ustvarila bolj smiselen dendrogram v primerjavi z evklidsko razdaljo.

Sedaj torej razumemo, kako slike pretvoriti v uporabne številske vektorje – proces, znan kot vložitev. Ta predstavitev nam omogoča uporabo različnih analitičnih tehnik, vključno z gručenjem, PCA, t-SNE in vizualizacijami slikovnih zemljevidov. Namesto, da bi tukaj podrobno opisovali vse možnosti uporabe, si lahko preberete članek o analitiki slik z Orangem in ogledate naslednjo serijo videoposnetkov, ki podrobneje razlaga klasifikacijo slik in iskanje podobnih slik z uporabo Orangea.

Ti videoposnetki so nekoliko zastareli in nekateri gradniki, uporabljeni v njih, so bili morda vmes že preoblikovani. Vendar koncepti, ki jih prikazujejo, ostajajo enaki, prav tako kot večina, če ne vsa, imena gradnikov.