Učenje skupova pravila

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Napisala Borka Jadrijević
Advertisements

KRUŽNICA I KRUG VJEŽBA ZA ISPIT ZNANJA.
TRIGONOMETRIJSKE FUNKCIJE
MELITA MESARIĆ UČITELJICA MATEMATIKE Osnovna škola Svibovec
Ogledni čas iz matematike
MATEMATIKA NA ŠKOLSKOM IGRALIŠTU
PTP – Vježba za 2. kolokvij Odabir vrste i redoslijeda operacija
INDINŽ Z – Vježba 2 Odabir vrste i redoslijeda operacija
AOS
BROJ π Izradio: Tomislav Svalina, 7. razred, šk. god /2016.
NASLOV TEME: OPTICKE OSOBINE KRIVIH DRUGOG REDA
Digitalna logika i minimizacija logičkih funkcija
Čvrstih tela i tečnosti
SNAGA U TROFAZNOM SUSTAVU I RJEŠAVANJE ZADATAKA
Merenja u hidrotehnici
RAD I SNAGA ELEKTRIČNE STRUJE
VREMENSKI ODZIVI SISTEMA
Matematika Blackjacka – kockarska matematika
Nataša Nikl Zagreb, svibanj 2011.
Kontrola devijacije astronomskim opažanjima
Kako određujemo gustoću
SPECIJALNE ELEKTRIČNE INSTALACIJE
O Novom argumentu posljedice
Vijetove formule. Rastavljanje kvadratnog trinoma na linearne činioce
TROUGΔO.
Petar Ćurković, dipl. ing. Tomislav Stipančić, dipl. ing.
Vijetove formule. Rastavljanje kvadratnog trinoma na linearne činioce
JEDNAČINA PRAVE Begzada Kišić.
KIRCHHOFFOVA PRAVILA Ivan Brešić, PFT.
Obrada slika dokumenta
Elektronika 6. Proboj PN spoja.
jedan zanimljiv zadatak
II. MEĐUDJELOVANJE TIJELA
Uredjeni skupovi i mreže
FORMULE SUMIRANJE.
Strujanje i zakon održanja energije
Izradila: Ana-Felicia Barbarić
I zatim u zagradi, opravdavajući se, dodaje:
Analiza deponovane energije kosmičkih miona u NaI(Tl) detektoru
Primjena Pitagorina poučka na kvadrat i pravokutnik
SREDIŠNJI I OBODNI KUT.
ARHIMEDOVA PRIČA O KRUNI
4. Direktno i inverzno polarisani PN spoja
Polarizacija Procesi nastajanja polarizirane svjetlosti: a) refleksija
UČINSKA PIN DIODA.
10. PLAN POMAKA I METODA SUPERPOZICIJE
Antonia Veseli Marija Varga Ivana Šovagović
Operacije relacijskog modela.
Booleova (logička) algebra
Brodska elektrotehnika i elektronika // auditorne vježbe
Tehnološki proces izrade višetonskih negativa
Brodska elektrotehnika i elektronika // auditorne vježbe
6. OSNOVNI POJMOVI VJEROJATNOSTI
Deset zapovijedi – δεκα λογοι (Izl 34,28 Pnz 10,4)
Dan broja pi Ena Kuliš 1.e.
Geografska astronomija : ZADACI
POUZDANOST TEHNIČKIH SUSTAVA
Unutarnja energija Matej Vugrinec 7.d.
N. Zorić1*, A. Šantić1, V. Ličina1, D. Gracin1
6. AKSIJALNO OPTEREĆENJE PRIZMATIČKIH ŠTAPOVA
doc. dr. sc. Martina Briš Alić
Tomislav Krišto POSLOVNA STATISTIKA Tomislav Krišto
Pi (π).
Kratki elementi opterećeni centričnom tlačnom silom
Balanced scorecard slide 1
Kako izmjeriti opseg kruga?
DAN BROJA π.
Tehnička kultura 8, M.Cvijetinović i S. Ljubović
OŠ ”Jelenje – Dražice” Valentina Mohorić, 8.b
Μεταγράφημα παρουσίασης:

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

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

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

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.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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)

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

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

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

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)

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

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)

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

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

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 }

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

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 } )

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 )

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 )

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

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 ) 2-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 }

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 ) }

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