Expertensysteme
Was ist ein Expertensystem?
Allgemeine Definition: System von Softwaretechnologien, das auf der Basis von Expertenwissen Problemlösungsstrategien anbietet Systeme zur Unterstützung medizinischer Diagnosen Analyse wissenschaftlicher Daten
Sinn: Maschinelles Verarbeitungsvermögen wird genutzt, sobald menschliches Berechnungs- und Problemlösungsvermögen überfordert ist Wichtig hierbei ist jedoch die sinnhafte, vorteilhafte und verständliche Kommunikation zwischen Mensch und Maschine Die Qualität eines Expertensystems hängt von der hohen bzw. geringen Fehlerquote von Problemlösungen ab
Die Wissensbasis
Die für ein Expertensystem generierte Wissensbasis (knowledge base) dient nicht zu deren ausschließlicher Repräsentation, sondern soll auf deren Grundlage weitere Schlussfolgerungen zulassen Wissensbasis repräsentiert das wichtigste Modul innerhalb eines Expertensystems
Die knowledge base enthält das Fachwissen einer beliebigen Repräsentationsform Die knowledge base wird durch eine Inferenzmaschine ergänzt Diese Inferenzmaschine bezeichnet eine Softwarestruktur mit deren Hilfe die Wissensbasis nutzbar gemacht wird
Aufgaben von Expertensystemen
Dateninterpretation Überwachung Diagnose Therapie Planung Entwurf Prognose
Realisierung
Fallbasierte Systeme Regelbasierte Systeme (Wenn- Dann- Beziehung als Problemlösungsstrategie) Entscheidungsbäume
Die Entwicklung bzw. der Aufbau eines Expertensystem erfolgt bzw Die Entwicklung bzw. der Aufbau eines Expertensystem erfolgt bzw. besteht aus essentiellen Bestandteilen: 1. knowledge- based system 2. inference engine 3. user interface
Zu 1. generiert das Wissen, das für den Aufbau und die Arbeit des entsprechenden Expertensystems vorgesehen ist Dazu zählen ausserdem Regeln, Besonderheiten und Relationen im Wissenssystem
Zu 2. Eine Inferenzmaschine dient dazu, das generierte Wissen zu Anwendungszwecken nutzbar zu machen Zu 3. dient zur Kommunikation zwischen dem System und dem Benutzer Unterstützendes Aggregat während des Problemlösungsprozess (problem-solving-process)
Die inference engine und das user interface werden auch als ein Modul (shell) bezeichnet Die knowledge base ist abhängig von der jeweiligen Applikation Die shell ist abhängig vom jeweilgen Aufgaben- oder Fachgebiet der generierten knowledge base
Inference engine User interface Knowledge base User Shell
Regelbasierte Expertensysteme if-then-rules
Fokus auf Regelbasierte Expertensysteme Wichtigstes Merkmal hierbei: Die Repräsentation von Wissen durch ein Regelgefüge von Wenn-Dann- Beziehungen if-then-rules oder production rules
If- then- rules sind durch verschiedene Formalismen interpretierbar: If precondition P then conclusion C If situation S then action A If conditions C1 and C2 hold then condition C does not hold
Eigenschaften von if-then- rules: Modularity: each rule defines a small, relatively independent piece of knowledge Incrementability: new rules can be added to the knowledge base relatively independently to other rules
Modifiability: (as a consequence of modularity): old rules can be changed relatively independent of other rules Support system‘s transparency
Die Eigenschaft der Transparenz eines Expertensystems gestaltet sich als äußerst wichtig, da dadurch die Kommunikationsfähigkeit zwischen System und menschlichem Benutzer und mit positivem Ausgang abhängt D.h. Transparenz dient dem Verständnis und der Anwendungsmöglichkeit von Problemlösungsstrategien
If- then- rules haben zudem die Eigenschaft folgende user‘s questions zu beantworten: 1. ‘How‘ questions: How did you reach this conclusion? 2. ‘Why‘ questions: Why are you interested in this information?
Zwei wichtige features um Schlussfolgerungen aus der knowledge base ziehen zu können, lassen sich folgendermaßen bennen: 1. Forward chaining in rule-based systems 2. Backward chaining in rule-based systems
Zu 1. (Forward chaining): Startet nicht (wie Backward chaining) mit einer Hypothese, sondern es wird jede Aussage in Verbindung mit der Folgeaussage interpretiert Forward chaining lässt sich in Prolog leicht realisieren durch die Anwendung von: If Condition then Conclusion
Zu 2.(Backward chaining): Es wird eine Hypothese erstellt und es wird in Anlehnung an die Wissensbasis „rückwärts“ gearbeitet Eine Hypothese wird erstellt Die Inferenzmaschine kommt zum Einsatz und es wird ausgehend von der Hypothese backwards der Weg zur Schlussfolgerung gesucht
If- then-rules sind Regeln, deren Richtung von links nach rechts zu betrachten ist Die Elemente auf der linken Seite werden als input information (data) bezeichnet Die Elemente auf der rechten Seite werden als derived information (hypotheses) bezeichnet
Beispiele: Data … goals Evidence … hypotheses Findings, observations …explanations, diagnoses Manifestations … diagnoses, causes
APES A Prolog Expert System
Allgemeines
Apes nutzt als Eingabeformat eine Repräsentation in natürlicher Sprache Das System orientiert sich an gezielten Fragestellungen Beispiel aus der Systembeschreibung: “What is Object-01“ oder “Is Object-A a bird?“
Diesem Fragestellungsmuster entsprechend beginnt der Problemlösungsprozess Das System sucht nach Regeln und Antworten als Schlussfolgerungen Wenn eine Lösung gefunden worden ist, so leitet die Inferenzmaschine zur Schlussfolgerung Das Eingabeformat ist definiert als Definite Clause Grammar (DCG)
Definite Clause Grammar (DCG)
DCG: Prolog erlaubt die Arbeit mit kontextfreien Grammatiken Die Umsetzung einfacherer Regeln ist daher in Prolog möglich Kontextfreie Regeln haben auf der linken Seite immer genau ein nichtterminales Symbol
Auf der rechten Seite können ein oder mehrere nichtterminale und terminale Symbole stehen (S NP VP usw.) DCGs sind in den meisten Prolog- Anwendungen enthalten
Beispiel für die Darstellung von DCG in Prolog: DCG Darstellung in Prolog s --> np, vp s(X,Z) :- np(X,Y), vp(Y,Z). np --> det, n np(X,Z) :- det(X,Y), n(Y,Z). vp --> v np vp(X,Z) :- v(X,Y), np(Y,Z). vp --> v vp(X,Z) :- v(X,Z). det --> [die] det([die|W],W). n --> [frau] n([frau|W],W). v --> [läuft] v([läuft|W],W).
Komponenten von Apes
src knowledge knowledge.pl src knowledge groups feline.pl src knowledge groups pet.pl src engine.pl src helpers.pl src main.pl src parser.pl src processor.pl src tokenizer.pl
Knowledge-base (knowledge.pl): Bezeichnet die Wissensbasis des Expertensystems Darin enthalten ist der Code eines regelbasierten Expertensystems repräsentiert durch die Darstellung von if-then rules Prolog-based domain-specific language (DSL)
engine.pl:
helpers.pl: Eine Hilfsdatei, um den Zugang zu den in der knowledge-base generierten if-then-rules zu ermöglichen main.pl: vereint alle in Apes enthaltenen Prolog- Dateien zum Programmstart parser.pl: Diese Datei dient dazu das input format in DCG zu generieren
processor.pl: tokenizer.pl: Dient dazu, Zeichenketten in einzelne Tokens zu zerlegen
Anforderungen
Die wichtigste Anforderung an den Benutzer des Expertensystems fungiert über korrekte Anweisungen Die wichtigsten Fragestellungen sind hierbei: “What is Object-A?“ und “Is Object-A something?“
Ist das Programm gestartet erfolgt die Kommunikation zwischen System und Nutzer über die Abfragen: “yes.“ oder “y.“ “no.“ oder “y“. “why.“ oder “w.“
Auf diese Weise wird (soll) auf die „Fragen“ des Benutzers geantwortet werden Bei entsprechender Eingabe (also why) sollen Schlussfolgerungen gezogen werden, inwiefern das Expertensystem auf die Lösung gekommen ist
Zum Aufbau der knowledge-base dient das Hinzufügen von: rules (Beispiel: "if animal has scales and animal has cold-blood then animal is a reptile.“) facts (Beispiel: “a dog is a pet.“)
Ebenso sind Gruppen (groups) zu bilden, die entsprechende vom Benutzer definierte Objekte unter eine Gemeinschaft von Objekten mit gleichen oder ähnlichen Merkmalen stellen rules sind unter knowledgle.pl gespeichert facts sind unter knowledge/groups generiert
Wichtiges Hilfsmittel zum Aufbau der knowledge-base ist der Debugger Dieser erlaubt das Überprüfen der generierten Regeln im Zusammenspiel der einzelnenn Dateien, d.h. parser, tokenizer, processor, knowledge, helpers, engine und main