2.1. Grundkonzepte und Aufbau /
/>
Nachdem im Expertensystembereich sehr unterschiedliche Definitionen von Expertensystem im Umlauf sind, erscheint es mir sinnvoll die differenzierende Definition aus [CB89] zu übernehmen.
Diese Definition trennt zwei unabhängige Aspekte, die für den Begriff Expertensystem wichtig sind, in zwei verschiedene Definitionen:
2.1.1. Anwendungsorientierte Definition
Ein Expertensystem ist ein Computerprogramm, das für ein spezifisches und genau abgegrenztes Teilgebiet gewisse Aufgaben eines Experten lösen kann bzw. ihn bei der Problemlösung unterstützt. Dazu wird das spezielle Wissen des Experten explizit in symbolischer Form in einem Programm oder als Datenmenge bzw. innerhalb einer Datenbank dargestellt.
2.1.2. Technische Definition
Expertensysteme sind Programme, die sich durch die Trennung der anwendungsspezifischen Methoden in der Wissensbank und der anwendungsunabhänigen Programmsteuerung durch die Inferenzmaschine zum Erzeugen logischer Schlußfolgerungen auszeichnet.
Für Expertensysteme soll dabei die Programmiergrundregel
Programm = Algorithmen + Datenstrukturen
durch die neue Regel
System = Inferenz-Logik + Methoden + Fakten
ersetzt werden ([CB89] S.26).
Für Expertensysteme typische Techniken sind dabei:
* Erschließung von Wissen
* Verwendung von vagen oder unsicheren Fakten
* Einbau von ,,Erklärungskomponenten", um Arbeitsweise und Ergebnis des Programms dem Benutzer auf Rückfrage hin erklären zu können.
Es ergeben sich natürlich auch zwei Fälle, wo diese beiden Definitionen nicht zusammenfallen. Zum einen kann ein System Aufgaben eines Experten übernehmen und doch auf traditionelle Art programmiert sein, zum Beispiel aus Effizienzgründen. Zum anderen kann es vorkommen, daß ein System in der Art der Expertensysteme programmiert ist, daß es jedoch für Aufgaben verwendet wird, für die bisher kein Experte eingesetzt wurde. Zum Beispiel in der Prozeßsteuerung oder in der Mustererkennung.
Ein typisches Expertenssystem ist ungefähr folgendermaßen aufgebaut (nach [Pup88]):
Bild 1
Im Umgang mit dem Expertensystem sind drei Personenrollen vorgesehen: Benutzer, Experte und Wissensingenieur (Bild 2). Verschiedene Rollen können aber auch in einer Person zusammenfallen. Zum Beispiel wenn der Experte selbst sein Wissen formalisiert und in das System eingibt.
Bild 2
Sind nur Wissenseinbringungskomponente, Dialogkomponente, Erklärungskomponente und Inferenzkomponente vorhanden, spricht man von einer (Expertensystem-) Shell. Die Anwender können hier das genaue Wissensgebiet selbst festlegen indem sie die Wissensbank mit dem nötigen Wissen auffüllen.
Der Hauptvorteil der Trennung des Systems in Inferenzkomponente und Wissensbank ist der einer leichten Wartung und Änderbarkeit, da diese Systeme typischerweise eben in Gebieten mit sich änderndem und verfeinerndem Wissen eingesetzt werden.
Man kann Expertensyteme in verschiedene Typen einteilen:
* Analytische Expertensysteme
* Diagnose
* Klassifikation
* Synthetische Expertensysteme
* Planung
* Konfiguration
* Fertigungssteuerung
Ein typisches systematisches Vorgehen beim Erstellen eines Expertensystems kümmert sich nacheinander um die Teilgebiete:
* Wissenserwerb
* Wissensrepräsentation
* Inferenzmechanismus
* Benutzerschnittstelle
2.2. Wissenserwerb
Wissenserwerb ist der Versuch das Wissen eines Experten in einer implementationsunabhängigen, aber formalen Weise niederzulegen. Dies kann auf verschiedene Weise geschehen:
Indirekt:
Dazu muß der Wissensingenieur dem menschlichen Experten helfen, sein relevantes fachliches Wissen zu identifizieren, strukturieren und formalisieren. Der Wissensingenieur muß neben den fachlichen Fähigkeiten auch besondere soziale mitbringen. Andere Wissensquellen neben dem Experten können für den Wisseningenieur eigenes Fachwissen, sowie Fallstudien oder Bücher sein.
Direkt:
Der Experte formalisiert sein Wissen selbst. Dazu muß das Expertensystem eine leicht bedienbare Wissenserwerbskomponente haben.
Automatisch:
Das Expertensystem extrahiert sein Fachwissen selbständig aus der verfügbaren Literatur und auf Falldatenbanken. Diese Technik ist im Moment reiner Forschungsgegenstand.
Zum Wissen eines Experten können ganz verschiedene Dinge gehören, wie zum Beispiel Fakten, Überzeugungen, Methoden, Heuristiken und nicht zuletzt Problemlösungswissen (globale Strategien, Metawissen). Ein Phasenplan zum Wissenserwerb sieht folgendermaßen aus:
* Identifikation :
Ein Pflichtenheft mit organisatorischer Umgebung und Anforderungen an das Expertensystem wird erstellt.
* Konzeptualisierung
Der Grobentwurf und der zu betrachtende Realitätsausschnitt wird festgelegt.
* Formalisierung
Aufbereitung in eine dem verwendeten Rechnersystem und der zur Anwendung kommenden Shell verständliche Form.
2.3. Wissensrepräsentation
Die Wissenrepräsentation hat eine natürliche & effiziente Darstellung des "Wissens" zum Ziel. Unabhänging von der nicht ganz klaren Bedeutung von natürlich in diesem Zusammenhang ist klar, daß diese Bedingungen eventuell in einen Konflikt zueinander treten können.
Es gibt deklarative Repräsentationen. (Logik, Semantische - Netze) und prozedurale Repräsentationen (Regelsysteme)
Methoden im Überblick
* Logikkalküle
* Regelsysteme
* Semantische Netze
* Frames
* KI Programmiersprachen
Diese Methoden werden auch gemischt verwendet.
2.4. Inferenzmechanismus
Inferenz heißt allgemein, aus vorhandenem Wissen neues zu erschließen. Dabei können die Schlußverfahren bzw. das Wissen auch vage und unsicher sein.
Der verwendete Inferenzmechnismus ist repräsentationsabhänig. Im Bereich logischer Repräsentationen zum Beispiel können verschiedene Deduktionsverfahren verwendet werden, die aus dem Bereich des mathematischen Beweisens bekannt sind.
Bei regelbasierten Repräsentationen ist eine der Hauptfragen ob die Regeln vorwärts- oder rückwärtsverkettet bearbeitet werden. Eine Vorwärtsverkettung errechnet zuerst alle Schlüsse, die sich aus der Wissensbank zusammen mit den fallspezifischen Fakten ergeben. Rückwärtsverkettung geht von einer Endhypothese aus und versucht Regeln zu finden, die diese Hypothese aus den bekannten Regeln herleiten. Vorwärtsverkettung ist vorteilhaft, wenn alle Daten von Anfang an vorhanden sind (z.B. Konstruktion) bzw. wenn auf neu ankommende Daten reagiert werden muß (z.B. Prozeßüberwachung).
Rückwärtsverkettung hat Vorteile, wenn nur eine kleine Zahl von Endhypothesen vorhanden ist wie z.B. bei manchen Diagnose- und Klassifikationsaufgaben. Diese Methoden können auch kombiniert werden.
2.5. Benutzerschnittstelle
Die Benutzerschnittstelle muß mit zwei Anwendersichten konstruiert werden: Zum einen die Sicht für den Experten bzw. Wissensingenieur beim Aufbau und der Wartung der Wissensbank, zum anderen die Sicht des Nutzers in der Anwendung des Systems.
2.5.1. Experte / Wissensingenieur - System
Für die Eingabe von Wissen sind zum Beispiel Regeleditoren üblich, oder die Implementation von formalen Sprachen zur Beschreibung von Regeln und Fakten. Als Forschungsgegenstand gibt es Versuche natürlichsprachlich - z.B. aus Texten - Wissen in das System zu übertragen. Ein anderer Forschungsgegenstand sind sogenannte lernende Systeme, die zumeist Regeln aus Beispielen selbständig extrahieren können sollen.
Ein wichtiger Aspekt des Wissenserwerbs ist Sinnfälligkeitsprüfung, da neues Wissen mit dem alten in Widerspruch treten kann und immer wieder Seiteneffekte zum Beispiel durch neue, geänderte oder entfernte Regeln auftreten können. Es gibt noch wenig Methoden die diese Problematik wirklich fest in den Griff bekommen.
2.5.2. Benutzer - System
Die Schnittstelle Benutzersystem ist eine Dialogkomponente zur Problemformulierung, für Rückfragen des Systems, für Fragen des Benutzers über den Lösungsweg und schließlich zur Ergebnisausgabe.
Angestrebt wird dabei von vielen die möglichst durchgängige Verwendung von natürlicher Sprache. Beim jetzigen Stand der Technik ist dies jedoch reiner Forschungsgegenstand.
Die Ergebnisdarstellung kann dabei auch grafisch sein. Wichtig ist dabei eventuell die Unterdrückung von Details, also eine Art Ergebnisabstraktion.
Die Erklärungskomponente liefert als Antwort zumeist eine Art Protokoll der Inferenzschritte. Dieses Protokoll wird oft noch aus Gründen der Verständlichkeit weiter aufbereitet, da das einfache Mitschreiben der Inferenzschritte für den Benutzer nicht oder nur sehr schwer verständlich ist. Diese Komponente sollte optimalerweise immer zugänglich sein.
Man kann der Erklärungskomponente zumeist zwei Typen von Fragen stellen: Wie - Fragen (Wie kommt es zu diesem abgeleiteten Faktum / Schluß) und Warum - Fragen (Warum wird diese Zwischenfrage gestellt).
2.6. Entwurf
Beim Entwurf eines Systems stellen sich nachdem man über das zu implementierende Wissen Bescheid weiß, mehrere Entwurfsentscheidungen, die nicht unabhängig voneinander sind.
Da ist zum einen die Frage, ob eine bereits existierende Expertensystem - Shell zur Implementation verwendet werden soll. Dies kann eine enorme Zeitersparnis bedeuten, schränkt jedoch die Arten der Wissensrepräsentation und die Inferenzmethoden auf die in dieser Shell implementierten ein.
Falls keine Shell verwendet wird, muß zuerst die Frage nach einer geeigneten Repräsentationsform beantwortet werden und darauf aufbauend die Frage der zu verwendenden Inferenzmechanismen.
Für die Implementation dieser Teile des Systems muß nun ein geeignetes Programmierverfahren ausgewählt werden. (logikorientiert, funktionsorientiert,) und anschließend eine entsprechende konkrete Programmierumgebung.
Schließlich müssen noch die Anforderungen an die Schnittstelle festgelegt werden. Ein Phasenplan zur Erstellung eines Expertensystems kann etwa so skizziert werden:
* Problemidentifikation ( Für welchen Zweck ? )
* Wissensakquisition ( formal aber implementationsunabhängig )
* Systementwurf ( Komponenten entwerfen, Programmiersprache/Shell auswählen )
* Programmierphase
* Systemeinsatz mit Test, Modifikation und Feinabstimmung
Die letzte Phase ist ein zyklischer Prozeß in dem Endbenutzer und Experten eine dominierende Rolle spielen.
|