Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Učenje skupova pravila

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Učenje skupova pravila"— Μεταγράφημα παρουσίασης:

1 Učenje skupova pravila
Zoran Kovačević, šk.god. 2004/2005 Kolegij: Strojno učenje Nastavnik: doc. dr.sc. Bojana Dalbelo Bašić Fakultet Elektrotehnike i Računarstva

2 Zašto učiti pravila ? Pravila su ljudima razumljiva
Dobar dio ljudskog znanja može se prikazati pravilima Automatizirani algoritam za učenje takvog skupa mogao bi neumorno učiti nove koncepte za nas Znanje dobiveno na taj način bilo bi i nama upotrebljivo Time širimo granice spoznaje

3 Metode učenja pravila Neke već znamo: učenje stabla odlučivanja i pretvaranje stabla u skup pravila Genetski algoritmi - skupovi pravila su predstavljeni nizovima bitova, “evoluiramo” do ciljnog koncepta Gore navedene metode uče skupove propozicijskih pravila Istovremeno uče sva pravila: Simultaneous covering algorithms

4 Pravila prvog reda Sadrže varijable Sadrže predikate
Mogu opisati rekurzivne koncepte Primjer: koncept pretka Nečiji predak je njegov roditelj ili predak njegovog pretka.

5 Pravila prvog reda Ili formalno: AKO Roditelj(x,y) ONDA Predak(x,y) AKO Roditelj(x,z)  Predak(z,y) ONDA Predak(x,y) Roditelj(x,y) znači: Roditelj od x je y Predak(x,y) znači: Predak od x je y Varijable predstavljaju konkretne osobe u uređenom paru varijabli (x,y), a predikati im definiraju odnos.

6 Pravila prvog reda Hornove klauzule su vrlo značajan oblik pravila prvog reda: AKO P1  …  Pn ONDA Z Glavno ograničenje je da nema disjunkcije u glavi pravila Jednostavno se prevode u PROLOG programe Zato se njihovo učenje još zove: Induktivno Logičko Programiranje - ILP

7 Učenje propozicijskih pravila
Slijedi malo osnova: Pravilo AKO P1  ...  Pn ONDA Z pokriva neki primjer, ako on zadovoljava sve preduvjete P1, ... , Pn Pravila mogu biti pozitivna ili negativna s obzirom na ciljni koncept Pozitivno pravilo sve primjere koje pokriva klasificira pozitivno, a negativno pravilo - negativno Pravilo ne klasificira primjere koje ne pokriva - ne možemo ništa zaključiti

8 Učenje propozicijskih pravila
I za kraj uvodnog dijela: Pozitivno pravilo točno klasificira pozitivne primjere koje pokriva, dok negativne primjere koje pokriva ne klasificira točno Negativno pravilo točno klasificira negativne primjere koje pokriva, dok pozitivne primjere koje pokriva ne klasificira točno Učimo disjunktni skup pravila

9 Sequential covering algorithms
Algoritmi koji uče jedno po jedno pravilo Počinju sa cijelim skupom primjera za učenje U svakom prolazu nauče jedno pravilo koje dovoljno dobro opisuje neki podskup primjera za učenje Uklanjaju iz skupa primjera za učenje primjere koje naučeno pravilo točno klasificira Postupak se u slijedećem prolazu ponavlja na umanjenom skupu primjera za učenje

10 Sequential covering algorithms
Ili formalno: SEQUENTIAL_COVERING ( Ciljni_atribut, Atributi, Primjeri, Prag) Naučena_pravila  { } Pravilo  LEARN_ONE_RULE( Ciljni_atribut, Atributi, Primjeri ) WHILE PERFORMANSA( Pravilo, Primjeri ) > Prag DO Naučena_pravila = Naučena_pravila + Pravilo Primjeri = Primjeri - Primjeri ( točno klasificirani s Pravilo ) Pravilo  LEARN_ONE_RULE( Ciljni_atribut, Atributi, Primjeri ) Sortiraj Naučena_pravila po PERFORMANSA nad Primjeri Vrati Naučena_pravila

11 General to specific Beam Search
Kako naučiti jedno pravilo koje najtočnije opisuje skup promatranih primjera za učenje ? Jedan način je organizirati prostor hipoteza slično ID3 algoritmu, ali u svakom koraku odabrati najizgledniju granu ili nekoliko njih To su kandidati za najbolje pravilo Dobiveno pravilo ne mora pokrivati cijeli skup promatranih primjera, ali mora biti kvalitetno Zato imamo više prolaza koji daju skup pravila

12 General to specific Beam Search
Algoritam je pohlepan, npr. slijedimo 1 granu

13 General to specific Beam Search
Ako potragu proširimo na više kandidata istovremeno, dolazimo do slijedećeg algoritma: LEARN-ONE-RULE( Ciljni_atribut, Atributi, Primjeri, k ) Inicijaliziraj Najbolja_hipoteza na najopćenitiju  Inicijaliziraj Hipoteze_kandidati na skup { Najbolja_hipoteza } WHILE Hipoteze_kandidati nije prazan DO Generiraj slijedeću specifičniju hipotezu_kandidata : Sva_ograničenja  skup svih ograničenja oblika (a = v), gdje je a član skupa Atributi, a v je vrijednost od a koja se pojavljuje u trenutnom skupu Primjeri

14 General to specific Beam Search
Nove_hipoteze_kandidati  FOR  h iz Hipoteze_kandidati FOR  c iz Sva_ograničenja kreiraj specijalizaciju od h dodavanjem ograničenja c Iz Nove_hipoteze_kandidati ukloni sve hipoteze koje su duplikati, nekonzistentne ili nisu maksimalno specifične Modificiraj Najbolja_hipoteza FOR  h iz Nove_hipoteze_kandidati IF PERFORMANSA( h, Primjeri, Ciljni_atribut ) > PERFORMANSA( Najbolja_hipoteza, Primjeri, Ciljni_atribut ) THEN Najbolja_hipoteza = h

15 General to specific Beam Search
Modificiraj Hipoteze_kandidati Hipoteze_kandidati  k najboljih članova skupa Nove_hipoteze_kandidati prema PERFORMANSA Na kraju kao rezultat vrati pravilo: AKO Najbolja_hipoteza ONDA Predviđanje gdje Predviđanje predstavlja najčešću vrijednost ciljnog atributa za one primjere u skupu Primjeri koje pravilo pokriva odnosno klasificira

16 General to specific Beam Search
PERFORMANSA: Negativna entropija Σ pi log2 pi vc Vc je skup vrijednosti ciljnog atributa, a pi relativna učestalost pojave i-te vrijednosti ci iz Vc u skupu primjera koje pravilo pokriva: pi = N ( c = ci ) / N ukupno

17 General to specific Beam Search
PERFORMANSA: Negativna entropija Koristimo ju kad želimo pravila koja će vrlo točno predviđati vrijednost ciljnog atributa primjera koje pokrivaju. Zato se koristi negativna entropija: što sličnije vrijednosti ciljnog atributa među primjerima koje pokriva pravilo = manja entropija u odnosu na ciljni atribut = veća negativna entropija

18 General to specific Beam Search
PERFORMANSA: Relativna učestalost Relativna učestalost = nc / n Gdje je n broj primjera koje pravilo pokriva Gdje je nc broj primjera koje pravilo točno klasificira Tražimo što veću učestalost, jer je tada pravilo točnije u svom predviđanju vrijednosti ciljnog atributa

19 General to specific Beam Search
PERFORMANSA: m - procjena točnosti m - procjena točnosti = ( nc + m*p ) / ( n + m ) Gdje je n broj primjera koje pravilo pokriva Gdje je nc broj primjera koje pravilo točno klasificira Gdje je p unaprijed poznata vjerojatnost da će slučajni primjer pravilo točno klasificirati, a m težinski faktor te vjerojatnosti

20 General to specific Beam Search
PERFORMANSA: m - procjena točnosti Ova nam mjera performanse pravila dozvoljava unošenje dodatnog znanja o vjerojatnosti p u samu procjenu kvalitete pravila Često se koristi kad nema dovoljno podataka, pa težinskim faktorom i poznatom vjerojatnošću umanjujemo štetan utjecaj nedovoljnog broja primjera za učenje

21 General to specific Beam Search
ZAKLJUČAK Algoritmi koji istovremeno uče sva pravila su brži, ali oni koji uče jedno po jedno pravilo su bolji za veći broj primjera za učenje Generiranje hipoteza u na osnovu svakog pojedinog primjera za učenje (npr. eliminacija kandidata) direktno vodi ka ciljnom konceptu, ali je jako osjetljivo na pogreške u primjerima za učenje

22 General to specific Beam Search
ZAKLJUČAK (nastavak) Sintaksno generiranje hipoteza neovisno o primjerima za učenje (LEARN_ONE_RULE) ne vodi direktno do ciljnog koncepta, ali mjerenje njihove performanse na većem broju primjera i odabir najboljih osigurava puno manju osjetljivost na pogreške u primjerima za učenje

23 Učenje pravila prvog reda
Izraz (term) je: konstanta, varijabla ili funkcija primjenjena na izraz Literal je bilo koji predikat ili njegova negacija primjenjen na neki skup izraza Temeljni literal je onaj koji nema varijabli Negativni literal je onaj koji sadrži negirani predikat Pozitivni literal je onaj koji sadrži predikat koji nije negiran

24 Učenje pravila prvog reda
Klauzula je bilo koja disjunkcija literala čije su varijable univerzalno kvantificirane Hornova klauzula je izraz predikatne logike slijedećeg oblika: H  (L1    Ln) Ona odgovara pravilu prvog reda: AKO L1    Ln ONDA H Uz (B  A) = (B  A), ( A  B) = (A  B) imamo klauzalni oblik: H  L1    Ln Postoji samo jedan pozitivni literal - to znači da nema disjunkcije u glavi pravila (H je glava)

25 Algoritam FOIL FOIL uči skupove pravila prvog reda koja su slična Hornovim klauzulama, razlike slijede: Literali ne sadrže funkcije Literali u tijelu pravila (L1    Ln je tijelo) mogu biti negirani: AKO L1     Lk    Ln ONDA H ili H  L1    Lk    Ln FOIL uči samo ona pravila koja predviđaju da je ciljni literal H istinit

26 Algoritam FOIL Podaci za učenje su skup istinitih temeljnih literala, dok se temeljni literali koji nisu u ovom skupu smatraju neistinitima Primjer za učenje je podskup podataka za učenje koji predstavlja kontekst za ciljni literal koji se u njemu nalazi Pozitivni primjeri za učenje su oni čiji ciljni literal nije negiran, a negativni su oni čiji jest Pravilo pokriva onaj primjer za čije konstante postoji spajanje sa varijablama pravila za koje je tijelo pravila istinito

27 Algoritam FOIL Evo i samog algoritma: FOIL( Ciljni_predikat, Predikati, Primjeri ) Pozitivni  primjeri iz Primjeri za koje je Ciljni_predikat = Istina Negativni  primjeri iz Primjeri za koje je Ciljni_predikat = Laž Inicijaliziraj Naučena_pravila sa  WHILE Pozitivni nije prazan DO Nauči Novo_pravilo : Novo_pravilo  pravilo koje predviđa Ciljni_predikat bez preduvjeta ili AKO bilo što ONDA Ciljni_predikat Novo_pravilo_Negativni  negativni primjeri koje pokriva Novo_pravilo

28 Algoritam FOIL WHILE Novo_pravilo_Negativni nije prazan DO Dodaj novi literal i specijaliziraj Novo_pravilo : Literali_kandidati  generiraj nove literale kandidate na osnovu Predikati Najbolji_literal  onaj Literal iz Literali_kandidati za koji je Foil_Gain( Literal, Novo_pravilo ) najveći. Dodaj Najbolji_literal u preduvjete (tijelo) pravila Novo_pravilo Novo_pravilo_Negativni  podskup od negativnih primjera u Novo_pravilo_Negativni koje pokriva promijenjeno Novo_pravilo

29 Algoritam FOIL Naučena_pravila  Naučena_pravila + Novo_pravilo Pozitivni  Pozitivni - podskup od pozitivnih primjera u Pozitivni koje pokriva Novo_pravilo Vrati Naučena_pravila Usporedba sa SEQUENTIAL COVERING i LEARN_ONE_RULE: Generiranje novih hipoteza se ponovo kreće od najopćenitijeg pravila prema specifičnijem, ali ovaj puta su uključeni predikati i varijable Tražimo pravila koja pokrivaju samo pozitivne primjere - negativna entropija kao mjerilo kvalitete je neupotrebljiva; koristimo FOIL_GAIN

30 Algoritam FOIL Literali kandidati za specijalizaciju pravila mogu imati jedan od tri oblika: R(v1,…,vn) gdje je R jedan od predikata iz podataka za učenje, a barem jedna od varijabli v1 do vn je dio pravila - ostale mogu biti nove varijable Jednako(xj,xk) - koji vrijedi ako je xj=xk i obje varijable su dio pravila Negacija jednog od gore navedenih oblika

31 Algoritam FOIL Ilustrirajmo na primjeru: Učimo ciljni predikat Unuka(x,y) Podaci za učenje sadrže temeljne literale sa predikatima: Otac(x,y), Žensko(x) i Unuka(x,y) Počinjemo sa najopćenitijim pravilom: Unuka(x,y)  koje kaže da je ciljni predikat uvijek istinit Generiramo literale kandidate: Jednako(x,y), Žensko(x), Žensko(y), Otac(x,y), Otac(y,x), Otac(x,z), Otac(z,x), Otac(y,z), Otac(z,y) i njihove negacije

32 Algoritam FOIL Recimo da FOIL odabere literal Otac(y,z) kao najbolji Imamo novo specifičnije pravilo: Unuka(x,y)  Otac(y,z) Slijedeći krug specijalizacije će zbog nove varijable z osim dosadašnjih literala kandidata, generirati i ove: Žensko(z), Jednako(z,x), Jednako(z,y), Otac(z,w), Otac(w,z) i njihove negacije Ako bi FOIL sada odabrao literal Otac(z,x), a u još jednom prolazu Žensko(y) dobili bi završno pravilo: Unuka(x,y)  Otac(y,z)  Otac(z,x)  Žensko(y)

33 Algoritam FOIL FOIL_GAIN: Za svako pravilo postoji određeni broj spajanja njegovih varijabli sa konstantama iz podataka za učenje Ciljni predikat je istinit za pozitivna spajanja, a laž za negativna spajanja Najbolji je onaj literal koji će poboljšati omjer pozitivnih i negativnih spajanja, a da previše ne specijalizira pravilo tako da ono pokriva premalo pozitivnih spajanja

34 Algoritam FOIL Formalno je FOIL_GAIN( L, R ) definiran sa t je broj pozitivnih spajanja koje pokriva pravilo R nakon specijalizacije literalom L p1 predstavlja broj pozitivnih, a n1 negativnih spajanja koje pravilo pokriva nakon specijalizacije p0 predstavlja broj pozitivnih, a n0 negativnih spajanja koje pravilo pokriva prije specijalizacije

35 Algoritam FOIL ZAKLJUČAK FOIL proširuje sequential covering algoritam za propozicijska pravila CN2 tako da može učiti pravila prvog reda slična Hornovim klauzulama Pretraživanje je pohlepno i kreće se od najopćenitijeg pravila prema specifičnijem odabirući najbolje pravilo prema FOIL_GAIN mjeri kvalitete pravila

36 Algoritam FOIL ZAKLJUČAK (nastavak) FOIL može učiti neka rekurzivna pravila Kada nema pogrešaka u podacima FOIL može naučiti pravilo koje pokriva samo pozitivne primjere, inače se koristi Minimum Description Length princip za zaustavljanje rasta pravila Naučena pravila se podrezuju primjenom istog principa kao i kod stabala odluke (npr. C4.5 algoritam)

37 Indukcija kao inverzna dedukcija
Ako imamo prethodno znanje B i primjere za učenje D tada učenje znači pronalaženje hipoteze h koja zajedno sa B objašnjava D Kažemo da za svaki primjer za učenje ciljni koncept f slijedi deduktivno iz hipoteze h, prethodnog znanja B i samog primjera: ((xi, f(xi))  D) (B  h  xi) |— f(xi) Zapravo tražimo operator inverzne dedukcije O( B, D ) koji će nam dati hipotezu h za koju vrijedi gornji uvjet

38 Indukcija kao inverzna dedukcija
Pogledajmo slijedeći primjer: x1 = Muško(Neven), Žensko(Petra), Otac(Petra, Neven) f(x1) = Dijete(Neven, Petra) D = { ( x1, f(x1) ) } , B = Roditelj(x,y)  Otac(x,y) Vidimo da za hipotezu h1 = Dijete(x,y)  Otac(y,x) i primjer x1 vrijedi: (x1  D) (h1  x1) |— f(x1) No, za hipotezu h2 = Dijete(x,y)  Roditelj(y,x) treba nam prethodno znanje B da bi vrijedilo: O( B, D ) = h2 uz (x1  D) (B  h2  x1) |— f(x1)

39 Indukcija kao inverzna dedukcija
ZAKLJUČAK Zahtjev ((xi, f(xi))  D) (B  h  xi) |— f(xi) ne tolerira pogreške u podacima i one će proizvesti kontradiktorne uvjete na hipotezu h Predikatna logika je toliko izražajna i broj hipoteza koje zadovoljavaju gore navedeni zahtjev toliko velik da se potraga za hipotezom mora ograničiti na podskup predikatne logike prvog reda ili traži korištenje dodatnog znanja

40 Indukcija kao inverzna dedukcija
ZAKLJUČAK (nastavak) Povećavanje prethodnog znanja B unatoč našoj intuiciji u većini ILP primjena usložnjava pretraživanje prostora hipoteza U nastavku ćemo opisati inverznu rezoluciju kao općeniti inverzni deduktivni operator

41 Inverzna rezolucija Automatska dedukcija - rezolucijsko pravilo, Robinson 1965; ono je potpuno i zdravo Imamo početne klauzule: A  B i C  B , rezolucija daje rezolventu: A  C Inverzna rezolucija kreće od rezolvente i jedne početne klauzule da bi proizvela drugu početnu klauzulu: A  C i A  B daju C  B Algoritam glasi: uz početne klauzule C1 i C2, pronađi literal L koji je dio C2 , ali nije dio C1 te konstruiraj C3 = C1 - ( C2 - { L } ) + { L }

42 Inverzna rezolucija Primjer inverzne rezolucije: C1 = A  C = { A, C }, C2 = A  B = { A, B }, nađi L koji je dio C2 i nije dio C1, slijedi L = { B } konačno primjenimo C3 = C1 - ( C2 - { L } ) + { L } = { A, C } - ( { A, B } - { B } ) + { B } = { A, C } - { A } + { B } = { C } + { B } = { C, B } odnosno C3 = C  B

43 Rezolucija prvog reda Za dva literala postoji unificirajuća supstitucija  njihovih varijabli ako vrijedi L1 = L2 : npr. L1 = Otac( x, Ivan ) i L2 = Otac( Frane, z )  = { x/Frane, z/Ivan }, L1 = L2 = Otac( Frane, Ivan ) Algoritam za rezoluciju se modificira: u klauzulama C1 i C2 pronađi literale L1 i L2 takve da je L1 =  L2, tada rezolventa glasi: C3 = ( C1 - { L1 } ) + ( C2 - { L2 } )

44 Rezolucija prvog reda Primjer rezolucije prvog reda: C1 = Otac( Maja, Frane ) = { Otac( Maja, Frane ) } C2 = Unuka( Ivan, y)  Otac( y, Frane ) = Unuka( Ivan, y )   Otac( y, Frane ) = { Unuka( Ivan, y ),  Otac( y, Frane ) } slijedi unifikacija: L1 = Otac( Maja, Frane ) , L2 =  Otac( y, Frane )  = { y/Maja }, L1 =  L2 = Otac( Maja, Frane )

45 Rezolucija prvog reda Primjer rezolucije prvog reda (nastavak) : konačno imamo rezolventu: C3 = ( C1 - { L1 } ) + ( C2 - { L2 } ) = = ({ Otac( Maja, Frane ) } - { Otac( Maja, Frane ) })  + ( { Unuka( Ivan, y ),  Otac( y, Frane ) } … … - {  Otac( y, Frane ) } )  = ( { } )  + ( { Unuka( Ivan, y ) } )  = ( { Unuka( Ivan, y ) } ) { y/Maja } = { Unuka ( Ivan, Maja ) } odnosno C3 = Unuka ( Ivan, Maja )

46 Inverzna rezolucija prvog reda
Pokušajmo iz rezolucijske formule za rezolventu dobiti odabranu početnu klauzulu: C3 = ( C1 - { L1 } ) + ( C2 - { L2 } ) primjetimo da se supstitucija  može prikazati kao kompozicija supstitucije 1 varijabli klauzule C1 i supstitucije 2 varijabli klauzule C2 , dakle  = 12 imamo novu rezolventu: C3 = ( C1 - { L1 } )1 + ( C2 - { L2 } )2 kako je presjek gornjih skupova prazan skup, vrijedi: C3 - ( C1 - { L1 } )1 = ( C2 - { L2 } )2

47 Inverzna rezolucija prvog reda
kako je L11 =  L22 tj. L2 =  L112-1 uz primjenu 2-1 imamo: ( C3 - ( C1 - { L1 } )1 ) 2-1 = C2 - {  L112-1 } i konačno dolazimo do početne klauzule C2: C2 = ( C3 - ( C1 - { L1 } )1 )  {  L112-1 } Algoritam glasi: uz početne klauzule C3 i C1, nađi literal L1 u C1 i odaberi 1 tako da L11 nije dio C3 , odaberi i te konstruiraj: C2 = ( C3 - ( C1 - { L1 } )1 ) i + {  L11 i }

48 Inverzna rezolucija prvog reda
Primjer inverzne rezolucije prvog reda: C3 = Unuka ( Ivan, Maja ) C1 = Otac( Maja, Frane ) nađi literal L1 u C1 i odaberi 1 tako da L11 nije dio C3 , slijedi: L1 = Otac( Maja, Frane ) , 1 = { } odaberi i - zanimljiv odabir je i = { Maja/y } ( C3 - ( C1 - { L1 } )1 ) i = { Unuka ( Ivan, y ) }  L11 i = {  Otac( y, Frane ) } C2 = { Unuka ( Ivan, y ) ,  Otac( y, Frane ) }

49 Inverzna rezolucija prvog reda
Primjer inverzne rezolucije prvog reda: C2 = Unuka ( Ivan, y )   Otac( y, Frane ) C2 = Unuka( Ivan, y)  Otac( y, Frane ) Odabir supstitucija 1 i i određuje ishod inverzne rezolucije prvog reda - kao i inverzna rezolucija u propozicijskoj logici, ona je nedeterministička Postepeno učenje skupa pravila koje koristi inverznu rezoluciju je vođeno primjerima


Κατέβασμα ppt "Učenje skupova pravila"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google