Fuzzy-Logik, wie funktioniert das? Teil (3)

E. Bratz


direkt zum Text-Start ! (zur Sache !!!)

Zurück zu Teil (1)

Zurück zu Teil (2)


Werbung für meinen anderen Kurs:

Einführung in Regeltechnik


* Fortsetzung: Eigene Applikationen, Lernbeispiele

2. noch'n Gedicht: ' EINSZWEI '

Wie kann man nun ansteigende oder komplizierter verlaufende Übertragungsfunktionen realisieren? Probieren wir doch als nächstes einfaches Beispiel folgendes aus: y = (x ; x^2) . Unser Fuzzy-System soll also gleichzeitig x und x^2 erzeugen, d.h. es soll 2 Outptvariablen erzeugen! Als erste Frage stellt sich hier, wie kriege ich den gekrümmten Anstieg zustande und wie, daß dieser quadratisch wird ? Ich sehe hier zwei Möglichkeiten, das zu erreichen, - wovon mir die zweitere einfacher erscheint. Bei der ersten Methode wähle ich für die Outputvariable x^2 einfach auch eine Term-Gleichverteilung und versuche dann intuitiv, bzw. durch Probieren, meine Regeln so zu bilden, daß mit fortschreitendem x der Input-Term mit einem immer höher angesiedelten Output-Term verknüpft wird (beispielsweise: ' Wenn ein = Term_6 dann aus_1 = Term_6 [für x] und aus_2 = Term_8 [für x^2] '). Hier ist der Einsatz eines automatischen 'Regelgenerators' (mit Hilfe von Prozeßdatensätzen), wie WINROSA sicherlich ein 'echter Segen', denn ohne viele Terme im Output und viele Regeln geht's hier sicher nicht ! Bei der zweiten Methode spreize ich das Output-Termschema quadratisch und verwende als Repräsentativwert des Terms genau den quadratischen Wert des zugeordneten Input-Term-Werts. Die Regeln bleiben dann in ihrer einfachen Form:

erhalten. Merke: Eine Sicherheitsgarantie hat man auf jeden Fall: Die Repräsentativwerte der verknüpften Terme (z.B. Werte unter den Dreiecksspitzen) bilden einen unumstösslichen Stützpunkt der 'Übertragungskurve', d.h. selbst wenn die Kurve 'durchhängt oder sich ausbeult', durch diese Punkte geht sie.

Für die zweite Methode habe ich auch gleich ein Exempel in der Schublade. Ich denke, ich brauche aber nur noch ein Bild für den quadratischen 'aus' - Term (Abb. 19) und für die Ergebniskurve (Abb. 20) zeigen. Hinweis: In der Ergebniskurve ist der vom System erhaltenen Kurve (grün) die rein rechnerische x^2-Kurve hinterlegt (rot).

Abb. 17 zeigt das bei meinem inzwischen durchgeführten orientierenden Versuch nach der 'ersten Methode' für y = x^2 erhaltene Ergebnis (die 20 'Objekte' auf der x-Achse stehen für die Wert 0 ; 0.5 ; 1 ; 1.5 usw.; grüne Kurve = Fuzzy, blaue Kurve = berechnet). Für diesen Zweck habe ich einen Lerndatensatz mit 1000 Daten für WINROSA erzeugt, der die x-Werte von 0.00 bis 10.00 in 0.01-Stufen und die daraus errechneten Quadratzahlen enthält. Für die 'ein'-Variable habe ich 9 gleichverteilte Dreiecke (mit jeweils einem Halbdreieck an Anfang und Ende) gewählt und für die 'aus'-Variable dasselbe, bzw. letztendlich Singletons. WINROSA hat mir schließlich 15 in data engine verwendbare Regeln produziert. Ich denke, daß nach etwas mehr Verfeinerungsarbeit auch hier recht zufriedenstellende Ergebnisse zu erhalten sind. Die 'erste Methode' hat gegenüber der zweiten den Vorteil, daß sie praktisch fast automatisch arbeitet.

Meine Empfehlung an dieser Stelle: probieren Sie einige derartige Beispiele aus, vor allem auch Verläufe mit Wendepunkten und steilen Stellen, die schon nahe an Unstetigkeiten herankommen. Sie lernen auf diese Weise, wie Fuzzy-Systeme arbeiten und lernen gleichzeitig Ihre Software zu handhaben, - denn meine Erfahrung ist, daß man das Ganze nicht rein intellektuell 'erfahren' kann, es sind einfach Übung und praktische Erfahrung und anschließendes gedankliches 'Bebrüten' notwendig.

Zeichnen Sie sich beispielsweise in ein Koordinatensystem eine S-Kurve mit ziemlich steiler Flanke. Setzen Sie ein gleichverteiltes Dreiecks-Termschema für die x-Werte an. Zeichnen Sie in Ihr Diagramm an allen Stellen für x, an denen im Termschema eine Dreiecksspitze liegt, ein Lot ein und lesen Sie die durch Schnitt der Lote mit Ihrer Kurve erhaltenen y-Werte ab. Erzeugen Sie ein Output-Termsystem, am einfachsten mit Singletons, bei dem die 'Repräsentativwerte' an der Stelle der vorher gefundenen y-Werte liegen. Formulieren Sie die Regeln der 'korrespondierenden Termverknüpfungen'. Testen Sie !

Machen Sie eine vergleichbare Übung im 3-dimensionalen Raum.

3. und gleich in medias res: Klassifikation.

Man verzeihe mir, wenn ich jetzt kein einfaches Lernbeispiel mehr präsentiere und gleich mit einer eigenen Applikation aus dem Gebiet der Chemometrik beginne, aber zum einen sind in dem Buch 'Mustererkennung mit Fuzzy-Logik' von T. Tilli (Franzis' Verlag, ISBN 3-7723-5091-7) einige instruktive Beispiele aufgeführt und zum anderen ist das folgende Beispiel trotzdem immer noch ziemlich unkompliziert. Es handelt sich um eine aus unserem Arbeitskreis veröffentlichte Arbeit zur Thematik 'Erkennung eines richtigen oder falschen Analysenstatus in einem einfachen spektralphotometrischen Chemosensor', GIT 39(1995) 227-231.

Beim photometrischen Nachweis von Nitrit nach Griess entsteht ein kräftig purpurroter Azofarbstoff, dessen Lichtabsorption (im grünen Wellenlängenbereich) zur quantitativen Nitritbestimmung herangezogen wird. Hierbei ist es wichtig, daß der Analyt einen pH-Wert unter etwa 2,5 aufweist. Dies wird durch Vorlage eines sauren Puffers im Analysenreagenz erreicht. Bei stark alkalischen Proben besteht die Gefahr, daß die Kapazität des Puffers erschöpft wird und der Analyt 'ins Alkalische driftet'. In diesem Fall verschiebt sich das Absorptionsmaximum des Azofarbstoffs in Richtung orange und die (im grünen Wellenlängenbereich) gemessenen Absorptionswerte sind falsch. In einem im Arbeitskreis entwickelten 3-Farb-Kanal-Spektralphotometer (vgl. Abb. 24 [Abb.-Teil 3], Bauteil 2 = RGB-LED, Bauteil 9 = Photodiode ) mit den bandpass-monochromatischen Lichtquellen: gelb grün und blau kann nun einerseits im grünen Farbkanal der Nitritgehalt photometrisch ermittelt werden und andererseits zusätzlich aus dem 'Farbmuster' für grün, gelb und blau auch erkannt werden, ob der Analysenstatus (pH-Wert, Rot-Farbe) richtig ist oder nicht.

Lassen Sie sich durch das Chemielatein nicht verwirren und realisieren Sie einfach: es wird bei 3 Farben die Lichtabsorption gemessen und wenn mit der Analyse etwas nicht stimmt, verändert sich die Farbe des Reagenz' und dies erkennt man am Farbmuster ('Ensemble' der Messwerte in allen 3 Kanälen). In der nachfolgenden Tabelle sind Messwerte aus unserem Minispektralphotometer aufgeführt, und zwar solche bei einer 'richtigen' Messung und solche bei einer 'falschen' Messung. Würden Sie hier eine Muster-Korrelation zu 'richtig' und 'falsch' - eine Klassifkation des Analysenstatus' - erkennen ?

pH 2,3: 'richtig' - - -
Konzentration [mg/l] Signal gelber Kanal [mV] Signal grüner Kanal [mV] Signal blauer Kanal [mV]
0.17 2.6 6.3 4.7
0.35 5.2 10.7 7.5
0.52 7.6 14.7 10.3
0.70 9.9 18.9 13.3
0.87 12.1 23.0 16.0
1.05 14.3 27.1 18.6
1.22 16.1 30.6 21.4
1.39 17.5 33.1 23.7
1.57 19.6 37.1 25.8
1.74 19.9 38.2 26.5
1.92 22.0 42.1 28.0
2.09 23.4 44.7 29.9
2.27 24.4 46.4 32.2
2.44 26.0 49.1 33.5
2.61 27.4 51.6 35.2
2.79 28.8 53.9 36.3
2.96 29.9 55.9 37.8
3.14 31.2 58.2 38.8
pH 3,0: 'falsch' - - -
Konzentration [mg/l] Signal gelber Kanal [mV] Signal grüner Kanal [mV] Signal blauer Kanal [mV]
0.35 3.5 7.0 6.9
0.70 7.0 13.9 13.2
1.05 8.9 19.0 18.6
1.39 11.9 24.8 23.3
1.74 14.8 30.8 28.1
pH 3,5: 'falsch' - - -
Konzentration [mg/l] Signal gelber Kanal [mV] Signal grüner Kanal [mV] Signal blauer Kanal [mV]
0.35 2.5 4.7 6.4
0.7 4.9 9.5 12.3
1.05 7.1 13.9 18.4
1.39 9.1 17.8 22.8
1.74 10.9 20.9 27.1
pH 4,0: 'falsch' - - -
Konzentration [mg/l] Signal gelber Kanal [mV] Signal grüner Kanal [mV] Signal blauer Kanal [mV]
0.35 0.99 2.21 5.86
0.70 2.44 4.9 11.5
1.05 3.18 6.5 16.8
1.39 4.7 9.2 20.9
1.74 6.2 12.2 27.1

Es sei an dieser Stelle darauf hingewiesen, daß die erhaltenen Daten geprägt sind durch die Eigenschaften des Spektralphotometers, so z.B. vor allem der optoelektronischen Bauteile (Bandpassbreiten, spektrale Empfindlichkeiten etc). Die im folgenden zu erläuternden Vereinfachungen, die sich durch Datenvorverarbeitung ergeben, sind gerätetypische Eigenschaften, die bei anderen Geräten anders aussehen können.

Beobachter mit einem scharfen Blick werden im vorliegenden Fall vielleicht bemerken, daß bei allen Messungen der Wert des grünen Kanals etwa das Doppelte des gelben Kanals einnimmt. Desweiteren kann man feststellen, daß bei Verzicht auf die bei spektralphotometrischen Messungen erreichbare Genauigkeit (man entschuldige das etwas pauschale Statement) die Werte des blauen Farbkanals ganz grob immer zur Mengenbestimmung herangezogen werden könnten - auch bei falschem Analysenstatus. Dies entspricht natürlich einer lambda-fest Messung außerhalb des Bereichs des Absoptionsmaximums. Für verlässliche Messungen sollte besser nur im grünen Wellenlängenbereich und nur bei richtigem Analysenstatus gemessen werden. Da die Betrachtung der Messdaten erahnen läßt, daß eigentlich redundante Informationen vorliegen dürften, ist der Einsatz einer Datenvorverarbeitung empfehlenswert. Hierbei ist die einfachste Vorgehensweise der Versuch einer Reduktion der Dimesionalität der Daten. Wir haben infolge der 3 Farbkanäle ein dreidimesionales Datenformat der Signaldaten vorliegen. Da zu beobachten ist, daß die Blauwerte 'unveränderlich' bleiben, daß aber das Verhältnis von Grün- und Gelbwert zum Blauwert sich mit dem pH-Wert verändert, liegt nahe, eine Reduktion der Dimensionalität durch eine Quotientenbildung Blau-/Gelbwert und Blau-/Grünwert vorzunehmen. Wegen der 'Konstanz' des Blauwerts ist dann bei Auftragung der beiden Quotienten gegeneinander eine Gerade zu erwarten. Abb.22 (Abb.-Teil 3 ) zeigt die Ergebnisse in der 'Quotienten-Auftragung' (Anmerkung: wie bereits erwähnt, ist diese Gerade ein gerätespezifischer 'Glücksfall', bei anderen Spektralphotometern könnte auch ein nichtlinearer Verlauf vorliegen). Man erkennt, daß man durch diese Datenvorverarbeitung eine Clusterbildung für die verschiedenen pH-Bereiche erhält, - und damit gleichzeitig auch für die Analysenstatus-Bereiche 'falsch und richtig'. Dies ist die ideale Vorarbeit für eine schnelle und problemlose Bearbeitung der vorliegenden Klassifikationsaufgabe mit Hilfe von Fuzzy-Logik. Unser Fuzzy-Logik-Klassifikator erhält als Inputinformation die Quotienten 'Blau/Gelb' und 'Blau/Grün' und als Ergebnisinformation den Status: falsch = 0 oder richtig = 1, siehe Abb. 11 (Abb.-Teil 2 ), (diese 0/..1 - Codierung ist empfehlenswert, weil viele Fuzzy-Systeme symbolische Termwerte nicht bearbeiten können).

Vielleicht an dieser Stelle gleich noch eine Anmerkung: Ganz aufmerksame Leser werden feststellen, daß im Grunde genommen eine weitere Reduktion der Dimensionalität vorgenommen werden könnte: man könnte nur noch den Quotienten 'Blau-/Grün-Wert' zur Auswertung heranziehen und hier die Datenclusterung betrachten. Der Klassifikator könnte hier ebenfalls in Fuzzy-Logik realisiert werden. In beiden Fällen könnte übrigens aber auch ein 'extrem harter Klassifikator' mit einer klassischen 'scharfen' Logik (Wenn Quotient größer x und kleiner y, dann status = 'richtig'....) verwendet werden. Der Vorteil von Fuzzy Logik besteht hier in der Möglichkeit, 'die Härte' des Klassifikators beliebig einstellen zu können. Graphisch ausgedrückt hätten wir im zweidimensionalen Fall beim Klassifikator mit scharfer Logik einen 'richtig'-Zylinder auf (oder unter) einer 'falsch'-Ebene, während bei Fuzzy Logik ein 'richtig'-Kegel von wählbarer Mantelsteilheit vorläge. Daß in unserer Applikation trotz Redundanz der zweidimensionale Fall gewählt wurde, hat zwei Gründe: zum einen ist es ein Sicherheitsgewinn, wenn noch eine Stützinformation mit eingeht (um beispielsweise den Ausfall oder eine Drift im grünen Kanal zu erkennen), zum anderen sollte eine Methode mit etwas allgemeinerer Applikabilität ausgearbeitet werden, beispielsweise für den Fall, daß die Verhältnisse gerätespezifisch bedingt komplizierter werden sollten.

Es sollte vielleicht auch noch diskutiert werden, inwieweit es nicht eleganter und bequemer wäre, direkt ohne Datenvorverarbeitung eine Klassifikation mit Hilfe einer der modernen KI-Methoden vorzunehmen. Dies läßt sich beispielsweise mit einem eindimensionalen mehrschichtigen Backpropagation-Netzwerk (KNN) direkt mit den Originaldaten schnell realisieren. Allerdings kann dieses Netzwerk Daten aus Bereichen, die nicht 'erlernt' worden sind, auch nicht unbedingt richtig zuordnen. Lerndaten und Lernprozess müssen dann stark erweitert werden und der Trainingsaufwand steigt extrem an. Eher erfolgversprechend ist die Anwendung eines Fuzzy-Logik-Systems mit dreidimesionalem Input. Unsere orientierenden Versuche hierzu haben gezeigt, daß ausreichend viele und eng gestufte Termschemata und ausreichend viele Regeln erforderlich sind. Dieser Aufgabenstellung möchte ich mich mit Hilfe von WINROSA und data engine nochmals zuwenden und werde in Kürze darüber berichten.

Nun aber zurück zum Fuzzy-Klassifikator mit zweidimesionalem Input (nach vorheriger Datenvorverarbeitung durch Quotientenbildung (blau/gelb ; blau/grün)). Aus Abb. 22 (Abb.-Teil 3 ) ersehen wir, daß ein relativ enges Gebiet in Geradennähe dem 'richtig'-Cluster zuzuordnen ist. Wir könnten aussagen: "Wenn blau/gelb im Bereich von 1,0 bis 1,5 ist und blau/grün im Bereich von 0,5 bis 0,75, dann ist der Analysenstatus 'richtig' ". Erinnert man sich an das obenerwähnte Bild mit dem 'richtig'-Zylinder oder -Kegel, so liegt es nahe, als Termschema eine Anordnung, wie in Abb.21 (Abb.-Teil 3) zu verwenden und dann einfach nur eine einzige Regel für den Status 'richtig' zu formulieren: "Wenn blau/gelb = ze und blau/grün = ze, dann status = 'richtig' ". Die Lage der Spitze der schmalen Dreicke ('ze' in Abb.21) im jeweiligen Termschema (blau/gelb und blau/grün) liegt (jeweils) etwa in der pH2,3-'richtig'-Klassenmitte, die Überlappung mit den Randtermen (für die 'falsch'-Bereiche! 'ns' und 'ps' in Abb.21) bestimmt die Steilheit des Klassifikators. Schließlich braucht nur noch die Regel für 'richtig' rundherum mit 'falsch'-Regeln umgeben werden (7 Regeln im vorliegenden Beispiel, - kriegen Sie die zusammen?). In der Fuzzy-Matrix Abb. 23 (Abb.-Teil 3 ) haben wir dann im Zentrum 1 Regel für 'richtig' umgeben von 7 Regeln für 'falsch' !

Für ein spektralphotometrisches Mini-Analysengerät ist natürlich der vorgestellte Klassifikator nur eine (wenn auch sehr wichtige) 'Kontrollfunktion'. Für die eigentliche Analyse ist noch ein analytischer 'Kalibrator' notwendig. Im vorliegenden Fall ist es am einfachsten, parallel zum Klassifikator einen Kalibrator als selbständiges Modul zu etablieren, d.h. letztendlich eine spektralphotometrische Auswertung im grünen Farbkanal. Dies läßt sich mit Fuzzy-Logik sehr schnell und gut realisieren und entspricht in seiner Ausführung den besprochenen Lernbeispielen für Übertragungsfunktionen y = f(x). Die Kalibratorfunktion könnte auch mit der Klassifikatorfunktion zusammen in einem einzigen Fuzzyschema realisiert werden, aber ohne besondere Vorteile. Wichtig ist vielleicht der Hinweis, daß beim Einsatz eines Neuronalen Netzwerks die Erstellung der Kalibratorfunktion komplizierter ist und daß ein KNN-Kalibrator nach Änderungen in der Kalibration durch neue Trainingsprozesse 'getrimmt' werden muß, während beim Fuzzy-Kalibrator nur die Termschemata verschoben werden müssen.

Bald geht's weiter! (sofern mir die Zeit noch reicht !!)

Antwort auf eine mögliche Frage: Warum wurde bisher kein 'echtes' Beispiel aus der Regelungstechnik präsentiert? - Antwort: Weil hiervon in der Literatur wirklich unzählige zu finden sind! Ein wenig Informationen können Sie im Teil (3) meines Regelungstechnik-Kurses - digitale Regler - finden.


Verlassen der Seite

Zurück zu Teil (2)

Zurück zu Teil (1)


Für 'Nicht-frame-ler' oder als Bild-Fullpage:

(Bildseite)

Hinweis: zurück zur Frames-Umgebung aus Vollbild-Umgebung am besten mit Browser-'Back'


Quit:

Die vorliegende Instanz des Browsers löschen -> Rückkehr zur geöffneten Homepage