Deduktives Lernen Explanation-Based Learning

Ähnliche Dokumente
Überblick 2. Vorlesungsteil

Logisches und funktionales Programmieren

Logische und funktionale Programmierung

Prolog basiert auf Prädikatenlogik

3. Lernen mit Vorwissen

Grundlagen der Künstlichen Intelligenz

Logische Programmierung & Deduktive Datenbanken Klausur

Eigenschaften der Resolution für PL1 Formeln

SLD-Ableitungsbäume. G = B 1... B m. G die Menge aller SLD-Resolventen von G und definiten. G einen Nachfolger, der mit G markiert ist.

Wiederholung zur SLD-Resolution (1)

PROLOG Syntax. Einführung in PROLOG II. Atome. Variablen. Es gibt vier Arten von Termen: Atome. Zahlen. Variablen. Komplexe Terme

Übungen zu Kognitive Systeme I

Symbolisches Lernen in Go

Eigenschaften der SLD-Resolution

Maschinelles Lernen: Symbolische Ansätze

Deduktion in der Aussagenlogik. Semantische Folgerungsbeziehung. Zusammenhang zwischen semantischer und syntaktischer Folgerung

Deduktion in der Aussagenlogik

Minesweeper ist NP-vollständig

Logische Programmierung

Tableaukalkül für Aussagenlogik

Data Mining und Maschinelles Lernen Wintersemester 2015/2016 Lösungsvorschlag für das 3. Übungsblatt

Logikprogrammierung. Berechnung durch Resolution Die Programmiersprache Prolog

Knowledge-Based system. Inference Engine. Prof. Dr. T. Nouri.

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

Gliederung. Programmierparadigmen. Einführung in Prolog: Einführung in Prolog: Programmieren in Prolog. Einführung Syntax Regeln Listen Relationen

Theoretische Informatik: Logik, M. Lange, FB16, Uni Kassel: 3.8 Aussagenlogik Der Sequenzen-Kalkül 99. Sequenzen

Bestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen. Ein Programm besteht aus

Prolog 3. Kapitel: Rekursion

Künstliche Intelligenz Logische Agenten & Resolution

Prolog 3. Kapitel: Rekursion

Bestandteile von Prolog-Programmen. Syntax und Datenstrukturen. Legende Syntaxdiagramme. Lesen von Syntaxdiagrammen

Informatik A. Prof. Dr. Norbert Fuhr auf Basis des Skripts von Prof. Dr. Wolfram Luther und der Folien von Peter Fankhauser

Sortieren II / HeapSort Heaps

Effizienter Planaritätstest Vorlesung am

HA-Lösung TA-Lösung Diskrete Strukturen Tutoraufgabenblatt 10. Besprechung in KW02/2019

Logische Programmierung

Prolog. Modellieren in Prolog. Argumente eines Prädikates. Fakten

2.3 Deduktiver Aufbau der Aussagenlogik

Funktionen: Rückgabewert

Magic Sets. Kontrollkomponente SIP. Sideways Information Passing Strategy (SIP-Strategy)

Fakten, Regeln und Anfragen

Maschinelles Lernen: Symbolische Ansätze

Logik Vorlesung 3: Äquivalenz und Normalformen

Theoretische Informatik

Empfehlenswerte Referenzen

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Formale Logik - SoSe 2012

Künstliche Intelligenz Einführung in Prolog

Neuronalen Netzen. Jens Lehmann. 1. März Institut für Künstliche Intelligenz Fakultät Informatik Technische Universität Dresden

Grundlagen der Theoretischen Informatik

Einführung in PROLOG. Christian Stocker

Labor Compilerbau. Jan Hladik. Sommersemester DHBW Stuttgart. Jan Hladik (DHBW Stuttgart) Labor Compilerbau Sommersemester / 20

Objektorientierte Programmierung II

Maschinelles Lernen: Symbolische Ansätze

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Grundlagen von Datenbanken

Folgen und Funktionen in der Mathematik

Prolog 2. Kapitel: Matching und Beweisführung

Gödels Incompleteness Theorems. Episode I: Einführung

Einführung in die Theoretische Informatik

Westfälische Wilhelms-Universität Münster Fachbereich Physik. Quantenlogik. Martin Kohn Münster,

Binäre Suchbäume (binary search trees, kurz: bst)

Algorithmen auf Zeichenketten

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

Transkript:

Deduktives Lernen Explanation-Based Learning Algorithmus grundlegende Idee anhand eines Beispiels Eigenschaften von EBL Utility Problem Implementierung als PROLOG Meta-Interpreter Operationalisierung 1

Explanation-Based Learning Grundidee: Ein erfolgreicher Beweis für ein Fakt wird kompiliert: sodaß er das nächste Mal schneller erfolgen kann generalisiert: sodaß auch andere Beispiele effizienter bewiesen werden können das System lernt: es zieht aus einem Beispiel Rückschlüsse, die es auf anderen Beispielen anwenden kann Charakteristika: es wird das Vorhandensein einer korrekten (= vollständigen und konsistenten) Domän-Theorie vorausgesetzt Vollständigkeit: für jedes positive Beispiel kann ein Beweis gefunden werden Konsistenz: für kein negatives Beispiel kann ein Beweis gefunden werden Es kann aus einem einzigen Beispiel gelernt werden Generalisierung dieses Beispiels erfolgt deduktiv das Resultat des Lernens ist beweisbar korrekt 2

EBL Algorithmus 1. Beweis: Das Trainingsbeispiel wird mit Hilfe der vorhandenen Domän- Theorie bewiesen Ein Beweis wird auch als Erklärung bezeichnet daher der Name Explanation-Based Learning 2. Generalisierung: Der Beweis für das Beispiel wird verallgemeinert, indem Konstanten durch Variablen ersetzt werden Beachte, daß Constraints auf den Variablen erhalten bleiben! z.b. ancestor(y,y) im Beweisbaum des folgenden Beispiels legt fest, daß die beiden Argumente an dieser Stelle gleich sein müssen 3. Formulierung der Regel: Die Konjunktion der Generalisierungen aller Fakten, die im Beweis verwendet wurden, bildet eine neue Regel d.h. die Konjunktion aller Blätter im Beweis-Baum 3

EBL: Beispiel 1. Schritt: Beweis des Beispiels ancestor(pam, pat) parent(pam, bob) ancestor(bob,pat) parent(bob, pat) ancestor(pat, pat) person(pat) female(pat) 4

EBL: Beispiel 2. Schritt: Generalisierung des Beweises ancestor(pam, ancestor(,y) pat) Inverse Substitution θ -1 = { pam/, pat/y, bob/z} parent(pam, parent(, Z) bob) ancestor(bob,pat) ancestor(z,y) parent(bob, parent(z, pat) Y) ancestor(pat, ancestor(y,y) pat) person(pat) person(y) female(pat) female(y) 5

EBL: Beispiel 3. Schritt: Formulierung einer neuen Regel ancestor(,y) parent(, Z) ancestor(z,y) parent(z, Y) ancestor(y,y) Neue Regel: ancestor(,y) :- parent(,z), parent(z,y), female(y). 6 person(y) female(y)

EBL als Prolog Meta-Interpreter Funktioniert fast wie der Meta-Interpreter für Beweisbäume nur die Blätter des Beweisbaumes werden gesammelt Literale werden generalisiert ebl_prove( L, L, GenL, GenL) :- :- clause(l,true). ebl_prove( (C1,C2), (GenC1,GenC2), (GenFacts1,GenFacts2)) :- :-!,!, ebl_prove(c1, GenC1, GenFacts1), ebl_prove(c2, GenC2, GenFacts2). ebl_prove( Head, GenHead, GenFacts ) :- :- clause( GenHead, GenBody ), ), GenBody \= \= true, copy_term( (GenHead :- :- GenBody), (Head :- :- Body) ), ), ebl_prove(body, GenBody, GenFacts). 7

Aufruf des EBL Meta-Interpreters ebl_prove(ancestor(pam,pat), ancestor(,y), GenFacts) GenFacts enthält dann die auf die angegebenen Variablen generalisierten Facts Man kann noch einen Aufruf programmieren, der den generalisierten Head und die generalisierten Facts zusammensetzt: Aufruf: ebl( L, GenL, (GenL :- GenFacts)) :- ebl_prove(l, GenL, GenFacts).?- ebl(ancestor(pam,pat),ancestor(,y),p). = _G160 Y = _G161 P = ancestor(_g160, _G161) :- parent(_g160, _G267), parent(_g267, _G161), female(_g161) 8

Die neue Regel ist... beweisbar immer richtig d.h., wenn die Bedingungen des Bodies erfüllt sind, ist der Head sicher gültig da sich das aus dem zugrundeliegenden Beweisbaum ergibt für mehr als ein Beispiel gültig sie wurde zwar aus einem Beispiel erzeugt ( gelernt ) aber sie gilt für alle Beispiele, die denselben Beweisweg nehmen z.b. auch für ancestor(tom,ann). nicht für alle Beispiele gültig es gibt natürlich Beispiele, die sich nicht mit dieser Regel herleiten lassen z.b. alle, die über mehr oder weniger als 2 Generationen gehen EBL liefert eine hinreichende, aber nicht notwendige Regel. 9

Beachte Die neue Regel beinhaltet kein neues Wissen! Alles was, mit der neuen Regel bewiesen werden kann, könnte auch ohne ihr bewiesen werden! Aber der Beweis wird abgekürzt! Die neue Regel greift nur direkt auf die Fakten zu. dadurch werden Irrwege im Finden dieses Ableitungsbaums vermieden (SLD Search Tree) das heißt beim nächsten Mal wird dieses Beispiel effizienter bewiesen. Die neue Regel deckt auch neue Fälle ab, die dann ebenfalls effizienter bewiesen werden könne Kurz gefaßt: Man weiß nach dem Lernen nichts neues, aber man weiß es schneller! Wird auch Speed-Up Learning genannt 10

Utility Problem Wurde zuerst von Minton (1988) im Prodigy Lern- und Plan- System beobachtet Hier wurde EBL zur Effizienzsteigerung in der Suche nach Plänen eingesetzt gefundene Pläne wurden mit EBL generalisiert und konnten in der Folge wiederverwertet werden Gelernte Regeln können die Problemlösungszeit reduzieren, da das Ausführen einer Regel effizienter ist, als eine Suche durchzuführen erhöhen aber andererseits die Problemlösungszeit, da alle Regeln in Betracht gezogen werden müssen (was wiederum Zeit kostet) Daher ist der Nutzen der Regeln nicht immer klar, z.b. Regeln, die selten verwendet werden Regeln, deren Bedingungen teuer zu matchen sind 11

Operationalisierung von Wissen Eine Sichtweise auf EBL ist, daß es versucht, das vorhandene Wissen zu operationalisieren. Operationales Wissen ist Wissen, das unmittelbar (d.h. ohne lange Beweisketten überprüft werden kann. Einfachste Realisierung: Operationale Prädikate sind die Fakten, die in der Datenbank gespeichert sind (EDB) Nicht-operationale Prädikate sind die Regeln der IDB Es sind aber auch andere Varianten denkbar 12

Realisierung von Operationalisierung Ein Prädikat definieren, das angibt, ob ein Literal operational ist: alle Fakten sind operational operational(l) :- clause(l,true). zusätzliche operationale Prädikate können (z.b.) einfach aufgelistet werden operational( person(_) ). In der ersten Regel des Programms wird dann nicht mehr überprüft, ob ein Fakt vorliegt sondern überprüft, ob ein operationales Prädikat vorliegt ebl_prove( L, GenL, GenL) :- operational(l), call(l). call(l) ruft Prolog's eingebauten Beweiser auf, um festzustellen, ob L gilt oder nicht. 13

Ergebnis?- ebl(ancestor(pam,pat),ancestor(,y),p). = _G160 Y = _G161 P = ancestor(_g160, _G161) :- parent(_g160, _G267), parent(_g267, _G161), person(_g161) Die Generalisierung ist nun auch für männliche Nachkommen gültig. 14

Anwendungen von EBL Search Control Während einer Suche muß man ständig entscheiden, welcher Zustand als nächstes ausgewählt werden soll Query Optimization der IDB Teil teurer Datalog Queries kann durch EBL in EDB- Abfragen kompiliert werden Spiele Spiele wie Schach haben eine klar formalisierbare Domäntheorie (die Regeln des Spieles) Für jede Stellung des Spiels läßt sich (theoretisch) beweisen, wer gewonnen hat Der Beweis ist aber sehr aufwendig Daher die Hoffnung: Generalisierung gefunder Beweise mittels EBL erlaubt, auch in neuen Situationen effizienter zu spielen hat sich aber in der Praxis als undurchführbar herausgestellt 15

Beispiel: Go-Moku (Minton, 1984) Das Spiel Go-Moku (5-Gewinnt ohne Schwerkraft) wurde durch eine Domän-Theorie kodiert Immer wenn das Programm verloren hat, versuchte es zu beweisen, warum es verloren hat Und generalisierte dann den Beweis zu einer Regel Beispiel einer gelernten Regel: move(square,player) :- three-in-row(pos3,player), is_empty(square), extends(pos3,square), composes(pos4,square,pos3), is_empty(square1), extends(pos4,square1), is_empty(square2), extends(pos4,square2), Square1 \= Square2. 16

Beispiel: Go-Moku (Minton, 1984) Das Spiel (5-Gewinnt ohne Schwerkraft) wurde durch eine Domän-Theorie kodiert Immer wenn das Programm verloren hat, versuchte es zu beweisen, warum es verloren hat Und generalisierte dann den Beweis zu einer Regel Beispiel einer gelernten Regel: move(square,player) :- three-in-row(pos3,player), is_empty(square), extends(pos3,square), composes(pos4,square,pos3), is_empty(square1), extends(pos4,square1), is_empty(square2), extends(pos4,square2), Square1 \= Square2. 17

Beispiel: Go-Moku (Minton, 1984) Das Spiel (5-Gewinnt ohne Schwerkraft) wurde durch eine Domän-Theorie kodiert Immer wenn das Programm verloren hat, versuchte es zu beweisen, warum es verloren hat Und generalisierte dann den Beweis zu einer Regel Beispiel einer gelernten Regel: move(square,player) :- three-in-row(pos3,player), is_empty(square), extends(pos3,square), composes(pos4,square,pos3), is_empty(square1), extends(pos4,square1), is_empty(square2), extends(pos4,square2), Square1 \= Square2. O 18

Beispiel: Go-Moku (Minton, 1984) Das Spiel (5-Gewinnt ohne Schwerkraft) wurde durch eine Domän-Theorie kodiert Immer wenn das Programm verloren hat, versuchte es zu beweisen, warum es verloren hat Und generalisierte dann den Beweis zu einer Regel Beispiel einer gelernten Regel: move(square,player) :- four-in-row(pos4,player), is_empty(square), extends(pos4,square). O 19

Beispiel: Go-Moku (Minton, 1984) Das Spiel (5-Gewinnt ohne Schwerkraft) wurde durch eine Domän-Theorie kodiert Immer wenn das Programm verloren hat, versuchte es zu beweisen, warum es verloren hat Und generalisierte dann den Beweis zu einer Regel Beispiel einer gelernten Regel: move(square,player) :- four-in-row(pos4,player), is_empty(square), extends(pos4,square). O 20

Literatur Artikel T. M. Mitchell, R. M. Keller, S. T. Kedar-Cabelli. Explanation-Based Generalization: A Unifying View. Machine Learning 1:47-80, 1986. (Der klassische Artikel zu EBL) G. DeJong, R. Mooney. Explanation Based Learning: An Alternative View. Machine Learning 1:145-176, 1986 S. T. Kedar-Cabelli, L. T. McCarty. Explanation-Based Generalization as Resolution Theorem Proving, Proceedings of the International Workshop on Machine Learning (ICML-87), pp. 383-389, 1987. (beschreibt die Implementierung als Prolog-Meta-Interpreter) S. Minton. Constraint-Based Generalization: Learning Game-Playing Plans from Single Examples. Proceedings of the National Conference on Artificial Intelligence (AAAI-84), pp. 251-254, 1984. (beschreibt die Anwendung auf das Spiel Go-Moku) Bücher T. M. Mitchell: Machine Learning, McGraw-Hill, 1997 (Klassisches Lehrbuch, hier vor allem Abschnitt 11) 21