Prof. Sauer - oth

Werbung
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Prof. Jürgen Sauer
Neuronale Netze, Fuzzy Control-Systeme und
Genetische Algorithmen
Skriptum zur Vorlesung im WS 2005 / 2006
1
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Inhaltsverzeichnis
1. Grundlagen .......................................................................................................................................................... 8
1.1 Einführung..................................................................................................................................................... 8
1.1.1 Biologische bzw. psychologische Grundlagen ....................................................................................... 8
1.1.2 Überführung in ein datentechnisches Verarbeitungsmodell (NN) .......................................................... 9
1.2 Wie arbeiten Neuronale Netzwerke? ........................................................................................................... 10
1.2.1 Ein einführendes Beispiel ..................................................................................................................... 10
1.2.2 Allgemeiner Aufbau neuronaler Netze ................................................................................................. 22
1.2.3 Informationsverarbeitung in neuronalen Netzen .................................................................................. 29
1.2.4 Mathematische Grundlagen zum Lernverhalten NN ............................................................................ 31
1.2.5 Implementierung NN ............................................................................................................................ 33
2. Wichtige Ausprägungen NN ............................................................................................................................. 34
2.1 Modellierung Neuraler Netze ...................................................................................................................... 34
2.1.1 Übersicht .............................................................................................................................................. 34
2.1.2 Topologien ........................................................................................................................................... 35
2.1.2.1 Definition NN ................................................................................................................................ 35
2.1.2.2 Netze ohne Rückkopplung („feedforward“-Nerze) ....................................................................... 36
2.1.2.3 Netze mit Rückkopplungen („rekurrente Netze“) .......................................................................... 36
2.2 Interaktive Netzwerke ................................................................................................................................. 37
2.2.1 Beschreibung ........................................................................................................................................ 37
2.2.1.1 Arbeitseinheiten ............................................................................................................................ 37
2.2.1.2 Netzarchitektur .............................................................................................................................. 39
2.2.2 Mathematische Grundlagen .................................................................................................................. 41
2.2.3 Implementierung des IAC-Modells ...................................................................................................... 44
2.3 Klassifikatoren und Musterassoziatoren ...................................................................................................... 47
2.3.1 Beschreibung ........................................................................................................................................ 47
2.3.2 Grundlagen ........................................................................................................................................... 48
2.3.2.1 Die Hebbsche Hypothese ............................................................................................................. 49
2.3.2.2 Die Hebbsche Hypothese in Musterassoziator-Modellen .............................................................. 51
2.3.2.2.1 Lernphase ............................................................................................................................... 51
2.3.2.2.2 Testphase ................................................................................................................................ 51
2.3.2.2.3 Beispiele ................................................................................................................................. 52
2.3.2.2.3.1 Beispiel 1 ......................................................................................................................... 52
2.3.2.2.3.2 Beispiel 2 ......................................................................................................................... 54
2.3.2.3 Delta-Regel .................................................................................................................................. 56
2.3.2.4 Die Delta-Regel in Musterassoziator-Modellen ............................................................................ 57
2.3.3 Implementierung .................................................................................................................................. 58
2.3.4 Das Perzeptron ..................................................................................................................................... 63
2.3.4.1 Biologische Grundlagen ................................................................................................................ 63
2.3.4.2 Funktionsweise .............................................................................................................................. 63
2.3.4.3 Lernen mit der Delta-Regel ........................................................................................................... 64
2.3.4.4 Lineare Trennbarkeit ..................................................................................................................... 65
2.3.4.5 Applet: Perzeptron-Netz zur Rekodierung von Zahlen ................................................................. 69
2.3.4.6 Adaline und Madaline ................................................................................................................... 70
2.3.4.6.1 Adaline-Modell ...................................................................................................................... 70
2.3.4.6.2 Madaline-Modell .................................................................................................................... 72
2.3.4.7 Linear separierbare Probleme ........................................................................................................ 74
2.3.4.8 Nicht linear trennbare Klassifizierer.............................................................................................. 80
2.3.4.9 Support Vector Machines .............................................................................................................. 83
2.3.5 Multilayer-Netwerk .............................................................................................................................. 86
2.4 Backpropagation Netzwerke ....................................................................................................................... 89
2.4.1 Beschreibung ........................................................................................................................................ 89
2.4.2 Grundlagen ........................................................................................................................................... 91
2.4.3 Implementierung ................................................................................................................................ 101
2.4.3.1 Lösung des XOR-Problems mit einem Java-Programm .............................................................. 101
2.4.3.2 Applet zur Lösung des XOR-Problems mit einem Backpropagation-Netzwerk .......................... 107
2.4.4 Anwendungen ..................................................................................................................................... 108
2.4.4.1 Simulator für Backpropagation-Netze ......................................................................................... 108
2
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4.4.2 Kreuzprodukt............................................................................................................................... 108
2.4.4.3 BPN-Robot .................................................................................................................................. 108
2.5 Autoassoziatoren ....................................................................................................................................... 109
2.5.1 Aufbau ................................................................................................................................................ 109
2.5.2 Grundlagen ......................................................................................................................................... 110
2.5.3 Das "Brain-State-in-the-Box"-Modell ................................................................................................ 117
2.6 Thermodynamische Modelle ..................................................................................................................... 121
2.6.1 Das Hopfield-Modell ......................................................................................................................... 121
2.6.1.1 Beschreibung ............................................................................................................................... 121
2.6.1.2 Berechnungsgrundlagen .............................................................................................................. 122
2.6.1.3 Mustererkennung mit Hopfield-Netzen ....................................................................................... 125
2.6.1.4 Anwendungen zur Mustererkennung ........................................................................................... 128
2.6.1.4.1 Applet zur Mustererkennung mit dem Hopfield-Netz .......................................................... 128
2.6.1.4.2 Bildmustererkennung mit Hilfe des Hopfield-Netzes ........................................................... 129
2.6.1.5 Optimierungsaufgabe: Lösung des TSP mit Hopfield-Netzen..................................................... 130
2.6.1.6 Lösung des N-Damen-Problems .................................................................................................. 133
2.6.2 Das Guarded-Discrete-Stochastic-Netzwerk (GDS)........................................................................... 137
2.6.2.1 Beschreibung ............................................................................................................................... 137
2.6.2.2 Algorithmus zum "Damen-Problem" mit einem GDS-Netzwerk ................................................ 137
2.6.2.3. Das Applet zur Lösung des N-Damen-Problems mit einem GDS-Netwerk ............................... 139
2.6.2.4. Erläuterungen zur Implementierung ........................................................................................... 139
2.6.3 BAM .................................................................................................................................................. 141
2.6.3.1 Beschreibung ............................................................................................................................... 141
2.6.3.2 Lernen ......................................................................................................................................... 142
2.6.3.3 Energiefunktion ........................................................................................................................... 143
2.6.3.4 Abruf ........................................................................................................................................... 144
2.6.3.5 Kapazität ..................................................................................................................................... 146
2.6.3.6 Applet: Mustererkennung mit BAM ............................................................................................ 146
2.6.4 Simulated Annealing .......................................................................................................................... 147
2.6.4.1 Beschreibung ............................................................................................................................... 147
2.6.4.2 Berechnung ................................................................................................................................. 148
2.6.4.3 Der Simulated-Annealing Algorithmus ....................................................................................... 150
2.6.4.4 Das Applet zur Lösung des TSP mit Simulated Annealing ......................................................... 152
2.6.4.5 Threshold Accepting (TA) (Schwellenakzeptanz) ...................................................................... 152
2.6.5 Boltzmann Netze ................................................................................................................................ 153
2.6.5.1 Beschreibung ............................................................................................................................... 153
2.6.5.2 Der Algorithmus .......................................................................................................................... 155
2.6.5.3 Implementierung ......................................................................................................................... 156
2.6.5.4 Das Applet................................................................................................................................... 162
2.7 Wettbewerbslernen .................................................................................................................................... 163
2.8 Selbstorganisierende Netze ....................................................................................................................... 166
2.8.1 Sensorische Karten (SOMs) ............................................................................................................... 166
2.8.1.1 Beschreibung ............................................................................................................................... 166
2.8.1.2 Lernverfahren: Bestimmen der Gewichte .................................................................................... 169
2.8.1.3 Implementierungsbeispiele .......................................................................................................... 170
2.8.1.3.1 Simulationsbeispiel mit eindimensionaler Eingabe .............................................................. 170
2.8.1.3.2 Simulationsbeispiele mit zweidimensionalen Eingaben ....................................................... 170
2.8.1.3.2.1 Eindimensionales Gitter (Neuronenkette) ......................................................................... 170
2.8.1.3.2.1.1 Streckenförmige Anordnung (Neuronenkette)............................................................ 170
2.8.1.3.2.1.2 Kreisförmige Anordnung der Neuronenkette ............................................................. 171
2.8.1.3.2.2 Zweidimensionale Gitterstruktur ....................................................................................... 172
2.8.1.4 Anwendungen .............................................................................................................................. 173
2.8.1.4.1 Zeichenerkennung mit Kohonen Feature Map...................................................................... 173
2.8.1.4.1 Zahlenerkennung mit Kohonen Feature Map ....................................................................... 173
2.8.1.4.2 Spracherkennung .................................................................................................................. 173
2.8.2 Motorische Karten .............................................................................................................................. 174
2.8.2.1 Beschreibung ............................................................................................................................... 174
2.8.2.2 Lernverfahren .............................................................................................................................. 175
2.8.2.3 Anwendungen .............................................................................................................................. 176
2.8.2.3.1 Kohonnen-Wippe ................................................................................................................. 176
3
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.2.3.2 Auffangen eines Balls........................................................................................................... 177
2.9 RBF-Netze ................................................................................................................................................ 179
2.9.1 Grundlagen ......................................................................................................................................... 179
2.9.2 Einstellen der Gewichte, Anpassen bzw. Wahl der Zentren und Breiten ........................................... 180
2.9.2.1 Einstellen der Gewichte ............................................................................................................... 180
2.9.2.2 Anpassen bzw. Wahl der Zentren und Breiten ............................................................................ 182
2.10 ART ......................................................................................................................................................... 183
2.10.1 Einführung........................................................................................................................................ 183
2.10.2 Struktur............................................................................................................................................. 183
2.10.3 Lernen im ART-Netzwerk ................................................................................................................ 183
2.10.4 Leistungen und Grenzen vom ART .................................................................................................. 183
2.11 Counter Propagation................................................................................................................................ 184
2.11.1 Die Netzstruktur ............................................................................................................................... 184
2.11.2 Lernvorgänge in den Schichten ........................................................................................................ 186
3. Fuzzy-Systeme ................................................................................................................................................ 187
3.1 Fuzzy-Logik .............................................................................................................................................. 187
3.1.1 Einführung in die Denkweise ............................................................................................................. 187
3.1.1.1 Unscharfe Mengen (Fuzzy-Sets) ................................................................................................. 187
3.1.1.2 Funktionstyp ................................................................................................................................ 188
3.1.1.3 Operatoren auf Fuzzy-Mengen .................................................................................................... 188
3.1.1.4 Linguistische Variable ................................................................................................................. 189
3.1.1.5 Fuzzy-Regeln............................................................................................................................... 190
3.1.1.6 Unscharfe Relationen .................................................................................................................. 191
3.1.2 Verarbeitung in Fuzzy-Systemen: Fuzzy-Inferenz ............................................................................. 194
3.1.2.1 Ein einführendes Beispiel ............................................................................................................ 194
3.1.2.2 Fuzzy-Inferenzschema ................................................................................................................. 198
3.1.2.3 Anwendungen .............................................................................................................................. 203
3.1.2.3.1 Anwendungsbeispiel: Berg- und Talfahrt eines Fahrzeugs................................................... 203
3.1.2.3.2 Anwendungsbeispiel: Roboter-Steuerung mit Fuzzy-Control .............................................. 208
3.1.2.3.3 Anwendungsbeispiel: Beetle-Driver ..................................................................................... 208
3.1.2.3.4 Anwendungsbeispiel: Kugeldrum......................................................................................... 208
3.1.2.3.5 Anwendungsbeispiel: PingPong (KHF vs FC) ..................................................................... 208
3.1.3 Regelbasierte Systeme ........................................................................................................................ 209
3.1.3.1 Fuzzy-Logik regelbasierter Systeme ........................................................................................... 209
3.1.3.2 Defuzzifizierung .......................................................................................................................... 210
3.1.3.2.1 Methode der plausibelsten Lösung ....................................................................................... 210
3.1.3.2.2 Methode des besten Kompromiss ......................................................................................... 211
3.1.3.3 Anwendungen .............................................................................................................................. 213
3.1.3.3.1 Inverses Pendel ..................................................................................................................... 213
3.1.3.3.2 Fuzzy-Truck-Trailer ............................................................................................................. 217
3.1.3.3.3 Kugelkasten .......................................................................................................................... 217
3.1.3.3.4 Water-Mix ............................................................................................................................ 217
3.1.3.3.5 Demonstration einer Fuzzy-Logik Steuerung eines Rennwagens durch eine Rennstrecke ... 217
3.1.3.3.6 Fuzzy-Robot ......................................................................................................................... 217
3.1.4 Mamdani und Fuzzy-Regler vom Typ Sugeno ................................................................................... 218
3.1.5 Fuzzy Associative Memories (FAM) ................................................................................................. 220
3.1.5.1 Verknüpfungen zwischen Fuzzy-Systemen ................................................................................. 220
3.1.5.2 Adaptive FAMs ........................................................................................................................... 222
3.1.5.3 Erzeugen von adaptiven FAM-Regeln ........................................................................................ 222
3.1.5.4 Adaptives BIOFAM-Clustering .................................................................................................. 223
3.2 Regelungssysteme ..................................................................................................................................... 224
3.2.1 Klassische Regelungssysteme ............................................................................................................ 224
3.2.1.1 Begriffe aus der Regelungstechnik .............................................................................................. 224
3.2.1.2 Beschreibungsmöglichkeiten (für dynamische Systeme) ............................................................. 225
3.2.1.3 Lineare (stetige) Regler ............................................................................................................... 230
3.2.1.4 Zustandsregler ............................................................................................................................. 235
3.2.1.5 Kennlinien- und Kennfeldregler .................................................................................................. 236
3.2.2 Fuzzy-Regelungssysteme ................................................................................................................... 237
3.2.2.2 Einfaches Modell eines Fuzzy-Reglers........................................................................................ 241
3.2.2.2.1 Diskrete Regelung ................................................................................................................ 241
4
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.2.2.2 Fuzzy-Regelung .................................................................................................................... 241
3.2.3 Hybride Systeme ................................................................................................................................ 243
3.2.3.1 Neuronale Regler......................................................................................................................... 243
3.2.3.2 Vergleich Neuronale Netze mit Fuzzy-Systemen in Hinblick auf Schätzungen zu Ein/Ausgabefunktionen (Regeln) .................................................................................................................. 244
3.2.3.3 Kombinationen Neuronaler Netze und Fuzzy-Regler (Neuro-Fuzzy) ......................................... 246
3.2.3.4 Neuro-FuzzyHybride ................................................................................................................... 248
3.2.3.4.1 NEFCON bzw. NEFCLASS................................................................................................. 248
4. Eine Einführung in Konzept und Arbeitsweise genetischer Algorithmen ....................................................... 252
4.1 Evolution und Genetik............................................................................................................................... 252
4.2 Prinzip genetischer Algorithmen ............................................................................................................... 253
4.3 Phasen eines genetischen Suchalgorithmus ............................................................................................... 254
4.3.1 Modellierung ...................................................................................................................................... 254
4.3.2 Konfigurierung ................................................................................................................................... 254
4.3.3 Die Realisierungsphase ...................................................................................................................... 257
4.3.4 Verfahrensbewertung bzw. Verfahrensverbesserung.......................................................................... 261
4.3.5 Güte eines genetischen Algorithmus .................................................................................................. 261
4.4 Anwendungen ............................................................................................................................................ 263
4.4.1 Ein genetischer Algorithmus für das Problem des Handlungsreisenden ............................................ 263
4.4.2 Ein genetischer Algorithmus für das Packproblem ............................................................................ 265
4.4.3 Genetic Function Finder ..................................................................................................................... 272
5
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Empfohlene Literatur
Rummelhart, David E. und McClelland, James L.: Parallel Distributed Processing, Cambridge
Massachusets, MIT Press 1989
Kinnebrok, W.: Neuronale Netze , R. Oldenbourg Verlag, Müchen/Wien 1992
Kruse, Hilger u.a.: Programmierung Neuronaler Netze, Addison-Wesley, 1. Auflage 1991,
Bonn ...
Schöneburg, E. u.a.: Neuronale Netwerke, Markt & Technik, Haar bei München, 1990
Müller, B. u. Reinhardt, J.: Neural Networks, Springer Verlag, Berlin, 1990
Schöneburg, E. (Hrsg.): Industrielle Anwendung Neuronaler Netze, Addison-Wesley, Bonn
...., 1993
Nauk, Detlef u. Klawonn,Frank u. Krise, Rudolf: Neuronale Netze und Fuzzy-Systeme,
Vieweg, Braunschweig/Wiesbaden, 1994
Mayer, Andreas u.a.: Fuzzy Logic, Addison-Wesley, Bonn ...... ,1993
Kahlert, Jörg u. Frank, Hubert : Fuzzy-Logik und Fuzzy-Control, Vieweg,
Braunschweig/Wiesbaden, 1993
Kosko, Bart: Neural Networks and Fuzzy Systems, Prentice Hall, Englewood Ciffs NJ, 1992
Tilli, Thomas: Mustererkennung mit Fuzzy-Logik, Franzis Verlag, München 1993
Tilli, Thomas: Automatisierung mit Fuzzy-Logik, Franzis-Verlag, München 1992
Tilli, Thomas; Fuzzy-Logik, Franzis-Verlag, München 1991
Goldberg, David E.: Genetic Algorithms in Search, Optimization, and Machine Learning,
Addison-Wesley, Reading, Massuchusetts 1989
6
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Diplomarbeiten an der F.H. Regensburg
Christian Dirnberger: Entwurf und Lösung des Stabbalance Problems über neuronale Netze
und Fuzzy Control Systeme unter Objectworks / Smalltalk
Jochen Fröhlich: Komponenten Neuronaler Netze in einer objektorientierten Klassenstruktur
Gerhard Heinz: Fuzzy-Logik und Fuzzy-Control am Bsp. des invertierten pendels, Darstellung
des Problems und seine Lösung.
Thomas Feldbauer: Fahrzeugsteuerung auf einem frei definierbaren Rundkurs über ein FuzzyControl-System mit Erlernen der Fahrweise über Speicherung in einem Neuronalen Netz
Sascha Pscheidt: Ein Lernprogramm zur Spracherkennung mit Neuronalen Netzen
Peter Engl / Christian Peter: Fingerabdruckerkennung als Anwendung neuronaler Netze
7
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1. Grundlagen
1.1 Einführung
1.1.1 Biologische bzw. psychologische Grundlagen
Grundidee
Angelehnt an Anatomie und Physiologie des menschlichen Gehirns entspricht ein
"Neuronales Netz (NN)" einer großen Menge sehr einfacher Prozessoren
(Neuronen), die vielfach (ein Neuron bspw. mit bis zu 10.000 weiteren Neuronen)
verbunden sind.
Aufbau eines Neurons
Zellkörper, Axon, Dendriten, Synapsen1
Arbeitsweise
Über die verbindenden Synapsen (Kontaktstellen, Speicher) können Signale
verstärkt oder vermindert (d.h. gewichtet) weitergegeben werden. Falls das
Summensignal einen bestimmten Wert überschreitet, reagiert das einzelne Neuron
mit einem Signal (Prozessorbefehl).
Zwei unterschiedliche Funktionsebenen sind zu beachten:
- Die schnelle Ebene (Veränderungen im Sekundenbereich) ist durch den
augenblicklichen Aktivitätsbestand geprägt (Kurzzeitgedächtnis)
- Die 2. Ebene ist durch allmähliche Änderungen des Verbindungsmusters der
schnellen Aktivitätsmuster geprägt (Langzeitgedächtnis)
Neuronenaktivitäten und Synapsenstärken bestimmen die Arbeitsweise des Gehirns.
1
vgl. Abb. 1.1-1
8
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1.1.2 Überführung in ein datentechnisches Verarbeitungsmodell (NN)
Strukturelemente eines Neurons werden in ein datentechnisches Verarbeitungsmodell überführt. Dabei dient (bzw. dienen):
- der Zellkörper als Informationsträger. Im einfachsten Fall werden 2 Zustände
(erregt, nicht erregt) unterschieden
- die Dendriten zur Aufsummierung der Netzeingaben
- das Axon zur Weitervermittlung des Erregungszustands und Kontaktaufnahme mit
den Dendriten nachfolgender Neuronen über Synapsen.
- die Synapse zur Bestimmung, wie sich die über ein Axon vermittelte Erregung auf
andere Zellen auswirken soll. Die Stärke der Synapsen wird meistens durch einen
numerischen Wert (dem Verbindungsgewicht) dargestellt.
Dendriten
Dendriten
Zellkern
Zellkörper
Dendriten
Dendriten
Synaptische Endköpfe
Nervernfaser
(Axon)
Abb. 1.1-1: Aufbau einer Nervenzelle
Das menschliche Gehirn ist jedoch kein autonomes Gebilde. Es benötigt
- Rezeptoren als Informatiomationsträger
- Effektoren zur Ausgabe
Die NN vorgeschaltete Ansteuerung wird als Eingabecodierung, die
nachgeschaltete Ausgabe als Ausgabecodierung bezeichnet.
Eingabecodierung heißt: Die Fragen, den Sachverhalt, das Problem der
Anwendung (entsprechend den Netztypkonventionen) zu verschlüsseln
Die Reaktion des Netzes ist dann wieder zu einer Antwort, einer Beurteilung oder
einer Lösung zu dekodieren.
NN versuchen in Struktur und Funktionsweise Gehirnkomplexe nachzubilden und
dadurch eine Simulation menschlicher Denkvorgänge zu erreichen.
9
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1.2 Wie arbeiten Neuronale Netzwerke?
1.2.1 Ein einführendes Beispiel
1. Beschreibung der Aufgabe
Ein Student der Fachhochschule Regensburg steht vor der folgenden Situation:
Wieder einmal drohen die lästigen Semesterabschlußprüfungen. Das hebt nicht
gerade sein augenblickliches Stimmungstief, denn der Vorlesungsbesuch war mäßig,
und die Übungen und Ausarbeitungen zum Vorlesungsstoff hat er nicht richtig
verstanden. Es ist zu befürchten, daß
er die Prüfung nicht schafft. Zum
Stimmungstief kommt hinzu, daß der Vater des Studenten für eine gute Prüfung die
Finanzierung einer Urlaubsreise zu den Malediven (Schwimmen, Tauchen) in
Aussicht gestellt hat, die er angesichts seiner Lage abschreiben kann.
Ein einfaches Modell eines neuronalen Netzes soll die möglichen Zusammenhänge
zwischen dem Prüfungsvorbereitungen und den Handlungen bzw. Stimmungslagen
einer Person beschreiben.
2. Modellbeschreibung
Das Modell besteht aus 2 Schichten, der Eingabe- und Ausgabeschicht. Nur die
Elemente der Eingabeschicht nehmen Informationen auf, nur die Elemente der
Ausgabeschicht geben Informationen vom Modell an die Außenwelt weiter. Jedes
Element der Eingabeschicht ist mit jedem Element der Ausgabeschicht verbunden.
Ein einzelnes Element der Eingabe- und Ausgabeschicht heißt Neuron bzw. Prozessorelement bzw. Verarbeitungseinheit (Unit).
regelmäßiger
Vorlesungsbesuch
Erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
Eingabeschicht
Ausgabeschicht
Schwimmen
Tauchen
Stimmungshoch
negative Prüfung
Abb. 1.2-1: Einfaches Modell eines NN
Die Informationsverarbeitung des Modells erfolgt schichtenweise von oben nach
unten.
Zur Vereinfachung wird festgelegt:
- aktiv entspricht dem Wert +1
10
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
- inaktiv entspricht dem Wert -1
Das Beispiel kann damit folgendermaßen dargestellt werden:
regelmäßiger
Vorlesungsbesuch
-1
Erfolgreiche
Übungsteilnahme
-1
Semester
Abschlußprüfung
+1
-1
-1
+1
Eingabeschicht
-1
-1
+1
Ausgabeschicht
-1
-1
+1
Schwimmen
Tauchen
Stimmungshoch
negative Prüfung
Abb. 1.2-2: Verarbeitungsmodell
Die Neuronen im vorliegenden Modell haben mindestens einen Eingang, der
Informationen aufnimmt und einen Ausgang, der das Ergebnis der vorliegenden
Verarbeitung der Eingangswerte beschreibt. Er kann den anderen Neuronen in darüberliegenden Schichten als Eingangswert dienen.
3. Trainingsphase
1. Schritt
Einfaches Aufsummieren der Eingangswerte
11
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
kein
regelmäßiger
Vorlesungsbesuch
keine
erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
-1
-1
+1
Eingaben
(+)
(+)
(+)
-1
-1
+1
Summe
Ergebnis
-1
-1
+1
-1
-1
(+)
(+)
-1
-1
+1
-1
-1
Eingabeschicht
+1 Eingaben
(+)
-1
Summe
Ergebnis
Ausgabeschicht
kein
kein
Schwimmen
Tauchen
Stimmungshoch
keine
negative Prüfung
Abb. 1.2-3: Einfaches Aufsummieren der Eingaben
Das einfache Aufsummieren führt nicht zum gewünschten Ergebnis.
2. Schritt
- Verschieden starke Gewichtung der Eingänge (unterschiedliche Bewertung der
Verbindungen)
- Aufsummieren
- Schwellwertabgleich (zur Bestimmung definierten Ausgangszustände)
Ein Modellneuron umfaßt somit:
Eingang/Eingang/...
Gewicht/Gewicht/...
Verarbeitung
Ergebnis
Ergebnis > Schwellwert
Eine mögliche Lösung ist dann:
12
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
kein
regelmäßiger
Vorlesungsbesuch
keine
erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
-1
+1
Eingaben
-1
-1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
-1
-1
+1
Ergebnis
>0?
>0?
-1
+1 0
>0?
+1
-1
-1
+1
0
0
+1 0
Schwellenwert
-1
-1
+1 Eingaben
0
0
+1 Gewichte
(+)
(+)
(+)
Summe
-1
-1
+1
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
kein
Schwimmen
kein
Stimmungshoch
negative Prüfung
Tauchen
Abb. 1.2-4: Verarbeitung mit gewichteten Verbindungen
Das Modell liefert aber nicht nur Empfehlungen bei vor der Tür stehenden Abschlußprüfungen, sondern auch Reaktionen auf "regelmäßigen Vorlesungsbesuch"
(Schwimmen, Tauchen) bzw. auf "erfolgreiche Bearbeitung der Übungen"
("Stimmungshoch"). Das Modell arbeitet aber nicht vollständig korrekt. So müßte bei
"regelmäßigem Vorlesungsbesuch" bzw. "erfolgreicher Bearbeitung der Übungen"
zwar "Schwimmen, Tauchen" bzw. "Stimmungshoch" aktiv sein, aber "schlechte Prüfung" inaktiv werden.
3. Schritt
Modifikation der Verbindungsstärken (Gewichte) über eine Lernregel
Neuronale Netze können lernen. Das Lernen geschieht durch Modifikation der
Verbindungsstärken nach einer vorgegebenen Lernregel:
Die Modifikation der Verbindungen soll hier auf einer Hypothese beruhen, die
besagt, daß die Verbindungen zwischen zwei Neuronen immer verstärkt wird, wenn
beide Neuronen gleichzeitig aktiv sind (Hebbsche Hypothese).
13
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Ausgangslage: Das Trainingsbeispiel umfaßt
Vorlesungsbesuch",
"keine
erfolgreiche
Semesterabschlußprüfung" (d.h. aktiv - inaktiv
"Schwimmen, Tauchen", "Stimmungshoch", "keine
aktiv - inaktiv).
regelmäßiger
Vorlesungsbesuch
die Eingabe "regelmäßigen
Übungsbearbeitung",
"keine
- inaktiv) und die Ausgabe
schlechte Prüfung" (d.h. aktiv -
kein
Erfolgreiche
Übungsteilnahme
keine
Semester
Abschlußprüfung
-1
-1
Eingaben
+1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
-1
-1
Ergebnis
>0?
>0?
+1 -1
-1
+1 -1
+1 0
0
0
>0?
-1
+1 0
Schwellenwert
+1 -1
-1
0
+1 Gewichte
0
Eingaben
(+)
(+)
(+)
Summe
+1
-1
-1
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Tauchen
kein
Stimmungshoch
keine
negative Prüfung
Die einfache Lernregel (Hebbsche Hypothese) lautet:
Verstärke eine Verbindung von Neuron j nach Neuron i um einen gewissen Betrag,
wenn sowohl Neuron j aktiv ist als auch der gewünschte Zustand von Neuron i aktiv
sein soll.
Die Größe der Verstärkung, eine vorgebene reelle Zahl, heißt Lernrate. Sie ist
zunächst hier auf 1 gesetzt.
14
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
regelmäßiger
Vorlesungsbesuch
keine
erfolgreiche
Übungsteilnahme
keine
Semester
Abschlußprüfung
-1
-1
Eingaben
+1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
-1
-1
Ergebnis
>0?
>0?
+1 -1
-1
+1 -1
+2 0
0
1
>0?
-1
+1 0
Schwellenwert
+1 -1
-1
0
+1 Gewichte
0
Eingaben
(+)
(+)
(+)
Summe
+2
0
-1
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Tauchen
kein
Stimmungshoch
keine
negative Prüfung
Abb. 1.2-6: Trainingsbeispiel nach Anwendung der Hebbschen Regel
Nach diesem Lernschritt mit der Lernrate 1 haben die Neuronen der Ausgabeschicht
noch immer nicht die gewünschte Aktivität. In einem weiteren Lernschritt werden die
beiden Gewichte erneut um die Lernrate erhöht.
15
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
regelmäßiger
Vorlesungsbesuch
keine
erfolgreiche
Übungsteilnahme
keine
Semester
Abschlußprüfung
-1
-1
Eingaben
+1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
-1
-1
Ergebnis
>0?
>0?
+1 -1
-1
+1 -1
+3 0
0
2
>0?
-1
+1 0
Schwellenwert
+1 -1
-1
0
+1 Gewichte
0
Eingaben
(+)
(+)
(+)
Summe
+3
1
-1
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Tauchen
Stimmungshoch
keine
negative Prüfung
Abb. 1.2-7: Trainingsbeispiel nach einer weiteren Anwendung der Hebbschen Regel
Die Grenzen dieser sehr einfachen Lernregel sind schnell erreicht, z.B:
Bei "regelmäßigem Vorlesungsbesuch" und "erfolgreicher Bearbeitung der Übungen"
müßte zwar "Schwimmen, Tauchen" bzw. "Stimmungshoch" aktiv sein, aber
"schlechte Prüfung" inaktiv werden.
Sind alle 3 Eingänge gleichzeitig aktiv, dann sollen die ersten beiden Ausgänge aktiv
und der letzte Ausgang inaktiv (keine negative Prüfung) sein.
Die derzeitigen Verbindungsstärken ergeben als Resultat für alle drei aktiven
Eingänge aber auch 3 aktive Ausgänge.
16
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
regelmäßiger
Vorlesungsbesuch
Erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
+1
+1
Eingaben
+1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
+1
+1
Ergebnis
>0?
>0?
>0?
+1 +1 +1
+1 +1 +1
+1 +1 +1 Eingaben
+3 0
2
0
0
+1 0
0
Schwellenwert
+1 Gewichte
(+)
(+)
(+)
Summe
+3
3
+1
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Tauchen
Stimmungshoch
negative Prüfung
Abb. 1.2-8 Trainingsbeispiel mit 3 aktiven Eingängen
2
Der Modellversuch zeigt die gewünschte Vielfalt, falls die Lernregel in erweiterter
Form die Differenz (Fehler) zwischen dem gewünschte Zustand und dem Ergebnis
berücksichtigt. Dieser Fehler wird mit der Lernrate multipliziert, die weiterhin die
Größe der Gewichtsänderung bestimmt.
Fehler = (gewünschter Zustand) - (tatsächlicher Zustand)
neues Gewicht = (altes Gewicht) + Lernrate * Fehler *
Ausgabewert der jeweiligen Eingabeneuronen)
Mit einer Lernrate von 1/2 und dem Gewicht der Verbindung von Neuron j zu Neuron
i ergeben sich folgende Berechnungen:
2
Widrow, Hoff -Regel
17
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1. Lernschritt
wa1,e1
wa1,e2
wa1,e3
wa2,e1
wa2,e2
wa2,e3
wa3,e1
wa3,e2
wa3,e3
=
=
=
=
=
=
=
=
=
3
0
0
2
1
0
0
0
1
+
+
+
+
+
+
+
+
+
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
1/2
*
*
*
*
*
*
*
*
*
(1-1) * 1 = 3
(1-1) * 1 = 0
(1-1) * 1 = 0
(1-1) * 1 = +2
(1-1) * 1 = 1
(1-1) * 1 = 0
(-1-1) * 1 = -1
(-1-1) * 1 = -1
(-1-1) * 1 = 0
2. Lernschritt
wa1,e1
wa1,e2
wa1,e3
wa2,e1
wa2,e2
wa2,e3
wa3,e1
wa3,e2
wa3,e3
= 3 + 1/2
= 0 + 1/2
= 0 + 1/2
= 2 + 1/2
= 1 + 1/2
= 0 + 1/2
= -1 + 1/2
= -1 + 1/2
= 0 + 1/2
*
*
*
*
*
*
*
*
*
(1-1) * 1 =
(1-1) * 1 =
(1-1) * 1 =
(1-1) * 1 =
(1-1) * 1 =
(1-1) * 1 =
(-1+1) * 1 =
(-1+1) * 1 =
(-1+1) * 1 =
3
0
0
2
1
0
-1
-1
0
Bereits im zweiten Lernschritt ergeben sich keine Veränderungen mehr, da der
Fehler (Klammerausdruck) jeweils 0 ist. Die erwartete Lernregel liefert nach nur
einem Lernschritt das gewünschte Ergebnis. Für drei gleichzeitig aktive Eingänge
ergibt sich:
18
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
regelmäßiger
Vorlesungsbesuch
Erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
+1
+1
Eingaben
+1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
+1
+1
Ergebnis
>0?
>0?
>0?
+1 +1 +1
+1 +1 +1
+1 +1 +1 Eingaben
+3 0
2
-1
0
+1 0
-1
Schwellenwert
0
Gewichte
(+)
(+)
(+)
Summe
+3
3
-2
Ergebnis
>0?
>0?
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Tauchen
Stimmungshoch
keine
negative Prüfung
Abb. 1.2-9: Trainiertes Netz für 3 aktive Eingänge
Das Modellnetzwerk ist jetzt für 3 aktive Eingänge trainiert. Es hat gelernt, dieses
Muster zu erkennen und ein entsprechendes Resultat zu erzeugen.
Wie reagiert das Netzwerk auf das zuvor trainierte Muster?
19
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
kein
regelmäßiger
Vorlesungsbesuch
keine
Erfolgreiche
Übungsteilnahme
Semester
Abschlußprüfung
-1
+1
Eingaben
-1
-1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
-1
-1
1
Ergebnis
>0?
>0?
-1
+3 0
>0?
Schwellenwert
+1
-1
-1
+1
-1
-1
+1 Eingaben
0
2
1
0
-1
-1
0
(+)
(+)
-3
-3
>0?
>0?
Gewichte
(+)
Summe
2
Ergebnis
>0?
Schwellenwert
Ausgabeschicht
kein
Schwimmen
kein
Stimmungshoch
negative Prüfung
Tauchen
Abb. 1.2-10: Reaktion auf ein bereits trainiertes Muster
Das Semesterabschlußprüfungsbeispiel wird korrekt erkannt.
Wie steht es mit dem Beispiel des regelmäßigen Vorlesungsbesuchs?
20
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
regelmäßiger
Vorlesungsbesuch
keine
Erfolgreiche
Übungsteilnahme
keine
Semester
Abschlußprüfung
+1
-1
-1
Eingaben
1
Eingabeschicht
+1
+1
+1
Gewichte
(+)
(+)
(+)
Summe
+1
-1
-1
Ergebnis
>0?
>0?
-1
+3 0
>0?
Schwellenwert
-1
1
-1
-1
1
-1
-1
Eingaben
0
2
1
0
-1
-1
0
Gewichte
(+)
(+)
3
1
>0?
>0?
(+)
Summe
0
Ergebnis
>0?
Schwellenwert
Ausgabeschicht
Schwimmen
Stimmungshoch
keine
negative Prüfung
Tauchen
Abb. 1.2-12: Reaktion auf ein bereits trainiertes Muster
Durch die erweiterte Lernregel werden Gewichte erzeugt, mit deren Hilfe das
Modellnetzwerk drei trainierte Muster erkennen kann. Es hat gelernt, bestimmte
Eingaben bestimmten Ausgaben selbstständig zuzuordnen.
21
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Zusammenfassung
Ein neuronales Netzwerk kann
1. verschiedene Ein, Ausgabemuster einander zuordnen
2. Zusammenhänge zwischen Eingabe und der gewünschten Ausgabe in den
Gewichten darstellen
3. Zusammenhänge auf mehrere Gewichte verteilt und parallel abspeichern
4. die Gewichte nach einer Lernregel selbstständig anpassen, so daß das Netzwerk
das gewünschte Verhalten zeigt.
1.2.2 Allgemeiner Aufbau neuronaler Netze
1. Grundlegende Bestandteile
Das neuronale Netz an sich gibt es nicht. Es gibt lediglich einige unterschiedliche
Modelle und Ansätze. Ein "künstliches neuronales Netz" besteht generell aus
verschiedenen Elementen, Strukturen, Regeln.
Die grundlegenden Bestandteile sind:
- eine Menge von Verarbeitungselementen (Neuronen)
- eine Menge von Aktivitätszuständen
- eine Ausgabefunktion für jedes Element
- eine Verbindungshierarchie
- eine Regel zur Fortschaltung (Propagierung) der Aktivitätsmuster von einem Element zum nächsten
- eine Regel zur Aktivierung eines Elements durch anliegende Signale und Erzeugung eines neuen
Aktivitätszustands
- einer Lernregel zur Modifizierung der Verbindungsgewichte
- eine Umgebung, in der das Netz arbeitet
Die Verarbeitung in solchen Netzwerken erfolgt in der Regel von der Eingabeschicht
über verborgene Schichten zur Ausgabeschicht, gelegentlich aber auch von der
Eingabeschicht direkt zur Ausgabeschicht oder in einem Feedback zwischen den
einzelnen Schichten (hin und her).
Input-Units
Hidden Units
Output-Units
Eingabeschicht
verborgene Schicht
Ausgabeschicht
Abb. 1.2-13: Schichtenweise Verarbeitung
22
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Die einzelnen Schichten bestehen aus einer Anzahl von Prozessorelementen. Jede
Schicht enthält mindestens ein Prozessorelement. Elemente einer Schicht sind
meistens von der gleichen Art.
Ein Prozessorelement kann mit beliebig vielen anderen Prozessorelementen einer
anderen Schicht ("inter-neuronlayer-connection) verbunden sein oder auch mit
Prozessorelementen der gleichen Schicht (intra-neuronlayer-connection). Eine
Verbindung von Prozessorelementj nach Prozessorelementi heißt Gewicht, neben
variablen Gewichten gibt es auch feste Gewichte. Gewichte werden gewöhnlich
durch relle Zahlen (häufig im Intervall von -1 bis +1) dargestellt.
In vielen Fällen gibt es eine zusätzliche Schicht mit genau einem Element, das Bias
oder Schwellenwert genannt wird. Mathematisch gibt der Schwellenwert die Stelle
der größten Steigung einer monoton wachsenden Aktivierungsfunktion an. Biologisch
entspricht er der Reizschwelle, die erreicht werden muß, damit das Neuron „feuern“
kann. In einfachen Anwendungen hat dieses Element den konstanten Wert 1 und
hat nur Ausgänge keine Eingänge. Mit Hilfe des Bias-Elements kann sichergestellt
werden, dass bestimmte Prozessorelmente immer eine Eingabe ungleich Null
erhalten. In Simulationen kann dieser Schwellwert unterschiedlich realisiert werden,
entweder als Parameter in der Aktivierungsfunktion oder über einen zusätzlichen
gewichteten Eingang.
Verbindungen zwischen Neuronen der gleichen Schicht sind häufig sowohl
erregender als auch hemmender Art, während zwischen Schichten meistens nur
erregende Verbindungen bestehen. Falls sich die Aktivierung von Schicht zu Schicht
vorwärts ausbreitet, spricht man von Feedforward-Netzen. Es handelt sich um
Feedback-Netze, falls die Aktivierung von nachfolgenden Schichten auch an
vorgelagerte Schichten zurückgegeben wird.
2. Arbeitsweise der Elemente NN
Die Elemente (Neuronen) in Neuronalen Netze arbeiten nach einem konstanten
Schema. Es werden Eingabemuster i verarbeitet, die Vektoren aus Zahlen (i1,i2, ...
in) sind. Über die Verbindungshierarchie, die Verbindungsgewichte bzw. die
Aktivierungsfunktion wird jedes Eingabemuster durch das Netz geschleußt, bis neu
errechnete (Aktivitäts-)Werte an den Ausgangsneuronen erscheinen. Auch die
Ausgangswerte können wieder als Zahlenvektor o = (o1,o2,...,om) geschrieben oder
zu einem Muster zusammengefaßt werden.
23
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
von Neuron j
o1 o2 o3
...........
on
i1 i2 i3
...........
in
o1 o2 o3
............
om
Neuron i
von Neuron i
Abb. 1.2-14: Aufbau eines Neurons
Zunächst werden alle Eingänge mit einer Eingabefunktion (Input) bearbeitet. Über
die an einem Neuron einlaufenden Verbindungen werden Aktivierungen von anderen
Neuronen herbeigeführt (z.B. o1, o2, o3, ... ). Die Aktivierungen müssen den
Übertragungswiderstand (das Gewicht der Verbindung zwischen zwei Neuronen)
überwinden. Gewöhnlich ist das ein einfaches Aufsummieren der Ein-gänge oj
multipliziert mit den entsprechenden Gewichten wij:
neti   o j wij
j
Diese
Formel
ist
auch
unter
dem
Namen
Ausbreitungsregel
(Propagierungsfunktion) bekannt, denn sie beschreibt die Signalweiterleitung
durch das Netz.
Das Ergebnis dieser Funktion wird an die sogenannte Aktivierungsfunktion
(Transferfunktion, Schwellwertfunktion) weitergeleitet. Die Transferfunktion legt die
Aktivität fest, die ein Prozessorelement in Abhängigkeit von der aktuellen Eingabe
annehmen soll.
Der Aktivierungswert einer Verarbeitungseinheit wird über die Funktion a i(t)
bestimmt. Häufig ist sie die identische Abbildung vom Netto-Input (ai = neti).
Allgemein ist sie von vorhergehenden Aktivierungen, einem Satz von Parametern
und einem Aktivierungszufluß von außen (ext_inpi) abhängig:
ai (t  1)  Fi (neti (t  1), ext _ inpi (t  1), ai (t ))
Mit den Aktivierungsgrößen Nettoinput, externer Input und alter Aktivierungszustand
kann der neue Aktivierungszustand ai des Neurons i unter Anwendung der
Aktivierungsfunktion F bestimmt werden.
24
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Als Aktivierungsfunktion kommen häufig die lineare Funktion, Schwellwertfunktionen
oder Sigmoidfunktionen zum Einsatz.
o1
o2
wi1 wi2
o3.....
wi3
Propagierungsfunktion
Aktivierungsfunktion
Ausgabefunktion
oi
Abb. 1.2-15: Verarbeitungsfunktionen in einem Neuron
Die Ausgabefunktion (Output) kann der Aktivierungsfunktion nachgeschaltet sein.
Die Outputfunktion definiert, welches Ausgabesignal an die benachbarten Einheiten
weitergegeben werden soll:
oi (t )  f i (ai (t ))
In der Regel wird der Ausgangszustand dem inneren Aktivierungszustand
gleichgesetzt, aber in einigen Fällen hängt z. B. die Wahrscheinlichkeit, daß der
Ausgabewert 0 oder 1 ist, vom inneren Aktivierungszustand ab.
Die Outputfunktion ermöglicht einen Wettbewerb unter den einzelnen
Prozessorelementen einer Schicht. So kann z.B. die Outputfunktion "winner-take-all"
gewählt werden. In diesem Fall gibt nur das Prozessorelement einer Schicht seine
Information weiter, dessen Transferfunktion den höchsten Wert liefert. Alle anderen
Prozessorelemente dieser Schicht geben eine Null weiter.
Häufig beschränkt man sich bei der Beschreibung des Prozessor- Elements auf
folgende Aktivierungsfunktion:
ai (t )  Fi (neti (t ))
Der Wert des Aktivitätssignals ist hier nicht mehr vom vorangegangenen Wert
abhängig, und das Ausgangssignal ist gleich dem Aktivitätssignal.
25
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3. Zusammenstellung der wesentlichen Aktivierungsfunktionen
Besondere Bedeutung kommt der Aktivierungsfunktion Fi (neti (t )) zu. Durch
geeignete Wahl läßt sich jede gewünschte nichtlineare Kennlinie realisieren.
3.1 Lineare Funktion
Fi (neti (t ))
net i (t )
Abb.: 1.2-16: Lineare Aktivierungsfunktion
3.2 halblineare Funktion
Fi (neti (t ))
net i (t )

Fi (net i (t ))  
0
x
x 
Abb. 1.2-16: Halblineare Aktivierungsfunktion:
26
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.3 Linear bis zur Sättigung (linear threshold)
Fi (neti (t ))
1.0
net i (t )
-1.0
-0.5
0.5
1.0
Abb.: 1.2-17: Lineare Aktivierungsfunktion
3.4 Schwellenwertfunktion (threshold)
Fi (neti (t ))
1.0
net i (t )
-1.0
-0.5
0.5
1.0
Abb. 1.2-18: Schwellenwertfunktion:
bzw.
Fi (neti (t ))
1.0
-1.0
-0.5
net i (t )

1.0
27
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Fi (net i (t ))  
0
x
1
x
Abb. 1.2-19: Schwellenwertfunktion.
3.5 Signum-Funktion (bipolare Schwellenwertfunktion)
Fi (neti (t ))
1.0
-1.0
net i (t )

-0.5
1.0
-1.0
Fi (net i (t ))  
-1
1
x
x
Abb. 1.2-20: Schwellenwertfunktion.
3.6 Sigmoid-Funktion
Fi (neti (t ))
net i (t )
Fi (net i (t )) 
1
1  e  neti (t )
Abb. 1.2-21: Sigmoid-Funktion
28
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Beispiel
Durch geeignete Wahl der Gewichtsfaktoren wi1(t), wi2(t) und der Schwelle  (in
Verbindung mit der Schwellenwertfunktion) lassen sich die logischen Grundoperationen , ,  abbilden.
log. Funktion



wi1(t)
1
1
-1
wi2(t)
1
1
0

1.5
0.5
-0.5
1.2.3 Informationsverarbeitung in neuronalen Netzen
Sie bedeutet in vielen Fällen: Abbildung von Mustern.
Über die Eingabeschicht werden die im Eingabemuster enthaltenen Informationen in
das Netz eingespeist. Aus der Ausgabeschicht kann das nach Ausbreitung von
Aktivierungen im Netzwerk entstehende Ausgabemuster abgelesen werden.
Ein neuronales Netzwerk arbeitet gewöhnlich in zwei verschiedenen Modi
- einem Lernmodus
- einem Ausführungsmodus (Recall Modus)
1. Lernmodus (Trainingsphase)
Lernen bedeutet Verändern der Gewichte. In der Regel werden Gewichte solange
verändert, bis die Zuordnung der Eingabemuster zu einer gewünschten Ausgabe
erreicht wurde. Das Verändern der Gewichte geschieht über Lernregeln.
Einfache Lernregeln sind die bereits bekannte Lernregel von Hebb und die
erweiterte Delta-Lernregel von Widrow/Hoff. Die einfachste Form der Hebb-Regel
ist:
wij    ai  o j
"  " ist hier Parameter, der die Größe eines Lernschritts bemißt. "  " wird
günstigerweise zwischen 0 und 1 gewählt. Ist  = 0, dann wird nichts gelernt. Ist  =
1, dann werden die Gewichte, die schon vorher erlernte Muster assoziieren konnten,
wahrscheinlich zerstört, d.h.: Das Netzwerk merkt sich neue Muster so stark, daß die
alten Muster teilweise zerstört werden.
Eine andere sehr häufig verwendete Form des Lernens ist die sog. Delta-Regel:
wij    ( ti  oi )  o j
29
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
bzw.
wij     i  o j
wij : Änderung des Gewichts von Verarbeitungseinheit j zu Verarbeitungseinheit i in
einem Lernschritt.
ti (target): gewünschter Output der Unit i
oi: tatsächlicher Output der Verarbeitungseinheit i
oj: Output der Verarbeitungseinheit j
i  ti  oi : Fehlersignal der Verarbeitungseinheit i
Diese Lernregel, auch als Widrow/Hoff-Regel (1960) bekannt, ermöglicht es,
Gewichtsänderungen so durchzuführen, daß ein bestimmter Eingabevektor mit
einem gewünschten Ausgabevektor assoziiert wird. Allerdings ist sie nur für
zweischichtige Netze definiert, da der gewünschte Output nur im Output-Layer, nicht
aber für Hidden-Units beschrieben wird. Eine für mehrere Schichten geeignete
Variante
ist
das
sogenannte
Back-Propagation-Lernverfahren,
eine
Verallgemeinerung der Delta-Regel, die eine Berechnung der Fehlersignale für
Hidden-Units definiert. Bei der Delta-Lernregel wird der Fehler nach der
tatsächlichen Ausgabe eines Prozessorelements der Ausgabeschicht (bzw. seiner
Aktivität) und dem vorgegebenen Ausgabewert berechnet. Dieser Fehler wird
gleichmäßig auf die verschiedenen Gewichte der Prozessorelemente verteilt, die
Gewichte werden angepaßt. Das Lernen muß solange andauern, bis die
Veränderung der Gewichte gegen Null geht.
Man gibt sich offenbar mit dem errechneten Ausgangsmuster zufrieden und
berechnet den Ausgangsfehler als Differenz zwischen Ist- und Sollausgang t (Target:
Ziel) des Netzes und speist ihn rückwärts wieder in das Netz ein. Mit Hilfe der
Lernregeln werden die Verbindungsgewichte so verbessert, daß der Ausgangsfehler
des Netzes in der nächsten Ausführungsphase (Recall-) geringer wird.
Recall- und Lernphase wechseln sich gegenseitig so lange ab, bis der
Ausgangsfehler für alle zu erlernenden Muster unter eine vorgegebene Schwelle
sinkt.
2. Ausführungsmodus
In diesem Modus werden trainierten Netzwerken Eingabedaten präsentiert, die sie
noch nicht gelernt haben. Ein neuronales Netz, das nur wenige Lernschritte
durchgeführt hat, produziert einen anderen Ausgabewert als ein Netz, das genügend
lange gelernt hat. Die Qualität des Ausgabevektors hängt entscheidend von der
Länge und der Qualität der vorangegangenen Lernphase ab.
Man unterscheidet bzgl. der beiden Lernregeln
- das überwachte Lernen (Delta-Regel)
- das unüberwachte Lernen (Hebbsche Regel)
30
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Beim überwachten Lernen ist zusätzlich eine weitere Unterteilung in
mit Lehrer
bzw.
ohne Lehrer
möglich. Das überwachte Lernen mit Lehrer bietet dem Netzwerk zum Vergleich die
richtige Lösung an. Tritt anstelle des Lehrers der Bewerter, so wird dem Netzwerk
lediglich nur noch Information über die Qualität des Ergebnisses angeboten.
Das unüberwachte Lernen benötigt weder Lehrer noch Bewerter. Der Abgleich der
Gewichtsfaktoren erfolgt nach der Hebbschen Regel. In diesem Fall spricht man
auch von selbstorganisierenden Netzwerken.
1.2.4 Mathematische Grundlagen zum Lernverhalten NN
Beim Lernen muß ein Netzwerk über die jeweilige Lernregel Gewichte finden, die bei
vorgegebener Eingabe die erwünschte Ausgabe erzeugen. Das Lernverhalten NN
kann mit Matrizen und Vektoren beschrieben werden. Ist ein Eingabevektor i (in
normierter Darstellung3) und ein Ausgabevektor o gegeben, so muß das Netzwerk
eine Gewichtsmatrix finden, die die Gleichung
o  Wi
erfüllt.
Im einfachsten Fall besteht o nur aus einer Komponente, die Gewichtsmatrix
besteht dann nur aus einer Zeile, und es gilt o  w  i
Falls i  1 ist, dann ist auch das Skalarprodukt i T  i vom Wert 1.
o  iT  w  i  iT  w  iT  i 4
o  iT  w
Dieser Ansatz läßt sich verallgemeinern: W  o  i T
Wird die Gewichtsmatrix mit dem Eingabevektor multipliziert, dann ergibt sich der
gewünschte Ausgabevektor:




W  i  oi  i T  i  o  i T  i  o

3
Der Vektor


x  ( x1 , x2 ,..., xn ) mit dem Betrag x  x12  x22 ... xn2 ist in normierter Darstellung:




x N  ( x1 / x , x2 / x ,...., xn / x ) . x N hat dann den Wert 1.
4
Das Skalarprodukt ist kommutativ
31
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Falls man für die Eingabevektoren noch eine Reihe zusätzlicher Eigenschaften
fordert, dann kann man eine einzige Matrix konstruieren, die gleichzeitig mehrere
verschiedene Eingabe- und Ausgabevektoren aufeinander abbildet.
Solche Eigenschaften für alle Eingabevektoren sind:
- ii  i j  0
für alle i <> j (d.h. die Eingabevektoren sind orthogonal zueinander)
- iT  i  1
- i 1
Dann gilt für die Matrix
M   W   o  iT
i
i
folgendes
 







 
T

 
T

M  i j   Wi  i j   ( o i  i i )  i j   oi  i i  i j   oi  ( ii  i j )  o j  ( i j  i j )  o j
i
T
i
T
i
i
Die Matrix kann also beliebige Ein- und Ausgabevektoren einander zuordnen.
Allerdings müssen die Eingabevektoren dann orthogonal zueinander sein. In diesem
Fall ist die vorliegende Konstruktion eine Rechtfertigung für die Hebbsche Regel.
Sind die Eingabevektoren nicht orthogonal zueinander, sondern bspw. linear 5
unabhängig, dann muß zur Konstruktion der Gewichtsmatrix ein anderer
Lernalgorithmus herangezogen werden (z.B. Delta-Regel).
Eine lineare Abhängigkeit von Vektoren erschwert die Konstruktion von
Gewichtsmatrizen und spielt eine entscheidende Rolle beim Trainieren (Lernen)
Neuronaler Netze.
Mathematisch gesehen bilden NN Vektoren auf andere Vektoren ab. Ein NN ordnet
verschiedenen Eingabevektoren entsprechende Ausgabevektoren zu. Was das NN
mit den Vektoren anstellt (addiert, multipliziert, transformiert), das ist der eigentliche
Kern eines neuronalen Netzes. Hier setzen die zahlreichen Modelle an.


5



v 0 ist eine Linearkombination der Vektoren v 1 , v 2 ,..., v n , falls es gewisse Koeffizienten gibt, so daß



v 0  a1  v 1  a2  v 2 ...  an  vn gilt.

v 0 kann also aus der Addition bestimmter Vielfache oder Teile der anderen Vektoren bestimmt werden.


Eine Menge von Vektoren { vi |i < n} heißt linear unabhängig, falls keiner der Vektoren
anderer Vektoren dargestellet werden kann
32
vi als Linearkombination
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1.2.5 Implementierung NN
Wünschenswert wäre, Chips zu haben, die neuronale Zellen - in Analogie zu
biologischen Gehirnen - auf Hardware-Ebene abbilden.
Dann könnte man eine große Anzahl solcher Bausteine zu Netzen verschalten und
hätte ein leistungsfähiges Werkzeug zur Simulation NN. Zwar soll es bereits 100
verschiedene Chip-Designs geben, aber nur wenige davon sind als kommerzielle
Produkte verfügbar. Man benutzt daher Software-Simulatoren auf herkömmlichen
Rechnern. Für manche Produkte gibt es bereits Beschleunigungskarten mit
Spezialprozessoren für schnelle Trainingsläufe und Netzwerk- Compiler, die
spezielle künstliche NN (KNN) auf diese Beschleunigerkarten umsetzen. Fertige CProgramme (auf beigefügter Diskette) und entsprechendes Hintergrundwissen
enthält das Buch von Rumelhart 6. Es ist die Basis für viele Software-Simulatoren.
6
vgl. Rumelhart, David E. und McClelland, James L.: Parallel Distributed Processing in the Microstructure of
Cognition, MIT Press (1986)
33
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Wichtige Ausprägungen NN
2.1 Modellierung Neuraler Netze
2.1.1 Übersicht
Im Laufe eines Zeitraums von 40 Jahren (1950-1990) wurde eine große Anzahl NN
entwickelt. Diese Netze unterscheiden sich in mehrfacher Hinsicht, z. B. durch
- die Anzahl der Schichten
- die Art des Lernens
- feed forward bzw. feed back
- Annahme binärer oder stetiger Ereignisse
Eine einfache Klassifizierung könnte bspw. folgendermaßen aussehen:
feed forward
einlagig, binär
Perzeptron
feed back
mehrlagig
BPG
deterministisch
CPN
selbstorganis.
Boltzmann-Maschine
BSB, Hopfield
BPG: Backproppagation
CPN: Counterpropagation
BAM: Bidirectional Associative Memory
ART: Adaptive Resonance Theory
Abb. 2.1-1: Klassifizierungsmerkmale NN
Die verschiedenen Netzwerktypen wurden z.T. mit sehr unterschiedlichen
Motivationen und Zielsetzungen entwickelt. Ein Teil der Netze wurde bspw. durch
physikalische Modelle inspiriert. Andere Netzwerke haben eher biologische
Grundlagen. Häufig war bei der Entwicklung des Netzwerks eine befriedigende
Antwort nach einer geeigneten Lernregel entscheidend.
Ein wichtiger Gesichtspunkt ist jeweils der lokale Charakter einer Lernregel. Ein
Neuron sollte nur aufgrund der ihm tatsächlich zur Verfügung stehenden Information
(Eingaben, eigene Aktivität und Ausgabe, evtl. lokal berechneter Fehler) seine
Gewichte anpassen. Nur ein solches Modell dient dem Verständnis der verteilten,
parallelen Verarbeitung von Daten im Gehirn und damit den biologischen Vorbild.
34
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.1.2 Topologien
2.1.2.1 Definition NN
Verbindet man mehrere Neuronen miteinander, dann erhält man ein Neuronales
Netz.
Ein Neuronales Netz ist ein Paar (N, V) mit einer Menge N von Neuronen und einer
Menge V von Verbindungen. Es umfasst den Aufbau eines gewichteten Graphen, für
die folgende Einschränkungen und Zusätze gelten:
1. Die Knoten des Graphen sind die Neuronen.
2. Die Kanten sind die Verbindungen.
3. Jedes Neuron kann eine beliebige Menge von Verbindungen empfangen, über die
das Neuron seine Eingaben erhält.
4. Jedes Neuron kann genau eine Ausgabe über eine beliebige Menge von
Verbindungen aussenden.
5. Das Neuronale Netz (NN) erhält aus Verbindungen, die der „Außenwelt“
entspringen, Eingaben und gibt seine Ausgaben über in der „Außenwelt“ endende
Verbindungen ab.
x1
x2
x3
xn
Eingabevektoren
……………
……………
.......................
.........
Eingabeschicht (Schicht 0)
1. verborgene Schicht
(h-2). verborgene Schicht
Ausgabeschicht (Schicht h)
Abb. 2.1-2: Darstellung eines „h“ Schichten umfassenden NN mit einer Eingabeschicht, „h-2“ verborgenen
Schichten und einer Ausgabeschicht (ohne Rückkopplungen)
Die Verbindungsstruktur (Topologie) kann man in Form einer Matrix beschreiben.
Zeilen und Spalten identifiziert man mit den Neuronen (Units, Zellen), in den
Kreuzingspunkt schreibt man das Gewicht der Verbindung. Für die Matrix gilt dann
bspw.
wij  0 : Keine Verbindung von Neuron „i“ zu Neuron „j“
wij  0 : hemmende Verbindung der Stärke wij
wij  0 : anregende Verbindung der Stärke wij
35
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.1.2.2 Netze ohne Rückkopplung, „feedforward“-Netze
1. Ebenenweise verbundene Feedforward-Netze
Die Netze sind in mehreren Ebenen (Schichten) eingeteilt. Es gibt nur Verbindungen
von einer Schicht zur nächsten (vgl. Abb. 2.1-2).
2. Feedforward-Netze mit „shortcut connections“
Bei diesen Netzen gibt es neben Verbindungen zwischen aufeinanderfolgenden
Ebenen auch solche, die Ebenen überspringen, d.h. die direkt von einem Neuron der
Ebene „k“ zu einem Neuron in Ebene „k+i“ mit „i > 1“ verlaufen.
„shortcut“
Abb. 2.1-3: Feedforward-Netz mit „shortcut“
2.1.2.3 Netze mit Rückkopplungen, „rekurrente Netze“
Netze mit Rückkopplungen unterteilt man in die Klasse der
1. Netze mit direkten Rückkopplungen („direct feedback“)
Die Netze ermöglichen es, dass ein Neuron seine eigene Aktivierung üner eine
Verbindung von seinem Ausgang zu seinem Eingang verstärkt oder abschwächt.
Diese Verbindungen bewirken oft, dass Neuronen die Grenzzustände ihrer
Aktivierungen annehmen, weil sie sich selbst verstärken oder hemmen.
2. Netze mit indirekten Rückkopplungen („indirect feedback“)
Bei diesen Netzen gibt es ein Rückkopplung von Neuronen höherer Ebenen zu
Neuronen niederer Ebenen. Diese Art der Rückkopplung macht auf bestimmte
Bereiche der Eingabeneuronen bzw. auf bestimmte Eingabemerkmale
aufmerksam.
3. Netze mit Rückkopplungen innerhalb einer Schicht („lateral feedback“)
Netze mit Rückkopplungen innerhalb derselben Schicht werden für Aufgaben
eingesetzt, bei denen nur ein Neuron in einer Gruppe von Neuronen aktiv werden
soll. Jedes Neuron erhält dann hemmende Verbindungen zu anderen Neuronen
und auch noch eine aktivierende direkte Rückkopplung zu sich selbst. Das Neuron
mit der stärksten Verbindung hemmt dann die anderen Neuronen
4. vollständig verbundene Netze.
36
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Vollständig verbundene Netze haben Verbindungen zwischen alle Neuronen. Sie
sind insbesondere durch die Hopfield-Netze (vgl. 2.7.1) weit verbreitet worden.
Netze mit Rückkopplungen werden auch für die Modellierung von Zeitabhängigkeiten
bei Daten (z.B. die Struktur einer Schwingung) eingesetzt.
2.2 Interaktive Netzwerke
Das interaktive Netzwerk soll zeigen, wie unterschiedliche, an verschiedenen
Stellen gespeicherte, inhaltlich zusammengehörige Informationen nach einem von
außen gegebenen Anstoß zusammengeführt werden können.
Interaktive Netzwerke zählen zur einfachsten Klasse NN und werden nicht trainiert.
Sie sind bspw. für die Simulation menschlicher Informationsvorgänge innerhalb der
Kognitionswissenschaft (Psychologie, KI-Forschung) interessant. Der Grund hierfür
liegt in dem Verhalten, das solche Netzwerkarchitekturen als Folge externer
Anregung zeigen, Bevor sich nämlich ein stabiler Zustand der AktivierungsVerteilung einstellt, wird eine dynamische Phase stetiger Veränderung durchlaufen.
Solche Übergangszustände lassen sich auch bei der menschlichen
Informationsverarbeitung (z.B. beim Verstehen der Sprache) 7 finden.
2.2.1 Beschreibung
2.2.1.1 Arbeitseinheiten
Ein "interactive and competetion"-Netzwerk besteht aus einer Anzahl
Arbeitseinheiten, die in Gruppen zusammengefaßt sind. Es gibt verstärkende
Verbindungen zwischen heterogenen Gruppen und hemmende Verbindungen
innerhalb der Einheiten einer Gruppe. Verstärkende Verbindungen wirken
grundsäzlich in beiden Richtungen, d.h. die Einheiten der heterogenen Gruppen
beeinflussen sich wechselseitig. Innerhalb einer Gruppe hemmen sich die Einheiten
wechselseitig. Daraus resultiert eine Art Wettbewerb. Die Einheiten, die am stärksten
aktiviert werden, versuchen die Aktivitäten der anderen Einheiten zu senken.
Es gibt zwei Klassen von Einheiten (units):
- Einheiten, die direkt Eingaben von außerhalb des Netzwerks empfangen können
(sichtbare Einheiten)
- Einheiten, die nicht direkt Eingaben von außerhalb des Netzwerks empfangen
können (verborgene Einheiten)
Der Benutzer kann Eingabemuster auf sichtbare Einheiten beziehen, es ist aber
nicht möglich, die verborgenen Einheiten anzusprechen. Deren Netzeingabe beruht
auf den Eingaben anderer Einheiten, mit denen sie in Verbindung stehen.
Bsp.: Gegeben ist die folgende relationale Datenbank
7
vgl. Hinweise in Kruse, Holger u.a.: Programmieren Neuronaler Netze, Addison-Wesley, Bonn1991, S.72
37
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Name
Bernd
Fritz
Doris
Hans
Josef
Kai
Rita
Theo
Uli
Anna
Liesel
Karl
Maria
Otto
Udo
Uwe
Willi
Bereich
T
T
T
T
T
T
T
T
T
W
W
W
W
W
W
W
W
Alter
20er
20er
20er
30er
20er
30er
20er
20er
30er
20er
20er
30er
20er
20er
20er
30er
20er
Bildung
FOS
FOS
HS
FOS
FOS
HS
HS
FOS
FOS
HS
FOS
HS
FOS
HS
HS
FOS
FOS
Schwerpunkt
SY
KI
KI
SY
SY
SY
KI
GR
GR
GR
SY
SY
KI
GR
KI
GR
SY
In der relationalen Datenbank sind die Daten in einer Tabelle konzentriert
gespeichert, im NN sind die Informationen (, wie das auch im Vorbild dem
menschlichen Gehirn der Fall ist,) verteilt. Die folgende Abbildung zeigt für einige
Individuen die Verteilung der Einheiten des NN.
Namen
Alter
Bernd
20er
Doris
Anna
30er
Fritz
Liesel
Schwerpunkt
KI
SY
GR
Bildung
Bereich
HS
FOS
T
W
Abb. 2.2-1: IAC zur Beispieldatenbank
38
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Jeder Bereich enthält die zugehörige Information, z.B. unter "Name" befinden sich
die Individuen: Bernd, Fritz, Doris. Die Einheiten in den einfach gerahmten Bereichen
sind sichtbar, sie können von außen angesprochen werden. Die im doppelt
gerahmten Kasten befindlichen Einheiten sind nach außen verborgen. Es handelt
sich hier um Instanzen.
2.2.1.2 Netzarchitektur
Für die Abbildung des Netzes in ein (Pascal-) Rechnerprogramm ist folgende
Konstante "Netz" vorgesehen:
const Dim
= 43;
U = 1.0; D = 1.0; V = -1.0; H = -1.0; Z = 0.0;
type
Vektor = array[1..Dim] of real;
Matrix = array[1..Dim,1..Dim] of real;
const Netz
: array[1..Dim] of Vektor =
(* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 *)
((Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,D,D,D,D,D,D,D,Z,Z,Z,Z,Z,Z,Z,Z),
(V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,D,D,D,D,D,D),
(Z,Z,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,D,Z,D,Z,D,D,Z,D,D,Z,D,D,D,Z,D),
(Z,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,D,Z,Z,D,Z,Z,D,Z,Z,Z,D,Z),
(Z,Z,Z,Z,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,Z,D,D,Z,Z,D,D,Z,D,Z,D,Z,Z,D,D),
(Z,Z,Z,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,D,D,Z,Z,D,Z,D,Z,D,D,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,D,D,D,Z,Z,Z,Z,D,D,Z,Z,Z,Z,D),
(Z,Z,Z,Z,Z,Z,V,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,Z,Z,Z,D,Z,Z,Z,Z,Z,D,Z,D,Z,Z),
(Z,Z,Z,Z,Z,Z,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,D,D,Z,Z,Z,D,Z,D,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,Z,V,V,V,V,V,V,V,V,V,V,V,V,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,Z,V,V,V,V,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,Z,V,V,V,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,Z,V,V,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,Z,V,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,Z,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,Z,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,Z,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,Z,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D,Z),
(Z,Z,Z,Z,Z,Z,Z,Z,Z,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,D),
(U,Z,U,Z,U,Z,U,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,U,Z,U,Z,Z,U,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,U,Z,Z,U,Z,U,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,Z,U,U,Z,U,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,Z,H,H,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,U,Z,U,Z,U,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,Z,H,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,Z,U,Z,U,U,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,Z,H,H,H,H,H,H,H,H,H,H,H),
(U,Z,U,Z,Z,U,Z,U,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,Z,H,H,H,H,H,H,H,H,H,H),
(U,Z,U,Z,U,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,Z,H,H,H,H,H,H,H,H,H),
(U,Z,Z,U,U,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,H,Z,H,H,H,H,H,H,H,H),
(Z,U,U,Z,Z,U,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,H,H,Z,H,H,H,H,H,H,H),
(Z,U,U,Z,U,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,H,H,H,Z,H,H,H,H,H,H),
(Z,U,Z,U,Z,U,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,Z,H,H,H,H,H,H,H,H,H,H,H,Z,H,H,H,H,H),
(Z,U,U,Z,Z,U,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,Z,H,H,H,H,H,H,H,H,H,H,H,H,Z,H,H,H,H),
(Z,U,U,Z,Z,U,Z,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,Z,H,H,H),
(Z,U,U,Z,Z,U,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,H,Z,H,H),
(Z,U,Z,U,U,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,Z,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,Z,H),
(Z,U,U,Z,U,Z,U,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,U,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,H,Z));
Die ersten beiden Zeilen in der Matrix beziehen sich auf die Eigenschaften "Technik"
und "Wirtschaft". Die erste Zeile zeigt dazu an:
- die Eigenschaft "Wirtschaft" ist mit -1 festgelegt
39
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
- die Instanzen zu Bernd, Fritz, ... (ab Spalte 27) sind gesetzt. Alle übrigen Elemente
sind auf 0 gesetzt.
Die 2. Zeile zeigt:
- die Eigenschaft Technik ist mit -1 festgelegt, die Instanzen zu Anna, Liesel, ... sind
gesetzt. Alle übrigen sind auf 0 gesetzt.
Die folgende Tabelle beschreibt die Eigenschaften und die zugehörigen Einheiten
der Netzkonstanten:
Zeilenindex
1
2
3
4
5
6
7
8
9
10
11
12
...
...
27
...
...
Eigenschaft
nicht Wirtschaft
nicht Technik
nicht 30er
nicht 20er
nicht HS
nicht FOS
nicht KI, nicht GR
nicht SY, nicht GR
nicht SY, nicht KI
nicht (Fritz, Doris, ....)
nicht (Bernd, Doris, ....)
nicht (Bernd, Fritz, ....)
.....
.....
Beschreibung der Eigenschaften.
.................
.................
Instanzen
ab Spalte 27
ab Spalte 36
ab Spalte 27
ab Spalte 27
ab Spalte 27
ab Spalte 27
ab Spalte 27
ab Spalte 27
ab Spalte 27
in Spalte 27
in Spalte 28
in Spalte 29
.....
.....
.....
.....
.....
Die Konstante Netz wird der Variablen "Gewichte" zugeordnet. Externe Eingaben der
Einheiten sind zu 0 initialisiert, aktuelle Aktivierungswerte sind auf "-0.1" gesetzt.
type Vektor = array[1..Dim] of real;
Matrix = array[1..Dim,1..Dim] of real;
var
Aktivieren : Vektor;
ExtEing
: Vektor;
Gewichte
: Matrix;
procedure Initialisieren;
var I, J : integer;
begin
for I := 1 to Dim do
begin
Aktivieren[I] := -0.1;
ExtEing[I]
:= 0;
end;
for I := 1 to Dim do
for J := 1 to Dim do
Gewichte[I,J] := Netz[I][J];
end;
40
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.2.2 Mathematische Grundlagen
1. Berechnung der Aktivitäten
Einheiten in einem "iac-Netzwerk" können Aktivierungswerte erhalten, die von einem
Minimal- und Maximalwert eingegrenzt sind. Die aus der Aktivierung resultierende
Ausgabe entspricht dem Aktivierungswert. Die Aktivierungswerte ändern sich in dem
Netz kontinuierlich (Idealisierung) mit der Zeit.
Die Einwirkung auf eine spezielle Einheit, z.B. i, ist dann im Netz durch die folgende
Formel beschreibbar:
neti   wij  o j  ext _ inpi
j
oj entspricht im iac-Modell dem Aktivierungswert "aj.". "aj" beschreibt die Aktivierung
der Einheit "j", die mit der Einheit "i" in Verbindung steht und hat den Wert a j für alle
aj > 0. Die Gewichtung wij kann positive (verstärkend) oder negativ (hemmend) sein.
Das Resultat der Berechnungen von neti bewirkt folgende Veränderungen der
Aktivität:
neti  0
ai  (max  ai )  neti  decay  (ai  rest )
neti  0
ai  (ai  min )  neti  decay  (ai  rest )
"max", "min", "decay" sind Parameter. Übliche Werte sind: max = 1, min <= rest <= 0
"decay" liegt zwischen 0 und 1.
Angenommen "neti" bleibt konstant. Dann wird im Fall neti  0 ai abnehmen, die
Aktivierung der Einheit aber weiter wachsen. U.U. wird ai sogar negativ. Im
Gleichgewichtsfall ist ai  0 , d.h.:
0  (max  ai )  neti  decay  (ai  rest )  max  neti  decay  rest  ai  (neti  decay)
max  neti  rest  decay
ai 
neti  decay
neti
Falls max = 1 und rest = 0 ergibt sich: ai 
neti  decay
min  neti  decay  rest
Falls neti  0 ist, ergeben sich analoge Ergebnisse: ai 
neti  decay
min  neti
Mit rest  0 führt das zu: ai 
neti  decay
Da neti und "min" negativ sind, führt das in der vorliegenden Formel zu einiger
Verwirrung. Besser ist es, "min" durch "amin" und neti durch aneti zu ersetzen (d.h.
durch die Absolutwerte).
a min  aneti
ai 
aneti  decay
Die beiden Formeln für die Aktivierung beschreiben den Gleichgewichtsfall.
41
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Natürlich gibt es keine Garantie, daß sich unter wechselseitigen Einfluß die
unterschiedlichen Einheiten stabilisieren, in der Praxis ist eine solche Stabilisierung
jedoch häufig.
2. Beschreibung des Wettbewerbs
Bisher wurde betrachtet: Die Netzeinwirkung ist konstant und die Aktivierung bewegt
sich zu einem festen, stabilen Wert. Bei "iac"-Prozessen werden jedoch durch jede
Eingabe zu einer Einheit auch andere Einheiten derselben Gruppe beeinflußt.
Stehen 2 Einheiten "a" und "b" im Wettbewerb zueinander und erhalten sie
verstärkende Reize von außen, dann kann u.U. die verstärkende Einwirkung auf "a"
(ea) größer sein als auf b (eb). Wie stark sich der hemmende Einfluß der einzelnen
Einheiten bemerkbar macht, beschreibt der Parameter 
neta  ea    ausgabeb
netb  eb    ausgabea
Sind die Aktivierungen positiv " ausgabei  ai ", dann ist neta  ea    ab bzw.
netb  eb    aa
Eine stärkere Aktivierung von a führt zur Abnahme der Netzeingabe bzgl. b, ein
"Phänomen, das Grossberg mit "die Reichen werden immer reicher" erklärt hat.
3. Resonanz
Falls 2 Einheiten "a" und "b" wechselseitig sich verstärkende Verbindungen haben,
dann können sie auch sich wechselseitig aktiv halten. Manchmal können
Resonanzeffekte so stark werden, daß sie Schwundeffekte überwinden.
Falls bspw. 2 Einheiten "a" und "b" wechselseitig Verbindungen der Stärke " 2decay "
besitzen, und die Aktivitäten jeweils vom Wert 0.5 sind, dann wird ohne
Berücksichtigung externer Eingaben die Veränderung der Aktivierung:
aa  (1  aa )  neta  decay  aa  (1  0.5)  2  decay  0.5  decay  0.5  0
So können "iac"-Netzwerke wechselseitig sich verstärkende Verbindungen zwischen
Einheiten nutzen, wenn ein diesbezüglicher Eingabestrom unterbleibt. Weiterhin
kann auf diese Weise der Aktivierungsprozeß Einheiten anregen, die nicht durch
äußere Eingabe angestoßen wurden.
4. Hysterese und Blockierungen
Die Aktivierung einer Einheit kann die Blockade anderer Einheiten bedeuten.
Behindern sich 2 Einheiten "a" und "b" wechselseitig, ist die Behinderungsstärke
bspw. "   2  decay " und die Aktivierung von "a" auf 0.5 gesetzt, dann ist die
Netzeinwirkung bezogen auf die Einheit "b":
netb  eb    ab  eb  decay
42
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wird anschließend die externe verstärkende Eingabe bzgl. "a" und "b" erhöht, bspw.
auf den Wert "decay", dann bleibt die Aktivierung von "a" (Wert: 0.5) erhalten und die
von "b" wird 0. Falls die Aktivierung von außen auf "b" erhalten bleibt, aber von "a"
zurückgezogen wird, wird schließlich auch "b" aktiviert. Das verzögerte Einsetzen der
Aktivierung wird als Hysterese bezeichenet.
5. Analyse des "iac"-Prozesses durch Grossberg
Verstärkende und hemmende Eingaben müssen getrennt behandelt werden.
Verstärkende Eingaben (ve) treiben die Aktivierung der Einheiten zum Maximum,
hemmende Eingaben (he) treiben die Aktivierung der Einheiten zum Minimum. Der
Faktor "decay" legt die Aktivierung auf ein Restniveau fest.
a  (max  a)  ve  (a  min )  he  decay(a  rest )
43
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.2.3 Implementierung des IAC-Modells
Die Implementierung ist in einem Pascal-Programm8 erfolgt
1. Parameter
Der Benutzer kann die Arbeitsweise durch eine Reihe von Paramtern steuern:
max (maximaler Aktivierungswert)
min (minimaler Aktivierungswert)
rest (verbleibender Aktivierungswert, den die Aktivierungen annehmen, falls externe
Eingaben ausbleiben)
decay (bestimmt die Stärke mit der der vebleibende Restwert der Aktivierung
berücksichtigt wird)
estr (bestimmt die Stärke der externen Eingabe. Damit wird der Einfluß der
externen Signale relativ zu den internen Eingaben bzgl. der Einheiten bemessen)
alpha (bestimmt die Stärke verstärkender Eingaben zu Einheiten von anderen
Einheiten des Netzwerks)
gamma (bestimmt die Stärke hemmender Eingaben zu Einheiten von anderen
Einheiten des Netzwerks)
Eine mögliche Initialisierung der Parameter ist:
const
Decay = 0.1;
Max
= 1.0;
Alpha = 0.1;
Min
= -0.2;
Gamma = 0.1; Estr
Rest = -0.1;
= 0.4;
2. Dynamische Aktivierung
In einer Folge von Arbeitsschritten (cycles) wird die Aktivierungszeit fortgeschrieben.
Jeder Zyklus beginnt mit dem Aktivierungswert der Einheiten, den sie im
vorangegangenen Zyklus erreicht haben. Danach werden die Aktivitäten der
Einheiten angepaßt Die Aktivierung erfolgt synchron.
Im Mittelpunkt der dynamischen Aktivierung steht folgende Bearbeitungsroutine:
type Vektor = array[1..Dim] of real;
Matrix = array[1..Dim,1..Dim] of real;
var
Aktivieren : Vektor;
Anregen
: Vektor;
8
44
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Hemmen
NetEing
ExtEing
Gewichte
:
:
:
:
Vektor;
Vektor;
Vektor;
Matrix;
procedure Zyklus;
var K : integer;
procedure BearbeiteNetz;
var I, J : integer;
begin
for I := 1 to Dim do
begin
Anregen[I] := 0; Hemmen[I] := 0;
for J := 1 to Dim do
begin
if Aktivieren[J] > 0 then
if Gewichte[I,J] > 0 then
Anregen[I] := Anregen[I] + (Gewichte[I,J] * Aktivieren[J])
else if Gewichte[I,J] < 0 then
Hemmen[I] := Hemmen[I] + (Gewichte[I,J] * Aktivieren[J])
else;
end;
NetEing[I] := Estr * ExtEing[I] + Alpha * Anregen[I]
+ Gamma * Hemmen[I];
end
end;
procedure AendereAktiv;
var I : integer;
begin
for I := 1 to Dim do
begin
if NetEing[I] > 0 then
Aktivieren[I] := Aktivieren[I] + ((Max - Aktivieren[I]) *
NetEing[I] - Decay * (Aktivieren[I] - Rest))
else Aktivieren[I] := Aktivieren[I] + ((Aktivieren[I] Min) * NetEing[I] - Decay * (Aktivieren[I] - Rest));
if (Aktivieren[I] > Max) then Aktivieren[I] := Max;
if (Aktivieren[I] < Min) then Aktivieren[I] := Min;
end
end;
begin (* Zyklus *)
for K := 1 to 100 do
begin
BearbeiteNetz;
AendereAktiv;
end;
end;
In der Prozedur Zyklus werden bei jedem Durchgang 2 Routinen aufgerufen:
BearbeiteNetz, AendereAktiv
BearbeiteNetz
berechnet die Netzeingabe für jede Einheit. Die Netzeingabe besteht aus der
- der externen Eingabe, bemessen mit dem Parameter estr
- den verstärkend wirkenden Eingaben anderer Einheiten, bemessen mit dem
Parameter alpha
- den hemmend wirkenden Eingaben von anderen Einheiten, bemessen durch den
Parameter gamma
45
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Ob eine Verbindung hemmend oder verstärkend wirkt, ist nur durch ihr Vorzeichen
bestimmt (Gewichte[I,J] > 0 bzw. Gewichte[I,J] < 0. Die Operationen werden nur
dann ausgeführt, falls die Aktivierung der sendenden Einheit größer als 0 ist.
AendereAktiv
inkrementiert die Aktivierung jeder Einheit.
Die sich nach Durchlaufen der Übergangsphase (hier 100 Zyklen) einstellende
Verteilung von Aktivierungen in den Neuronen des Netzes läßt sich als ein
optimierter Zustand auffassen. Aktivierung wird in dem Maße zu Neuronen fließen,
die hohe Verbindungsstärken zu anderen Neuronen haben. Geringe Aktivierung
fließt zu Neuronen mit kleinen Gewichtswerten. Die Aktivierung wird sich in einer
Weise verteilen, die den Randbedingungen (, gegeben durch die vorgegebenen
positiven und negativen Gewichtswerte,) am besten entspricht.
3. Arbeitsweise
Sollen bspw. die individuelle Eigenschaften, die einem Namen zugeordnet sind,
gefunden werden, dann ist der Name über eine externe Eingabe dem Netz
mitzuteilen. Das Netz schaltet dann über die Aktivierung des Namens zu der
Aktivierung der Instanzen bis zur Aktivierung der Eigenschaften dieser Instanzen
weiter.
46
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3 Klassifikatoren und Musterassoziatoren
2.3.1 Beschreibung
NN können sich, das haben die vorliegenden Beispiele gezeigt 9 , wie
inhaltsadressierte Speicher verhalten. Sie verallgemeinern die Antworten auf neue
Eingaben, falls sie zu den gespeicherten Informationen ähnlich sind. Zusätzlich
sollten NN aber wiederholt auftretende Muster erkennen und klassifizieren können.
Vor allem sollten NN lernfähig sein, so daß kognitive Prozesse auf Rechnern
umfassend simuliert werden können.
Musterassoziatoren sind in der Regel Netzwerke mit einer Eingabe- und einer
Ausgabeschicht. Die Aktivierung breitet sich von der Eingabeschicht zur
Ausgabeschicht aus (Feedforward-Verbindungen). Falls die Gewichtswerte dieser
Verbindungen richtig eingestellt sind, entsteht auf der Ausgabeseite beim Abruf
genau dasjenige Muster, das (in der Menge der Zielmuster) dem Eingabemuster
während der Lernphase zugeordnet wurde. Zwei Muster sind miteinander assoziiert,
wenn das Eingabemuster (input pattern) das Zielmuster (target pattern) hervorruft.
Mit dieser Vorstellung gehören vorwärtsgerichtete Neuronale Netze, z.B. die
Perzeptron-Netze
zu
Musterassoziatoren,
obwohl
sie
eindeutig
nur
Klassikationsaufgaben lösen.

Häufig sieht man assoziative Netze etwas anders. Durch sie soll ein Vektor x auf

einen Vektor y abgebildet bzw. assoziiert werden. Doch der Unterschied zu einem


stetigen Abbildungsgesetz besteht darin, dass auch die Umgebungen von x auf y

abgebildet bzw. assoziiert werden. Ein Vektor, der nahe genug an einem Vektor xi

liegt, soll ebenfalls mit dem Vektor yi assoziiert werden. Dieses Verhalten wird durch
ein Trainingsverhalten erreicht. In der Praxis spricht man dann davon, dass
verrauschte Muster mit der korrekten Ausgabe assoziiert werden, was bspw. im
Bereich der Bilderkennung wichtig ist.
Assoziative Netze werden in der Regel mit einer Schicht von Neuronen
implementiert, die, je nach Typ, eine rekursive Rückkopplung10 erlauben oder nicht.
Die Verbindungen zwischen den Eingabestellen und den Neuronen sind gewichtet.
Falls die Aktivierungsfunktion die Identität ist, heissen die Neuronen lineare
  
Assoziatoren. Der Ausgabevektor berechnet sich dann folgendermaßen: x W  y
Es gibt drei (nicht-disjunkte) Klassen von assoziativen Netzen:
xi1
yi1
heteroassoziative Netze
xin
yik
Abb.: Verknüpfung von m Eingabevektoren mit m Ausgabevektoren. Die Dimension der
Eingabevektoren muß dabei nicht der Dimension der Ausgabevektoren entsprechen. In
heteroassoziativen Netzen wird eine Matrix
 
XW  Y erfüllt
9
vgl. 2.2
vgl. 2.5
10
47

W gesucht, die folgende Gleichung erfüllt:
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
xi1
xi1
autoassoziative Netze
xin
yin

 

x1 , x2 ,..., x n werden mit sich selbst assoziiert. wird eine Matrix W gesucht, die
 
folgende Gleichung erfüllt: XW  X erfüllt.
Abb.: Die Vekoren
xi1
Mustererkennungsnetze11
i
xin
Abb.: Assoziation der Eingabevektoren
 

x1 , x2 ,..., x n mit den Skalaren 1, 2, ... , m
2.3.2 Grundlagen
Einige Assoziativspeicher verwenden binäre Vektoren. Sie haben in jeder
Komponente entweder eine 1 oder 0. Damit entsprechen die gespeicherten
Mustervektoren eines n-dimensionalen Neuronalen Netzes jeweils den Ecken eines
Hyperwürfels, also (0,0), (0,1), (1,0) und (1,1). Anstatt das Spektrum der Vektoren
auf den Bereich 0 und 1 begrenzen, werden sog. Bipolarvektoren verwendet, deren
einzelne Werte –1 oder 1 sein können. Beide Vektordarstellungen sind praktisch
zueinander äquivalent, da sich durch eine Skalierung und Transformation des
binären Eingaberaums der bipolare erzeugen lässt.
(1,1)
1,1)
(1,0)
(1,-1)
Abb.: Binäarvektoren und Bipolarvektoren.
Eine bipolare Darstellung hat den Vorteil, dass die Wahrscheinlichkeit, dass zwei
Vektoren orthogonal zueinander sind, größer ist als in der binären Darstellung.
Darüber hinaus kann als Aktivierungsfunktion für das Neuronale Netz in der Regel
die Vorzeichenfunktion sgn(x) mit Schwellenwert 0 verwendet werden.
 1 falls x  0 
sgn( x)  

 1 falls x  0
11
Mustererkennungsnetze sind eine besondere Untergruppe der heteroassoziativen Netze. Sie assoziieren

Eingabevektoren mit den Skalaren 1, 2, ... Hier sollen Vektoren, die in der Umgebung eines Vektors x i liegen,
korrekt benannt werden können.
48
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.2.1 Die Hebbsche Hypothese 12
Diese Regel dient zum Trainieren Neuronaler Netze und besagt: Falls zwei Einheiten
gleichzeitig aktiv sind, dann wächst die Stärke ihrer Verbindung. Am einfachsten
beschreibt das die folgende Formel:
(1)
wij    ai  a j
"   0 " bemißt die Größe des Lernschritts. Wird von Gewichten mit dem Wert 0
ausgegangen und baut sich das Netzwerk schrittweise auf, dann ist das Gewicht am
Ende einer Reihe von Lernschritten (indiziert durch l):
(2)
wij     ail  a jl
j
Aktivierungen können gesetzt werden durch:
1. Externe Eingaben
2. Interne Verbindungen innerhalb des Netzes
Im 2. Fall besteht häufig ein linearer Zusammenhang zwischen den verbundenen
Einheiten:
(3)
ai   a j  wij
j
Bsp.: Trainieren mit der Hebbschen Regel
1. Ein positiver Fall
1
0
2
Dieses NN soll aus Eingabemustern
Ausgabemuster erzeugen.
12
vgl. 1.2.3
49
nach
folgender
Zusammenstellung
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eingabe
0
1
1
-1
-1
Eingabe
1
1
-1
1
-1
Ausgabe
2
1
1
-1
-1
Nach der Hebbschen Regel (Gleichung 1) erhält w20 den Wert von  (Annahme:
  1. 0 ) zugeordnet, w21 dagegen wird reduziert auf den Wert 0. Eingabemuster 0
korreliert zum Ausgabemuster. Auf diese Weise können über die Hebbsche
Hypothese Assoziationen erlernt werden.13
2. Ein negativer Fall
0
1
2
3
4
Das NN soll aus Eingabemustern nach folgender Zusammenstellung ein
Ausgabemuster erzeugen:
Eingabe
0
1
1
1
1
1
-1
1
1
-1
2
1
1
1
-1
3
-1
1
-1
1
Ausgabe
4
1
1
-1
-1
3 der möglichen Verbindungen zwischen Eingabe- und Ausgabeschicht führen auf
den Wert 0 (keine Korrelation zwischen den Aktivitäten). Nur Einheit 2 hat zur
Ausgabeeinheit eine positive Korrelation.
Eine Lösung der vorliegenden Aufgabe kann durch die folgende Zuordnung von
Werten zu den Verbindungen erreicht werden:
0
1
-1
2
2
-1
3
1
4
13
vgl. 1.2.1
50
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.2.2 Die Hebbsche Hypothese in Musterassoziator-Modellen
2.3.2.2.1 Lernphase
Der Wert einer jeden Gewichtung im Musterassoziator ergibt sich für einen einzigen
Lernschritt zu
wij    i jl  oil
(7)

ijl..... Aktivierung der Eingabeeinheit j im Eingabemuster i l

oil.... Aktivierung der Ausgabeeinheit i im Ausgabemuster o il
2.3.2.2.2 Testphase

Ein Eingabemuster i t führt auf ein Ausgabemuster. Falls die Einheiten sich linear
verhalten, gilt
oit   wij  i jt
(8)
j
Mit (7) folgt:
oit     i jl  oil  i jt
(9)
j
(10)
oit    oil   i jl  i jt
j
Die Summe der Produkte korrespondierender Elemente zweier Vektoren ist das


Skalarprodukt. Im vorliegenden Fall drückt es die Ähnlichkeit der Muster i l und i t
aus.
Oft ist es nützlich, das Skalarprodukt zu normalisieren 14. Für Muster, die nur aus
Elementen mit Werten von "1" und "-1" bestehen, entspricht das normalisierte
Skalar-Produkt der Korrelation zwischen zwei Mustern. Das Produkt ist "1", falls die
Muster identisch sind; "-1", falls die Muster entgegengesetzt sind; "0", falls sich die
Muster unkorelliert verhalten.
Gleichung (10) kann dann so geschrieben werden:
 
(11)
oit  k  oil  (il  i t ) n
k  n   (n ist die Anzahl der Einheiten)


( i l  i t ) n ist das normalisierte Skalarprodukt.
Alle Elemente des Ausgabemusters werden dann erfaßt:

(12)
14



o t  k  o l  ( i l  it ) n
vgl. 1.2.4
51
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Gleichung (12) besagt: Das Ausgabemuster, das beim Test vom Netzwerk erzeugt
wird, ist das Produkt des während des Lernschritts gespeicherten Musters mit einem
Skalar.
Die Stärke des Modells ist proportional der Ähnlichkeit zwischen trainierten und
getesteten Mustern.
Falls k = 1 und das Testmuster identisch mit dem Trainingsmuster ist, ist die
Ausgabe beim Test identisch zur Ausgabe beim Lernen.
1. Präsentation mehrerer Muster während der Trainingsphase
Falls eine ganze Reihe von Mustern während der Lernphase auf das Netz
zukommen, bestimmen sich die Gewichte aus
(13)
wij     i jl  oil
l
und die Ausgabe, die von jedem Testmuster produziert wird, ist

(14)



o t  k   o l  ( i l  i t )n
l
2. Folgerungen
1. Ist das Testeingabemuster orthogonal zu all den Eingabemustern der
Trainingsphase, dann ist die Ausgabe des Netzwerks 0.
2. Falls ein Eingabemuster sich ähnlich zu einem der erlernten Eingabemuster
verhält, und unkorreliert zu allen anderen ist, dann entspricht die Ausgabe des
Tests der Ausgabe, die vom ähnlichen Eingabemuster während der Lernphase
ermittelt wurde. Die Stärke der Übereinstimmung bzgl. dieser Ausgabe richtet sich
nach dem Grad der Übereinstimmung der Eingabemuster.
3. Für andere Eingabemuster ist die Ausgabe ein Spiegel der Ausgabe bei der
Lernphase. Jedes Ausgabemuster ist die gewichtete Zusammenfassung
korrespondierender Eingabemuster der Test- bzw. Trainingsphase. Falls die
Eingabemuster, die während des Trainings benutzt wurden, keine orthogonale
Menge bilden, ist es allgemein nicht möglich, Störungen (Übersprechen) zu
vermeiden
2.3.2.2.3 Beispiele
2.3.2.2.3.1 Beispiel 1
1. Aufgabenstellung
Gegeben sind folgende Musterpaare
a. Eingabemuster: (1,-1,1,-1,1,1,-1-1)
52
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zu erlernendes Muster: (1,1,-1,-1,1,1,-1,-1)
b. Eingabemuster: (1,1,-1,-1,1,-1,1,-1)
Zu erlernendes Muster: (1,1,1,1,-1,-1,-1,-1)
c. Eingabemuster: (1,-1,-1,1,1,1,1,1)
Zu erlernendes Muster: (1,-1,-1,1,1,-1,-1,1)
2. Lernphase
Berechnung der Gewichtsänderungen wij    oi  i j unter der Annahme   0.125 .
1. Schritt (Muster (a))
0.125
0.125
-0.125
-0.125
...
...
...
...
-0.125
-0.125
0.125
0.125
...
...
...
...
0.125
0.125
-0125
-0.125
...
...
...
...
-0.125
-0.125
0.125
0.125
...
...
...
...
0.125
0.125
-0.125
-0.125
...
...
...
...
0.125
0.125
-0.125
-0.125
...
..
...
...
-0.125
-0.125
0.125
0.125
...
...
...
...
-0.125
-0.125
0.125
0.125
...
...
...
...
0
0
-0.25
-0.25
0.25
0.25
0
0
-0.25
-0.25
0
0
0
0
0.25
0.25
0.25
0.25
0
0
0
0
-0.25
-0.25
0
0
-0.25
-0.25
0.25
0.25
0
0
0
0
0.25
0.25
-0.25
-0.25
0
0
-0.25
-0.25
0
0
0
0
0.25
0.25
-0.125
0.125
-0.125
-0.375
0.125
0.375
0.125
-0.125
-0.125
-0.375
-0.125
0.125
0.125
-0.125
0.125
0.375
0.375
0.125
-0.125
0.125
0.125
-0.125
-0.375
-0.125
0.125
-0.125
-0.375
-0.125
0.375
0.125
-0.125
0.125
0.125
-0.125
0.125
0.375
-0.125
-0.375
-0.125
0.125
-0.125
-0.375
-0.125
0.125
0.125
0.125
0.125
0.375
2. Schritt (Muster (b))
0.25
0.25
0
0
0
0
-0.25
-0.25
0
0
0.25
0.25
-0.25
-0.25
0
0
3. Schritt (Muster (c))
0.375
0.125
-0.125
0.125
0.125
-0.125
-0.375
-0.125
-0.125
0.125
0.375
0.125
-0.375
-0.125
0.125
-0.125
3. Trainingsphase


 
Nach Gleichung (14) ist o  k   ol  ( il  it ) n
l
Diese Formel zeigt: In allen 3 Fällen muß das Netzwerk das erlernte Zielmuster
richtig reproduzieren, da die 3 Eingabevektoren zueinander orthogonal sind.
Das führt zu dem folgenden Ergebnis:
1. Der Aufruf von Eingabemuster (a) führt auf die gewünschte Ausgabe des
zugeordneten Ziels
53
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Der Aufruf von Eingabemuster (b) führt auf die gewünschte Ausgabe des
zugeordneten Ziels
3. Der Aufruf von Eingabemuster (c) führt auf die gewünschte Ausgabe des
zugeordneten Ziels
Begründung
Eingabemuster (c) (1,-1,-1,1,1,1,1,1)


Gleichung (11) ist bestimmt durch die Berechnung des Skalarprodukts: ( i l  i t ) n

1
 (1, 1, 1,1,1,1,1,1)
8

1
i l1 
 (1, 1,1, 1,1,1, 1, 1)
8
it 


i t  i l1  0

i l2 
1
 (1,1, 1, 1,1, 1,1, 1)
8
.......
2.3.2.2.3.2 Beispiel 2
1. Aufgabenstellung
Gegeben sind folgende Musterpaare
a. Eingabemuster: (1,-1,1,-1,1,1,-1-1)
Zu erlernendes Muster: (1,1,-1,-1,1,1,-1,-1)
b. Eingabemuster: (1,1,-1,-1,1,-1,1,-1)
Zu erlernendes Muster: (1,1,1,1,-1,-1,-1,-1)
c. Eingabemuster: (1,-1,1,-1,1,1,1,1)
Zu erlernendes Muster: (1,-1,-1,1,1,-1,-1,1)
2. Lernphase
Berechnung der Gewichtsänderungen wij    oi  i j unter der Annahme   0.125 .
1. Schritt (Muster (a))
0.125
0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
0.125
0.125
0.125
-0125
-0.125
0.125
-0.125
-0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
0.125
0.125
0.125
-0.125
-0.125
0.125
0.125
-0.125
54
0.125
0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
0.125
-0.125
-0.125
0.125
0.125
-0.125
-0.125
0.125
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
-0.125
0.125
-0.125
0.125
-0.125
-0.125
0.125
0.125
0
0
-0.25
-0.25
0.25
0.25
0
0
-0.25
-0.25
0
0
0
0
0.25
0.25
0.25
0.25
0
0
0
0
-0.25
-0.25
0
0
-0.25
-0.25
0.25
0.25
0
0
0
0
0.25
0.25
-0.25
-0.25
0
0
-0.25
-0.25
0
0
0
0
0.25
0.25
0.125
-0.125
-0.375
-0.125
0.375
0.125
-0.125
0.125
-0.375
-0.125
0.125
-0.125
-0.125
0.125
0.375
0.125
0.375
0.125
-0.125
0.125
0.125
-0.125
-0.375
-0.125
0.125
-0.125
-0.375
-0.125
0.375
0.125
-0.125
0.125
0.125
-0.125
0.125
0.375
-0.125
-0.375
-0.125
0.125
-0.125
-0.375
-0.125
0.125
0.125
-0.125
0.125
0.375
2. Schritt (Muster (b))
0.25
0.25
0
0
0
0
-0.25
-0.25
0
0
0.25
0.25
-0.25
-0.25
0
0
3. Schritt (Muster (c))
0.375
0.125
-0.125
0.125
0.125
-0.125
-0.375
-0.125
-0.125
0.125
0.375
0.125
-0.375
-0.125
0.125
-0.125
3. Trainingsphase


 
Nach Gleichung (14) ist o  k   ol  ( il  it ) n
l
Das führt zu dem folgenden Ergebnis:
Abruf Muster (a)






Mit dem Eingabemuster zu (a) ist das Skalarprodukt ( i l  i t ) n 1
Mit dem Eingabemuster zu (b) ist das Skalarprodukt ( i l  i t ) n 0
Mit dem Eingabemuster zu (c) ist das Skalarprodukt ( i l  i t ) n 1/2
Berücksichtigt werden muß demnach:
Der Ausgabevektor zu (a) (1,1,-1,-1,1,1,-1,-1) mit dem Faktor 1
Der Ausgabevektor zu (c) (1,-1,-1,1,1,-1,-1,1) mit dem Faktor 0.5
Die Summe der beiden Produkte führt auf den neuen Ausgabevektor (1.5,0.5,-1.5,0.5,1.5,0.5-1.5,-0.5)
Abruf Muster (b)






Mit dem Eingabemuster zu (a) ist das Skalarprodukt ( i l  i t ) n 0
Mit dem Eingabemuster zu (b) ist das Skalarprodukt ( i l  i t ) n 1
Mit dem Eingabemuster zu (c) ist das Skalarprodukt ( i l  i t ) n 0
d.h.: Muster (b) ist orthogonal zu Muster (a) bzw. Muster (c).
55
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.2.3 Delta-Regel 15
wij     i  a j
(4)
i  ti  ai
Aus der Differenz von gewünschtem und erzieltem Ausgabeverhalten berechnet man
einen Fehlerkorrekturwert, das sog. Delta und ändert die Gewichte in Abhängigkeit
von diesem Fehlerkorrekturwert.
Bsp.:
0
1
2
3
4
Das NN soll aus Eingabemustern nach folgender Zusammenstellung
Eingabemuster erzeugen.
Muster
Eingabe
0 1 2 3
1 -1 1 -1
1 1 1 1
1 1 1 -1
1 -1 -1 1
0
1
2
3
ein
Ausgabe
4
1
1
-1
-1
Nach der Delta-Regel sind die Gewichte der Verbindungen zwischen den Einheiten
der Ein- und Ausgabeschicht zuzuordnen. Die Gewichte sind mit 0 initialisiert, die
Lernrate  hat den Wert 0.25.
Zuerst wird Muster 0 betrachtet. Das führt auf den Ausgabewert 0. Zum
vorgegebenem Ziel ergibt sich die Differenz 1, d.h. Änderungen der Gewichte sind
proportional zu den Aktivierungen der Eingabeeinheiten. Das führt zur folgenden
Tabellenzeile für Muster 0.
Muster
0
Eingabe
Ziel
1 -1 1 -1
1
Ausgabe
0.0
Fehler
wij
wij
1.0
0.25 -0.25 0.25 -0.25
0.25 -0.25 0.25 -0.25
Im vorliegenden Fall entsprechen die den neuen Werten für die Gewichte. Sie
werden mit dem nächsten Eingabemuster (1 1 1 1) paarweise multipliziert, die
einzelen Resultate werden anschließend aufsummiert. Das ergibt einen
Ausgabewert von 0, die Differenz zum Ziel ist wieder 1. Den weiteren Verlauf der
Rechnung dokumentiert die folgende Tabelle:
Schritt 0
15
vgl. 1.2.3
56
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Muster
0
1
2
3
Eingabe
0 1 2 3
1 -1 1 -1
1 1 1 1
1 1 1 -1
1 -1 -1 1
Ziel
1
1
-1
-1
Ausgabe
0.00
0.00
1.00
1.00
Fehler
wij
1.00
1.00
-2.00
-2.00
0.25 -0.25
0.25 0.25
-0.5 -0.5
-0.5 0.5
wij
025 -0.25
0.25 0.25
-0.5 0.5
0.5 -0.5
0.25 -0.25
0.5 0
0.0 -0.5
-0.5 0.0
0.25 -0.25
0.5 0
0.0 0.5
0.5 0.0
Ein Maß für die erzielte Annäherung an eine perfekte Lösung (, die im ersten Schritt
natürlich nicht erreicht wurde,) ist die Summe der Quadrate der Einzelfehler (totale
Summe der Quadrate).
TSQ = 10
Dieser Wert erniedrigt sich nach jedem Schritt.
Nach etwa 20 Schritten (Trainings-Epochen) wird TSQ = 0.00. Das Ergebnis nähert
sich damit der perfekten Lösung.
Die Delta-Regel ist bei weitem mächtiger als die Hebbsche Hypothese. Tatsächlich
kann nachgewiesen werden: Diese Regel bestimmt Gewichte so, daß
der
Fehlerkorrekturwert beliebig nahe an 0 gebracht werden kann. Solch eine Menge
von Gewichten existiert für jedes Paar aus Eingabemuster und Ziel, falls das Ziel aus
einer gewichteten Summe (lineare Kombination) der Eingabemuster bestimmt
werden kann. In diesem Fall muß die Menge der Gewichte der Bedingung
tip   wij  a jp
j
für alle Ausgabeeinheiten der Muster p genügen 16.
2.3.2.4 Die Delta-Regel in Musterassoziator-Modellen
1. Lernphase
(15)
wij    ( til  oil )  i jl
Im Rahmen einer Reihe von Lernschritten (indiziert durch l) kann geschrieben
werden:
(16)
wij     ( til  oil )  i jl
l

Im Fall der Orthogonalität ist o l  0 und dann reduziert sich die Formel auf:
(17)
wij     til  i jl
l
In diesem Fall produziert die Delta Regel die gleichen Ergebnisse wie die Hebbsche
Hypothese (Gleichung (13)). Solange sich die Muster orthogonal verhalten, gibt es
kein "Übersprechen".
16
vgl. 1.2.4, lineare Unabhängigkeit
57
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Trainingsphase
Die während der Testphase resultierenden Änderungen im Ausgabevektor der
Einheiten i sind bestimmt durch
oit  wij  i jt    ( til  oil )  i jl  i jt




Das kann man auch so schreiben:  o t  k  fehler l  ( i l  i t ) n
Folgerungen:
1. Ist die Eingabe beim Lesen gleich der Eingabe beim Test, dann ist das
normalisierte Skalarprodukt 1. Ist k auch 1.0, dann ist die Änderung der Ausgabe
exakt gleich dem Fehlermuster.




2. Ist i t verschieden zu i l (, allerdings nicht so verschieden, daß ( i l  i t ) n 1 oder 0

ist), dann wird die durch i t erzeugte Ausgabe vom Lernversuch beeinflußt. Die


Stärke der Beeinflußung ist proportional zu ( i l  i t ) n .
3. Lineare Unabhängigkeit

Ein bestimmtes Ausgabemuster o p kann in Beziehung gesetzt werden zu einem

speziellen Eingabemuster i
p
, ohne daß es zu ruinösen Störungen zwischen

anderen Eingabe/Ausgabe-Paaren kommt, falls i p nicht Linearkombination anderer
Eingabemuster ist. Ein solches Muster heißt linear unabhängig von anderen
Mustern. Sind allle Elemente einer Menge von Mustern linear unabhängig, dann
spricht man auch von einer Menge linear unabhängiger Elemente.
2.3.3 Implementierung17
1. Aktivierung der Ausgabeeinheiten
Jeder Musterassoziator besteht aus einer Reihe von Ein- und Ausgabeeinheiten. Die
Einwirkung der Eingabeinheiten j auf eine spezielle Ausgabeeinheit i kann so
beschrieben werden:
neti   wij  a j  biasi
j
17
Die Implementierung ist in einem Pascal-Programmerfolgt.
58
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Aus der Netzeinwirkung wird die Aktivierung jeder Ausgabeeinheit über die
Aktivierungsfunktion bestimmt. Im vorliegenden Fall verhält sich die Aktivierung
linear zur Netzeinwirkung (Aktivierung = Netzeinwirkung)
2. Vereinbarungen
Verbindungen bestehen von den Eingabeeinheiten zu den Ausgabeeinheiten. Zu
Beginn sind diese Verbindungen mit dem Gewichtswert 0 initialisiert. Die für das
Netzwerk charakteristischen Werte sind:
const
AnzEingEinh = 8;
AnzAusgEinh = 8;
LRate
= 0.125;
type
Matrix
Vektor
EinVektor
AusVektor
=
=
=
=
array[1..AnzEingEinh,1..AnzAusgEinh] of real;
array[1..AnzAusgEinh] of real;
array[1..AnzEingEinh] of integer;
array[1..AnzAusgEinh] of integer;
var
W
: Matrix;
Schwellwerte : Vektor;
Eingabe : EinVektor;
Ausgabe : Vektor;
Fehler
: Vektor;
Ziel
: AusVektor;
NetzEing : Vektor;
MSQ, VKOR, NVL, NSP,
Hebb
:
AnzSchritte
:
Fehlerschrittweite :
TSQ : real;
boolean;
integer;
real;
3. Initialisieren
Die Prozedur Initialisieren
Netzparameter:
übernimmt
das
Setzen
der
procedure Initialisieren;
var I, J : integer;
begin
TSQ := 0; MSQ := 0; NSP := 0; VKOR := 0; NVL := 0;
for I := 1 to AnzEingEinh do
for J := 1 to AnzAusgEinh do W[I,J] := 0.0;
for I := 1 to AnzAusgEinh do
begin
Schwellwerte[I] := 0.0; NetzEing[I]
:= 0.0;
Ausgabe[I]
:= 0.0; Fehler[I]
:= 0.0;
end;
for I := 1 to AnzEingEinh do Eingabe[I] := 0;
for I := 1 to AnzAusgEinh do Ziel[I]
:= 0;
end;
59
Anfangswerte
der
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Trainieren
Die Prozedur Trainieren wird zum Erlernen der ausgewählten Muster eine Anzahl
von Epochen (AnzSchritte) ausgeführt. Falls die Meßgröße TSQ eine vorgegebene
Schranke (Fehlerschrittweite) unterschreitet, ist das Testziel erreicht.
procedure Trainieren;
var L : integer;
begin;
for L := 1 to AnzSchritte do
begin
TSQ := 0.0;
Versuch; AendereGewichte;
if TSQ < Fehlerschrittweite then exit;
end;
end;
Trainieren ruft die Prozeduren "Versuch" und "AendereGewichte" auf.
procedure Versuch;
var K : integer;
procedure SetzeMuster;
var I : integer;
begin
for I := 1 to AnzAusgEinh do Ausgabe[I] := Eingabe[I];
end;
procedure BerechneAusgabe;
var I, J : integer;
begin
for I := 1 to AnzAusgEinh do
begin
NetzEing[I] := Schwellwerte[I];
for J := 1 to AnzEingEinh do
begin
NetzEing[I] := NetzEing[I] + Eingabe[J] * W[I,J];
end;
Ausgabe[I] := NetzEing[I];
(* Aktivierungsfunktion *)
end;
end;
procedure BerechneFehler;
var I : integer;
begin
for I := 1 to AnzAusgEinh do Fehler[I] := Ziel[I] - Ausgabe[I];
end;
procedure SumStatistik;
begin
MSQ := SummeQuadrate(Ziel,Ausgabe,AnzAusgEinh);
VKOR := VekKor(Ziel,Ausgabe,AnzAusgEinh);
NVL := VekLaenge(Ausgabe,AnzAusgEinh);
NSP := SkalarProdukt(Ziel,Ausgabe,AnzAusgEinh);
TSQ := TSQ + MSQ;
end;
begin
SetzeMuster;
BerechneAusgabe;
BerechneFehler;
SumStatistik;
end;
Die Prozedur "SumStatistik" ermittelt Meßgrößen zur Beurteilung der Performance.
60
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Diese Meßgrößen sind:
- das normalisierte Skalarprodukt NSP
function Skalarprodukt(V1 : AusVektor; V2 : Vektor; L : integer) : real;
var I : integer;
SP : real;
begin
SP := 0.0;
if L = 0 then SkalarProdukt := 0.0
else begin
for I := 1 to L do SP := SP + V1[I] * V2[I];
SkalarProdukt := SP / L;
end;
end;
- die normalisierte Vektorlänge NVL (bestimmt den Betrag des normalisierten
Ausgabevektors)
function VekLaenge(V : Vektor; L : integer) : real;
var I : integer;
VL : real;
begin
VL := 0.0;
if L = 0 then VekLaenge := 0.0
else begin
for I := 1 to L do VL := VL + (V[I] * V[I] / L);
VekLaenge := sqrt(VL);
end;
end;
- Die Vektorkorrelation VKOR
Sie bemißt die Ähnlichkeit von Vektoren (unabhängig von der Länge). Ihr Wert ist
-- "1.0" für Vekoren, die perfekt korrelieren
-- "0.0" für orthogonale Vektoren
-- "-1.0" für Vektoren, die sich antikorreliert verhalten.
function VekKor(V1 : AusVektor; V2 : Vektor; L : integer) : real;
var I
: integer;
DP, L1, L2 : real;
begin
DP := 0.0; L1 := 0.0; L2 := 0.0;
for I := 1 to L do
begin
DP := DP + V1[I] * V2[I]; L1 := L1 + V1[I] * V1[I];
L2 := L2 + V2[I] * V2[I];
end;
if (L1 = 0.0) or (L2 = 0.0) then VekKor := 0.0
else VekKor := DP / (sqrt(L1*L2));
end;
Falls sich das Zielmuster aus +1 und -1 zusammensetzt, besteht folgender
Zusammenhang:
NSP = NVL + VKOR
61
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zusätzlich zu diesen Meßgrößen werden berechnet: MSQ und TSQ. "MSQ" ist die
Summe aller zum Quadrat erhobenen Fehler, die bei den Ausgabeeinheiten
festgestellt wurden. Der Fehler bzgl. der Ausgabeeinheiten ist die Differenz zwischen
vorgegebenem Ziel und der tatsächlich erhaltenen Aktivierung.
function SummeQuadrate(V1 : AusVektor; V2 : Vektor; L : integer) : real;
var I : integer;
SS : real;
begin
SS := 0;
for I := 1 to L do
SS := SS + ((V1[I] - V2[I]) * (V1[I] - V2[I]));
SummeQuadrate := SS;
end;
"TSQ" ist die Summe aller MSQ-Werte, die während der Trainingsphase für jedes
Muster errechnt wurden
Über die Prozedur "AendereGewichte" wird die Anpassung der Gewichtswerte
während der Lernphase vollzogen:
procedure AendereGewichte;
var I, J : integer;
begin
if Hebb then
for I := 1 to AnzAusgEinh do
begin
Ausgabe[I] := Ziel[I];
for J := 1 to AnzEingEinh do
W[I,J] := W[I,J] + LRate * Ausgabe[I] * Eingabe[J];
Schwellwerte[I] := Schwellwerte[I] + 0.0 * Ziel[I];
end
else
for I := 1 to AnzAusgEinh do
begin
for J := 1 to AnzEingEinh do
W[I,J] := W[I,J] + LRate * Fehler[I] * Eingabe[J];
Schwellwerte[I] := Schwellwerte[I] + 0.0 * Fehler[I];
end;
end;
62
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.4 Das Perzeptron
Das Perzeptron-Modell wurde 1958 von Frank Rosenblatt entwickelt. Das Modell
kann die Klassifikation von Mustern erlernen.
2.3.4.1 Biologische Grundlagen
Das Perzeptron ist die Nachbildung eines biologischen Neurons 18.
2.3.4.2 Funktionsweise
Aus den Kentnissen über das biologische Neuron kann man ein mathematisches
Modell für das Perzeptron ableiten. So ist die Ausgabe "o" bestimmt durch
N
1, falls net   wi  ii> 
i 1
o={
0, anderenfalls
Zur vereinfachten Darstellung der Perzeptrone kann die Schwelle  auf Null normiert
werden. Hierfür wird ein zusätzlicher Eingang, an dem immer eine Eins anliegt
erstellt, erstellt und dessen Gewicht auf das Negative des ursprünglichen
Schwellenwerts gesetzt werden. Man spricht dann von einem (so genannten) Bias.
i1
i2
iN
.....
o
Abb.2.3-1: Einschichtiges Perzeptron
Jede Eingangsinformation wird mit dem zugehörigen Gewicht multipliziert, das den
unterschiedlichen Übertragungswiderstand der Synapsen simuliert. Nach der
Summenbildung aller Eingangswerte entscheidet die Aktivierungsfunktion F über die
18
vgl. 1.1.1, Aufbau einer Nervenzelle
63
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Höhe des Ausgangssignals, das zu den angeschlossenen Neuronen übertragen
werden soll.
2.3.4.3 Lernen mit der Delta-Regel
Das Perzeptron setzt sich aus Gewichten der Verbindungen, dem Addierer und aus
einen einstellbaren Schwellwert (Bias) zusammen. Lernen bedeutet: Ändern der
Gewichte und Einstellen des Schwellwerts (Bias). Häufig wird der Schwellwert
(Bias)19 über ein peripheres Gewicht (w0) berücksichtigt.
Falls bei einem Muster p und einer Einheit i die Differenz zwischen Zielwert t ip und
korrespondierendem Ausgabewert oip vom Wert 0 ist, ist das Lernziel erreicht.
Andernfalls werden Schwellwert und Verbindungsgewichte wij angepaßt.
Das Training des Schwellwerts läßt sich durch folgende Formel beschreiben:
Biasi  Biasi    ( tip  oip )
Das Training der Gewichte erfolgt über die Formel:
wij  wij    ( tip  oip )
Ein Perzeptron berechnet 0 oder 1 aus den vorliegenden Eingaben. Mehrere
berechnen komplexe Funktionen.
i1
i2
.......
iN
1
Abb.2.3-2: Perzeptron mit N Eingangssignalen und drei Ausgangssignalen
Da jedes Perzeptron unabhängig ist, können sie getrennt trainiert werden.
Die Schwelle  kann so auf Null normiert werden. Es wird, wie bereits angegeben, ein zusätzliche Eingang,
an dem immer eine Eins anliegt, erstellt und dessen Genauigkeit auf das Negative des ursprünglichen
Schwellenwerts gesetzt.
19
64
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.4.4 Lineare Trennbarkeit
i2
i1
Abb. 2.3-3: Lineare Trennnbarkeit zur Mustererkennung
Gegeben sind die Ausprägungen von 2 Eingabemustern. Das Perzeptron soll 1
ausgeben, falls es die Eingabe zu den weißen Punkten zuordnet bzw. 0, falls es die
Eingabe zu den schwarzen Punkten zuordnet.
net  w0  w1  i1  w2  i2
1, falls net > 0
o={
0, falls net < 0
w
w
i2   1  i1  0
w2
w2
Die Gleichung trennt die beiden Muster (Trennfläche). Im Fall umfangreicher
Eingaben, erweitert sich die Trennfläche zur Hyperfläche:
N
 w i
i
i
0
i 1
Funktionen, für die eine solche Hyperfläche existiert, werden "linear trennbar"
genannt. Das Problem des Lernens reduziert sich damit auf das Problem, eine
solche Trennfläche zu finden.
Lineare Trennbarkeit bedeutet also: Zwei Mengen P und N von Punkten in einem
n-dimensionalen Eingaberaum sind linear trennbar, falls n+1 reelle Zahlen  , w1, w2,
n

... ,wn existieren, so dass für jeden Punkt x  P gilt:  wi xi   und für jeden Punkt
i 1

x  N gilt:
n
w x
i 1
i
i
 .
65
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Trennfunktion
entspricht
einer
Geradengleichung:
w1 x1  w2 x2  
w

x2 
 1 x1 . Die Trenngerade steht senkrecht zum Gewichsvektor.
w2 w2
Die
x2

w
h (Projektion von


x auf w

x
d
x1
Abb.: Der Vektor der Trenngeraden ist mit
x 2  0  x1 

w1
und
x1  0  x 2 

w2
:
  

   0  
      w1 
 w1        
 0
   w2    w 
2 

 
 


Das Skalarprodukt des Vektors w mit der Trenngeraden ist  w1   w2  0 . w
 w1 
 w2 
ist immer die Normale zur Hyperebene. Für einen beliebigen Punkt auf der
   

Trennfläche gilt (h=d):   wT  x  w x cos  und d 
.
w
Die lineare Trennfunktion ist die (n-1)-dimensionale Hyperebene des ndimensionalen
Eingaberaums.
Eine
Perzeptron-Definition
mit
spezieller
Eingabekomponente x 0 und Gewicht w0   bedeutet, dass die Trennfunktion
 
durch wT  x  0 gegeben ist. Diese geht wegen d  0 durch den Ursprung des um
eine Dimension erhöhten Eingaberaums.
Für das XOR-Problem (vgl. Wertetafel) existiert bspw. keine derartige Trennfäche
(Gerade).
Eingabe
0
0
1
1
Eingabe
0
1
0
1
Ausgabe
0
1
1
0
Die folgende 4 Ungleichungen
0  w1  0  w2  
0  w1  1 w2  
1 w1  0  w2  
1 w1  1 w2  
66
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
zeigen: w1 und w2 können allein für sich allein betrachtet nicht größer sein als ihre
Summe, d.h. Das XOR-Problem ist mit einem Perzeptron nicht lösbar. Das zeigt die
folgende grafische Darstellung:
i2
(1,1)
1
1
0
0
1
1
i1
AND und OR sind dagegen lösbar:
i2
i2
(1,1)
(1,1)
1
1
0
1
1
1
0
0
0
1
1
1
i1
i1
Abb. 2.3-4: Lineare Trennbarkeit logischer Funktionen
Auch das folgende Problem ist lösbar:
Eingabe
0
0
1
1
Eingabe
0
1
0
1
Eingabe
0
0
0
1
Ausgabe
0
1
1
0
Die ersten beiden Spalten entsprechen der Eingabe beim XOR, die 3. Spalte umfaßt
eine logisches UND der Eingabe zum XOR.
67
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(1,1,1)
0
(0,1,0)
0
1
(1,0,0)
(0,0,0)
Abb. 2.3-5: Schwellenwertebene für das XOR-Problem:
Die Überführung des zweidimensionalen in ein dreidimensionales Problem zeigt
einen Lösungsweg für das XOR-Problem. Allerdings ist ein 3. Eingabeelement (in
einer zusätzlichen verborgenen Schicht) erforderlich.
i1
w1
i2
i3
w2
w3
o
Abb. 2.3-6: Einfaches XOR-Netzwerk mit einem verdeckten Element
Die zusätzliche (verborgene) Schicht empfängt keine externe Eingaben. Sie muß
aber trainiert werden, d.h.: Es muß extra dafür eine Lernprozedur geben. Lange hat
man geglaubt: Eine solche Prozedur gibt es nicht. Eine Verallgemeinerung der DeltaRegel20 zeigt jedoch eine Lösung des Problems.
20
vgl. 2.5
68
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.4.5 Applet: Perzeptron-Netz zur Rekodierung von Zahlen
1. Aufgabenstellung
Ein binär angegebener Wert einer Zahl ist in die entsprechende dezimale Form
umzuwandeln. Der dezimale Wert erhält soviele Einsen in aufsteigender Folge
zugeordnet, wie es dem binären Wert entspricht. Die Eingabe einer Zahl von 0..9,
z.B. 8 führt zur Ausgabe von: 1 1 1 1 1 1 1 1 0.
Ein binär angegebener Wert einer Zahl ist in die entsprechende dezimale Form
umzuwandeln. Der dezimale Wert erhält soviele Einsen in aufsteigender Folge
zugeordnet, wie es dem binären Wert entspricht.
2. Lösungsvorschlag
Es werden 4 Neuronen in der Eingabeschicht zur Aufnahme der Binärzahlen und 9
Neuronen der Ausgabeschicht zur Ausgabe der Dezimalzahlen benötigt. Aus der
Aufgabenstellung ergeben sich folgende Trainingsmusterpaare:
Zahl
0
1
2
3
4
5
6
7
8
9
Eingabe
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Ziel
000000000
100000000
110000000
111000000
111100000
111110000
111111000
111111100
111111110
111111111
3. Das Applet
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/fi2/Perz.html
69
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.4.6 Adaline und Madaline
2.3.4.6.1 Adaline-Modell
1. Grundlagen
Das ADALINE21-Modell wurde zwischen 1956 und 1960 von B. Widrow und M. Hoff
entwickelt. Es ist ein einschichtiges "feedforward"-Netz mit binären
Schwellwertelementen. Die Elemente können in Abhängigkeit vom summierten
Input, den Output +1 oder -1 haben (Signumfunktion). Das Netzwerk umfaßt 2
Schichten: Eingabe- und Adaline-Schicht:
......
1
Eingabeschicht
Adalineschicht
Abb. 2.3-6: Topologie des Adaline-Netzes
Das Adaline war in Hardware mit physikalischen Schaltern, Potentiometern und
analogen Messgeräten implementiert, also ein Analogrechner:
Eingaben
w2
x2
w1

y
x1
w0
Sprungfunktion
x0
(Zusatz zum Perzeptron)
Lernalgorithmus
Desired Output
Abb.: Analogrechner "Adaline"
Die Stärke des Adaline gegenüber einem Perzeptron-Neuron ist es, dass schon vor
der Sprungfunktion das Signal abgefangen wird und somit ein besseres Einstellen
der Gewichte möglich ist. Die Ausgabe nach der Sprungfunktion wird zum Setzen
eines Flag benutzt, ob das Adaline lernen soll oder nicht, u.U auch mit der
Hebbschen Regel ( wi    xi  y )
21
Adaptive Linear Neuron
70
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Delta-Regel
i  ti  ai
Die Berechnung des Fehlersignals benutzt nicht den tatsächlichen Output oi sondern
die Aktivität ai
Die Anpassung der Gewichte erfolgt dann nach folgendem Gesetz:

wij (t  1)  wij (t )   i  o j
n
 : Lernrate (>0)
n: Zahl der Eingänge (d.h. Gewichte) der Einheit i
Jedes Adaline-Element lernt solange bis seine Aktivität den Wert der gewünschten
Ausgabe hat.
Man kann beweisen, daß die Delta-Regel bei linearer Transferfunktion die Summe
der Fehlerquadrate  i2 minimiert.
3. Berechnung des Adaline-Netzwerks
Lineare Trennbarkeit ist die Voraussetzung für die Konvergenz zur Lösung.
Eingaben
Gewichte
(+)
Schwellenwertfunktion
Abb. 2.3-7: Das Adaline-Element
Jedes Element i muß folgende Gleichung lösen:
w0  BIAS  w1  i1  w2  i2 ...  wn  in  oi
Das Gleichungssystem ist für n linear unabhängige Eingabevektoren (Muster) lösbar.
Die Delta-Regel garantiert das Auffinden einer Lösung. Für mehr als n Muster
entsteht ein überbestimmtes lineares Gleichungssystem. Für ein solches System
kann ein Adaline-Element (Voraussetzung: lineare Trennbarkeit) eine
Näherungslösung durch Minimierung der Summe der Fehlerquadrate finden. Die
Konvergenz gelingt allerdings nur, falls die Lernrate deutlich kleiner als (z.B. 0.2)
gehalten wird.
71
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Konvergenz des Lernverfahrens
Man kann zeigen, daß die folgende Funktion (Summe aller Fehlerquadrate über die
Testmuster 1..p)
E
1
   ( tip  ai ) 2
2 p i
bei jedem Lernschritt kleiner wird und im Grenzwert gegen 0 konvergiert.
5. Applet: Musterassoziator mit einem Adaline-Netzwerk
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/fi-ad/addemo.html
2.3.4.6.2 Madaline-Modell
1. Netzstruktur
Das Modell entsteht aus einem Adaline-Netz durch Hinzufügen eines weiteren
Ausgabeelements:
Eingabeschicht "j"
Adaline-Prozessorelemente "i"
Madalineschicht (Ausgabe) "h"
Abb. 2.3-8: Topologie des Madaline-Netzes
Die obere Ebene ist die eines Adaline-Netzes mit Gewichten wij und einem evtl Bias.
In der nachfolgenden Ebene gibt es von jedem (versteckten Knoten) genau einen
Weg mit Gewicht 1 zum Ausgabeelement. Hier gibt es kein "Bias".
72
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Lernen im Madaline-Netzwerk
Die sich verändernden (lernenden) Gewichte sind die Gewichte der AdalineElemente. Die Veränderung der Gewichte folgt nach der gleichen Formel wie beim
Adaline-Netzwerk. Gelernt wird nur dann, wenn ein Madaline-Element nicht die
gewünschte Ausgabe hat. Für jedes falsch klassifizierte Madaline-Element werden
die Gewichte des zu ihm führenden Adaline-Elements "i" angepaßt, dessen
Aktivitäten am dichtesten bei Null liegt und das falsche Vorzeichen hat.
Falls "ai" die Aktivität des lernenden Adaline-Elements ist und "th" die gewünschte
Aktivität des mit diesem Element verbundenen Madaline-Elements ist, dann suche
unter den folgenden (verdeckten) Knoten i:
net i ist am kleinsten von allen Prozessorelementen (PEs), die mit PEh verbunden sind
ai hat ein falsches Vorzeichen.
t h  oi  0.0
Anschließend berechne, falls die angegebenen

wij   t h  net i   o j
ni
In allen anderen Fällen setze: wij  0.0
i
j
oi
th
ni

Bedingungen
erfüllt
sind
Nummer des aktuellen Prozeßelements
Nummer eines Prozeßelements, das mit dem aktuellen Prozeßelement verbunden ist
Ausgabe des PEi
Zielausgabe des PEi
Anzahl der Eingänge von Prozesselement i
Lernkonstante
Das Netzwerk lernt dadurch in der (verborgenen) Adaline-Schicht eine Art der
internen Repräsentation der Eingabevektoren, die dann durch die MadalineElemente klassifiziert wird. Die Lernregel, die die Kenntnis der gewünschten
Ausgabe voraussetzt, wird auf die verdeckte Schicht angewandt.
Die Ausgabeschicht darf auch mehr als ein Element enthalten. Allerdings darf jedes
Element der verdeckten Schicht nur einen Ausgang besitzen, da sonst die Lernregel
nicht sinnvoll angewendet werden kann.
73
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.4.7 Linear separierbare Probleme
Lineare Separierbarkeit
Ein einzelnes Perzeptron teilt den Eingangsraum mit einer Ebene in zwei Teile. Im
zweidimesionalen Raum sind diese Ebenen Geraden, im dreidimensionalen Raum
Flächen usw.
Abb.: Lineare Trennbarkeit in zweidimensionalen Raum
Man diese Ebene erlernen lassen. Falls die Ausgabe des Perzeptrons nicht der
gewünschten Ausgabe entspricht, kann man die Gewichte durch Aufaddieren von
wi lernen lassen Im zweidimensionale Fall hat die separierende Gerade folgende
Formel: w1 x1  w2 x2  w0  0 . Daraus ergibt sich die folgende normale
Geradengleichung (umgestellt nach x 2 )
x2  
w
w1
x1  0
w2
w2
Linear separierbare Probleme lassen sich offensichtlich durch eine Gerade
(Hyperebene) in zwei Klassen teilen. Eine solche Hyperebene lässt sich definieren
    

durch  z |  w z   b  0 . Die eine Halbebene ist dann definiert durch

 

    

    

 z |  w z   b  0 , die andere durch  z |  w z   b  0 . Klassifikationsmechanismen


 

 

dieser Art werden auch Perceptrons genannt. Für viele separierbare Probleme kann
eine Hyperebene auf verschiedene Art und Weise erstellet werden, z.B.:
74
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abb.:
Viele Ebenen separieren nicht gerade klug. Legt man die Ebene an einen Rand,
dann können leicht Muster auftauchen, die die Ebenen überschreiten. Deshalb
versucht man eine Ebene mit einem möglichst breiten Korridor drumherum
auszustatten.
Linear separierbare Probleme mit Korridor
Im vorliegenden Fall wurden 2 Klassen 1 und  2 betrachtet, die sich linear trennen
lassen:
 1  xi  1
yi  
 1 xi  2
Gesucht ist aber jetzt die optimale Trennfunktion, die die Summe der Distanzen zu

den beiden Klassen maximiert. Die trennende Hyperebene wx  b  0 ist (zu diesem
Zweck) definiert durch

- w (Vektor der senkrecht auf der Hyperebene steht
- b (Skalar, der mit dem Abstand der Hyperebene vom Ursprung des Koordinatensystems
korrespondiert. Der Abstand ist gleich
b


, wobei
w 
2
w
i 1
w
i
2
die Länge des Vektors ist.
Der Abstand eines Punkts x von der Hyperebene ist gegeben durch
 
w x  b
d ( w ,b ) 
.

w


Die Parameter w und b der Trennfunktion wx  b  0 sind nicht eindeutig bestimmt.
Es wird angenommen, dass folgendes gilt:
75
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen


min wxi  b  min wxi  b  1
xi 1
xi  2
Das ist gleichbedeutend mit

yi  wxi  b  1
Falls die letzten beiden Bedingungen gelten, liegt die Hyperebene in kanonischer
Form vor.
1

w
    

 z |  w z   b  1

 

    

 z |  w z   b  1

 

    

 z |  w z   b  0

 

Der Korridor soll möglichst breit werden
Abb.: Hyperebene in kanonischer Form mit möglichst breitem Korridor (margin)

w und b können so eingestellt werden, dass alle Punkte außerhalb des Korridors

  
liegen und die Support Vectors genau auf der Grenze: min  w xi   b  1 . Falls z 1
i 1... l 


und z 2 die Support Vectors sind, dann gilt:
-
 
 w z1   b  1


 


 w z 2   b  1


     
 w  z 1  z 2    2

 
Normieren führt zu
76
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen

w   2
 z1  z 2   

 w
w 

w   2
Daraus erhält man ein passendes w :   z1  z 2     0
 w
w 

Die zugehörige Entscheidungsfunktion ist: f

w ,b
    
 sgn   w xi   b   yi
 


Der Abstand von z 2 zur Hyperebene beträgt: d ( w ,b ) 
 
w  z2  b  1

. Durch Einsetzen
w

2
von wz 2  b  1 erhält man 
w

Der Abstand von z1 zur Hyperbene beträgt: d ( w ,b ) 
 
w  z1  b  1

. Durch Einsetzen
w

2
von wz1  b  1 erhält man 
w


Somit gilt: m arg in  d ( w ,b 1) ( z 1 )  d ( w ,b 1) ( z 2 ) 
2

w
Damit ist das Auffinden der optimalen Hyperebene, welche die Größe margin
maximiert, äquivalent zur Lösung des folgenden Problems:

Finde diejenigen Parameter w und
- m arg in 
2

b , die
maximieren unter der Bedingung
w

- y i ( w x i  b)  1 (i = 1, 2, ... ,N)
Das Problem lässt sich mit Hilfe verschiedener Optimierungsmethoden lösen, z.B.
durch quadratische Optimierung.
Den Rand (margin) zu maximieren ist identisch mit der Forderung: "die

1 
1  2
w .
Ebenenvektorlänge w zu minimieren bzw. w oder
2
2
2
2
2
2
2
2
2
2
w  w1  w2  ...  wn  w1  w2  ...  wn
77
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 
1  2
1  
w  w  w , weil w  w  w1  w1  w2  w2  ...  wn wn ist.
2
2
Somit ist das folgende Optimierungsproblen zu lösen:
Gegeben ist ein linear trennbare Trainingsmenge


(( x1 , y1 ),..., ( xl , yl ))
1  2
w unter den Nebenbedingungen
2


wxi  b  1 für yi  1 und wxi  b  1 für yi  1
Minimiere
Das Problem ist ein quadratisches Optimierungsproblem mit linearen
Einschränkugen (constraints). Das Problem kann gelöst werden unter Einsatz vom
Lagrange-Multiplikatoren und dem Dualitätstheorem zu Optimierungsproblemen.
Lagrange
Zwei Ziele sollen erfüllt werden:
1. gute Generalisierung (Extremum):
1 
 w
2
2
minimieren
2. alle Beispiele richtig klassifizieren (Nebenbedingung):
   

y i   w xi   b   1



Das kann mit dem Lagrange -Ansatz erreicht werden. Die Lagrange–Funktion hat die
2
l
      
   1 
Form: L w, b,   w   i  yi   w xi   b   1 .  i  0 sind die Langrange
 2
  
i 1
 
Multiplikatoren.

  
L w,b,   wird minimiert für w und b und maximiert für die  i .22


 
 l

L
(
w
,
b
,

)

w
  y i i x i  0

w
i 1
l
 

L( w, b,  )   y i i  0
b
i 1
Daraus erhält man:
l


w   y i i x i
i 1
l
0   y i i
i 1
Durch
Einsetzen
in
  
L w,b,  


bekommt
2
l

   1 
LD  w, b,   w   i  yi  wxi  b   1

 2
i 1
22
Es wird eine Optimierung an einem Sattelpunkt vorgenommen
78
man
das
sog.
duale
Problem:
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
l
l
l
 


1 l
1 l


y
y
x
x



y
y





 i j yi y j xi x j  D 





i j i j
i j
i j i j
i
i
2 i , j 1
2 i , j 1
i , j 1
i 1
i 1
l
l
l



1
 


bzw. D    i    i j yi y j  xi  x j  mit  i  0 und 0   y i i
2 i , j 1
  i 1


i 1


Das Ziel besteht im Auffinden der Parameter  * , die dieses Optimierungsproblem
lösen.
 l

 
 
Die Decision Function wäre dann: f  x   sgn   i yi  xi  x j   b 
 


 i 1

Support Vectors
Stellt man die Kuhn-Tucker Bedingungen für das primale Problem auf, erhält man:
*
*
 l

*
L
(
w
,
b
,

)

w
  y i i x i  0

w
i 1
l



*
L ( w * , b * ,  * )   y i i  0
b
i 1
* 
*
y i w  xi  b  1  0


i  0
 
 

 i y i w*  x  b *  1  0
Die Kuhn-Tucker Bedingungen sind notwendig und ausreichend zur Bestimmung für

eine Lösung von
w* , b, . Die Lösung des primalen bzw. dualen
Optimierungsproblems ist äquivalent zur Bestimmung einer Lösung für die KuhnTucker Bedingungen. Für die SVM folgt daraus, dass für einen gegebenen Punkt der


Trainingsmenge xi der Lagrange-Multiplikator entweder  i Null ist oder, falls

ungleich Null, xi eine in dem marg in -Hyperebenen-Bereich (H1 oder H2)liegt.
 
w  xi  b  1
 
H2: w  xi  b  1
H1:
Die Vekoren, die auf H1 und H2 liegen sind die Support Vectors. Sie sind die
l

*
einzigen Punkte, die den optimalen Gewichtsvektor bestimmen: w*   y i i xi .
i 1

Diese Formel kann eingesetzt werden in yi  wxi  b  1  0 und ersetzt das dort das
Ungleichheitszeichen durch das Gleichheitszeichen (liegt innerhalb des margin). b
kann nunn berechnet werden.
Numerisch sicherer ist allerdings die Bestimmung eines mittleren Werts:
b 
*


 
max yi  1 w*  xi  min
yi 1
 w
*

 xi

2
79
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen

Nach dem Erlernen der Hyperebenen-Parameter w* und b * mit der Trainingsmenge,

können bisher noch nicht betrachtete Datenpunkte z klassifiziert werden. Die
gefundene Hyperebene teilt den Raum, dem die zu klassifizierenden Daten
 
 
w*  x  b *  0
w*  x  b *  0 .
angehören
in
2
Bereiche:
und
Die
* *

Entscheidungsfunktion, wohin die Datenpunkte z gehören, kann mit w , b (d.h.mit

*
den support vectors xi unter der Bedingung  i  0 ) so formuliert werden:
 
 
 
 l




* 
f ( z , * , b * )  sgn( w*  z  b * )  sgn   yi i xi  z  b *   sgn   yi i* xi  z  b * 
 i 1

 iSV

2.3.4.8 Nicht linear trennbare Klassifizierer
Die Idee, die deratigen Klassifizierern zugrunde liegt, ist: Abbilden der Eingabedaten
aus dem Eingaberaum in einen Raum mit höherer Dimesion, in dem die Daten linear
getrennt werden können.

X
F
(x)
x
(x)
x
o
(o)
(o)
(o)
x
o
o
(x)
(x)
x
(o)
o
Abb.: Klassifikation mit einer Feature Map
Hinweis: Eine andere (alternative ) Lösungsmöglichkeit für nicht linear trennbare
Klassifizierer
besteht in der Erweiterung der Perzeptron-Netze zu einem
mehrschichtigen (MultiLayer-) Netzwerk23.
23
vgl.: 2.3.5
80
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Feature Space
In hohen Dimensionen kann man einfacher trennen.
seperating
hyperplane
Abb.:
Falls das Problem nicht linear trennbar ist, wird das Problem in einen
hochdimensionalen Feature-Space eingebettet:




 : X  F  x  x1 .x2 ,..., x   1 x ... n x 
 (feature map) ist eine Abbildung von einem N-dimensionalen Raum in einen Mdimensionalen Raum. Die Dimension M des Feature Space ist sehr hoch:
N  d  1! . (d ist die Ordnung und N die Dimension des Eingangsraums). Bei
M 
d!N  1!
d=5 und N=256 ist bspw. M  1010 . Das Problem ist aber, dass die großen
Skalarprodukte, die nun entstehen, gar nicht berechnet werden können:
1 l
      
  l
D    i    i j yi y j   xi    x j  
2 i , j 1
  i 1
    
 l
      
 
f  z   sgn   i yi   z    xi    b 
 
     
 i 1
Ausweg: Statt des Skalarprodukts benutzt man eine sog. Kernelfunktion.
 


K xi , x j     xi    x j 
Kernel Functions
 
K x, z  muß spezifiziert werden. Sie muß symmetrisch sein
 




 
K x, z   x   z   z   x   K z , x 
und die Mercer-Bedingung erfüllen:
81
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 
 
X ist ein endlicher Eingaberaum mit einer symetrischen Funktion K x, z  auf X . Dann ist K x, z 
genau dann eine Kernfunktion, wenn die Matrix K positiv semidefinit ist (, d.h. Keine negativen
Eigenwerte besitzt).
Mit der Kernel Funtion kann man die duale Form und die Decision Function
berechnen:
Maximiere
Die Decision Function ist
1 l
  l
 
D    i    i j yi y j K  xi , x j  .
2 i , j 1
  i 1


 l
 
   
f  z   sgn   i yi K  z  xi   b 
 

 
 i 1
Bekannte Kernel-Funktionen





-
Polynom-Klassifikation K  z , x  
-
RBF24
-
Sigmoid25
 x  z
  2
  
K  z , x   exp   x  z / 2 2





 c
p


   

  
K  z , x   tanh   z  xi    



 

Polynomialer Kernel
p ist der Grad des Polynoms und c eine nicht negative Konstante (gewöhnlich vom
Wert 1).
p

 xi z i

 
K  x , z    
 c 
i  i


Der Vektor  wird so gewäht, dass die Mercer-Bedingung erfüllt ist.
Sigmoid
Ein Kernel, der aus der Sigmoid-Funktion gebidet wird, genügt der MercerBedingung für bestimmte Werte von  und  26. Die Verwendung eines sigmoiden
Kernels im Rahmen der Support Vector Machine kann mit einem zwei Schichten

umfassenden Neuronalen Netz verglichen werden. In solchen Netzwerken wird z

 
durch die erste Schicht in den Vektor F  ( F1 ,..., Fn ) mit Fi  tanh  xi  z    

( i  1,..., N )abgebildet. Die Dimension von F ist die Anzahl der sog. Hidden Units. In
24
vgl. 2.9
vgl. 2.3.5
26 experimentell von Vapnik ermittelt.
25
82
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen

der zweiten Schicht wird die gewichtete Summe der Elemente von F berechnet mit
den Gewichten  i
F1
1

z
F2
2
y
.
.
+1/-1
N
.
FN
Abb.: Ein 2 Schichten umfassendes Neurales Netz mit N "hidden units". Die Ausgabe der ersten
Schicht ist
 
 N

Fi  tanh  xi  z     . Die Ausgabe des Netzes ist sgn   yi  i Fi  b 
 i 1

  2
  
Radial Basis Function (Gauss'scher Kernel): K  z , x   exp   x  z / 2 2




 definiert die sog. Fensterbreite
unterschiedlicher Größe sein.
und
kann
für
diverse


Vektoren
von
Bsp.: Lösung des UND-Problems unter Verwendung eines linearen Kernels
2.3.4.9 Support Vector Machines
Support Vector Machines kommen aus dem Gebiet des "machine learning" bzw. der
"statistical learning theory". Sie sind ein Ansatz, der mit Hilfe von Kernelfunktionen 27
einige Neuronale Netze zur Mustererkennung und Funktionsapproximation
zusammen fassen kann.
Ziel

Gesucht ist eine Funktion f ( x ,  ) , die alle Beispiele richtig klassifiziert. Binäre
  

Klassifikation ist bspw. an Hyperebenen orientiert: {x :, w  x  b  0} ,   w, b   R n1
bestimmt die Lage der Hyperebenen im n-dimensionalen Raum. Für die "learning
machine" erhält man:
27
vgl. 2.3.4.8
83
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 
 
LM  f ( x, w, b)  sgn( w  x  b)28
Klasse 1
Klasse 2
Abb.: Lineare Trennbarkeit in zweidimensionalen Raum. Sie ist definiert durch
 
w  x  b  0 . Punkte auf der
linken Seite werden Klasse 1, Punkte auf der rechten Seite Klasse 2 zugeordnet.

  w, b   R n1 bestimmt die Lage der Hyperebenen im n-dimensionalen Raum. Die
Wahl des Parameters erfolgt durch Auswahl einer Menge von Trainingsdaten




(Stichprobe): {( x1 , y1 ), ( x2 , y 2 ),..., ( xl , yl )} . xi bezieht sich auf den n-dimensionalen

Raum, y   1,1. Die Stichprobe wird gezogen mit einer Wahrscheinlichkeit Px, y  .
Die Stichprobe ist nicht unbedingt repräsentativ. Ein Klassifiziere von bestimmter
Qualität ist bestimmt durch das Merkmal: gute Generalisierungsfähigkeit.
Risiko

Aus einer Menge von Mustern, die einer Zufallsverteilung P ( x , y ) unterliegen,

werden 'l' Muster gezogen. Das Risiko, dass f ( x ,  ) die Mustermenge nicht


1
separieren kann, kann so formuliert werden: R( )   y  f ( x , ) dP( x ,  ) .
2

1
y  f ( x ,  ) : Differenz zwischen der gewünschten Ausgabe und der tatsächlich
2
vorliegenden Antwort.

Die Parameter  sind so zu bestimmen, dass f ( x ,  ) das Risiko über die


Funktionsklassen f ( x ,  ) minmiert. Da P ( x , y ) unbekannt ist, kann der Risikowert
selbst für gegebene  nicht berechnet werden. Das Risiko muß geschätzt werden.

1 l
Das empirische Risiko Remp ( )   y i  f ( xi ,  kann dagegen aus der
2l i 1
gemessenen mittleren Fehlergröße aus den Trainingsdaten der Länge l und
spezieller Wahl von  bestimmt werden. Remp ( ) repräsentiert jedoch nicht immer

R( ) : Es kann sein, dass f ( x ,  ) so schlecht gewählt wurde, dass gerade die
gewählten Muster auf sie passen und keinen Fehler haben. Das ist bspw. bei einer
Tabelle der Fall. Das empirische Risiko ist dann 0, das reale Risiko sehr hoch. Auf
das reale Risiko kann vom empirischen Risiko nur durch Hinzufügen eines
Vertrauensterms geschlossen werden.
28
Linear Learning Machine
84
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Im Rahmen der statistischen Lerntheorie leitete Vapnik folgende Obergrenze einer
Klassifikationsmaschine für die Generalisierungsfähigkeit her, die in 1   Prozent
der Fälle eingehalten wird:
R( )  Remp ( )   (h, l , )
Die obere Grenze ist abhängig vom empirischen Risiko und dem Vertrauensterm
 ( h, l ,  )
- h: VC-Dimension des verwendeten Hypothesenraums
- l: Anzahl der Muster
2l 

 
h log  1  log  
h

4
 (h, l , )  
l
Die VC-Konfidenz wächst monoton mit h
VC-Dimension 29

Die VC-Dimension ist eine Eigenschaft für gegebenen Funktionsklassen f ( x ,  ) :
-

Die VC-Dimension einer Menge von Funktionen f ( x ,  ) ist definiert als die maximale Anzahl
von Trainingspunkten, die durch diese Klasse von Funktionen in allen möglichen Zuordnungen
l
-
separiert werden kann(, d.h. l Punkte können auf 2 mögliche Weisen zerschlagen werden
Die VC-Dimension liefert Maße für die Kapazität von Funktionsklassen.
Abb.: 3 Punkte, die nicht durch eine Linie verbunden sind, können durch eine gerichtete Hyperebene
im 2-dimensionalen Raum getrennt werden. Bei 4 Punkten im zweidimensionalen Raum ist dies nicht
möglich. Die VC-Dimension ist 3.
Die VC-Dimension eines n-dimensionalen Raums ist n+1. Support Vector Machines ,
die den Gauss'schen Kernel implementieren haben eine unbegrenzte VCDimension. Die VC-Dimendisionen für polynomiale Kerne (Polynome vom Grad p) ist
 p  d l  1
 , d l ist die Dimension des
bestimmt durch den Binomialkoeffizienten: 
p


29
Vapnik, Chevonenkis
85
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Raums in dem die Daten liegen. Hier ist die VC-Dimension begrenzt, sie wächst aber
stark mit dem Grad.
2.3.5 Multilayer-Netwerk
Aufbau
Perzeptrone zählen lediglich zu den linearen Klassifikatoren. Das reicht 30 oft nicht
aus. Man ist daher übergegangen, mehrere Perzeptrone miteinander zu
verschachten. Man erhält Multilayer Perzeptrone (MLP), die einen wesentlich
mächtigeren Klassifikator darstellen.
X2
X2
X1
Abb. 2.3-9: Eine mögliche Aufteilung einer Punktmenge
mit einen einzelnen Perzeptron
X1
Abb. 2.3-10: Eine mögliche Aufteilung einer Punktmenge mit einem MLP
Ein MLP erstreckt sich über mindestens 3 Schichten31: Eingabe-, Ausgabe und
mindestens eine verborgene Zwischenschicht (hidden layer). Die Eingabeeinheiten
leiten lediglich die Daten an die nächste Schicht weiter. In den Zwischenschichten
findet die eigentliche Verarbeitung / Klassifizierung statt. Die Eingabe- und jede
Zwischenschicht enthält zusätzlich zu den normalen Perzeptronen noch ein Bias,
das immer eine "1" an die nächste Schicht weitergibt und damit den Schwellenwert
auf Null normiert.
Beim MLP handelt es sich um vollverschaltete Netzwerke, d.h. die Ausgänge der
Perzeptrone einer Schicht werden alle mit jedem Perzeptron der nächsten Schicht
verknüpft und damit ein vorwärtsgerichtetes Netz konstruiert. Die Spezifizierung
eines Netzwerks erfolgt über die Parameter:
-
30
31
Anzahl der Schichten
Anzahl der Perzeptrone der einzelnen Schichten
in der Schicht verwendete Aktivierungsfunktion
Hier stehen bspw. lineare Funktionen, Tangenshyperbolicus, Fermifunktion usw. zur Auswahl.
vgl. 2.3.4.4, XOR-Problem
oft auch Layer genannt.
86
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eingabevektor
1



1


1

Ausgabevektor
Abb. Beispiel für den Aufbau eines MLP
Nomenklatur
Das vorstehende Netz stellt ein vierschichtiges oder dreistufiges Netz dar. Bei
"Stufennomenklatur" wird die Eingabeschicht nicht als Stufe mitgezählt, weil diese
nur die Eingaben weiterleitet.
Die Anzahl der Neuronen wird von der Eingabeschicht an hintereinander
geschrieben. Das vorstehende Netz ist bspw. ein 4 – 3 – 2 – 1 –MLP. Man kann
desweiteren hinter jede Nummer eine Zahl schreiben, die angibt, welche Kennlinie
die Neuronen der jeweiligen Schicht haben. Für das vorstehende Netz bspw. 4L 323T33-2T-1T –MLP34.
universaler Funktionsapproximator
MLPs sind universale Funktionsapproximatoren, d.h. Sie können beliebige Muster
und Funktionen darstellen. Wieviele Neuronen nun für ein bestimmtes Problem
benötigt werden ist nicht klar. Gibt man einem neuronalen Netz zu viele Neuronen,
lernt es sehr schnell auswendig und generalisiert nicht. Hat es zu wenige, wird das
Problem nicht ordentlich gelöst. Die Anzahl der Neuronen in der verborgenen Schicht
ist maßgeblich für die Mächtigkeit eines MLPs. Neuronale Netze mit mehr als einer
Hiddenschicht sind leistungsfähiger als die mit einer Schicht, lernen aber langsamer.
32
Linear
Tangenshyperboloicus
34 Der erste Buchstabe der Aktivierungsfunktion ist Kennbuchstabe
33
87
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Das ein neuronales Netz eine Funktion darstellen kann, heißt noch lange nicht, dass
es sie auch lernen kann. Es kann tiefe Täler in der Fehleroberfläche geben, in die
man aber nicht hineinspringen kann35.
35
vgl. 2.4.2, 2.4
88
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4 Backpropagation Netzwerke
2.4.1 Beschreibung
Zweischichtige Neuronale Netze sind nur mit Einschränkungen zur Abbildung von
Mustern geeignet36 .Backpropagation Netzwerke bestehen aus drei oder mehreren
Neuronenschichten. Die erste Neuronenschicht dient zur Aufnahme von externen
Eingabewerten, die letzte Neuronenschicht ist zur Wiedergabe der Ausgabewerte
vorgesehen. Die inneren Neuronen sind verdeckt ("hidden"). Sie ermöglichen die Lösung von Problemen, die eine interne Aufbereitung von Eingabewerten erfordern.
Bsp.: "Exklusives ODER XOR"37
Eingabe1
0
0
1
1
Eingabe2
0
1
0
1
Ausgabe
0
1
1
0
Neuronale Netze haben die Neigung, auf ähnliche Eingaben auch ähnliche
Ausgaben zu erzeugen. Die XOR-Operation verlangt, daß ausgerechnet die
ähnlichen Eingaben mit unterschiedlichen Ausgaben beantwortet werden müssen.
Schaltet man zwei Netze hintereinander und lehrt beide das XOR-Problem, dann
teilen sich die Netze die Arbeit.
Abb. 2.4-1: Netzstruktur zur Lösung des XOR-Problems
Das erste Netz erzeugt aus der Eingabe einen Zwischencode, das 2. Netz lernt die
richtigen Antworten auf die "heimlichen" Zwischenwerte.
Jedes Neuron einer Schicht ist mit jedem Neuron der vorgelagerten
und
nachfolgenden Schicht verbunden.
Die
Richtung
des
Informationsflusses
verläuft
vorwärtsgerichtet
(Forwardpropagation) von Neuronen der Eingabeschicht über die Neuronen der
36
37
vgl. 2.3.4
vgl. 2.3.4
89
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zwischenschicht(en) zu Neuronen der Ausgabeschicht (Feedforward-Netzwerke).
Auf diese Weise werden die Werte über ihre gewichteten Verbindungen zu den
Einheiten des Ausgabe- Vektors nach vorn propagiert. Danach vergleicht man den
erhaltenen Ausgabevektor. Die Differenz zwischen tatsächlichem und gewünschtem
Ergebnis ist eine Funktion der aktuellen Verbindungsgewichte. Diese werden mit
Hilfe einer Lernregel, die den Namen Backpropagation38 trägt so angepaßt, daß
sich der Fehler des Systems verkleinert. Von der Ausgangsebene wird der Einfluß
der Ebenen auf alle Fehler zurückgerechnet.
Abb. 2.4-2: Propagation und Backpropagation
Diese Verfahrensweise wird zyklisch für alle Muster wiederholt. bis der Fehler einen
ausreichend kleinen Wert erreicht hat.
Bei diesem Verfahren sind beliebig viele Zwischenschichten möglich, da die
Fehlerkorrektur schrittweise von der Ausgangsebene zur Eingangsebene
vorgenommen wird. Eine zu große Anzahl von Zwischenschichten erfordert mehr
(langsame) Matrizenoperationen ohne einen entsprechenden Gewinn an
Auswahlmöglichkeiten. Eine geringe Anzahl von Zwischenschichten verkleinert den
Rechenaufwand, verhindert aber eine korrekte Mustererkennung.
38
nach: D.E. Rumelhart, G.E. Hinton, R.J. Williams: Learning Internal Representations by Error Propagation
in: David E. Rumelhart, James L. McClelland (Hrsg.) : Parallel Distributed Processing. Explorations in the
Microstructure of Cognition, Volume 1: Foundations, Cambridge (Mass.), The MIT Press
90
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4.2 Grundlagen
1. Herleitung des Backpropagation Algorithmus
Ziel des Backpropagation-Lernverfahrens ist: Bestimmen von Verbindungsgewichten
wij mit denen das Netzwerk die vorgegebene Menge von Eingabemustern auf die
entsprechenden Zielmuster möglichst fehlerfrei abbilden kann.
Ein Maß für die Abbildungsfähigkeit (Leistungsfähigkeit) des Netzwerks ist der
mittlere quadratische Fehler über alle Musterpaare (MSE):
(1)
E   E p   (t pk  o pk ) 2
p
p
k
t pk  o pk : Lernfehler eines Ausgabeneurons k für ein vorgegebenes Muster.
Durch das Verändern der einzelnen Verbindungsgewichte wij ändert sich der
Ausgabewert von Neuronen der Ausgabeschicht und damit auch E.
E

W


w'
w' '
Abb. 2.4-3: Energieverlauf
Die Minimierung von E kann über die Verkleinerung der Lernfehler E p für jedes
Muster angestrebt werden, d.h.: Bestimmen solcher wij , die die Lernfehler Ep des
Musters
reduzieren.
Das
Backpropagation-Verfahren
beruht
auf
einem

Gradientenabstiegsverfahren. Im Punkt w ' wird die Tangente auf der MSEOberfläche bestimmt und auf der Tangente um eine gewisse vorgegebene Länge

abgestiegen. Man erhält den Gewichtsvektor w ' ' , bestimmt wieder die Tangente und
wiederholt das Verfahren. Der Backpropagation Algorithmus sucht das Minimum der
Fehlerfunktion eines bestimmten Lernproblems durch Abstieg in der
Gradientenrichtung entlang der Fehlerfunktion. Die Kombination der Gewichte eines
Netzes, die den Berechnungsfehler minimiert, wird als Lösung des Lernproblems
betrachtet. Der Gradient für die Fehlerfunktion muß für alle Punkte des
Gewichtsraums existieren, d.h. die partiellen Ableitungen der Fehlerfunktion nach
den einzelnen Gewichten müssen überall definiert sein.
Der Backpropagation Algorithmus arbeitet in zwei Schritten: Feedforward-Schritt und
Backpropagation Schritt. Im Feedforward Schritt wird am Eingang ein Testmuster
angelegt, und die Ausgabe (Output) berechnet. Aus dem errechneten Output und
der gewünschten Ausgabe wird mit Hilfe der Fehlerfunktion der Fehler berechnet:
91
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(2)
E   (t k  ok ) 2
k
Der Fehler wird dann im Backpropagation Schritt von der Ausgabeschicht aus auf
die Gewichte der einzelnen Schichten aufgeteilt. Die Gewichte werden dabei so
modifiziert, dass sich der Fehler reduziert.
x1
x2
…
(i)
xni
...
Feedbackward
1
wij
(j)
...
1
w jk
(k)
...
Feedforward
Abb. 2.4-4: Beispiel eines zweistufigen Multilayer-Perzeptrons. In der Feedforward-Richtung wird die Ausgabe
für ein angelegtes Eingangsmuster berechnet. In der Backpropagation-Richtung wird in der Trainingsphase der
fehler am Output auf die Gewichte zwischen den Schichten aufgeteilt.
Am Beginn der Trainingsphase werden alle Gewichte zufällig initialisiert. Im
Feedforward-Schritt wird ein Eingangsmuster angelegt und die Ausgabe des Netzes
berechnet: net j   wij  xi . Die Ausgabe der Neuronen im „j“-Layer ist dann:
i
o j  F (net j ) . Im nächsten Schritt wird die Ausgabe der Schicht k berechnet:
net k   w jk  o j . Die Ausgabe der Neuronen im „k“-Layer ist dann: ok  F (net k ) . Zur
j
1
  (t k  ok ) 2 benutzt. Der Faktor
2 k
½ wurde zur Erleichterung der nachfolgenden Berechnung eingeführt. Zur Korrektur
der Gewichte wählt man
weiteren Berechnung wird die Fehlerfunktion E 
(3) w jk  
E
w jk
(Veränderungen der Verbindungsgewichte sind proportional zur Steigung der
Fehlerfunktion, die Lernrate  ist Proportionalitätsfaktor)
Da ok  F (net k ) und net k   w jk  o j ist, kann mit Hilfe der Kettenregel die partielle
j
Ableitung
E
w jk
ausgedrückt
werden
92
durch:
E
E net k


w jk net k w jk
mit
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
net k


  w jk  o j . Da die partielle Ableitung nur nach einer Komponente der
w jk
w jk j
Summe gebildet wird kann man schreiben:
Mit der Definition  k 
net k


w jk  o j  o j
w jk
w jk
E
folgt nach Einsetzen in Gleichung (3):
net k
(4) w jk     k  o j
Zur Berechnung des Ausdrucks  k  
(5)  k  
E
verwendet man wieder die Kettenregel:
net k
E
E ok


net k
ok net k
Für den ersten Faktor kann man nach Einsetzen der Definition für die Fehlerfunktion
E
 1

(t k  ok ) 2  (t k  ok ) . Für den zweiten Faktor aus Gleichung
schreiben:
ok ok 2
ok
(5) gilt:
 F ' (net k ) . Da als Aktivierungsfunktion die sigmoide Funktion
net k
verwendet wird, kann man schreiben:
ok
 F ' (net k )  F (net k )  (1  F (net k )  ok  (1  ok )
net k
So erhält man für
 k  (t k  ok )  ok  (1  ok )
Eingesetzt in Gleichung (4), erhält man für die Änderung der Gewichte:
(6) w jk    (t k  ok )  ok  (1  ok )  o j
Die Formel gilt allerdings nur für die Gewichte der Neuronen in der Ausgangsschicht.
Für die Gewichte der internen Neuronen setzt man analog an:
(7) wij   
E
E net j
E
  

  
 oi 
wij
net j wij
net j
  (
E o j
E

)  o i    (
)  F ' (net j )  o i     j  o i
o j net j
o j
Ist nur eine interne Schicht vorhanden, entspricht in der vorstehenden Gleichung
E
oi  xi . Da sich der Faktor
nicht direkt berechnen lässt, schreibt man unter
o j
Zuhilfenahme von bekannten oder berechenbaren Ausdrücken an:
93
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(8)
 E
E
E net k
 

   
o j
o j
net k
k net k
k 

 
 
 o j
w
mk
 om 
E 
  w jk    k  w jk
k
k 
   net
k

Aus (7) und (8) folgt somit:  j  F ' (net j )    k  w jk .
k
Das  eines inneren Neurons kann somit aus den „Deltas“ der Vorgängerschicht
berechnet werden. Beginnt man mit der letzten Schicht, der Ausgangsschicht, kann
man sich aus Gleichung  k  (t k  ok )  ok  (1  ok ) „  k “ berechnen. Anschließend kann
man den Fehler rückwärts propagieren, um die Deltas der inneren Schichten zu
berechnen. Da als Aktivierungsfunktion die sigmoide Funktion39 verwendet wird, gilt
F ' (net j )  F (net j )  (1  F (net j ))  o j  (1  o j )
Somit kann für  j  o j  (1  o j )    k  w jk geschrieben werden. Für die Änderung der
k
Gewichte in der inneren Schicht ergibt sich somit
(9) wij    o j  (1  o j )  oi    k  w jk
k
Für ein Netzwerk mit nur einer inneren Schicht gilt oi  xi .
Zusammenfassung. Die Veränderung der Gewichte erfolgt während des
Lernprozesses mit Hilfe des Backpropagation Algorithmus nach folgenden Formeln:
 k  (t k  ok )  ok  (1  ok ) : w jk     k  o j für die Ausgabeschicht.
 j  o j  (1  o j )    k  w jk : wij     j  oi für die inneren Schichten
k
2. Verlauf der Fehlerfunktion
Das Lernverhalten wird durch den Verlauf der Fehlerfunktion entscheidend
beeinflußt. Im ungünstigsten Fall konvergiert der Backpropagation-Lernalgorithmus
gegen einen Wert, der nur in einem bestimmten Bereich der Fehlerfunktion minimal
ist (lokales Minimum).
39
Die Ableitung der sigmoiden Funktion kann einfach als
d  1

f ' ( x) 
dx  1  e  x
ex

 
 f ( x)  (1  f ( x) geschrieben werden.
(1  e  x ) 2

94
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
E
lokale Minima
lokales Minimum
globales Minimum
wij
Abb. 2.4-5: Lokales und absolutes Minimum beim Backpropagation
Da stets eine Gewichtsveränderung in Richtung des steilsten Abstiegs der
Fehlerfunktion erfogt, besteht die Gefahr:
1. Der Fehlerwert oszilliert um ein lokales Minimum
2. Das Tal der Fehlerfunktion kann nicht mehr in Richtung des globalen Fehlerminimums verlassen werden
2.1 Lokale Minima
Es ist ein prinzipielles Problem neuronaler Netze, dass die Fehleroberfläche mit
wachsender Dimensiom des Netzes (d.h. mit wachsender Anzahl von Verbindungen)
immer stärker zerklüftet ist und somit die Wahrscheinlichkeit, in einem lokalen
anstelle des globalen Minimums zu landen, mit wachsender Dimension des Netzes
größer wird.
E
Globales Minimum





w4
w3
w2
w1
W
Abb. 2.4-6: Lokales Minimum
95
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wählt man die Schrittweite nicht allzu groß und probiert man ggf. mehrere
verschiedene Initialisierungen der Gewichte aus, so zeigt die Erfahrung, dass
hierdurch in der Regel ein Minimum erreicht wird, das für die konkrete Anwendung
akzeptabel ist.
2.2 Symmetric Breaking
Betrachtet man vollständig ebenenweise verbundene Feedforward-Netze, so darf
man bei der Initialisierung der Gewichte nicht alle gleich groß wählen. Würde man
dies nämlich tun, so lässt sich zeigen, dass durch die Modifikation der Lernregel alle
Gewichte zwischen zwei Schichten stets den gleichen Wert erhalten. Dahei ist es
notwendig, zur Initialisierung der Gewichte zufällige (nicht zu große Werte) zu
nehmen.
Bsp.: Gleich initialisierende Gewichte
Die Gewichte können sich zwar verändern, aber alle um den gleichen Betrag,
wodurch die Symmetrie fest erhalten bleibt.
In der Regel reicht es, die gewichte mit zufälligen Werten zu initialisieren. Häufig wird
zusätzlich darauf geachtet, dass es kleinere Werte sind, was dem Netz ermöglicht,
sich schneller anzupassen.
2.3 Flache Plateaus
Die Größe der Gewichtsänderung hängt bei dem Gradientenverfahren von dem
Betrag des Gradienten ab. In flachen Plateaus stagniert daher Backpropagation
E

W
Abb. 2.4-6: Flaches Plateau
In einem derartigen Bereich werden besonders viele Iterationsschsritte benötigt. Im
Extremfall ist der Gradient der Nullvektor (Maxima), und es findet überhaupt keine
Gewichtsänderung mehr statt. Außerdem entspricht das verhalten in einem flachen
Plateau dem Erreichen eines Minimus, so dass zunächst nicht erkannt werden kann,
um welche Situaltion es sich handelt.
96
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4 Oszillation
Direktes Oszillieren
In unglücklichen Situationen kann das Verfahren oszillieren. Dies geschieht, wenn
der Gradient am Rande einer Schlucht so groß ist, dass durch die
Gewichtsänderung ein Sprung auf die gegenüberliegende Seite der Schlucht erfolgt.
Ist die Schlucht dort genauso steil, bewirkt dies einen Sprung zurück zum
Ausgangspunkt, da der Gradient jetrzt den gleichen Betrag, aber genau das
umgekehrte Vorzeichen besitzt.
E
-


W
Abb. 2.4-7: Direktes Oszillieren
Dieser Effekt tritt vor allem bei relativ steilen Schluchten der Fehleroberfläche auf.
Indirektes Oszillieren
E

W
Abb. 2.4-7: Indirektes Oszillieren
97
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.5 Verlassen guter Minima
Liegt das globale Minimum in einem steilen Tal, kann der Betrag des Gradienten so
groß sein, dass die Gewichtsänderung aus der Umgebung des globalen Minimums
heraus in die Umgebeung eines suboptimalen Minimums hinienführen.
E

W
Abb. 2.4-8: Verlassen guter Minima
3. Möglichkeiten zur Behebung der Problemfälle
Man kann den prinzipiellen Problemen, die bei der Anwendung des Backpropagation
Verfahrens auftreten, folgendermaßen begegnen:
-
-
-
Die Wahl der Lernrate  (Schrittweite) ist entscheidend für das Verhalten des
Backpropagation-Algorithmus. Wird nach einer vorgegebenen Trainingszeit keine
befriedigende Lerngüte erreicht, so empfiehlt es sich,  zu ändern. Generell bewirkt ein
großes  starke Sprünge auf der Fehleroberfläche und erhöht somit das Risiko, ein globales
Minimum in einem engen Tal zu überspringen. Zu kleine Werte von  bewirken einen spürbar
höheren Zeitaufwand während des Trainings, der in einem falchen Bereich inakzeptabel hoch
werden kann. Da der optimale Werte von  von vielen Faktoren, wie dem Problem, Wahl der
Trainingsdaten, Größe und Topologie des Netzes usw. abhängt, kann es keine generelle
Empfehlung für die Wahl von  geben. Erfahrungen haben gezeigt, dass es sinnvoll sein kann
mit einem höheren Wert von  zu beginnen und ggf. diesen in Schritten von 0.1 zu verringern.
Ein "unglückliche" Initialisierung der Startgewichte kann dazu führen, dass das Verfahren in
einem kritischen Bereich der Fehleroberfläche (z.B. in einem flachen Plateau) startet. Es kann
daher sinnvoll sein, vor einer Änderung der Lernrate zunächst die Lernphase mit einer
geänderten Initialisierung der Startgewichte zu wiederholen.
Es wurden verschiedene Modifikationen40 des Verfahrens entwickelt. Fast allen
Modifikationen ist gemein, dass sie auf Heuristiken beruhen.
4. Festlegen von Parameterwerten
4.1 Lernrate 
Ein schnelles Absinken des Fehlerwerts kann durch einen möglichst großen Wert
der Lernrate (nahe 1) erreicht werden. Dabei kann aber der Fehlerwert über das
40
z.B. Momentum-Version, Weight Decay, QuickProp
98
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Minimum der Fehlerfunktion hinauslaufen. Im folgenden Lernzyklus ist dann eine
Veränderung des Verbindungsgewichts in genau entgegengesetzter Richtung
erforderlich. Ein wiederholtes Auftreten dieses Effekts führt zu unerwünschten
Schwingungen um das Minimum der Fehlerfunktion. Das Oszillieren kann durch
Berücksichtigung des vorliegenden Werts der Gewichtsveränderung bei der
Berechnung des aktuellen Gewichtsveränderungswerts vermieden werden:
4.2 Momentum: wij (t  1)     j  oi    wij (t ) (10)
Der Faktor  gibt an, wie stark der Wert der alten Gewichtsänderung in die
Berechnung der neuen Gewichtsänderung einfließen soll. Üblicherweise wird beim
Trainieren von Backpropagation-Netzwerken  mit 0.9 und  nahe dem Wert 0.3
gewählt.
4.3 Die Anzahl der inneren Einheiten
Im Allgemeinen steigert die Anzahl verborgener Schichten die Mächtigkeit des
Netzes. Es gibt aber keine Möglichkeit die optimale Anzahl verborgener Schichten
für ein spezielles Problem zu bestimmen. Die Praxis hat gezeigt, dass häufig eine
verborgene Schicht ausreicht.
Auch die optimale Anzahl der Neuronen in einer verborgenen Schicht wird durch das
Problem bestimmt. Generell kann Folgendes über die Anzahl der inneren Einheiten
in einem Backpropagation Netz festgehalten werden:
Anzahl innerer Einheiten zu klein Das Backpropagation Netz kann das Problem nicht lösen.
Anzahl innerer Einheiten zu groß
- Es besteht die Gefahr des Overtraining
- Das Problem wird nur teilweise durch Generalisierung
erkannt
- Die überflüssigen Einheiten sind ausschließlich zur
Erkennung der restlichen Trainingsmuster bestimmt (quasi:
lokale Speicherung)
- Es wird keine grundlegende Ausbildungsvorschrift
gefunden
5. Testphase (Recall)
Die Funktionsweise des Backpropagation-Netzwerks während der Testphase
entspricht der Funktionsweise jedes anderen "Feedforward"-Netzwerks. Der
Eingabevektor wird an die Eingänge angelegt, die Prozessorelemente berechnen
daraus ihre Ausgabe. Ein Eingangsmuster wird angelegt und die Ausgabe des
Netzes berechnet: net j   wij  xi . Die Ausgabe der Neuronen im „j“-Layer ist dann:
i
o j  F (net j ) . Im nächsten Schritt wird die Ausgabe der Schicht k berechnet:
net k   w jk  o j . Die Ausgabe der Neuronen im „k“-Layer ist dann: ok  F (net k ) .
j
Im Rahmen der Testphase liefern Trainingsdaten Stützstellen, über die das
Backpropagation Netz eine Funktion approximiert. Aber auch außerhalb soll das
Netz eine genügende Genauigkeit aufweisen. Diese Eigenschaft wird als
Generaliserungsfähigkeit des Netzes bezeichnet. Die Generalisierungsfähigkeit
99
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
wird mit Hilfe einer Testmenge verifiziert, die mit keiner Komponente der
Trainingsmenge übereinstimmt.
100
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4.3 Implementierung
2.4.3.1 Lösung des XOR-Problems mit einem Java-Programm41
1. Vereinbarungen
double Epsilon;
// Lernrate
int AnzEingabeschicht = 2;
int AnzZwischenschicht = 2;
int AnzAusgabeschicht = 1;
// Anzahl der Neuronen in der Eingabeschicht
// Anzahl der Neuronen in der Zwischenschicht
// Anzahl der Neuronen in der Ausgabeschicht
int Steps;
// Traningscyclus
double
double
double
double
W_ij[][];
W_jk[][];
Biases_j[];
Biases_k[];
//
//
//
//
Gewichtsmatrix Eingabeschicht(i) - Zwischenschicht(j)
Gewichtsmatrix Zwischenschicht(j) - Ausgabeschicht(k)
Biases von Zwischenschicht(j)
Biases von Ausgabeschicht(k)
double O_i[];
double O_j[];
double O_k[];
// Eingangswerte(i)
// Zwischenwerte(j)
// Ausgangswerte(k)
double D_j[];
double D_k[];
// Fehlerrate(Delta) der Zwischenschicht(j)
// Fehlerrate(Delta) der Ausgabeschicht(k)
double T_k[];
// Gewünschter Output(Target) der Augabeschicht(k)
2. Gedächtnis-Routinen
Die Methode Ruecksetzen() weist den Gewichtsmatrizen (W_ij, W_jk) zufällige
Anfangswerte zwischen 0 und 1 zu. Das gleiche gilt für die Aktivierungsschwellwerte
(Biases) der Neuronen in der Zwischen- und Augabeschicht
(Biases_j,
Biases_k).
public void Ruecksetzen()
{
Steps = 0;
// Rücksetzten der Neuronen
for (int i = 0; i < AnzEingabeschicht; i++){
O_i[i] =0.0;
}
for (int i = 0; i < AnzZwischenschicht; i++){
O_j[i]=0.0;
}
for (int i = 0; i < AnzAusgabeschicht; i++){
O_k[i] =0.0;
}
// Setzen der Gewichte zwischen Eingabeschicht und Zwischenschicht
// auf eine Zufallszahl zwischen 0.0 und 1.0
for (int i = 0; i < AnzZwischenschicht; i++)
{
41
101
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
for (int j = 0; j < AnzEingabeschicht; j++)
{
W_ij[i][j] = ((java.lang.Math.random() * 2)-1);
}
// Setzen der Biaswerte der Zwischenschicht
Biases_j[i] =((java.lang.Math.random() * 2)-1);
}
// Setzen der Gewichte zwischen Zwischenschicht und Ausgabeschicht
// auf eine Zufallszahl zwischen 0.0 und 1.0
for (int i = 0; i < AnzAusgabeschicht; i++)
{
for (int j = 0; j < AnzZwischenschicht; j++)
{
W_jk[i][j] = ((java.lang.Math.random() * 2) -1);
}
// Setzen der Biaswerte der Ausgabeschicht
Biases_k[i] =((java.lang.Math.random() * 2)-1);
}
}
Die logistische Aktivierungsfunktion kann nur Werte zwischen 0 und 1 annehmen.
// Als Aktivierungsfunktion wird hier die sigmoide Funktion verwendet!
public double sigmoid_Aktivieren(double X)
{
return (1/(1+java.lang.Math.exp(-1 * X)));
}
Die generalisierende Delta-Regel ist in den Prozeduren Feedforward und
Feedbackward versteckt.
public void Feedforward()
{
double net_j;
double net_k;
// ------------ Eingabeschicht -> Zwischenschicht ----------------for (int i=0; i < AnzZwischenschicht; i++)
{
net_j = 0.0;
for (int j=0; j < AnzEingabeschicht; j++)
{
net_j = net_j + (O_i[j] * W_ij[i][j]);
}
O_j[i]= sigmoid_Aktivieren(net_j+Biases_j[i]);
}
// ----------- Zwischenschicht -> Ausgabeschicht ----------------for (int i=0; i < AnzAusgabeschicht; i++)
{
net_k = 0.0;
for (int j=0; j < AnzZwischenschicht; j++)
{
net_k = net_k + (O_j[j] * W_jk[i][j]);
}
O_k[i]= sigmoid_Aktivieren(net_k+Biases_k[i]);
}
}
Nach Ausführung von Feedforward ist noch nichts passiert, was es in anderen
Netzen nicht auch schon gegeben hätte. Danach wird zunächst in der Prozedur
Feedbackward die gewünschte Ausgabe mit der tatsächlich erhaltenen Ausgabe
102
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
verglichen. Damit steht ein Delta-Wert für den Ausgang zur Verfügung. Nun müssen
die Gewichte aller Signalverbindungen, die dorthin führen, (in Abhängigkeit von D_k)
geändert werden. Dazu multipliziert man das Delta mit allen Signalen der
Zwischenschicht und ändert die zugehörigen Gewichte proportional zum Ergebnis
(Proportionalitätsfaktor  , vgl. Formel (10) wij (t  1)     j  oi    wij (t ) ).
Gewichtsmatrix W_jk ist danach auf dem neuesten Stand. Es folgt die Berechnung
von Gewichtsmatrix W_ij. Da es für die mittlere Schicht keine Sollwerte gibt,
zieht man das Delta der Ausgabeschicht heran. Dieses wird wie ein normales Signal
mit den Gewichten der mittleren und der letzten Neuronenschicht verrechnet. DeltaWerte der jeweils zuletzt bearbeiteten Schicht müssen in die Bearbeitung
eingebracht werden. Die erweiterte Delta-Regel ist offensichtlich eine rekursive
Bearbeitungsvorschrift.
public void Feedbackward()
{
// Fehlerrate(D_k) für die Ausgabeschicht berechnen
// ---------------------------------------// |
D_k =(T_k - O_k) * O_k * (1 - O_k)
|
// ---------------------------------------for (int i= 0; i < AnzAusgabeschicht; i++)
{
D_k[i] = (T_k[i] - O_k[i]) * O_k[i] * (1 - O_k[i]);
}
// Summe der Gewichte für die Ausgabeschicht berechnen
// ----------------------------------------// | Summe(W_jk) = W_jk + E * D_k * O_k
|
// ----------------------------------------// und neuen Wert fuer die Biases_k berechnen
// ------------------------------------------// | Summe(Biases_k) = Biases_k + E * D_k
|
// ------------------------------------------for (int i= 0; i < AnzAusgabeschicht; i++)
{
for (int j= 0; j < AnzZwischenschicht; j++)
{
W_jk[i][j] = W_jk[i][j] + (Epsilon * D_k[i] * O_j[j]);
}
Biases_k[i] = Biases_k[i] + (Epsilon * D_k[i]);
}
// Fehlerrate(D_j) für die Zwischenschicht berechnen
// ---------------------------------------------// | D_j = O_j * (1 - O_j) * Summe(D_k * W_jk)
|
// ---------------------------------------------for (int i= 0; i < AnzZwischenschicht; i++)
{
D_j[i]=0;
for (int j= 0; j<AnzAusgabeschicht; j++)
{
D_j[i]=D_j[i] + ( D_k[j] * W_jk[j][i]);
}
D_j[i]=D_j[i] * O_j[i] * (1 - O_j[i]);
}
//
//
//
//
//
//
//
Summe der Gewichte für die Zwischenschicht berechnen
----------------------------------------| Summe(W_ij) = W_ij + E * D_j * O_j
|
----------------------------------------und neuen Wert fuer die Biases_j berechnen
------------------------------------------| Summe(Biases_j) = Biases_j + E * D_j
|
103
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
// ------------------------------------------for (int i= 0; i < AnzZwischenschicht; i++)
{
for (int j= 0; j<AnzEingabeschicht; j++)
{
W_ij[i][j]= W_ij[i][j] + (Epsilon * D_j[i] * O_i[j]);
}
Biases_j[i] = Biases_j[i] + (Epsilon * D_j[i]);
}
}
Schwellwerte werden genau die Signalgewichte gelernt. Man behandelt einen
Schwellwert wie eine Verbindung von einem Neuron, das ständig das Signal 1 liefert.
Die Methode Lernen() rufen immer wieder die Methoden Feedforward() bzw.
Feedbackward() auf.
public void Lernen()
{
Steps++;
Feedforward();
Feedbackward();
}
3. Schreibtischtest
3.1 Ausgangslage
Die vorliegenden Methoden sollen mit der folgenden Netzkonfiguration getestet
werden, die das XOR-Problem lösen soll:
104
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abb. 2.4-9: Backpropagation-Netz zur Lösung des XOR-Problems, Ausgangslage
Gewichtsmatrix W_ij, Gewichtsmatrix W_jk erhielten über die Methode
Ruecksetzen() zufällige Anfangswerte zwischen 0 und 1 zugewiesen. Das gilt
auch für die Aktivierungsschwellwerte der mittleren und der letzten Schicht (Biases_j,
Biases_k).
Der Test ordnet den beiden Eingabeelementen das Wertepaar (0,0) zu, das XOR
bestimmt dazu die Lösung 0.
105
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2 Feedforward (vgl. Methode Feedforward())
Abb. 2.4-10: Backpropagation-Netz zur Lösung des XOR-Problems, Ausgangslage
106
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.3 Feedbackward (vgl. Methode Feedbackward())
Abb. 2.4-11: Backpropagation-Netz zur Lösung des XOR-Problems, Endsituation
2.4.3.2 Applet zur Lösung des XOR-Problems mit einem BackpropagationNetzwerk
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/fi/BPXorSim.html
107
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.4.4 Anwendungen
2.4.4.1 Simulator für Backpropagation-Netze
Der Simulator zeigt das Trainieren und Testen folgender Funktionen mit einem
Backpropagation Netz:
http://fbim.fh-regensburg.de/~saj39122/wabrpi/index.html
Logisches UND, logisches ODER, Multiplexer, logisches XOR (Standard), Zwei-BitAddierer.
2.4.4.2 Kreuzprodukt
Dieses Java-Applet erlernt mit Hilfe eines Backpropagation-Netzes, wie man aus
zwei Vektoren das Kreuzprodukt errechnet.
http://fbim.fh-regensburg.de/~saj39122/jkp/index.html
2.4.4.3 BPN-Robot
Das Applet zeigt die Darstellung eines autonomen Roboters mit Hilfe eines
Backpropagation-Netzes
http://fbim.fh-regensburg.de/~saj39122/NN/StellwagPrucha/index.html
108
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.5 Autoassoziatoren
2.5.1 Aufbau
Autoassoziatoren bilden eine Klasse verwandter Modelle, bei denen eine
bestimmte Anzahl von Einheiten vollständig miteinander verknüpft sind.

externe Eingabe: x
Abb. 2.6-1: Topologie von Autoassoziator-Netzen

Ausgabe: x
Es können nur solche Verbindungen zwischen Einheiten trainiert werden, deren
Zielvorgabe extern (außerhalb des Netzwerks) spezifiziert ist. Trotz dieser
Einschränkung können Autoassoziatoren lernen, Muster zu vervollständigen bzw.
verdrehte Muster in Originalform wiederherzustellen. Außerdem können sie
trainieren, den Prototyp aus einer Menge Muster auszuwählen, die während der
Trainingsphase präsentiert wurden.
Autoassoziatoren gleichen bis auf eine, aber wesentliche Ausnahme den
Musterassoziatoren. Es gibt nur eine einzelne Menge von Einheiten, keine
Verbindung zwischen Ein- und Ausgabeeinheiten, jede Einheit ist sowohl Eingabeals auch Ausgabeeinheit und jede Einheit ist mit jeder anderen (u.U. auch mit sich
selbst) verbunden. Eingabemuster sind Vektoren mit positiven und negativen
109
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eingabevektoren für die Einheiten. "Bias"-Elemente gibt es nicht. Die Einheiten
nehmen dann positive und negative Werte an, die sich durch die Verbindungen
innerhalb des Netzwerks bzw. durch externe Eingabe ergeben.
2.5.2 Grundlagen
1. Der lineare Autoassoziator
1.1 Aktivierungsregel
Er ist bestimmt durch folgende Aktivierungsregel (lineare Aktivierungsfunktion):
ai  estr  exteingabei  istr  inteingabei  (1  decay)  ai
"exteingabei" und inteingabei bestimmen die Netzeingabe der Einheit i. "estr" und
"istr" sind Parameter und beeinflussen externe und interne Eingabe.
1.2 Arbeitsweise
Zum Zeitpunkt 0 sind alle Einheiten auf 0 gesetzt. Zu Beginn des 1. Zyklus ist ein
Muster mit Werten von +1 und -1 Eingabe. Beim 1. Durchlaufen des Zyklus nimmt
jede Einheit einen Aktivierungswert ( estr  exteingabe) an. Danach folgt die
Verarbeitung der Ausgabe. Der Einfachheit halber kann "decay" auf 1.0 gesetzt
werden. In diesem Fall ist die Aktivierung jeder Einheit zum Zeitpunkt t gegeben
durch:
(1)
ai (t )  estr  exteingabei (t )  istr  inteingabei (t 1)
"inteingabei" ist festgelegt aus den Aktivierungen zum Zeitpunkt (t-1).
Das lineare Modell neigt dazu sich auszudehnen. Aktivierungen können unbegrenzt
anwachsen.
1.3 Assoziation der Eigenvektoren
Ein linearer Assoziator assoziiert (in aller Regel) einen beliebigen Eingabevektor
(unter gewissen Einschränkungen) mit dem Eigenvektor, der den größten Eigenwert
hat.

Ein n-dimensionanler Vektor a 0 kann als eine Linearkombination der n

Eigenvektoren ausgedrückt werden: a0  1 x1   2 x2  ...   n xn , wobei angenommen
 

wird, dass x1 , x2 ,..., x n die n Eigenvektoren sind und 1 , 2 ,..., n ihre
Vielfacheinheiten.
Nach
der
ersten
Iteration
ergibt
sich
  


 


 42
daraus: a1  a0W  1 x1   2 x2  ...   n xn W  11 x1   2 2 x2  ...   n n xn . Nach t
Iterationen erhält man den Terrm:
42
Ohne Beschränkung der Allgemeinheit sei
1  0
der Eigenwert der Matrix
110

W
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen




at   11t x1   2 t2 x 2  ...   n tn x n
Da 1 der größte Eigenwert ist, dominiert er in der Potenzierung und das bedeutet:


Ein beliebiger Vektor a 0 wird in die Richtung des Eigenvektors x1 gezogen, sofern
 1 nicht Null und der Eigenwert 1 positiv ist.
  2 0
 . Die Eigenvektoren dieser
Bsp.: Betrachtet wird die Gewichtsmatrix W  
 0 1
Matrix lauten (1,0) und (0,1) mit den Eigenwerten 2 und 1. Das bedeutet also, dass
jeder Anfangsvektor x1 , x2  nach t Iterationen die Form (2 t x1 , x2 ) annimmt und damit
mit dem ersten Eigenvektor assoziiert wird.
2. Linearer Hebbscher Autoassoziator
2.1 Lernen (Trainieren des Netzwerks)
Das Trainieren des Netzwerks verursacht nach der Hebbschen Regel folgende
Änderungen der Gewichte bei jedem Lernschritt:
(2)
wij    exteingabei  exteingabej
2.2 Test
Es gilt 43
(3)




o t  k   ol  ( i l  i t )
l
k  n   (n ist die Anzahl der Einheiten;  ist ein Parameter, der die Größe eines
Lernschritts bemißt)
ol kann durch il ersetzt werden (, da während des Trainings der Eingabevektor mit
sich selbst in Beziehung steht).
Aus (3) folgt:
- Falls das Testeingabemuster orthogonal ist zu den Eingabemustern, die während
der Trainingsphase benutzt wurden, dann wird das Netzwerk die Ausgabe 0
erzeugen.
- Falls das Testmuster orthogonal ist zu allen Eingabemustern, die während der
Trainingsphase benutzt wurden, bis auf eine einzige Ausnahme (und die ist
identisch zu einem Muster der Lernphase), dann ist die Ausgabe gleich dem
Testmuster multiplizier mit k.
- Falls das gleiche Muster m-mal während der Lernphase präsentiert wurde, dann ist
es so, als ob m Muster im Netz gespeichert sind. Wird dieses Muster beim Test
repräsentiert, dann ist die Ausgabe gleich dem Testmuster multipliziert mit m  k
43
vgl. 2.3.2, (14) Präsentation mehrerer Muster wäöhrend der Trainingsphase
111
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wird eine Menge orthogonaler Muster in einem Hebbschen Autoassoziator trainiert
und danach eines der gespeicherten Muster aufgerufen, dann ist die Ausgabe eine
skalierte Version der Eingabe. Der Skalierungsfaktor ist proportional zu der Anzahl
von Tests mit der das Muster während der Testphase präsentiert wird.
Muster, die durch das Netzwerk skaliert werden, heißen Eigenvektoren.
Eigenvektoren unterscheiden sich nur durch einen Faktor, den Eigenwert, vom
Muster während der Lernphase. Die erlernten orthogonalen Muster des Hebbschen
Autoassoziators bilden eine Menge solcher Eigenvektoren. Ihre Werte sind k  ml (ml
ist die Anzahl der Präsentationen während der Lernphase).
Zu der durch die interne Aktivierung hervorgerufenen Ausgabe (vgl. (3)) kommt
noch weiterhin anstehende externe Eingabe, da beim linearen Autoausoziator
mindestens zwei Zyklen durchlaufen werden müssen (vgl. (1)).
2.3 Beispiele
2.3.1 Beispiel 1
2.3.1.1 Eingabemuster
Gegeben sind die beiden Eingabemuster:

i  (1, 1,1, 1,1,1, 1, 1)
1

i 2  (1,1, 1, 1, 1,1, 1,1)
2.3.1.2 Trainieren des Eingabemusters.
Die Gewichte bestimmen sich nach Formel (2):
wij    exteingabei  exteingabej während der Lernphase zu:
1. Schritt
0.125
-0.125
0.125
-0.125
0.125
0.125
-0.125
-0.125
-0.125
0.125
-0.125
0.125
.......
.......
.......
.......
0.125
-0.125
0.125
-0.125
-0.125
0.125
-0.125
0.125
0.125
-0.125
0.125
-0.125
0.125
-0.125
0.125
-0.125
-0.125
0.125
-0.125
0.125
-0.125
0.125
-0.125
0.125
0
-0.25
0.25
-0.25
0
0
0
-0.25
0.25
0.25
0
0
-0.25
0
0
0
0.25
-0.25
2. Schritt
0.25
0
0
-0.25
0
0.25
-0.25
0
0.25
-0.25
....
....
....
....
112
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
0
....
Test: Der Test mit dem 1. Eingabemuster ergibt nach den Formeln(1) bzw. (3):

o t1  (2, 2, 2, 2, 2, 2, 2, 2)
Das 1. Eingabemuster ist orthogonal zum 2. Eingabemuster. Der Test mit dem 2.
Eingabemuster ergibt nach den Formeln (1) und (3):

o t2  (2, 2, 2, 2, 2, 2, 2, 2)
2.3.2 Beispiel 2
2.3.2.1 Eingabemuster
Gegeben sind 4 Eingabemuster (Ausgangspunkt: Gewichtsmatrix vom 1. Bsp.)

i  (1, 1,1, 1,1,1, 1, 1)
1

i 2  (1,1, 1, 1, 1,1, 1,1)

i 3  (1,1,1,1, 1, 1, 1, 1)

i 4  (1, 1, 1,1,1, 1, 1,1)
113
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.2.2 Trainieren der Eingabemuster
Die Gewichte bestimmen sich nach Formel (2) wij    exteingabei  exteingabej
während der Lernphase zu:
1. Schritt
0.375
-0.125
0.125
-0.375
......
......
......
......
-0.125
0.375
-0.375
..........
0.125
-0.375
0.375
........
-0.375
0.125
-0.125
..........
0.125
-0.375
0.375
........
0.375
-0.125
0.125
.........
-0.375
0.125
-0.125
..........
-0.125
0.375
0.375
.........
0
-0.5
0.5
........
-0.5
0
0
..........
0
0.5
0.5
........
0.5
0
0
.........
-0.5
0
0
..........
0
0.5
-0.5
.........
0.125
-0.375
0.625
........
-0.375
0.125
0.125
..........
-0.125
-0.625
0.375
........
0.375
-0.125
-0.125
.........
-0.625
-0.125
0.125
..........
-0.125
0.375
-0.625
.........
0
-0.25
0.75
........
0.25
0
0
..........
0
-0.75
0.25
........
0.25
0
0
.........
-0.75
0
0
..........
0
0.25
-0.75
.........
2. Schritt
0.5
0
0
-0.5
0
0.5
-0.5
0
0
0.5
-0.5
..........
3. Schritt
0.625
0.125
0.125
-0.375
-0.125
0.375
-0.625
-0.125
0.125
0.625
-0.375
..........
4. Schritt
0.75
0
0
-0.25
0
0.25
-0.75
0
0
0.75
-0.25
..........
114
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.3.2.3 Test

o t1  (3, 3, 3, 3, 3, 3, 3, 3)

o t2  (3, 3, 3, 3, 3, 3, 3, 3)

o t3  (2, 2, 2, 2, 2, 2, 2, 2)

o t4  (2, 2, 2, 2, 2, 2, 2, 2)

Erfolgt der Test mit dem Eingabemuster ( 1 o t4 ) , dann ist

o t  ( 2, 2, 2, 2, 2, 2, 2, 2)
Jedes Muster ist hier ein Eigenvektor des Netzwerks. Der Eigenwert ist gegeben
durch k  ml (ml ist die Anzahl der Präsentationen während der Lernphase).
2.3.3 Beispiel 3
Das lineare Modell neigt dazu, sich auszudehnen. Eine Erhöhung der Anzahl der
Zyklen von 2 auf 4 führt zu folgenden Aktivierungen:

1. Testmuster i 1  (1, 1,1, 1,1,1, 1, 1)
Im 1. Zyklus ist die Aktivierung: (1, 1,1, 1,1,1, 1, 1)
Im 2. Zyklus ist die Aktivierung: (2, 2, 2, 2, 2, 2, 2, 2)
Hinzu kommt noch die externe Eingabe: (3, 3, 3, 3, 3, 3, 3, 3)
Im 3. Zyklus wird diese Aktivierung wieder mit dem Eigenwert 2 multipliziert:
(6, 6, 6, 6, 6, 6, 6, 6) . Das ergibt mit der anstehenden Eingabe im linearen
Autoassoziator: (7, 7, 7, 7, 7, 7, 7, 7)
Im 4. Zyklus wird diese Aktivierung wieder mit dem Eigenwert 2 multipliziert:
(14, 14,14, 14,14,14, 14, 14) . Hinzu kommt noch die weiterhin extern anstehende
Eingabe: (15, 15,15, 15,15,15, 15, 15)
Die übrigen Muster und die zugehörige Aktivierung lassen sich auf analoge Weise
ableiten.
2. Testmuster

o t2  (15,15, 15, 15, 15,15, 15,15)
3. Testmuster bzw. 4. Testmuster


o t3  ( 4, 4, 4, 4, 4, 4, 4, 4) bzw. o t4  ( 4, 4, 4, 4, 4, 4, 4, 4)
115
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Delta-Regel
Das externe Eingabemuster wirkt einmal zu Beginn des Zyklus. Die Verarbeitung
durchläuft mehrere Zyklen. Nach dem Ende der zyklischen Durchläufe werden die
Gewichte ausgerichtet anhand des festgestellten Fehlers:
fehleri = exteingabei - inteingabei
"inteingabei" ist bestimmt durch mehrmaliges Durchlaufen des Zyklus, im
wesentlichen bestimmt durch die Aktivierungen am Ende des vorangegangenen
Zyklus.
Generell ist in Autoassoziatoren jede Einheit mit jeder anderen Einheit verbunden,
auch mit sich selbst. In Netzwerken mit einer sehr großen Anzahl von Einheiten sind
die "Selbstverbindungen" uninteressant. In kleineren Systemen, die mit Hilfe der
Delta-Regel implementiert sind, können starke Selbstverbindungen das Lernen
besiegen. Selbstverbindungen ermöglichen den Einheiten ihre eigenen
Verbindungen vorzuziehen, So reduziert sich der Fehler. Behindert wird aber die
Stärke des Lernprozesses, der über die Verbindung mit anderen Einheiten realisiert
ist.
116
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.5.3 Das "Brain-State-in-the-Box"-Modell
Das Brain-State-In-A-Box (BSB) Modell wurde 1977 von Anderson, Silverstein, Ritz
und Jones eingeführt und ist ein einfaches nichtlineare Netzwerk, das einen
Modellierungsversuch der Assoziationsfähigkeit des menschlichen Gehirns darstellt.
Das BSB ist vollständig vernetzt:
-
Zwei Knoten können für beide Übertragungsrichtungen unterschiedlich gewichtete
Verbindungen haben
ein Knoten kann mit sich selbst verbunden sein (direkte Rückkopplung)

Das BSB-Modell ist ein autoassoziatives Netz, bei dem eine Matrix W gesucht wird,
 
die folgende Gleichung erfüllt: XW  X . Diese rein lineare Berechnung ist jedoch für
den praktischen Gebrauch nicht nutzbar.
Das BSB-Modell hält die Aktivierungswerte in Grenzen. Aktivierungen werden nicht
größer als K bzw. nicht kleiner als -K (üblich ist K = 1.0). So sind die Aktivierungen
quasi in einer Box eingeschlossen. Die Verarbeitung führt dazu, daß Muster zu den
Kanten der Box44 drängen. Kanten entsprechen dann Mustern, die erlernt wurden.
Gestörte und verdrehte Muster treiben dann auf die Werte der gespeicherten Muster
zu (mit dem Nebeneffekt: Vervollständigung und Wiederherstellung der Muster).
Die Eckpunkte des Hyper-Würfels repräsentieren dabei die möglichen Zielzustände,
in die ein Eigenvektor durch genügend viele Iterationen überführt werden kann. Die
möglichen Zielzustände in einem dreidimensionalen Fall wären demnach: (-1,-1,-1),
(-1,-1,1), (-1,1,1),(+1,-1,-1),(+1,-1,+1),(+1,+1,-1),(+1,+1,+1)
Allerdings hängt es von der Gewichtsstruktur des Netzes ab, welche Eckpunkte
verarbeitet werden. Daraus ergeben sich folgende Eigenschaften für das BSBModell:
-
-
die Menge der zulässigen Eingaben liegt in einem limitierten Kontinuum von
 1  ai  1 , so
dass der durch die zulässigen Eingabevektoren aufgespannte Raum durch –1 und 1 begrenz
ist.
die Aktivierung des BSB-Netzes wird über mehrere Aktivierungszyklen kummuliert, so dass
unabhängig von der Gewichtung der Verbindungen eine der Ecken des Hyperkubus erreicht
wird.
Die
Aktivierung
ist
bestimmt
durch
45
ai (t )  estr  exteingabei (t )  istr  inteingabei (t 1) .

Die Limitierungsfunktion hat zum Ziel den Vektor x für den nächsten Schritt zu
berechnen und gegebenenfalls auf die Grenzen –1 und +1 zu kürzen. Unter diesen
Umständen ist es angebracht mit schwächeren Einwirkungen (estr = 0.1) zu
rechnen.
Die Power-Methode



Eine Matrix W wird mit dem Eigenvektor46 v0 multipliziert. Die Ausgabe v1 wird

wiederum mit W multipliziert. Durch die ständige Wiederholung dieses Vorgangs
richtet sich der anfangs eingegebene Vektor in eine Richtung besonders aus,
44
45
46
Hyper-Würfel
vgl. 2.5.2

Der Eigenvektor x einer quadratischen Matrix ist der Lösungsvektor, der die Gleichung
(Eigenwertgleichung) erfüllt
117


Ax  x
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 

nämlich nach dem Eigenvektor mit dem größten Eigenwert. Falls e1 , e2 ,..., en die


Eigenvektoren einer Matrix sind, dann lässt sich v0 auch schreiben als  i ei ,
wobei
die
gewichteten
Koeffizienten
sind.
Daraus
folgt:
i






v1  Av0  A i ei   i i ei ( i : Eigenwert für Eigenvektor e i ). Das Verhältnis
zwischen 2 Komponenten i und j des Vektor beträgt demnach:
 i i
. Nach n
 j j
n
    
Iterationen wird ersichtlich, dass sich der Faktor  potenziert:  i  i  . Da sich in
    
 j  j 
der Praxis unter allen Umständen zwei Eigenwerte finden lassen, für die gilt i   j
wächst das Verhältnis zwischen den Eigenwerten über alle Grenzen, d.h.: Der
Eigenvektor mit dem größten Eigenwert (dominanter Eigenwervektor) wird sich bei
entsprechend vielen Iterationen am stärksten durchsetzen.
Durch dieses Verffahren lassen sich Eigenwerte für eine beliebige Genauigkeit




berechnen: v (t  1)  Av (t ) . Das Verhältnis zwischen v (t  1) und v (t ) ist der
gesuchte Eigenwert  . Je mehr Iterationen man vor der Berechnung ausführt, umso
genauer lässt sich  berechnen.
Bsp.: Gegeben sind die beiden Muster

i  (1, 1,1, 1,1,1, 1, 1)
1

i 2  (1,1, 1, 1, 1,1, 1,1)
Wie die vorstehenden Beispiele zeigen, führt ein 2maliges Trainieren dieser beiden
Eingabemuster auf die folgende Matrix der Gewichte:
0.5
0
0
-0.5
0
0.5
-0.5
0
0
0.5
-0.5
..........
0
-0.5
0.5
........
-0.5
0
0
..........
0
0.5
0.5
........
0.5
0
0
.........
-0.5
0
0
..........
0
0.5
-0.5
.........
Jede der trainierten Muster ist ein Eigenvektor der Gewichtsmatrix mit Eigenwert 2.0
(, da jedes Muster während er Lernphase zweimal präsentiert wurde).
Die Testphase zeigt für 8 Zyklen:
1. Zyklus
Die Aktivierung steht auf 0.1exteingabe. Im ersten Zyklus führt die externe Einheit zur
Aktivierung jeder Einheit auf estr oder 0.1 mal der externenen Eingabe.
2. Zyklus
Berücksichtigt wird: 2  0.1  0.1 exteingabe  0. 3
Da das resultierende Aktivierungsmuster gerade 0.1 mal dem präsentierten Muster
ist, ist das Aktivierungsmuster ein Eigenvektor und so ist im 2. Zyklus das interne
Muster zwei mal so groß wie die vorhergehende Aktivierung (oder 0.2 mal der
externen Eingabe).
3. Zyklus
118
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Berücksichtigt wird: 2  0. 3  0.1 exteingabe  0. 7
4.Zyklus
Berücksichtigt wird: 2  0. 7  0.1 exteingabe  1.5
Die Aktivierung überschreitet die Grenzen der Box. Das Modell schneidet auf 1.0
bzw. -1.0 ab.
1. Vervollständigung von Mustern (pattern completion process)
Ein unvollständiger Testvektor enthält anstatt +1 bzw. -1 Nullen.
Liegt bspw. folgendes Testmuster vor:

i t  (1, 1,1, 1, 0, 0, 0, 0)
, dann ist die Aktivierung nach dem 1. Zyklus: ( 0.1, 0.1, 0.1, 0.1, 0, 0, 0, 0)
Das Skalarprodukt zu den in 2 Lernschritten erlernten Eingabemustern:

i  (1, 1,1, 1,1,1, 1, 1)
1

i 2  (1,1, 1, 1, 1,1, 1,1)


ist 0.5 bzw. 0. Die interne Eingabe des 2. Zyklus ist dann: 2  0.1 0.5  i 1  0.1 i 1
Diese interne Eingabe wird zur externen Eingabe hinzuaddiert und führt zur
folgenden Aktivierung: ( 0. 3, 0. 3, 0. 3, 0. 3, 0. 3, 0. 3, 0. 3, 0. 3)


Die interne Eingabe im 3. Zyklus ist dann: 2  0.1 1. 5  i 1  0. 3  i 1 und führt zur
folgenden Aktivierung: ( 0. 4, 0. 4, 0. 4, 0. 4, 0. 3, 0. 3, 0. 3, 0. 3)

An dieser Stelle ist offensichtlich, daß die Aktivierung sich in Richtung i 1 bewegt.
Sobald die Grenzen +1 bzw. -1 erreicht sind, erhalt man eine exakte Reproduktion

von i 1 .
2. Gestörte Muster
Auch Störungen können u.U. erkannt werden. Wird bspw. ein Test mit dem Muster

i t  (1, 1,1, 1,1,1, 1,1)
an den (in 2 Lernschritten) trainierten Eingabemustern


i 1  (1, 1,1, 1,1,1, 1, 1) bzw. i 2  (1,1, 1, 1, 1,1, 1,1)
durchgeführt, dann ergibt sich:
Am Ende des 1. Zyklus: ( 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1)




Interne Eingabe für den 2. Zyklus: 0. 75  0.1 2 i 1  0. 25  0.1 2  i 2  0.15  i 1  0. 05  i 2
Aktivierung nach dem 2. Zyklus
(0.15 -0.15 0.15 -0.15 0.15 0.15 -0.15 -0.15)
(0.05 0.05 -0.05 -0.05 -0.05 0.05 -0.05 0.05)
----------------------------------------------(0.2 -0.1
0.1 -0.2
0.1 0.2 -0.2 -0.1)
Hinzu kommt die externe Eingabe
(0.1 -0.1
0.1 -0.1
0.1 0.1 -0.1
0.1)
---------------------------------------------119
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(0.3
-0.2
0.2
-0.3
0.2
0.3
Interne Eingabe für den 3. Zyklus:

-0.3
0)



(0. 75  0.1  2  0. 75  01) i 1  ( 0. 25  0.1  0. 25  0.1 2) i 2  0. 225  i 1  0. 075  i 2
Aktivierung nach den 3. Zyklus
(0.225 -0.225 0.225 -0.225 0.225 0.225 -0.225 -0.225)
(0.075 0.075 -0.075 -0.075 -0.075 0.075 -0.075 0.075)
----------------------------------------------(0.3
-0.15
0.15 -0.3
0.15 0.3
-0.3
-0.15)
Hinzu kommt die externe Eingabe
(0.1
-0.1
0.1
-0.1
0.1
0.1
-0.1
0.1)
----------------------------------------------------(0.4
-0.25
0.25 -0.4
0.25 0.4
-0.4
-0.05)
Interne Eingabe für den 4. Zyklus:




(0. 75  0.1  0. 225) i 1  (0. 25  0.1  0. 075) i 2  0. 3  i 1  0.1 i 2



i 1 geht dreimal stärker in die interne Eingabe ein als i 2 . Der einfluß von i 1 nimmt
zu, bis schließlich die Grenzwerte erreicht werden.
120
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6 Thermodynamische Modelle
2.6.1 Das Hopfield-Modell
2.6.1.1 Beschreibung
1. Übersicht
Der Physiker Hopfield beschäftigt sich mit dem Verhalten von Festkörpern
(Spingläsern). Das wird im wesentlichen bestimmt durch den "Ising-Spin", einer
Eigenschaft von magnetischen Atomen, die durch 2 Zustände (+1 oder -1)
beschreibbar ist. Die magnetische Wechselwirkung zwischen den Atomen läßt sich
durch einen mathematischen Formalismus beschreiben, der zu den Hopfield-Nezen
führt.
Hopfield-Netze gehören zur Klasse der Feedback-Netzwerke, d.h. die Ausgabe wird
wieder in das System als Eingabe zurückgeführt. Es sind autoassoziative Netze. Das
Hopfield-Netz besteht aus einer einzigen Schicht, in der N binäre Zellen vollständig
und symmetrisch miteinander vernetzt sind.
....
....
....
....
....
....
....
....
....
Abb. 2.6-1: Topologie des Hopfield-Netzes
Die vollständige Vernetzung zeigt deutlich ein stark dynamisches Verhalten. Eine
eindeutige Ausgabe liegt erst dann vor, falls ein Gleichgewichtszustand (vergleichbar
den thermischen Gleichgewicht des Spinglases) eingetreten ist, in dem der
Ausgangswert aller Einheiten im zeitlichen Verlauf konstant bleibt.
121
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Die Eingabe erfolgt durch Setzen der Zustände der Zellen, der Eingabevektor ist die
Gesamtaktivität des Netzes zum Zeitpunkt t = 0.
Ausgabe liegt dann vor, falls das Netz einen stabilen Zustand erreicht hat: der
Ausgabevektor ist die Aktivität des Netzes im stabilen Zustand.
Jedes Bit i eines Musters (jeder Pixel) wird dargestellt durch den Zustand a i einer
Zelle im Netz.
Die Hauptanwendung von Hopfield-Netzen liegt in der Mustererkennung. Gibt man
bspw. ein Schwarz-Weiß-Bild vor, so kann man jedes schwarze Pixel durch +1 und
jedes weiße Pixel durch -1 kennzeichnen.
2. Gewichte
Die Kopplung zwischen 2 Zellen "j" (Sender) und "i" Empfänger ist durch das
Gewicht wij gegeben.
wij > 0: verstärkende (exitatorische) Verknüpfung
wij < 0: schwächende (inhibitatorische) Verknüpfung
Zwei Einschränkungen sind nötig zur Übertragung der Erkenntnisse des SpinglasModells auf das Hopfield-Netzwerk:
(1) Die Gewichte sind symmetrisch: wij = wji
(2) Es gibt keine Rückkopplung einer Zelle mit sich selbst: wii = 0
2.6.1.2 Berechnungsgrundlagen
1. Dynamik
Sie wird beschrieben durch:
(1) die Propagierungsfunktion neti   wij  o j ( t )
j
1, falls neti (t )  i
(2) die Aktivierungsfunktion ai (t 1) = {
-1, falls neti (t )  i
(3) die Ausgabefunktion oi (t )  ai (t )
Das kann zusammengefaßt werden zu
1, falls neti (t )  i
oi = {
-1, falls neti (t )  i
Die Wahl der Binärwerte ist im Hopfield-Netz nicht eindeutig. Man findet Versionen
mit den Werten 0 und 1 bzw. Modelle mit +1 und -1
122
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Legt man die berechneten Werte ai bzw. oi wieder als Eingabe ans Netz, entstehen
weitere Netzwerte. Das wiederholt sich, bis möglicherweise das Verfahren
konvergiert, d.h. irgendwann ändern sich die Grenzwerte nicht mehr.




a  F (W  i  ) ,  : Schwellwertvektor

An das Netz wird also zu Beginn ein binäres Eingabemuster i aus den Zahlen +1
und - 1 gelegt: ai (0)  i1
Die weiteren Rechenschritte erfolgen nach der Iterationsvorschrift:
oi ( t )  F ( ai ( t ))
n
ai ( t  1)   wij  o j ( t )
j 1
Bsp.: Gegeben ist
1
-1
-1
Abb.: 2.7-2: Ein Hopfield-Netz mit drei Neuronen
 0 1 1


W   1 0 1


 1 1 0

"F" ist die Signumfunktion, alle Schwellwerte sind 0. Der Ausgabevektor bestimmt
 1

 
sich mit dem Eingabevektor i   1 in mehreren Schritten (2 Iterationen) zum
 
 1
Gleichgewichtszustand:
1. Schritt:
123
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 1
 
o  F(W i )   1 
 
 1

 
2. Schritt
 1
 
o  F(W i )   1
 
 1

 
3. Schritt
 1
 
o  F(W i )   1
 
 1

 
2. Energiefunktion
In der Spinglastheorie, aus der die Hopfield-Netzen abgeleitet sind, sind
Gleichgewichtszustände dadurch charakterisiert, daß die Gesamtenergie (HamiltonFunktion) des Systems minimal wird.
E
1
  w ij  o j  o i  i  i  o i
2 i j
Falls die Schwellwerte auf Null gesetzt sind, ergibt sich
1
E     w ij  o j  o i
2 i j
Hopfield forderte: Jedem gelernten Muster soll ein Energieminimum entsprechen.
Die Muster eines Hopfield-Netzes sind Minima der Energiefunktion47.
Man kann für jeden Eingabevektor, der an das Netz angelegt werden kann, E
errechnen. Falls das für alle möglichen Eingabevektoren erfolgt, dann entsteht eine
Energielandschaft mit Maxima und Minima. Minima werden dann angenommen,
wenn die Eingabe ein Muster ist.
3. Bestimmen der Gewichte
Ist ein Muster gegeben, das in einem Hopfield-Netz gespeichert werden soll, dann
können die Gewichte des gesuchten Netzes analytisch (ohne Lernvorgang)
angegeben werden. Es gilt:
47
Die Energiefunktion wird auch Hammilton-Funktion genannt
124
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
0, falls i = j
wij = {
aiaj, falls i <> j
Beweis:

F (W  a )  F (  wij  a j )  F (  ai  a j  a j )  F ((  a 2 j )  ai )  ai
j
j
j
Bsp.: Minibild mit 4 Pixeln
*
*
1
 
   1
Der zugehörige Vektor (Muster) ist: a   
1
 
1
 
Das mit diesem Muster stationäre Hopfield-Netz besteht aus 4 Elementen, die
zugehörige Gewichtsmatrix ist:
 0 1 1 1 


  1 0 1  1
1 1
0  1


 1 1 1 0 



 
Man kann leicht nachprüfen, daß a  F (W  a ) ist.
2.6.1.3 Mustererkennung mit Hopfield-Netzen
1. Aufbau der Gewichtsmatrix
Im praktischen Anwendungsfall sind mehrere Muster vorgegeben, die gespeichert
und umgeordnet werden müssen. Zu jedem vorgegebenen Muster gehört eine Matrix
W p mit den Gewichten
wij p  ai p  a j p
Aus derartigen Matrizen wird W = (W1+W2+...+Wp) gebildet.
Hat man nur wenige Bilder, dann speichert die Matrix W die Bilder (, falls sie nicht zu
stark korrelieren). Gibt es viele Bilder, reicht die Speicherkapazität nicht aus. Die
Wahrscheinlichkeit, daß ein Bild bei der Eingabe reproduziert wird, sinkt mit
ansteigender Anzahl Muster.
125
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Kapazität
Für die Kapazität eines Hopfield-Netzwerks existieren Abschätzungen:
- Für Netze mit einigen hundert Neuronen schätzte Hopfield Mmax  0.15 N 48
1
N
2
- Für Netze mit sehr großem N gilt: M max 
log N
- Schließlich wurde gezeigt, daß Mmax  N ist
Interessant sind auch Hopfields Beobachtungen bzgl. des Netzverhaltens je nach
Speicherauslastung:
- Für M  0.15  N können nicht allzu ähnliche Muster unterschieden werden
- Für M  0.15  N bilden sich immer mehr Nebenminma, in denen das Netz während
des Abrufs hängenbleibt
- Für M  0.5  N degenerieren die Energiebarrieren zwischen den einzelnen Minima,
wodurch das Netz die Assoziationsfähigkeit verliert.
Mit M  0.15  N bewegt man sich damit auf der sicheren Seite. Bei Hopfield-Netzen
ist im Vergleich zur konventionellen Speicherung der Speicherbedarf sehr hoch. Die
Muster werden ja in den Gewichten des Netzwerks gespeichert.
3. Aufgabe: Mustererkennung von 2 vorgegebenen Mustern
Gegeben sind 2 Muster:
Wie lautet die Gewichtsmatrix, falls diese Muster auf sich selbst abgebildet werden,
und ein schwarzer Punkt für ein Ausgangssignal von +1, ein weißer Punkt für -1
steht?
48
Mmax: maximale Anzahl speicherbarer Muster, N: Anzahl der Neuronen
126
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
0

0
2

0
 2

0
2

0

2
0 2
0 0
0 0
2 0
0 2
2 0
0 2
2 0
0 2
0
2
0
0
0
2
0
2
0
2
0
2
0
0
0
2
0
2
0 2
2 0
0 2
2 0
0 2
0 0
0 0
2 0
0 2
0 2

2 0
0 2

2 0
0 2

2 0
0 2

0 0

0 0
Gib die Anzahl der Iterationsschritte an, nach denen sich die beiden Muster auf sich
selbst abgebildet haben?
Die beiden Muster werden schon nach einem Iterationsschritt auf sich selbst
abgebildet.
4. Gestörte Muster
Bei Mustererkennungsaufgaben ist es erforderlich, gestörte oder verrauschte Muster
den ungestörten Originalen zuzuordnen und damit die Auswirkungen der Störungen
zu eliminieren. Das kann ein Hopfield-Netz auch leisten. So können bspw. die beiden
folgenden Muster als ein gestörtes Kreuz bzw. Quadrat der vorstehenden Aufgabe
interpretiert werden.
1. gestörtes Muster (Quadrat)
2. gestörtes Muster (Kreuz)
Nach den dargestellten Zwischenergebnissen der Iterationsschritte gibt das HopfieldNetz das jeweils ungestörte Muster aus.
Leider gibt es aber auch Fälle, bei denen das Hopfield-Netz nicht konvergiert. Das
folgende Muster weicht so stark von den bekannten Mustern (Quadrat, Kreuz der
vorstehenden Aufgabe), daß die Iteration nicht zum Stillstand kommt, sondern das
Hopfield-Netz ständig zwischen 2 Zuständen hin und her pendelt.
127
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Weiterhin kann auch der Fall vorkommen, daß das Netz gegen einen Zustand
konvergiert, der keinem vorgegebenen Muster entspricht.
2.6.1.4 Anwendungen zur Mustererkennung
2.6.1.4.1 Applet zur Mustererkennung mit dem Hopfield-Netz
1. Aufgabenstellung
Zu einem aus 49 Bildpunkten bestehenden frei wählbaren Muster sollen weitere
Zufallsmuster erzeugt und in die Gewichtsmatrix aufgenommen werden. Nach dem
Lernen kann bzw. soll überprüft werden, ob das eingegebene Muster wiedererkannt
werden kann.
2. Anleitung zur Bedienung des Applet
1. Im Applet-Fenster werden in der Mitte zwei Eingabetabellen für zu erlernende
Muster angegeben. Durch Mausklicks können in die beiden Vorlagen jeweils bis zu
49 Bildpunkte angegeben werden. Defaultmäßig sind neun Bildpunke vorgegeben.
Durch Druck auf den Button "aendern" erscheint ein Fenster mit dem Titel
"Properties aendern".
2. Nach Drücken des Buttons "Lernen" erscheint in einem speziellen Fenster die
Gewichtsmatrix.
3. Zur Mustererkennung dient die im Applet-Fenster links oben angegebene Tabelle.
Das wiederzuerkennende Muster ist dort einzutragen.
4. Nachdem das wiederzuerkennende Muster dort eingetragen ist, erfolgt nach
Drücken des Buttons "auswerten", die Wiedererkennung durch ein spezielles
Fenster „Muster erkannt“. Wird das Muster nicht wiedererkannt, dann wird in einem
speziellen Fenster angezeigt: „Die Anzahl der Schritte bis zum Erreichen des
Gleichgewichtszustands und das Muster, das sich im ausgeglichenen Zustand
ergeben hat.
5. Ein wiederzuerkennendes Muster kann durch Drücken des Buttons „stoeren (um
1)" um einen Bildpunkt verändert werden.
6. Mit dem Button "fuellen" kann das Feld für wiederzuerkennende Muster
vollständig mit schwarzen Bildpunkten gefüllt werden.
128
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3. Das Applet
http://fbim.fh-regensburg.de/~saj39122/doku/index.html
2.6.1.4.2 Bildmustererkennung mit Hilfe des Hopfield-Netzes49
http://fbim.fh-regensburg.de/~saj39122/wwr/Faces.html
49
http://fbim.fh-regensburg.de/~saj39122/wwr/Faces.html
129
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.1.5 Optimierungsaufgabe: Lösung des TSP mit Hopfield-Netzen
1. Problembeschreibung
1985 entdeckten J.J. Hopfield und D.W. Tank, daß Hopfield-Netze geeignet sind,
Lösungen von Optimierungsaufgaben bereitzustellen. Am häufigsten wurden
Lösungen zum TSP (Travelling-Salesman-Problem) mit Hopfield-Netzen versucht.
Bekanntlich muß in diesem Problem ein Handlungsreisender (Travelling Salesman)
nacheinander eine Reihe von Städten aufsuchen. Zur schnellen Durchführung seiner
Rundreise muß er eine optimale Rundreise auswählen, bei der er, beginnend in
einer Stadt, vor der Rückkehr alle anderen Städten genau einmal besucht, so daß
die Summe über die zwischen den Städten liegenden Strecke möglich klein ist. Die
Entfernungen zwischen den einzelnen Städten sind dem Handlungsreisenden
bekannt. Muß er insgesamt N Städte bereisen, gibt es offenbar N! mögliche
Rundreisen. Ist die Zahl N der Städte groß, so gibt es keine brauchbaren
Lösungswege, da meistens eine „kombinatorische Explosion“ auftritt. Aus der
Informatik ist bekannt, daß das TSP-Problem zur Klasse der NP-vollständigen
Probleme gehört. NP vollständig bedeutet: Es gibt keinen deterministischen
Algorithmus, der bei einer Eingabe der Länge n die Lösung mit einem Zeitbedarf p(n)
lösen kann, wobei p(n) ein Polynom ist. Allerdings kann dieses Problem ein nicht
deterministischer Algorithmus, der die Lösung „raten“ kann und dann die Lösung
verifiziert, in polynomialer Zeit lösen.
Mit Hopfield-Netzen läßt sich das Optimum nicht exakt bestimmen, aber gute
Näherungslösungen finden. Minimale Werte der Energiefunktion (lokale Minima) sind
beim Hopfield-Netz entscheidend für den Lösungsweg. Aus das TSP-Problem
übertragen, heißt das: Die Energiefunktion wird genau dann minimal, wenn die
optimierende Größe (Reiseroute, abzufahrende Strecke zwischen den Städten)
minimal wird. Sind N Städte aufzusuchen, dann fällt die Wahl auf ein Hopfield-Netz
mit N*N Neuronen, die in einem quadratischen Schema angeordnet sind:
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
Abb. 2.7.3: Neuronenbelegung beim TSP-Problem
Eine „1“ in einer Matrixposition (x,i) bedeutet: Die Stadt x wird als „i“-te Stadt
besucht. In jeder Spalte und in jeder Zeile steht genau ein Neuron auf „1“, alle
anderen sind „0“.
Eine zulässige Reiseroute ist immer dann bestimmt, wenn jede Zeile und Spalte
genau ein aktives Neuron besitzt. Die so besetzte Höhe garantiert, daß jede Stadt
genau einmal angefahren wird. Die Spalte mit genau einer „1“ bestimmt, daß der
Handlungsreisende zu einem Zeitpunkt immer nur eine Stadt besucht.
Gesucht werden dann Gewichte für das Netz. Da die Gewichte in die
Energiefunktion eingehen, wird dafür eine spezielle Energiefunktion mit folgenden
Randbedingungen ermittelt:
130
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
- Der Wert der Energiefunktion muß für Lösungen mit kürzerer Tourenlänge geringer
sein als für solche mit längerer Tourenstreckenlänge.
- Der Wert der Energiefunktion darf nur minimal sein für Lösungen, die genau in
jeder Zeile und Spalte eine „1“ besitzen
Mit diesen Randbedingungen erfolgt die Definition der einzelnen Terme zur
speziellen Energiefunktion.
(1) Jede Stadt darf nur einmal besucht werden. Benötigt wird daher ein Term, der
nur dann Null ist, wenn jede Zeile eine einzige „1“ besitzt. Dieser Bedingung genügt
der folgende Term, da das Produkt der beiden Werte y(x,i) und y(x,j) nur dann 1
ergibt, wenn die beiden Faktoren den Wert 1 besitzen und i ungleich j ist.
 y
x
i
j i
xi
 y xj
(2) Anderseits darf auch jede Spalte nur eine „1“ besitzen, da nicht mehrere Städte
gleichzeitig besucht werden dürfen. In Analogie zu (1) genügt dieser Bedingung der
Term
 y
x
i
v x
vi
 y xi
(3) Insgesamt müssen in der Matrix genau n „Einsen“ auftreten, d.h. jede Stadt und
jede Position muß einmal auftreten, denn durch (1) bzw. (2) ist nicht
ausgeschlossen, daß eine Zeile und Spalte nur aus Nullen besteht.



  y xi   .n 

 x i

2
(4) Die Länge der Tour soll insgesamt minimal sein. Als Distanz für eine Stadt x, die
an Position i steht, wird die Entfernung zu der Nachfolgestadt v an Position „i+1“,
addiert um die Entfernung zur Vorgängerstadt v an Position „i–1“, angenommen.
Dieser Bedingung genügt der Term:
 dist ( x, v)  y  y
xi
x
i
v ,i 1
 y v,i 1 
v
Bei dem Term unter (4) muß beachtet werden, daß jede Verbindung doppelt
berechnet wird. Deshalb muß ein Faktor 0.5 noch eingeführt werden, der auch als
allgemeine Energiefunktion auftritt. Die spezielle Energiefunktion enthält zusätzlich
noch Korrekturkomponenten für jeden der unter (1) bis (4) angegebenen Terme:
E
A
B
  y xi  y xj    y vi  y xi 
2 x i j i
2 x i v x
2
C 
D
 
   y xi   n     dist ( x, v)  y xi   y vi 1  y vi 1 
2  x i
2 x i v
 
131
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Für diese Energiefunktion müssen die Gewichte wxi,vj durch Koeffizientenvergleich
mit der allgemeinen Energiefunktion für Hopfield-Netze bestimmt werden.
Hierzu wird jedes Gewicht wxi ,vj in die 4 Komponenten A, B, C, D der speziellen
Energiefunktion zerlegt:
wxi ,vj  wxi( A,vj)  wxi( B,vj)  wxi(C,vj)  wxi( D,vj)
Unter Berücksichtigung der doppelten Indizes für die Neuronen latet die allgemeine
Energiefunktion:
E
1
  wxi ,vj  y xi  y vj   xi y xi
2 x v i j
x
i
Zur Bestimmung der Gewichte sind folgenden Fälle zu berücksichtigen:
1. x = v und j <> i
In diesem Fall ist lediglich der erste Term aus der speziellen Energiefunktion zu
berücksichtigen:
1
falls i = j
wxi( A,vj)   A   xy  (1   ij ) mit  ij  
0 sonst.
2. x <> v und j = i
Nur der zweite Term ist von Null verschieden. Man erhält wxi( B,vj)   A   ij  (1   xy )
3. Im Fall aller anderen Terme einer unzulässigen Tour soll gelten: wxi(C,vi)  C
4. Für den Fall x <> v, j = j + 1 und j = j – 1 gilt der 4. Term der speziellen
Energiefunktion. Man erhält wxi( D,vj)  D  dist xv  ( j ,i 1   j ,i 1 )
Zusammengefasst führt das zur folgenden Formel für die Berechnung der Gewichte:
wxi ,vj   A   xy  (1   ij )  B   ij (1   xy )  C  D  dist xy  ( j ,i 1   j ,i 1 )
Problematisch ist das Schätzen der konstanten A bis D. Wählt man A, B, C groß im
Verhältnis zu D, so konvergiert das Hopfield-Netz fast immer zu gültigen Touren, die
weit entfernt vom Optimum liegen. Wählt man A, B, C zu klein, so führt das zu
ungültigen Routen.
2. Das Applet zur Lösung des TSP-Problems mit einem Hopfield-Netz
http://fbim.fh-regensburg.de/~saj39122/doerei/TSP.html
132
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.1.6 Lösung des N-Damen-Problems
1. Das 4- bzw. 8- bzw. N-Damenproblem
Betrachtet man die Verteilung der Neuronen im Hopfield-Netz zur Lösung des TSPProblems, kann man die Schlußfolgerung ziehen, auch ähnlich geartete Probleme,
die keine Optimierungsprobleme sind, z.B. das 8-Damen-Problem, mit einem
Hopfield-Netz zu lösen. Das 8-Damen-Problem wird in der Informatik, ebenso wie
das TSP-Problem, häufig mit Hilfe eines Backtracking-Algorithmus gelöst. Ziel des 8Damen-Problems ist es, auf einem Schachbrett acht Damen so zu plazieren, daß
keine Dame eine andere schlagen kann.
Abb. 2.7.4: Eine Lösung des 8-Damen-Problems
Die Lösung des Problems wird beschrieben am einfachen, übersichtlich
darstellbaren 4-Damen-Problem, einer Vereinfachung des alllgemein bekannten 8Damen-Problems. Hier sollen bekanntlich 8 Damen so auf einem Schachbrett
postiert werden, daß sie sich nicht schlagen können, d.h.: 2 Damen stehen nie in
derselben Zeile oder Spalte oder Diagonale.
Auf eine Lösung dieses Problems führt die folgende Baumstruktur:
133
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(_,_,_,_)
1
2
3
2
(2,_,_,_)
(1,_,_,_)
4
1
S
S
(1,3,_,_)
2
3
S
(1,4,_,_)
4
2
3
4
4
(2,4,_,_)
1
S
S
(2,4,1,_)
(1,4,2,_)
(2,4,1,3)
Abb. 2.6-5: Zur Lösung des 4-Damen-Problems
Die Lösung des Problems läßt sich anschaulich darstellen:
0
-3
3
y
x
x
x
x
x
2
8
5
134
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Da Damen sich auch in der Diagonale bedrohen, sind auch Haupt- und
Nebendiagonalenplätze zu überwachen.
Das 4- bzw. 8-Damen-Problem kann zum N-Damen-Problem verallgemeinert
werden, bei dem „N“ Damen auf einem Spielfeld mit N*N Feldern so angeordnet
werden sollen, daß in jeder Zeile, Spalte und Diagonale maximal eine Dame
vorhanden ist.
Das N-Damen-Problem gehört zu einer Klasse von Problemen, für die höchstwahrscheinlich kein deterministischer Algorithmus existiert. Das bedeutet: Solche
Probleme sind theoretisch lösbar, da ein Lösungsalgorithmus angegeben werden
kann (z.B. Backtracking). Die Rechenzeit wächst aber stark an, daß durch
deterministische Verfahren keine Lösung gefunden werden kann.
2. Versuch zur Lösung des N-Damen-Problems
Ansatz: Neuronen werden ähnlich, wie beim TSP, zu einer dem Schachbrett
entsprechenden Matrix angeordnet (Identifilation durch Zeilenindex i und durch
Spaltenindex j). Ein aktives Neuron (oij = 1) bestimmt: „Auf Zeile i und Spalte j
befindet sich eine Dame“. Ein inaktives Neuron (oij = 0) legt fest: „Das Feld,
identifiziert durch Zeile i und Spalte j ist leer“.
Zwischen allen Neuronen einer Zeile, einer Spalte und den Diagonalen müssen
negativ eingerichtete Verbindungen eingerichtet werden.
Abb. 2.6.6: Hopfield-Netzwerk in einem 4 Damen Problem zum 2. Neuron der 1.Zeile
3. Knotendynamik (eines Hopfield-Netzes zur Lösung des N-Damen-Problems):
(1) netij   wij,mn  omn  
m,n
135
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(2) oij = {
1, falls netij > 0
0 sonst
  , falls ( dij , d mn ) C ( X i , X m )
wij,mn = {  , falls i = m und j <> n
0, sonst
50
positives  : konstante Anregung. Bewirkt, daß das Neuron autom. aktiv ist, sofern
keine negativen Gewichten eingehen.
wij,mn: Gewicht der Verbindung zwischen dem Neuron in Zeile i und Spalte j und dem
Neuron in Zeile m und Spalte n.
  : Die mit   gewichteten Verbindungen sorgen dafür, daß sich 2 Neuronen einer
Spalte oder Diagonale gegenseitig hemmen, da gleichzeitige Aktivität eine
Randbedingung verletzt.
 : Die mit  gewichteten Verbindungen hemmen die Neuronen einer Zeile und
sorgen dafür, daß jede Variable nur maximal einen Wert annimmt.
Die Anwendung des Hopfield-Algorithmus auf eine derartiges Netzwerk führt in der
Regel zu keiner Lösung des N-Damen-Problems. Es sind weniger als N Neuronen in
der Regel aktiv. Solche nicht vollständige Lösungen entsprechen lokalen Minima der
Energiefunktion.
4. Applet: Lösung des N-Damen-Problems mit Hilfe eines Hopfield-Netzwerks
http://fbim.fh-regensburg.de/~saj39122/rofbrue/index.html
50
Gewicht der Verbindung zwischen dem Neuron in Zeile i und Spalte j und dem Neuron in Zeile m und Spalte
n
136
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.2 Das Guarded-Discrete-Stochastic-Netzwerk (GDS)
2.6.2.1 Beschreibung
Durch Einführung zusätzlicher Neuronen wird es einem Hopfield-Netz ermöglicht,
aus lokalen Energieminima zu entkommen und die Suche nach energetisch
günstigeren Zuständen fortzusetzen. "Guarded" steht für zusätzliche "GuardNeuronen"51, die jeweils eine bestimmte Anzahl von Hopfield-Neuronen überwachen.
"Discrete" gibt an, daß Neuronen nur binäre Zustände annehmen können und eine
diskrete Schwellwertfunktion als Aktivierungsfunktion verwendet wird. "Stochastic"
besagt, daß eine zufällige Absuche des Lösungsraums vorzusehen ist.
Das GDS-Netzwerk52 wird zur Lösung von Constraint-Satisfaction-Problemen
(CSP) eingesetzt. Hier sind bestimmte Zuordnungen unter Randbedingungen zu
realisieren, z.B.: Der Wunsch eines Dozenten an einem Tag in der Woche frei zu
haben, ist mit dem Stundenplan abzustimmen. Durch weitere Constraints wird der
Lösungsraum zusätzlich eingeschränkt. Innerhalb eines CSP soll die Problemlösung
unter Beachtung aller Constraints erzielt werden.
Ein CSP besteht damit aus einer Menge Variablen {X1, ... , Xn}. Jede Variable kann
bestimmte Werte dij annehmen, die durch den zugehörigen Wertebereich (Domain)
Di = {di1, ... , dim) explizit definiert werden. Zwischen 2 beliebigen Variablen Xi und
Xk sind bestimmte paarweise Kombinationen von Variablenausprägungen verboten.
Das wird durch einen Constraint C(Xi,Xk) spezifiziert (Teilmenge des cartesischen
Produkts ). Falls bspw. (d13,d24) in C(X1,X2) enthalten ist, darf nicht gleichzeitig X1
den Wert d13 und X2 den Wert d24 annehmen.
2.6.2.2 Algorithmus zum "Damen-Problem" mit einem GDS-Netzwerk
1. Problemstellung (vgl. Lösung des N-Damen-Problems53)
Lösung mit NN: Die Knotendynmik des Hopfield-Netzes ist auch hier zunächst
maßgebend.
(1) netij   wij,mn  omn  
m,n
(2) oij = {
1, falls netij > 0
0 sonst
  , falls ( dij , d mn ) C ( X i , X m )
wij,mn54 = {  , falls i = m und j <> n
0, sonst
Dabei bedeutet die Bedingung der ersten Zeile nichts anderes als die Verletzung
eines Constraints bzgl. zweier Neuronen uij und umn verschiedener Zeilen (gleiche
51
Wächter
1990 von H.-M. Adorf und M. D. Johnston vorgestellt
53 2.7.1.5
54 Gewicht der Verbindung zwischen dem Neuron in Zeile i und Spalte j und dem Neuron in Zeile m und Spalte
n
52
137
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Spalte oder Diagonale). Bei der Implementierung des N-Damen-Problemes kann auf
die explizite Angabe der Constraints C verzichtet werden, weil diese nur in gleichen
Spalten und Diagonalen sein können und damit einfach zu berechnen sind.
Die charakteristische Eigenschaft eines einfachen Hopfield-Netzes ist das
schrittweise Konvergieren auf ein lokales Minumum der Energiefunktion. Bei
Erreichen eines solchen Minimums sind zwar keine Randbedingungen verletzt, es
werden aber meistens nicht alle geforderten Zuordnungen erfüllt. Beim N-DamenProblem heisst das konkret, dass in einem lokalen Minimum weniger als N Damen
gesetzt sind und eine vollständige Lösung mit N Damen nur durch Zufall bei
entsprechend häufigen Lösungsversuchen gefunden werden kann.
Das Guarded-Discrete-Stochastic-Netzwerk kann als erweitertes Hopfield-Netz mit
sog. „Guard-“ (Wächter-) Neuronen angesehen werden, die jeweils eine bestimmte
Anzahl von Hopfield-Neuronen überwachen. "Discrete" bedeutet, dass die
Ausgabefunktion der Neuronen nur binäre Werte annehmen kann („1“ oder „0“ bzw.
„-1“), und „Stochastic“ deutet auf die zufällige Auswahl der Neuronen hin.
Das Guard-Neuron ist mit allen der ihm zugeordneten Zeile asymmetrisch
verbunden. Das Guard-Neuron ist nur dann aktiv, wenn in der entsprechenden Zeile
alle überwachten Neuronen uij inaktiv sind.
(3) net gi      oij   g
0  g  
0   g   ist eine konstante Anregung, die zur Aktivierung des Guard Neuron führt,
sofern von allen aktiven überwachten Neuronen keine mit   gewichteten
Verbindungen eingehen.Der Faktor  bezeichnet dabei die Stärke der negativen
Gewichte der überwachten Neuronen und der positive Bias  g sorgt für eine
konstante Anregung, damit das Guard-Neuron automatisch aktiv ist, falls von den
überwachten Neuronen keine negativen Gewichte eingehen.
Die Ausgabefunktion der Guard-Neuronen ergibt sich zu:
1, falls net gi  0
(4) ogi = {
0 sonst.
Umgekehrt regt ein aktives Guard-Neuron durch die stark positiv gewichteten
Verbindungen zu den überwachten Neuronen bisher inaktive Neuronen so stark an,
dass mindestens ein Neuron der zugehörigen Zeile aktiv wird.
(5) netij   wij  omn      ogi mit   0,   0
m,n
 muß alle möglichen negativen Einwirkungen auf das überwachte Neuron u ij
kompensieren.
Das führt auf den folgenden (gegenüber dem Hopfield-Modell veränderten)
Algorithmus:
(a) Initialisiere alle normalen Hopfield-Neuronen mit oij = 0
und alle Guard-Neuronen mit ogi = 1
(b) Wähle ein Neuron zufällig aus
138
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(c) Berechne die neueste Ausgabe oij gemäß (5) und (2)
(d) Berechne die neueste Ausgabe ogi des zugehörigen GuardNeurons gemäß (3) und (4)
(e) Wiederhole die Schrite (b) bis (d) solange, bis ein
Gleichgewichtszustand eingetreten ist.
2. Erweiterung der Energiefunktion:
Die Erweiterung der Energiefunktion
E  1 / 2   wij,mn  oij  om,n   o g .i
um die Summe der Ausgabewerte der Guard-Neuronen (2. Term) führt dazu, daß
Konfigurationen mit weniger als N Damen (und keiner Verletzung von Constraints)
nicht der minimalen Netzenergie entsprechen, und diese somit nur erreicht wird,
wenn eine zulässige Lösung mit N Damen gefunden wurde. Dies ist auch der
wesentliche Vorteil eines GDS-Netztes, nämlich aus lokalen Minima der
Energiefunktion entweichen zu können. Der Nachteil dabei ist jedoch, daß aufgrund
der asymmetrischen Verbindungen zwischen Guard- und Hopfield-Neuronen die
monotone Energieminimierung und die garantierte Konvergenz in ein lokales
Minimum der Energiefunktion verloren gehen, so daß man nach jedem
Lösungsversuch die Netzenergie berechnen muss. Dadurch kann es
vorkommen,daß innerhalb eines Lösungsversuches kein Energieminimum gefunden
wird, weshalb man ein Abbruchkriterium einführen muss, dass die Iterationen pro
Lösungsversuch abbricht und einen komplett neuen Lösungsversuch startet.
2.6.2.3. Das Applet zur Lösung des N-Damen-Problems mit einem GDSNetwerk
http://fbim.fh-regensburg.de/~saj39122/rofbrue/index.html
2.6.2.4. Erläuterungen zur Implementierung
Der prinzipielle Lösungsalgorithmus besteht aus einer äusseren und inneren
Schleife. In der äusseren Schleife wird pro Durchlauf eine zufällige Zeilensequenz
erzeugt und danach in der inneren Schleife abgearbeitet. In der jeweiligen Zeile wird
nun das zum aktuellen Netzwerkzustand inkompatibelste Neuron ermittelt.
Dabei handelt es sich um dasjenige Neuron, welches bei einem Zustand von o i = 1
den größten negativen bzw. bei oi = 0 den größten positiven Nettoinput neti aufweist.
Sind beide Fälle vorhanden, wird der mit dem betragsmäßig größeren Wert
verwendet. Haben mehrere Neuronen den gleichen Wert, wird eines zufällig ausgewählt, sein Zustand verändert und der neue Zustand des Netzes gemäß (3) und
(1) berechnet. Ist keiner der beiden Fälle vorhanden, findet in der Zeile keine
Veränderung statt. Dieses gezielte Vorgehen beschleunigt im Gegensatz zu einer
zufälligen Auswahl der Neuronen die Lösungssuche erheblich, da pro Durchgang
jede Zeile an die Reihe kommt und darin evtl. nur ein solche Veränderung eines
Neurons vorgenommen wird, die die Netzenergie nicht größer werden lässt.
Die äussere Schleife wird solange durchlaufen, bis in der inneren Schleife keine
Veränderungen von Neuronen mehr stattfinden (d. h. das Netz ist stabil) oder bis das
139
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abbruchkriterium erfüllt ist (je nach Problemgröße sind Werte von 2 bis 10
Durchläufen geeignet). Ist die Gesamtenergie des Netzes dann gleich dem
Minimum, so ist eine zulässige Lösung gefunden, ansonsten muss ein komplett
neuer Versuch gestartet werden.
Entsprechende Testreihen haben gezeigt, dass bei N = 8 eine Lösung meist nach
weniger als 5 Versuchen gefunden wird. Selbst bei einer Problemgröße von N = 50
sind meist nur zwischen 10 und 30 Versuche (manchmal auch weniger als 10,
selten mehr als 50) notwendig, und die Rechenzeit liegt dabei bei ca. 20 bis 40
Sekunden (Pentium II, 333MHz, 64MB). Bei Werten darüber wird aber die
vierdimensionale Gewichtsmatrix so groß (z. B. bei N = 60 knapp 13 Mio. Felder),
daß der nötige Arbeitsspeicher auf Festplatte ausgelagert wird und sich dadurch die
Berechnung extrem verlangsamt. Abhilfe könnte hier aber eine Implementierung der
Randbedingungen über eine direkte zyklische Verbindung der Neuronen einer Zeile,
Spalte und den Diagonalen schaffen, wodurch man auf die (vollständige) Vernetzung
über die Gewichtsmatrix verzichten könnte.
140
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.3 BAM
2.6.3.1 Beschreibung
Das BAM-Modell (bidirektionaler assoziativer Speicher) wurde Mitte der 80er Jahre
von B. Kosko55 entwickelt.
Das BAM-Netzwerk besteht aus 2 Schichten, der S1-Schicht (Eingabeschicht) und
der S2-Schicht (Ausgabeschicht). Die binären Elemente der Schichten können
Aktivitäten 1 und 0 annehmen. Die Transferfunktion der Elemente ist:
oi (t  1)  1, wenn  wij  o j ( t )  0
oi (t  1)  0, wenn  wij  o j ( t )  0
oi (t  1)  oi (t ) , wenn  wij  o j ( t )  0
Die beiden Schichten sind in beiden Richtungen vollständig miteinander verbunden.
Die Gewichte sind symmetrisch: wij  w ji
x1
j=1
x2
j=2
xn
..............
j=n
S1-Schicht
w ij  w
i= 1
i= 2
................
i= m
y1
y
................
y
b1
b2
................
bm
2
ji
S2-Schicht
m
Abb. 2.6-7: Das BAM-Netzwerk
Das BAM-Netzwerk hat eine große Ähnlichkeit mit dem Hopfield-Netzwerk. Ist die
Anzahl der Elemente der S1-Schicht und der S2-Schicht identisch und wählt man die
Gewichtsmatrix symmetrisch, so entspricht das BAM-Netzwerk exakt dem HopfieldNetzwerk, falls das Netzwerk autoassoziativ trainiert wird.
55
Bart Kosko: Constructing an Associative Memory, BYTE September 1987
141
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.3.2 Lernen

Das BAM-Netwerk lernt einen S1-Vektor x mit n Komponenten mit einem S2-Vektor

y mit m Komponenten zu assoziieren56.



W  x y T
Die m  n -Gewichtsmatrix wij des BAM-Netzwerks kann - wie beim Hopfield-Netz - in
einem einzigen Schritt berechnet werden. Werden die korrespondierenden


Vektorpaare k gelernt, so gilt für die Gewichtsmatrix: W   Wk .
Bsp.: Gegeben sind die Muster

T

T

T

T
a1  (1, 0,1, 0,1, 0) b1  (1,1, 0, 0)
a2  (1,1,1, 0, 0, 0) b2  (1, 0,1, 0)
Die beiden binären Assoziationen werden folgendermaßen von einem BAMNetzwerk erlernt:
 
1) 0-Komponenten der zu erlernenden Vektoren a , b werden während des
Lernvorgangs auf -1 gesetzt:

T
x1  (1, ,1, 1,1, 1)

T
x2  (1,1,1, 1, 1, 1)

T
y1  (1,1, 1, 1)

T
y2  (1, 1,1, 1)



2) Bestimme die Gewichtsmatrix W  x y T

T

x 1  y1
 1
 1 1 1 1
 


 1
 1  1 1 1 
 1
 1 1 1 1
    1 1 1 1  

 1
 1  1 1 1 
 1
 1 1 1 1
 


 1
 1  1 1 1 

56
Die 0-Komponenten der zu erlernenden Vektoren werden während des Lernvorgangs auf -1 gesetzt und mit

bzw.
y bezeichnet
142
x
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen


T
2
x2 y
 1
 1 1 1 1
 


 1
 1 1 1 1
 1
 1 1 1 1
    1 1 1 1  

 1
 1 1 1 1 
 1
 1 1 1 1 
 


 1
 1 1 1 1 
0
0 2
2


0
 0 2 2
2

0
0 2
W

0
2
 2 0
0
2 2 0 


0
2
 2 0
2.6.3.3 Energiefunktion
Auch im BAM-Netzwerk kann eine Energiefunktion definiert werden:

T


E   b  (W T  a ) .
Die Energie ist immer minimal, wenn die Aktivitäten der Elemente in beiden
 
Schichten einem gelernten Vektorpaar x , y entsprechen.
Bsp.: Für die beiden gelernten Muster errechnet sich die Energie folgendermaßen:
1. Muster
 1
 
0 2 2 0 2  0  4 
2


 
 
0 2 0
0 2
0   1  2 
T

W a 
  
0 2
0
0 2 0   0  2


 
0 2   1  4
 2 0 2 2
 
 0
 4
 
2
E  1 1 0 0     6
 2
 
 4
2. Muster
 1
 
0 2 2 0 2  1  4 
2


 
 
0 2 0
0 2
0   1  2
T

W a 
  
0 2
0
0 2 0   0  2 


 
0 2   0  4
 2 0 2 2
 
 0
143
 4
 
2
E  1 0 1 0     6
 2
 
 4
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.3.4 Abruf
Während der Abrufphase werden die Elemente der S1-Schicht mit einem Vektor

a ( t 0 ) besetzt. Danach läßt man das Netzwerk frei laufen. Die S2-Schicht berechnet

über die Summe der Ausgabe der S1-Elemente den Vektor b ( t  1) . Dieser Vektor ist

die neue Eingabe zur S1-Schicht und produziert einen neuen Vektor a ( t  1) usw. Bei
jedem Zyklus wird das Netzwerk die Energie E verkleinern, bis es sich im lokalen
Minimum von E befindet (stabiler Zustand).
Man kann zeigen, daß die Änderung der Aktivitäten der Elemente immer zu einer
Verringerung der Energie führt:
T


T 


T 

E( t  1)   b ( t  1) a ( t ) W  E( t )   b  a ( t )  W
und
T

E( t  1)   a ( t  1) b( t ) W  E( t )   a  b ( t )  W
Bsp.:
Abruf des 1. Musters
 1
 
0
2 2 0 2  0  4 
2


 
 
0 2 0
0
2
0   1  2 
T

W a 
 
0
2
0
0 2 0   0  2


 
0 2   1  4
 2 0  2 2
 
 0
Das führt zur gewünschten Ausgabe (1,1, 0, 0) T .
0
0 2
2
 2


 
0   1  2
 0 2 2
 
2
0
0 2  1  2 
 


0 2   0  2
 2 0
 
0
2 2 0   0  2 


 
0 2
 2 0
 2
Das führt zu der gewünschten Eingabe. (1, 0, 1, 0, 1, 0) T
b) Abruf des 2. Musters
144
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 1
 
0 2 2 0 2  1  4 
2


 
 
0 2 0
0 2
0   1  2
T

W a 
  
0 2
0
0 2 0   0  2 


 
0 2   0  4
 2 0 2 2
 
 0
0
0 2
2
 2


 
0   1  2 
 0 2 2
 
2
0
0 2  0  2 
 


0 2   1  2
 2 0
 
0
2 2 0   0  2


 
0 2
 2 0
 2
Das führt zur gewünschten Eingabe (1, 1, 1, 0, 0, 0) T

T
c) BAM ist fehlerkorrigierend. So kann der Verktor a2  (1,1,1, 0, 0, 0) um 1 Bit gestört

sein: a T  ( 0,1,1, 0, 0, 0) . Beim Abruf ergibt sich:
 0
 
0 2 2 0 2  1  2 
2


 
 
0 2 0
0 2
0   1  2
T

W a 
  
0 2
0
0 2 0   0  2 


 
0 2   0  4
 2 0 2 2
 
 0
Das führt zu der gewünschten Ausgabe: (1,0,1,0)T. Die Energie beträgt -4 (anstatt 6).
d) Ein weiteres Muster kann in das BAM-Netzwerk aufgenommen werden:

T

T
a2  (1,1, 0, 0,1,1) bzw. b2  ( 0,1,1,1) . Die Gewichtsmatrix ist dann:
 1 1 1 1


 1 1 3 1 
 3 1 1 3

W

 1 1 1 1 
 1 3 1 1 


 3 1 1 3 
Abruf des 3. Musters:
145
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 1
 
 1 1 3 1 1 3  1  4


 
 
1 1 1 1 3 1   0  4 
T

W a 
  
 1 3 1 1 1 1   0  4 


 
 1 1 3 1 1 3   1  4 
 
 1
bzw.
 1 1 1 1
 1


 
 1 1 3 1   0  3 
 3 1 1 3  1  5

     

1

1

1
1

  1  1
 1 3 1 1   1  3 


 
 3 1 1 3 
 5
 4
 
4
Die Energie ist: E   b  W  a  0 1 1 1     12
 4
 
 4

T
 
T
Diese Muster führt zu einem weiteren Minimum, das einen geringeren Wert zeigt wie
die lokalen Minima der vorangegangenen Muster.
2.6.3.5 Kapazität
Sie ist (ähnlich dem Hopfield-Netzwerk) begrenzt. Werden zu viele Muster
gespeichert, entstehen "falsche Minima" (spurios states). Das Netzwerk assoziiert
nicht mehr nur die gewünschten Vektoren, sondern auch nicht gelernte Muster. Man
1
N
kann für die Kapazität vom Hopfield-Netzwerk übertragen: M  2
(mit N =
log N
Anzahl der Elemente der kleineren Schicht und M = Zahl der zu speichernden
Muster).
2.6.3.6 Applet: Mustererkennung mit BAM
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/dosch/BAM.html
146
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.4 Simulated Annealing
2.6.4.1 Beschreibung
Das Hopfield-Netz speichert Binärwörter, für die die Energiefunktion minimal ist. Das
errechnete Minimum ist lokal. Das Hopfield-Modell ist unbrauchbar, fall das globale
Minimum der Energiefunktion gefunden werden soll.
Zur Bestimmung des Minimums der Energiefunktion sind die Hopfield-Iterationen zu
erweitern. Der daraus resultierende Algorithmus zeigt eine Analogie zu einem
Simulationsverfahren, das "Simulated Annealing" (simuliertes Abkühlen) genannt
wird.
Das Iterationsverfahren, das der Berechnung in Hopfield-Netzen zugrundeliegt, wird
im wesentlichen durch 2 neue Berechnungsverfahren ergänzt:
1. Zufällige Auswahl einer Zelle i und Berechnung des neuen Zustands (Aktivität
bzw. Ausgabe) oi(t+1)
2. Der neue Zustand ist durch folgende Wahrscheinlichkeitsfunktion bestimmt:
p ( oi  1) 
1 e


1
( wij o j ( t )   i )/ T
p
Abb. 2.6-8: Wahrscheinlichkeitsfunktion
T > 0 ist ein beliebiger Parameter. In Analogie zur Simulation bei der Abkühlung von
Materie bezeichnet man T als "Temperatur". Je nach Größe von T ändert sich die
Wahrscheinlichkeit, daß für eine bestimmte Netzeinwirkung (Eingabe) der Zustand
oi= 1 angenommen wird:
T = 0: binäre Transferfunktion
T sehr groß: (p(oi=1)=1/2, d.h. die Neuronen werden unabhängig vom Ausgang der
Berechnung (neti(t)) mit der Wahrscheinlichkeit 1/2 auf 1 gesetzt. Das bedeutet:
Global können alle Zustände des Netzes angenommen werden. Das
Berechnungsverfahren bleibt nicht mehr in einem lokalen Minimum hängen.
Wählt man T nicht zu groß und nicht zu klein. dann wird mit einer
Wahrscheinlichkeit, die umso größer ist, je kleiner T ist, das Energieminimum
147
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
gesenkt. Gleichzeitig kann ein lokales Minimum verlassen werden, da wegen T > 0
alle Zustände angenommen werden können. Zweckmäßig beginnt man mit großem
T die Rechnung und läßt T langsam kleiner werden (d.h.: Der Parameter T wird im
Laufe der Zeit verändert).
2.6.4.2 Berechnung
1. Dynamik
Die Dynamik des Simulated Annealing ist bestimmt durch den folgenden
Simulationsprozeß:
(1) Wähle ein Neuron zufällig aus
(2) Errechne die Wahrscheinlichkeit
p ( oi  1) 
1 e


1
( wij o j ( t )   i )/ T
(3) Erzeuge eine gleichverteilte Zufallszahl z: 0 <= z <= 1
(4) Falls z <= p, dann setze oi = 1, sonst ist oi = 0
(5) Weiter bei (1)
Die Dynamik führt zu einem stabilen Zustand, falls T klein gewählt wird. Bei großem
T besteht immer die Wahrscheinlichkeit, daß die Gesamtenergie zunimmt und
danach ein lokales Minimum verlassen werden kann.
2. Energiefunktion
E
1
  wij  o j  oi  i i  oi
2 i j
heißt Energie zum Zustand ai (= Ausgangsgröße oi). Bezogen auf Neuron i beträgt
die Energie:
N
E    wij  o j  ai  i  ai
j
N
N
E
   wij  o j  i   (  wij  o j  i )
ai
j
j
N
E   (  wij  o j  i )  ai
j
Setzt man Neuron i von 0 auf 1, dann ist ai  1  0  1
148
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Daraus folgt: p(oi  1) 
1
1  e E / T
p(oi=1)
E / T
Abb. 2.6-9: Verlauf von p(oi)=1
Für E  E1  E0  0 folgt p(oi=1)>1/2. E1 ist die Energie, wenn Neuron i den Zustand
1 hat und E0 ist die Energie, wenn Neuron i den Zustand 0 hat.
Allgemeingülig ist folgender Satz: Sind Z0 und Z1 zwei Zustände des Netzes mit den
zugehörigen Energien E0 und E1, dann gilt für die Wahrscheinlichkeit der Zustände:
p ( Z0 )
 e( E1  E0 )/ T
p( Z1 )
Daraus läßt sich folgern, daß das Verfahren des simulierten Kühlens stochastisch
gegen das absolute Minimum konvergiert. Hat bspw. die Energiefunktion folgenden
Verlauf
E
Z
Z1
Z0
Abb. 2.6-10: Energiekurve
149
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
p ( Z0 )
 e( E1  E0 )/ T  1 und p( Z0 )  p( Z1 ) , d.h.: Die Wahrscheinlichkeit für den
p( Z1 )
Zustand des absoluten Minimums ist größer als die Wahrscheinlichkeit für die
Zustände der relativen Minima.
Generell gilt: Das Verfahren des simulierten Kühlens konvergiert gegen den Zustand,
für den die Energie das absolute Minimum annimmt.
, dann ist
Hinweis: Da das simulierte Kühlen ein stochastisches Verfahren ist, erhält man das
Minimum zwar mit Wahrscheinlichkeit, aber nicht mit Sicherheit.
3. Boltzmann-Verteilung
Mit einer gewissen Wahrscheinlichkeit werden die energetisch schlechteren
Konfigurationen angenommen. Der dazu abgeleitete mathematische Formalismus
besitzt große Ähnlichkeit mit den Formeln einer physikalischen Theorie, die man als
Boltzmann-Statistik bezeichnet. Die Boltzmann-Statistik liefert für die statistische
Verteilung von Molekülen der Energie die Formel
p( E )    e  E /( k T )
p( E ) : Wahrscheinlichkeit für ein Molekül, daß es die Energie E besitzt.
k: Dimensionskonstante (Boltzmann-Konstante)
T: absolute Temperatur (eine mittlere Temperatur für alle Teilchen)
Offenbar folgt aus der vorstehenden Formel für 2 Energiezustände E1 und E0:
(E E )
 0 1
p( E0 )
 e k T
p ( E1 )
E0-E1: Energieunterschied
k: Boltzmann-Konstante
T: Temperatur
2.6.4.3 Der Simulated-Annealing Algorithmus
Der Algorithmus läßt sich folgendermaßen beschreiben:
Wähle eine Anfangskonfiguration;
Wähle eine Anfangstemperatur T > 0;
wiederhole
wiederhole
Wähle eine neue Konfiguration, die eine kleine Änderung
der alten Konfiguration ist;
Berechne die Energiefunktion der neuen Konfiguration;
DE := E(neu) - E(alt);
wenn DE < 0, dann alte_Konfiguration := neue_Konfiguration
 DE
sonst wenn Zufallszahl < e kT ,
dann alte Konfiguration := neue Konfiguration
150
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
bis lange keine Erniedrigung der Energie;
Verringere T;
bis keine Verringerung der Energiefunktion mehr auftritt;
Bsp.: Übertragung des Travelling Salesman Problem auf den Simulated Annealing
Algorithmus57
Das Travelling Salesman Problem (TSP) besteht darin, die kürzeste Rundreise
zwischen beliebig vielen Städten (Orten) zu finden 58. Zur Lösung des Problems ist
bisher kein Algorithmus bekannt, dessen Lösungszeit nur mit einer Potenz der
Anzahl N der Städte anwächst. Die Rechenzeit nimmt exponentiell zu (, d.h. ist
stärke als jede Potenz). Bei großen Problemen ist man auf "heuristische Verfahren"
angewiesen.
Nach den vorstehenden Ausführungen zum Simulated Annealing werden

( E0  E1 )
k T
energetisch schlechtere Konfigurationen mit einer Wahrscheinlichkeit von e
angenommen. In der Praxis bestimmt man eine Zufallszahl zwischen 0 und 1. Ist sie

( E0  E1 )
kleiner als e k T , dann wird die energetisch schlechtere Konfiguration zum neuen
Systemzustand.
An die Stelle der Energien treten im TSP Entfernungen. Um die BoltzmannKonstante kümmert man sich aus Vereinfachungsgründen nicht, sondern drückt die
Temperatur direkt in Längeneinheiten aus. Wählt man bspw. als "Temperatur" eine
Entfernung, die größer ist als der größte Abstand von 2 Städten, dann wird beinahe
jede Veränderung der zufälligen Anfangsfolge mit hoher Wahrscheinlichkeit
akzeptiert werden, da p( E0  E1 ) nahe bei 1 liegt. Mit sinkender Temperatur sind nur
noch kleinräumige Variationen zugelassen. Bei T = 0 erstarrt die Lösung.
Kleinräumige Verbesserungen werden durch das "Verfahren von Lin" erreicht. Man
zerschneidet die Route an 2 zufällig bestimmten Stellen und setzt das
herausgetrennte Stück in umgekehrte Reihenfolge zusammen. Ist die Tour bspw. in
einem Array gespeichert, dessen letztes Element man sich mit dem ersten
verbunden denkt, dann ergibt sich für eine Tour mit "16 Städten":
Ausgangstour:
0
1
2
3
4
5 | 6
7
8
9
10 |11 12 13 14 15
" Schnitte" an der markierten Stelle ("|") führen zu:
0 1 2 3 4 5 10
bzw.
0 15 14 13 12 11 6
9
8
7
6 11 12 13 14 15
7
8
9 10
5
4
3
2
1
Nach Anbringen der Schnitte wird geprüft, ob die neue Tour als Variante akzeptiert
wird.
57
vgl. Otto, Thomas: Reiselust in c't 1994, Heft 1
Verwandte Aufgaben: Plazierung von logischen Gattern auf einen Chip; der Aufbau eines Service- und
Telefonnetzes
58
151
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.4.4 Das Applet zur Lösung des TSP mit Simulated Annealing
http://fbim.fh-regensburg.de/~saj39122/doerei/TSP.html
2.6.4.5 Threshold Accepting (TA) (Schwellenakzeptanz)
1990 veröffentlichten Dueck und Scheuer eine Variante zum Simulated Annealing
(SA). Während der SA-Algorithmus energetisch günstige Variationen sofort und
ungünstigere mit einer gewissen Wahrscheinlichkeit annimmt, akzeptiert TA alle
Variationen, bei denen die Änderung unterhalb eines positiven Schwellenwerts
bleibt.
Wähle eine Anfangskonfiguration;
Wähle eine Anfangstemperatur T > 0;
wiederhole
wiederhole
Wähle eine neue Konfiguration, die eine kleine Änderung
der alten Konfiguration ist;
Berechne die Energiefunktion der neuen Konfiguration;
DE := E(neu) - E(alt);
wenn DE < T, dann alte_Konfiguration := neue_Konfiguration
bis lange keine Erniedrigung der Energie;
Verringere T;
bis überhaupt keine Verringerung der Energiefunktion mehr
auftritt;
Man muß allerdings einen optimalen Fahrplan für die Erniedrigung der Temperatur
ermitteln, um möglichst rasch zu Ergebnissen zu kommen. Dueck stellte deshalb
noch einen weiteren Algorithmus vor.
152
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.6.5 Boltzmann Netze
2.6.5.1 Beschreibung
Dieser Netzwerktyp wurde 1985 von Ackley, Hinton und Sejnowski entwickelt und
beinhaltet eine Weiterentwicklung des Hopfield-Netzes. Die Abruf-Phase erfolgt über
"simuliertes Kühlen", ein Lernverfahren zum Ermitteln der Gewichtswerte ist
vorgesehen.
1. Netztopologie
Der Aufbau des Boltzmann-Netzes ist der des Hopfield-Netzes: N vollständig
vernetzte Neuronen mit Rückkopplung. Für die Gewichte gilt:
wij = wji
wii = 0
Die Neuronen des Netzes werden in 3 Klassen eingeteilt: Eingabeneuronen,
Ausgabeneuronen und verdeckte Neuronen. Sie nehmen die Zustände 0 und 1 an.
Die Umgebung beeinflußt niemals direkt die Aktivitäten der verdeckten Zellen. Diese
Zellen sollen Strukturen im Eingangsvektor entdecken, die nicht durch paarweise
Beziehung seiner Komponenten ausgedrückt werden können. Je nach Komplexität
des Problems benötigt man mehr oder weniger verdeckte Elemente.
Der Eingabe-Vektor wird angelegt, indem man die Zustände der Eingabezellen
entsprechend den Komponenten des Eingabevektors setzt. Währen der gesamten
Zeit, die das Netz zum Antworten benötigt, dürfen die Eingabezellen ihre Zustände
nicht verändern.
Ein eindeutiger Ausgabezustand kann aus den Ausgabeeinheiten abgelesen
werden, sobald sich deren Aktivität nicht mehr verändert. Die Ausgabeeinheiten
haben dann einen stabilen Zustand erreicht. Die verdeckten Zellen können ihre
Aktivitäten weiter anpassen.
2. Dynamik und Energiefunktion
Die Boltzmann-Maschine ist ein stochastisch schaltendes Hopfieldnetz.
Die Dynamik der Boltzmann-Maschine gleicht der des Simulated Annealing
(Ausnahme: Während der Abrufphase dürfen die Zustände der Eingabeeinheiten
nicht verändert werden).
Eine zufällig ausgewähltes Neurom wird mit der Wahrscheinlichkeit p aktiv:
p ( oi  1) 
1 e


1
( wij o j ( t )   i )/ T
Auch die Energiefunktion hat für die Boltzmann-Maschine diesselbe Form:
153
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
E
1
 wij  oi  o j  i  i  oi
2 i j
3. Das Lernverfahren
Man führt "simuliertes Kühlen" durch
1. nur für die verborgenen Zellen durch Anlegen der Ein-, Ausgabewerte der zu
lernenden Funktion an die Ein-, Ausgabezellen (Plus-Phase). Während der PlusPhase dürfen alle sichtbaren Zellen ihre Zustände nicht ändern.
2. für das vollständige Netz. Während dieser Minus-Phase legt man ein zufälliges
Muster an und erlaubt auch den sichbaren Zellen, ihren Zustand zu ändern. Das
Netz läuft frei.
Beide Kühlungen werden abwechselnd vorgenommen und die Gewichte so
angepaßt, daß die beiden Vorgänge sich annähern.
Ziel des Lernalgorithmus ist es, Gewichte so einzustellen, daß 2 Zellen im
(thermischen) Gleichgewicht immer mit derselben Wahrscheinlichkeit aktiv sind,
unabhängig davon, ob das Netz in der positiven oder in der negativen Phase läuft.
Diesem Idealzustand versucht man durch die Lernregel so nahe wie möglich zu
kommen. Man nennt diesen Lernalgorithmus "maximum likelyhood", d.h.: Gewichte
werden so bestimmt, daß jeder Zustand im Netz mit angelegter Eingabe diesselbe
Wahrscheinlichkeit hat, wie wenn die Boltzmann-Maschine von einem zufällig
gewählten Anfangszustand aus frei läuft.
Ist die zu lernende Funktion
ok  F (ik )
ok : Ausgabevektoren
ik : Eingabevektoren
und läßt sich der Zustand des Netzes beschreiben durch
Zk  (a1 ,......, an )
( ai {0,1})
und ist
Zk

der Netzzustand, der durch simuliertes Kühlen entsteht, falls man einen
Eingabe- und einen Ausgabevektor an die Ein-/Ausgabezellen legt und diese
Zellen während des Kühlens nicht verändert (Kühlen nur für verdeckte Zellen,
Plus-Phase)

Zk der Netzzustand, der durch simuliertes Kühlen entsteht, falls man das gesamte
Netz frei laufen läßt,
154
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
dann ist eine Anpassung des Netzes an die zu lernende Funktion erreicht, falls das
Netz die Gewichte so gelernt hat, daß

pk  pk
ist.



pk : Wahrscheinlichkeit für den Zustand Zk


pk : Wahrscheinlichkeit für den Zustand Zk
Da beim Kühlen (Minus-Phase) Energieminima und damit Zustände hohe
Wahrscheinlichkeit angesteuert werden, ist pk  groß und damit auch pk  groß. Falls


pk  pk gilt, wird mit hoher Wahrscheinlichkeit der im Sinne der zu lernenden
Funktion richtige Ausgabebereich zugeordnet.
4. Abruf-Phase
Eingabewerte werden an Eingabeneuronen angelegt. Dann führt man simuliertes
Kühlen durch und zwar solange, bis die Ausgabeneuronen sich nicht mehr ändern.
Während des Kühlvorgangs dürfen die Eingabezellen nicht mehr verändert werden.
Danach kann man die Ausgabewerte an den Eingabezellen ablesen. Jedem
Eingabevektor läßt sich beim Abruf so ein Ausgabevektor zuordnen. Offensichtlich
wurde eine Funktion im Netz gespeichert.
2.6.5.2 Der Algorithmus
(1) Definiere die Gewichte wij und i durch Zufallszahlen
(2) Berechne N Zustände




Zk  (ak1 , ak 2 ,..., akn )
1



(3) Berechne pij   a ki  a kj
N k
(4) Berechne N Zustände




Zk  (ak1 , ak 2 ,..., akn )
1



(5) Berechne pij   a ki  a kj
N k




Z1 ,..., Zn
Z1 ,..., Zn
(6) Korrigiere Gewichte durch


wij
neu
 wij    ( pij  pij ) mit   0
i
neu

alt


 i    ( pi  pi ) mit pi 
alt
1
N
a

k
k
(7) Weiter bei (2)
155
mit
den
Neuronenbelegungen
mit
den
Neuronenbelegungen
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Aus der Korrekturformel für die Gewichte (6) erkennt man, daß für die
Energiefunktion
E
1
  wij  a j  ai  i i  ai
2 i j

- Energietäler, die die Funktion ok  F (ik ) unterstützen vertieft werden ( pij )

- Energietäler, die nicht der Funktion entsprechen, nivelliert werden ( pij )
Die Lernrate   0 gibt an, wie stark ein Durchlauf (sweep) des Lernalgorithmus in die
Änderung der Gewichte eingeht. Ist  zu groß, so zeigt die Lernregel oszillierdnes
Verhalten: Die Gewichte werden so stark verändert, daß nach dem nächsten
Lernschritt eine Änderung in umgekehrter Richtung notwendig ist. ein kleines 
verzögert den lernprozeß und erhöht den Zeitaufwand.
Günstig ist es,  im Laufe des Lernprozesses allmählich zu verkleinern. Während
der beiden Phasen darf die Temperatur nicht so klein werden, daß das Netz einfriert.
Andererseits soll die Temperatur aber so niedrig sein, daß die Abstände der
tatsächlich angenommenen Zustände vom stabilen Zustand nicht allzu groß sind.
2.6.5.3 Implementierung
1. Erlernen einer Funktion
Das folgende Implementierungsbeispiel (in Form eines Applets) soll zeigen, wie eine
Boltzmann-Maschine eine Funktion erlernen kann. Die zu erlernende Funktion ist in
der folgenden Prozedur Boltztest.Funktion(int index) festgelegt:
public void Funktion(int index){
for (int i = 0; i < NN.AnzNeurE; i++)
if (i ==index)
Eingabe[i] = 1;
else
Eingabe[i] = 0;
for (int i = 0; i< NN.AnzNeurA;i++)
if (Eingabe[i] == 1 )
Ausgabe[i] = 0;
else
Ausgabe[i] = 1;
}
Die Funktion bewirkt eine Invertierung von Bitfolgen (vom Eingabevektor Eingabe
zum Ausgabevektor Ausgabe). Als Eingabe werden nur Bitfolgen zugelassen, bei
denen genau ein Neuron 1 und alle anderen 0 gesetzt sind.
Bsp: Eingabe = 010 soll in Ausgabe = 101 umgewandelt werden.
156
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2. Darstellung der Boltzmann-Maschine
Im Applet sind die Neuronen der Boltzmann-Maschine sowie die Verteilung der
Energie auf ihre Zustände Z dargestellt.
Um alle Zustände Z der Boltzmann-Maschine darstellen zu können, wurde ein sehr
kleines Netz gewählt, welches wie folgt aufgebaut ist:
2 verborgene Neuronen
3 Ausgabe Neuronen
3 Eingabe Neuronen
Da die Neuronen nur die Werte 1 oder 0 haben können, ergeben sich mit diesen n =
8 Neuronen also insgesamt N = 2n also 256 mögliche Zustände dieses Netzes.
Zustand
1
2
3
...
32
64
84
128
...
256
Verborgene Neuronen
10
01
11
...
00
00
00
00
...
11
Ausgabe Neuronen
000
000
000
...
000
000
101
000
...
111
Eingabe Neuronen
000
000
000
...
100
010
010
001
...
111
Für jeden dieser Zustände Z kann nun eine Energie E(Z) des Netzes berechnet
werden. Zur Darstellung der Energieverteilung über alle möglichen Zustände der
Boltzmann-Maschine wird für jeden der 256 Zustände dessen Energie berechnet.
Die folgende Prozedur Boltztest.paintEnergie() wandelt i (Zähler über alle
Zustände) in eine Binärzahl um und belegt die Aktivitäten des Netzes (NN.A[ ]) mit
dieser Binärzahl. Anschließend wird dann die Energie in der Prozedur
Boltzmann.berechneNetzEnergie() ermittelt. Im Feld Energie[] werden die
Energiewerte zur Darstellung im Diagramm abgelegt. Maxenergie ist der größte
Energiewert im Diagramm.
public void paintEnergie(){
int max ;
double m,m2;
max =(int) java.lang.Math.pow(2.0,(float)(NN.AnzNeur-1));
//über alle möglichen zustände
for (int i = 0; i<max ; i++){
m =i;
//i in Binärzahl umwandeln und A belegen
for (int j = NN.AnzNeur-2; j >=0 ;j--){
m2 = java.lang.Math.pow(2.0,(float)(j));
if ( m/m2 >= 1)
NN.A[j] = 1;
else
NN.A[j] = 0;
m = m%m2;
}
NN.berechneNetzEnergie();
Energie[i] = Maxenergie - NN.Energie;
}
}
157
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
In der Prozedur Boltzmann.berechneNetzEnergie() wird die Energie für den
aktuellen Zustand des Netzes berechnet.
public void berechneNetzEnergie(){
Energie = 0;
cEnergie = 0;
for (int i = 0; i < AnzNeur;i++)
for(int j = 0; j <i ; j++){
Energie = Energie +W[i][j]*A[i]*A[j];
cEnergie = cEnergie + W[i][j]*Ac[i]*Ac[j];
}
}
Die Energiewerte können nun in einem Diagramm 59 dargestellt werden und
veranschaulichen die "Energie Landschaft" des Netzes. Das folgendes Bild zeigt
eine Energieverteilung nach Initalisierung (Ruecksetzen) des Netzes.
Abb.:
3. Simulated Annealing
Simulated Annealing wird bei der Boltzmann-Maschine dazu benutzt, globale
Minima aufzufinden. In so einem "Tal" der Energiefunktion finden sich die Zustände
für die Lösung der gelernten Funktion wieder. Bei jedem Lernzyklus wird für jedes
Musterpaar von Eingabe und Ausgabe simuliertes Kühlen durchgeführt. Das Kühlen
wird pro Muster zweimal durchgeführt:
Einmal dürfen sich hierbei die Neuronen der Eingabe- und Ausgabeschicht nicht
ändern (Fall 1, Z+) man spricht hierbei vom Festklemmen besagter Neuronen.
Im anderen Fall dürfen sich alle Neuronen frei verändern (Fall 2, Z-), das Netz läuft
frei.
Fall 1 schränkt also die möglichen Zustände des Netzes ein. Nur noch die
verborgenen Neuronen sind beweglich und somit kann nur ein minimaler Zustand im
Bereich der möglichen Zustände aufgesucht werden.
Beispiel: Zustand Z = XX 011 010 (X = bewegliches Neuron) ergibt einen
möglichen (eingeschränkten) Zustandsbereich von Z1 = 00 011 010 bis Z2 = 11
011 010 also von Z1 = 88 bis Z2 = 91
59
Im Applet gibt es 2 Diagramme. Beide zeigen die gleichen Energiewerte des Netzes an. Im oberen Diagramm
werden aber auch die Zustände des festgeklemmten Netzes dargestellt, im unteren die des frei laufenden Netzes.
158
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abb.:
Das simulierte Kühlen für die Boltzmann-Maschine kann wie folgt beschrieben
werden.
Aktivierung der Neuronen auf Eingabewerte setzen
(festklemmen oder nicht), dann folgende Iteration ausführen.
wiederhole
für jedes Neuron k
Mit Wahrscheinlichkeit pk setze Zustand auf 1, sonst auf 0
reduziere T nach einer bestimmten Funktion (z.B Gerade, oder T =
1/i, i Zeitschritte)
In folgender Prozedur Boltzmann.kuehlen() wird das Kühlen durchgeführt. Wie
lange gekühlt wird, hängt von AnzKuehlZyklen ab (nicht zu verwechseln mit
Anzahl der Lernzyklen). Die Temperatur T wird in diesem Fall linear abgesenkt. (An
dieser Stelle könnte man auch eine andere Kühlfunktion wählen.)
A[ ] enthält die Zustände Z- des Netzes im freien Zustand (Fall 2). Ac[ ] enthält
die Zustände Z+ des Netzes im festgeklemmten Zustand (Fall 1).
public void kuehlen(){
double deltaE;
int bis = AnzNeur -1;
if (clamped)
bis =AnzNeurV;
for (int i = 1; i< AnzKuehlZyklen; i++){
// langsam(bei jedem durchlauf) T von 1 gegen 0 senken
T = (float)(AnzKuehlZyklen-i)/(float)AnzZyklen;
for (int j = 0; j < bis; j++){
deltaE = berechneEnergie(j);
// delta Energie des j-ten
berechnen
if (clamped)
Ac[j] = Aktivieren(deltaE);
// j-tes Neuron aktivieren
else
A[j] = Aktivieren(deltaE);
// j-tes Neuron aktivieren
}
}
}
Neurons
Beim Aufruf der Funktion Boltzmann.berechneEnergie(j) wird die
Energiedifferenz berechnet, die entsteht, wenn das Netz von einem Zustand in
einen anderen wechselt, wobei sich nur das Neuron j verändert, aber alle anderen
gleich bleiben.
public double berechneEnergie(int index){
double deltaE = 0;
int bis = AnzNeur -1;
if (clamped)
bis = AnzNeurV;
for (int i = 0; i < bis; i++)
if (clamped)
159
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
deltaE = deltaE + W[i][index]*Ac[i];
else
deltaE = deltaE + W[i][index]*A[i];
return deltaE;
}
Die
stochastische
Aktivierungsfunktion
ist
in
der
Funktion
Boltzmann.Aktivieren() implementiert. Dabei ist die Aktivierung eines Neurons
unabhängig von seinem vorherigen Zustand. Anzumerken ist, daß nicht etwa der
Wert der Aktivierungsfunktion durch eine Zufallszahl bestimmt wird, sondern die
Wahrscheinlichkeit, mit der das zu aktivierende Neuron auf 1 gesetzt wird. Als x wird
die Energiedifferenz für die Änderung des Neuronenzustands übergeben. Eine große
positive Energiedifferenz erhöht also die Wahrscheinlichkeit, daß das Neuron
aktiviert wird.
public double Aktivieren(double x ){
if ( java.lang.Math.random() < (1/(1+java.lang.Math.exp(-x/T)))
return 1;
else
return 0;
}
)
4. Lernen
Ziel des Lernverfahrens ist es, die Gewichte so einzustellen, daß es im
Temperaturgleichgewicht ohne externe Eingabe mit gleicher Wahrscheinlichkeit die
Zustände erreicht, die es bei festgeklemmter Eingabe erreicht.
Die Zustände minimaler Energie, die aufgesucht werden, wenn Eingabe und
Ausgabe festgeklemmt sind (Fall 1, Z+), sollen also auch ohne Festklemmen der
Eingabe (Fall 2, Z-) aufgefunden werden.
Die "Energietäler" bei den Zuständen bei festgeklemmter Eingabe und Ausgabe
sollen also vertieft werden, andere Minimas nicht.
Da bei diesem Beispiel nur 3 Eingabe- und 3 Ausgabeneuronen existieren, liefert die
Funktion Boltzmann.Funktion() 3 Musterpaare ( Eingabe: 001- Ausgabe: 110 ,
E: 010 - A: 101 und E: 100 - A: 011) zum Training des Netzes.
Während des Trainings des Netzes im Applet kann man beobachten, wie sich
besagte "Energietäler" zunehmend vertiefen. Das obere Diagramm zeigt die
Zustände (grün), die bei festgeklemmter Eingabe und Ausgabe erreicht werden. An
diesen Stellen werden auch die "Energietäler" entstehen. Das untere Diagramm zeigt
die Zustände des freilaufenden Netzes (rot). Bei zunehmender Trainingszeit
beobachtet man, daß sich auch im unteren Diagramm immer häufiger die Zustände
wie im Diagramm darüber einstellen. Das Netz findet also auch die gesuchten
Zustände wieder, wenn es frei läuft.
Das Lernverfahren kann wie folgt beschrieben werden.
1.Berechne die Wahrscheinlichkeiten pij+ bei festgeklemmter Eingabe
Setze sumij = 0 ( Anzahl der gleichzeitigen Aktivierung von ai und
aj)
Für jeden der n Trainingsvektoren führe aus
- Aktivierung der Neuronen auf Trainingsvektor festklemmen
- Simuliertes Kühlen durchführen
- Für alle Neuronenpaare i, j setze sumij = sumij + ai*aj
Berechne die Wahrscheinlichkeit pij+ = sumij/n
2.Berechne die Wahrscheinlichkeiten pij- bei freilaufendem Netz
Setze sumij = 0 ( Anzahl der gleichzeitigen Aktivierung von ai und
160
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
aj)
Für jeden der n Trainingsvektoren führe aus
- Simuliertes Kühlen durchführen
- Für alle Neuronenpaare i, j setze sumij = sumij + ai*aj
Berechne die Wahrscheinlichkeit pij- = sumij/n
3.Korrigiere die Gewichte wij = wij + epsilon*(pij+
- pij-)
In der Prozedur Boltztest.Training() ist der Lernalgorithmus enthalten. (Im
Applet Source-Code sind an dieser Stelle noch Funktionen zur Ausgabe der
Diagramme etc. eingefügt.)
for (int i = 0; i < TrainingsCyclen;i++)
{
NN.resetSumme(); // sumij = 0 für alle i, j
for (int j = 0; j < AnzTrainingspaare ; j++)
{
Funktion(j); //Eingabe u. Ausgabe werden gesetzt
setInpPattern();
NN.FeedForward();
NN.berechneSummeP();
}
NN.berechneP(AnzTrainingspaare );
NN.aendereGewichte();
}
In Prozedur Boltztest.setInpPattern() wird das in Eingabe und Ausgabe
abgelegte Trainingsmusterpaar auf die Eingabe- und Ausgabeneuronen gelegt.
public void setInpPattern(){
NN.clamped = true;
NN.setzeEingabe (Eingabe);
NN.setzeZiel(Ausgabe);
NN.clamped = false;
NN.setzeEingabe (Eingabe);
NN.setzeZiel(Ausgabe);
}
In Boltzmann.FeedForward() werden zwei Kühlschritte durchgeführt. Einmal bei
festgegklemmten Zustand, einmal bei freilaufendem Netz.
public void FeedForward(){
clamped = true; //Eingabe u. Ausgabe Neuronen "festklemmen"
kuehlen();
clamped = false; //Netz läuft frei
kuehlen();
}
Die Prozedur Boltzmann.berechneSummeP() summiert die gleichzeitige
Aktivierung der Neuronenpaare i, j auf.
Bemerkung: Variablen, die mit c enden, wie z.B sumc[ ][ ], Ac[ ],... , werden
immer mit Werten belegt, die im festgeklemmten Zustand ermittelt wurden.
public void berechneSummeP()
{
for (int i = 0; i < AnzNeur; i++)
for ( int j = 0; j< AnzNeur; j++)
if (j!=i){
if ( Ac[i]*Ac[j] == 1) sumc[i][j] = sumc[i][j]+1;
if (A[i]*A[j] == 1)
sum[i][j] = sum[i][j]+1;
}
}
161
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
In der Prozedur Boltzmann.berechneP(int AnzPaare) werden jetzt die
Wahrscheinlichkeiten pij+ und pij- aus sum[][] und sumc[][]berechnet.
public void berechneP(int AnzPaare){
for (int i = 0; i < AnzNeur; i++)
for (int j = 0; j< AnzNeur;j++){
Pc[i][j] = sumc[i][j]/(float)AnzPaare;
P[i][j]
= sum[i][j]/(float)AnzPaare;
}
}
In Boltzmann.aendereGewichte() werden schließlich die Gewichte adaptiert.
public void aendereGewichte(){
deltaW = 0;
for (int i = 0; i < AnzNeur; i++)
for (int j = 0; j < AnzNeur; j++){
deltaW =Epsilon*(Pc[i][j] -P[i][j]) ;
W[i][j] = W[i][j] + deltaW;
}
}
2.6.5.4 Das Applet
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/fi-bolz/
162
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.7 Wettbewerbslernen
Typische Aufgabenstellung: Cluster-Analyse auf der Basis Neuronaler Netze (NN).
Zur Lösung dier Aufgabe werden NN mit zwei Schichten verwendet:

x
x1
x2
xn
.......
w11
Eingabeschicht
wm1
wmn
w12
wm2
.............
y1
Wettbewerbsschicht
ym

y
Abb. 2.7-1:
Eingabeschicht: Die Anzahl der Neuronen dieser Schicht entspricht der Anzahl der
Komponenten der zu untersuchenden Daten. Die Werte des Eingabemusters
werden an die zweite Neuronenschicht weitergeleitet.
Wettbewerbsschicht: Durch diese Schicht wird die Anzahl der Klassen oder Cluster
festgelegt, in die die Daten eingeteilt werden. Jedes Neuron dient zur Repräsentation
einer Klasse. Welche Klasse einem bestimmten Neuron zugeordnet wird, legen die
Gewichte fest, die die Neuronen der Eingabeschicht mit diesem Neuron verbinden.
Das Neuron, das die größte Übereinstimmung seiner Gewichtsinformation mit dem
Eingabemuster feststellt, erhält die Aktivierung 1, allen anderen Neuronen der
zweiten Schicht wird der Wert 0 zugeordnet. Falls nicht eindeutig bestimmt werden
kann, welches Neuron die größte Übereinstimmung mit ihrer Gewichtsinformation
ergibt, dann sollte zufällig eines der Neuronen mit maximaler Übereinstimmung
ausgewählt werden. Das Neuron, das die Aktivierung 1 erhält, wird als Sieger
(winner) bezeichnet. Die Auswahl eines einzelnen Neurons mit Aktivierung 1 und
Unterdrückung der Aktivierung aller anderen Neuronen, nennt man das WinnerTake-All-Prinzip.
Berechnung der Übereinstimmung zwischen Gewichtsinformation eines Neurons und
eines Eingabemusters:
n
 
x T  w j   wij  xi
i 1
Die Gewichte, die von der Eingabeschicht zu einem Neuron j der Wettbewerbsschicht führen, lassen
 w j1 



sich als n-dimensionaler Vekor w j   ...  auffassen (reellwertige Gewichtsvektoren). Die Norm
w 
 jn 
2


 T 
aller w j ist gleich 1: w j  w j  w j  1
163
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wegen der Normierung erhält man als Übereinstimmungsmaß den Cosinus des Winkels zwischen
Eingabe- und Gewichtsvektor. Je kleiner dieser Winkel ist, desto eher wird das entsprechende Neuron
als Sieger hervorgehen. Der größtmögliche Übereinstimmungswert wird nur auftreten, wenn Eingabeund Gewichtsvektor identisch sind.

Gewinner ist bei der Eingabe von x das Neuron, dessen Gewichtsvektor am


nächsten bei x liegt Sein Gewichtsvektor wird ein kleines Stück näher an x
herangerückt.


x (t )  w j (t )

w j (t )

w j (t  1)

x (t )
Abb.:
Erlernen der Gewichte: Die Gewichtsvektoren des Siegerneurons werden nach dem
Verarbeiten des vorgegebenen Eingabevektors so verändert, dass sich bei erneuter
Präsentation desselben Eingabevektors eine noch bessere Übereinstimmung für
diese Neuron ergibt. Neuer Gewichtsvektor könnte sein:


w j* (t )  x

w j* (t  1)  

w j* (t )  x
Der resultierende Vektor halbiert offenbar den Winkel von zwischen dem

Eingabevektor x und dem bisherigen Gewichtsvektor, so dass sich bei erneuter
Präsentation ein kleinerer Winkel und somit eine größere Übereinstimmung

zwischen x und dem neuen Gewichtsvektor ergibt.
Allgemein kann anstelle der angegebenen Formel auch



w j* (t )   x (t )  w j* (t ) 





w j* (t  1)  w j* (t )   x (t )  w j* (t )  bzw. w j* (t  1)  


w j* (t )   x (t )  w j* (t ) 

j*: Index vom Gewinnerneuron bei der Präsentation von x .
0    1 ist die Lernrate, die bestimmt, wie stark der Gewichtsvektor vom Eingabevektor angezogen
wird.
verwendet werden.
Die Gewichtsvektoren der anderen Neuronen bleiben unverändert.
Falls sich die Gewichtsvektoren des Neuronalen Netzes durch das
Wettbewerbslernen so eingestellt haben, dass sich jedes Neuron in der
Wettbewerbsschicht eine feste Menge Eingabevektoren "erobert" hat, für die es als
Siegerneuron hervorgeht, springt der Gewichtsvektor beim Lernen ständig zwischen
den eroberten Eingabevektoren hin und her. Zum Vermeiden bzw. Verringern dieses
Effekts wird die Lernrate nicht konstant gewählt, sondern während des Lernens
ständig verkleinert, bis sie schließlich den Wert Null erreicht oder einen Wert nahe 0
unterschritten hat, was der Beendigung des Lernvorgangs entspricht.
Arbeitsweise:
-
Anlegen eines Eingabevektors

x
164
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
n
Auf jedes Ausgabeneuron j wirkt dann
w
i 1
-
ij


(t )  xi (t ) x (t ) T  w j (t )
Auswahl des Gewinnerneurons (Voraussetzung: auf 1 normierter Gewichtsvektor)


wj  x
2

T 

 

2
 w j  x   w j  x   w j  2 x T w j  x
2
 

 1  2x T w j  x
2
 
Demnach ist die Auswahl des Neurons j mit dem größten Skalarprodukt x T  w j

gleichbedutend mit der Auswahl des Neurons j*, dessen Gewichtsvektor w j dem

Eingabevektor x am nächsten liegt.
Clusterung: Das Erkennen der Clusterung ist in höherdimensionalen Räumen
weitaus schwieriger, als es ein zweidimensionales Netz vermuten lässt. In vielen
Fällen wird man ein selbstorganisierendes Netz verwenden, das so viele
Ausgabeneuronen hat, wie man Klassen hat. Man hofft, dass sich die jeweiligen
Gewichtsvektoren
dieser
Ausgabeneuronen
bei der Präsentation
der
Eingabevektoren in das Zentrum einer der Klassen hinein bewegen. Am Ende stellt
der Gewichtsvektor eines jeden Ausgabeneurons ein Prototyp für eine Klasse dar.
Diese Verfahrensweise ist unter der Bezeichnung Learning Vector Quantization
(LVQ) bekannt.
Vector Quantization ist die wichtigste Anwendung des konkurrierenden Lernens.

Dabe werden die Eingabevektoren x in Klassen kategorisiert und durch den Index
der Klasse repräsentiert. Dieses Verfahren eignet sich gut zur Datenkompression,
denn es braucht nicht mehr der der "große" Vektor übertragen oder gespeichert
werden, sondern nur dessen Index. In einem Codebuch kann man den
Repräsentations-Vektor nachschlagen.
Hat man durch Selbstorganisation die Gewichtsvektoren als Prototypen von Clustern
ausgebildet, so hat man dadurch noch keine Information darüber, ob zwei Cluster
eher näher beieinander liegen oder voneinander weiter entfernt sind. Solche
Information würde man erhalten, wenn man die Ausgabeneuronen noch mit einer
"Nachbarschaftsstruktur versehen hätte, die nach dem Training Ähnlichkeiten im
Eingaberaum widerspiegelt. Diese zusätzliche Idee liegt den selbstorganisierenden
Karten (Self Organizing Maps, SOMs) von Kohonen zugrunde.
165
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8 Selbstorganisierende Netze
2.8.1 Sensorische Karten (SOMs)
Bei Selbstorganisierenden Karten handelt es sich um ein spezielles Neuronales
Netz, das sich selbst organisiert, also im Gegensatz zum Perzeptron ohne Lehrer
arbeitet. Ein weiteres spezifisches Merkmal der SOMs ist, dass auch die räumliche
Anordnung der Neuronen untereinander eine wichtige Rolle in Lernverfahren spielt.
2.8.1.1 Beschreibung
1. Einführung
Sensorische Karten sind Modelle NN, die die Fähigkeiten des Gehirns zur
Selbstorganisation nachahmen und ihre Verbindungsstruktur gemäß einfachen
Regeln selbst organisieren. Von Rezeptoren erhält eine Schicht interner Neuronen
(sensorische Karte) Signale. Die Erregung der Neuronen konzentriert sich auf ein
räumlich begrenztes Gebiet der Karte. Je ähnlicher zwei Eingaben sind, desto näher
liegen die dadurch aktivierten Neuronen beieinander. Einander ähnliche
Eingabevektoren werden in der SOM auch beieinander dargestellt. Nach der
Lernphase bildet die Karte den Merkmalsraum der Eingabesignale in seinen
Ähnlichkeitsbeziehungen räumlich korrekt ab.
Kohonen formulierte das mathematische Modell (Kohonen Feature-Map) eines
selbstorganisierenden Prozesses, der eine solche Abbildung leistet.
2. Aufbau der Kohonen Feature-Map
Selbstorganisierende Karten sind Netze mit nur einer Schicht aktiver Neuronen
(Kohonenschicht, Kohonen Feature Map, selbstorganisierende Karte (SOM)), die
gleichzeitig die Ausgabeschicht bildet und eine Schicht von Eingabeneuronen. Jedes
Eingabeneuron ist mit jedem Neuron der Kartenschicht verbunden. Neuronen der
Kohonenschicht bilden im Gegensatz zu dem schichtenweise aufgebauten
Feedforward-Netzen
ein
m-dimensionales
Gitter
mit
lokalen
Nachbarschaftsbeziehungen. Meistens wird ein quadratisches oder hexagonales
Gitter gewählt. Manchmal benutzt man auch eindimensionale Ketten oder
dreidimensionale Gitter.
166
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eingabe
Eingabeneuronen
Nachbarschaftsbeziehungen
(Rückkopplungskoeffizienten)
Abb. 2.8-1: Netz mit Eingabe und Rückkopplung
Von einer Eingabeschicht wird Aktivierung ausgebreitet zu einer in der Regel
zweidimensionalen Ausgabeschicht (eigentliche sensorische Karte). Die
Kartenschicht ist auf sich selbst zurückgekoppelt, d.h.: Jedes Neuron der Karte ist
mit sich selbst wechselseitig verbunden. Innerhalb der Kartenschicht ist jedes
Neuron i durch seine Koordinaten "x" und "y" bestimmt.

Jedes Kohonenneuron „j“ besitzt einen Gewichtsvektor: w j  (w1 j , w2 j ,..., wnj ) . Je

Eingabeneuron kann ein Wert xi verarbeitet werden. Der Eingabevektor x umfasst
die Komponenten: ( x1 , x2 ,..., xn ) . Beschränkt man sich maximal auf drei
Dimensionen, dann kann man sich sowohl die Eingaben als auch die Gewichte
anschaulich als Ortsvektoren vorstellen. Bspw. entsprechen bei einer rechteckigen
Karte mit zweidimensionale Eingabe sowohl die Gewichtsvektoren als auch die
Eingabevektoren ebenen Punktkoordinaten.
Die Gewichtsvektoren werden im Laufe des Trainingsprozesses so im ndimensionalen Raum angeordnet, dass sie die Eingabevektoren räumlich geordnet
repräsentieren. Infolge der Nachbarschaftsbeziehungen der Kohonen-Neuronen
verhalten sich deren Gewichtsvektoren wie ein elastisches Gitternetz. Durch
Änderung der Gewichte eines Neurons an einer Stelle werden auch die Gewichte der
Nachbarn beeinflusst. Das Training einer zweidimensionalen Karte mit zwei
Eingabeneuronen, also mit Eingabevektoren gleicher Dimension, kann man sich
bspw. sehr gut als eine Art allmähliches „In-Form-Ziehen“ eines realen Netzes
vorstellen60.
3. Knotendynamik

Je Lernschritt wird ein Eingabevektor x  ( x1 , x 2 ,..., x n ) präsentiert. Dieser wird mit
allen vorhandenn Gewichtsvektoren verglichen. Als Vergleichsmetrik werden dafür
entweder die Euklidische Norm oder für normalisierte Vektoren, das Skalarprodukt

verwendet. Das Neuron „c“, dessen Gewichtsvektor w c dem aktuellen Eingabevektor

x am ähnlichsten ist, gewinnt. Die Art der Ähnlichkeit ergibt sich aus der
Vergleichsnorm. Bei Verwendung der Euklidischen Norm und Betrachtung der
60
vgl. 2.8.1.3.2.2
167
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Gewichte als Ortsvekoren ist dies anschaulich betrachtet jenes Neuron, das der
Eingabe am nächsten ist.

x  wj

x

wj
Abb.: Minimale Euklidische Distanz zwischen einem Eingabevektor und einem Gewichtsvektor. Sie ist
nicht anderes als die Entfernung zweier Vektoren und ein Maß für die Ähnlichkeit
Für den Gewinner gilt allgemein:
 
 
x  wc  min j ( x  w j ) . Mit der Euklidischen
Distanz ermittelt sich der Gewinner folgendermaßen:
 
c  arg min j ( x  w j )  arg min j ( ( x1  w1 j ) 2  ...  ( xn  wnj ) 2
Verwendet man das Skalarprodukt und normiert die Vektoren zuvor, ergibt sich für
„c“:
 

x1  w1 j  ...  x n  wnj
x w
c  arg max j (    )  arg max j 

2
2
2
2
x w
 x1  ...  x n  w1  ...  wn




Nachdem der Gewinner ermittelt ist, erfolgt das Training von Gewinner-Neuron und
jenen Neuronen, die sich in topologischer Nachbarschaft befinden. Die
Nachbachschaftsfunktion beschreibt:
 
hcj (t )  h( rc  r j )  h( z, t )  h' ( z , d )
 
rc , r j : Position der Neuronen c und j im Neuronengitter.
t  1,2,... diskrete Zeitkonstante, die die zeitlich veränderbare Lernrate mit 0   (t )  1
mitbestimmt.
 
Aus der Differenz rc  r j ergibt sich die jeweilige Distanz des Neuron j zum
 
Gewinnerneuron c. Mit steigendem Abstand rc  r j gilt: hcj  0
Statt des Zeitparameters kann man alternativ einen Distanzparameter d verwenden,
der direkt die Größe der Reichweite angibt und für den gilt: d  0 für t   .
Die Größe des Nachbarschaftsradius ändert sich im Laufe des Trainingsprozesses.
Man beginnt mit einer relativ grossen Umgebung und lässt diese mit fortschreitenden
Trainin immer kleiner werden, bis zum Schluß nur das Gewinnerneuron übrig bleibt.



Das neue Gewicht w j (t  1)  w j (t )   (t )  hcj (t )  ( x (t )  w j (t )) ermittelt.
168
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.1.2 Lernverfahren: Bestimmen der Gewichte
Kinnebrock61 schlägt für die Implementierung des Lernverfhrens von Kohonen
folgende Vorgehensweise vor:
(1) Wähle alle wij über Zufallszahlen

(2) Gib einen Eingabevektor i vor (sensorisches Signal)
(3) Suche das Neuron („j“), für das  (ik  w jk ) 2 minimal ist.
k
Zur Ermittlung des Erregungszentrums schlägt Kohonen vor: Auswahl des
Neurons "j" mit der maximalen Netzeinwirkung aller isoliert betrachteten
Kartenneuronen
max  wij  oi 62. Falls alle Gewichtsklassen und alle
i
Eingabevektoren dem Betrag nach konstant sind, kann man für
w
ij
i

 
 oi

folgenden Hilfssatz anwenden: Das Skalarpodukt a  b zweier Vektoren a , b ist
maximal, falls  ( ai  bi ) 2 minimal ist.
i
Obwohl die Voraussetzung nicht exakt erfüllt ist, wird hier das Neuron gesucht, für
das  ( wik  ik ) 2 minimal ist.
k
Nach
der
Bestimmung
des
Erregungzentrums
Rückkopplungskoeffizienten so zu wählen:
"j"
sind
die
- Neuronenpaare, die im Gitter nahe beeinander liegen, erhalten große Werte zugeordnet
- Neuronenpaare, die im Gitter weiter voneinander entfernt sind, erhalten kleine Werte zugeordnet.
Den Grad dieser Beeinflussung beschreibt Kohonen für zweidimensionale
Neuronengitter durch:


rij  exp( ( x i  x j ) 2 / 2   2 )
 
xi , x j : Lagevektoren der entsprechenden Neuronen im Gitter
 2 : Varianz (zweidimensionale Gaußverteilung), bestimmt
die
räumliche
Ausdehnung der Glockenfläche, d.h.: den Radius des Einflusses eines Neurons
auf seine Nachbarn.
(4) Verbessere alle Gewichte wik durch wik (t  1)  wik (t )    rij  (ik  wik (t )) mit
(5) Weiter bei (2)
61
62
W. Kinnenbrock, Neuronale Netze, … S. 83
Voraussetzung: auf 1 normierte Gewichtsvektoren
169
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.1.3 Implementierungsbeispiele
2.8.1.3.1 Simulationsbeispiel mit eindimensionaler Eingabe
1. Aufgabe: „Eindimensionales Neuronengitter mit eindimensionalen Eingaben“
2. Applet:
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/fi-kohonen/kohonendemo.html
2.8.1.3.2 Simulationsbeispiele mit zweidimensionalen Eingaben
Es werden Netze mit 2 Eingabebits bearbeitet.
2.8.1.3.2.1 Eindimensionales Gitter der Neuronenkette
2.8.1.3.2.1.1 Streckenförmige Anordnung der Neuronenkette
.
.
.
.
Abb.: Kette mit n Eingabeneuronen und m Ausgabeneuronen
1. Aufgabenstellung
Betrachtet wird ein Kohonen-Netz, das eine eindimensionale Neuronenkette und
zweidimensionale Eingaben verwendet, d.h. Jedem Neuron i sind die Gewichte w ix
und wiy zugeordnet. Beide Zahlenwerte sind einem Punkt der Ebene (x-Koordinate,
y-Koordinate) zugeordnet.
Am Anfang des Lernverfahrens sind den Neuronen zufällige Punkte zugeordnet.
Verbindet man die Punkte in der Reihenfolge der Neuronen in der Kette, dann
überschneiden sich die Verbindungslinien, es ist keine Ordnung erkennbar. Im
weiteren Ablauf des Lernverfahrens ergeben die Punkte in der Reihenfolge wie die
zugehörigen Neuronen in der Kette stehen, eine Kurve. Diese Kurve wird immer
länger und überdeckt schließlich die ganze Zeichenfläche des Bildschirmfensters.
2. Applet: Eindimensionales Netz mit zweidimensionaler Eingabe
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/sauer-edg/applet.html
170
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.1.3.2.1.2 Kreisförmige Anordnung der Neuronenkette63
.
.
.
.
Abb.: Ring mit n Eingabeneuronen und m Ausgabeneuronen
1. Aufgabenstellung: Lösung eines TSP mit einem Kohonen-Netz
Bei zweidimensionaler Eingabe läßt sich jedem Neuron ein Punkt der Ebene
zuordnen. Die Verbindung ergibt eine geschlossene Kurve. Verbindet man alle
Punkte durch das Kohonen-Lernverfahren, so werden im Grenzwert benachbarte
Neuronen Gewichtsvektoren (d. h. Punkte der Ebene) besitzen, die topologisch nicht
weit auseinanderliegen. Daher ist die entsprechende Kurve eine geschlossene Kurve
minimaler Länge.
Das ermöglicht die Lösung des bekannten Travelling Salesman Problen (Problem
eines Handlungsreisenden, TSP). Ein Reisender soll k Städte anfahren und dabei
Punkte wählen, bei der der gesamte Reiseweg minmal ist. Gibt man k
Eingabevektoren bei n Neuronen vor (n >= k), so lernt das Netz eine geschlossene
Kurve (Städte).
Ausgangspunkt ist ein Kreis, dessen Punktkoordinaten als Startwerte eingegeben
werden. Die Lernschritte bewirken, daß der Kreis deformiert wird und sich immer
mehr den zu ermittelnden Reiserouten anpaßt.
Bei n Städten gibt es n! verschiedene Folgen von Städten. Es existieren jeweils 2  n
Folgen von Städten mit gleicher Weglänge, da ausgehend von einem Weg jede
Stadt als Startpunkt gewählt und der Weg in jeweils 2 verschiedene Richtungen
n!
zurückgelegt werden kann. Insgesamt gibt es daher
verschiedene geschlossene
2n
Routen. Das TSP-Problem ist daher durch einfaches Testen alle möglichen Routen
(Verfahren der vollständigen Enumeration) für eine große Anzahl von Städten
praktisch auf keiner Rechenanlage lösbar. In der Informatik werden Probleme mit
diesen Eigenschaften NP-vollständig genannt.
Mit Hilfe des von Kohonen definierten selbstorganisierenden Prozesses kann in
relativ kurzer Zeit eine gute Näherungslösung für dieses Problem gefunden werden.
2. Applet: Lösung TSP mit einem Kohonen-Netz
http://fbim.fh-regensburg.de/~saj39122/kiwei/nn.html
63
(vgl. PR28104.PAS)
171
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.1.3.2.2 Zweidimensionale Gitterstruktur
Abb.: Rechteckgitter (z.B. der Dimension 5 mal 3)
1. Aufgabenstellung
Jedem Neuron eines Gitters wird ein Punkt der Ebene zugeordnet: Wenn man zwei
Punkte, deren Neuronen im Gitter benachbart sind, miteinander verbindet, entsteht
ein Netz.
2. Applet: Zweidimensionales Neuronengitter
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/sauer-zdg/applet.html
172
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.1.4 Anwendungen
2.8.1.4.1 Zeichenerkennung mit Kohonen Feature Map
http://fbim.fh-regensburg.de/~saj39122/begrolu/nn1.html
2.8.1.4.1 Zahlenerkennung mit Kohonen Feature Map
http://fbim.fh-regensburg.de/~saj39122/NN/zimmermannLipfert/index.html
2.8.1.4.2 Spracherkennung
http://fbim.fh-regensburg.de/~saj39122/smp/index.html
173
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.2 Motorische Karten
2.8.2.1 Beschreibung
Bei den bisher betrachteten Netzen wurde jedem Eingabevektor ein lokal begrenztes
Feld im NN zugeordnet. Das entspricht bis zu einem gewissen Grad auch der
Arbeitsweise des Gehirns. Allerdings reicht die Stimulierung von Neuronengruppen
durch von außen eingeleitete Reize allein nicht aus, um die Lernfähigkeit eines
biologischen Individuums zu sichern. Die Eingabereize sollen auch Reaktionen
hervorrufen, die die Reize entsprechend beantworten.
Eingabe
Netz
Ausgabe
Abb. 2.8-3: Neuronales Netz mit Ein-, Ausgabe
Der unter 2.8.1 beschriebene Netztyp wird um Ausgaben erweitert. Alle Neuronen
des Netzes sind miteinander verbunden. Im Netz herrscht damit eine Rückkopplung.
Die Eingabevektoren wirken über die Gewichte wijein auf die Neuronen des Netzes.
Diese beeinflussen sich gegenseitig durch die Gewichte der Rückkopplung r ij. Falls
diese Gewichte auf weite Distanz hemmend, auf in der Nähe befindliche Neuronen
stimulierend wirken, sensibilisieren die Eingabevektoren Neuronengruppen statt
einzelner Neuronen. Den Ausgabewerten eintsprechen die Ausgabegewichte wijaus
174
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.2.2 Lernverfahren
Kinnebrock64 schägt zur Implementierung dieses Lernverfahrens folgende
Verfahrensweise vor:
(1) Wähle alle Gewichte wikein und wikaus aus


(2) Gib einen Eingabevektor i vor (sensorisches Signal). i wird aus einer
Wahrscheinlichkeitsverteilung gewählt.
2
(3) Suche das das Neuron („j“) für das  ( w ein
jk  i k ) minimal ist. „j" ist das
k
Erregungszentrum.
(4) Verbessere alle Gewichte wikein durch: wikein (t  1)  wijein (t )    rij  (ik  wikein (t )) mit
  0 . „j“ gibt das Erregungszentrum an.
(5) Vebessere alle Gewichte wikaus durch: wikaus (t  1)  wikaus (t )   'r 'ikij (ai  wijaus (t )) mit
' 0. „j“ gibt das das Erregungszentrum an.
(6) weiter bei (2)
Die Rückkopplungskoeffizienten rij und r'ij werden nach der Vorschrift


rij  exp( ( x i  x j ) 2 / 2  2 )
bzw.


r 'ij  exp( ( x i  x j ) 2 / 2   ' 2 )
berechnet.
 
xi , x j : Lagevektoren der sich beeinflussenden Vektoren
Sind Ein-, Ausgabewerte bekannt, dann ist das Lernverfahren ein Verfahren mit
Unterweisung.
Existiert lediglich eine Bewertungsfunktion, die für jede Ausgabe die Qualität der
Netzreaktion feststellen kann, dann läßt sich das Netz durch folgende Formel
beschreiben:
wijaus (t  1)  wijaus (t )   'r 'ij mit ' 0 und r'ij (gaußverteilte Zustandsgröße mit der
Varianz 1). Sind die so errechneten neuen Gewichte entsprechend der
Bewerungsfunktion besser, werden sie behalten, andernfalls vergessen (Lernen
ohne Unterweisung, Unsupervised Learning)
64
W. Kinnebrock: Neuronale Netze, ... , S. 93
175
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.2.3 Anwendungen
2.8.2.3.1 Kohonnen-Wippe
1. Ausgangssituation
Eine Wippe mit einem auf der linken Seite befestigten Störgewicht von 200 kg und
einem Wagen (Gewicht: 50 kg) auf der rechten Seite.
2. Ziel
Der Wagen soll auf der Wippe solange bewegt werden, bis der Gleichgewichtszustand erreicht wird.
3. Lösung
Zur Lösung dieses Problems wurde eine Kohonen Feature Map (motorische Karte)
gewählt. Dieser Netzwerktyp soll die physikalische Gesetzmäßigkeit des
"Hebelgesetzes" in Bezug auf die Wippe abbilden.
Folgende Einflußgrößen werden zum Trainieren des Netzes herangezogen:
Störgewichtentfernung und Wagengewicht. Wird einer dieser Parameter verändert,
so muß das Netz neu trainiert werden.
4. Trainieren des Netzes
Folgende Eingangsgrößen werden zum Trainieren des gewählten Netzwerktyps
herangezogen: Störgewichtsgröße, über das Hebelgesetz ermittelte Entfernung
zwischen Wagen und Unterstützungspunkt. Diese Eingangsgrößen werden über
Zufallszahlen ermittelt. Der Wertebereich der Störgewichtsgröße liegt zwischen -200
und +200 (Gewichtseinheiten), der Wertebereich der Entfernung des Wagens vom
Unterstützungspunkt liegt zwischen 0 und 5000 (Entfernungseinheiten). Die Funktion
des Lehrers übernimmt hierbei das Hebelgesetz.
5. Anleitung zur Bedienung des Applets
Durch Anklicken der Schaltfläche "Trainieren" wird das Kohonen-Netz mit den unter
"Lernschritte" und "Neuronen" angegebenen Werten berechnet.
Je mehr Lernschritte und Neuronen eingestellt werden, um so länger dauert die
Berechnung. Den momentanen Stand der vollzogenen Lernschritte kann man unter
der Grafik ablesen.
Sobald alle Lernschritte durchgeführt worden sind, ist die Schaltfläche "Simulieren"
aktiviert. Durch betätigen dieser Schaltfläche wird das Ergebnis in einer Animation
graphisch dargestellt. Durch betätigen der Schaltfläche "Reset" werden alle
ermittelten Werte zurück gesetzt.
Es wird empfohlen, unterschiedliche Anzahl von Lernschritten und Neuronen
einzusetzen, um die damit resultierenden Ergebnisse zu vergleichen .
6. Das Applet
http://fbim.fh-regensburg.de/~saj39122/Wilke/index.html
176
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.8.2.3.2 Auffangen eines Balls
1. Aufgabenstellung
Der Ball, dargestellt durch ein Symbol, befindet sich am oberen Bildschirmrand in der
Bildschirmmitte. Dieser Ball fällt unter Einfluß der Erdbeschleunigung nach unten,
wobei er gleichzeitig nach rechts oder links einen Stoß erhält. Es ensteht eine
parabelähnliche Flugbahn. Am unteren Bildschirmrand fährt ein Lastwagen (mit
einem Behälter, der Auffangvorrichtung), der sich zum Zeitpunkt des Starts vom Ball
auf der Position „pos“ befindet, mit der Geschwindigkeit v so, das er beim
Ankommen des Balls am unteren Ende den Ball auffängt. Der Wagen soll lernen,
seine Geschwindigkeit v so zu wählen, daß er den Ball auffängt.
Abb.
2. Physikalische Grundlagen der Aufgabenstellung:
Horizontale Bewegung des Balls: s 0  v0  t
v0: Geschwindigkeit mit der der Ball angestoßen wurde
s0: Stellung, Position des Balls zu Beginn des Experiments
Vertikale Bewegung des Balls: H - ½ g t2
H: Höhe des Balls
g: 9,81 m/s2
Der Behälter bewegt sich horizontal. Das kann so beschrieben werden: pos  v  t
177
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
pos: Anfangsposition des Lastwagens
v: Geschwindigkeit des Lastwagens
Gleichgewichtsbedingungen für das Auffangen des Balls durch den Lastwagen
s 0 v0  t  pos  v  t
Mit den Bildschirmabmessungen 0  x  630 (horizontal, von links nach rechts) und
0  y  199 (vertikal, von oben nach unten), den Zeitschritten t  0,1,2,3,...,14 erfolgt
ein Auffangen des Balls nach
pos  v  T  315  v0  T
Damit kann v in Abhängigkeit von v0 (Anfangsgeschwindigkeit des Balls) und pos
(Ausgangsposition des LKW) berechnet werden:
v
315
pos
pos
 v0 
 22.5  v0 
14
14
14
Schematischer Aufbau des Netzwerks. Das Netz besteht aus 2 Schichten:
ein
- WEIN ( wij besteht aus Zahlenwerten im Bereich von 0 .. 630 bzw. -22 bis 22)
aus
- WAUS ( wij
besteht aus Zahlenwerten im Bereich von 0 .. 630)
4. Das Applet
http://fbim.fh-regensburg.de/~saj39122/vhb/NN-Script/script/gen/Applets/nn-ball/nn_ball.html
178
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.9 RBF-Netze
2.9.1 Grundlagen
Aufbau

x
Eingabeschicht:
....
 
c1  x
Hidden-Schicht
1


cK  x
1
...
K
K
g11
Ausgabeschicht:

gK1

ck : Stützstellen
 k : Streuungsparameter

y
y1
-
yM
Das RBF-Netz besteht aus einer Eingabeschicht mit N Neuronen, einer verborgenen Schicht
mit K Neuronen und einer Ausgabeschichicht mit M Neuronen.
Eingabeschicht: jedes Neuron verteilt seine Wert an alle Neuronen der verborgenen Schicht.
verborgene Schicht: In der verborgenen Schicht wird in jedem Neuron der Abstand zwischen
der Eingabe und dem Zentrum c (mit Hilfe einer Norm) gebildet:
ck  xk . Danach wird dieser
Abstand z.b. durch eine Gauss-Kennlinie geschickt:
hk  hk  c k  x   exp( 
-
1
2
c k  x ) . Die Gauskennlinie ist abhängig von einem
2
2
Parameter  , der die Breite der Glocke angibt. Diese  muß für jedes Zentrum gewählt
werden. Die Gausglocke verursacht, dass das Neuron, wenn Zentrum und Muster nahe
beeinander liegen, sehr viel stärker als die lineare Kennlinie reagiert, wenn die Zentrum und
Muster weiter auseinander liegen, sehr viel schwächer.
Ausgabeschicht: In der Ausgabeschicht wird eine gewichtete Summe gebildet. Für das erste
Neuron der Ausgabeschicht wäre dies y1 
K
g
k 1
k1
 hk . Die Neuronen der Ausgabeschicht,
sowie auch alle anderen Neuronen haben keinen Bias.
Für das Lernen ergeben sich folgende einzustellende Werte:
1. die Zentren
2. die Breiten 
3. die Gewichte g
179
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Universelle Funktionsapproximator
RBF-Netze sind universelle Funktionsapproximatoren für Funktionen. Sie setzen
Funktionen als Überlagerung von Radialen zusammen
2.9.2 Einstellen der Gewichte, Anpassen bzw. Wahl der Zentren und
Breiten
2.9.2.1 Einstellen der Gewichte
Annahme: Es gibt schon die Zentren und Breiten der Gaußglocken. Es sind dann nur
noch die Gewichte gk an den Ausgabeneuronen zur Approximation der Zielfunktion
einzustellen. Das soll an einem Ausgabeneuron vollzogen werden. Die anderen
werden analog eingestellt. Die Anzahl der Neuronen ist K, die Anzahl der
Trainingsbeispiele ist P.
-
K > P: Dieser Fall ist uninteressant. Er ist auch sehr selten, da im Allg. mehr Trainingsmuster
vorliegen als Neuronen.
K = P: Für die Ausgabe des Netzes gibt es folgende P Gleichungen
p 1
K
y   g k hk (
p 1
k 1
p 2
K
y   g k hk (

x  ck )
p 2
k 1

x  ck )
....
pP
K
y   g k hk (
pP
k 1

x  ck )
In Matrixschreibweise ergibt dies:






Y  H  G bzw. G  H 1  D . Es wird vorausgesetzt, dass
-
die inverse Matrix existiert
K < P: Es gibt mehrere Möglichkeiten die Gewichte anzupassen:



Aufstellen der Gleichung: Y  H  G . Die Matrix kann nicht invertiert werden, da sie
nicht quadratisch ist. Es wird daher eine Pseudoinverse bestimmt, die Moore

PenrosePseudoinverse. Sie wird berechnet durch: H
Dimensionen



 ( H T  H ) 1  H T . In
1
( K  P  P  K )  ( K  P) . Die Moore-Penrose Pseudoinverse wird die


K K


K P




Fehlerquadrate minimieren. Also ergibt sich wieder: G  H  D
Hinweis: Die Berechnung mit der Moore-Penrose Pseudoinverse wird praktisch nicht
durchgeführt, da diese Matrizen sehr hohe Dimension haben, wenn es viele
Trainingsmuster gibt.
Das folgende Matlab-Skript
Pseudoinversen:
zeigt
die
180
Anwendung
der
Moore-Penrose-
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
% rbfexample1.m
clear all
xi=[-1 -0.5 1]';
n=length(xi);
d =[0.2 0.5 -0.5]';
x=[-3:0.02:3];
% construct the M matrix
% first find xi-xj
M0=abs(xi*ones(1,n)-ones(n,1)*xi');
% using Gaussian radial basis function
disp('with Gaussian radial basis function, ...')
M=(1/sqrt(2*pi))*exp(-0.5*M0.*M0)
w=pinv(M)*d
type=1; % Gaussian rbf
f0=zeros(size(x)); f=[];
for i=1:3,
para=[xi(i) 1];
f(i,:)=w(i)*kernel1d(type,para,x);
end
f0=sum(f);
figure(1), clf
plot(x,f(1,:),'k:',x,f(2,:),'b:',x,f(3,:),'r:',x,f0,'g.',xi,d,'r+')
title('F(x) using Gaussian rbfs')
axis([-3 3 -2 3])
Es wird eine Funktionsapproximation für drei Stützstellen ausgeführt:
181
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Der Gewichtsvektor kann auch durch Lernen an Beispielen bestimmt werden. Ein
Gradientenabstieg ist möglich. Es wird die  -Regel benutzt. Es gibt kein
Backpropagation, da nur in der Ausgabeschicht gelernt werden muß
2.9.2.2 Anpassen bzw. Wahl der Zentren und Breiten
Zentren
Die Stützstellen stellen Punkte dar durch die approximierende Funktion laufen sollte.
Dazu könnte jeder Trainingsvektor eine Stützstelle bestimmen. Jedoch können hier
statistische Ausreißer (z.B. Messfehler) oder große Datenmengen zu Fehlern führen.
Daher ist man interessiert, dass verfügbare Datenmaterial zu komprimieren. Dazu
können Cluster gebildet werden, die das verfügbare Meterial komprimieren.
Breiten
Es ist darauf zu achten, dass durch die Kombination mit der Streuung der
Musterraum vollständig abgedeckt wird. Praktisch kann das so aussehen, dass man
zur Bestimmung der Steung für eine Stützstelle zunächst an den k nächsten
Nachbarn einen gemittelten Vektor festlegt. Aus dem Abstand dieses Vektors zur
Stützstelle kann man die Steuung ableiten.
d
Für die Berechnung wurden auch folgende Heuristiken herangezogen:  
oder
2K
1
  d
3
182
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.10 ART
2.10.1 Einführung
2.10.2 Struktur
2.10.3 Lernen im ART-Netzwerk
2.10.4 Leistungen und Grenzen vom ART
183
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.11 Counter Propagation
2.11.1 Die Netzstruktur
1. Beschreibung
Das Netzwerk65 besteht aus 3 Schichten: Eingabeschicht, Kohonenschicht,
"Grossberg-Outstarschicht".
..............
Eingabeschicht
..............
Kohonenschicht
Grossberg
-Outstarschicht
..............
Abb.: 2.5-1: Topologie des Netzes "Counter Propagation"
Der Informationsfluß läuft von der Eingabeschicht über die Kohonenschicht zur
"Grossberg-Outstarschicht".
2. Eingabeschicht
Das Netzwerk ermöglicht binäre und reellwertige Eingaben (und Ausgaben). Es ist
sinnvoll, die Eingabevektoren bei diesem Netzwerktyp zu normieren. Jedes Element
der Kohonenschicht bekommt einen Input von jedem Element der Eingabeschicht.
3. Kohonenschicht
Jedes Kohonen-Element berechnet den aufsummierten, mit den Gewichten
multiplizierten Input durch:
n
neti   wij  o j
j 1
bzw.
65
Mitte der 80er Jahre von R. Nielsen entwickelt (Kombination der Ansätze von T. Kohonen und S. Grossberg)
184
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen


neti  wi  x

wi : Gewichtsvektor des i-ten Kohonen-Elements (i-ter Zeilenvektor)66

x : Eingabevektor der Kohonenschicht.
Das Element mit dem größten neti erhält die Ausgabe oi = 1, die anderen Elemente
haben die Ausgabe oi = 067.
Im zweidimensionalen Fall ist das Skalarprodukt zwischen einem normalisierten
Gewichts- und Eingabevektor gleich dem Cosinus des Winkels  zwischen Eingabeund Gewichtsvektor: neti  cos
Je Kleiner der Winkel zwischen Gewichts- und Eingabevektor ist, d.h. je dichter die
beiden Vektoren beieinander liegen, umso größer ist neti . Zeigen die beiden
Vektoren in die gleiche Richtung, dann ist neti  1. Das Gewicht, dessen
Gewichtsvektor die größte Ähnlichkeit zum Eingabevektor zeigt, hat die größte
Aktivität.
Legt man einen Eingabevektor an die Kohonenschicht an, so wird die Eingabe des
Elements zu 1, dessen Gewichtsvektor die größte Ähnlichkeit mit dem Eingabevektor
hat. Betrachtet man jeden einzelnen Gewichtsvektor als Klasse oder Kategorie, so
findet eine Klassifizierung des angelegten Eingabevektors in die für ihn am besten
passende Kategorie statt.
4. Grossberg-Outstarschicht
Jedes Outstar-Element i berechnet die gewichtete Summe seiner Eingaben:
neti   wij  o j und oi  neti
Da in der Kohonen-Schicht nur ein Element aktiv und die Ausgabe aller anderen
Elemente null ist, entspricht die Ausgabe jedes Outstar-Elements i dem Gewicht zu
dem aktiven Kohonen-Element k.
oi  wik



Für den Ausgabevektor o gilt: o  w k

w k ist die Spalte des aktiven Kohonen-Elements k in der Gewichtsmatrix der
Outstarschicht.
66
Die Zeilenvektoren der Gewichtsmatrix sind normalisert
Die Kohonen-Schicht ist eine sog. "Winner take all"-Schicht. Bei gegebener eingabe wird genau ein element
aktiv.
67
185
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2.11.2 Lernvorgänge in den Schichten
1. Lernen in der Kohonenschicht
Die Kohonenschicht ist selbstorganisierend und umfaßt einen Algorithmus für nicht
überwachtes, entdeckendes Lernen. Nur das Element darf seine Gewichte
ausrichten, das die größte Aktivität hat. Die Lernregel für dieses Element i ist:
wij ( t  1)  wij ( t )    ( o j  wij ( t ))
bzw. (in Vektorschreibweise)




wi ( t  1)  wi ( t )    ( x  wi ( t ))
oj: Ausgabe des Eingabeelements
 : Lernrate. Sie besitzt einen Startwert kleiner eins (z.B. 0.7) und wird im Laufe des
Trainings reduziert.
2. Trainieren in der Grossbergschicht
Sie wird durch überwachtes Lernen trainiert. Es gilt
wij ( t  1)  wij ( t )    ( zi  wij ( t ))  o j
zi: gewünschte Ausgabe des i-ten Outstar-Elements
oj: Ausgabe des j-ten Kohonen-Elements
Die Lernrate  sollte auf einen sehr kleinen Wert (z.B. 0.1) gesetzt werden. Sie wird
dann während des fortschreitenden Lernens weiter reduziert.
Die Grossbergschicht erzeugt zu jeder Klasse (d.h. zu jedem Kohonen-Element) eine
sinnvolle Ausgabe68.
68
durchschnittliche Repräsentation der Zielausgabe zu der von einem Kohonen-Element dargestellten
Ergebnismenge
186
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3. Fuzzy-Systeme
3.1 Fuzzy-Logik
3.1.1 Einführung in die Denkweise
3.1.1.1 Unscharfe Mengen (Fuzzy-Sets)
Fuzzy-Systeme kodieren direkt strukturiertes Wissen (Regeln) in numerischer Form.
Die "Fuzzy-Set-Theorie" wurde 1965 von Prof. Zadeh (Uni Berkeley, Kalifornien)
eingeführt. Prof. Zadeh stellte fest: "Herkömmliche (Computer-) Logik kennt keine
Manipulation von Daten, die vage oder subjektive Konzepte repräsentieren. (z.B. Es
ist ziemlich kalt, eine schöne Frau). Die Fuzzy-Set-Theorie geht von der Annahme
aus, daß alle Dinge nur zu einem gewissen Grad zutreffen und reduziert die
herkömmliche Logik auf einen Sonderfall. Gerade der Mangel an Präzision
ermöglicht: Das Treffen von Entscheidungen, selbst in Situationen, in denen
unvollständige oder teilweise widersprüchliche Informationen vorliegen.
Bsp.: Darstellung der Temperatur durch eine Zugehörigkeitsfunktion  für eine
scharfe Menge.
 (T )
1.0
T
10
20
30
40
Abb. 3.1-1: Darstellung der Temperatur als scharfe Menge
Die Zugehörigkeitsfunktion zur scharfen Menge ist durch zugehörig ("1") oder nicht
zugehörig ("0") bestimmt. Sind Werte der Zugehörigkeitsfunktion sind nicht nur Null
oder Eins sondern beliebige Werte zwischen 0 und 1, dann spricht man von einer
unscharfen Menge (Fuzzy Set).
Bsp.: Darstellung der Temperatur durch eine Zugehörigkeitsfunktion  für eine
unscharfe Menge.
187
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
 (T )
1.0
T
10
20
30
40
Abb. 3.1-2: Darstellung der Temperatur als unscharfe Menge
Ein Fuzzy-Set wird durch die Zugehörigkeitsfunktion immer eindeutig dargestellt.
Eine Zugehörigkeitsfunktion kann beliebige Werte zwischen 0 und 1 annehmen.
Dadurch werden beliebig feine Abstufungen zwischen "gehört dazu" und "gehört
definitiv nicht dazu" vorgenommen
3.1.1.2 Funktionstyp
Hinsichtlich des Funktionstyps von Zugehörigkeitsfunktionen haben sich einige
Standardformen herausgbildet: Trapeze und Dreiecke werden am häufigsten
eingesetzt. Für derartige Fuzzy-Sets spricht die geringe Anzahl von Parametern (4
bzw. 3 Punkte sind festzulegen) und der geringe Rechenaufwand (Vorteil bei
zeitkritischen Anwendungen). Daneben gibt es Fuzzy-Sets mit S-kurvenförmigen
Flanken oder in Form der Normalverteilungsfunktion (Einsatz bei Datenanalyse und
Mustererkennung).
Mathematisch läßt sich ein Fuzzy-Set beschreiben als eine geordnete Menge von
Paaren:
A = {(x,  A ( x) | x  X }
 A ( x) : Zugehörigkeitsfunktion (Untermenge der reellen Zahlen)
3.1.1.3 Operatoren auf Fuzzy-Mengen
Informationen werden gewöhnlich durch "UND" und "ODER" miteinander verknüpft.
Die Verknüpfung zweier unscharfer Informationen durch UND und ODER müssen
auch eine Ableitung auf Fuzzy-Mengen besitzen, wenn eine Fuzzy-Modellierung
einen Sinn haben soll.
Analog zu den Operatoren der Booleschen Algebra UND, ODER und NICHT hat die
"Fuzzy Logik" neue Operatoren entwickelt:
Wahrheitsgrad 2er Aussagen, die durch ODER verknüpft sind
(Maximumoperator für die Vereinigung zweier Fuzzy-Sets C  A  B )
C ( x) =max{  A ( X ) ,  B ( X ) } x  X
188
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wahrheitsgrad 2er Aussagen, die durch UND verknüpft sind
(Minimumoperator für den Durchschnitt zweier Fuzzy-Sets C  A  B )
C ( x) =min{  A ( X ) ,  B ( X ) } x  X
Wahrheitsgrad der Negation
(Komplement C eines Fuzzy-Set A)
C ( x) =1-  A ( X )
x X
Bsp.: Die folgende Darstellung beschreibt die Fuzzy Sets "Warm" bzw. "Heiss":
 (T )
1.0
warm
heiss
20
30
0.5
Temperatur [°C]
10
40
Abb.: 3.1-3 Darstellung der Fuzzy Sets „Warm“ bzw. „Heiss“
a) Zeichne in die vorstehende Darstellung das Fuzzy-Set "heiss und warm" ein.
b) Zeichne in die vorstehende Darstellung das "Fuzzy-Set "heiss oder warm" ein.
c) Zeichne in die vorstehende Darstellung das Ergebnis der Komplementbildung aus
dem Fuzzy-Set "heiss" (Resultat Fuzzy-Set "nicht heiss") ein.
3.1.1.4 Linguistische Variable
Derartige Variable umfassen Werte, die durch Wörter wie "heiß" oder "kalt"
repräsentiert werden. Die einzelnen Werte einer linguistischen Variable werden
durch Fuzzy-Sets ausgedrückt:
Bsp.: Die linguistische Variable Raumtemperatur
Die Raumtemperatur kann als linguistische Variable mit den Termen kalt, warm und
heiß aufgefaßt werden. Jeder Term wird als Fuzzy-Set modelliert:
189
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zugehörigkeitsfunktion
Kalt
1.0
warm
heiss
0.8
0.6
0.4
0.2
10
20
30
Temperatur (°C)
Abb. 3.1-4: Darstellung der linguistischen Variablen Raumtemperatur
3.1.1.5 Fuzzy-Regeln
Zur Formulierung von menschlichem Erfahrungswissen werden Fuzzy-Regeln
verwendet:
Bsp.: Regeln beim Autofahren
- Wenn der Abstand zum vorderen Auto klein ist und die Geschwindigkeit groß, dann
bremse mit großer Kraft
- Wenn der Abstand zum vorderen Auto im Mittel liegt ("mittel" ist) und die
Geschwindigkeit groß, dann bremse mit mittlerer Kraft.
Die linguistischen Variablen Abstand (D), Geschwindigkeit (V) und Bremskraft (F)
lassen sich so darstellen:
 (T )
50
100
Abstand [m]
50
100
Geschwindigkeit [km/h]
50
100
Bremskraft [%]
Abb. 3.1-5: Darstellung der Regeln, Abstand, Bremskraft, Geschwindigkeit
Für jede linguistische Variable wurden 3 dreieckige Fuzzy-Sets (klein (PS), mittel
(PM) und groß (PL) ) gewählt. Die beiden Regeln sind:
Wenn (D = PS) und (V = PL), dann (F = PL)
Wenn (D = PM) und (V = PL), dann F = PM)
Regel 1: R1
Regel 2: R2
Abstand
PS
PM
Geschwindigkeit Bremskraft
PL
PL
PL
PM
190
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Regeln können in eine Regeltabelle folgender Gestalt eingetragen werden:
Abstand
NB NM NS ZR
NB
NM
NS
ZR
PS
PM
PB
PS
PM PB
PL
PM
Geschwindigkeit
Ein unscharfe Variable kann offensichtlich eine Reihe unscharfer Werte annehmen:
NB (Negative Big) bzw. NL (Negative Large)
NM (Negative Medium)
NS (Negative Small)
ZE (Zeroe)
PS (Positive Small)
PM (Positive Medium)
PB (Positive Big) bzw. PL (Positive Large)
Die Regeltabelle zeigt: Fuzzy-Systeme speichern und verarbeiten unscharfe Regeln
parallel. Fuzzy-Systeme assoziieren Ausgangs-Fuzzy-Sets mit Eingangs-Fuzzy-Sets
und verhalten sich wie "quasi" assoziative Speicher.
3.1.1.6 Unscharfe Relationen
Neben unscharfen Mengen sind unscharfe Relationen ein wichtiges Teilgebiet der
Fuzzy-Set-Theorie. Unscharfe Relationen bilden die theoretische Basis für die
Realisierung unscharfer Regler und Expertensystemen.
Eine unscharfe (binäre) Relation über dem Produktraum X  Y ist definiert durch
R={ (( x, y),  R ( x, y) | ( x , y )  X  Y }
Falls X und Y diskrete Mengen sind, dann können X und Y durch Matrizen definiert
werden, z.B.:
X = {grün, gelb, rot} beschreibt die Farbe einer Frucht
Y = {unreif, halbreif, reif} beschreibt den Reifegrad einer Frucht.
Die Paare, die zueinander passen, sind dann
R1={(grün,unreif),(gelb,halbreif),(rot,reif)}
und können in einer Tabelle zusammengefaßt werden:
X \ Y
unreif
halbreif
reif
191
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
grün
gelb
rot
1
0
0
0
1
0
0
0
1
Die in der Tabelle zusammengestellten Paare entsprechen den folgenden (auf
Erfahrung beruhenden) Regeln:
WENN eine Frucht grün ist DANN ist sie unreif
WENN eine Frucht gelb ist DANN ist sie halbreif
WENN eine Frucht rot ist DANN ist sie reif
Daraus folgt: Relationen eignen sich zur Modellierung von WENN ... DANN ...Regeln.
Da die Relationsmatrix nur Nullen und Einsen enthält, handelt es sich noch nicht um
eine wirkliche Fuzzy-Relation. Man weiß aber, daß diese Erfahrungsregeln nur
ungefähr stimmen. Eine Fuzzy-Relation R2 ist dann:
X \ Y
grün
gelb
rot
unreif
1
0.3
0
halbreif
0.5
1
0.2
reif
0
0.3
1
Fuzzy-Mengen können auf einfachen Grundmengen (G 1, G2, ..) durch Operatoren,
z.B. den min-Operator für die UND-Verknüpfung, zu Fuzzy-Relationen über die
Kreuzproduktmenge der zugrundliegenden Grundmengen verbunden werden.
1   2  1T   2
Die vorliegende Formel unterscheidet sich vom normalen Matrizenprodukt dadurch,
daß bei der Operation "Zeile mal Spalte" die Produktbildung durch den MinimumOperator und die Addition der Matrizen durch den Maximum-Operator ersetzt wird.
Bsp.: Junger UND großer Mann
Gegeben sind die Fuzzy-Mengen für "Junger Mann" und "Großer Mann".
192
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
2
1
15
20
25
30
35
Alter
170
180
Groesse [cm]
Abb. 3.1-6: Die Fuzzy-Mengen „junger“ bzw. „großer“ Mann
Ein "junger" UND "großer" Mann ist eine Fuzzy-Relation auf den beiden
Grundmengen "Alter" und "Größe":
 R ( Alter , Größe)  min (1 ( Alter ), 2 (Größe))
Falls die Grundmengen auf 5 äquidistante Stützstellen beschränkt werden, ergibt
sich folgende Tabellendarstellung der Relationsmatrix:
Alter\Größe
15
20
25
30
35
170
0
0
0
0
0
175
0
0.5
0.5
0.5
0
180
0
0.5
1
0.5
0
185
0
0.5
1
0.5
0
190
0
0.5
1
0.5
0
Eine Relation "Junger ODER Großer Mann" kann auf analoge Weise gebildet
werden, indem der min-Operator durch den max-Operator ersetzt wird.
Der Ausdruck  R ( x, y)  min (1 ( x), 2 ( y)) heißt Kreuzprodukt oder cartesisches
Produkt der Fuzzy-Mengen.
Auch Fuzzy-Relationen mit derselben Produktmenge lassen sich miteinander
verknüpfen:
Falls R1 und R2 zweistellige Fuzzy-Relationen sind, dann gilt für den Durchschnitt
von R1 und R2 (UND-Verknüpfung)
 R  R ( x , y )  min (  R ( x , y ),  R ( x , y ))
1
2
1
2
und für die Vereinigung (ODER-Verknüpfung)
 R  R ( x , y )  max (  R ( x , y ),  R ( x , y ))
1
2
1
2
193
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.2 Verarbeitung in Fuzzy-Systemen: Fuzzy-Inferenz
Fuzzy-Inferenz bedeutet: Fuzzy-logisches Schließen auf unscharfen Informationen.
Eine Inferenz besteht aus einer oder mehreren Regeln (Implikationen), einem
Faktum (aktueller Zustand, aktuelles Ereignis) und einer Schlußfolgerung. Sie ersetzt
das Faktum unter Berücksichtigung der Implikation(en) durch ein neues Faktum.
3.1.2.1 Ein einführendes Beispiel
Es umfaßt die folgenden Regeln:
Regel (1)
WENN Temperatur = sehr hoch ODER Kammerdruck = übernormal DANN Ventil gedrosselt
Regel (2)
WENN Temperatur = hoch UND Kammerdruck = normal DANN Ventil = halb offen.
Die Abarbeitung linguistischer Regeln zeigen die folgende Arbeitsschritte, die zur
Beantwortung der Frage " Wie ist die erforderliche Stellung eines Ventils bei einer
Temperatur von 910°C und einem Kammerdruck von 40.7 bar?" anfallen:
1. Fuzzyfizierung
Darunter versteht man: Die linguistische Interpretation technischer Größen
Die technische Größe "Temperatur" wird so interpretiert:
Zugehörigkeitsfunktion
Niedrig
1.0
mittel
hoch
sehr hoch
0.8
0.6
0.4
0.2
400
500
600
700
800
Abb. 3.1-7: Temperatur in der Kammer
Im vorliegenden Fall gilt bspw. für die Tempeartur 910°C:
sehr hoch 0.8
hoch
0.3
mittel
0.0
194
900
Temperatur (°C)
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
niedrig
0.0
Die technische Größe "Druck" wird so interpretiert:
Zugehörigkeitsfunktion
Unter normal
1.0
normal
übernormal
0.8
0.6
0.4
0.2
39
40
41
Druck (bar)
Abb. 3.1-8: Druck in der Kammer
Im vorliegenden Fall gilt für den Druck 40.5 bar:
unter normal
normal
über normal
0.0
0.5
0.5
2. Berechnung der Wahrscheinlichkeiten für Vorbedingungen zu Regeln
Die Vorbedingungen zu Regel (1) bzw. Regel(2) des einführenden Beispiels lassen
sich berechnen:
Regel (1): max(0.8, 0.3) = 0.8
Regel (2): min(0.3, 0.5) = 0.3
3. Zurückführung der Resultate der Regeln
Auch für die Stellung des Ventils wird eine linguistische Variable eingeführt:
195
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zugehörigkeitsfunktion
gedrosselt
1.0
halb offen
mittel
offen
0.8
0.6
0.4
0.2
4
8
12
16
Durchfluß
Abb. 3.1-9: Ventil
Die linguistische Variable Ventil beschreibt die einem Brennofen zuzuführende
Menge an Brennstoffen (als Reaktion auf den in einer Brennkammer herrschenden
Druck und Temperatur).
Zur Zurückführung der Resultate der Regeln auf deren Definition gibt es in der
Fuzzy-Logik zwei alternative Methoden:
- die Max-Min-Inferenz
- die Max-Prod-Inferenz
3.1 Max-Min-Inferenz
Die unscharfe Menge der Terme der linguistischen Variablen "Ventil" werden jeweils
auf den Wahrheitsgrad der Vorbedingung begrenzt (Minimum). Die so erhaltenen
Mengen werden zu einer einzigen zusammengefaßt (Maximum). Diese unscharfe
Menge ist das Resultat der Inferenz.
Zugehörigkeitsfunktion
gedrosselt
1.0
halb offen
mittel
offen
0.8
0.6
0.4
0.2
4
8
12
Abb. 3.1-10: Max-Min-Inferenz
196
16
Durchfluß
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2 Max-Prod-Inferenz
Es wird ein Produkt aus unscharfer Menge des Terms der Schlußfolgerung und des
Wahrheitsgrads der Vorbedingung gebildet.
Zugehörigkeitsfunktion
gedrosselt
1.0
halb offen
mittel
offen
0.8
0.6
0.4
0.2
4
8
12
16
Durchfluß
Abb. 3.1-11: Max-Prod-Inferenz
Als Ergebnis erhält man für die Stellung des Methanventils der beiden Methoden
eine unscharfe Menge.
4. Defuzzifizierung
Es gibt hierfür verschiedene Methoden. Am häufigsten wird benutzt: Berechnung der
technischen Größe aus dem Flächenschwerpunkt der unscharfen Menge.
Zugehörigkeitsfunktion
gedrosselt
1.0
halb offen
mittel
offen
0.8
0.6
0.4
0.2
4
8
12
16
Durchfluß [m 3/h]
Abb. 3.1-12: Ermitteln des Flächenschwerpunkts
Im angegebenen Beispiel ergibt sich die Stellung des Ventils zu 2.7 m 3/h
197
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.2.2 Fuzzy-Inferenzschema
Eine Fuzzy-Inferenz ist eine Verarbeitungsvorschrift für WENN.. DANN.. -Regeln
bzw, für ganze Gruppen von Regeln für unscharfe Aussagen. In der Fuzzy-Linguistik
kann zur Modellierung von WENN.. DANN.. -Regeln der min-Operator benutzt
werden.
1. Bsp.: Erhitzen von Wasser
Regel: WENN Temperatur T = niedrig DANN Wärmezufuhr hoch
Zugehörigkeitsfunktion für die linguistische Terme Tempeartur und Wärmezufuhr:
Zugehörigkeitsfunktion
1.0
0.8
0.6
0.4
0.2
10
20
30
40
50
Temperatur T [°C]
60
70
80
90
100
W [%]
Relationsmatrix (ermittelt über das Kreuzprodukt):  R (T ,W)  min (T (T ), W (W))
W
T
10
20
30
40
50
60
70
80
90
100
0
0
0
0
0
0
0.5
0.5
0.5
0
0
0.5
1
0.5
0
0
0.5
0.5
0.5
0
0
0
0
0
0
Die gebräuchlichste Art einer Inferenz69 ist die Max-Min-Komposition. So ergibt sich
bspw. für das aktuelle Faktum T = 20°C das folgende Inferenzergebnis:
W hoch' (W )   R ( T  20 C ,W )  min ( Tniedrig( 20 C ), W hoch (W ))
 R ist die über das Kreuzprodukt von Prämissen- und Konklusions-Fuzzy-Mengen
gewonnene Fuzzy-Relation der Regel.
Aus der Relationsmatrix kann abgelesen werden: Whoch' (W)  (0, 0.5, 0.5, 0.5, 0)
Grafisch kann der Inferenzvorgang so dargestellt werden:
69
Eine Inferenz ist eine Verarbeitungsvorschrift für WENN... DANN... Regeln unter Berücksichtigung eines
aktuellen Faktums (Ereignisses). Sie hat eine Schlußfolgerung als Ergebnis
198
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zugehörigkeitsfunktion
1.0
0.8
0.6
0.4
0.2
10
20
30
40
50
Temperatur T [°C]
60
70
80
90
100
W [%]
Abb. 3.1-16: Darstellung des Inferenzvorgangs
Die Eingangsgröße ist ein scharfer Temperaturwert von 20°C und somit als Singleton
Whoch' auf der Grundmenge G1= {10,20,30,40,50} der Temperatur darstellbar. Das
Inferenzergebnis erhält man dann auch über die Relationsmatrix durch:
 Whoch'
 0 0 0 0 0


 0 0.5 0.5 0.5 0
 0 1 0 0 0   0 0.5 1 0.5 0  0 0.5 0.5 0.5 0


 0 0.5 0.5 0.5 0


 0 0 0 0 0
2. Verarbeitungsvorschrift zur Ermittlung der Fuzzy-Ergebnismenge
Das Max-Min-Inferenzschema liefert bei einer Regel WENN A DANN B mit dem
linguistischen Term  A ( x) in der Prämisse und dem Term  B ( y ) in der Konklusion
bei Vorliegen einer scharfen Eingangsgröße x' eine Ergebnis-Fuzzy-Menge  B' ( y) .
Diese kann in der zu x' zugehörgen Zeile  R ( x', y) der über das Kreuzprodukt
gebildeten Relationsmatrix der Regel unmittelbar abgelesen oder grafisch ermittelt
werden, indem man die Fuzzy-Menge  B ( y ) der Konklusion in der Höhe des
Erfüllungsgrads  A ( x ') abschneidet.
3. Verhalten bei mehreren Regeln
Für jede weitere Regel kommt eine entsprechende Relationsmatrix hinzu. Die
Regeln innerhalb des Systems von Regeln sind i.a. ODER verknüpft. Die
Relationsmatrizen werden daher über den "Max"-Operator verbunden. Ergebnis ist
eine einzige Relationsmatrix, die alle Regeln enthält und wie im Falle einer Regel
ausgewertet werden kann. Alternativ dazu kann man die Regeln zunächst getrennt
voneinander auswerten und im Abschluß daran deren Ergebnis-Fuzzy-Mengen mit
dem Max-Operator überlagern.
4. Bsp.: Erhitzen von Wasser
199
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4.1 Regelbasis
R1: WENN T = sehr_niedrig DANN W = sehr_hoch
R2: WENN T = niedrig
DANN W = hoch
R3: WENN T = mittel
DANN W = mittel
R4: WENNT = hoch
DANN W = niedrig
R5: WENN T = sehr_hoch DANN W = sehr_niedrig
4.2 Linguistische Variable für Temperatur T und Wärmezufuhr W
Zugehörigkeitsgrad  T
Sehr niedrig
1.0
niedrig
mittel
hoch
sehr hoch
0.8
0.6
0.4
0.2
0
10
Zugehörigkeitsgrad
20
30
40
50
60
70
80
90
100 Temperatur (°C)
W
Sehr niedrig
niedrig
mittel
hoch
sehr hoch
1.0
0.8
0.6
0.4
0.2
0
10
20
30
40
50
60
70
80
90
100
W(%)
Abb. 3.1-18: Linguistische Terme für Temperatur und Wärmezufuhr
4.3 Ziel: Ermitteln einer geeigneten Wärmezufur für einen scharfen Temperaturwert
T = 45°C.
4.4 Lösungsschema:
4.4.1 Fuzzifizierung der scharfen Eingangsgröße
  Tsehr _ niedrig (T)  0 

 

  Tniedrig (T)   0.25
  Tmittel (T)    0.75

 

  Thoch (T)   0 


 
 Tsehr _ hoch (T)   0 
200
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4.4.2 Ermitteln der aktiven Regeln
Eine Überprüfung der Regelbasis zeigt, daß lediglich die Regeln R2 und R3 aktiv
sind, d.h. einen Erfüllungsgrad größer als Null besitzen:
- Der WENN-Teil von R2 ist zu  Tniedrig ( T )  0. 25 erfüllt
- Der WENN-Teil von R3 ist zu Tmittel (T )  0. 75 erfüllt
bzw.
- R2 besitzt den Erfüllungsgrad H2=0.25
- R3 besitzt den Erfüllungsgrad H3=0.75
4.4.3 Ermittlung der einzeln Ausgangs-Fuzzy-Mengen
Die Anwendung jeder aktiven Regel liefert auf der Basis des Inferenzschemas die
resultierende Ausgangs-Fuzzy-Menge, indem man den Erfüllungsgrad der Regel auf
die jeweilige Fuzzy-Menge in der Schlußfolgerung überträgt. Dazu wird das Minimum
von Erfüllungsgrad und Ausgangs-Fuzzy-Menge min ( Hi , Wi (W )) gebildet, d.h. Die
Ausgangs-Fuzzy-Menge in der Höhe Hi abgeschnitten.
T
Zugehörigkeitsgrad
niedrig
1.0
W
Zugehörigkeitsgrad
1.0
hoch
H2
0.0
0.0
10
20
30
40
50
60
70
80
90
T
Zugehörigkeitsgrad
10
100
T(°C)

Zugehörigkeitsgrad
mittel
1.0
30
20
40
60
70
80
90
100
W(%)
60
70
80
90
100
W(%)
W
1.0
0.0
50
mittel
0.0
10
20
30
40
50
60
70
80
90
10
100
T(°C)
20
30
40
50
Abb. 3.1-19: Auswertung der Regeln
4.4.4 Überlagerung der einzelnen Ausgangs-Fuzzy-Mengen
Da die einzelnen Regeln implizit ODER-Verknüpfungen sind, müssen die
zugehörigen Ergebnis-Fuzzy-Mengen über den Max-Operator zur resultierenden
Ausgangs-Fuzzy-Menge W res (W )  max (min ( Hi , Wi (W ))) vereinigt werden.
201
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Zugehörigkeitsgrad
W
Sehr niedrig
niedrig
mittel
hoch
sehr hoch
1.0
0.8
0.6
0.4
0.2
0
10
20
30
40
50
60
70
80
90
100
W(%)
Abb. 3.1-20: Überlagerung der Fuzzy-Mengen
4.4.5 Defuzzifizierung
Aus der resultierenden Ergebnis-Fuzzy-Menge muß in den meisten Fällen ein
scharfer Ausgangswert bestimmt werden.
202
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.2.3 Anwendungen
3.1.2.3.1 Anwendungsbeispiel: Berg- und Talfahrt eines Fahrzeugs70.
1. Problem
Bei der Berg- und Talfahrt eines Fahrzeugs sind verschiedene Kräfte auszugleichen.
Durch die Schwerkraft wird das Fahrzeug bestrebt sein, den Berg hinabzurollen.
Zusätzlich können Störkräfte (Rauschkomponenten) und Handsteuerkräfte vom
Bediener (über Cursor-Tasten simuliert) vorkommen.
Hangabtriebskraft
Rauschkraft
Bewegungssimulation
v
Handsteuerkraft
des Fuzzy-Mobils
x
Fuzzy-Kraft
Fuzzy-Steuerung
Abb. 3.1-21: Block-Diagramm der Fuzzy-Steuerung
2. Lösung
Zur Lösung des Problems wird ein Prozeß simuliert, der als Meßwerte die aktuelle


Geschwindigkeit v und Position x liefert und der durch eine Anzahl von
Kraftkomponenten beeinflußt wird, die als Stör- und Steuergrößen wirken. das
Simulationsprogramm muß Bewegungssimulation und Fuzzy-Steuerung realisieren71.
3. Physikalisches Grundwissen:

dv
v
(1) K  m  b  m 
 m
dt
t

Falls die Zeitdifferenz klein genug gewählt wird und die Kraft sich im betrachteten
Zeitraum nicht oder nur unwesentlich ändert, kann man die Differentiale durch
Differenzen ersetzen und die Geschwindigkeit zum Zeitpunkt t berechnen.




K (t )
 t  v ( t )  k R
(2) v ( t  1)  v ( t ) 
m
In (2) ist noch eine geschwindigkeitsabhängige Kraftkomponente mit dem
Reibungskoeffizienten kR eingeführt.
70
vgl.: mc, März 1991: Das Fuzzy-Mobil
Auch in der Praxis wird so verfahren: Zuerst möglichst exakte Prozeßsimulation, danach Kopplung mit FuzzySteuerung und Test
71
203
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen

Die Geschwindigkeit ist die 1. Ableitung des Weges x nach der Zeit. Man kann die
neue Position zum Zeitpunkt t+1 aus der Position zum Zeitpunkt t berechnen:



(3) x ( t  1)  x ( t )  v ( t )  t
Zur Berechnung der Bewegung fehlt in (2) noch die Kraft. Sie setzt sich zusammen



aus der Hangabtriebskraft K H , Rauschkraft K R , Handsteuerkraft KS und der Fuzzy
Steuerkraft K F :





(4) K ( t )  K H (t )  K R (t )  KS (t )  K F (t )
Die Handsteuerkraft wird durch Tastenbetätigung festgelegt, die Rauschkraft wird als
Zufallswert zwischen 0 und einer definierten Maximalkraft bestimmt.

Geländefunktion P(x)

KG

KH
Abb. 3.1-22: Kräfte in Abhängigkeit vom Bodenprofil


In Abhängigkeit vom Winkel des Gefälles zerlegt sich die Gewichtskraft K G in K H

(läuft parallel zum Hintergrund) und eine zu K H rechtwinklige Komponente. Die
Bewegung ist im wesentlichen eindimensional. Auf die Vektordarstellung kann daher
verzichtet werden. Unter Anwendnung einiger geometrischer Beziehungen ergibt
sich folgende Gleichung:


(5) K H ( x )   K G  sin ( x )
Der Winkel hängt vom Bodenprofil ab. Für die Berechnung des Winkels gilt die
Gleichung:
(6)  ( x )  arctan( P ' ( x ))
Ersetzt man  in Gleichung (5) durch Gleichung (6) erhält man:
(7)  KG 
P' ( x)
1  ( P ' ( x )) 2
Mit Gleichung (7) wird die Hangabtriebskraft berechnet und mit mit den
verbleibenden Kräften zur Gesamtkraft überlagert. Mit dieser Kraft und Gleichung (2)
204
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
wird die Änderung der Geschwindigkeit berechnet. Über Gleichung (3) wird die neue
Position ermittelt.
4. Regeln
Das Fuzzy-System erhält vom Simulationsmodell die Daten der momentanen
Geschwindigkeit v und der Position x. Das Steuersystem hat die Zielvorgabe, das
Fahrzeug bei der Position x=0 mit der Geschwingkeit v=0 zu halten. Sieben FuzzyRegeln72 mit den Ausgangspunkten Betrag und Richtung der Geschwindigkeit und
der Position sollen eine linguistische Verknüpfung mit der Steuerkraft erreichen:
(A) Wenn die Position positiv mittel (PM) ist, und die Geschwindikeit ist nahezu Null (ZR), dann ist die
Kraft negativ mittel (NM).
(B) Wenn die Position positiv klein (PS) ist, und die Geschwindigkeit ist positiv klein (PS), dann ist die
Kraft negativ klein (NS).
(C) Wenn die Position positiv klein (PS) ist, und die Geschwindigkeit ist negativ klein (NS), dann ist die
Kraft nahezu Null (ZR).
(D) Wenn die Position negativ mittel (NM) ist, und die Geschwindigkeit ist nahezu Null (ZR), dann ist
die Kraft positiv mittel (PM).
(E) Wenn die Position negativ klein (NS) ist, und die Geschwindigkeit ist negativ klein (PS), dann ist die
Kraft positiv klein (PS).
(F) Wenn die Position negativ klein (PS) ist, und die Geschwindigkeit ist positiv klein (NS), dann ist die
Kraft nahezu Null (ZR).
(G) Wenn die Position nahezu Null (ZR) ist, und die Geschwindigkeit ist nahezu Null (ZR), dann ist die
Kraft nahezu Null (ZR).
Geschw.
Position
NB
NM
NS
ZR
PS
PM
PB
NM
NS
ZR
PS
PM
(D) PM
(E) PS
(F) ZR
(G) ZR
(C) ZR
(B) NS
(A) NM
5. Zugehörigkeitsfunktionen
Diese Funktionen für Position, Geschwindigkeit und Kraft sind einfache lineare
Funktionen:
72
Die Regeln werden aus dem Wissen über den Prozeß festgelegt
205
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Regel (E)
Wegverteilung
NM NS
PS
PM
-2
2
Geschwindigkeitsverteilung
NS
PS
NM
Kraftverteilung
NS
PS
PM
1.0
0.5
-1
1
-1
1
-400 -200
200 400
Regel (G)
Wegverteilung
NM NS
PS
PM
-2
2
Geschwindigkeitsverteilung
NS
PS
NM
Kraftverteilung
NS
PS
PM
1.0
0.5
-1
1
Wegverteilung
NM NS
PS
PM
-2
2
-1
1
Geschwindigkeitsverteilung
NS
PS
-400 -200
NM
200 400
Kraftverteilung
NS
PS
PM
1.0
0.5
-1
1
-1
1
-400 -200
200 400
Abb. 3.1-23: Darstellung zur Ermittling der Kraftverteilung
6. Ermittlung der Fuzzy-Kraft
Das Steuersystem soll bspw. vom Prozeß den Geschwindigkeitswert v = -0.5 (m/s)
und die Position x = -0.2 (m) übergeben. Mit Hilfe der Fuzzy-Regeln und den
Zugehörigkeitsfunktionen sind dann die Wahrheitswerte für Geschwindigkeit und
Position auszurechnen.
7. Berechnung des Schwerpunkts
Generell gilt für diese Berechnung einer beliebigen Funktion in x-Richtung:
206
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(8) S x 
 dx  x  f ( x(
 dx  f ( x)
Da die vorliegende Fläche aus mehreren Teilstücken besteht, müssen die
Einzelstücke getrennt aufsummiert werden:
(9) S x 
  dx  x  f
k
( x)
k
  dx  f
k
( x)
k
Die Fläche setzt sich aus linearen Funktionsabschnitten zusammen (, die der
Beziehung f(x) = ax + b entsprechen). Das führt, in (9) eingesetzt, zu:
(10) S x 
  dx  (a
k
k
 x 2  b k  x)
  dx  (a
k
 x  b)
k
Die Integration dieses Ausdrucks und Eingabe der Grenzen für die einzelnen
Funktionsabschnitte (, dabei soll für das Teilstück f k(x) der Anfangspunkt (PAk(xAk,yAk)
und der Endpunkt PEk(XEk,yEk) gelten,) führt zu:

bk 
bk  


2
 a k / 3  x Ek    x Ak   a k / 3   


3
2 
k 
(11) S x 
b 
b 
 

k x Ek  a k / 2  x Ek  2k   x 2Ak  a k / 3  2k  


 x
2
Ek
In (11) fehlen noch die Koeffizienten a k und bk für die einzelnen Funktionsabschnitte
(Berechnung aus den Anfangs- und Endpunkten der einzelnen Teilstücke):
ak 
y Ek  y Ak
x Ek  x Ak
b k  y Ak  a k  x Ak
8. Applet
http://fbim.fh-regensburg.de/~saj39122/schh/index.html
207
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.2.3.2 Anwendungsbeispiel: Roboter-Steuerung mit Fuzzy-Control73
http://fbim.fh-regensburg.de/~saj39122/schkl/index.html
3.1.2.3.3 Anwendungsbeispiel: Beetle-Driver74
http://fbim.fh-regensburg.de/~saj39122/fhll/index.htm
3.1.2.3.4 Anwendungsbeispiel: Kugeldrum
http://fbim.fh-regensburg.de/~saj39122/NN/braunRoidl/index.html
3.1.2.3.5 Anwendungsbeispiel: PingPong (KHF vs FC)
http://fbim.fh-regensburg.de/~saj39122/schsch/index.html
73
74
http://fbim.fh-regensburg.de/~saj39122/public_html/schkl/index.html
http://fbim.fh-regensburg.de/~saj39122/public_html/fhle/index.htm
208
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.3 Regelbasierte Systeme
3.1.3.1 Fuzzy-Logik regelbasierter Systeme
Ein regelbasiertes System besteht aus einem System von Inferenzregeln und einem
Inferenzschema, das die Verarbeitungsvorschrift enthält, nach der (scharfe)
Eingangsgrößen xi mit Hilfe der Inferenzregeln zu (scharfen) Ausgangsgrößen yj
verarbeitet werden.
x
1
......
x
Regelbasiertes
System
y
n
Abb. 3.1-25: Regelbasiertes System mit n Eingangsgrößen und einer Ausgangsgröße:
Regelbasis:
R1: WENN x1 = A11 ... UND xi = A1i ... UND xn = A1n DANN y = B1
...
Rj: WENN x1 = Aj1 ... UND xi = Aji ... UND xn = Ajn DANN y = Bj
Rm: WENN x1 = Am1 ... UND xi = Ami ... UND xn = Amn DANN y = Bm
x1, x2, ... , xn : Eingangsfrößen
A1i, A2i, A3i, ... , Ami: linguistische Terme der Eingangsgröße xi
y: Ausgangsgröße
B1, B2, ... , Bm: linguistische Terme der Ausgangsgröße
resultierede Fuzzy-Menge
Einem aktuellen Satz von Eingangsgrößen wird mit Hilfe des Inferenzschemas (unter
Beachtung der Regelbasis) eine Fuzzy-Menge zugeordnet, die aus den Ergebnissen
aller Regeln zusammnegesetzt ist:
R1: min(11 ( x1' ),..., 1n ( x 'n ),  B1 ( y))   B'1 ( y)
.......
Rj: min( j1 ( x1' ),...,  jn ( x 'n ),  Bj ( y))   B' j ( y)
.......
Rm: min( m1 ( x1' ),...,  mn ( x 'n ),  Bm ( y))   B'm ( y)
Verbunden durch den ODER-Operator max entsteht die resultierende Fuzzy-Menge:
 res  max( B'i ( y),...,  B' m ( y))
209
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Aufgabe der Fuzzy-Control (Defuzzifizierung) ist das Finden einer scharfen
Ausgangsgröße y:
x
1
......
x
Fuzzifizierer
Regelbasis
Inferenzschema
Defuzzifizierer
y
n
Abb.3.1-26: Komponenten eines regelbasierten System
3.1.3.2 Defuzzifizierung
Das Resultat der Fuzzy Inferenz ist eine Menge von Zugehörigkeitsfunktionen für die
Terme der linguistischen Ausgangsgrößen. Diese Fuzzy-Resultat muß man in
scharfe Größen des zulässigen Bereichs umwandelon. Es gibt eine Reihe von
Defuzzifizierungs-Methoden, deren Basis empirische Ergebnisse und heuristische
Methoden bilden.
3.1.3.2.1 Methode der plausibelsten Lösung
Die plausibelste Lösung entspricht am besten den Bedingungen in der Regelbasis.
Von allen Termen wird der Term mit dem maximalen Wert der
Zugehörigkeitsfunktion ausgesucht. Dann findet man den größten Wert der
Zugehörigkeitsfunktion, die den scharfen Wert der Ausgangsgröße definiert. Zu
diesen Methoden gehört:
-
Left of Maximum
Das Ergebnis ist der maximale Wert der Zugehörigkeitsfunktion, der ganz links liegen muß
Mean of Maximum
Das Ergebnis ist der maximale Wert der Zugehörigkeitsfunktion, der in der Mitte liegen muß
Right of Maximum
Das Ergebnis ist der maximale Wert der Zugehörigkeitsfunktion, der ganz rechts liegen muß
RoM
LoM
MoM
Es wird nur das Maximum gesucht
Abb.: Zugehörigkeitsfunktionen für einzelne Terme einer linguistischen Variablen
210
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Nur die Regel mit dem höchsten Erfüllungsgrad bei einer vorgegebenen
Eingangsgröße wird betrachtet. Das Maximum der zugehörigen Ausgangs-FuzzyMenge bestimmt die scharfe Ausgangsgröße. Die Maximum-Methode wird bei der
Fuzzy-Modellierung am besten dadurch vorbereitet, daß die Ausgangsmenge jeder
Regel einzeln vorgegeben wird. Es muß bei der Modellierung darauf geachtet
werden, daß immer mindestens eine Regel aktiv ist, da sonst keine Entscheidung
gefällt wird.
Die Methode ist besonders geeignet für Probleme der Mustererkennung.
3.1.3.2.2 Methode des besten Kompromiss
Bei diesen Methoden wird der scharfe Wert als Schwerpunkt der
Zugehörigkeitsfunktionsfläche berechnet. Es werden zwei Verfahren verwendet:
1. Center of Maximum (Schwerpunkte der Singletons)
Die Zugehörigkeitsfunktionen der einzelnen Terme werden durch typische Werte ersetzt und
dann deren Schwerpunkte gesucht.
2. Center of Gravity (Flächenschwerpunkt)
Es wird der Flächenschwerpunkt aller Terme der Ausgangsvariablen gesucht
Center of Maximum
Dieses Verfahren ersetzt die Zugehörigkeitsfunktion für jeden Ausgangsterm durch
seinen typischen Wert und die scharfe Ausgangsgröße y res wird als Gewichtspunkt
von allen typischen Werten berechnet.

2
1
3
y res
Abb.: Das Verfahren Center of Maximum
Die scharfe Größe kann folgendermaßen berechnet werden:
l
y res 

i 1
l
i

i 1
yi
i
y res ... scharfer Wert (resultat)
yi ... Koordinate der Ausgangsgröße des i-ten Terms
 i ... Wert der Zugehörigkeitsfunktion vom i-ten Term
211
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Center of Gravity
Das scharfe Resultat y res wird als die Koordinate der Schwerpunktfläche, die durch
Vereinigung von Teilflächen entstanden ist, bestimmt. Die Teilflächen sind die
Flächen unter den Zugehörigkeitsfunktionen der einzelnen Terme.
y res
Abb.: Center of Gravity
Die scharfe Größe y res ist gleich
y res 

res
( y ) ydy
res

res
( y )dy
res
bzw.
y 


i
y res
res
( yi )
i
res
( yi )
i
 res ( y ) ... Zugehörigkeitsfunktion der ganzen Fuzzy-Menge des Ausgangs
212
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.3.3 Anwendungen
3.1.3.3.1 Inverses Pendel
Die nachfolgende Abbildung zeigt einen Stab, der über ein Pendelgelenk auf einem
Wagen befestigt ist. Durch Vor- und Rückbewegen des Wagens soll der Stab
aufrechtstehend gehalten werden75.
 Winkel
Mg : Gewicht des Wagens
mg : Gewicht des Pendels

2L
mg
x : Gewicht des Pendels
2L : Länge des Pendels
KV
KH
Mg
KZ
K V : vertikale Kraft am Gelenk
K H : horizontale Kraft am Gelenk
K Z : ziehende Kraft am Wagen
g
I
: Fallbeschleunigung
: Trägheitsmoment des Stabs
KV
.
Abb. 3.1-26: Modell des kopstehenden Pendels
1. Mathematisches Modell
Die Steuerung der Bewegungsrichtung und der Richtung des Wagens kann über das
folgende Differentialgleichungssystem beschrieben werden:
(1) I  ''  KV  sin   KH  L  cos 
(2) KV  m  g   m  L  ( ''  sin   '2  cos )
(3) KH  m  x ' '  m  L( ' '  cos   '2  sin )
(4) KZ  KH  M  x''
 : Winkel, 2  L : Länge des Pendel, x : Position des Wagens, m : Masse des Pendels,
M : Masse des Wagens, x : Position des Wagen, KV : vertikale Kraft am Gelenk, K H :
m
horizontale Kraft am Gelenk, KZ : ziehende Kraft am Wagen, g  9.81 2
s
1
Fallbeschleunigung, I   m  L2 : Trägheitsmoment des Stabs in Bezug auf das
3
Drehgelenk
2. Lösungsmöglichkeiten
75
vgl. Heinrich Rommelfanger: Fuzzy-Logik basierte Verarbeitung von Expertenregeln in OR Spektrum (1993)
15:31-42
213
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1. Man könnte dieses Differentialgleichungssystem in ein Differenzengleichungssystem verwandeln und für die jeweils gegebenen Anfangsbedingungen
die Lösung mit Computerberechnung bestimmen. Dieses Verfahren ist aber sehr
rechenaufwendig und daher nicht in der Lage, die zur Steuerung des Wagens
benötigten Ergebnisse rechtzeitig zu liefern..
2. Man vereinfacht das Problem durch Annahme zusätzlicher Restriktionen.
Yamakawa76 schlägt die Annahme   1( rad) 77vor. Unter dieser Annahme läßt
sich das Differentialgleichungssystem (1) - (4) zu einem linearen Gleichungssystem
vereinfachen:
(5) ( I  m  L2 )  ' '  m  L  x ' '  m  L    0
(6) m L  '' (m  M )  x''  KZ
3. Fuzzy Control
-
Interpretation des Winkels
 bzw. der Winkelgeschwindigkeit  ' und der Geschwindigkeit
x ' des Wagens als linguistische Variable
-
Ermitteln der zu den linguistischen Variablen passenden Zugehörigkeitsfunktionen
Aufstellen der Regeln
A. Wenn  gleich PM und ' gleich ZR, dann wähle x' gleich PM
B. Wenn  gleich PS und ' gleich PS, dann wähle x' gleich PS
C. Wenn  gleich PS und ' gleich NS, dann wähle x' gleich ZR
D. Wenn  gleich NM und ' gleich ZR dann wähle x' gleich NM
E. Wenn  gleich NS und ' gleich NS, dann wähle x' gleich NS
F. Wenn  gleich NS und ' gleich PS, dann wähle x' gleich ZR
G. Wenn  gleich ZR und ' gleich ZR, dann wähle x' gleich ZR
Diese Regeln lassen sich abgekürzt in der folgenden Tabelle darstellen:
'
PL
PM
PS
ZR
NS
NM
NL

NL
NM
NS
ZR
ZR
NM
PS
PM
PL
PS
ZR
NS
PM
ZR
Aus dieser Tabelle folgt: Bei jeweils 7 Ausprägungen je Fuzzy-Simulationsmodell
sind Zustände 7 2  49 möglich. Von Yamakawa wurden aber nur die Regeln zu 7
möglichen Zuständen in den Regelblock aufgenommen, da diese zur Steuerung des
Pendel ausreichen. Die linguistischen Variablen für  , ' und x' lassen sich über die
sog. tringularen Fuzzy-Zahlen mit linearen Referenzfunktionen beschreiben 78 .
76
auf ihn geht die Fuzzy-Control-Steuerung dieses Beispiels zurück, vgl. OR-Spektrum (1993) 15:31-42
0
0
1 rad  360 / 2    57, 295
78 vgl. Abb. 3.1-30
77
214
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Im konkreten Fall muß überprüft werden, ob die beobachtete Situation mit einer oder
mehreren in dem Regelblock beschriebenen Situationen übereinstimmt. Aus den
Erfüllungsgraden für die einzelnen Zustandsvariablen wird dann mit Hilfe des
Minimumoperators der Erfüllungsgrad der Regel bestimmt. Treffen mehrere Regeln
für eine konkrete Situation zu, dann bezeichnet man über die Max-Min-Inferenz die
unscharfe Vereinigungsmenge aller unscharfen Aktionen. Eine konkret ausführbare
Aktion
bestimmt
man
im
Defuzzifizierungsschritt
aus
dem
Flächenschwerpunktverfahren.
Bsp.: Vorgegeben sind  bzw. ' (vgl. Pfeile in Abb. 3.1-30). Aktiviert werden bzgl.
 die Regeln A, B, C, bzgl. ' die Regeln A, C, E, D, G. Betroffen sind demnach nur
die Regeln A und C. Regel A feuert und aktiviert eine Inferenzmenge in x' unter PM.
Regel C feuert und aktiviert die Infernzmenge in x' unter ZR.
Bestimme mit Hilfe der Abb. 3.1.30 die zu den Inferenzmengen zugehörigen Flächen
und ermittle die resultierende Größe nach der Schwerpunktmethode.
3. Implementierung
Eine Implementierung (mit einer umfassenden Erkärung der linguuistischen
Variablen bzw. FUZZY-Sets zum invertierten Pendel) zeigt das MEILE-Projekt:
"Fuzzy-Shell zur Implementierung eines invertierten Pendels" ( http://fbim.fhregensburg.de/~saj39122/gheinz/Index.html).
215
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
A
Zugehörigkeitsgrad
NL
NM
NS
1.0
Zugehörigkeitsgrad
PS
PM
NL
PL
NM
NS
1.0
ZR
B
C
G
NL
NL
NM
NM
NM
NS
NS
NS
1.0
PM
NL
PL
NM
NS
E
D
NL
NL
NM
NM
NM
NS
NS
NS
NM
NS
1.0
1.0
PM
NL
PL
NM
NS
1.0
ZR
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
PS
PM
NL
PL
NM
NS
1.0
PS
PM
NL
PL
NM
NS
1.0
ZR
ZR
ZR
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
1.0
PS
PM
NL
PL
NM
NS
1.0
1.0
PS
PM
NL
PL
NM
NS
1.0
ZR
PM
NL
PL
NM
NS
1.0
PM
NL
PL
NM
NS
1.0
ZR
ZR
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
PS
PM
NL
PL
NM
NS
1.0
PS
PM
NL
PL
NM
NS
1.0
ZR
ZR
ZR
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
0.0
Zugehörigkeitsgrad
1.0
PS
PM
NL
PL
ZR
0.0
NM
NS
1.0
PS
PM
NL
PL
0.0
Abb. 3.1-30: Darstellung der linguistischen Ausprägungen
216
PM
PL
PS
PM
PL
PS
PM
PL
PS
PM
PL
PS
PM
PL
NM
NS
1.0
PS
PM
PL
ZR
ZR

PS
0.0
Zugehörigkeitsgrad
PS
ZR
1.0
PL
ZR
0.0
Zugehörigkeitsgrad
PS
PM
0.0
Zugehörigkeitsgrad
PS
ZR
1.0
PS
ZR
ZR
0.0
Zugehörigkeitsgrad
NL
NL
PL
0.0
Zugehörigkeitsgrad
PS
ZR
F
PM
ZR
0.0
Zugehörigkeitsgrad
NL
Zugehörigkeitsgrad
PS
'
 , ' und x'
0.0
x'
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.3.3.2 Fuzzy-Truck-Trailer
http://fbim.fh-regensburg.de/~saj39122/wang/index.html
3.1.3.3.3 Kugelkasten
http://fbim.fh-regensburg.de/~saj39122/schg/index.htm
3.1.3.3.4 Water-Mix
http://fbim.fh-regensburg.de/~saj39122/robhei/wma.html
3.1.3.3.5 Demonstration einer Fuzzy-Logik Steuerung eines Rennwagens durch eine
Rennstrecke
http://fbim.fh-regensburg.de/~saj39122/feld/demo/index.html
3.1.3.3.6 Fuzzy-Robot
http://fbim.fh-regensburg.de/~saj39122/NN/vogler/index.html
217
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.4 Mamdani und Fuzzy-Regler vom Typ Sugeno
Man unterscheidet in der Praxis 2 Typen von Fuzzy Regeln: Mamdani- und SugenoRegeln.
Mamdani-Regeln
Sie haben folgende allgemeine Form:
R j : IF x1 is A1( j ) and ... and x n is An( j ) THEN y is B ( j )
Es sind formalisierte Regeln, die aus einer durch IF und THEN eingeschlossenen
Prämisse bestehen und in der dem THEN folgenden Konklusion. A1 bis An sind
liguististische Variable, sie werden mit den linguistischen Termen x1 und x n
verglichen.
IF
AND
THEN
1
min
x1
x2
y
1
min
x1
scharfer Messwert
x2
y
scharfer Messwert
1
induzierte Ausgabe
Fuzzy-Menge
y
Abb.: Auswertung zweier Regeln bei einem Mamdani-Regler
218
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Sugeno-Regeln
Sie unterscheiden sich von den Mamdani-Reglern nur insofern, dass ihre
Konklusionen nicht mehr als unscharfe Werte angegeben werden, sondern
reellwertige Zahlen sind.
Die Fuzzy-Regeln werden in der Form
R j : IF x1 is A1( j ) and ... and x n is An( j ) THEN y j  C 0, j  C1, j  x1  ...  C n , j  x n
angegeben. Jede Regel liefert dann als Ergebnis des Bedingungsteils gerade den
Erfüllungsgrad  j : min(  A j ( x1 ),...,  A j ( xn )) . Als Resultat y j der Regel j erhält man
n
1
y j   ( j ) . Die Auswertung aller Regeln
Gesamtergebnis
1
r
y

j 1
r
j
 j
j 1
r
y j


j 1
j
(1<=j<=r) führt zu dem
Rj
 1 ( j )
r

j 1
j
Dies ist ein scharfer Wert, der nicht mehr defuzzifiziert werden muß. Voraussetzung
für diese Regler ist die Verwendung von monotonen Zugehörigkeitsfunktionen für die
Ausgabe-Fuzzy-Mengen79.
IF
AND
THEN
1
min
x1
x2
y
y1
1
min
x1
x2
y
y2
scharfer Messwert
scharfer Messwert
Abb.: Auswertung zweier Regeln bei einem Sugeno-Regler
79 Der Experte muß das gewünschte Regelverhalten in (expliziter) mathematischer Form angeben.
219
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.5 Fuzzy Associative Memories (FAM)80
3.1.5.1 Verknüpfungen zwischen Fuzzy-Systemen
Fuzzy-Mengen beschreiben Punkte in einem mehrdimensionalen Raum (ndimensionaler Einheitswürfel): I n  [0,1]n . Innerhalb dieses Raums interessieren die
Distanzen zwischen den Punkten. Sie dienen zur Messung der Größe und
Fuzzifizierung der Fuzzy-Mengen und können bestimmen, inwieweit eine FuzzyMenge Untermenge einer anderen Fuzzy-Menge ist. Im nächsten Schritt können
Abbildungen zwischen Fuzzy-Räumen betrachtet werden. Das Rahmenwerk zu
Fuzzy-Mengen ist numerisch und mehrdimensional. Strukturiertes Wissen wird in ein
numerisches Rahmenwerk eingebracht, das Modifizierung und Anpassung von
Fuzzy-Systemen erlaubt, vielleicht sogar mit Techniken zu Neuronalen Netzen und
der Statistik (direkt mit Beispieldaten aus dem Problembereich).
Ein Fuzzy-Set definiert ein Punkt in diesem Raum, ein Fuzzy-System bildet FuzzyMengen auf Fuzzy-Mengen ab. So gesehen ist ein Fuzzy-System eine
Transformation
S :In  I p
I n umfaßt alle Fuzzy-Mengen des Urbild- oder Eingabebereichs: X  {x1 ,..., xn }
I p umfaßt alle Fuzzy-Untermengen bzw. den Ausgabebereich: Y  { y1 ,..., y p }
X und Y können Untermengen der Räume R n und R p sein. Die Mächtigkeit der
zugehörigen Fuzzy-Mengen liegt bei F (2 X ) und F (2Y ) 81.
Allgemein bildet ein Fuzzy-System Familien aus Fuzzy-Mengen auf Familien anderer
Fuzzy-Mengen ab: S : I n1  ...  I nr  I p1  ...  I ps ab
Durch die Transformation S : I n  I p werden kontinuierlich Fuzzy-Systeme
unterschiedlicher Räume miteinander verknüpft (assoziiert). Abgeschlossene
Eingaben werden in abgeschlossene Ausgaben abgebidet (Fuzzy Associative
Memories). Das einfachste FAM bestimmt die FAM-Regel oder Assoziation ( Ai , Bi ) ,
die den p-dimensionalen Fuzzy-Set Bi mit dem n-dimensionalen Fuzzy-Set Ai
verbindet. Regeln, z.B. „WENN der Verkehr in dieser Richtung stark ist, DANN
schalte auf längere Grünphase“, können in einer nach der Hebbschen Regel
gestalteten FAM-Korrelations-Matrix aufgenommen werden. Anstelle der Matrix
benutzt man die Bezeihung (STARK, LAENGER) in einer aus linguistischen Termen
gebideten FAM-Bank.
Allgemein bestimmt und bearbeitet (parallel) ein FAM-System F : I n  I p einen
FAM-Bereich von m FAM-Regeln ( A1 , B1 ),..., ( Am , Bm ) . Jede Eingabe A zu einem
FAM-System aktiviert jede gespeicherte FAM-Regel zu einem bestimmten Grad. Das
minimale FAM, das ( Ai , Bi ) speichert, bildet die Eingabe zu A in Bi ' ab. Je mehr A
Ausführliche Beschreibung und Dokumentation (S. 299 – 335) in: Bart Kosko: Neural Networks and FuzzySystems, Prentice Hall, Englewood Cliffs, 1992
81 Irgendeine Funktion f : X  Y , die Punkte von X in Punkte von Y abbildet, kann zur Abbildung von Fuzzy80
f : F (2 X )  F (2Y ) . 2 X beschreibt
die Mächtigkeit der Fuzzy-Mengen von X , das sind alle Fuzzy-Untermengen von X .
Untermengen aus X in Fuzzy-Untermengen aus Y erweitert werden:
220
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Ai ähnelt, desto mehr ähnelt Bi ' B . Die korrespondierende Ausgabe-Fuzzy-Menge
B kombiniert die partiell aktivierten Fuzzy-Mengen B1 ' ,..., Bm ' . B ist ein gewichteter
Durchschnitt der partiell aktivierten Fuzzy-Mengen:
B  w1  B1 '...  wm  Bm '
wi : Bewertung der Stärke der Fuzzy-Verknüpfung ( Ai , Bi )
FAM Regel 1
( A1 , B1 )
( A2 , B2 )
B1 '
B2 '
w1
FAM-Regel 2
...........
w2
.....
A

..........
B
Defuzz.
yj
.....
wm
FAM-Regel m
( Am , Bm )
Bm '
Abb.: Fuzzy-System-Architektur
Binary Input-Output -FAM-Systeme (BIOFAMs) konvertieren den Vektor B in einen
skalaren Ausgabewert y  Y (Defuzzifizierung), der als Massenpunkt bzw.
Schwerpunkt der Masse B beschrieben wird:

y


y   B ( y )dy




 B ( y )dy
221
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.5.2 Adaptive FAMs
Fuzzy-Systeme verknüpfen Ausgabe-Fuzzy-Sets mit Eingabe-Fuzzy-Sets und
verhalten sich so wie assoziative Speicher. Das Fuzzy-Inferenzschema berechnet
die Ausgabe-Fuzzy-Sets B j ' , gewichtet sie mit den Gewichten w j , summiert sie auf
zur Produktion des Fuzzy-Set B : B   w j  B j '
j
Adaptive Fuzzy-Systeme nutzen Beispieldaten bzw. Algorithmen zu Neuronalen
Netzen bzw. aus der Statistik zur Auswahl der Koeffizienten w j . Die Adaption
verändert die Systemstruktur. Ein adaptives FAM ist eine mit der Zeit sich
verändernde Abbildung zwischen Fuzzy-Räumen. Im einfachsten Fall bestimmt der
Eingabe-Fuzzy-Set einen Punkt im Raum I n , der Ausgabe-Fuzzy-set setzt einen
Punkt im Raum I p . Die Transformation S bestimmt ein Fuzzy-System, wenn
S : I n  I p ist. S verknüpft Fuzzy-Untermengen des Ausgaberaums Y mit FuzzyUntermengen des Eingaberaums X . S definiert ein adaptives Fuzzy-System, falls
dS
 0.
S sich mit der Zeit ändert:
dt
Ein adaptives FAM ist ein mit der zeit sich verändernde Abbildung zwischen FuzzyRäumen. FAM-Regeln werden aus Trainings-Daten erzeugt. Die Beispieldaten
kommen aus dem Ein-/Ausgabe-Produktraum. FAM-Abbildungen definieren Cluster
im Ein-/Ausgabe-Produktraum. Die adaptive Prozedur erzeugt aus den TrainingsDaten gewichtete FAM-Regeln. Weiteres Training modifiziert eine gewichtete Menge
aus FAM-Regeln.
3.1.5.3 Erzeugen von adaptiven FAM-Regeln
1 ,...,  k bestimmen k Quantifizierungs-Vektoren des Ein-, Ausgaberaums I n  I p . In
I n  p definiert  j die jte Spalte der Verbindungsmatrix. Die Verbindunsmatrix hat n+p
Zeilen und k Spalten.  j soll sich mit der Zeit ändern82. Die Vektoren  j schätzen
die Dichte oder Verteilung der FAM-Regeln in I n  I p ab, d.h. sie betonen eine
geschätzte FAM-Regel mit einem Gewicht. Je mehr sich geschätzte Vektoren um
m
eine FAM-Regel scharen, desto größer ist das Gewicht in B   wk  Bk ' . Nimm an,
k 1
es gibt 15 Bezugspunkte zu FAM-Regeln in I  I
n
p
(und k > 15). k i Vektoren  j
sammeln sich im iten Bezigspunkt. Die Cluster, die k i zählen, sind geordnet
( k1  k 2  ...  k15 ). Mit k  k1  ...  k15 ergibt sich das adaptive FAM-Regel-
ki
.
k
Praktisch will man häufig nur die am häufigsten frequentierten FAM-Regeln oder nur
Regeln mit mindestens einer minimalen Freqenz wmin .
Gewichtsschema: wi 
82
z.B. im Rahmen von Wettbewerbs-Lernvorgängen (Differential Competive Learning, DCL).
222
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.1.5.4 Adaptives BIOFAM-Clustering
Ein-/Ausgabedaten können direkt FAM-Systeme generieren. Adaptives BIOFAMClustering überführt die Daten in Regeln, das Fuzzy-System lernt die kausalen
Abhängigkeitsmuster. Das System lernt, welche Steuerungsmuster der Eingabe
welchen Mustern der Ausgabe entsprechen. Das System schätzt die kausalen
Abhängigkeitsmuster, wenn es als Steuerung fungiert. Adaptive BIOFAMs ballen
sich im Eingaberaum X  Y . Der Produktraum ist kleiner als der mächtige
Produktraum I n  I p . Die adaptiven Vektoren  j sind nun zweidimensional anstatt
(n+p)-dimensional. Auf der anderen Seite erfordert wetteiferndes BIOFAM-Clustering
mehr Ein-/Ausgabedatenpaare ( xi , y i )  R 2 als Fuzzy-Set-Beispieldaten.
BIOFAM-Clustering
entnimmt
Beispieldaten
dem
Ein-/Ausgabestrom
( x1 , y1 ), ( x2 , y2 ),... . Unüberwachtes, wetteiferndes Lernen verteilt die k quan-tifizierten
Vektoren 1 ,...,  k auf X  Y . Das Lernen ordnet sie den verschieden FAM-Zellen Fij
zu. Die FAM-Zelle überlappt die „Nicht-Fuzzy-Räume“ von X  Y . Die BIOFAMZellen Fij überdecken X  Y .
Fij
enthält
k ij
Quantifizierungs-Vektoren. Die Zelle zählt
Häufigkeitsdiagramm bis alle k ij aufsummiert k ergeben. wij 
k ij
k
k ij , definiert ein
gewichtet dann die
FAM-Regel „WENN X Ai ist, DANN ist Y Bj“.
In der Regel konzentriert sich die Verteilung auf wenige Zellen der FAM-Bank und im
wesentlichen werden die vom Benutzer ausgewählten Regeln für das Gleichgewicht
bestätigt bzw. ergänzt.
223
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2 Regelungssysteme
3.2.1 Klassische Regelungssysteme
3.2.1.1 Begriffe aus der Regelungstechnik
Bei einem Regelkreis handelt es sich um ein System, in dem eine zeitveränderliche
Größe in bestimmter Weise beeinflusst werden soll, z.B. um diese auf einen
gewünschten Wert (Sollwert w) zu bringen und dort zu halten. Die zu beeinflussende
Größe ist die Regelgröße x, das gegebene System ist die Regelstrecke.
1. Aufbau eines Regelkreises
Ein Regelkreis besteht aus einer Regeleinrichtung und einer Regelstrecke
Störgrößen
RegelFührungsgröße abweichung Regler- und
w
xw = x-w Steuereinrichtung
Regelgröße
y
Strecke
gemessene Regelgröße
Meßeinrichtung
Abb. 3.2-1: Prinzipschaltung einer Regelung
Die Aufgabe eines Regelkreises ist: Der Ausgangswert (Istwert) soll dynamisch
möglichst genau, schnell und schwingungsfrei dem Eingangswert (Sollwert) folgen.
Die Eingangsgröße ist die Führungsgröße des Regelkreises, die Ausgangsgröße ist
die Regelgröße. Zur Anpassung der Regelgröße an die Führungsgröße wird ein
Istwert gemessen und mit dem Sollwert verglichen. Die Differenz ist der
Eingangswert der Regeleinrichtung. Sie wird durch den Regler beeinflußt und am
Reglerausgang der Strecke als Stellgröße zur Verfügung gestellt.
Wesentliches Merkmal einer Regelung im Unterschied zu einer Steuerung ( oder
einem Stellglied) ist ein geschlossener Wirkungskreislauf, der ein automatisches
Nachführen des Istwerts gemäß dem Sollwert ermöglicht.
2. Festwertregelung
Eine Festwertregelung liegt vor, wenn der Sollwert (w) einen festen Wert besitzt.
Aufgabe der Regelung ist es, dafür zu sorgen, dass die Regelgröße diesen
vorgeschriebenen festen Sollwert einhält, ohne dass Störungen, die auf den Prozeß
einwirken, von nennenswertem Einfluß sind. Die Regeleinrichtung muß also bei
einem Festwertregler Störwirkungen gut ausregeln können: das Störverhalten muß
gut sein. Zur Festwertregelung werden auch die Fälle gerechnet, bei denen der
224
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Sollwert gelegentlich oder nur langsam geändert aber auch wieder für eine längere
Zeit konstant gehalten wird.
3. Führungsregelung
Bei einer Führungsregelung ist der Sollwert (w) eine Funktion der Zeit oder einer
anderen Größe. Die Aufgabe der Regelung besteht darin, den Vewrlauf der
Regelung möglichst genau dem Verlauf der Führungsgröße anzugleichen. Die
Regeleinrichtung wird hierbei auf ein möglichst gutes Führungsverhalten ausgelegt,
die Regelgröße soll der Führungsgröße möglichst genau folgen.
3.2.1.2 Beschreibungsmöglichkeiten (für dynamische Systeme)
1. Beschreibung dynamischer Systeme
Zur Regelung eines Systems mit den Methoden der konventionellen
Regelungstechnik muß ein Modell für das dynamische Verhalten des Systems
aufgestellt werden.
Falls F die Menge aller Funktionen f: R -> R bezeichnet und xe (t )  F die
Eingangsfunktion für das System (z.B. die Regelstrecke) ist, dann liegt das Ziel in
der Bestimmung der Funktion T: F -> F, so dass xa (t )  T ( xe (t )) der Verlauf des
Ausgangssignals des Systems wiedergibt. Die Funktion T beschreibt das
Übertragungsverhalten des betrachteten Systems.
Lineare Systeme. Die konventionelle Regelungstechnik beschränkt sich auf das
Betrachten linearer Systeme. Von linearen Systemen spricht man, wenn sich das
Ausgangssignal als lineare Überlagerung der Systemanworten mehrerer
Eingangssignale beschreiben lässt, d.h. wenn das Superpositionsprinzip gilt:
n
n
i 1
i 1


n
 k i xai (t )   k iT xei (t )  T  k i xe (t )
i 1
i
Die Beziehung zwischen Eingangs- und Ausgangssignal kann häufig über
Differentialgleichungen beschrieben werden.
2. Beschreibung im Zeitbereich (in Form einer Differentialgleichung)
2.1 Bsp.: Einfaches RC-Netzwerk
u (t)
e
ua ( t )
Abb. 3.2-4: Tiefpass
225
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Ein Widerstand und ein Kondensator sind in Reihe geschaltet und an beide
Bauelemente eine Eingangsspannung ue (t ) gelegt. Die Ausgangsspannung ua (t )
läßt sich als Funktion der Eingangsspannung beschreiben:
u e ( t )  R  i( t )  u a ( t )
du a ( t ) 1
  i( t )
dt
C
Durch Einsetzen erhält man eine Differentialgleichung erster Ordnung:
RC
du a ( t )
 u a (t)  u e (t)
dt
Für diese Differentialgleichung ist die Lösung mit den Randbedingungen
u e ( t  0)  0 und u e ( t  0)  u 0 :
u a ( t )  u 0  (1  e  t / RC )
Vorgegeben wird eine sprunghafte Anregung der Höhe u0 . Das Verhalten der
Ausgangsgröße ist die Sprungantwort.
u(t)
u e (t)
ua(t)
t
Abb. 3.2-5: Zeitliches Verhalten
2.2 Darstellung des Zeitverhaltens durch die Übergangsfunktion
Die übliche grafische Darstellung eines Regelungsblocks in einem Strukturbild ist
eine skizzierte Abbildung seiner Sprungantwort in einem Rechteck
226
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
ue(t)
t
ue(t)
ua(t)
ua(t)
t
Abb. 3.2-6: Darstellung des zeitlichen Verhaltens durch die Übergangsfunktion
Den Verlauf, den die Ausgangsgröße nach einer sprungartigen Eingangsänderung
hat, bezeichnet man als Übergangsfunktion.
2.3 Kennzeichnung von Regelstrecken
Es gilt: Die Regelstrecke hat als Eingangsgröße die Stellgliedanordnung y(t) und als
Ausgangsgröße die Regelgröße x(t). Für lineare Übertrager kann man das
Zeitverhalten einer Regelstrecke durch die allgemeine Differentialgleichung
dx
d2x
'
''
n
'''
''
, x  2 , usw. beschreiben.
S n  x ...S 3  x  S 2  x  S1  x  S 0  x  y mit x 
dt
dt
Die höchste Ableitung der beschreibenden Gleichung kennzeichnet die Ordnung der
Regelstrecke. Man spricht von einer Regelstrecke n-ter Ordnung, wenn ihr
Zeitverhalten exakt oder wenigstens mit guter Näherung durch eine
Differentialgleichung n-ter Ordnung dargestellt werden kann.
Weiterhin unterscheidet man
- Regelstrecken mit Ausgleich
- Regelstrecken ohne Ausgleich
2.3.1 Regelstrecken mit Ausgleich
Hier strebt die Regelgröße nach z.B. sprungartiger Stellgliedsverstellung für t  
einen neuen Beharrungszustand an. Für t   verschwinden alle Ableitungen x’, x’’,
1
... und der Endwert ist die Größe x 
. Der einfachste Fall ist eine Strecke der
S0
Ordnung 0 mit der Gleichung S 0  x  y .
Die meisten Regelstrecken zeigen Verzögerungen, d.h. die Ausgangsgröße folgt
nicht unmittelbar einer sprungartigen Eingangsgröße, sondern mit einer zeitlichen
Verzögerung. Die einfachste verzögerte Regelstrecke ist die Regelstrecke 1.
227
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Ordnung mit der Gleichung S1  x'S 0  x  y bzw. TS  x' x  VS  y mit TS 
VS 
S1
und
S0
1
. Die Lösung dieser Gleichung bei einer Sprungfunktion ist bekanntlich:
S0
x  VS  (1  e  t / TS )
x
TS
VS
t
Abb. 3.2-7: Übergangsfunktion
Eine Regelstrecke 2. Ordnung wird durch die Differentialgleichung
S 2  x' 'S1  x'S 0  x  y
beschrieben. Das ist die bekannte Schwingungsgleichung, die bspw. in der Mechanik
das Verhalten eines Feder-Masse-Systems mit Dämpfung beschreibt. Die
Übergangsfunktion eines solchen Systems zeigt ein oszillatorisches Verhalten
2.3.2 Regelstrecken ohne Ausgleich
Bei einer sprungartigen Änderung der Eingangsgröße wird die Ausgangsgröße vom
vorliegenden Beharrunszustand weglaufen, ohne wieder einen neuen
Beharrungszustand in dem Bereich der Ausgangsgröße anzunehmen.
3. Beschreibung im Frequenzgangbereich
Führt man aufwendigere Regelstrukturen auf Differentialgleichungen im Zeitbereich
zurück, so sind diese sehr schnell unhandlich und unübersichtlich. Deshalb ist es
günstiger, eine Transformation in den Frequenzbereich vorzunehmen (sog. LaplaceTransformation). Speist man ein Übertragungsglied mit einer sinusförmigen
Eingangsgröße, so ist das Übertragungsverhalten als Funktion der Frequenz die
Darstellung im Frequenzbereich. Ist bspw. u a ( t )  U 0  e jt , dann gilt:
du a ( t )
 j    U 0  e jt
dt
Wählt man für die Spannung die komplexe Darstellung mit der abkürzenden
Schreibweise j  p , so ergibt sich für das Beispiel des RC-Netzwerks:
p  T  u a ( p)  u a  ( p)  u e ( p) mit T=RC)
228
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
oder
u a ( p)  F( p)  u e ( p) mit F( p) 
1
1 T p
Definition des Frequenzgangs
Der Frequenzgang eines Übertragers ist eine Funktion, die das Amplitudenverhältnis
und die Phasenverschiebung in Abhängigkeit von der Frequenz beschreibt. Ein
Übertrager wird durch die allgemeine Differentialgleichung
a m  x a( m )  ...  a 2  x a''  a1  x a'  a 0  x a  e0  xe  e1  xe '...  en  xe( n )
in seinem Zeitverhalten beschrieben. Ist die Eingangsgröße eine Sinusschwingung
mit der Amplitude xe0, so kann diese in komplexer Schreibweise in der Form
x e  x e0  e jwt
dargestellt werden. Im eingeschwungenen Zustand ist die Ausgangsgröße eine
Schwingung gleicher Frequenz, jedoch mit einer Phasenverschiebung .
x a  x a 0  e j( t  )
Dann ist:
x e '  j  x e0  e jwt
x a '  j  x a 0  e jwt
x e ''  ( j) 2  x e0  e jwt
x a ''  ( j) 2  x a 0  e jwt
x e '''  ( j) 3  x e0  e jwt
.....
x (en)  ( j) n  x e0  e jwt
x a '''  ( j) 3  x a 0  e jwt
.....
x (am)  ( j) m  x a 0  e jwt
Durch Einsetzen in die allgemeine Differentialgleichung, die das Zeitverhalten eines
Übertragers beschreibt, ergibt sich:



x a 0  e j( t  )  a m  ( j ) m ...a 2  ( j ) 2  a 1  j  a 0  x e 0  e jt e n  ( j ) n ...e1  j  e 0

Der Frequenzgang F() erhält man, indem man das Verhältnis Ausgangsgröße zu
Eingangsgröße bildet:
F( j) 
x a 0  e j( t  ) x a 0 j e n  ( j) n ...e1  j  e 0

e 
x e0
x e 0  e jt
a m ( j) m ...a 1  j  a 0
Man kann den Frequenzgang unmittelbar aus der gegebenen Differentialgleichung
heraus berechnen, z.B.:
T22  x''T1  x' x  y
x( p)(T22  p 2  T1  p  1)  y( p)
229
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
F( p) 
x( p)
1

y( p) 1  T1  p  T22  p 2
3.2.1.3 Lineare (stetige) Regler
In der Regelungstechnik werden häufig Regler eingesetzt, die zur Bestimmung der
Stellgröße y , die Regelabweichung x w sowie deren Ableitung x w ' und das Integral
t
x
w
( )d verwenden
0
1. Proportionalregler (P-Regler)
Jede Änderung der Regelabweichung (xw) bewirkt - im Idealfall - eine sofortige
proportionale Änderung der Stellgröße:
y  VR  x w
VR ist der Verstärkungsfaktor des Reglers. Die Übergangsfunktion ist die
Sprungfunktion.
y
xw
xw
VR
t
t
Abb. 3.2.10: Übergangsfunktion eines idealen P-Reglers
Hat der Regler Verzögerungen, so lautet seine allgemeine Gleichung:
Tm  y ( m )  ...  T2 y ''  T1  y '  y  VR  x w
Der Regler nimmt nur dann eine Verstellung des Stellglieds vor, falls
Regelabweichnung vorliegt. Eine Störgröße, die in einer Regelstrecke
Regelabweichnung hervorruft, kann demnach durch einen P-Regler in
Wirksamkeit nur eingeschränkt werden. Er kann eine Regelabweichnung
vollständig beseitigen.
Generell beschreibt man den Proportional-Regler durch
eine
eine
ihrer
nicht
y (t )  K p x w (t )
K p ist die Proportionalverstärkung.
Vorteile des Proportionalreglers sind seine Schnelligkeit und sein einfacher Aufbau.
Nachteilig ist, dass Regelkreise mit Proportionalregler eine bleibende Regeldifferenz
aufweisen.
230
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
KP
x w (t )
y (t )
Abb.: Symbol P-Regler
2. Proportionalregler mit Differentialanteil (PD-Regler)
Die Ausgangsgröße y wird noch zusätzlich durch die Änderungsgeschwindigkeit der
Regelgröße bestimmt. Der Regler spricht also bereits auf den Differentialquotienten
von x w an.
y  VR  ( x w  TV  x w' )
TV (bestimmt den D-Anteil) wird Vorhaltezeit genannt.
xw
y
VRxw
t
Abb. 3.2.11: Übergangsfunktion eines idealen PD-Reglers
Gerätetechnisch läßt sich eine Differentiation nicht verwirklichen. Die verwendeten
Regler haben mindestens eine Verzögerung 1. Ordnung gemäß der Gleichung:
T1  y  VR  ( x w  TV  x w' )
Allgemein kann ein D-Regler durch folgende Gleichung beschrieben werden:
y(t )  K D
x w (t )
t
K D ist die Differentialverstärkung
KD
x w (t )
y (t )
Abb.: Symbol D-Regler
231
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Da der D-Regler nur auf die Änderung der Reglabweichung reagiert, ist er allein nicht
zu gebrauchen. Er wird nur ergänzend mit dem P- oder PI-Regler eingesetzt.
3. Integralregler (I-Regler)
Die Stellgröße ist proportional dem zeitlichen Integral über die Regelabweichung
y  c R   x w  dt
bzw.
Tm  y ( m )  ...  T2 y ''  T1  y '  y  c R   x w dt
Eine Verstellung des stellglieds wird solange erfolgen, wie eine Regelabweichung xw
vorhanden ist. Der regler wird somit in der Lage sein, den Einfluß einer störgröße auf
die zu regelnde Größe zu beseitigen. Nach Ablauf des Regelvorgangs wird die
Regelabweichung zu Null werden.
xw
y
c Rx w
t
1
Abb. 3.2.15: Übergangsfunktion eines I-Reglers
Allgemein beschreibt man den I-Regler durch:
t
y(t )  K I  xw ( )d
0
K I ist die Integralverstärkung
KI
x w (t )
y (t )
Abb.: Symbol I-Regler
4. Proportional-integrale Regler
Beim Anfangsverhalten hat der P-Regler gegenüber dem I-Regler Vorteile, beim
Ausgangsverhalten ist es umgekehrt. Der PI-Regler verbindet die jeweiligen Vorteile
der beiden Regler durch eine Parallelschaltung miteinander. Die Verstellung des
Stellglieds erfolgt nach dem Betrag der Regelabweichnung (P-Anteil) und nach dem
zeitlichen Integral (I-Anteil).
232
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
1
 x w dt )
Tn 
Die Zeitkonstante Tn=VR/cR wird Nachstellzeit genannt. Der PI-Regler nimmt so lange
eine Verstellung des Stellglieds vor, bis keine Regelabweichung vorhanden ist.
Tm  y ( m )  ...  T2 y ''  T1  y '  y  VR  x w  c R   x w dt  VR  ( x w 
VRxw
Tn
Abb. 3.2.16: Übergangsfunktion eines (idealen) PI-Reglers
5. Proportional-integrale Regler mit D-Anteil
Er läßt durch durch die Parallelschaltung eines P-, I- und D-Anteils realisieren:
- Der P-Anteil sorgt für allgemein günstiges Regelverhalten
- Der I-Anteil sorgt für stationäre Genauigkeit
- Der D-Anteil sorgt für schnelle Ausregelung
Das Zeitverhalten beschreibt folgende Differentialgleichung:
y
VRxw
t
Tn
Abb. 3.2.20: Übergangsfunktion eines (idealen) PID-Reglers
Industrielle PID-Regler zeigen nur in seltenen Fällen eine lineare
Übertragungscharakteristik. Jeder Regler besitzt eine Stellgrößenbeschränkung mit
einem unteren und oberen Grenzwert (ymin, ymax).
Auf der anderen Seite besitzt der "reale PID-Regler" eine Vielzahl zusätzliche
Optionen, die das Regelverhalten im Betrieb verbessern sollen. Dazu gehört bspw.
eine Modifikation der D-Anteils zur Verringerung der Empfindlichkeit gegenüber
Störsignalen. Ein idealer Differenzierer würde bei sich zeitlich sehr schnell
ändernden Eingangsgrößen hohe Störamplituden liefern und damit das
nachgeschaltete Stellglied überbeanspruchen. Statt des idealen Differenzierers
y  Tv  x w'
wird ein sogenanntes Vorhalteglied mit der Differentialgleichung
233
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
T  y '  y  TV  x w'
eingesetzt.
Das Verzögerungsglied T1 ist so zu wählen, daß die gewünschte Störunterdrückung
erreicht wird und der differenzierte Charakter des Reglers erhalten bleibt.
Mathematisch kann ein PID-Regler durch folgende Differentialgleichung beschrieben
werden:
t
y(t )  K P xw (t )  K I  xw ( )d  K D
0
xw (t )
t
Der PID-Regler bildet das Stellsignal aus der Regeldifferenz durch proportionale
Verstärkung, durch Integration der Regeldifferenz, durch Differentation der
Regeldifferenz.
KP
KI
+
x w (t )
y (t )
+
+
KD
x w (t )
y (t )
Abb.: Symbol PID-Regler
234
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.1.4 Zustandsregler
Ihnen stehen mehrere, im Idealfall alle Zustandsgrößen der Regelstrecke zur
Verfügung. Hierdurch kann u.a. ein wesentlich verbesserte Regelverhalten erzielt
werden. Der Preis dafür ist der erhöhte Meßaufwand für die Ermittlung der
Zustandsgrößen.
Bsp.: Das sog. "Inverse Pendel"
Es besteht aus einem fest montierten
Motor der bei Aufprägung eines
Ankerstroms i ein Drehmoment M auf das
Pendel mit der Masse m ausübt. Das
System besitzt 2 Zustandsgrößen: Die
Winkelauslenkung
und
die

Winkelgeschwindigkeit ' .
m
 '
l
i
M
Abb. 3.2-30: Auf dem Kopf stehendes Pendel
Die Regelungsaufgabe besteht darin, das Pendel in seiner Ruhelage zu halten bzw.
dorthin zurückzuführen, wenn es durch eine äußere Störung ausgelenkt wird.
Bei der Lösung mit einem Zustandsregler wird neben der Winkelauslenkung  noch
die Winkelgeschwindigkeit ' zugeführt. Dadurch wird eine größere Regelgüte
erzeugt, allerdings um den Preis einer zusätzlichen Meßstelle.
Generell werden bei der Zustandsregelung gemessene Systemgrößen mit dem
Rückführungsvektor rT multipliziert. Die Beschreibung der Stellgröße umfaßt:
 y max

y  r T  x
y
 min
Alles, was größer ist als ymin und kleiner ist als ymax wird durch rTx beschrieben. Die
Wahl des Rüchführungsvektors rT setzt ein Modell des zu regelnden System voraus.
235
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.1.5 Kennlinien- und Kennfeldregler
Kennlinienregler umfassen i.a. nichtlineare Übertragungsglieder, deren Übertragungsverhalten durch eine Beziehung
a  F (e)
Beschreibbar ist. "F" ist in grafischer Form als Kennlinie gegeben. Kennlinieregler
sind stationäre Regler, da sie keine Eigendynamik besitzen.
Bsp.: Zweipunktregler
a
amax
e
amin
Zweipunktregler dienen zur einfachen Temperaturregelung. Der Regler besitzt dann
bspw. die Arbeitspunkte "0" und "amax", die Regelstrategie lautet dann etwa:
WENN Solltemperatur noch nicht erreicht, DANN Heizen mit voller Kraft.
WENN Solltemperatur erreicht, DANN Heizung aus.
Eine unmittelbare Verallgemeinerung des Kennlinienreglers auf den Fall mehrerer
Regler-Eingangsgrößen
a  F (e1 , e2 ,..., em
stellen Kennfeldregler dar.
236
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.2 Fuzzy-Regelungssysteme
1. Struktur
Grundlage für den Entwurf von Reglern mit Methoden der klassischen
Regelungstechnik83 ist ein mathematisches Modell, das meistens aus
Differentialgleichungen besteht, die das dynamische Verhalten des Systems in
Abhängigkeit von den Eingangs- und Stellgrößen mögflichst exakt nachbilden. Im
Rahmen der Fuzzy-Regelung verzichten man auf das Erstellen eines
mathematischen Modells. Statt dessen vesrsucht man eine Regelstrategie zu
beschreiben, die z.B. durch Befragung oder Beobachtung eines kompetenten
Anlagenfahreres gewonnen wird, der das technische System bedienen kann. Hinter
diesem Ansatz steht dieEinsicht, dass Menschen meistens in der Lage sind, sowohl
einfache als auch komplexe Systeme recht gut zu beherrschen, ohne dass sie dazu
ein mathematisches Modell mit Differentialgleichungen aufstellen müssten.
Analog zum konventionellen Regler kann ein Fuzzy-Controller so interpretiert
werden: Implementierung eines Übertragungsverhaltens mit Eingangsgrößen, die die
über den Zustand des Prozesses bzw. der Regelstrecke zur Verfügung stehenden
Informationen darstellen, sowie die Ausgangsgrößen für den Prozeß.
X1
Y1
Fuzzy-Controller
...
Ym
Xn
Abb. 3.2-40: Fuzzy-Controller mit den Eingangsgrößen Xi und der Stellgröße Yj
Von außen betrachtet, zeigt der Regler keinerlei Unschärfe, d.h.: Sowohl Eingangsals auch Ausgangsgrößen sind scharfe Werte. Die Unschärfe liegt im Innenleben
des Reglers.
Ein Fuzzy-Regler benötigt eine Wissensbasis, in der die Regelstrategie in Form
geeigneter umgangssprachlicher Regeln festgelegt wird, z.B.: „Wenn die Differenz
zwischen Soll- und Ausgangswert und die Änderung dieser Differenz ungefäht null
sind, dann sollte die Stellgröße etwa konstant gehalten werden“.
83
vgl. 3.2.1
237
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eingangsgrößen
X1
WENN ... UND ...
DANN ...
WENN ... UND ...
DANN ...
WENN ... UND ...
DANN ...
...
Stellgröße
Y
...
...
Xn
Inferenz
Fuzzyfizierung
Defuzzifizierung
Abb. 3.2-41: Logische Struktur eines Fuzzy-Controllers
Eingangsund
Stellgrößen
sind
linguistische
Variable
und
durch
Zugehörigkeitsfunktionen charakterisiert. Durch Fuzzifizierung werden die scharfen
Eingangsgrößen in unscharfe Größen überführt. Die Inferenzmaschine generiert im
2. Schritt mit Hilfe des vorgegebenen Regelwerks an den fuzzifizierten
Eingangsgrößen eine unscharfe Stellgröße. Diese wird schließlich durch
Defuzzufizierung wieder in ein scharfes Signal zurückverwandelt.
Die Umsetzung der 3 Arbeitsschritte kann in der on line Berechnung der Stellgröße
für die aktuelle Kombination der Eingangsgrößen bestehen. Dazu geht am
folgendermaßen vor:
(1) Bestimmen des Erfüllungsgrads jeder Regel
- Ermitteln des Erfüllungsgrads für die einzelnen Prämissen (WENN-Teile) der Regeln
- Verknüpfen der einzelnen Erfüllungsgrade über den UND- oder ODER-Operator (z.B. MIN- bzw.
MAX-Operator)
(2) Ermitteln der zugehörigen Stellgrößen-Fuzzy-Mengen für alle aktiven Regeln
(3) Ermitteln der resultierenden Fuzzy-Menge durch Überladen aller StellgrößenFuzzy-Sets
(4) Ermitteln der scharfen Stellgröße durch Defuzzifizierung
Fuzzy-Regelungssysteme
Regelungssysteme:
zeigen
die
238
gleichen
Strukturen
wie
klassische
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Regelbasis
Fuzzifizierung
-
Inferenzmechanismus
Defuzzyfizierung
Strecke
FC
Abb. 3.2-42: Grundstruktur eines Fuzzy-Reglers
2. Mamdani-Regler und Fuzzy-Regler vom Typ Sugeno
Ein Fuzzy-Regler, der auf der Basis unscharfer Regeln arbeitet, liefert ein unscharfes
Ergebnis in der Form einer Fuzzy-Menge, die noch „defuzzifiziert“ werden muß, um
einen eindeutigen Wert für die Stellgröße zu erhalten. Eine häufig angewandte
heuristische Defuzzifizierungs-Strategie ist die Wahl des Stellwerts unter dem
Schwerpunkt84 der durch die Fuzzy-Menge bzw. Zugehörigkeitsfunktionen begrenzte
Fläche.
Beim sogenannten Mamdani-Regler85 bildet man dafür das Minimum der
Zugehörigkeitsgrade der aktuellen Werte zu dem in der entsprechenden Regel
auftretenden linguistischen Terme bzw. Fuzzy-Mengen.
Bei Fuzzy-Reglern vom Sugeno-Typ86 gibt man anstelle der linguistischen Werte für
die Stellgröße scharfe Werte vor, so dass auf Fuzzy-Mengen für die Stellgröße
verzichtet werden kann.
3. Fuzzy-Entwurfsschritte
(1) Wahl der Meßgrößen mit den daraus abgeleiteten Größen als Eingangs-größen
des Fuzzy-Controller sowie der Stellgröße als Ausgangsgröße
(2) Festlegung der möglichen Wertebereiche für die Ein- und Ausgangsgrößen
(Skalierung der linguistischen Variablen)
(3) Definition der linguistischen Terme und ihre Zugehörigkeitsfunktionen (Fuzzy
Sets) für alle linguistischen Variablen
(4) Aufstellen der Regelbasis (Regelwerk) durch sinnvolle Wahl der logischen
Verknüpfungen:
Die Anzahl der zu wählenden Regeln hängt ab von der Zahl der Eingangsgrößen, der Zahl der
Ausgangsgrößen und der Zahl der linguistischen Variablen aller Größen ab. Bei 2 Eingangsgrößen
und einer Ausgangsgröße mit jeweils 5 sie beschreibenden linguistischen Variablen müssen 5 2 =
25 Regeln gefunden werden.
(5) Festlegen der Inferenzmaschine (Operatoren, Inferenzmethode, Datentyp,
Defuzzifizierungsmethode)
84
Center-of-Gravity-Methode (COG)
vgl. 3.1.4
86 vgl. 3.1.4
85
239
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
(6) Simulation des Regelkreises, falls ein Modell der Regelstrecke vorhanden ist.
Das Modell muß nicht ein exaktes Modell sein, sondern kann ebenfalls mit einem
Fuzzy-System verbal beschrieben werden.
(7) Optimierung
(8) Stabilitätsanalyse über offline- oder online-Prüfverfahren oder über
mathematische Verfahren
4. Übertragungsverhalten von Fuzzy-Controllern
Ein automatisches Regelungssystem gibt zu jeder Kombination der Eingangsgrößen
einen Stellwert an. In einem Fuzzy-Control-System verwendet man dafür aktuell
gemessene bzw. errechnete Eingangsgrößen.
Bsp.: Demonstration der Eingangsgrößen (Winkelauslenkung  , und Winkelgeschwindigkeit ' ) bei der Regelung des auf dem Kopf stehenden Pendels87. Die
Werte für die Ausgangsvariable ("Kraft") beim Stab-Wege-Problem werden
durch die dritte Dimension dargestellt.
Abb. 3.2-50: Regelfläche beim Stab-Wege-Problem
Der für das Stab-Wege-Problem entwickelte Fuzzy-Regler ist vollständig bestimmt
durch eine Funktion, die zu jeder Kombination der Eingangsgrößen den richtigen
87
vgl. Stab-Wege-Problem, MEILE-Projekt ( ... )
240
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Wert der Stellgröße angibt. Die zugehörige bildliche Darstellung ist das Kennfeld des
Reglers88.
Fuzzy-Controller weisen statisches und - von Sonderfällen abgesehen - nichtlineares
Übertragungsverhalten auf, das durch Kennlinien bzw. Kennlinienfelder 89
beschrieben werden kann. Das Übertragungsverhalten ist abhängig von Anzahl,
Form und Anordnung der linguistischen Ein- und Ausgangsgrößen, der Regelbasis
sowie
Verknüpfungsoperatoren,
Inferenz-mechanismus
und
Defuzzifizierungsverfahren und kann durch Änderung einzelner Fuzzy-Mengen und
Regeln lokal beeinflußt werden. Fuzzy-Controller gehören zur Klasse der Kennlinienbzw. Kennfeldregler.
3.2.2.2 Einfaches Modell eines Fuzzy-Reglers
3.2.2.2.1 Diskrete Regelung
Ein konventioneller Regler (z.B. PI-Regler) berechnet den Einstellwert nach der
Gleichung: y  K P x w  K I  x w ( )d . Durch Differenzierung und Diskretisierung erhält
t
man aus dieser Gleichung (mit 't' als Zeitpunkt):
y(t )  K P xw (t )  K I xw (t ) .
y (t ) ist die Veränderung der Stellgröße, x w (t ) ist die Regelabweichung (der Fehler)
und x w (t ) ist die Änderung des Fehlers. Es gilt: xw (t )  xw (t )  xw (t  1)
3.2.2.2.2 Fuzzy-Regelung
Ein Fuzzy-Regler benutzt eine Wissensbasis, die aus Fuzzy-Regeln besteht. Diese
Regeln haben allgemein die Form:
wenn (Prozesszustand) dann (Stellwert)
d.h. Aufgrund eines bestimmten Prozesszustands wird eine Veränderung des
Stellwerts bestimmt. Die Regel stellt eine Art kausale Beziehung zwischen
Prozesszustand und Stellwert her, der im analytischen Ausdruck des PI-Reglers
nicht vorliegt. Der wesentliche Unterschied liegt aber in der Art der für die Variablen
verwendeten Werte:
88
89
http://fbim.fh-regensburg.ge/~saj39122/public_html/gheinz/Index.html: Shell-3d-plot.jpg
vgl. 3.2.1.5
241
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
x w (t )
x w (t )
y (t )
negativ
die aktuelle Prozeßausgabe x liegt um
einen Betrag entsprechend dem Wert der
Größe über dem Sollwert w(t )
die aktuelle Prozessx(t )
ausgabe
ist
gegenüber dem vorhergehenden
Wert
x(t  1) um einen
Betrag
entsprechend
dem Wert der Größe
gewachsen.
der aktuelle Wert der
Steuerungsausgabe
y (t  1) ist um einen
Betrag
entsprechend
dem Wert der Größe zu
verkleinern.
null
positiv
die aktuelle Prozessausgabe die aktuelle Prozessausgabe x
liegt
um
einen
Betrag
x liegt am Sollwert w(t )
entsprechend dem Wert der
Größe unter dem Sollwert w(t )
die aktuelle Prozessausgabe
x(t ) hat sich gegenüber
dem vorhergehenden Wert
x(t  1) nicht verändert.
die
aktuelle
Prozessausgabe
x(t ) hat sich gegenüber dem
vorhergehenden Wert x(t  1)
um einen Betrag entsprechend
dem Wert der Größe verringert.
der aktuelle Wert der der
aktuelle
Wert
der
Steuerungsausgabe
y
(
t

1)
Steuerungsausgabe
y (t  1) bleibt unverändert. ist
um
einen
Betrag
entsprechend dem Wert der
Größe zu verkleinern.
Für alle drei Variable wird dieselbe Menge linguistischer Werte gewählt. Die
Regelmenge ist in der folgende Tabelle dargestellt:
x w (t ) \
NB
NM
NS
N
PS
PM
PB
NB
NB
NB
NB
NM
NS
N
NB
NB
NB
NM
NS
N
PS
NB
NB
NM
NS
N
PS
PM
NB
NM
NS
N
PS
PM
PB
NM
NS
N
PS
PM
PB
PB
NS
N
PS
PM
PB
PB
PB
N
PS
PM
PB
PB
PB
PB
x w (t )
NB
NM
NS
N
PS
PM
PB
242
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.3 Hybride Systeme
3.2.3.1 Neuronale Regler
1. Off-line learning mit fester, unverändert vorliegender Lernaufgabe
Die einfachste Form eines neuronalen Reglers besteht aus einem (mehrschichtigen)
Perceptron, das mit der (erweiterten) Delta-Regel (Backpropagation) anhand einer
festen Lernaufgabe trainiert wird. Dabei ist es notwendig, daß das betrachtete
(technische) System bereits anderweitig geregelt werden kann90 und Meß-,
Stellgrößen erfaßbar sind. Zumindest müssen für repräsentative Eingaben die
entsprechenden Werte der Stellgrößen bekannt sein. Beispieldaten müssen
vorliegen, das Lernverfahren verlangt mehrere vollständige Durchläufe (Epochen)
bei einer unverändert vorliegenden Lernaufgabe (Offline learning). Da dieser Art
neuronaler Regler auf direktem Wege das Verhalten des Bedieners nachbilden,
werden sie als Klone (clones) oder "überwachte Regler" bezeichnet.
Bsp.: Fahrzeugsteuerung auf einem frei definierbaren Rundkurs über ein FuzzyControl-System (Erlernen der Fahrweise) mit Speicherung in einem neuronalen
Netz91.
2. Verstärkendes Lernen mit bewerteter freier Lernaufgabe
Die Idee dieses Lernverfahrens besteht in einer Belohnung des Neuronalen Netzes,
wenn die Ausgabe zu einer guten Veränderung geführt hat, bzw. in einer Bestrafung,
wenn die ausgelöste Veränderung schlecht ausgefallen ist. Es ist nur erforderlich,
die Ausgabe bzw. die durch sie in der Umgebung des Netzwerks hervorgerufene
Veränderung als gut oder schlecht bewerten zu können. Die korrekte Ausgabe für
ein gegebenes Eingabemuster braucht nicht bekannt zu sein (freie Lernaufgabe).
Der Vorgang des verstärkenden Lernens kann in folgende fünf Schritte unterteilt
werden:
(1) Ein Muster ip wird ausgewählt und dem Neuronalen Netz präsentiert.
(2) Ein Muster ip wird propagiert, bis das das Netz seine Ruhephase erreicht hat.
(3) Die Bewertung f(op) der Ausgape op wird ermittelt
(4) Die Netzstruktur W wird anhand von op verändert.
Gewichte, die verstärkend auf die aktuelle Ausgabe wirken, werden bestraft, wenn der Ausgabe
eine schlechte Bewertung zugeordnet wird. Sie werden belohnt, falls der Ausgabe eine gute
Bewertung bekommt. Mit Gewichten, die abschwächend auf die aktuelle Ausgabe wirken, wird
dementsprechend entgegengesetzt verfahren. Die Belohnung und Bestrafung äußert sich in einer
Erhöhung bzw. in einer Erniedrigung ihres Betrags.
(5) Falls kein Abbruchkriterium definiert ist bzw. ein gegebenes nicht erfüllt ist, wird
mit Schritt (1) fortgefahren. Anderenfalls ist der Lernvorgang beendet.
90
91
z.B. durch einen erfahrenen Operator bzw. durch ein Fuzzy-Conrol-System
http://fbim.fh-regensburg.de/~saj39122/public_html/feld/index.html
243
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.3.2 Vergleich Neuronale Netze mit Fuzzy-Systemen in Hinblick auf
Schätzungen zu Ein-/Ausgabefunktionen (Regeln)
1. Vergleich Neuronale Netze mit Fuzzy-Systemen
Neuronale Netze und Fuzzy-Systeme schätzen Ein-/Ausgabefunktionen und
verhalten sich wie assoziative Speicher. Sie sind an kein bestimmtes Modell
gebunden. Sie fordern keine mathematische Beschreibung, wie die Ausgabe von der
Eingabe abhängt und lernen an Beispielen. Sie verwenden numerische Ansätze.
Neuronale Netze und Fuzzy-Systeme unterscheiden sich in der Art, wie sie die
Beispieldaten zur Schätzung benutzen. Das neuronale Feedforward-Netz ermittelt in
der Lernphase durch umfangreiche Iterationen mit Beispieldaten das dynamische
Systemverhalten. Das Fuzzy-System verlangt nur das (teilweise) Ausfüllen einer
linguistischen Regel-Matrix. Bei der Konstruktion des Systems können einige
numerische Eingaben (X) einigen numerischen Ausgaben (Y) zugeordnet sein.
2. Schätzen von Ein-/Ausgabe-Funktionen
Fuzzy-Systeme schätzen Funktionen mit Beispielen zu Fuzzy-Mengen ( Ai , Bi ) .
Neuronale Netze nutzen numerische Punkte ( xi , yi ) . Die beiden Formen zur Bildung
von Beispieldaten sind bestimmt durch Ein-/Ausgabe und bilden den Raum ( X  Y ) .
( Ai , Bi ) umfaßt eine Struktur, die der Meta-Regel „WENN Ai . DANN Bi “ vergleichbar
ist und eine Art linguistische Regel eines Expertensystems umfaß. Das FuzzySystem bestimmt jede linguistische Verknüpfung der Regel in eine numerische FAMAbbildung. Das Fuzzy Associative Memory (FAM92) verarbeitet numerische
Eingabedaten und erzeugt numerische Ausgaben.
Neuronale Netze und Fuzzy-Systeme schätzen Ein-/Ausgabe-Funktionen. Im
Gegensatz zu statistischen Abschätzungen werden Funktionen ohne ein
mathematisches Modell, das die Abhängigkeit der Ausgabe von der Eingabe
beschreibt, geschätzt. Es handelt sich um „Modell“-freie Abschätzungen. Sie können
aus Erfahrung lernen mit numerischen bzw. manchmal auch mit linguistischen
Beispieldaten.
3. Generieren von FAM-Regeln durch Adaptive FAM (AFAM) Systeme
Adaptive FAM (AFAM)93-Systeme generieren FAM-Regeln durch Trainieren.
92
93
vgl. 3.1.5
vgl. 3.1.5.4
244
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Applet: Abschätzen von Fuzzy-Regeln mit Hilfe eines Neuronalen Netzes für den
Fuzzy Truck-and-Trailer-Controler
4.1 Aufgabenstellung
Das Truck and Trailer-Applet demonstriert die Funktionsweise des „Adaptive FAM
Algorithmus“, der mit Hilfe eines Neuronalen Netzes Fuzzy-Regeln abschätzen kann.
Das System soll Fuzzy-Regeln finden, die die Steuerung eines Lastwagens mit
Anhänger ermöglichen. Der Laster wird durch den Fuzzy-Controller von einer durch
den Benutzer festgelegten Startposition rückwärts zu seinem Zielpunkt bewegt.
Abb.:
Zur Beschreibung des Systems wird herangezogen:
( x, y ) : Koordinaten des Endpunkts vom Anhänger
(u, v) : Koordinaten des Verbindungspunktes (Zugmaschine, Anhänger)
 t (phiTrailer): Winkel (-90 bis 270°), den der Anhänger mit der Horizontalen bildet
 c (phiCab): Winkel (-90 bis 90°), den die Mittelpunktlinie der Zugmaschine mit der
Mittelpunktlinie des Anhängers bildet
 : Steuerungswinkel (-30 bis 30°) zwischen Mittelpunktlinie der Zugmaschine und
Radeinschlag
 (Betha): Winkel, mit dem der Anhänger bei jedem Schritt angepaßt wird.
4.2 Funktionsweise des Applet (http://fbim.fh-regensburg.de/~saj39122/wangi/afam.htm)
245
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
3.2.3.3 Kombinationen Neuronaler Netze und Fuzzy-Regler (Neuro-Fuzzy)
1. Erlernen einer Regelbasis
Das Erlernen linguistischer Regeln und / oder Zugehörigkeitsfunktionen steht im
Mittelpunkt einer Kombination von Fuzzy-Reglern mit Neuronalen Netzen. "Erlernen"
bedeutet: Vollständige Erzeugung einer Regelbasis bzw. von Zugehörigkeitsfunktionen, die die entsprechenden linguistischen Terme auf der Grundlage
von Beispieldaten modellieren.
Das Erlernen einer Regelbasis setzt die vorläufige Definition von
Zugehörigkeitsfunktionen voraus und ist auf drei verschieden Arten möglich:
(1) Das System beginnt ohne Regeln und bildet solange Regeln bis die Lernaufgabe
erfüllt ist.
(2) Das System beginnt mit allen Regeln, die aufgrund der Aufteilung der beteiligten
Variablen gebildet werden können und entfernt ungeeignete Regeln aus der
Regelbasis.
(3) Das Systen beginnt mit einer (evtl. zufällig gewählten) Regelbasis, die aus eine
festen Anzahl von Regeln besteht. Im Laufe des Lernvorgangs werden Regeln
ausgetauscht. Bei jedem Austauschvorgang muß die Konsistenz der Regelbasis
neu überprüft werden.
2. Kombinationsformen
Bei der Kombination von Neuronalen Netzen und Fuzzy-Systemen lassen sich zwei
Ansätze unterscheiden:
Kooperative Systeme: Das NN arbeitet unabhängig vom Fuzzy-System. Die
Kopplung der beiden Systeme besteht darin, dass Parameter des Fuzzy-Systems
durch das NN bestimmt bzw. optimiert werden. Das so optimierte Fuzzy-System
arbeitet dann im Betrieb ohne das Neuronale Netz.
Hybride Systeme: Vereinigung der Prinzipien: Neuronales Netz und Fuzzy-System.
Interpretation als spezielles NN wie als Fuzzy-System möglich. Eine Trennung ist
nicht mehr möglich.
3. Kooperative Systeme
Ein Fuzzy-System ist bestimmt durch
- Definition der unscharfen Mengen, d.h. der Zugehörigkeitsfunktionen, die hinter den
linguistischen Variablen stehen
- Angabe der Regeln, die die linguistischen Begriffe miteinander verknüpfen.
Mengen und Regeln sind durch wenige Parameter beschreibbar. Ein kooperatives
Neuro-Fuzzy-System kann entweder unscharfe Mengen bei feststehenden Regeln
lernen (Fall 1) oder die Regeln bein unveränderlichen unscharfen Mengen (Fall 2).
246
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Fall 1: Zeigt ein Fuzzy-System mit vollständiger und fest vorgegebener Regelbasis
eine schlechte Leistung, dann führt man das auf eine nicht optimale Modellierung
der in den Regeln verwendeten unscharfen Mengen zurück. Die Konsequenz ist:
Anpassen der Parameter unscharfer Mengen in Richtung auf ein erwünschtes
Verhalten, d.h. Position und Gestalt der Zugehörigkeitsfunktion müssen geeignet
verändert werden. Dafür eignet sich ein modifiziertes BackpropagationLernverfahren, das anstelle der Gewichte die Lage und die Form der
Zugehörigkeitsfunktion verändert.
Es kann auch „on-line“ gelernt werden. Ein „on-line“ System lernt im lfd. Betrieb und
besitzt zu Beginn eine Regelbasis, die zunächst nur grob entworfene, unscharfe
Mengen verwendet. Während das System arbeitet, wird seine Leistung bewertet.
Weicht sie von der gewünschten Leisunbg erheblich ab, ist das Anlaß für eine
Fehlerkorrektur, z.B. nach dem Backpropagation-Verfahren.
Fall 2: Finden optimaler Regeln bei fest vorgegebenen unscharfen Mengen.
Geeignet sind hier bspw. selbstorganisierende Karten. Wie bei einer festen
Lernaufgabe wird dem Netz zunächst ein großes Sortiment an Beispielen vorgelegt.
Erst nach Abschluß der Trainingsphase werden in einem gesonderten
Rechenverfahren die gefunden Regelhäufigkeiten mit Hilfe der vorgegebenen
unscharfen Mengen ausgedrückt. Dadurch gewinnt das System ohne Vorwissen eine
Regelbasis.
On-line kann sogar mit Regeloptimierung gelernt werden. Allerdings ist ein solches
Verfahren nur praktikabel, wenn ein Versagen des Systems keinen allzu großen
Schaden verursacht, oder wenn man das System statt am echten Objekt an einer
Simulation üben läßt. Ein „on-line“ System kann weiterlernen und sich so an
Änderungen der Aufgabe anpassen. In diesem Fall werden die zur Optimierung
herangezogenen Neuronalen Netze (oder neuronalen Lernverfahren) nicht, wie sonst
üblich, nach Abschluß des Trainings aus dem System entfernt.
4. Hybride Systeme
Hybride Ansätze verschmelzen das Fuzzy System mit dem Neuronalen Netz.
Zu den wesentlichen Eigenschaften dieses Ansatzes zählen:
- Wissen wird in transparenten Regeln gespeichert.
- Verwendung linguistischer Ausdrücke
- Lernfähigkeit
247
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
x
r1
y
r2
r3
r4
r5
z
klein
mittel
groß
Abb.: Hybrides Neuro-Fuzzy-System nach dem NEFCON-Modell. Die Verbindungen zwischen den Neuronen
eintsprechen unscharfen Mengen. Durch die Strichstärke der Verbindungen wird die Zugehörigkeit zu einer
bestimmten Fuzzy-Menge ausgedrückt. Die Neuronen der Eingabeschicht entsprechen den Eingangsgrößen, die
der inneren Schicht Fuzzy-Regeln, die der Ausgangsschicht den Ausgangsgrößen. Regel r1 lautet bspw.: „Wenn
x klein ist und y groß, dann ist z mittel.
3.2.3.4 Neuro-FuzzyHybride
3.2.3.4.1 NEFCON bzw. NEFCLASS
1. Fuzzy Perzeptron
Das Fuzzy-Perzeptron ist ählich wie ein Multi-Layer-Perzeptron aufgebaut. Dabei
nutzt man aus, dass die Verarbeitung innerhalb des Fuzzy-Systems in zwei Schritten
erfolgt:
- Auswertung der Regeln (Inferenz)
- Vereinigung dieser Auswertung (Komposition)
Anstelle der Gewichte der einzelnen Verbindungen treten beim Fuzzy-Perzeptron die
unscharfen Mengen. Anstelle der gewichteten Summe und der Aktivierungsfunktion
tritt bei den Neuronen in der inneren Schicht die Fuzzyfizierung und die Inferenz, bei
den Neuronen der Ausgangsschicht die Komposition und die Defuzzyfizierung.
Der Lernalgorithmus zur Anpassung der Fuzzy-Mengen beruht auf einer Variation
des Backpropagation-Algorithmus. Ähnlich wie bei kooperativen Systemen müssen
folgende Einschränkungen getroffen werden:
- Unscharfe Mengen dürfen sich nicht in einen Bereich verschieben, der nicht mehr der Interpretation
des linguistischen Werts entspricht.
- Sicherstellen durch Kopplung von Verbindungen, dass anfangs gleiche unscharfe Mengen während
des Lernprozesses sich nicht unterschiedlich entwickeln. (Die Kopplung ist in Abb. durch Ringe um
die gekoppelten Verbindungen dargestellt.)
- Die entstehende Fehlerfunktion muß differenzierbar sein. Deshalb dürfen für Fuzzy-Mengen nur
differenzierbare Zugehörigkeitsfunktionen verwendet werden (vorzugsweise die Gaussche
Glockenkurve). Auch die Verfahren zur Inferenz und zur Komposition müssen durch Verfahren
ersetzt werden, die die Differenzierbarkeit der Fehlerfunktion aufrecht erhalten. Daher wird anstelle
der Minimumsbildung bei der Inferenz die Produktbildung verwendet. Die Maximumsbildung bei der
Komposition und die anschließende Deffuzzyfizierung wird durch einen Regler des Sugeno-Typs
248
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
ersetzt. Bei einem Regler des Sugeno-Typs handelt es sich um eine Einheit, die direkt aus den
Werten der Inferenzbildung mit Hilfe einer Funktion einen Ausgangswert ermittelt. Die
Defuzzyfizierung ist dann nicht mehr notendig.
x1
x1
r1
x2
x2
r2
r3
r4
r5
r1
r2
1
y
r3
1
c1
r4
1
1
r5
1
c2
Abb.: Neuro-Fuzzy Syteme, die von einem Fuzzy Perzeptron abgeleitet sind
2. Erlernen der Fuzzy-Regeln
Für das Erlernen der Fuzzy-Regeln stehen zwei Methoden zur Verfügung:
1. Man beginnt ohne Regeln und fügt eine Regel nach der anderen hinzu bis das
System eine zufriedenstellende Leistung erbringt. Die Methode ist für onlineLernen nicht anwendbar, da man in der Lernphase Regeln Regeln durch Raten
einfügen und später evtl. aufwendig nachbessern müsste.
2. Man beginnt mit einer Basis aus allen möglichen erzeugbaren Regeln und streicht
nicht benötigte nacheinander wieder heraus. Diese Methode ist für online
lernende Modelle geeignet. Die Komplexität eines solchen Systems steigt jedoch
rasch mit der Anzahl der Eingangs-, der Ausgangsvariablen und der Anzahl der
Fuzzy-Mengen,da für jede Kombination eine Regel generiert werden muß. Bspw.
existieren für zwei Eingangsvariablen, eine Ausgangsvariable und eine FuzzyPartitionierung bereits 512 Regeln. Erhöht man die Zahl der Eingangsvariablen
auf 4, dann sind es bereits 32768 Regeln. Die Komplexität steigt also somit
exponentiell mit der Anzahl der Freiheitsgrade. Die Regelbasis ist nur für kleine
Systeme vollständig erlernbar. In vielen Fällen lassen sich jedoch für einen Teil
des Problems Regeln angeben, so dass nur die fehlenden Regeln hinzugefügt
werden müssen.
3. Das NEFCON-Modell
Fuzzy-Fehler-Propagierung. Das NEFCON94-Modell benutzt folgende Variante des
Baclpropagation-Verfahrens: Es lernt online durch verstärkendes Lernen und
verwendet dazu einen Fuzzy-Fehler. Der Benutzer gibt eine Reihe von Regeln an,
94
NEural Fuzzy Controller
249
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
die beschreiben, wann die Leistung des Systems gut und wann sie schlecht ist, z.B.:
Wenn die Temperatur angenehm ist, dann ist die Leistung hoch. Diese Regeln
werden die die eines Fuzzy-Reglers ausgewertet und zur Anpassung der SystemParameter (der Fuzzy-Mengen) herangezogen. Der Fuzzy-Fehler wird dabei als
(negatives) Verstärkungssignal genutzt und wie beim Backpropagation-Algorithmus
(beginnend bei der Ausgabeschicht) rückwärts durch das Netz propagiert. Dabei wird
es von den Regeleinheiten lokal zur Adaption der Fuzzy-Mengen genutzt.
Für jede Zugehörigkeitsfunktion muß in Abhängigkeit des Fuzzy-Fehlers ermittelt
werden, ob und wie sie zu verändern ist. Dazu werden nur soche
Zugehörigkeitsfunktion verändert, die mit den Regeleinheiten in Verbindung stehen,
deren Aktivierung ungleich null ist95.
Verstärkendes bzw. bestrafendes Lernen: Zur Realisierung von verstärkendem
Lernen muß entschieden werden, ob eine Regel für ihre Reaktion auf den aktuellen
Zustand zu belohnen oder zu bestrafen ist. Mit der Belohnung soll erreicht werden,
dass in einer gleichen Situation die Regel einen stärkeren Beitrag zur Regelaktion
leistet und sie somit positiv beeinflusstEine Bestrafung soll den Beitrag einer Regel abschwächen, um die Regelaktion
weniger negativ zu beeinflussen.
IF
THEN
1
oneu
oalt
belohnen
x
yalt yneu
IF
THEN
1
oalt
oneu
bestrafen
x
yneu yalt
Abb.: Belohnen und Bestrafen von Fuzzy-Mengen
95 d.h. Regeln, die in der momentanen Situation einen Erfüllungsgrad von 0 aufweisen, lösen keine Adaption an
den Fuzzy-Mengen ihrer Prämissen und Konklusionen aus
250
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Das NEFCLASS-Modell
Dieses Modell ist ebenfalls von dem Fuzzy-Perzeptron abgeleitet, verzichtet aber auf
die Fuzzy-Gewichte in der zweiten Verbindungsebene. Die in dem Modell
eingesetzten Fuzzy-Regeln sind von der Form:
IF x1 IS A1 AND … AND xn IS An THEN class C1
Ai: Linguistische Terme
Die Konklusion der Regel besteht nur in einer Klassenzuteilung. NEFCLASS lernt
eine Regelbasis durch sukzessives Hinzufügen von Regeln, d.h. Knoten der inneren
Schicht. Anschließend werden die verschiedenen Fuzzy Mengen optimiert.
Idealerweise erhält man so einen Klassifikator, der in Form linguistischer Regeln
interpretiert werden kann.
NEFCLASS verwendet ein überwachtes Lernverfahren und benötigt eine feste
Lernaufgabe.
251
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4. Konzept und Arbeitsweise genetischer Algorithmen
4.1 Evolution und Genetik
1. Lernprozeß Evolution
Die Natur hat es geschafft, aus Milliarden denkbarer Eiweißmoleküle gerade
diejenigen herauszufinden, die organisches Leben ermöglichen. Die Evolution hat
schließlich zur Entstehung der DNS (Desoxyribonucleinsäure) geführt, die allem
Leben (auf der Erde) als Bauplan zugrundeliegt. Die DNS eines Menschen enthält
etwa 3,8 Milliarden Nukleotidbasen96. Die Entwickling kann kein reiner Zufallsprozeß
gewesen sein. Evolution kann vielmehr nur durch einen kollektiven Lernprozeß
erklärt werden, wobei erfolgreiche Innovationen „gespeichert“ und erfolglose
vergessen werden.
Die Evolution stützt sich auf das Prinzip der natürlichen Selektion und die Vererbung
von Eigenschaften und Merkmalen. Unter Selektion versteht man das Fortbestehen
der Individuen, die am besten an die Umwelt angepaßt sind und das Aussterben der
schlechter angepaßten Individuen. Die stärkeren Individuen haben die Möglichkeit,
sich fortzupflanzen und ihre Eigenschaften an die nächste Generation
weiterzugeben.
2. Chromosomen und Gene
Chromosome sind Träger der Gene, der kompletten Erbinformation eines
Lebewesens. Die Chromosomen bestehen aus Nukleinsäuren und Proteinen. Die
wichtigste Nukleinsäure ist die DNS. Gene stellen bestimmte Abschnitte der DNS
dar. Am Aufbau der DNS sind 4 Basen beteiligt: Adenin (A), Cytosin (C), Guamin
(G), Thymin (T). Diese Basen bilden die Grundlage für die gesamte genetische
Information eines Lebewesens, die als Sequenz der Buchstaben eines genetischen
Alphabets A, C, G und T wie bspw. in „...-C-C-T-G-A-G-G-A-G-...“ notiert werden
kann. Das bezeichnet man als den sog. Genetischen Code, der als Programm
verstanden werden kann, das die Entwickling eines neuen Individuums festlegt.
3. Grundlegende Mechanismen der Vererbung
Es liegt bspw. das Chromosom g mit 10 Genen g1 bis g10 vor.
g1
g2
g3
g4
g5
g6
g7
g8
g9
g10
Abb.4.1-1: Chromsom mit 10 Genen
Jedes Gen ist durch seine Position im Chromosom bestimmt und kontrolliert eine
ganz bestimmte Eigenschaft bzw. ein bestimmtes Merkmal eines Lebewesens wie
bspw. seine Augenfarbe. So hat das Gen g4 bspw, den Wert „blau“.
96
Kettenglieder der DNS
252
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Die Gesamtheit der Gene g = (g1, g2, g3, g4, g5, g6, g7, g8, g9, g10) bezeichnet man als
den Genotyp des Individuums und meint damit das Erbbild. Das Individuum selbst,
der sog. Phänotyp, ist die konkrete Ausprägung der Merkmale. Der Phänotyp muß
sich im Kampf um dasein behaupten.
Neue
Individuen
(bzw.
neue
Chromosomen)
entstehen
durch
Rekombinationsverfahren. Das vorherrschende Verfahren in der Natur ist die
Paarung, die zur Kreuzung der Erbinformation und damit zu neuen Ausprägungen
führt.
4.2 Prinzip genetischer Algorithmen
Zufällig erzeugte Lösungen des Suchraums der Problemstellung bilden die
Ausganspopulation. Sie wird im Verlauf eines Genetischen Algorithmus durch einen
Evolutionsprozeß verbessert. Bei der Suche nach besseren Lösungen kombinieren
Genetische Algorithmen das Überleben der tauglichen Individuen einer Population
mit einem Austausch der genetischen Information zwischen den einzelnen
Individuen. Die Individuen werden mit einer ihrer relativen Tauglichkeit (Fitneß)
entsprechenden Wahrscheinlichkeit ausgewählt. Besonders taugliche Individuen
erhalten bevorzugt die Möglichkeit zur Weitergabe der Lösungsinformation („survival
of the fitest“). GA führen einen zufallsgesteuerten Suchprozeß durch, der durch die
Nutzung populationsspezifischer Eigenschaften gesteuert wird.
Der evolutionäre Such- und Optimierungsprozeß beruht auf 3 grundlegenden
Prinzipien: Auslese (Selektion), Veränderung (Rekombination, Mutation) und
Vervielfachung (Reproduktion) von Individuen. Die Grundprinzipien werden bei
genetischen Algorithmen durch spezielle „Genmanipulationen“ verwirklicht. Das
erfolgt natürlich nicht auf biologischen Chromosomen, sondern auf „Strings“, die bei
„GA“ für die Problemlösungen (Gesamtheit der Individuen) stehen. In der Regel sind
die Strings „binär“ kodiert, d.h. Jedem Gen einspricht ein Bitwert (Allel) 0 oder 1.
253
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4.3 Phasen eines genetischen Suchalgorithmus
4.3.1 Modellierung
Durch Bestimmen einer geeigneten Codierung werden Lösungen des Suchraums im
Rahmen einer geeigneten Abbildung über Zeichenketten (häufig Bitstrings)
modelliert. Die Strings, die zur Darstellung der zulässigen Lösungen gebildet werden,
sind die Genotypen einer Population. Die zulässigen Lösungen bezeichnet man als
Phänotypen. Ein Phänotyp stellt das äußere Erscheinungsbild eines Individuums
dar, das der Informationsgehalt des Genotyps durch Dekodierung bestimmt.
4.3.2 Konfigurierung
1. Genetische Operatoren
Elemetare genetische Operatoren sind:
1.1 Selektion
Sie besteht in der Auswahl von Individuen, gemessen anhand ihres
Tauglichkeitsgrads. Alle ausgewählten Individuen werden bei der Generierung von
Nachkommen berücksichtigt.
1.2 Crossover
Elternpaare werden zufällig aus ausgewählten Individuen gebildet und daraufhin
Nachkommen generiert, die eine genotypische Ähnlichkeit zu den jeweiligen Eltern
aufweisen. Die Ähnlichkeit der Individuen wird durch einen Informationsaustauch
zwischen den Genotypen der Eltern erreicht.
Aus 2 Genozypen werden wieder Kinder (Crossover) gebildet, die dann in eine neue
Pupulation eingetragen werden. Die alte Population (Eltern-) bleibt unverändert.
Beim Crossover tauschen die Elterm Teile ihres Gen-Strings miteinander aus. Die
Stelle, ab der getauscht wird, wird durch Zufall ermittelt. Dazu wird die Zeichenkette
des einen Eltermteils an beliebiger Stelle getrennt. An der gleichen Stelle wird auch
die Zeichenkette des anderen Elternteils gespalten. Die 4 Teilstücke werden über
Kreuz (Crossover) verbunden. Der vordere Teil des einen mit dem hinteren Teil des
anderen Strings. Die so erzeugten „Kinder“ werden dann in die Population der
Nachkommen eingetragen.
1.3 Mutation
Sie tritt nur „gelegentlich“ bei der Verarbeitung der Zeichenkette auf und bewirkt eine
kleine Veränderung des Genotyps. Der Zweck der Mutation besteht in der
Vermeidung einer vorzeitigen Spezialisierung der Individuen einer Population.
254
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Die Mutation verändert willkürlich Gen-Strings. Startpopulationen werden mit dem
Zufallszahlengenerator gebildet. Es kann vorkommen, daß in der kompletten
Population kein Gen-String existiert, der einer vom Problem her vorgegebenen
Bedingung entspricht. Selektion und Crossover können Zeichenketten manipulieren,
nicht an entscheidender Stelle zugleich verändern. Eine zu häufige Mutation ist aber
schädlich, da sie ja auch „gute Strings“ zum Schlechten hin verändern kann. Daher
läßt man die Mutation mit nur einer geringen Wahrscheinlichkeit auftreten (z.B. 0.1%
aller Fortpflanzungen). Welches Gen des Gen-String geändert wird, bleibt dem Zufall
überlassen.
Nach Selektion, Crossover und Mutation besitzt die Nachkommen-Population zwei
neue Mitglieder. Da die Populationsgröße konstant bleiben muß, wird diese Kette
von Operatoren eines GA so oft durchgeführt, bis die neue Population vollständig mit
Kinder besetzt ist. Damit ist ein Iterationsschritt oder auch ein Generations-wechsel
beendet und die Eltern-Population wird nicht mehr benötigt. Die Nachkom-menPopulation wird zur Elternpopulation. Für jedes Element der Population wird wieder
die Fitneß ermittelt. Danach bildet man nach der beschriebenen Weise eine neue
Nachkommen-Population, etc.
Damit ergibt sich die folgende allgemeine Grundstruktur eines genetischen
Algorithmus, die in zahlreichen Varianten auftauchen kann:
Erzeuge eine Anfangspopulation von Individuen P := {p}
repeat
Bewerte jedes Individuum der Population P
Selektiere Individuen zur Reproduktion (Crossover)
Erzeuge neue Population P von Individuen
until
Abbruchkriterium
Gib Individuum pmax mit maximaler Fitneß aus
2. Optimierung mit genetischen Algorithmen
Genetische Algorithmen sollen im Raum zulässiger Lösungen diejenigen
herausfinden, die hinsichtlich einer gegebenen Zielfunktion die günstigsten
Eigenschaften besitzen. Die Suche nach dem Optimum führen genetische
Algorithmen in mehreren Schritten aus:
(1) Festlegen einer Zielfunktion
Sie ergibt sich direkt aus dem zu optimierenden Problem (Phänotyp des Problems).
Außerdem wird das Abbruchkriterium bestimmt: Entweder nach einer festzulegenden
anzahl von Iterationsschritten (Generationen) oder nach dem Auffinden einer
zufriedenstellenden Lösung.
(2) Kodierung und Festlegung des genetischen Suchraums
Genetische Algorithmen arbeiten mit einer Poulation von n Individuen. Zu jedem
Individuum sind zulässige Lösungswerte für die Variablen des Optimierungsproblems kodiert. Jedes Individuum besteht aus n Genen (Vektor mit n Komponenten). Bei genetischen Algorithmen wird häufig binär kodiert, d.h. jedem Gen ein
Bitwert (Allel) 0 oder 1 zugewiesen.
(3) Erzeugen einer Startpopulation binär codierter Lösungen auf zufällige Weise
Die Ausgangssituation wird durch eine mit dem Zufallsgenerator benötigte Anzahl
von Gen-Strings festgelegt.
(4) Bewertung der Überlebensfähigkeit der einzelnen Individuen unter den
gegebenen Umweltbedungungen
255
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Alle Nebenbedingungen und die Zielfunktion müssen in der Fitneßfunktion
berücksichtigt werden.
(5) Selektion zweier Elternindividuen mit fitneßproportionaler Wahrscheinlichkeit
Die Selektionswahrscheinlichkeit eines Individuums ergibt sich aus dem Verhältnis
des individuellen Fitneßwerts zur Summe alleer Fitneßwerte einer Generation. Die
Auswahl realisiert das Prinzip „Survival of the fittest“. Individuen mit einem besseren
Fitneßfunktionswert erhalten eine größere Wahrscheinlichkeit Nachkommen zu
erzeugen als weniger geeignete Individuen.
Die Selektion bestimmt, welche Mitglieder der Population (Startpopulation) sich
fortpflanzen dürfen. Zur Vermeidung von Inzucht ist aber auch weniger geeigneten
Mitgliedern (im bescheidenen Maße) die Fortpflanzung erlaubt. Eine gute Selektion
erreicht man mit dem Roulette-Verfahren. Dieses Bewirkt, daß die
Wahrscheinlichkeit mit der ein Genstring bei der Selektion ausgewählt wird,
proportional zu seiner Güte ist. Die Anzahl der Fächer im Roulette-Rad entspricht der
Anzahl seiner Genotypen in einer Population. Der Genotyp mit höchster Qualität
bekommt das größte Feld zugewiesen. Die Aufteilung geht abwärts bis zum
schlechtesten Gen-String, der das kleinste Feld zugewiesen bekommt.
Genotyp 4
Genotyp 5
Genotyp 1
Genotyp 2
Genotyp 3
Genotyp 6
Abb. 4.3-1: Roulette-Rad
Je höher die Tauglichkeit eines Lebewesens ist, desto breiter ist das Fach und umso
wahrscheinlicher ist es, daß die Roulette-Kugel in einem solchen Fach hängenbleibt.
Alle Tauglichkeitswerte werden aufsummiert und daraus der mittlere Gütewert
ermittelt. Ein guten Lebewesen (Genotyp) erzeugt einen Gütewert über dem
Mittelwert. Die Gesamtgüte geteilt durch den Gütewert eines Genotyps ergibt dessen
Wahrscheinlichkeit. Mit einem Zufallszahlengenerator kann dann die Selektion für
einen Genotyp vorgenommen werden.
(6) Crossover und Mutation
Mit der vorher festgelegten Crossover-Rate (Rekombinatinswahrscheinlichkeit,
empfohlen wird ein Wert zwischen 0.6 und 1) wird bestimmt, ob überhaupt ein
Crossover stattfinden soll. Dann wird gleichverteilt-zufällig ein für beide Elternindividuen identischer Crossover-Punkt bestimmt. Durch Tausch der Teilstücke
werden Nachkommen erzeugt.
Gene werden nur mit einer sehr geringen Wahrscheinlichkeit (Mutationsrate, beliebte
Werte sind 0.001 bzw. 0.01) invertiert. Die Mutation soll dem frühzeitigen
Konvergieren des genetischen Algorithmus entgegenwirken.
(7) Wiederholung der Schritte (5) und (6) bis die Nachfolgegeneration die Größe der
Elterngeneration erreicht hat bzw. der Schritte ab Schritt (4), bis das
Abbruchkriterium erfüllt ist. Anderenfalls endet der Algorithmus und die Ergebnisse
werden ausgegeben.
256
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
In der Regel wird die Optimierung nach einer vorher festgelegten, als ausreichend
angesehen Anzahl von Generationen abgebrochen. Wählt man aus der letzten
Population den Genotyp aus, der die höchste Güte besitzt, hat man meistens ein
brauchbares Ergebnis der Optimierung. Noch besser ist es, bei jeder erzeugten
Population den jeweils besten Genotyp herauszusuchen und festzuhalten. Wird in
einer späteren Generation eine besserer Genotyp gefunden, so wird dieser
gespeichert. Eine Alternative besteht darin, sich ebenfalls den besten Genotyp einer
Population zu merken und über eine bestimmte Anzahl von Populationen zu
beobachten. Stellt man dabei keine Verbesserung des jeweiligen besten Genstrings
fest, dann kann die Optimierung beendet werden.
3. Einfacher genetischer Algorithmus (Simple GA)
begin
Festlegen der Zielfunktion
Bestimmen eines Abbruchkriteriums
Codierung
Festelegen der genetischen Operationen
Erzeugen der Startpopulation binär codierter Lösungen auf zufällige Weise
DO
DO
Selektion zweier Elternindividuen mit fitneßproportionaler
Wahrscheinlichkeit
Crossover mit Wahrscheinlichkeit in Höher der Crossover-Rate
Mutation einzelner Bits der so entstandenen Nachkommen mit
Wahrscheinlichkeit in Höhe der Mutationsrate
Übername beider Nachkommen in die Nachfolgegeneration
Aktuelle Generation = Nachfolgegeneration
WHILE Nachfolgegeneration unvollständig
WHILE Abbruchkriterium noch nicht erfüllt
end
4.3.3 Die Realisierungsphase
Sie umfaßt alle Arbeiten zur Umsetzung des Entwurfs in ein lauffähiges
Optimierungsverfahren (Implementierung, Bestimmen von Werten für externe
Parameter).
Bsp.: Bestimme das Maximum der Funktion f(x)=x2 für x-Werte, die zwischen 0 und
31 liegen.
1. Codierung des Eingabebereichs 0..31 über einen binären String (durch eine 5 Bit
umfassende Binärzahl).
2. Zufällige Auswahl einer Ausgangspopulation.
3. Berechnung der Fitness.
4. Aus dem Roulette-Rad werden die aktuellen Elternpaare ermittelt, die die neue Population
erzeugen sollen.
Zeichenkette
Nr.
1
2
3
4
Summe
AnfangsPopulation
0 1 1 0 1
1 1 0 0 0
0 1 0 0 0
1 0 0 1 1
x-Wert
f(x)=x2
13
24
8
19
169
576
64
361
1170
257
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Durchschnitt
Max
293
576
Es wurden ermittelt:
„String 1“ wird einmal kopiert
„String 4“ wird einmal kopiert
„String 2“ wird zweimal kopiert
„String 3“ wird überhaupt nicht kopiert
5. Crossover
a) Die Zeichenketten werden zur Paarung zufällig ausgewählt
b) Ausgewählte Paare werden an zufällig ausgewählten Punkten gepaart.
Im vorliegenden Bsp. werden String 1 und String 2 an Punkt 4 gekreuzt, String
3 und String 4 an Punkt 2.
6. Mutation
Die Wahrscheinlichkeit für eine Mutation soll hier 0.001 sein. Über die 20
Bitpositionen ergibt das einen Erwartungswert vom 20 * 0.001 = 0.02 bits für eine
Mutation währen einer Generationenfolge. Hier würde keine Bitposition von einer
Änderung betroffen sein.
7. Test der neuen Population
Population
nach der Reproduktion
0 1 1 0.1
1 1 0 0.0
1 1.0 0 0
1 0.0 1 1
Partner
(zufällig
ausgew.)
2
1
4
3
Crossover
Punkt
Neue Population
x-Wert
f(x)=x2
169
576
64
361
0
1
1
1
12
25
27
16
144
625
729
256
1754
439
729
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
Implementierung97:
#include
#include
#include
#include
<stdlib.h>
<stdio.h>
<time.h>
<math.h>
// #define RAND_MAX 0x7FFFFFFF
#define random(num) (rand()%(num))
#define randomize() srand((unsigned)time(NULL))
#define
#define
#define
#define
#define
POPULATION_SIZE
CHROM_LENGTH
PCROSS
PMUT
MAX_GEN
10
4
0.6
0.050
50
struct population
{
int value;
unsigned char string[CHROM_LENGTH];
unsigned int fitness;
};
struct population pool [POPULATION_SIZE];
97
PR41010.CPP
258
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
struct population new_pool[POPULATION_SIZE];
int selected[POPULATION_SIZE];
int generations;
// select
select(double sum_fitness)
{
double r, parsum;
parsum = 0;
r = (double)(rand() % (int)sum_fitness);
for (int i = 0; i < POPULATION_SIZE, parsum <= r; i++)
parsum += pool[i].fitness;
return(-i);
}
flip(double prob)
{
double i;
i = ((double)rand()) / RAND_MAX;
if ((prob == 1.0) || (i < prob))
return (1);
else
return (0);
}
// crossover
void crossover(int parent1, int parent2, int child1, int child2)
{
int site;
if (flip(PCROSS))
site = random(CHROM_LENGTH);
else
site = CHROM_LENGTH - 1;
for (int i = 0; i < CHROM_LENGTH; i++)
{
if ((i <= site) || (site == 0))
{
new_pool[child1].string[i] = pool[parent1].string[i];
new_pool[child2].string[i] = pool[parent2].string[i];
}
else
{
new_pool[child1].string[i] = pool[parent2].string[i];
new_pool[child2].string[i] = pool[parent1].string[i];
}
}
}
// mutation
void mutation()
{
for (int i = 0; i < POPULATION_SIZE; i++)
{
for (int j = 0; j < CHROM_LENGTH; j++)
if (flip(PMUT))
pool[i].string[j] = ~new_pool[i].string[j] & 0x01;
else
pool[i].string[j] = new_pool[i].string[j] & 0x01;
}
}
// evaluate
259
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
evaluate(int value)
{
return(pow((double)value, 2.0));
}
// encode
// (kodiert einen Integer-Wert in eine binaere Zeichenkette)
void encode(int index, int value)
{
for (int i = 0; i < CHROM_LENGTH; i++)
pool[index].string[CHROM_LENGTH - 1 - i] = (value >> i) & 0x01;
}
// decode
// dekodiert eine binaere Zeichenkette in eine Ganzzahl
decode(int index)
{
int value = 0;
for (int i = 0; i < CHROM_LENGTH; i++)
value += (int)pow(2.0,(double) i) *
pool[index].string[CHROM_LENGTH - 1 - i];
return (value);
}
// initialize_population
// (erzeugt und initialisiert eine Population
void initialize_population()
{
randomize();
for (int i = 0; i < POPULATION_SIZE; i++)
encode(i,random(2^CHROM_LENGTH));
}
void statistics()
{
int i, j;
printf("\n; Generation: %d\n;SelectedStrings\n;",generations);
for (i = 0; i < POPULATION_SIZE; i++)
printf("%d", selected[i]);
printf("\n");
printf("\n;X\tf(x)\tNew_String\tX´");
for (i = 0; i < POPULATION_SIZE; i++)
{
printf("\n%d\t%u\t;", pool[i].value, pool[i].fitness);
for (j = 0; j < CHROM_LENGTH; j++)
printf("%d", pool[i].string[j]);
printf("\t\t%d",decode(i));
}
}
void main(void)
{
int i;
double sum_fitness, avg_fitness, old_avg_fitness;
generations = 1;
avg_fitness = 1;
initialize_population();
do
{
old_avg_fitness = avg_fitness;
sum_fitness
= 0;
// fitness evaluation
for (i=0; i < POPULATION_SIZE; i++)
260
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
{
pool[i].value
= decode(i);
pool[i].fitness = evaluate(pool[i].value);
sum_fitness
+= pool[i].fitness;
}
avg_fitness = sum_fitness / POPULATION_SIZE;
for (i = 0; i < POPULATION_SIZE; i++)
selected[i] = select(sum_fitness);
for (i = 0; i < POPULATION_SIZE; i = i + 2)
crossover(selected[i], selected[i+1],i,i+1);
mutation();
statistics();
printf("\nimprovement: %f\n", avg_fitness / old_avg_fitness);
}
while ((++generations < MAX_GEN) &&
((avg_fitness / old_avg_fitness) > 1.005) ||
((avg_fitness / old_avg_fitness) < 1.0));
}
4.3.4 Verfahrensbewertung bzw. Verfahrensverbesserung
Im Anschluß an eine Realisierung des Algorithmus sollte eine Verfahrensbewertung
erfolgen
sowie
eine
Verfahrensverbesserung,
die
sich
von
einer
Verfahrenserweiterung bis hin zur erneuten Abarbeitung aller Phasen der
Entwicklung eines GA erstrecken kann.
4.3.5 Güte eines genetischen Algorithmus
Zu Beurteilung eines Genetischen Algorithmus betrachtet man meist sein
Konvergenzverhalten
sowie
seine
-geschwindigkeit.
Bezüglich
des
Konvergenzverhaltens vergleicht man die Qualität, also die Zielfunktionswerte, der
von einen Genetischen Algorithmus berechneten Lösungen mit denen anderer
Verfahren. Reicht zur Lösung des Problems die Erzeugung eines guten Individuums,
so wählt man natürlich das beste Individuum der Population als Vergleichswert. Ist
man jedoch an einer guten Gesamtpopulation interessiert, so vergleicht man die
mittlere Fitneß aller Mitglieder der Population mit der bereits bekannten Lösung. Mit
dem Begriff der Konvergenzgeschwindigkeit wird bewertet, wie schnell, das heißt
nach Ablauf wie vieler Generationen, Lösungen bestimmter Qualität hervorgebracht
werden. Zur Darstellung der Konvergenzgeschwindigkeit werden Diagramme
benutzt, in denen die erreichte Lösungsqualität in Abhängigkeit der Generationen
dargestellt wird.
Insgesamt scheint die Modellierung des Evolutionsprozesses ein gelungener
Kompromiß zwischen rechenzeitintensiven Verfahren, die das Auffinden von
optimalen Lösungen garantieren, und einfachen deterministischen Heuristiken zu
sein, die zwar sehr schnell, aber leider häufig schlechte Lösungen produzieren.
Durch die Festlegung der Anzahl der Generationen kann sich der Benutzer eines
Genetischen Algorithmus zwischen beiden Extremen entscheiden. Erlaubt er nur
eine kleine Anzahl von Generationen, werden nur relativ schlechte Lösungen
gefunden, während eine große Generationenzahl das Auffinden fast optimaler
Lösungen wahrscheinlich macht. Die stochastische Beeinflussung der
deterministischen Operatoren eines Genetischen Algorithmus erlaubt die
261
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Überwindung lokaler Optima in Suchraum, und die Organisation der Suche mittels
einer Population von Punkten im Suchraum (und nicht eines einzelnen Punktes)
verkleinert die Gefahr, daß keiner der Suchpunkte in der Lage ist, einen
verbesserten Nachkommen zu produzieren. Genetische Algorithmen, so scheint es,
sind auf dem besten Wege, zumindest die Bearbeitung der großen Klasse der
kombinatorischen Optimierungsprobleme zu (r)evolutionieren.
262
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
4.4 Anwendungen
4.4.1 Ein genetischer Algorithmus für das Problem des
Handlungsreisenden
1. Aufgabenstellung
Das Travelling-Salesman-Problem - ein Reisender sucht die kürzeste Rundtour
durch verschiedene Städte - läßt sich zwar ganz einfach beschreiben und
anschaulich darstellen, doch ist es nach wie vor Forschungsgegenstand ganzer
Expertengruppen. Der Grund hierfür liegt auf der Hand: Bis heute ist kein
Algorithmus bekannt, der weniger als exponentiellen Aufwand benötigt, um die
optimale Rundreise zu ermitteln. In gewisser Hinsicht kann das TSP sogar als
klassisches
Grundproblem
der
kombinatorischen
Optimierung
(z.B.
Reihenfolgenprobleme) angesehen werden, was den repräsentativen Umgang mit
Lösungsalgorithmen,
gerade
auf
Hinblick auf
komplizierter gestaltete
Alltagsprobleme, um so interessanter macht.
2. Repräsentation des Lösungsraums und Crossover-Operatoren
Die Repräsentation des Lösungsraums erfolgt durch eine Zeichenkette, die die
Identifikation zu den Städten der Rundreise (Knotennummern) angibt, z.B.:
1 2 3 4 5 6 7 8 9 10
In dieser Zeichenkette liegt eine aufsteigende Ordnung der Knotennummern zu
bspw. 10 Städten vor, die in der Regeln nicht die kürzeste Rundreise repräsentiert.
Zur Bildung geeigneter Kandidaten füe eine kürzeste Rundreise stehen eine Reihe
von Varianten des Crossover bereit bereit (parallel matched crossover (PMX), order
crossover (OX) und cycle crossover (CX))98.
Beim CX-Operator wird bspw. bezogen auf 2 zu kombinierende Touren
A = 9 8 2 1 7 4 5 10 6 3
B = 1 2 3 4 5 6 7 8 9 10
folgendes Auswahlverfahren getroffen:
Gestartet wird in A von links und dann die folgende Stadt vom ersten Elternteil
ausgewählt:
A‘ = 9 - - - - - - - - Die Auswahl der 9 erfordert die Wahl von 1 aus dem zweiten Elternteil und bestimmt
die „1“ an Postion 4 in A‘:
98
vgl. David E. Goldberg: Genetic Algorithms in Search, Optimization, and Machine Learning, Addison-Wesley
Publishing Company, Reading / Massachusetts, ...
263
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
A‘ = 9 - - 1 - - - - - B = 1 2 3 4 5 6 7 8 9 10
Unter der 1 in A‘ steht 4, in A wird als nächste Größe 4 ausgesucht:
A‘ = 9 - - 1 - 4 - - - B = 1 2 3 4 5 6 7 8 9 10
Unter der 4 in A‘ steht eine 6, sie wird in A‘ als nächste Größe bestimmt:
A‘ = 9 - - 1 - 4 - - 6 B = 1 2 3 4 5 6 7 8 9 10
Jetzt käme 9 an die Reihe, das führt aber zu einem Kurzzyklus. Deshalb werden die
restlichen Stringpositionen einfach getauscht:
A‘ = 9 2 3 1 5 4 7 8 6 10
3. Selektion
Neben dem Crossover beeinflußt der Selektionsoperator das Verhalten eines
Genetischen Algorithmus wesentlich. Zu diesem Zweck werden Individuen hoher
Qualität häufiger zur Rekombination ausgewählt. Sie sollen öfter Nachkommen
generieren, die deren gute Eigenschaften erben. Man sagt auch, daß die Population
durch die Selektion einem Lernprozeß unterworfen wird, da mit zunehmender
Generationenzahl der Anteil der qualitativ guten Individuen ansteigt. Aber Vorsicht:
Eine zu häufige Wahl desselben Individuums bewirkt eine schnelle Durchsetzung der
gesamte Population mit dem genetischen Material nur eines Individuums. Dieses
kommt in etwa dem Effekt der Inzucht gleich: Durch den Verlust der genetischen
Vielfalt innerhalb einer Population wird eine Qualitätssteigerung durch die Evolution
unmöglich. Die Population stagniert dann häufig in einem schlechten lokalen
Minimum. Außerdem sollte berechnet werden, daß auchqualitativ schlechte
Individuen genetisches Material enthalten können, welches beim Crossover mit
guten Lösungen zu Evolutionsschüben führt. Gerade die Tatsache, daß auch
schlechte Individuen unverzichtbar für die evolutionäre Entwicklung einer Population
sind, ist von vielen Autoren Genetischer Algorithmen beobachtet worden.
Zum Schutz vor diesen Problemen werden nur Kinder in die Population
aufgenommen, die sich von der Elternpopulation durch mindestens ein Merkmal
unterscheiden. Der Fairneß halber werden aber trotzdem Nachkommen einer
Generation bevorzugt, die die gleichen Merkmale haben wie die Eltern, um eine
gewisse Dynamik zu gewährleisten und den "Circle of Life" nachzubilden. Damit
nicht alle Individuen miteinander verglichen werden müssen, wird angenommen, daß
Lösungen mit verschiedener Fitneß auch verschiedene Gencodes besitzen.
4. Fitneß
Allgemein wird unter Fitneß die Anpassung von Individuen an ihre Umwelt
verstanden. Klar ist, daß zur Lösung von kombinatorischen Optimierungsaufgaben
Individuen gefragt sind, deren Zielfunktionswert - im Beispiel die Länge der
zurückgelegten Strecke - optimal ist. Hier bietet es sich an, eine minimale Fitneß als
264
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
erstrebenswert zu erachten, da die Länge der gefahrenen Rundreise ein exzellenter
Repräsentant dafür ist.
5. Applet mit einem genetischen Algorithmus zum Rundreiseproblem
http://fbim.fh-regensburg.de/~saj39122/dkst/Index.htm
4.4.2 Ein genetischer Algorithmus für das Packproblem
1. Aufgabenstellung99
Ein Kasten (Rechteck) ist so mit einer vorgegebenen Anzahl von Kästchen
(Rechtecken) aufzufüllen, daß die Stapeldichte möglichst groß, der Stapel möglichst
klein ist.
2. Problembeschreibung
Mathematiker reihen diese Probleme in die Klasse der kombinatorischen
Optimierungsprobleme. Sie faßt Aufgaben zusammen, deren Lösung das
Durchsuchen eines riesigen, vordefinierten Suchraums erfordert. Gesucht wird nach
Lösungen, die bzgl. einer Zielfunktion besonders niedere oder hohe Werte liefern
(z.B. TSP-Problem100). Beim Packproblem ist das Ziel: Minimierung der Stapelhöhe.
Zunächst ist der Suchraum, in dem dieses Ziel erreicht werden soll, „unendlich“ groß:
Man kann, wenn irgendwo nicht zu füllende Lücken auftreten, Bausteine beliebig
nach links oder rechts, unten oder oben verschieben. Verlangt man aber, daß in
einer zulässigen Lösung keines der Rechtecke im Behälter nach links oder nach
unten verschoben werden kann, ohne ein anderes Rechteck oder den Rand des
Behälters zu überlappen, so wird der Suchraum endlich. Diese Forderung soll als
BL-Bedingung (BL = bottom/left) bezeichne werden. Da ein Rechteck flach oder
stehend gestapelt werden kann (Schrägstellungen sind ausgeschlossen), gibt es bei
m unterscheidbaren Rechtecken 2 m  m! Möglichkeiten, die Rechtecke zu ordnen.
3. Codierung101
Am Anfang jeder Ausprägung eines Genetischen Algorithmus auf ein konkretes
Problem steht die Frage nach eine geeigneten Codierung. Dieser Codierung sollte so
gewählt werden, das sie eine Übertragung von Erbgut während des CrossoverProzesses erlaubt. Die codierte Version einer möglichen Lösung heißt
chromosomale Darstellung oder Genotyp, seine äußere Erscheinung - hier also das
Packmuster - bezeichnet man als Phänotyp.
99
Das Packproblem wurde beschrieben (einschl. Lösungsangaben in Pseudocode-Darstellung) in: mc, Mai 1991.
Alle Angaben zum Algorithmus wurden aus dieser Quelle übernommen. Hier wurde der Lösungsalgorithmus neu
in objektorientierter Form überführt und als Java-Applet bereitgestellt.
100 vgl. 4.4.1
101 Alle Angaben zur Codierung sind übernommen aus: Elegant tiefstapeln von Berthold Kröger in mc, Mai
1991, S. 72 - 88
265
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Was aber sind wesentliche Merkmale eines guten Packmusters, die an
nachfolgende Generationen vererbt werden sollen? Sicher nicht die absoluten
Positionen aller Rechtecke, die man erhält, wenn man ein Koordinatensystem mit
seinem Ursprung in die linke untere Ecke des Behälters legt. Deshalb nicht, da jedes
Packmuster wenigstens drei symmetrische Muster besitzt, deren Koordinaten sich in
der Regel stark unterscheiden. Symmetrische Packmuster können durch eine
geeignete Wahl von Spiegelachsen aus einem ebenso guten Muster erzeugt
werden. Jede dieser Spiegelungen läßt den Wert der Zielfunktion unverändert; sie
kann aber ein anschließendes Verschieben von Rechtecken erfordern, um die BLBedingung sicherzustellen. Auf Grund der nicht eindeutigen Positionsbeschreibung
durch absolute Koordinaten erschien eine Codierung durch relative Koordinaten der
Rechtecke zueinander sinnvoller. Dabei versteht man unter der relativen Position
eines Rechtecks seine Lage bezogen auf die anderer Rechtecke im Packmuster,
also zum Beispiel rechts oder oberhalb eines anderen. Diese Beschreibung ist
aufgrund der oben erwähnten BL-Bedingung sinnvoll und kann durch einen
gerichteten Graphen erfolgen. Jedes zu packende Rechteck r i erhält genau einen
Knoten zugewiesen, die als beschriftete Kreise dargestellt werden. Die Beschriftung
eines Knotens ist zweigeteilt: Sie besteht zum einen aus seiner Identifikation r i, sie
gibt andereseits aber auch die Orientierung des Rechtecks an. Liegt die längere
Seite parallel zu y-Achse, bewirkt dies einen  -Eintrag im Knoten, anderenfalls
einen  -Eintrag.
Unter Verwendung von Kanten können zwischen je zwei Knoten Beziehungen
hergestellt werden, etwa folgende: Grenzt ein Rechteck rj unmittelbar, das heißt
ohne daß ein Freiraum oder ein anderes Rechteck dazwischenliegt, rechts an ein
Rechteck rj, so führt eine gerichtete, mit r beschriftete Kante vom Knoten r i zu rj. Der
Knoten ri wird auch als Vater von rj, rj als Sohn von ri bezeichnet. Analog, liegt das
Rechteck rj unmittelbar oberhalb von ri, so wird der Knoten ri mit rj über eine mit o
beschriftete Kante verbunden.
Dabei darf zu genetischen Codierung nur noch genau eine Kante in jeden
hineinführen. Ausnahme ist die Wurzel, also der Knoten, der keine Vorgänger besitzt
und das Rechteck in der linken unteren Ecke des Behälters repräsentiert.
Desweiteren darf aus jedem Knoten maximal je eine o-Kante und eine r-Kante
hinausführen. Ein derartiger Graph wird auch Baum genannt. Bezogen auf das
Beispiel aus Abb. 4.4.1 bedeutet diese Einschränkungen, daß r5 entweder als oberer
Sohn von r3 oder als rechter Sohn von r4 vermerkt werden kann. Die oben erwähnte
Ein-Kanten-Regelung legt die Position eines Rechtecks allerdings in nur einer
Dimension, entweder der Breite oder der Höhe, fest. Ist, wie in Abb. 4.4-2, r5 als
rechte Sohn von r4 deklariert, so ist damit zunächst nur eine Aussage über den
Abstand von r5 zum linken Rand des Behälters, nicht jedoch über seine Höhe
getroffen. Die Fixierung der jeweils offenen Dimension erfolgt aus der Erfüllung der
BL-Bedingung, also durch Verschiebung des Rechtecks entweder nach links oder
nach unten. Die Entscheidungskonflikte werden in unserer chromosomalen
Darstellung dadurch beigelegt, daß jeder Knoten eine Priorität erhält. Liegt ein
Konfliktfall vor, in dem mehrere Rechtecke gepackt werden können, so entscheidet
die höchste Priorität über die Reihenfolge. Abb. 4.4-2 zeigt die kompletten
chromosomalen Darstellungen einschließlich der Prioritäten für die in Abb. 4.4-1
dargestellten Packmuster. So legt die linke chromosomale Darstellung in Abb. 4.4-2
fest, daß die Rechtecke in der Reihenfolge r1 - r2 - r6 - r5 - r3 - r4 an die durch den
Graphen festgelegten Positionen gepackt werden.
266
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abb. 4.4-1:
Abb. 4.4-2:
Ein Nachteil dieser Codierungsvorschrift soll hier aber auch nicht verschwiegen
werden. Betrachtet man die chromosomalen Darstellungen aus Abb. 4.4-3, so kann
allein in Kenntnis der Codierungen nicht entschieden werden, ob diese
Packvorschrift ein zulässiges Packmuster beschreibt oder ob nicht doch
irgendwelche Unzulässigkeiten (Überlappungen) auftreten. Außerdem erlaubt der
Genotyp keine unmittelbaren Schlüsse auf die Qualität des beschriebenen
Packmusters, also eine Höhe im Behälter. Eine solche Zulässigkeit- und
Qualitätsanalyse erfordert jeweils die Decodierung in den zugehörigen Phänotyp,
was natürlich recht zeitintensiv werden kann. Hat man die genetische Beschreibung
der Probleminstanzen gefunden, ist man bei der Entwicklung eines genetischen
Algorithmus zwar den entscheidenen Schritt vorangekommen, am Ziel ist man in der
Regel aber noch nicht.
Ziel jedes Genetischen Algorithmus zur Lösung eines kombinatorischen
Optimierungsproblems muß es sein, Individuen zu erzeugen, die einen möglichst
nahe am Optimum liegenden Zielfunktionswert haben deren Fitneß also maximal ist.
Um die Laufzeit des Algorithmus zu minimieren, soll dieses Vorhaben erreicht
werden, indem die Suche auf die vielversprechendsten Teile des Suchraumes
konzentriert wird. Diese Beschränkung ist auch der Grund dafür, daß Genetische
Algorithmen nicht immer die absolut beste Lösung aus dem Suchraum finden oder
die Existenz einer noch besseren Lösung nicht ausgeschlossen werden kann. Um
die Qualität der generierten Individuen zu optimieren, um also möglichst geeignete
Wege im Gebirge des Suchraums zu beschreiten, werden von einem evolutionären
Algorithmus die Individuen innerhalb einer Population den genetischen Operatoren
Mutation, Crossover und Selection unterworfen.
4. Operationen102
Mutation und Crossover sind konstruktive Operatoren, die bestehende Individuen
modifizieren und neue Punkte im Suchraum, spricht Packmuster, generieren. Die
Selektion ist ein strategischer Operator, der über die Zusammensetzung der
Populationen entscheidet. Der Mutationsoperator dient dazu, Erbgut, welches von
einem Elternteil auf den Nachkommen übertragen wird, zufällig zu verändern.
102
vgl. Berthold Kröger: Elegant tiefstapeln in mc, 1991, S. 72-88
267
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Bezogen auf das Packproblem beschreibt die Mutation einen wenig effizienten, aber
sehr aufwendigen Operator.
Der wirkungsvollste Operator eines Genetischen Algorithmus ist das Crossover.
Diese Operator modelliert die Fortpflanzung. Zwei ausgewählte Individuen, der Vater
Fv und die Mutter Fm erzeugen einen Nachkommen W. Hierzu wird ein Teil des
Erbgutes des Vaters mit dem der Mutter kombiniert, in der Absicht, gute
Eigenschaften der Eltern auf die Nachkommen zu übertragen und damit in
Punktraum die Punkte zu erzeugen, die nahe an denen der Eltern liegen. In dem
vorliegenden Algorithmus wird zur Erzeugung eines Nachkommen W mittels
Crossover zweier Eltern zunächst das vom Vater Fv übertragene Erbgut festgestellt.
Dazu wird in der Baumcodierung des Vaters ein Teilbaum T s zufällig bestimmt. Es
wird außerdem verlangt, daß der Teilbaum seiner umliegenden Rechtecke beraubt
noch zulässig gepackt werden kann. Ein solcher Teilbaum kann immer gefunden
werden; schlimmstenfalls genügt die Wahl eines hinreichend großen Teilbaums
ausgehend von der Wurzel des Vaters allen Voraussetzungen. Hat man einen
zulässigen Teilbaum ausfindig gemacht, wird er an den Nachkommen übertragen,
wobei die Orientierung und die Prioritäten aller Knoten des Teilbaums erhalten
bleiben. Aufgrund der Einpflanzung dient die Wurzel vom T s auch im Nachkommen
als Wurzel. Allein durch die Knoten von T s beschreibt der Nachkomme in der Regel
noch keinen vollständigen Phänotyp, da noch nicht alle Rechtecke berücksichtigt
worden sind. Zur Komplettierung des Nachkommen wird auch genetisches Material
der Mutter verwendet. Dazu durchläuft man deren Knoten. Ist der gerade betrachtete
Knoten bereits mit Ts an den Nachkommen übergeben worden, bleibt nichts weiter
zu tun. Wenn der aktuelle Knoten jedoch noch nicht im Nachkommen erhalten ist,
wird die Codierung des Nachkommen entsprechend erweitert, was dem einfügen
eines Rechtecks in das unvollständige Packmuster entspricht. Zur Minimierung der
Packhöhe sollte natürlich jede Einfügung eines Rechtecks möglichst tief im Behälter
erfolgen. Die Arbeitsweise der Crossover-Operators wird im Bild 3 an einem Beispiel
erläutert.
Nach Vervollständigung der Kantenmenge Ew des Nachkommen erhebt sich jetzt
die Frage, wie die Orientierungen und die Prioritäten des Nachkommen generiert
werden. Die Bestimmung der Orientierung ist einfach, die Festlegung der Prioritäten
etwas trickreich.
Die Orientierung der Rechtecke wird durch die Eltern festgelegt. Alle Rechtecke, die
mit dem Teilbaum in den Nachkommen übertragen wurden, behalten ihren dortigen
Eintrag bei, genau so wie die Knoten, die von den Mutter an den Nachkommen
vererbt wurden. Diejenige Knoten, die mit Ts nach W kommen, behalten auch ihre
Prioritäten. Doch, alle nachfolgend von der Mutter in den Nachkommen kopierten
Knoten erhalten bei ihrer Einfügung neue Prioritäten, die kleiner sind als alle bis
dahin im Nachkommen vertreten. Dieses Verfahren ist notwendig, damit die Knoten
in der Reihenfolge zu einem Packmuster zusammengesetzt werden, die durch den
Crossover - Algorithmus festgelegt wurde. Hierdurch ist die Zulässigkeit des
Nachkommen gewährleistet.
268
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Abb. 4.4-4:
269
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Neben dem Crossover beeinflußt der Selektionsoperator das Verhalten eines
Genetischen Algorithmus wesentlich. Er dirigiert die Suche in die
vielversprechendsten Teile des Suchbaums. Zu diesem Zweck werden Individuen
hoher Qualität häufiger zur Rekombination ausgewählt. Sie sollen öfter
Nachkommen generieren, die deren gute Eigenschaften erben. Man sagt auch, daß
die Population durch die Selektion einem Lernprozeß unterworfen wird, da mit
zunehmender Generationenzahl der Anteil der qualitativ guten Individuen ansteigt.
Aber Vorsicht, einer zu häufige Wahl desselben Individuums bewirkt eine schnelle
Durchsetzung der gesamte Population mit dem genetischen Material nur eines
Individuums. Dieses kommt etwa dem Effekt der Inzucht gleich: Durch den Verlust
der genetischen Vielfalt innerhalb einer Population wird eine Qualitätssteigerung
durch die Evolution unmöglich. Die Population stagniert dann häufig in einem
schlechten lokalen Minimum. Außerdem sollte berechnet werden, daß auch qualitativ
schlechte Individuen genetisches Material enthalten können, welches beim
Crossover mit guten Lösungen zu Evolutionsschüben führt.
Bevor gängige Selektionsstrategien untersucht werden, soll aber zunächst die Frage
geklärt werden, wie die Qualität eines Individuums, dessen Fitneß, für das
Packproblem bewertet werden kann. Eine sorgfältige Bewertung von Individuen ist
notwendig, da die Fitneß die einzige Grundlage ist, anhand derer der
Selektionsprozeß seiner Wahl treffen kann.
5. Fitneß
Allgemein wird unter Fitneß die Anpassung von Individuen die Anpassung von
Individuen an ihre Umwelt verstanden. Klar ist, daß zur Lösung von
kombinatorischen Optimierungsaufgaben Individuen gefragt sind, deren
Zielfunktionswert - im Beispiel der Höhe des Packmusters - optimal ist. Jedoch nur
den Maßstab der Packmusterhöhe zur Bewertung der Fitneß von Individuen
anzulegen, erschien nicht erfolgversprechend. Fast zwangsläufig müßten in diesem
Fall viele völlig verschiedene Packmuster zur gleichen Fitneß führen. Bei m zu
packenden Rechtecken gibt es, wie eingangs erwähnt, 2 m  m! verschiedene
Packmuster, aber nur etwa m sinnvolle Packmusterhöhen. Im Mittel haben also
2 m  m! verschiedene Packmuster denselben Zielfunktionswert.
Erforderlich sind also zusätzliche Bewertungselemente für Packmuster, geeignete
Kriterien sollten effizient berechenbar sein, da die Fitneß - Funktion im Genetischen
Algorithmus sehr häufig aufgerufen wird Zu den besten Ergebnissen hat die
zusätzliche Bewertung der Schnittkantenlänge geführt. Sei h die Höhe des kleinsten
rechteckigen Kastens, der alle Rechtecke eines Packmusters umschließt. Als
Schnittkantenlänge sh wird dann sie Summe aller Rechteckseiten bezeichnet, die die
obere Begrenzung des Kasten berühren. Abb. 4.4-4 veranschaulicht diesen
Sachverhalt. Einem Individuum wird dann als Fitneß der Wert
fitness(W ) 
scale
h  scale  s h
zugeordnet. Darin ist scale einSkalierungsfaktor, dessen Wert identisch ist mit der
kleinsten ganzzahligen Potenz von 10, die größer ist als die Breite des Behälters. Bei
identischer Packmusterhöhe zweier Individuen wird demjenigen die bessere Fitneß
zugeordnet, dessen sh Wert kleiner ist. Ein kleiner sh Wert ist ein Hinweis auf ein
270
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
dichtes Packmuster unterhalb der Erhöhungen, die den Wert von s h ausmachen,
also auf ein Packmuster, dessen Höhe noch reduziert werden kann.
Abb. 4.4-4:
Hat man die Fitneßbestimmung der Individuen festgelegt, kann man sich Gedanken
darüber machen, wie man qualitativ gute Individuen im Selektionsprozeß favorisieren
will, ohne die schlechten Individuen zu sehr zu vernachlässigen. In der Literatur
werden hierzu im allgemein folgende Strategie vorgeschlagen:
6. Zufällige Wahl
Mitglieder der Population werden zufällig ausgewählt; solange die gewählten
Individuen gleichverteilt in der Population liegen, wird zwar keine gezielte
Konzentration der Suche in bestimmten Gegenden des Lösungsraums erreicht, aber
die genetische Vielfalt der Population bleibt erhalten.
7. Proportionale Wahl
Jedes Individuum wird mit einer Wahrscheinlichkeit selektiert, die seiner Fitneß
proportional ist. Qualitativ bessere Individuen werden häufiger gewählt als weniger
gute Individuen.
8. Platzabhängige Wahl
Statt über den Fitneß-Wert kann eine Gewichtung der Auswahlwahrscheinlichket
auch über die Plazierung der Fitneß des Individuums innerhalb der Population
vorgenommen werden. Dadurch kann eine Blockierung des Evolutionsprozesses
vermieden werden, die sich bei der proportionalen Wahl etwa dadurch einstellen
kann, daß die Fitneß eines einzigen Individuums die aller anderen weit übertrifft.
Die Entscheidung für oder wider Selektionsstrategie kann nicht allgemein getroffen
werden; sie hängt von dem zu optimierenden Problem ab. Für den Packalgorithmus
fiel die Entscheidung auf die platzabhängige Wahl des Vaters und die zufällige Wahl
der Mutter.
271
Neuronale Netze, Fuzzy-Control Systeme und Genetische Algorithmen
Eine selektive Entscheidung wird jedoch nicht nur zu Bestimmung der Partner in
einem genetischen Algorithmus benötigt. Auch nach der Erzeugung eines
Nachkommen muß darüber entschieden werden, welches Individuum aus der
Population entfernt werden soll, um den Nachwuchs Platz zu machen. Hierzu wird
häufig eine von dem Populationsgenetiker Darwin formulierte Survival - of - the Fittest - Strategie verwendet, die das jeweils schlechteste Individuum aus der
Population entfernt. Qualitativ bessere Individuen haben demzufolge eine größere
Chance, mehrere Generationen zu überleben, als schlechtere.
9. Applet mit dem genetischen Algorithmus für das Packproblem
http://fbim.fh-regensburg.de/~saj39122/dkst/Index.htm
4.4.3 Genetic Function Finder
http://fbim.fh-regensburg.de/~saj39122/prmeha/index.html
272
Herunterladen