Fuzzy-Logik, wie funktioniert das?
direkt zum Text-Start ! (zur Sache
!!)
direkt zu Teil 2
direkt zu Teil 3
Werbung für meinen anderen Kurs:
Einführung
in Regelungstechnik
*
E. Bratz
Vorwort des Verfassers
Fuzzy-Logik verdankt ihren inzwischen sehr hohen Bekanntheitsgrad den
Erfolgen von Applikationen in der Regelungstechnik. Die meisten Anwender von
Fuzzy Contollern wissen aber einerseits nicht, wie diese überhaupt
funktionieren und zum anderen ist ihnen erst recht nicht bekannt, daß
Fuzzy Logik ein weitaus breiteres Anwendungsfeld eröffnet als nur das
'Metier' Regelungstechnik. So ist die Bedeutung von Fuzzy Logik auf den
Gebieten Muster-Erkennung, Chemometrik/Sensorik, Experten-Syteme,
Prozeßleitsysteme und Qualitätskontrolle ständig im Steigen
begriffen.
Die vorliegende Einführung ist der Versuch eines praktischen
Anwenders, Interessierten die Funktionsweise von Fuzzy-Logik zu vermitteln.
Professionelle Fuzzy-Insider bitte ich um Nachsicht, wenn die eine oder andere
Formulierung oder Erklärung nicht ganz korrekt im Sinne der 'absoluten
Theorie' sein sollte. Dem Anfänger unter den Lesern sei empfohlen, das
ganze als orientierenden Einstieg zu nutzen und sich selbst dann weiterzubilden
(vor allem auch praktisch!!). Ich bitte auch um Ihr Verständnis, wenn ich
mich mangels mathematischer Kenntnisse darum 'drücke', den rein
'mathematischen Weg' zur Einführung in die Materie zu wählen, ich
habe aber den Eindruck, daß ich mich da in guter Gesellschaft befinde,
denn wer beherrscht schon die Höhere Mathematik von 'Mengenalgebra und
Logik unscharfer Mengen und Relationen', - und selbst wenn schon, wie will er
das dem 'Unbedarften' so ohne weiteres nahebringen ohne ihn beispielsweise mit
umfangreichen Matrizenoperationen zu erschlagen? Hier bietet Fuzzy Logik ja in
sich selbst den verständlicheren Weg der 'Linguistik' als Alternative an,
der dann auch bereitwillig von allen (Nutzern, Tutoren und sogar 'Computern'!?)
aufgegriffen wird, - mit dem beruhigenden Gefühl im 'Hinterkopf',
daß das ganze einen seriösen mathematischen Hintergrund 'zu haben
scheint'.
Für Hinweise auf Fehler, für Anregungen und Kritiken
(vielleicht auch ein kleines Lob) und beliebig 'dumme' Fragen (die es nicht
gibt!) bin ich sehr dankbar, denn das vermittelt zumindest das Gefühl,
nicht ins Leere 'gelehrt' zu haben.
Künstliche Neuronale Netzwerke (ANN = engl. artificial neural
networks oder KNN = deutsch künstliche Neuronale Netzwerke), Fuzzy-Logik
(FL) und Genetische Algorithmen sind neuere KI-Methoden (KI = künstliche
Intelligenz), die in breiterem Ausmaß an Bedeutung gewonnen haben.
Während Genetische Algorithmen hauptsächlich Strategien zur
Optimierung darstellen, sind KNN und FL Methoden, die eine
'Modellierung' eines Prozesses ohne Anwendung eines im hergebrachten
Sinne formulierten mathematischen Modells erlauben . Beide Methoden erhalten
als 'Input' einen Satz von veränderlichen Größen und
produzieren als 'Output' das, 'was der zu beschreibende Prozeß liefern
würde'. Trotz dieser gemeinsamen Eigenschaft gehen beide Methoden aber
sehr unterschiedlich vor. Bei den KNNs liegt das 'Wissen' über den Vorgang
im 'Haufwerk' der synaptischen Gewichtsfaktoren des Netzwerks fixiert.
Diese Gewichtsfaktoren erwirbt das Netzwerksystem durch Training , d.h.
durch langwieriges Lernen, Lernen und abermals Lernen von Datensätzen real
gemessener Zusammenhänge (salopp: 'Einbläuen'). Es kann an dieser
Stelle nicht auf die unterschiedlichen Netzwerktopologien und die verschiedenen
Lernstrategien eingegangen werden, fest steht nur, daß nach Stand der
Literatur bis heute noch keine vollständig plausible Korrelation zwischen
Gewichtsdaten und Prozeßeigenschaften gegeben werden kann - im Rahmen der
Ermittlung von Gewichtsdaten mit Hilfe Genetischer Algorithmen wird allerdings
ansatzweise hiervon berichtet. Für die 'Anfänger unter den
KNN-Nutzern' ist es deshalb auch immer wieder frappierend, daß sie bei
beliebig vielen auf ihren Prozeß durch Training optimierten Netzwerken
gleicher Topologie am Ende ganz unterschiedliche Gewichtsdatensätze
erhalten und trotzdem alle diese Netze 'funktionieren'!
Zusammengefaßt: KNNs erarbeiten ihr Wissen durch Erlernen,
ähnlich wie wir Menschen beispielsweise eine Fremdsprache erlernen.
Verlassen der Seite
Also packen wir's an
!
Fuzzy-Logik ist dagegen ein
sogenanntes wissensbasiertes System, d.h. hier fließt vorhandenes
Wissen zum Prozeß in die Verarbeitung ein. Mit den Begriffen Wissen,
modellfreie Modellierung und Logik wird leider bei Natur- und
Ingenieurwissenschaftlern eine nicht mehr aus den Gehirnen zu vertreibende
geistige Erwartungshaltung geweckt, die dort zu einer derartigen Blockierung
führt, daß man - wenn man am Ende sieht, daß das ganze
funktioniert - gar nicht begriffen hat wie und warum ! Nicht einmal plausibel
erscheint einem die Sache ! (Ich spreche da aus 'gemachter' Erfahrung). Man
hält das ganze dann zunächst für Hexenwerkerei und Humbug, so
ähnlich wie 'die Abschirmung der Bettstelle vor Erdstrahlen mit
Kupfergeflecht'. Genau dies mußte der 'Erfinder' der Fuzzy-Logik bei den
KI-Forschern in USA erleiden. Inzwischen ist die Sache aber, - zumindest bei
den Ingenieuren - vorangetrieben durch den Sektor Steuerungs- und
Regelungstechnik, so fest etabliert, daß selbst der größte
Skeptiker nicht mehr daran vorbeikommt. Nur hat er leider bis dato schon sehr
viel Zeit 'verpennt' ! Dabei ist doch - im Gegensatz zu KNN - bei Fuzzy-Logik
das modellierende Übertragungsverhalten noch halbwegs begreiflich!
Versuchen wir zunächst die Schwierigkeiten mit dem Begriff 'Wissen' in
wissensbasierten Systemen vom Typ Fuzzy-Logik auszuräumen. Das hier
geforderte Wissen wird oft auch - noch verwirrender - Expertenwissen genannt.
Hier müssen wir akademischen Eierköpfe uns schmerzlicherweise einen
Zahn ziehen lassen: der Experte ist hier nicht der
'Universitätsprofessor', denn der besitzt ja die (hier fatale)
Eigenschaft, den Dingen anhand einer Modellierung, einer formalmathematischen
Beschreibung und mechanistischer Betrachtungen auf den Grund gehen zu
müssen (zwanghaft). Der Experte ist hier der Erfahrene im praktischen
Umgang mit dem Prozeß, also eher der 'Betriebsmeister', 'Chemiewerker'
o.a. Dieser Experte sagt dann etwa: " Ich weiß nicht so genau was da
alles so abläuft, aber wenn die Temperatur um 2 Grad ansteigt, wird es
Zeit, den Zulaufhahn von Stoff B 'ziemlich weit' zuzudrehen". Dieser Satz
bringt - selbst wenn nicht so übertrieben provokant formuliert - jeden
Wissenschaftler 'zur Weißglut'. Und doch, wenn er halbwegs Auto fahren
kann, wie macht er das dann? Sagt er etwa: " bei 57,6 km/h und 12,65 m Abstand
vom mit 40,6 km/h fahrenden Vordermann muß ich mit 7,7936 m/quadratsec
Bremsverzögerung abbremsen" oder formuliert nicht eher sein 'Neurofuzzy'
im Gehirn folgendes: "wenn ich etwas mehr als 50 fahre und nur noch wenig
Abstand zum Vordermann habe, der noch langsamer fährt als ich, dann sollte
ich daran denken, 'ziemlich saftig' zu bremsen" - und das funktioniert
erstaunlicherweise (meistens ).
Im übrigen, sind wir doch einmal ehrlich: Werden nicht in einer
Vielzahl von Veröffentlichungen, und Vorträgen mathematische
Modellierungen 'angeboten', die die betrachteten Vorgänge zwar
formalmathematisch richtig wiedergeben, die aber mechanistisch allenfalls
'plausibel' - jedoch absolut nicht 'bewiesen' sind. Sind diese Beschreibungen
eines Verhaltens denn wirklich so viel besser als die 'modellfreien Systeme' ?
(Ist ein 'schlechtes mathematisches Modell' wirklich besser als 'gar keins'?).
Berücksichtigt man darüberhinaus noch, daß in der industriellen
Anwendung an erster Stelle die gute und zuverlässige Handhabbarkeit steht,
dann erkennt man zweifellos die 'Nische ' für eine Applikation der
modellfreien Systeme. Fassen wir zusammen: wissensbasierte Systeme zur
modellfreien Modellierung von Prozessen sind nicht dazu geeignet, den
Prozeß mechanistisch zu analysieren, sondern dazu, sein Verhalten
möglichst realistisch zu beschreiben. Im Gegenteil setzen wissensbasierte
Systeme sogar das Vorhandensein von 'Informationen' zum Verhalten des Prozesses
voraus. (nicht wissensbasierte modellfreie Syteme, wie z.B. KNNs, weisen die
gleichen Eigenschaften auf, sie erwerben nur ihr 'Wissen' durch 'Lernen' von
Fakten und nicht durch die Anwendung 'vorhandenen Expertenwissens'.)
Verlassen der Seite
Versuchen wir zunächst, die Vorgehensweise von Fuzzy-Logik
vorzustellen, bevor wir Applikationen, wie Regler und Steuerungen,
Klassifikatoren zur Muster-Erkennung und Fuzzy-Expertensysteme betrachten.
Das Wort Fuzzy bedeutet 'unscharf, verwischt'. Ist Fuzzy-Logik
dann also eine unscharf schließende Logik? - Ja, aber das nicht alleine.
Fuzzy-Logik ist zunächst einmal vor allem das 'Handling' unscharfer
Werte(-mengen) mit einer hierzu geeigneten Verknüpfungslogik. Diese
Logik ist zwar streng mathematisch genommen als Verknüpfung unscharfer
Wertemengen mit Hilfe unscharfer Relationen unter Anwendung unterschiedlichster
logischer Verknüpfungsoperatoren aufzufassen, die verwendeten Operatoren
sind aber letztlich aus der klassischen mengentheoretischen Mathematik bekannt.
Einfache Beispiele für derartige Operatoren sind: Minimum-, Maximum-,
ODER-, und justierbare UND- und ODER-Operatoren ( Um die Vielfalt aufzuzeigen,
einige Namen von Unterklassen der genannten Operatoren: Algebraic-Product-,
Bounded-Differenz-, Einstein-Product-, Hamacher-Product-, Yager-Intersection-
und Fuzzy-AND-Operator. Lassen Sie sich hierdurch nicht abschrecken, die
'Alltagsarbeit' beschränkt sich meistens auf einige wenige!)
Das 'Fuzzy' bezieht sich also zunächst einmal auf Werte. Variablen
nehmen Werte an. Sehen wir uns ein Beispiel an: Variable Temperatur: 25,65 Grad
Celsius. Wir betrachten dies als diskreten Wert. Aber genau genommen ist der
Wert nur innerhalb der erreichbaren Meßgenauigkeit als diskret
aufzufassen. Ein etwas schlechterer Sensor könnte uns da 25 oder 26 Grad
als Wert liefern und eine 'seriöse' Anzeigeeinheit das selbe anzeigen -
und nicht 3 Stellen hinter dem Komma, die es nicht gibt. Schlimmer ist es noch
mit dem Temperatursinnesorgan in unseren Fingern, wir helfen uns da mit einer
Kategorisierung in Temperaturbereiche, die wir durch linguistische (sprachlich
formulierte) Termbezeichnungen unterscheiden: 'kaum kalt', 'lauwarm', 'ziemlich
warm', 'heiß' u.a.. In ähnlicher Weise geht nun die Fuzzy-Logik vor,
indem sie eine Variable (z.B. Temperatur) in einem Set
von Termen darstellt , sehr häufig in der Form von
Dreiecksfunktionen, wie in Abb.1 und 2 gezeigt (etwas
'wissenschaftlicher' auch Gauss-Funktionen oder andere, spezielle
'Verteilungen' - wie z.B. in Abb. 21 (Abb.-Teil 3 )gezeigt- , in stark
vereinfachter Weise auch sogenannte 'Singletons' = Stäbe von
infinitesimaler Breite und mit Höhen zwischen 0 und 1, siehe z.B.
Abb.8, hinscrollen). Hierbei ist die x-Achse das bekannte Wertekontinuum
(z.B. Grad Celsius) der Variablen, wogegen die y-Achse einen sogenannten
Zugehörigkeitswert zum betrachteten Term darstellt. Der Wert des
Kontinuums der unter dem Maximum des Terms liegt ist der repräsentativste
des Terms, es gehört aber eine ganze Menge von anderen Werten zum
betrachteten Term, alle mit unterschiedlicher
Zugehörigkeits'gewichtigkeit'. Jeder Term hat einen eigenen 'Namen'
(mathematisch im Sinne einer Indizierung oder linguistisch, wie z.B. 'sehr
kalt'). Beispiele für Fuzzy-Termsets sind in Abb.1 , 2,8 und 21
aufgezeigt, - rechts hinscrollen! Der Vorgang, bei dem einem diskreten
Einzelwert die Zugehörigkeitswerte zu in Frage kommenden Fuzzy-Termen
zugeordnet werden, wird 'Fuzzifizierung'
genannt. Hiermit haben wir aber erst den ersten und noch leicht zu
verstehenden Schritt des Prozedere kennengelernt. In vielen Vorträgen, die
von einer Anwendung der Fuzzy-Logik berichten, werden Fuzzifizierung und
eventuell noch Defuzzifizierung als wesentliche Operationen vorgestellt und die
Tatsache, daß 'dazwischen' noch einiges von Wichtigkeit passiert, wird
verschwiegen. Meiner Ansicht nach wäre es dann besser, überhaupt
keine Erklärungsversuche zu unternehmen und nur von Erfolg oder
Mißerfolg der Operation zu berichten.
Verlassen der Seite
Die Architektur eines kompletten
Fuzzy-Systems sieht folgendermaßen aus:
Input |
Größe a |
Größe b |
Größe c |
|
|
|
FUZZIFIZIERUNG Für die Variablen
a,b,c.... werden aus den diskreten Inputwerten die Termzugehörigkeitswerte
ermittelt.
|
|
Regelbasis
erstellen Alle 'Wenn....Dann's des 'Experten' werden
formuliert |
|
INFERENZOPERATION Die Zugehörigkeitswerte werden einer logischen
Verknüpfung zugeführt: Unscharfes
Schließen mit unscharfen Wertemengen.
|
|
DEFUZZIFIZIERUNG Das Ergebnis ist eine
unscharfe Wertemenge als Information. Für viele Zwecke sind
diskrete Ausgabewerte erforderlich, diese werden durch Defuzzifizierung
erhalten.
|
|
- |
|
Ergebnisgröße x |
Output |
Ergebnisgröße z |
Die Erstellung der im folgenden noch zu erläuternden
Regelbasis ist nicht streng an die in der
Tabelle aufgeführte Abfolge gebunden, bei der Entwicklung in
Software-Systemen erfolgt sie aber häufig an dieser Stelle
Kern eines Fuzzy-Logik-Systems ist das Inferenzschema
Die Mathematik der Verknüpfung unscharfer Wertemengen in unscharfen
Relationen mit Hilfe spezieller Logikoperatoren ist zwar grundsätzlich
durchführbar, aber operativ sehr aufwendig und wenig überschaubar.
Selbst in einfachen Fällen werden umfangreichere Matrizenoperationen
erforderlich. Aus diesen Gründen hat sich in der Praxis überwieged
und erfolgreich die sogenannte linguistische Methode unter Verwendung
regelbasierter Fuzzy-Systeme durchgesetzt. Dies ist vor allem auch darin
begründet, daß diese Vorgehensweise - wie sich noch herausstellen
wird - sehr gut zu den Erfordernissen moderner Rechner (Computer) paßt.
'Linguistische Methode' besagt einerseits, daß die Terme qualifizierende
Namen erhalten und andererseits, daß zur Beschreibung der Eigenschaften
des Prozesses sprachlich formulierte Regeln vom Typus "Wenn ......, dann
......" verwendet werden (= regelbasiertes System). Beispiel:
"Wenn(Druck=hoch) UND (Temperatur=mittel), dann
(Ventilöffnung=mittel)" oder: "Wenn(Druck=niedrig) ODER
(Temperatur=niedrig), dann (Ventilöffnung=niedrig)". Für die
optimale Beschreibung eines Systems ist es wichtig, ausreichend viele und
möglichst treffende Verknüpfungsregeln für alle Variablen in
allen Termbereichen formulieren zu können. Wo die Regeln nur etwas
unsicher (spekulativ) formuliert werden können, kann eine Gewichtung mit
einem Sicherheitsfaktor (certainty factor) < 1 vorgenommen werden. Abb.3
(rechts hinscrollen) zeigt als Beispiel die Regelbasis für die im
folgenden vorgestellte Auto-Abstandsregelung. Einen graphischen Überblick
über die angewendeten Regeln gibt uns die sogenannte Fuzzy-Matrix, vgl.
Abb.6. Vielleicht läßt sich schon hier erahnen, daß nach
erworbenem Verständnis für die ganze Vorgehensweise des
linguistischen Verfahrens plausibel wird, daß eine rein
mengenmathematische Operation in analoger Weise abläuft, nur nicht so
transparent.
Am besten anhand eines Beispiels !
Nun aber endgültig zur Beschreibung des gesamten Inferenzschemas.
Dies geschieht am verständlichsten anhand des Beispiels eines (stark
vereinfachten) Auto-Abstands-Regelungssystems: Fahrzeuggeschwindigkeit und
Abstand zum Vordermann seien Meßwerte und der Umfang des 'Gasgebens' sei
die Stellwertausgabe - man realisiere: eine echte Mehrgrößenregelung
! Die Abbildungen Abb.1 bis 7 stammen aus einem Lauf des
Flowchart-Professional-Systems von ComTec. Abb.7 (rechts hinscrollen)
zeigt ein Fließbild des gesamten Prozesses: Über Gleitregler
können manuell die Werte von Geschwindigkeit und Abstand eingestellt
werden. In graphischen Termschema-Editoren (Geschw, Abstand) wird die
Fuzzifizierung vorgenommen. Termschema-Anzeigen liefern im Runtime-Lauf eine
graphische Darstellung der Fuzzifizierung. Das Inferenzschema (inkl.
Regelbasis) ist im Knoten 'Gas' (if..then) implementiert und im zweiten Knoten
'Gas' ist die (unscharfe) Fuzzy-Anzeige des Ergebnisses und die Anzeige des
diskreten Wertes für 'Gas' in % formuliert.
Für
'Nicht-frame-ler' oder als Bild-Fullpage:
(Bildseite)
Hinweis: zurück zur Frames-Umgebung aus
Vollbild-Umgebung am besten mit Browser-'Back'
Fortsetzung (Teil 2)
Quit:
Die vorliegende Instanz des Browsers
löschen -> Rückkehr zur geöffneten Homepage