i

Expertensysteme und Maschinelles Lernen

Expertensysteme

Einer der ersten Ansätze bestand darin, Computerprogrammen eine möglichst große Menge an von Menschen angesammelten Wissen über einen bestimmten Ausschnitt der Welt mitzugeben. Man spricht in diesem Zusammenhang von „Expertensystemen“.

Einfache Computerprogramme

Im Grunde kann man ein Expertensystem für ein bestimmtes Problem in jeder beliebigen Programmiersprache realisieren; man muss nur geeignete Möglichkeiten finden,
  1. das Wissen als Teil des Programmcodes selbst und/oder als externe Daten abzulegen
  2. das so abgelegte Wissen so zu verarbeiten, dass es sinnvoll auf die gewünschten Probleme angewendet werden kann.
Expertensystem als Programm mit Daten[1]

Der erste Punkt erfordert vor allem die Kenntnisse von Experten ("Wissensingenieuren") für das jeweilige Problem (z.B. aus dem Gebiet der Medizin). Möchte man ein weiteres Expertensystem (z.B. aus dem Bereich des Maschinenbaus) erstellen, ist dieses Wissen nicht mehr verwendbar.

Für den zweiten Punkt sind hingegen tiefgreifende informatische Kenntnisse nötig, um entsprechende Algorithmen zu realisieren. Sind diese Algorithmen jedoch allgemein genug gehalten, können sie im Grunde für weitere Expertensysteme wiederverwendet werden. Dafür müssen sie jedoch in gut dokumentierter Weise für andere zur Verfügung stehen.

Inferenzmaschinen

Vor diesem Hintergrund lag die Überlegung nahe, in der Architektur von Expertensystemen die beiden oben genannten Punkte möglichst weitgehend zu trennen:

  1. In einer so genannten Wissensbasis wird das problemabhängige Wissen in Form von Fakten und Regeln abgelegt. Dies geschieht in einer vorgegebenen Form, typischerweise in einer eigens dafür konstruierten Programmiersprache. Eine solche Programmiersprache ist z.B. Prolog.
  2. Der komplett problem-unabhängige so genannte Inferenz-Algorithmus (Inferenz-Maschine) kann aus den in der Wissensbasis abgelegten Fakten und Regeln neue Zusammenhänge ableiten. Im Prolog-Interpreter ist eine solche Inferenz-Maschine fest eingebaut.
Expertensystem als Wissensbasis und Inferenzmaschine[2]

Eine Einführung in die Programmierung mit Prolog kannst Du Dir auf inf-schule.de im Kapitel Logische Programmierung anschauen und so selbst einfache Expertensysteme programmieren.

Probleme bei Expertensystemen

Bei überschaubaren Problembereichen funktionieren diese Systeme teilweise sehr sehr gut. Allerdings stellte sich (nach anfänglicher Euphorie) sehr schnell heraus, dass vielen für den Menschen extrem einfachen Problemen mit regelbasierten Expertensystemen trotzdem nur sehr schwer oder gar nicht beizukommen ist. Schon die Fähigkeiten eines sehr kleinen Kindes lassen sich kaum in einem Expertensystem abbilden. Besonders trifft dies auf das Gebiet der Erkennung von Mustern zu: Schon ein kleines Kind kann auf einem Bild eine Katze erkennen. Versucht man allerdings computer-gerechte Regeln aufzustellen, wann genau ein Bild eine Katze darstellt und wann nicht, wird dies extrem schwierig. Entsprechend groß war die Enttäuschung bei denjenigen Forschern, die gehofft hatten, mit Expertensystemen die geistigen Fähigkeiten von Menschen in ihrer gesamten Breite abbilden zu können.

Nichtsdestoweniger haben Expertensysteme auch heute noch durchaus sinnvolle Anwendungsbereiche; ihre Leistungsfähigkeit ist besonders groß in Gebieten, die ein eng umgrenztes Gebiet von Spezialwissen betreffen.

Maschinelles Lernen

Mit der Enttäuschung über die Expertensysteme Mitte der 1980er Jahre wurde ein anderer Ansatz attraktiver, der allerdings auch schon seine Wurzeln in den 1950er Jahren hat: Wenn Menschen und Tiere aus Erfahrung lernen, kann man dies nicht auch mit Computerprogrammen machen? Solche lernenden Computerprogramme werden im allgemeinen als „Machine Learning“ bezeichnet.

Manche Verfahren haben ihre ursprüngliche Motivation auch in der Nachbildung von Strukturen in der Biologie (etwa Neuronale Netze oder Evolutionäre Algorithmen), andere haben keine direkte biologische Entsprechung. Bei den meisten Ansätzen ist es so, dass das Verhalten des künstlichen Systems durch eine Vielzahl von Variablen festgelegt sind, in denen Zahlen gespeichert sind. Wir wollen die Gesamtheit dieser Zahlen hier als das "Modell" bezeichnen.

Diese Zahlenwerte werden jedoch nicht von einem Programmierer oder Wissensingenieur festgelegt, vielmehr ergibt sich das Modell aus einem Trainings- oder Lernvorgang, der einerseits Trainingsdaten bzw. eine Trainings-Umwelt benötigt und andererseits einen Algorithmus, den Lern-Algorithmus, der festlegt, wie sich die Zahlenwerte des Modells abhängig von den Trainingsdaten nach und nach verändern.

Während also bei Expertensystemen vom Menschen vorgegebenes Wissen durch den Inferenz-Algorithmus verarbeitet wird, wird beim Maschinellen Lernen das "Wissen" (meist in Form eines auf Zahlenwerten beruhenden Modells) erst durch den Lernalgorithmus aus Trainingsdaten oder aus einer Trainings-Umwelt erworben.

Maschinelles Lernen[3]

Dabei unterscheidet man grob drei Arten von Maschinellem Lernen:

  1. Überwachtes Lernen (Supervised Learning). Dieser Ansatz wird häufig für die Erkennung (Klassifikation) von Mustern verwendet. Wenn beispielsweise Bilder von Tieren der entsprechenden Tierart zugeordnet werden sollen, werden dem Lernalgorithmus eine Vielzahl von Bildern präsentiert und auch die zugehörige Tierart (die von Menschen bestimmte "Soll-Klassifikation"). Man spricht hier von einem Trainings-Datensatz. Vom Umfang und der Qualität des Trainings-Datensatzes hängt in entscheidender Weise ab, wie gut das daraus entstehende Modell funktioniert.
  2. Unüberwachtes Lernen (Unsupervised Learning). Man kann auch versuchen, den Algorithmus selbst Ähnlichkeiten zwischen verschiedenen Trainingsdatensätzen auffinden zu lassen, also keine "Soll-Klassifikation" vorzugeben.
  3. Bestärkendes Lernen (Reinforcement Learning). Wenn es darum geht, dass eine künstliche Intelligenz mit einer bestimmten Umwelt wechselwirkt (etwa ein künstlicher Spieler in einem Computerspiel), wird auch die Methode des Bestärkenden Lernens (Lernens durch Belohnung und Bestrafung) eingesetzt.

Quellen

Suche

v
13.1.1.3
dev.inf-schule.de/informatiksysteme/kuenstliche-intelligenz/ki_uebersicht/xps_vs_ml
dev.inf-schule.de/13.1.1.3

Rückmeldung geben