Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
se:wissensverarbeitung [2008-07-12 17:02] stefan |
se:wissensverarbeitung [2014-04-05 11:42] (aktuell) |
||
---|---|---|---|
Zeile 31: | Zeile 31: | ||
* Was ist eine Inferenzmaschine? | * Was ist eine Inferenzmaschine? | ||
* Wie kann man ein Expertensystem realisieren? | * Wie kann man ein Expertensystem realisieren? | ||
- | | + | - Expertensystem-Implementierung in Prolog |
+ | * Wie kann Wissen verschiedener Art in Prolog formuliert werden? | ||
+ | * Welche inneren Vorgänge werden beim Bearbeiten eines Goals bearbeitet? | ||
+ | * Wie geht man mit Listen um? | ||
+ | * Wie erstellt man ein Prolog-Programm mit SWI-Prolog, bringt es zum Laufen und testet es? | ||
+ | * Wie nutzt man die Standardprädikate sinnvoll? | ||
+ | * Wie implementiert man ein Planungssystem in Prolog? | ||
+ | * Wie implementiert man ein Beratungs- oder Diagnosesystem in Prolog? | ||
+ | * Für welche anderen Aufgaben kann Prolog eingesetzt werden? | ||
+ | - Verarbeitung von ungenauem Wissen | ||
+ | * Wie können unscharfe (fuzzy) Mengen beschrieben werden? | ||
+ | * Wie werden Ausdrücke in Fuzzy Logic ausgewertet? | ||
+ | * Was ist das Ergebnis eines Fuzzy-Reglers bei gegebenen Eingangsgrößen? | ||
+ | * Wie kann man mit Prolog ein Fuzzy-System entwickeln? | ||
+ | - Künstliche Neuronale Netze | ||
+ | * Wie kann der Lernvorgang eines Neurons beschrieben werden? | ||
+ | * Wie kann das Schaltverhalten eines Neurons mit den Eingängen x1 und x2 in der x1/x2-Ebene dargestellt werden? | ||
+ | * Wie bemisst man aus einem gewünschten Schaltverhalten die Gewichte eines Neurons? | ||
+ | * Wie können Neuronen und verschiedene KNN skizziert werden? | ||
+ | * Wie wählt man zu einem gegebenen Problem ein geeignetes neuronales Netz aus und dimensioniert dieses? | ||
+ | * Wie kann der Lernvorgang einer SOM beschrieben werden? | ||
+ | - Data Mining | ||
+ | * Wofür braucht man Data Mining bzw. wo kann es eingesetzt werden? | ||
+ | * Was sind die wichtigsten Verfahren des Data Mining und wie funktionieren sie? | ||
+ | * Wie können diese Verfahren realisiert werden? | ||
+ | - Globale Optimierung | ||
+ | * Warum ist Optimierung so schwierig? | ||
+ | * Was sind die wichtigsten Verfahren der globalen Optimierung? | ||
+ | * Wie können diese Verfahren realisiert werden? | ||
===== Zusammenfassung des Skripts ===== | ===== Zusammenfassung des Skripts ===== | ||
==== Einleitung ==== | ==== Einleitung ==== | ||
Zeile 128: | Zeile 157: | ||
==== Expertensysteme ==== | ==== Expertensysteme ==== | ||
- | * Definition: System, das nach Eingabe des Wissens eines Experten, Probleme aus dem Fachgebiet dieses Experten selbstständig lösen kann. | + | * Definition: System, das nach Eingabe des Wissens eines Experten, Probleme aus dem Fachgebiet dieses Experten selbstständig lösen kann. |
- | * {{:se:aufbauexpertensystem.jpg|Aufbau eines Expertensystems}} | + | * Die Bestandteile des Systems können standardisiert werden. |
+ | * {{:se:aufbauexpertensystem.jpg|Aufbau eines Expertensystems}} | ||
+ | * Anwendungsbereiche | ||
+ | * Planungssysteme | ||
+ | * Diagnosesysteme | ||
+ | * Beratungssysteme | ||
+ | * Transformation von Informationen zu Wissen ist dem Menschen vorbehalten | ||
+ | |||
+ | ==== Expertensystem-Implementierung in Prolog ==== | ||
+ | * Prolog | ||
+ | * deklarative Programmiersprache | ||
+ | * Wissensdarstellung | ||
+ | * Prädikatenlogik | ||
+ | * Meta-Wissen: Problemlösungsverfahren | ||
+ | * Problemlösungsmechanismen | ||
+ | * Rückwärtsverkettung | ||
+ | * Rekursion | ||
+ | * Tiefen-/Breitensuche | ||
+ | * Backtracking | ||
+ | * Pattern Matching | ||
+ | * Unifikation von Variablen | ||
+ | * Syntax | ||
+ | * Variablen: großer Anfangsbuchstabe, Konstanten: kleiner Anfangsbuchstabe, anonyme Variable: _ | ||
+ | * Arity: Anzahl der Parameter eines Prädikats | ||
+ | * Goal ist eine Anfrage an das Programm | ||
+ | * Unifikation/Bindung von Variablen | ||
+ | * Box-Modell: call, redo, exit, fail | ||
+ | * **Standardprädikate** | ||
+ | * write, nl, writenl | ||
+ | * asserta, assertz, assert, retract, abolish | ||
+ | * fail, cut | ||
+ | * member, sort, msort, reverse, append | ||
+ | * findall | ||
+ | |||
+ | ==== Verarbeitung von ungenauem Wissen ==== | ||
+ | * Unscharfe Mengen | ||
+ | * Die Zugehörigkeit eines Objekts zu einer Menge wird nicht mit wahr oder falsch, sondern mit einem Zugehörigkeitswert zwischen 0 und 1 beschrieben. | ||
+ | * Der Wertebereich einer linguistischen Variablen kann in linguistische Werte unterteilt werden. | ||
+ | * Die Zugehörigkeit eines numerischen Werts zu einem linguistischen Wert wird über eine Zugehörigkeitsfunktion (meistens Dreiecks- oder Trapezfunktionen) beschrieben. | ||
+ | * Die Umsetzung eines numerischen Wertes in einen oder mehrere linguistische Werte mit Zugehörigkeitswert wird **Fuzzyfikation** genannt. | ||
+ | * Fuzzy Logic | ||
+ | * x UND y -> minimum(x, y) | ||
+ | * x OR y -> maximum(x, y) | ||
+ | * not x -> 1 - x | ||
+ | * Expertensystem mit Fuzzy Logic | ||
+ | * OAW-Tripel werden zu VWZ-Tripeln | ||
+ | * Fuzzy Control | ||
+ | |||
+ | ==== Künstliche neuronale Netze ==== | ||
+ | * Das menschliche Gehirn besteht aus 10<sup>11</sup> Neuronen. | ||
+ | * {{:se:aufbauneuron.jpg|}} | ||
+ | * Vernetzung Synapse -> Axon | ||
+ | * Lernen beruht auf Änderung der Synapsenstärke | ||
+ | * Lerntypen | ||
+ | * überwacht: dem neuronalen Netz müssen auch die korrekten Antworten vorgegeben werden | ||
+ | * nicht überwacht: das Netz lernt selbstständig die ihm angebotenen Informationen zu unterscheiden | ||
+ | * Aufgaben: Klassifikation, Rekonstruktion und Erkennung von Mustern | ||
+ | * Aufgaben des Entwicklers | ||
+ | * Auswahl des geeigneten Netztyps und Konfiguration | ||
+ | * Aufbereitung der Muster | ||
+ | * Bereitstellen von Trainingsmaterial | ||
+ | * Perceptron | ||
+ | * Bildet eine n-dimensionale Eingangsinformation auf eine m-dimensionale Ausgangsinformation ab | ||
+ | * Ausgänge sind nicht rückgekoppelt -> Feed-Forward-Netz | ||
+ | * Lernen durch Anpassen der Eingangsgewichte mittels Soll-Ist-Vergleich -> überwachtes Lernen | ||
+ | * Hebb'sche Regel | ||
+ | * Wer Recht hat, wird gestärkt, wer Unrecht hat, wird geschwächt. | ||
+ | * Vereinfachte Lernregel: Wenn das Ergebnis falsch ist, wird (Sollergebnis * Eingangsvektor) zum Gewichtsvektor addiert. | ||
+ | * Grenzen | ||
+ | * Lineare Separierbarkeit -> RBF-Neuron oder Mehrschicht-Perceptron | ||
+ | * Mehrschicht-Perceptron | ||
+ | * verdeckte Schichten (Anzahl und Größe: Erfahrungswerte) | ||
+ | * Lernen durch Backpropagation | ||
+ | * Eignung: Klassifizierung von Mustern/Kurvenapproximation | ||
+ | * Hopfield-Netz | ||
+ | * rückgekoppeltes Perceptron | ||
+ | * Eignung: Rekonstruktion von Mustern | ||
+ | * Kohonen-Netz (SOM = Self Organizing Map) | ||
+ | * nicht überwachtes Lernen | ||
+ | * die Neuronen, die am dichtesten am Eingangssignal liegen, werden in Richtung desselben verschoben | ||
+ | * Auswertung meist mit nachgelagertem Mehrschicht-Preceptron | ||
+ | |||
+ | ==== Data Mining ==== | ||
+ | * Ziel: Zusammenhänge und Auffälligkeiten in Datenbeständen finden | ||
+ | * Verfahren | ||
+ | * Clusteranalyse | ||
+ | * Cluster finden | ||
+ | * Least-Cost-Suche, dann Weg an längsten Wegen auftrennen | ||
+ | * Kohonennetz mit nachgeschaltetem Backpropagation-Netz | ||
+ | * Besonderheiten (Punkte außerhalb der Cluster) untersuchen | ||
+ | * Assoziationsanalyse | ||
+ | * Zeitreihenanalyse | ||
+ | |||
+ | ==== Globale Optimierung ==== | ||
+ | * Verfahren basieren auf zufälligen Änderungen und nicht auf zielgerichteten Algorithmen | ||
+ | * Stochastische Verfahren (pro Schritt eine neue Kombination: besser -> weiterverfolgen, schlechter -> vielleicht weiterverfolgen) | ||
+ | * Simulated Annealing (Wahrscheinlichkeit, dass schlechtere Kombination weiterverfolgt wird, wird langsam verringert) | ||
+ | * Sintflut-Verfahren (schlechtere Kombination wird weiterverfolgt, wenn sie besser ist als ein ansteigender Grenzwert) | ||
+ | * Threshold Accepting (schlechtere Kombination wird weiterverfolgt, wenn die Verschlechterung kleiner ist als ein abnehmender Grenzwert) | ||
+ | * Evolutionäre Verfahren (pro Schritt mehrere neue Kombinationen, Auswahl der besten hiervon) | ||
+ | * Evolutionsstrategien (Nachfolgeversionen werden durch Mutation der Vaterversion erzeugt) | ||
+ | * Genetische Algorithmen (Nachfolgeversionen werden durch Kombination des Elternpaares erzeugt) | ||
+ | * Variationen: Eltern werden in die neue Generation mit aufgenommen oder nicht, oder vergreisen | ||
+ | |||
+ | ===== ToDo ===== | ||
+ | * <del>Prolog-Aufgaben S. 45/46 und 49</del> | ||
+ | * <del>Beispielrechnung Defuzzyfikation S. 55</del> | ||
+ | * <del>Aufgaben S. 65/66</del> | ||
+ | * <del>Fuzzy-System S. 51</del> | ||
+ | * <del>Missionare/Kannibalen-Problem</del> | ||
+ | * <del>Praktikumsaufgaben</del> | ||
+ | * <del>Handlungsreisender S. 46</del> | ||
+ | * <del>"Ein ehrliches Strandvergnügen"</del> | ||
+ | * <del>Abenteurer, max. 4 Tagesrationen Nahrung, 5 Lager bis Ziel</del> | ||
+ | * <del>Beratungssystem mit Fuzzy Logic</del> | ||
+ | * <del>Klausur WS 05</del> | ||
+ | * <del>Klausur SS 07</del> | ||
+ | * <del>Optimierungsverfahren</del> | ||
+ | * <del>Kurvenapproximation durch Perceptrons</del> | ||
+ | * <del>Programm Beweisführung S. 23</del> | ||
+ | * <del>Typen von neuronalen Netzen (verteilt, vernetzt, rückgekoppelt etc.) S. 59</del> | ||
+ | * <del>Backpropagation (of error)</del> | ||
+ | * <del>Hopfield-Netz</del> | ||
+ | * <del>Minimax- und Alpha-Beta-Algorithmus</del> | ||
+ | * <del>Informationen zu Systemen: MYCIN, EMYCIN, PUFF, XCON, PROSPECTOR, MOVER, SHRDLU, Ham-RPM, ELIZA</del> | ||
+ | * <del>Expertensystemshells: NEXPERT Object, Smart Elements, KEE, EMYCIN, TWAICE</del> |