Expertensysteme. Was ist ein Expertensystem? Allgemeine Definition: System von Softwaretechnologien,...

Post on 05-Apr-2015

104 views 0 download

Transcript of Expertensysteme. Was ist ein Expertensystem? Allgemeine Definition: System von Softwaretechnologien,...

ExpertensystemeExpertensysteme

Was ist ein Was ist ein Expertensystem?Expertensystem?

Allgemeine Definition:Allgemeine Definition:

System von Softwaretechnologien, das auf System von Softwaretechnologien, das auf der Basis von der Basis von Expertenwissen Expertenwissen Problemlösungsstrategien anbietetProblemlösungsstrategien anbietet

Systeme zur Unterstützung medizinischer Systeme zur Unterstützung medizinischer DiagnosenDiagnosen

Analyse wissenschaftlicher DatenAnalyse wissenschaftlicher Daten

Sinn: Maschinelles Verarbeitungsvermögen Sinn: Maschinelles Verarbeitungsvermögen wird genutzt, sobald menschliches wird genutzt, sobald menschliches Berechnungs- und Berechnungs- und Problemlösungsvermögen überfordert istProblemlösungsvermögen überfordert ist

Wichtig hierbei ist jedoch die sinnhafte, Wichtig hierbei ist jedoch die sinnhafte, vorteilhafte und verständliche vorteilhafte und verständliche Kommunikation zwischen Mensch und Kommunikation zwischen Mensch und MaschineMaschine

Die Qualität eines Expertensystems hängt Die Qualität eines Expertensystems hängt von der hohen bzw. geringen Fehlerquote von der hohen bzw. geringen Fehlerquote von Problemlösungen abvon Problemlösungen ab

Die WissensbasisDie Wissensbasis

Die für ein Expertensystem generierte Die für ein Expertensystem generierte Wissensbasis (knowledge base) Wissensbasis (knowledge base) dient nicht dient nicht zu deren ausschließlicher Repräsentation, zu deren ausschließlicher Repräsentation, sondern soll auf deren Grundlage weitere sondern soll auf deren Grundlage weitere Schlussfolgerungen zulassenSchlussfolgerungen zulassen

Wissensbasis repräsentiert das wichtigste Wissensbasis repräsentiert das wichtigste Modul innerhalb eines ExpertensystemsModul innerhalb eines Expertensystems

Die Die knowledge base knowledge base enthält das Fachwissen enthält das Fachwissen einer beliebigen Repräsentationsformeiner beliebigen Repräsentationsform

Die Die knowledge base knowledge base wird durch eine wird durch eine Inferenzmaschine ergänztInferenzmaschine ergänzt

Diese Inferenzmaschine bezeichnet eine Diese Inferenzmaschine bezeichnet eine Softwarestruktur mit deren Hilfe die Softwarestruktur mit deren Hilfe die Wissensbasis nutzbar gemacht wirdWissensbasis nutzbar gemacht wird

Aufgaben von Aufgaben von ExpertensystemenExpertensystemen

DateninterpretationDateninterpretation ÜberwachungÜberwachung DiagnoseDiagnose TherapieTherapie PlanungPlanung EntwurfEntwurf PrognosePrognose

RealisierungRealisierung

Fallbasierte SystemeFallbasierte Systeme

Regelbasierte Systeme (Wenn- Dann- Regelbasierte Systeme (Wenn- Dann- Beziehung als Problemlösungsstrategie)Beziehung als Problemlösungsstrategie)

EntscheidungsbäumeEntscheidungsbäume

Die Entwicklung bzw. der Aufbau eines Die Entwicklung bzw. der Aufbau eines Expertensystem erfolgt bzw. besteht ausExpertensystem erfolgt bzw. besteht aus

essentiellen Bestandteilen:essentiellen Bestandteilen:

1. knowledge- based system1. knowledge- based system

2. inference engine2. inference engine

3. user interface3. user interface

Zu 1. generiert das Wissen, das für den Zu 1. generiert das Wissen, das für den Aufbau und die Arbeit des entsprechenden Aufbau und die Arbeit des entsprechenden Expertensystems vorgesehen istExpertensystems vorgesehen ist

Dazu zählen ausserdem Regeln, Dazu zählen ausserdem Regeln, Besonderheiten und Relationen im Besonderheiten und Relationen im WissenssystemWissenssystem

Zu 2. Eine Inferenzmaschine dient dazu, Zu 2. Eine Inferenzmaschine dient dazu, das generierte Wissen zu das generierte Wissen zu Anwendungszwecken nutzbar zu machenAnwendungszwecken nutzbar zu machen

Zu 3. dient zur Kommunikation zwischen Zu 3. dient zur Kommunikation zwischen dem System und dem Benutzerdem System und dem Benutzer

Unterstützendes Aggregat während des Unterstützendes Aggregat während des Problemlösungsprozess (Problemlösungsprozess (problem-solving-problem-solving-processprocess))

Die Die inference engineinference engine und das und das user interfaceuser interface

werden auch als werden auch als ein Modul (shell)ein Modul (shell) bezeichnetbezeichnet

Die Die knowledge baseknowledge base ist abhängig von der ist abhängig von der jeweiligen Applikationjeweiligen Applikation

Die Die shellshell ist abhängig vom jeweilgen ist abhängig vom jeweilgen Aufgaben- oder Fachgebiet der generierten Aufgaben- oder Fachgebiet der generierten knowledge baseknowledge base

Knowledge base

Inference engine

User interface User

Shell

Regelbasierte Regelbasierte Expertensysteme Expertensysteme

if-then-rulesif-then-rules

Fokus auf Regelbasierte ExpertensystemeFokus auf Regelbasierte Expertensysteme

Wichtigstes Merkmal hierbei: Die Wichtigstes Merkmal hierbei: Die Repräsentation von Wissen durch ein Repräsentation von Wissen durch ein Regelgefüge von Wenn-Dann- BeziehungenRegelgefüge von Wenn-Dann- Beziehungen

if-then-rulesif-then-rules oder oder production rulesproduction rules

If- then- rulesIf- then- rules sind durch verschiedene sind durch verschiedene Formalismen interpretierbar:Formalismen interpretierbar:

IfIf precondition P precondition P thenthen conclusion C conclusion C

IfIf situation S situation S thenthen action A action A

IfIf conditions C1 and C2 hold conditions C1 and C2 hold thenthen condition condition C does not holdC does not hold

Eigenschaften von Eigenschaften von if-then- rules:if-then- rules:

ModularityModularity: each rule defines a small, : each rule defines a small, relatively independent piece of knowledgerelatively independent piece of knowledge

IncrementabilityIncrementability: new rules can be added to : new rules can be added to the knowledge base relatively independently the knowledge base relatively independently to other rulesto other rules

ModifiabilityModifiability: (as a consequence of : (as a consequence of modularity): old rules can be changed modularity): old rules can be changed relatively independent of other rulesrelatively independent of other rules

Support system‘s Support system‘s transparencytransparency

Die Eigenschaft der Transparenz eines Die Eigenschaft der Transparenz eines Expertensystems gestaltet sich als äußerst Expertensystems gestaltet sich als äußerst wichtig, da dadurch die wichtig, da dadurch die Kommunikationsfähigkeit zwischen System Kommunikationsfähigkeit zwischen System und menschlichem Benutzer und mit und menschlichem Benutzer und mit positivem Ausgang abhängtpositivem Ausgang abhängt

D.h. Transparenz dient dem Verständnis D.h. Transparenz dient dem Verständnis und der Anwendungsmöglichkeit von und der Anwendungsmöglichkeit von ProblemlösungsstrategienProblemlösungsstrategien

If- then- rulesIf- then- rules haben zudem die Eigenschaft haben zudem die Eigenschaft folgende folgende user‘s questionsuser‘s questions zu beantworten: zu beantworten:

1. ‘How‘ questions: 1. ‘How‘ questions: HowHow did you reach this did you reach this conclusion?conclusion?

2. ‘Why‘ questions: 2. ‘Why‘ questions: WhyWhy are you interested are you interested in this information? in this information?

Zwei wichtige Zwei wichtige features features um um Schlussfolgerungen aus der Schlussfolgerungen aus der knowledge knowledge base base ziehen zu können, lassen sich ziehen zu können, lassen sich folgendermaßen bennen:folgendermaßen bennen:

1. Forward chaining in rule-based systems1. Forward chaining in rule-based systems

2. Backward chaining in rule-based systems2. Backward chaining in rule-based systems

Zu 1. (Forward chaining): Startet nicht (wie Zu 1. (Forward chaining): Startet nicht (wie Backward chaining) mit einer Hypothese, Backward chaining) mit einer Hypothese, sondern es wird jede Aussage in sondern es wird jede Aussage in Verbindung mit der Folgeaussage Verbindung mit der Folgeaussage interpretiertinterpretiert

Forward chaining lässt sich in Prolog leicht Forward chaining lässt sich in Prolog leicht realisieren durch die Anwendung von:realisieren durch die Anwendung von:

IfIf Condition Condition thenthen Conclusion Conclusion

Zu 2.(Backward chaining): Es wird eine Zu 2.(Backward chaining): Es wird eine Hypothese erstellt und es wird in Anlehnung Hypothese erstellt und es wird in Anlehnung an die Wissensbasis „rückwärts“ gearbeitetan die Wissensbasis „rückwärts“ gearbeitet

Eine Hypothese wird erstelltEine Hypothese wird erstellt

Die Inferenzmaschine kommt zum Einsatz Die Inferenzmaschine kommt zum Einsatz und es wird ausgehend von der Hypothese und es wird ausgehend von der Hypothese backwards der Weg zur Schlussfolgerung backwards der Weg zur Schlussfolgerung gesuchtgesucht

If- then-rules sind Regeln, deren Richtung If- then-rules sind Regeln, deren Richtung von links nach rechts zu betrachten istvon links nach rechts zu betrachten ist

Die Elemente auf der linken Seite werden Die Elemente auf der linken Seite werden als als input information (data)input information (data) bezeichnet bezeichnet

Die Elemente auf der rechten Seite werden Die Elemente auf der rechten Seite werden als als derived information (hypotheses)derived information (hypotheses) bezeichnetbezeichnet

Beispiele:Beispiele:

Data Data …… goals goals

Evidence Evidence …… hypotheses hypotheses

Findings, observations Findings, observations ……explanations, explanations, diagnosesdiagnoses

Manifestations Manifestations …… diagnoses, causes diagnoses, causes

APESAPESA Prolog Expert SystemA Prolog Expert System

AllgemeinesAllgemeines

Apes Apes nutzt als Eingabeformat eine nutzt als Eingabeformat eine Repräsentation in natürlicher SpracheRepräsentation in natürlicher Sprache

Das System orientiert sich an gezielten Das System orientiert sich an gezielten FragestellungenFragestellungen

Beispiel aus der Systembeschreibung:Beispiel aus der Systembeschreibung:

““What is Object-01“ oder “Is Object-A a What is Object-01“ oder “Is Object-A a bird?“bird?“

Diesem Fragestellungsmuster entsprechend Diesem Fragestellungsmuster entsprechend beginnt der Problemlösungsprozessbeginnt der Problemlösungsprozess

Das System sucht nach Regeln und Das System sucht nach Regeln und Antworten als SchlussfolgerungenAntworten als Schlussfolgerungen

Wenn eine Lösung gefunden worden ist, so Wenn eine Lösung gefunden worden ist, so leitet die Inferenzmaschine zur leitet die Inferenzmaschine zur SchlussfolgerungSchlussfolgerung

Das Eingabeformat ist definiert als Definite Das Eingabeformat ist definiert als Definite Clause Grammar (DCG)Clause Grammar (DCG)

Definite Clause Definite Clause Grammar (DCG)Grammar (DCG)

DCG: Prolog erlaubt die Arbeit mit DCG: Prolog erlaubt die Arbeit mit kontextfreien Grammatikenkontextfreien Grammatiken

Die Umsetzung einfacherer Regeln ist daher Die Umsetzung einfacherer Regeln ist daher in Prolog möglichin Prolog möglich

Kontextfreie Regeln haben auf der linken Kontextfreie Regeln haben auf der linken Seite immer genau ein nichtterminales Seite immer genau ein nichtterminales SymbolSymbol

Auf der rechten Seite können ein oder Auf der rechten Seite können ein oder mehrere nichtterminale und terminale mehrere nichtterminale und terminale Symbole stehen (SSymbole stehen (S NP VP usw.) NP VP usw.)

DCGs sind in den meisten Prolog- DCGs sind in den meisten Prolog- Anwendungen enthaltenAnwendungen enthalten

Beispiel für die Darstellung von DCG in Beispiel für die Darstellung von DCG in Prolog: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 Komponenten von ApesApes

src src knowledge knowledge knowledge.pl knowledge.pl src src knowledge knowledge groups groups feline.pl feline.pl src src knowledge knowledge groups groups pet.pl pet.pl src src engine.pl engine.pl src src helpers.pl helpers.pl src src main.pl main.pl src src parser.pl parser.pl src src processor.pl processor.pl src src tokenizer.pl tokenizer.pl

Knowledge-base (Knowledge-base (knowledge.plknowledge.pl):):

Bezeichnet die Wissensbasis des Bezeichnet die Wissensbasis des ExpertensystemsExpertensystems

Darin enthalten ist der Code eines Darin enthalten ist der Code eines regelbasierten Expertensystems regelbasierten Expertensystems repräsentiert durch die Darstellung von repräsentiert durch die Darstellung von if-if-then rulesthen rules

Prolog-based domain-specific language Prolog-based domain-specific language (DSL)(DSL)

engine.pl:engine.pl:

helpers.pl: helpers.pl: Eine Hilfsdatei, um den Zugang Eine Hilfsdatei, um den Zugang zu den in der zu den in der knowledge-baseknowledge-base generierten generierten if-then-rulesif-then-rules zu ermöglichen zu ermöglichen

main.pl: main.pl: vereint alle in Apes enthaltenen vereint alle in Apes enthaltenen Prolog- Dateien zum ProgrammstartProlog- Dateien zum Programmstart

parser.pl: parser.pl: Diese Datei dient dazu das input Diese Datei dient dazu das input format in DCG zu generierenformat in DCG zu generieren

processor.pl: processor.pl:

tokenizer.pl: tokenizer.pl: Dient dazu, Zeichenketten in Dient dazu, Zeichenketten in einzelne Tokens zu zerlegeneinzelne Tokens zu zerlegen

AnforderungenAnforderungen

Die wichtigste Anforderung an den Benutzer Die wichtigste Anforderung an den Benutzer des Expertensystems fungiert über korrekte des Expertensystems fungiert über korrekte AnweisungenAnweisungen

Die wichtigsten Fragestellungen sind Die wichtigsten Fragestellungen sind hierbei:hierbei:

““What is Object-A?“ und “Is Object-A What is Object-A?“ und “Is Object-A somethingsomething?“?“

Ist das Programm gestartet erfolgt die Ist das Programm gestartet erfolgt die Kommunikation zwischen System und Kommunikation zwischen System und Nutzer über die Abfragen:Nutzer über die Abfragen:

““yes.“ oder “y.“yes.“ oder “y.“

““no.“ oder “y“.no.“ oder “y“.

““why.“ oder “w.“why.“ oder “w.“

Auf diese Weise wird (soll) auf die „Fragen“ Auf diese Weise wird (soll) auf die „Fragen“ des Benutzers geantwortet werdendes Benutzers geantwortet werden

Bei entsprechender Eingabe (also Bei entsprechender Eingabe (also whywhy) ) sollen Schlussfolgerungen gezogen werden, sollen Schlussfolgerungen gezogen werden, inwiefern das Expertensystem auf die inwiefern das Expertensystem auf die Lösung gekommen istLösung gekommen ist

Zum Aufbau der Zum Aufbau der knowledge-base knowledge-base dient das dient das Hinzufügen von:Hinzufügen von:

rules rules

(Beispiel: "if animal has scales and animal (Beispiel: "if animal has scales and animal has cold-blood then animal is a reptile.“) has cold-blood then animal is a reptile.“)

factsfacts

(Beispiel: “a dog is a pet.“)(Beispiel: “a dog is a pet.“)

Ebenso sind Gruppen (Ebenso sind Gruppen (groupsgroups) zu bilden, ) zu bilden, die entsprechende vom Benutzer definierte die entsprechende vom Benutzer definierte Objekte unter eine Gemeinschaft von Objekte unter eine Gemeinschaft von Objekten mit gleichen oder ähnlichen Objekten mit gleichen oder ähnlichen Merkmalen stellenMerkmalen stellen

rulesrules sind unter sind unter knowledgle.plknowledgle.pl gespeichert gespeichert

factsfacts sind unter sind unter knowledge/groupsknowledge/groups generiert generiert

Wichtiges Hilfsmittel zum Aufbau der Wichtiges Hilfsmittel zum Aufbau der knowledge-baseknowledge-base ist der ist der Debugger Debugger

Dieser erlaubt das Überprüfen der Dieser erlaubt das Überprüfen der generierten Regeln im Zusammenspiel der generierten Regeln im Zusammenspiel der einzelnenn Dateien, d.h. einzelnenn Dateien, d.h. parser, tokenizer, parser, tokenizer, processor, knowledge, helpers, engine und processor, knowledge, helpers, engine und mainmain