5.8 Induktivní logické programování

Podobné dokumenty
Výroková logika - opakování

Znalosti budeme nejčastěji vyjadřovat v predikátové logice prvního řádu. Metody:

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Výroková a predikátová logika - XII

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Rozhodovací pravidla

Výroková a predikátová logika - V

Moderní systémy pro získávání znalostí z informací a dat

Logika a logické programování

Výroková a predikátová logika - III

Formální systém výrokové logiky

8. Strojové učení. Strojové učení. 16. prosince Václav Matoušek. 8-1 Úvod do znalostního inženýrství, ZS 2014/15

Domény. Petr Štěpánek. S využitím materialu Krysztofa R. Apta

Logické programy Deklarativní interpretace

5.5 Evoluční algoritmy

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML

Výroková a predikátová logika - III

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Matematická logika. Miroslav Kolařík

Výroková a predikátová logika - II

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

teorie logických spojek chápaných jako pravdivostní funkce

Základy logiky a teorie množin

Pravděpodobně skoro správné. PAC učení 1

Výroková a predikátová logika - VI

Logické programování

platné nejsou Sokrates je smrtelný. (r) 1/??

Rezoluční kalkulus pro logiku prvního řádu

Induktivní logické programování. společně s Olgou Štěpánkovou Katedra kybernetiky, FEL ČVUT Praha

Strojové uení. typy učení: Metody učení: učení se znalostem (knowledge acquisition) učení se dovednostem (skill refinement).

Predikátová logika. prvního řádu

Další témata DM a strojového učení

Výroková a predikátová logika - II

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Výroková logika. p, q, r...

Úloha - rozpoznávání číslic

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

2.5 Rezoluční metoda v predikátové logice

Rezoluční kalkulus pro výrokovou logiku

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Matematická logika. Miroslav Kolařík

Klauzulární logika. úvod. Šárka Vavrečková. 20. října Ústav informatiky Filozoficko-Přírodovědecká fakulta Slezské univerzity, Opava

Výroková a predikátová logika - II

Programovací jazyk Prolog

Úvod do logiky a logického programování.

4.2 Syntaxe predikátové logiky

1 Pravdivost formulí v interpretaci a daném ohodnocení

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

Logika. 5. Rezoluční princip. RNDr. Luděk Cienciala, Ph. D.

1. Data mining. Strojové učení. Základní úlohy.

Predikátová logika (logika predikátů)

DATA MINING KLASIFIKACE DMINA LS 2009/2010

Reprezentace znalostí. Katedra kybernetiky, ČVUT v Praze.

Algoritmizace prostorových úloh

Výroková a predikátová logika - IX

ZÍSKÁVÁNÍ ZNALOSTÍ Z DATABÁZÍ

ILP a induktivní strojové učení

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Analytické procedury v systému LISp-Miner

8. Strojové učení Strojové učení

Úvod do predikátové logiky. (FLÚ AV ČR) Logika: CZ.1.07/2.2.00/ / 1

Dolování z textu. Martin Vítek

popel, glum & nepil 16/28

Predikátová logika Individua a termy Predikáty

Přijímací zkouška - matematika

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

Umělá inteligence I. Roman Barták, KTIML.

Václav Matoušek KIV. Umělá inteligence a rozpoznávání. Václav Matoušek / KIV

10. Techniky formální verifikace a validace

Asociační i jiná. Pravidla. (Ch )

Umělá inteligence a rozpoznávání

Dolování v objektových datech. Ivana Rudolfová

Programování v čistém Prologu

Sémantika predikátové logiky

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

Tableaux metody. Jiří Vyskočil 2011

Systém přirozené dedukce výrokové logiky

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. ledna 2017

1 REZOLUČNÍ FORMÁLNÍ DŮKAZY

Logický důsledek. Petr Kuchyňka

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Výroková a predikátová logika - VIII

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

4. blok část A Logické operátory

RELATIONAL DATA ANALYSIS

Induktivní logické programování

POKROČILÉ POUŽITÍ DATABÁZÍ

Representace znalostí s použitím klasické negace

Úvod do teorie grafů

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

ZÁKLADY LOGIKY A METODOLOGIE

5.1 Rozhodovací stromy

IB013 Logické programování I Hana Rudová. jaro 2011

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Logika. 6. Axiomatický systém výrokové logiky

Modely Herbrandovské interpretace

Matematická logika. Rostislav Horčík. horcik

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

Transkript:

5.8 Induktivní logické programování Zatím jsme se pohybovali ve světě, kde příklady i hypotézy byly popsány hodnotami atributů 1. Existuje ale ještě jiný, složitější popis a sice popis pomocí predikátové logiky prvního řádu. Jestliže příklady reprezentované pomocí hodnot atributů představují řádky nějaké tabulky, která má pevný počet sloupců (atributů), lze v jazyce predikátové logiky vyjádřit skutečnost, že příklady mohou být tvořeny proměnným počtem objektů, které vstupují do vzájemných relací různého typu. Je tedy tento formalizmus na místě v případě úloh, kde data jsou uložena ve vzájemně propojených tabulkách nebo kde hraje důležitou roli struktura příkladů. Jsou-li tedy např. data uložena ve struktuře dle Obr. 1, je reprezentace příkladů s využitím pouze atributů možná způsobem uvedeným v Obr. 2 (pokud zrušíme tabulku Disposition), nebo způsobem uvedeným v Obr. 3 (pokud sloučíme všechny údaje do jedné tabulky tak, jak to vyžaduje většina algoritmů pracujících v reprezentaci založené na hodnotách atributů). Account acc_id datum zůstatek Disposition acc_id client_id Person client_id Příjmení jméno Obr. 1 Struktura databáze Účet datum založení zůstatek počet osob první osoba druhá osoba třetí osoba. acc1_id 1.1.1999 10000 2 client1_id client2_id X....... Klient příjmení jméno pohlaví věk region client1_id Novák Jan muž 28 Praha client2_id Nováková Alice žena 24 Praha...... Obr. 2 Reprezentace pomocí hodnot atributů, více tabulek Účet datum založení zůstatek počet osob příjmení první osoby jméno první osoby pohlaví první osoby. acc1_id 1.1.1999 10000 2 Novák Jan muž....... Obr. 3 Reprezentace pomocí hodnot atributů, jedna tabulka 1 Někdy se pro tento formalizmus používá označení AVL attribute-value logic. V zásadě se jedná o reprezentaci ve výrokové logice. 1

Reprezentace stejných dat ve formalizmu logiky prvního řádu bude podstatně srozumitelnější: disposition(disp1_id, client1_id, acc1_id), disposition(disp1_id, client2_id, acc1_id), person(client1_id, novak, jan, muz, 28, Praha), person(client2_id, novakova, alice, zena, 24, Praha), account(acc1_id, 1.1.1999, 10000). Jestliže byla ve formalizmu pracujícím pouze s hodnotami atributů k dispozici pravidla 2 IF tvar_hlavy(kulatý) tvar_těla(kulatý) IF tvar_hlavy(hranatý) tvar_těla(hranatý) IF tvar_hlavy(šišatý) tvar_těla(šišatý) THEN přátelský(ano) THEN přátelský(ano) THEN přátelský(ano) lze je v jazyce predikátové logiky vyjádřit jedním (elegantnějším a srozumitelnějším) pravidlem IF tvar_hlavy=tvar_těla THEN přátelský(ano) Kromě popisu příkladů bývají k dispozici i některé dílčí znalosti z dané oblasti (v podobě pravidel). K učení v takto reprezentovaném světě je možno použít techniku, která je nazývána induktivní logické programování (inductive logic programming, ILP). V kontextu dobývání znalostí z databází je cílem tohoto typu učení na základě příkladů a dílčí doménové znalosti odvodit znalosti dokonalejší. Pro řešení takové úlohy se používá programovací jazyk PROLOG. 5.8.1 Základní pojmy Začněme nejprve neformální definicí základních pojmů tak, jak jsou uvedeny v [Mitchell, 1997]: Každá správně utvořená formule je tvořena konstantami (např. zikmund, 23), proměnnými (např. X, Y), predikátovými symboly 3 (např. otec jako ve formuli otec(karel_iv,zikmund)) a funkčními symboly 4 (např. věk ve formuli věk(zikmund)). Základním výrazovým prostředkem predikátové logiky jsou termy. Termy jsou buď jednoduché (konstanty nebo proměnné), nebo složené (vzniklé aplikací funkce na termy, tedy např. věk(x)). Literál 5 je predikát (nebo jeho negace) aplikovaný na množinu termů (např. muž(zikmund), nebo větší_než(věk(zikmund),23))) ). Pozitivní literál neobsahuje negaci (např. muž(zikmund) ), negativní literál obsahuje negaci (např. muž(eliška) ). Klauzule je disjunkce literálů L 1 L 2 L n 2 Uvedená pravidla jsou odvozena z odborníkům v oblasti strojového učení důvěrně známých dat MONK použitých k testování řady algoritmů [Thurn a kol., 1991] 3 Predikáty mohou nabývat pouze hodnot ano (True) nebo ne (False). 4 Funkce mohou nabývat hodnotu libovolné konstanty. 5 Literál tedy (stejně jako predikát) nabývá pouze hodnot ano (True) nebo ne (False). 2

Hornova klauzule je klauzule která obsahuje nejvýše jeden pozitivní literál, tedy např. H L 1 L n tuto klauzuli můžeme ekvivalentně zapsat jako implikaci L 1 L n H. Substituce je funkce, která proměnnou nahradí termem, např. substituce {x/3} znamená náhradu proměnné x konstantou 3. Pro danou substituci θ a term L bude zápis Lθ označovat výsledek substituce. Unifikace pro dva literály L 1 a L 2 je taková substituce, kde L 1 θ = L 2 θ. Úlohu induktivního logického programování je možno definovat takto [Lavrač, Džeroski, 1994]: Nechť je dána množina Hornových klauzulí B (background knoweldege, teorie), množina pozitivních příkladů EX + a množina negativních příkladů EX 6. Potom najdi hypotézu H takovou, že 1. ex EX + H B ex (z teorie a hypotézy lze dokázat všechny pozitivní příklady) 2. ex EX H B ex (z teorie a hypotézy nelze dokázat žádný negativní příklad) 3. H B (hypotéza H je konzistentní s teorií B). Přitom obvykle předpokládáme bezespornost příkladů ex EX B ex (příklady nejsou zatíženy šumem.) a to, že je důvod se učit ex EX + B ex (nějaký pozitivní příklad není pokryt teorií). Důležitým pojmem umožňujícím vyřešení této úlohy je pojem θ-zahrnutí (θ-subsumption). Klauzule c θ-zahrnuje klauzuli c, pokud existuje substituce θ taková, že cθ c, tedy, provedeme-li substituci θ pro klauzuli c, získáme podmnožinu literálů klauzule c. Příkladem takové substituce může být náhrada proměnné konstantou (klauzule muž(x) θ-zahrnuje klauzuli muž(zikmund) ) nebo přidání literálu do klauzule (klauzule vnuk(x,y) θ-zahrnuje klauzuli muž(x) vnuk(x,y) ). Pokud klauzule c θ- zahrnuje klauzuli c, potom klauzule c je logickým důsledkem klauzule c. θ-zahrnutí je reflexivní a tranzitivní relace. Lze tedy pomocí ní definovat uspořádání klauzulí. Přitom relaci θ-zahrnutí můžeme chápat jako relaci vyjadřující vztah generalizace resp. specializace mezi klauzulemi. Klauzule c je obecnější 7 než klauzule c, pokud c θ-zahrnuje c, ale neplatí, že c θ-zahrnuje c. 5.8.2 Systémy ILP To, že klauzule (hypotézy) lze uspořádat podle relace generalizace resp. specializace umožňuje použít postupy pro učení ve smyslu prohledávání prostoru hypotéz původně navržené pro formalizmus pracující pouze s hodnotami atributů. A skutečně. Řada dobře známých algoritmů z této oblasti má své protějšky v oblasti induktivního logického programování (Tab. 1). 6 Příklady jsou zadávány ve formě složených termů. 7 Tím pádem klauzule c je speciálnější než klauzule c 3

Typ algoritmu AVL ILP rozhodovací stromy C4.5 TILDE [Blockeel, De Raedt, 1998] klasifikační a regresní stromy CART SCART rozhodovací pravidla CN2 FOIL [Quinlan, 1990] PROGOL [Muggleton, 1995] asociační pravidla apriori Claudien [De Raedt, Dehaspe, 1997] Warmr [Dehaspe, 1998] nejbližší soused k-nn RIBL [Emde, Wettschereck, 1996] Tab. 1 Přehled systémů ILP Jako příklad algoritmu ILP podrobněji rozebereme Quinlanův algoritmus FOIL (First Order Inductive Learner). FOIL [Quinlan, 1990] rozšiřuje algoritmus pokrývání množin použitý v systému CN2 (a CN4) o schopnost učit se pravidla prvního řádu odpovídající Hornovým klauzulím. Při hledání nějakého pravidla postupuje FOIL metodou specializace tak, že postupně přidává literály do předpokladu. Cílem je nalézt pravidlo, které pokrývá pouze pozitivní příklady 8. Pokryté příklady se pak odstraní z trénovací množiny (Obr. 4). Vhodný literál L se volí na základě kritéria informačního zisku (information gain): FOIL_zisk(L, Ant) = n ++ (log 2 n +(Ant L) n(ant L) log 2 n +(Ant) n(ant) ), kde n + (Comb) je (jako obvykle) počet pozitivních příkladů pokrytých 9 pravidlem Comb C, n(comb) je počet všech příkladů pokrytých pravidlem Comb C a n ++ jr počet pozitivních příkladů pokrytých pravidlem před specializací, které jsou rovněž pokryty pravidlem po specializaci. Pro specializaci pravidla Comb C se vybere takový literál L, který bude maximalizovat uvedenou funkci. Algoritmus FOIL inicializace 1. nechť D + TR je množina pozitivních příkladů 2. nechť D - TR je množina negativních příkladů 3. nechť ListOfRules je prázdný seznam hlavní cyklus 1. dokud D + TR není prázdné 1.1. nechť předpoklad Ant pravidla Ant C je prázdný 1.2. nechť {Ant} - (množina negativních příkladů pokrytých pravidlem) je D - TR 1.3. dokud {Ant} - není prázdné 1.3.1. najdi pomocí funkce FOIL_zisk nejvhodnější literál L a přiřaď Ant:= Ant L 1.3.2. do {Ant} - přiřaď negativní příklady pokryté pravidlem po specializaci 1.4. do ListOfRules přidej pravidlo Ant C 1.5. z D + TR odstraň příklady pokryté pravidlem Ant C Obr. 4 Algoritmus FOIL 8 Novější varianta algoritmu umí pracovat i se šumem. 9 Počet příkladů pokrytých pravidlem se počítá jako počet vazeb (substitucí), které umožní nahradit proměnné v předpokladu pravidla konstantami. 4

vnuk(zikmund,jan_lucemburský) muž(zikmund) otec(karel_iv,zikmund) otec(karel_iv,václav_iv) otec(jan_lucemburský,karel_iv) Obr. 5 Trénovací data pro FOIL Činnost algoritmu si ozřejmíme na příkladě trénovacích dat uvedených na Obr. 5 10. Naším cílem bude naučit se koncept vnuk. V prvním kroku algoritmus zvažuje pravidlo vnuk(x,y). Pro toto pravidlo můžeme provést 16 různých substitucí (náhrad proměnných X a Y konstantami jan_lucembursky, karel_iv, václav_iv, zikmund), z nich ale jen jedna bude pokrývat pozitivní příklad vnuk(zikmund,jan_lucemburský). Pro specializaci tohoto pravidla uvažuje FOIL následující literály: včetně jejich negací rovná_se(x,y) 11, muž(x), muž(y), otec(x,y), otec(y,x), otec(x,z), otec(z,x), otec(y,z), otec(z,y) rovná_se(x,y), muž(x), muž(y), otec(x,y), otec(y,x), otec(x,z), otec(z,x), otec(y,z), otec(z,y). Řekněme, že výsledkem specializace (krok 1.4 algoritmu) bude pravidlo otec(z,x) vnuk(x,y). Tomuto pravidlo odpovídá opět jedna pozitivní substituce {X/zikmund, Y/jan_lucemburský, Z/karel_IV}. V dalším kroku algoritmu se kromě výše uvedených literálů zvažují ještě literály rovná_se(z,y), rovná_se(y,z), muž(z), otec(z,w), otec(w,z), rovná_se(z,y), rovná_se(y,z), muž(z), otec(z,w), otec(w,z). Z použitelných literálů algoritmus vybere literál otec(y,z), takže vznikne pravidlo otec(z,x) otec(y,z) vnuk(x,y). Činnost algoritmu končí nalezením pravidla otec(z,x) otec(y,z) muž(x) vnuk(x,y), které pokrývá pouze pozitivní příklady v trénovacích datech. Výhody reprezentace (a učení) ve formalizmu predikátové logiky spočívají v tom, že je možno se naučit složitější koncepty vyjadřující (obecné) relace mezi objekty. Místo pravidla 10 Přiklad byl převzat a upraven z [Mitchell, 1997]. Predikát P(X,Y) budeme číst X je v relaci P vůči Y. 11 Tento literál je vestavěn do algoritmu jako doplnění k literálům vyskytujícím se v teorie a v příkladech. 5

otec(z,x) otec(y,z) muž(x) vnuk(x,y). bychom ve formalizmu založeném na hodnotách atributů odvodili pravidlo otec 3 (karel_iv) otec 2 (jan_lucemburský) muž 3 (ano) vnuk 1 (zikmund). Trénovací příklad z Obr. 5 by totiž měl v reprezentaci využívající atributy podobu jmeno 1 (jan), vnuk 1 (zikmund), jmeno 2 (karel), otec 2 (jan), jmeno 3 (zikmund), muž 3 (zikmund), otec 3 (karel) Nalezené znalosti mají tedy srozumitelnější a kompaktnější podobu. K dalším výhodám algoritmů ILP patří: možnost řešit úlohy v oblastech vyžadujících reprezentaci více relací sem patří jak úlohy s více vzájemně propojenými jednoduchými tabulkami (viz analýza dat o klientech banky zmíněná v kapitole o metodologii CRISP), tak analýza strukturálních nebo prostorových dat (příkladem může být úloha klasifikace chemických sloučenin na karcinogenní a neškodné), možnost využít doménových znalostí (v podobě předem známých pravidel). Induktivní logické programování je tedy velice silný nástroj pro reálné úlohy dobývání znalostí. Přes uvedené nesporné přednosti nejsou algoritmy ILP v komerčních systémech pro dobývání znalostí z databází příliš využívány (výjimku tvoří systém Kepler), a zůstávají záležitostí spíše výzkumnou. Tato skutečnost je dána nejspíše relativní novostí těchto algoritmů. Literatrura: [Blockeel, De Raedt, 1998] Blockeel, H. - De Raedt,L.: Top-down induction of first-order logical decisin trees. Artificial Intelligence,1998 [Dehaspe, L, 1998] Dehaspe,L.: Frequent Pattern Discovery in First-Order Logic. PhD thesis, Department of Computer Science, Katholieke Universiteit Leuven, 1998. [De Raedt, Dehaspe, 1997] De Raedt,L. Dehaspe, L.: Clausal Discovery. Machine Learning, 26, 1997, 99-146. [Emde, Wettschereck, 1996] Emde,W. - Wettschereck,D.: Relational instance based learning. In Proc: 13 th Int. Conf. on Machine Learning, Morgan Kaufmann, 1996, 122-130. [Lavrač, Džeroski, 1994] Lavrač,N. - Džeroski,S.: Inductive logic programming. Techniques and applications. Ellis Horwood, 1994. [Mitchell, 1997] Mitchell,T.: Machine learning. McGraw-Hill. 1997. ISBN 0-07-042807-7 [Muggleton, 1992] Muggleton,S.: Inductive logic programming. Volume APIC-38, Academic Press, 1992. [Muggleton, 1995] Muggleton,S.: Inverse entailment and Progol. New Generation Computing, Special issue on Inductive Logic Programming, 13(3-4):245-286, 1995. [Quinlan, 1990] Quinlan,J.R. Learning logical definitions from relations. Machine Learning, 5, 1990, 239-266. [Thurn a kol. 1991] Thurn,S.B. a kol: The Monk's problems. A Performance Comparision of Different Learning Algorithms, Carnegie Mellon University 1991, 154p. 6