- View
Klasifikacija
Verovao ili ne, do sada si se već mnogo puta susreo sa zadatkom klasifikacije. Kada sređuješ sobu pa razdvajaš papiriće koje ćeš da zadržiš ili baciš ili kada razvrstavaš svoje fotografije na one sa ekskurzije, tetkinog rođendana ili izleta sa prijateljima, ti u stvari obavljaš zadatak klasifikacije: imaš na umu neke grupe i kada pogledaš papirić ili fotografiju, odlučuješ o tome kojoj grupi pripada. I mnogi programi sa kojima se susrećeš, obavljaju zadatak klasifikacije. Recimo, tvoj imejl klijent razlikuje poželjnu i nepoželjnu poštu i zahvaljujući ovoj njegovoj osobini uspevaš da izbegneš mnoge zamke i prevare na internetu. Takođe, na društvenim mrežama često dobijaš preporuke za povezivanje sa novim osobama - program koji je u pozadini društvene mreže aktivno procenjuje da li ti je neka osoba potencijalni prijatelj ili ne (obično prati prijatelje tvojih prijatelja i dobija ideje). Pošto ne sumnjamo da si ekspert u sređivanju sobe i fajlova na računaru, hajde da naučimo kako ove veštine usvajaju programi!
Vrste klasifikacije
Na samom početku je važno naglasiti da nisu sve klasifikacije iste. Zato ćemo prvo saznati koje klasifikacije postoje i šta ih to karakteriše. Primeri razvrstavanja papirića ili razvrstavanja pošte su primeri binarne klasifikacije zato što imamo samo dve grupe: papiriće za bacanje i papiriće za čuvanje, tj. poželjnu i nepoželjnu poštu. Grupe u svetu mašinskog učenja zovemo klasama pa ćemo se nadalje držati tog termina. Da bi klase mogli da razlikujemo, pridružujemo im imena koja približavaju šta zapravo one sadrže. Na primer, ”papirići za bacanje” i ”nepoželjna pošta” su dovoljno jasna imena. Imena su često određena i labelama, koje se pojavljuju u skupu podataka nad kojim se primenjuje zadatak klasifikacije.
Ako imamo više od dve klase, govorimo o zadatku višeklasne klasifikacije. Na primer, takav je zadatak razvrstavanja fotografija po događajima gde svaki događaj može da predstavlja jednu klasu. Možemo napraviti tri direktorijuma, tj. tri klase, dati im imena”ekskurzija”, ”tetkin rođendan”i ”izlet”, a potom svaku od fotografija pridružiti jednoj od ovih klasa tako što ćemo je staviti u odgovarajući direktorijum.
O različitim vrstama klasifikacije, možemo razmišljati i na osnovu kriterijuma pripadnosti. Na primer, jedan imejl može biti ili poželjan ili nepoželjan, ne može pripadati istovremeno i klasi poželjnih i klasi nepoželjnih imejlova. Slično je i sa fotografijama i klasama koje smo uveli. Sa druge strane, jedan novinski članak može da bude istovremeno i na temu kulture, putovanja i hrane, pa ga možemo pridružiti većem broju klasa - onoj koja predstavlja kulturu, onoj koja predstavlja putovanja i onoj koja predstavlja hranu. Kako u ovom slučaju instance imaju više obeležja, tj. labela, ovu vrstu klasifikacije nazivamo višelabelarnom klasifikacijom. Iako je vrlo zanimljiva i korisna, višelabelarnu klasifikaciju nećemo pokriti daljim sadržajima već ćemo se usredsrediti na binarnu i višeklasnu klasifikaciju.
Šta misliš, kojoj vrsti klasifikacije pripadaju sledeći zadaci:
- razvrstavanje đubreta za reciklažu,
- utvrđivanje ispravnosti programa,
- određivanje jezika dokumenta,
- provera validnosti bankarske transakcije,
- predlog sledeće reči pri kucanju SMS porukice?
Klasifikacija iz ugla mašinskog učenja
Kada o zadatku klasifikacije razmišljamo iz ugla mašinskog učenja, interesuju nas diskretna preslikavanja, tj. preslikavanja koja ulaznim promenljivama mogu da pridruže jednu od konačno mnogo vrednosti. Najčešće je broj klasa manji, izražen jednocifrenim brojem, ali se možeš prisetiti i skupa ImageNet i takmičenja klasifikacije slika u kojem se koristi 1000 klasa. Promenljive koje mogu da uzmu konačan broj vrednosti smo nazivali kategoričkim pa o klasifikaciji možemo da govorimo kao o preslikavanju koje karakteriše kategorička ciljna promenljiva.
\( F(x) = \begin{cases} 0 & \text{if } x < 0,\\ \frac{1}{2} & \text{if } 0 \leq x < 1,\\ 1 & \text{if } x \geq 1 \end{cases} \)
Primer jedne diskretne funkcije
Kako je klasifikacija zadatak nadgledanog mašinskog učenja, skup podataka koji se koristi za obučavanje modela sadrži parove ulaza i očekivanih izlaza. Ulazi mogu biti slike, tekstualne poruke ili tabelarni podaci i za njihovu pripremu važe sve smernice koje smo diskutovali u lekciji o pripremama skupa podataka. Izlaz uvek predstavlja ime klase. Iako smo imena klasa uveli sa ciljem da lakše pratimo zadatak klasifikacije, kada stignemo do dela pripreme podataka, moramo i njih da transformišemo u numeričke vrednosti. Tu se možemo voditi pripremama o kojima smo diskutovali za rad sa kategoričkim atributima: preslikavanjem skupa vrednosti ili one-hot kodiranjem.
Ako je reč o binarnoj klasifikaciji, obično imena klasa preslikamo u vrednosti 0 i 1. Na primer, pojavljivanje imena klase ”nepoželjna pošta” zamenimo vrednošću 0, a pojavljivanje imena”poželjna pošta” vrednošću 1. Često se za instance koje imaju labelu 0 kaže da pripadaju negativnoj klasi, a za instance koji imaju labelu 1 da pripadaju pozitivnoj klasi.
Kada je u pitanju višeklasna klasifikacija, za pripremu ciljne promenljive koristimo one-hot kodiranje. Na primer, za zadatak razvrstavanja fotografija po događajima transformisaćemo izlaze u vektore dužine tri jer imamo tačno tri klase: ”ekskurzija”, ”tetkin rođendan”i ”izlet”. Dalje ćemo svakoj od ovih vrednosti pridružiti vektor koji na odgovarajućoj poziciji ima jedinicu, a na svim preostalim pozicijama nule. To će, redom, biti vrednosti (1, 0, 0), (0, 1, 0) i (0, 0, 1). Ovde je važno da se dosledno pridržavamo odabranog redosleda klasa.
U nastavku ćemo upoznati dva algoritma koji se koriste za zadatak binarne klasifikacije. Rešavanju zadatka višeklasne klasifikacije možemo prići kroz posebno dizajnirane algoritme, ali i kroz više udruženih binarnih klasifikatora. Približićemo dve takve tehnike koje se zovu ”jedan protiv svih” i ”jedan na jedan”.
Zamislimo da raspolažemo trima klasama: crvenom, zelenom i plavom. Pristup ”jedan protiv svih” podrazumeva da treba da naučimo tri binarna klasifikatora: jedan koji razlikuje zelenu klasu od preostalih (unije crvene i plave klase), jedan koji razlikuje plavu klasu od preostalih (unije zelene i crvene klase) i jedan koji razlikuje crvenu klasu od preostalih (unije zelene i plave klase). Kada treba da klasifikujemo novu instancu, pokrećemo svaki od tri binarna klasifikatora i nad dobijenim rezultatima primenjujemo princip najveće pouzdanosti: instanca se pridružuje klasi čiji je klasifikator najsigurniji. Videćemo uskoro kako se procenjuje sigurnost klasifikatora.

Pristup „jedan protiv svih”
Zamislimo opet da raspolažemo trima klasama: crvenom, zelenom i plavom. Pristup ”jedan na jedan” podrazumeva da obučimo binarne klasifikatore koji mogu da razlikuju svaki od parova klasa: crvenu i zelenu, zelenu i plavu, i crvenu i plavu. U opštem slučaju, ako imamo n klasa, broj binarnih klasifikatora koje treba da obučimo je \(\frac{n ⋅ (n−1)}{2}\). Kada treba da klasifikujemo novu instancu, pokrećemo svaki od naučenih klasifikatora i nad dobijenim rezultatima primenjujemo princip većinskog glasanja: instanca se pridružuje klasi za koju glasa najveći broj klasifikatora.

Pristup ”jedan na jedan”