uvod u strojno ucenje
DESCRIPTION
Strojno učenje najboljeTRANSCRIPT
13.12.2011
1
Uvod u strojno učenje
Krunoslav Puljić
Uvod
• 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, ...
... kao što to čini čovjek
Otkrivanje znanja u velikim skupovima podataka
• Medicinska dijagnostika
– ≈10.000 zapisa s opisom tijeka trudnoće i poroda
• ≈200-tinjak značajki po zapisu
13.12.2011
2
Medicinska dijagnostika
• 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
Analiza rizika kod dodjele kredita
“Previše složeni” problemi
• 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
Računalom upravljano vozilo
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
13.12.2011
3
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 106 odigranih partija protiv samog sebe
Backgammon
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
13.12.2011
4
Klasifikator znamenaka
• Modeliranje sustava
– pohrana mogućih uzoraka u memoriji• 64 ulaza za jedan uzorak
• pohranjivanje 264 = 1.8×1019 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×1015 sec = 5.7×1011 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.”
Strojno učenje
• Formalno:
– 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
13.12.2011
5
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
13.12.2011
6
K-sredina
• eng. K-means
• metoda klasteriranja koja pokušava rasporediti n mjerenja u 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
K-sredina
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
13.12.2011
7
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š
• Ne možemo reći da je štrebanje učenje
• Međutim nekad prijeko potrebno ☺
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
13.12.2011
8
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
Učenje pravila
• eng. Rule learning
• AKO leti TADA ptica
• AKO sunčano I toplo I slab vjetar TADA igraj_tenis
Stabla odluke
• eng. Decision trees
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
13.12.2011
9
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
• 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
Pretreniravanje
13.12.2011
10
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 ( xi ) = yi
• 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
• Procjena stvarne greške modela
• Tehnike probira (eng. Sampling - Resampling):
– Train & Test metoda
– Unakrsna validacija (eng. Cross-Validation)
– LOOCV
Tehnike probira
13.12.2011
11
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
Train & test metoda
• Svojstva:
– 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
13.12.2011
12
Svojstva evaluacijskih metoda
Metoda Dobro Loše
Train & Test •Jeftina – učimo samo jednom
•Gubimo puno primjera za učenje
•Nepouzdana procjena stvarne greške
K-fold CV •Gubimo samo N/k za učenje jednog modela
•Stabilnija procjena greške
•K puta “skuplja”od T&T
•Učimo k modela
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
• Generativni i diskriminativni
– Generativni –učenje generativnog modela za svaku pojedinu klasu
– Diskriminativni – učenje linije koja razdvaja klase
Modeli strojnog učenja Modeli strojnog učenja
• Parametarski i neparametarski
• Probabilistički i neprobabilistički
Reference
• Tomislav Šmuc, IRB
– http://web.math.hr/nastava/su/
• Jan Šnajder, Bojana Dalbelo-Bašić, FER
– http://www.zemris.fer.hr/predmeti/su/