Uvod Uvod u strojno učenje Krunoslav Puljić Stojno učenje: eng. Machine Learning (ML) Povijesno: razvoj ML započeo prije 50-tak godina Problem: Kako indukcijom/generalizacijom izvesti novo znanje iz primjera/podataka? Motivacija 1. Automatizirano prikupljanje znanja direktno iz podataka 2. Otkrivanje znanja u skupovima podataka Ima li u njima znanja? Rastuće količine informacija eng. data mining, text mining 3. Klasične metode nisu dovoljne jer su neki problemi preteški Napredak u izgradnji algoritama i teorije Automatizirano prikupljanje znanja Razvoj umjetne inteligencije: Tradicionalna shema: Program = algoritam + podaci Nova shema: ekspertno područno znanje je temeljni oslonac u rješavanju problema Program = algoritam + podaci + znanje Automatizirano prikupljanje znanja Prikupljanje znanja Izuzetno složen problem Primjer: kako zapisati znanje o igranju šaha? Što znači slaba struktura pješaka? Što znači dobro zaštićen kralj? Kako znanje velemajstora oblikovati u ako-onda pravila Ideja: stvoriti sustav koji će automatski stjecati znanje (visoko apstraktne koncepte ili strategije rješavanja problema) kroz iskustvo, tj. primjere,... Otkrivanje znanja u velikim skupovima podataka Medicinska dijagnostika 10.000 zapisa s opisom tijeka trudnoće i poroda 200-tinjak značajki po zapisu... kao što to čini čovjek 1
Medicinska dijagnostika Analiza rizika kod dodjele kredita Učenjem predvidjeti klasu pacijenata s visokim rizikom za hitan carski rez Jedno od 18 naučenih pravila: if No prevoius vaginal delivery Abnormal 2nd trimester ultrasound Malpresentation at addmission then Probability of Emergency C-Section is 0.6 Previše složeni problemi Računalom upravljano vozilo Problemi previše složeni da bi se riješili na uobičajeni način Računalom upravljano vozilo Učenje strategija vožnje za autonomno upravljanje automobilom brzinom 70 km/h na duljini od 120 km Klasificiranje novih astronomskih struktura Učenje se primjenjuje na različite baze podataka da bi se otkrile pravilnosti implicitno sadržane u podacima Učenje klasificiranja novih astronomskih struktura NASA stabla odluke korištena za klasifikaciju nebeskih objekata dobivena Palomar Observatory Sky Survey (Fayyad, et al. 1995). Sustav automatski klasificira sve objekte dobivene pregledom neba -3 TB podataka Klasificiranje novih astronomskih struktura 2
Backgammon Backgammon Učenje se primjenjuje svuda gdje je potrebno efikasno pretraživati veliki prostor stanja Učenje igranja backgammona na razini svjetskog prvaka Najuspješnije implementacije igara na računalu temelje se na učenju Najbolji svjetski program TD-GAMMON (Tesauro, 1992, 1995) naučio je strategiju igranja (na svjetskoj razini) na temelju više od 10 6 odigranih partija protiv samog sebe Raspoznavanje rukom pisanog teksta Raspoznavanje rukom pisanih znakova Primjer: klasifikator znamenaka Znak 3 kako je TISKAN U KNJIZI i njegova DIGITALIZIRANA SLIKA u razlučivosti 8x8 slikovnih elemenata Klasifikator znamenaka Sustav treba odlučivati kojoj od unaprijed definiranih klasa pripada predočeni, ulazni uzorak Posao koji bi takav sustav obavljao naziva se klasifikacija uzoraka Klasifikator znamenaka Zamislimo sada da želimo načiniti sustav koji će raspoznavati rukom pisane znakove Problem: postoji nebrojeno varijacija između uzoraka za jedan te isti znak 3
Klasifikator znamenaka Modeliranje sustava pohrana mogućih uzoraka u memoriji 64 ulaza za jedan uzorak pohranjivanje 2 64 = 1.8 10 19 različitih uzoraka u memoriji uspoređivanje ulaznog uzorka s onim u memoriji kada bi uspoređivanje uzorka na ulazu s jednim uzorkom u memoriji trajalo jednu 0.1 milisekunde, za uspoređivanje jednog uzorka sa svima u memoriji bilo potrebno prosječno oko 1.8 10 15 sec = 5.7 10 11 godina Rješenje konceptualno jednostavno, nije prikladno za primjenu jer nije učinkovito RJEŠENJE: UČENJE SUSTAVA ONAKO KAKO TO RADI ČOVJEK! Klasifikator znamenaka Jednostavniji pristup Stanjimo sliku na debljinu jednog piksela Za svaki piksel brojimo koliko se piksela nalazi u 8-okolini Promatramo broj i poziciju krajnjih točaka Točke u čijoj je okolini samo jedan piksel (I) Promatramo broj i poziciju točaka oštrog ruba Točke u čijoj su okolini tri piksela (2,5,7) Promatramo broj i poziciju točaka presjeka Točke u čijoj su okolini četiri piksela (4,8) Klasifikator znamenaka 1 dvije krajnje točke jedna iznad druge 4 četiri krajnje točke, jedna točka presjeka i dvije oštre točke 0 bez krajnjih točaka i bez točki presjeka 8 bez krajnjih točaka i s jednom točkom presjeka 9 jedna krajnja točka u doljnoj polovici slike, i jedna točka presjeka itd. Zaključak Izuzetno široka primjena metoda strojnog učenja (umjetne inteligencije) na rješavanje složenih problema iz svih područja ljudske djelatnosti Strojno učenje Strojno učenje bavi se izgradnjom računarskih sustava koji automatski poboljšavaju svoje performanse kroz iskustvo Tom M. Mitchell definicija strojnog učenja: A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. Formalno: Strojno učenje Računalni program uči ako se performanse izvršavanja zadatka T, mjerene pomoću mjere uspješnosti P, poboljšavaju s iskustvom E Nema univerzalnog algoritma za učenje ipak, izumljeni su učinkoviti algoritmi koji (uspješno) rješavaju određen tip problema 4
Primjeri T: igranje šaha/backgammona/... P: postotak dobivenih igara E: igranje protiv samoga sebe T: raspoznavanje rukom pisanih slova P: postotak točno prepoznatih slova E: baza rukom pisanih slova T: detekcija tumorskih regija na CT-u P: postotak točno prepoznatih regija E: baza označenih CT slika Primjene strojnog učenja Otkrivanje znanja u (velikim) skupovima podataka Programske implementacije koje nije moguće riješiti klasičnim programiranjem Prilagodljivi programski sustavi Bioinformatika Obrada prirodnog jezika Raspoznavanje govora Raspoznavanje uzoraka Inteligentno upravljanje Predviđanje trendova itd. Vrste strojnog učenja Nadzirano učenje (supervised) Nenadzirano učenje (unsupervised) Podržano učenje (reinforcement learning) Ostala učenja Polu-nadzirano učenje Transduktivno učenje Relacijsko učenje Genetsko programiranje... Strojno učenje Podaci su u obliku (x, y) x ulazna vrijednost, y ciljna vrijednost Učimo funkciju f(x)=y koja primjeru x pridružuje klasu ili realnu vrijednost y Nenadzirano učenje eng. Unsupervised learning Kao tek rođeno dijete Nema učitelja nema nekoga da nam pokaže pravo/točno znanje Bitna je samoorganizacija Potrebno je: pronaći pravilnosti u podacima, otkriti ih automatski, pronaći neku reprezentaciju, odrediti što podaci znače Algoritmi nenadziranog učenja Klasteriranje (eng. Clustering) Učenje asocijacijskih pravila Redukcija dimenzionalnosti podataka 5
K-sredina K-sredina eng. K-means metodaklasteriranja koja pokušava rasporediti n mjerenjau k klastera, tako da svako mjerenje smjesti u klaster s najbližom srednjom vrijednošću Minimizira se suma kvadrata unutar klastera Problem je NP-težak Ipak, postoje efikasni heuristički algoritmi Učenje asocijacijskih pravila eng. Association rule learning Potraga za vezom između varijabli Primjer: supermarket može odrediti koji se proizvodi često kupuju zajedno te iskoristi tu informaciju u marketniške svrhe analiza kupovne košarice Učenje asocijacijskih pravila Skup transakcija iz Konzuma Učenje pravila: {pelene -> pivo} {meso, riba ->kruh} Analiza glavnih komponenti eng. Principal Component Analysis Metoda za redukciju dimenzionalnosti Analiza glavnih komponenti Matematička procedura koja koristi ortogonalne transformacije da pretvori skup mjerenja moguće koreliranih varijabli u skup vrijednosti nekoreliranih varijabli Nekorelirane varijable se nazivaju glavnim komponentama Broj glavnih komponenti je manji ili jednak broju originalnih varijabli 6
Primjena učenja bez nadzora Analiza ponašanja kupaca Segmentiranje tržišta Grupiranje teksta po sličnosti Grupiranje fotografija po sadržaju Vizualizacija podataka Početna analiza podataka (otkrivanje neznane strukture)... Učenje s nadzorom Kao dijete koje je ovladalo komunikacijom eng. Supervised learning Sada dobivamo eksplicitnu informaciju za svaki primjer koji učimo Cilj nam je naučiti raditi predikciju na novim, još neviđenim primjerima Vrste učenja s nadzorom Regresija učenje funkcija Eksplicitna informacija o objektu je numerička Npr. cijena zlata, temperatura, tlak, broj cipela, broj otkucaja srca,... Cilj je aproksimacija funkcije Klasifikacija učenje klasificiranja (raspoznavanje uzoraka) jedna ili više klasa Eksplicitna informacija o objektu je kategorijska Npr. Dobar/Loš, Tumor/nije tumor, Crven/Zelen/Žut/Plav,... Cilj je izgraditi funkciju koja će za svaki objekt reći kojoj klasi tj. kategoriji pripada Algoritmi učenja s nadzorom Štreber K najbližih susjeda Naivni Bayesov klasifikator Učenje pravila Stabla odluke Štreber eng. Rote learner Pohrani u memoriju sve što trebaš naučiti Kad te netko pita za klasu novog objekta, pogledaj u memoriju Ako objekt stoji u memoriji, vrati njegovu klasu Ako ne, reci da ne znaš K najbližih susjeda eng. K nearest neighbours, k-nn Sličan štreberu s bitnom razlikom: Odgovor je ona klasa objekta koja je najzastupljenija među k najbližih susjeda u prostoru objekata Ne možemo reći da je štrebanje učenje Međutim nekad prijeko potrebno 7
Naivni Bayesov klasifikator eng. Naive Bayes Probabilistički model Bayesov teorem Jednostavno izračunaj apriorne vjerojatnosti klasa i uvjetne vjerojatnosti klasa i svojstava Nakon toga odaberi klasu s najvećom aposteriornom vjerojatnošću eng. Rule learning Učenje pravila AKO leti TADA ptica AKO sunčano I toplo I slab vjetar TADA igraj_tenis eng. Decision trees Stabla odluke Primjena učenja s nadzorom Predviđanje kretanja cijena dionica Klasifikacija teksta Detekcija tumorskih regija Detekcija bolesti prema analizi DNA Prepoznavanje lica Prepoznavanje govornika Klasifikacija prebjega u drugi telekom Podrška u odlučivanju pri izdavanju kredita... Podržano učenje eng. Reinforcement learning učenje podrškom Kao dijete koje uči voziti bicikl Učenje u kojem nam učitelj daje ocjenu koliko smo dobro nešto obavili pali smo s bicikla ili nismo Prolazimo seriju stanja i akcija i tek na kraju dobivamo (ili ne dobivamo) nagradu Istražiti stanja i akcije koje vode do cilja Cilj nam je maksimizirati ukupnu sumu nagrada na kraju Algoritmi podržanog učenja Q-learning Svodi se na metodu pokušaja i pogrešaka Pretraživanje radi dostizanja nagrade Tražimo optimalnu akciju u trenutnom stanju To je akcija koja maksimizira sumu trenutne i odgođene nagrade u slučaju da slijedimo optimalnu strategiju Temporal difference learning Kombinacija Monte Carlo ideje i dinamičkog programiranja 8
Primjena podržanog učenja Igranje igara Robotsko kretanje Autonomna navigacija Učenje kontrolnih strategija... Induktivno učenje...ili učenje iz primjera h je hipoteza (model) koja reprezentira/aproksimira ciljni koncept c u idealnom slučaju je h(x)=c(x) ono što u najboljem slučaju možemo garantirati učenjem nekim algoritmom strojnog učenja jest da naučeni h dobro aproksimira ciljni koncept c nad skupom primjera za učenje T Osnovna hipoteza induktivnog učenja: Bilo koja hipoteza koja dobro aproksimira ciljni koncept na dovoljno velikom skupu primjera dostupnih za učenje, isto će tako dobro aproksimirati ciljni koncept i na novim, još nedostupnim primjerima. Pristranost eng. Bias, inductive bias Bias mjeri kako dobro naši modeli (struktura hipoteza) mogu učiti odnose između varijabli i ciljnog koncepta Varijanca otkriva kakve su fluktuacije u kvaliteti aproksimiranja ciljnog koncepta/modela kojeg treniramo na različitim (pod)skupovima za učenje Mali bias - dobra aproksimacija na podacima za učenje ali zato i visoka varijanca predikcija na novim podacima = slaba generalizacija Visoki bias relativno slaba aproksimacija na podacima za učenje ali mala varijanca u predikciji na novim podacima = dobra generalizacija Pretreniravanje eng. overfitting Tijekom učenja naš model/hipoteza se pretjerano prilagođava podacima za učenje (mali bias), te zbog toga predstavlja loš prediktor za neke od novih primjera: Obično je to uvjetovano izborom svojstava/varijabli kojima su opisani primjeri i njihova ponašanja na nekim primjerima Grubi pokazatelji overfitting-a : modeli kod kojih je #svojstava >> # primjera za učenje, ili #svojstava # primjera za učenje Pretreniravanje Pretreniravanje Uspješnost modela na skupu za učenje u principu reducira dobra generalizacijska svojstva na novim primjerima Napomena: ovo su grube ocjene i vrijede u principu za relativno jednostavne pohlepne algoritme 9
Linearni model Pretrenirani model Najbolji model? Poželjni modeli u svakom slučaju trebao bi imati minimalan broj grešaka min e (h, T) u idealnom slučaju h ( x i ) = y i ne bi smio biti previše kompleksan za neku mjeru C(h) kompleksnosti modela trebaju nam procedure za pretraživanje prostora mogućih modela (h H) koje vode računa i o greškama e(h) i o kompleksnosti C(h): min ( e(h,t) + αc(h) ) Structural Risk Minimization (V. Vapnik) Validacija modela Tehnike probira Procjena stvarne greške modela Tehnike probira (eng. Sampling - Resampling): Train & Test metoda Unakrsna validacija (eng. Cross-Validation) LOOCV 10
Train & test metoda Train & test metoda Slučajno odaberemo 1/3 od dostupnih primjera za učenje i stavimo ih u novi skup za testiranje (eng. Test set) Ostatak od 2/3 primjera iskoristimo za učenje modela skup za učenje (eng. Training set) Naučimo model na skupu za učenje Procijenimo stvarnu grešku modela testirajući novi model na skupu za testiranje Svojstva: Train & test metoda dobro: Jednostavna metoda -odabiremo onaj model koji daje najmanju grešku na testnom skupu loše: Gubimo vrijedne podatke 1/3 podataka se uopće ne koristi za izradu modela Ako imamo relativno malo podataka za učenje ocjena greške na testnom skupu će biti vrlo nepouzdana (>> varijanca greške) K-struka unakrsna validacija eng. k-fold cross validation Slučajno rasporediti primjere za učenje u k odvojenih skupova Ti, i=1,...,k tipično po 30+ primjera Za i=1 do k Koristi Ti kao testni skup, a ostale podatke Tm, m i iskoristi za učenje modela hi Na testnom skupu Ti izračunaj grešku Li modela hi Izračunaj prosječnu grešku za svih k modela L = Li / k i=1,...,k K-struka unakrsna validacija Pojedinačna unakrsna validacija Leave-one-out cross validation (LOOCV) Na skupu primjera za učenje (xi,yi) D, i=1,n Za i=1 do N Privremeno izdvoji primjer (xi,yi) iz skupa primjera za učenje Nauči model hm na preostalih N-1 primjerima Izračunaj grešku modela hm na primjeru (xi,yi) Izračunaj prosječnu grešku za svih N modela L = Li / N i=1,...,n 11
Svojstva evaluacijskih metoda Metoda Dobro Loše Train & Test K-fold CV Jeftina učimo samo jednom Gubimo samo N/k za učenje jednog modela Stabilnija procjena greške Gubimo puno primjera za učenje Nepouzdana procjena stvarne greške K puta skuplja od T&T Učimo k modela Modeli strojnog učenja Generativni i diskriminativni Generativni učenje generativnog modela za svaku pojedinu klasu Diskriminativni učenje linije koja razdvaja klase LOO CV Praktički učimo na svim primjerima -1 Dobra za mali broj primjera Vrlo skupa za veliki N Učimo N modela Modeli strojnog učenja Modeli strojnog učenja Parametarski i neparametarski Probabilistički i neprobabilistički Tomislav Šmuc, IRB Reference http://web.math.hr/nastava/su/ Jan Šnajder, Bojana Dalbelo-Bašić, FER http://www.zemris.fer.hr/predmeti/su/ 12