Seminararbeit Thema: Die Anwendung der Kohonen-Karte am Beispiel einer Zuflussregelung an Autobahnen



Ähnliche Dokumente
Selbstorganisierende Karten

Was bisher geschah Künstliche Neuronen: Mathematisches Modell und Funktionen: Eingabe-, Aktivierungs- Ausgabefunktion Boolesche oder reelle Ein-und

Künstliche neuronale Netze

Aufbau der Eigenimplementierung

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

Selbstorganisierende Karten

Thema 3: Radiale Basisfunktionen und RBF- Netze

Training von RBF-Netzen. Rudolf Kruse Neuronale Netze 134

Kapitel ML:XII. XII. Other Unsupervised Learning. Nearest Neighbor Strategies. Self Organizing Maps Neural Gas. Association Analysis Rule Mining

Einfaches Framework für Neuronale Netze

Aufbau und Beschreibung Neuronaler Netzwerke

Künstliche Neuronale Netze

Praktikum Simulationstechnik Rene Schneider, Benjamin Zaiser

Radiale-Basisfunktionen-Netze. Rudolf Kruse Neuronale Netze 120

Mathematische Funktionen

Terminabstimmung Punktspielbetrieb

Konvergenz von Hopfield-Netzen

Allgemeine (Künstliche) Neuronale Netze. Rudolf Kruse Neuronale Netze 40

Hannah Wester Juan Jose Gonzalez

Erstellen eines Referates in Word

PREISE UND PREISLISTEN UNTER ORGAMAX BEARBEITEN

Verteilungsfunktionen (in Excel) (1)

Updateinfo edfirma Finanzen vom Stand: 07/2016 eurodata Seite 1 von 9

Deskriptive Statistik Kapitel IX - Kontingenzkoeffizient

Technische Universität. Fakultät für Informatik

Randomisierte Algorithmen

Der Backpropagation-Algorithmus als Beispiel für Lernalgorithmen künstlicher neuronaler Netze Reinhard Eck 1

Selbstorganisierende Karten

Mathematische und statistische Methoden I

Gliederung. Biologische Motivation Künstliche neuronale Netzwerke. Anwendungsbeispiele Zusammenfassung. Das Perzeptron

Anleitung. Mooy Logistics Servicedesk. Version: 1.2 Date:

Klassifizieren und Visualisieren von Daten mit Selbstorganisierenden Karten

Wir sollen erarbeiten, wie man mit Hilfe der Mondentfernung die Entfernung zur Sonne bestimmen kann.

Kohonennetze Selbstorganisierende Karten

Handbuch ERP - Modul HOAI

Neuronale Netze SS Universität Ulm. Anna Wallner. Betreuer: Malte Spiess. Seminar Statistische Lerntheorie und ihre Anwendungen

Energiearten, Energieumwandlung

Können neuronale Netze Vorhersagen treffen? Eine Anwendung aus der Stahlindustrie

ECDL - Europäischer Computer Führerschein. Peter Wies. 1. Ausgabe, März 2014

Christian Klotz Alois Klotz Mario Steinwender 12. Oktober Vielen Dank, dass Sie sich für die EASY4ME-Apps entschieden haben.

GTR Programm: Mittlere Abweichung

Skript Prozentrechnung. Erstellt: 2015/16 Von:

Funktionen mit mehreren Variablen. Voraussetzungen:

Selbstorganisierende Merkmalskarten

Allgemeine Definition von statistischer Abhängigkeit (1)

Programmierkurs Java

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Binomialverteilung und Bernoulli- Experiment

Ausführen eines Makros beim Starten von OpenOffice.org

Fehlererkennung und Fehlerkorrektur in Codes

Künstliche Neuronale Netze (KNN)

Neuronale Netze. Anna Wallner. 15. Mai 2007

Schwellenwertelemente. Rudolf Kruse Neuronale Netze 8

7. Vorlesung Neuronale Netze

Versuch E24 - Operationsverstärker. Abgabedatum: 24. April 2007

Adaptive Systeme. Mehrere Neuronen, Assoziative Speicher und Mustererkennung. Prof. Dr. rer. nat. Nikolaus Wulff

Seminar zum Thema Künstliche Intelligenz:

Der richtige Abstand. b) Der Abstand zum vorausfahrenden Fahrzeug sollte immer drei Wagenlängen betragen.

Künstliche neuronale Netze

Das Modell: Nichtlineare Merkmalsextraktion (Preprozessing) + Lineare Klassifikation

Handbuch ECDL 2003 Modul 6: Präsentation Ein Bild aus der Clipart-Sammlung einfügen

LAF Mathematik. Näherungsweises Berechnen von Nullstellen von Funktionen

Statistical Learning

Einführung in Neuronale Netze

Proportionale und antiproportionale Zuordnungen

Numerisches Lösen von Gleichungen

Oft gestellte Fragen. Fragen zum Informationswerkzeug Identify Wie kann ich gespeicherte Merkmale abfragen? Wie exportiere ich Tabellen in Excel?

Kompetenzcheck. Mathematik (AHS) Oktober Lösungsheft

Drucken und Löschen von angehaltenen Druckaufträgen

Neuronale Netze mit mehreren Schichten

kurze Wiederholung der letzten Stunde: Neuronale Netze Dipl.-Inform. Martin Lösch (0721) Dipl.-Inform.

GIMP - Ebenenmasken. Toni Kaufmann 28. April 2008

SCIENCE SERVICES. Ausrüstung. Probenpräparation. Es gibt mit dieser Ausrüstung 2 Möglichkeiten der Messung von Dicken:

Informatik/Biologie. Neuronale Netze: Bugbrain. Arbeits- blatt. Arbeitsblatt 1: Erste Schritte. 12/2003 Nitzsche (OSZ Handel I Berlin)

Perzeptronen. Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Erster Prüfungsteil: Aufgabe 1

Rad-Fahrer. Straßen-Verkehr. Rhein-Sieg-Kreis Der Landrat Straßen-Verkehrs-Amt

Aufgabe 1 Kolloquium zur Klausur Innovationscontrolling Sommersemester 2014

T (n) = max. g(x)=n t(n) S(n) = max. g(x)=n s(n)

Seminar zum Thema Künstliche Intelligenz: Clusteranalyse

Mathematik. Abiturprüfung Prüfungsteil A. Arbeitszeit: 90 Minuten. Bei der Bearbeitung der Aufgaben dürfen keine Hilfsmittel verwendet werden.

Deskriptive Statistik Kapitel VII - Konzentration von Merkmalswerten

5. Lernregeln für neuronale Netze

Pflichtteilaufgaben zu Stochastik (Pfadregeln, Erwartungswert, Binomialverteilung) Baden-Württemberg

Hypothesentests mit SPSS. Beispiel für eine einfaktorielle Varianzanalyse Daten: museum_m_v05.sav

Simulation neuronaler Netzwerke mit TIKAPP

INHALTSVERZEICHNIS. Einleitung Allgemeines

Das Excel-Tool zur Darstellung der Finanzierung eines BGE in beliebiger Höhe

Klausur Modellbildung und Simulation (Prof. Bungartz) SS 2007 Seite 1/7

Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik. 8. Aufgabenblatt

M5 Viskosität von Flüssigkeiten

*Hierzu wird Microsoft Word benötigt. Mit freien Textverarbeitungen wie Open Office ist dies leider nicht möglich.

Für 2-6 Spieler ab 8 Jahren.

Nr 4031 Version Prüfungsfragen gültig ab ZusatzNr 4032 ThemaNr 16. Anmerkungen

II. Formalismus assoziativer Netze für VLSI - Implementierung

LCD-Verwaltungssoftware LCD-VSW

10. Versuch: Schiefe Ebene

Elementare Geometrie. Inhaltsverzeichnis. Fragen und Antworten. (bitte nur für den Eigengebrauch verwenden)

Hopfield-Netze. Rudolf Kruse Neuronale Netze 192

Transkript:

Seminararbeit Thema: Die Anwendung der Kohonen-Karte am Beispiel einer Zuflussregelung an Autobahnen Referenten: Louisa Navratiel (Matrikelnr.: 1276396) Maik Buczek (Matrikelnr.: 1360613) Abgabedatum:09.03.2004

Inhaltsverzeichnis 1. Beschreibung des Problems...1 2. Funktionsweise der Kohonen-Karte...1 2.1 Aufbau...1 2.2 Bildung von Erregungszentren...2 3. Umsetzung...5 3.1 Annahmen...5 3.2 Codierung...5 4. Literatur...9

1. Beschreibung des Problems An stark befahrenen Autobahnen wird mit Hilfe von Ampeln der Zufluss auf die Autobahn geregelt. Es gibt drei verschiedene Ampelschaltungen: Bei der ersten Schaltung ist die Ampel komplett aus, bei der zweiten durchläuft die Ampel die normalen rot-gelb-grün Ampelphasen, bei der dritten blinkt die Ampel gelb. Zu der zweiten Ampelschaltung ist zu bemerken, dass hier eine Sonderregelung gilt: Bei grün darf nur ein Auto fahren, die Ampel springt danach direkt wieder auf rot um. Diese Ampel soll den zufließenden Verkehr so regeln, dass ein Stau auf der Autobahn hinausgezögert oder verhindert werden kann, zumindest, dass vor dem Stau gewarnt werden kann. 2. Funktionsweise der Kohonen-Karte Bei der Kohonen-Karte handelt es sich um eine Selbstorganisierende Karte. Dies ist ein Neuronales Netz, das die Fähigkeit des Gehirns zur Selbstorganisation nachahmt und die Verbindungsstruktur gemäß einfacher Regeln selbst organisiert. Die Selbstorganisierende Karte ist vergleichbar mit einer Schicht von Eingabeneuronen, die ihre Signale von Rezeptorneuronen erhalten. 2.1 Aufbau Die Kohonen-Feature-Map besteht aus zwei Schichten, der Eingabe und der Ausgabeschicht. Die Kartenschicht ist rückkoppelnd, dass heisst, dass die Neuronen sich gegenseitig beeinflussen. Die Neuronen sind innerhalb der Kartenschicht eindeutig durch ihre x-und y-position bestimmt. Die Eingabeneuronen werden an die Eingabeschicht angelegt, wobei jedes Neuron der Eingabeschicht mit den Eingabeneuronen verbunden ist Der Ausgabewert o i eines Neurons i der Eingabeschicht entspricht der Komponente xi des externen Eingabesignalvektors x. Die Neuronen der Eingabeschicht werden durch die Eingabeneuronen entweder gehemmt oder erregt. Der Nettoinput net j eines isoliert betrachteten Neurons wird wie folgt berechnet: netj = i w * ij oi + Θ j Θ j : Bias w ij : Gewichtsmatrix Der Aktivierungszustand des Neurons j wird mit Hilfe der Aktivierungsfunktion aj = F berechnet. j( j netj) = 1/(1 + exp( net )) 1

Durch die Ausgabefunktion o j = fj( aj) = a j wird der innere Aktivationszustand aj des Neurons j in den Ausgabewert oj transformiert. Aufgrund der Tatsache, dass für die spätere Verwendung der Kohonen-Karte die wechselseitige Beeinflussung der Neuronen vernachlässigt wurde, soll an diese Stelle auf die modifizierte Formel zur Berechnung des Nettoinputs nicht näher eingegangen werden. 2.2 Bildung von Erregungszentren Ein allgemeines Arbeitsprinzip des Nervensystems ist, dass Gruppen von Nervenzellen andere Gruppen in ihrer Umgebung hemmen, um so ihre eigene Wirkung zu erhöhen. Dieser Effekt wird laterale oder Umfeldhemmung genannt. Hierauf basiert die Bildung von Erregungszentren bei der Kohonen-Karte. Die Neuronen die nah am Zentrum liegen, werden stark beeinflusst. Je weiter die Neuronen vom Zentrum weg liegen, desto geringer ist der Einfluss. Diese Beeinflussung lässt sich durch folgende Grafik gut verdeutlichen Beeinflussung erregend hemmend Position Neuron Z Abstand von Neuron Z (Erregungszentrum) nach allen Seiten Abb.2-1 Würde man den Rückkopplungseffekt und die nichtlineare Aktivierungsfunktion berücksichtigen, würde die Berechnung des Erregungszentrums sehr schwierig sein. 2

Aufgrund dieser Tatsache, ist das Modell an diese Stelle von Kohonen vereinfacht worden und der Rückkopplungseffekt vernachlässigt worden. Damit der Merkmalsraum der Eingabemuster genau abgebildet werden kann, muss für jedes Eingabesignal ein Erregungszentrum gebildet werden. Für das Erregungszentrum gilt folgendes i w ij * oi = max j wij * oi i Anmerkung: Der Schwellenwert Θ j kann hierbei vernachlässigt werden, da der Nettoinput nicht in die Aktivierungsfunktion F j eingeht 2.3 Das Lernverfahren Wurde nun das Erregungszentrum des Neurons j gefunden, werden die Verbindungsgewichte dementsprechend angepasst. Die Anpassung der Gewichte beeinflusst die Neuronen die innerhalb des Radius σ z liegen. Die Anpassung erfolgt nach folgender Formel: wj( t + 1) = wj( + ( x( wj( ) ; wenn j σz wj ( t + 1) = wj( ; sonst wj ( : Verbindungsstärken wj = ( w1 j, K, wnj) des Neurons j zum Zeitpunkt t x ( : Eingabesignalvektor x = ( x1, K, xn) zum Zeitpunkt t Räumlich gesehen entspricht das einer Verschiebung des x-vektors wj in Richtung des Eingabesignalvektors x hin. Neuronen die näher am Erregungszentrum x liegen werden stärker beeinflusst. Diese Tatsache wurde bei der obigen Formel nicht berücksichtigt. Zur Beschreibung dieser stärkeren Beeinflussung verwendet Kohonen die folgende, so genannte Mexican-Hat- Funktion 2 2 hjz = exp( ( j z) /(2 * σz )) j z : Abstand von Neuron j zum Erregungszentrum z; σ z : Radius innerhalb dessen die Einheiten verändert werden. Der Radius sollte durch eine langsam monoton fallende Funktion dargestellt werden Zusätzlich wird noch ein Lernrate benötigt, die ebenfalls durch eine langsam monoton fallende Funktion dargestellt werden soll. Die Formel für die Anpassung der Verbindungsgewichte sieht nun wie folgt aus: wj( t + 1) = wj( + ε * hjz * ( x( wj( ) ; wenn j σz wj ( t + 1) = wj( ; sonst wj ( : Verbindungsstärken wj = ( w1 j, K, wnj) des Neurons j zum Zeitpunkt t x ( : Eingabesignalvektor x = ( x1, K, xn) zum Zeitpunkt t ε : Lernrate 3

Zusammenfassend lässt sich der Ablauf des Algorithmus wie folgt darstellen: 1) Die Anfangsgewichtsverbindungen werden zufällig vergeben 2) Der Eingabesignalvektor x wird zufällig aus den möglichen Eingabesignalvektoren ausgewählt. 3) Das Erregungszentrum wird bestimmt. 4) Die Verbindungsgewichte werden angepasst. 5) Es wird mit Schritt 2 fort gefahren, bis die gewünschte Anzahl an Lernschritten durchgeführt ist. Zwei Punkte sind zusätzlich zu beachten: 1. Die Eingabemuster müssen zufällig ausgewählt werden, damit sich das System stabilisieren kann. 2. Die Funktionen für den Radius und die Lernrate, müssen für die Erreichung eines Gleichgewichtszustandes ebenfalls geeignet gewählt werden. Hier sollten langsam monoton fallende Funktionen, in Abhängigkeit von der Anzahl der Lernschritte genommen werden. 4

3. Umsetzung Bevor mit einer detaillierten Beschreibung der Umsetzung begonnen werden kann, müssen zunächst die zugrunde liegenden Annahmen erläutert werden. 3.1 Annahmen Zur Messung der verschiedenen Größen, existiert eine Art Streckenkontrolle, die sich ca. einen km vor der Auffahrt und ebenso ca. einen km hinter der Auffahrt befindet. Diese Kontrolle misst die Anzahl der Autos, den Abstand der Autos sowie die Geschwindigkeit der Autos. Des Weiteren soll davon ausgegangen werden, dass es sich um eine zweispurige Autobahn handelt, bei der jedoch nur eine Spur betrachtet wird. Zur Vereinfachung wird davon ausgegangen, dass alle PKW s gleich lang sind. Auf der Autobahn gilt eine Höchstgeschwindigkeit von 120 km/h. Ebenfalls wird davon ausgegangen, dass der Beschleunigungsstreifen genügt, um sich an die Geschwindigkeit anzupassen. LKW s fahren nicht auf der Autobahn. Wie anfangs schon erwähnt, darf nur ein Auto bei grün fahren. Ist die Ampel aus, dürfen die Autofahrer ungehindert auf die Autobahn auffahren, bei blinkender Ampel ist das ebenfalls der Fall, hier ist jedoch Vorsicht geboten. Es wird von folgenden Bedingungen für die Einstellung der Ampel ausgegangen: Ampel ist aus Normale Ampel Ampelphase blinkt Abstand x > 45 X - - 45 x > 25 - X - (in m) x 25 - - X Geschwindigkeit x > 90 X - - 90 x >50 - X - (in km/h) x<=50 - - X x < 20 X - - Anzahl Autos 20 x < 33 - X - x 33 - - X Tab.4-1 3.2 Codierung Die Codierung erfolgte als Java Applet mit Hilfe des JBuilders 9 von Borland.. Für die Codierung der Eingabesignale wählten wir einen 9-stelligen Vektor, jede Stelle repräsentiert eines der in Tabelle 4-1 abgebildeten Merkmale. Ist dieses Merkmal vorhanden, erhält der Vektor an dieser Stelle eine 1, ist es nicht vorhanden eine 0. Die drei Eingabesignalvektoren sehen dann wie folgt aus: Ampel ist aus : ( 1,0,0,1,0,0,1,0,0) Normale Ampelphase : ( 0,1,0,0,1,0,0,1,0) Ampel blinkt : ( 0,0,1,0,0,1,0,0,1) 5

Als nächstes machten wir uns Gedanken über die Darstellung der Kohonen-Karte. Wir entschieden uns für eine 50x50 Matrix als Ausgabe. Jeder einzelne Punkt stellt ein Ausgabeneuron dar, insgesamt erhielten wir damit 2500 Ausgabeneuronen. Jedes dieser Neuronen verfügt über neun Gewichte, entsprechend dem Eingabesignalvektor. Wir haben also 50x50 Neuronen mit jeweils neun Gewichten zu diesen Neuronen. Damit wir diese Gewichte sinnvoll und übersichtlich speichern konnten, entschieden wir uns dafür, sie in einem 50x50x9 Array abzuspeichern. Die ersten zwei Dimensionen des Arrays legen die Position des Neurons fest und die letzte Dimension speichert die neun Gewichtswerte. Dieses 3-dimensionale Array stellt somit unsere Gewichtsmatrix wij dar. Die Gewichte für die einzelnen Neuronen werden per Zufall vergeben und liegen zwischen 0 und 1. Zu Anfang wird für jeden Eingabesignalvektor das Erregungszentrum gebildet. Dies geschieht auf folgende Weise: Für den 1. Eingabesignalvektor wird zunächst der Nettoinput jedes einzelnen Ausgabeneurons berechnet. Diese geschieht mit der Formel zur Berechnung des Nettoinputs: netj = i w ij * oi + Θ j. Zur Verdeutlichung, wie die Formel angewendet wird, wird die Berechnung eines konkreten Nettoinputs gezeigt. Der Eingabesignalvektor x1ist: ( 1,0,0,1,0,0,1,0,0). Wie bei der Erläuterung der Kohonen- Karte erwähnt ist o i = xi. Gehen wir davon aus, wir wollen den Nettoinput des ersten Ausgabeneurons berechnen. Dieses liegt in unserer Gewichtsmatrix an der Stelle (0,0). Die Gewichtswerte liegen an der Stellen (0,0,0), (0,0,1),.,(0,0,8). Es handelt sich um kleine Zahlen zwischen 0 und 1. Beispielhaft seien folgende Werte für die Gewichte angenommen: (0,0,0) = 0,2; (0,0,1) = 0,4; (0,0,2) = 0,3; (0,0,3) = 0,5; (0,0,4) = 0,8; (0,0,5) = 0,3; (0,0,6) = 0,6; (0,0,7) = 0,9; (0,0,8) = 0,5 Da dies nur ein Rechenbeispiel darstellen soll, wurden einfache Zahlen zwischen 0 und 1 gewählt. Die von Jave generierten Zufallszahlen stellen mehrstellige Kommazahlen dar. Für den Nettoinput würde das folgende Rechnung ergeben: net j = 0,2 *1 + 0,4 * 0 + 0,3 * 0 + 0,5 *1 + 0,8 * 0 + 0,3 * 0 + 0,6 *1 + 0,9 * 0 + 0,5 * 0 = 1,3 Diese Berechnung erfolgt nun für jedes Ausgabeneuron. Die Nettoinputs werden in einem 50x50x3 Array abgespeichert. Die ersten zwei Dimensionen, stellen, wie schon bei der Gewichtsmatrix die Position des Neurons dar. Die dritte Dimension kennzeichnet den Eingabevektor zu dem der Nettoinput gehört. Gehört der Nettoinput des Ausgabeneurons der Stelle (x,y) zu dem Eingabevektor ( 1,0,0,1,0,0,1,0,0) steht dieser z.b. an der Stelle (x,y,0). Danach werden die einzelnen Nettoinputs verglichen. Das Neuron mit dem höchsten Nettoinput stellt das Erregungszentrum dar. Das Erregungszentrum wird mit seiner Position in dem Array ZentrumPosition[][][] gespeichert. In diesem Array befinden sich die Positionen aller drei Erregungszentren. Für die anderen zwei Eingabesignalvektoren wird ebenfalls das Erregungszentrum bestimmt. Es entstehen also drei Erregungszentren. Die Verbindungsgewichte werden dann, entsprechende der Zentren, angepasst. Die Anpassung erfolgt mittels der Funktion VerbindungsleitungAnpassen(). Innerhalb dieser Funktion musste zunächst ermittelt werden, welche Neuronen sich im aktuellen Radius des Erregungszentrums befinden, damit danach auch nur deren Gewichte angepasst werden. Die veränderten Gewichtswerte werden in der Gewichtsmatrix wij abgespeichert, um nachher auf dieser veränderten Grundlage weiterarbeiten zu können. 6

Für die Anpassung der Gewichte werden zusätzlich zu den oben beschriebenen Formeln, noch eine langsam monoton fallende Funktion für den Radius und eine langsam monoton fallende Funktion für die Lernrate benötigt. Hier wählten wir folgende Funktionen: Lernrate: ε ( t + 1) = ε max * ( ε min / ε max ) t / t t : aktueller Iterationsschritt 1 t t max t max : Gesamtzahl der Iterationsschritte ε max: Anfangslernrate (in unserem Fall 1) ε min : Untergrenze der Lernrate (in unserem Fall 0,001) Mit ε ( gilt: ε min ε ( t ) ε max Radius: max σ ( t 1) / max* ( min/ max) t t z + = σ σ σ t : aktueller Iterationsschritt 1 t t max t max : Gesamtzahl der Iterationsschritte σ max : Anfangsgröße des Radius (in unserem Fall 40) σ min : Untergrenze des Radius (in unserem Fall 2) Mit σz( gilt: σ min σ ( t ) σ max max Nachdem die Erregungszentren gefunden wurden, folgt das eigentliche Lernen, das in der Funktion Lernen() durchgeführt wird. Diese sieht dann wie folgt aus: 1. Einer der drei Eingabesignalvektoren wird zufällig ausgewählt. 2. Der Nettoninput passend zum Eingabevektor für jedes Ausgabeneuron wird bestimmt. 3. Das Erregungszentrum wird bestimmt. 4. Die Verbindungsleitungen werden angepasst. 5. Der Radius wird angepasst. 6. Die Lernrate wird angepasst. Die Funktion wird so oft durchgeführt bis die maximale Anzahl an Lernschritten erreicht ist. Die Lernschritte sind standardmäßig auf 1000 gesetzt, können aber vom Benutzer beliebig geändert werden. Hierbei gilt: Je höher die Anzahl der Lernschritt, desto besser ist die Karte ausgeprägt. Bei einer sehr kleinen Anzahl von Lernschritten kann es passieren, dass sich die Karte nicht richtig ausprägt und zu falschen Ergebnissen führt. Die Anpassung des Radius und der Lernrate muss erfolgen, damit sich die Erregungszentren stabilisieren können und auf eine Position einpendeln können. Nach Ablauf des Lernens hat sich die Kohonen-Karte herausgebildet. Die Karte besteht aus drei farblich voneinander abgegrenzten Bereichen: einem blauen, einem roten und einem gelben Bereich. Der blaue Bereich stellt den Bereich dar, in dem die Ampel aus ist, der roten den, in dem die Ampel die normalen Ampelphasen durchläuft und der gelbe den, in dem die Ampel blinkt. 7

Das Neuronale Netz ist nun trainiert und kann auf seine Funktionalität hin überprüft werden. Hierzu ist es dem Benutzer möglich selber den Abstand, die Anzahl der Autos und die Geschwindigkeit der Autos einzugeben. Das Programm nimmt die Eingaben auf und wandelt die eingegeben Werte mit Hilfe der Funktion EingabeUmwandeln() in passende Vektoren um. Diese Vektoren werden mit Hilfe der Funktion ErkennungsmusterZuordnen() einem der drei Bereiche der Kohonen- Karte zugeordnet. Dafür wird für den zu erkennenden Vektor der größte Nettoinput, sowie das zugehörige Ausgabeneuron ermittelt. Je nach dem zu welchem Bereich dieses Neuron gehört, erfolgt die Ausgabe. Gehört das Neuron zum blauen Bereich, wird eine ausgeschaltete Ampel angezeigt. gehört das Neuron zum roten Bereich, wird eine Ampel mit allen drei Farben angezeigt dies steht dafür, dass die Ampel die normalen Ampelphasen durchläuft-, gehört das Neuron zum gelben Bereich wird ein gelbe Ampel angezeigt. Anhand mehrer unterschiedlicher Eingaben, kann überprüft werden, ob das Programm einwandfrei funktioniert. 8

4. Literatur Kruse, Programmierung neuronaler Netze, 1991 (1.Auflage) T.Kohonen, Self-Organization and Associative Memory, 1989 (3.Auflage) http://rfhs8012.fh-regensburg.de/~saj39122/begrolu/nn1.html 9