Selbstorganisierende Karten

Transcrição

Selbstorganisierende Karten
Selbstorganisierende Karten
Jochen Weiß
Inhaltsverzeichnis
1
Das menschliche Gehirn als Vorbild
2
2
Architektur einer SOM
3
2.1
Aufbau der Neuronenschichten
3
2.2
Gewichts- und Eingabevektor
3
3
Das Training der Karte
4
3.1
Bestimmung des Siegerneurons
4
3.2
Adaption der Gewichtsvektoren
5
3.3
Nachbarschafts- und Lernratenfunktion
6
3.4
Der Lernalgorithmus
8
4
Anwendungsbeispiel: das Rundreiseproblem
Literatur
11
13
Zusammenfassung
Bei Selbstorganisierenden Karten (nach ihrem Entwickler auch Kohonen-Karten
oder Kohonen Feature Maps genannt) handelt es sich um ein spezielles neuronales
Netz, das — wie der Name schon sagt — sich selbst organisiert, also im Gegensatz zum Perzeptron ohne Lehrer auskommt, der nach jeder Eingabe die Ausgabe
überprüft und ggF. die Verbindungsgewichte anpaßt, um die Ausgabe zu korrigieren. Ein weiteres spezifisches Merkmal der SOMs (Selforganizing Map) ist, dass
auch die räumliche Anordnung der Neuronen untereinander eine wichtige Rolle im
Lernverfahren spielt.
27. Mai 2004
1
Das menschliche Gehirn als Vorbild
Eine SOM erstellt aus den Eingaben eine topographische Karte. Je ähnlicher
zwei Eingaben sind, desto näher liegen die dadurch aktivierten Neuronen beieinander. Einander sehr ähnliche Eingabemuster werden von der SOM also
auch benachbart dargestellt. Vorbild für diese Topologieerhaltung ist — wie
so oft bei neuronalen Netzen — das menschliche Gehirn.
Abbildung 1. Topologieerhaltung im Menschlichen Gehirn
In Abbildung 1 ist auf der linken Seite die somatosensorische Hirnrinde —
zuständig für den Tastsinn — und auf der rechten Seite die motorische Rinde
zu sehen. Die einzelnen Körperteile sind bei ihrer jeweils zuständigen Hirnregion angeordnet. Es ist gut zu erkennen, dass benachbarte Hirnregionen
auch benachbarte bzw. ähnliche Körperteile kontrollieren: z.B. liegt das Areal
für den Tastsinn der Arme direkt neben der Hirnregion für die Hände. Wie
das menschliche Gehirn Sinneseindrücke wirklich verarbeitet und speichert,
ist noch nicht genügend erforscht. Unter anderem ist die selbstorganisierende Karte dazu entwickelt worden, mehr Einblick in die Organisationsweise
unseres Gehirns zu geben.
2
2
2.1
Architektur einer SOM
Aufbau der Neuronenschichten
Eine selbstorganisierende Karte besteht aus zwei Schichten. Die Eingabeschicht (UI ) setzt sich aus den Eingabeneuronen, die Ausgabeschicht (UO )
— auch Kohonen- oder Kartenschicht genannt — aus den Ausgabe- oder
Kohonenneuronen zusammen. Die Eingabeschicht ist mit den Neuronen der
Ausgabeschicht voll vernetzt: jedes Neuron der Eingabeschicht ist mit allen
Ausgabeneuronen durch Gewichte verbunden. Gewichtete Verbindungen innerhalb der Ausgabeschicht gibt es allerdings nicht, jedoch spielt im späteren
Lernverfahren die räumliche Anordnung der Kartenneuronen eine wichtige
Rolle.
Abbildung 2. Architektur einer SOM
Die Ausgabeschicht kann unterschiedliche Dimensionen annehmen. Am häufigsten werden zwei-dimensionale quadratische Neuronengitter eingesetzt. Allerdings sind auch drei- oder mehr-dimensionale Gitter möglich. Die Position
jedes Kohonenneurons wird dabei durch den Koordinatenvektor angegeben,
der bei der Initialisierung der SOM festgelegt und auch im Laufe des Trainings nicht mehr verändert wird.
2.2
Gewichts- und Eingabevektor
Jedes Eingabeneuron schickt einen Eingabewert an alle Neuronen der Kartenschicht. Faßt man die einzelnen Eingaben zusammen, ergibt dies das Eingabemuster bzw. den Eingabevektor:
3
x = (x1 , x2 , ..., xi ),
i =Anzahl der Eingabeneuronen
Aus den einzelnen Gewichten, die ein Ausgabeneuron zu jedem Eingabeneuron besitzt, kann jedem Kohonenneuron j ein Gewichtsvektor wj zugewiesen
werden:
wj = (w(1,j) , w(2,j) , ..., w(i,j) ),
i =Anzahl der Eingabeneuronen
Die Gewichtsvektoren aller Neuronen bestimmen die sog. Netzstruktur einer
SOM. Diese kann über die Gewichtsvektoren visualisiert werden. Für eine
SOM mit zwei Eingabeneuronen — also zweidimensionalen Gewichtsvektoren
— und 10x10 Kartenneuronen kann dies z.B. folgendermaßen aussehen:
Abbildung 3. Visualisierung der Gewichte
Abbildung 3 zeigt ein Koordinatensystem, an deren X-Achse der Wert des
Gewichts des Kartenneurons j zum Eingabeneuron 1 und an der Y-Achse das
Gewicht zum Eingabeneuron 2 eingetragen ist. Eine solche Darstellung kann
jedoch nur bei zweidimensionalen Eingabedaten verwirklicht werden.
3
3.1
Das Training der Karte
Bestimmung des Siegerneurons
Eine SOM bewertet für ein Eingabemuster die Ähnlichkeit zu jedem Gewichtsvektor und bestimmt ein sog. Siegerneuron, auch Prototyp genannt. Dieses
Siegerneuron repräsentiert die Eingabe von allen Kartenneuronen am besten.
Für die Bewertung der Ähnlichkeit gibt es zwei verschiedene Methoden. Am
plausibelsten jedoch ist die minimale Euklidische Distanz zwischen Eingabeund Gewichtsvektor:
s
j(X) = arg min k X − Wj k= arg min
j
j
4
i
P
n=1
(xi − wij )2
Wobei j(x) das Siegerneuron des Eingabemusters X, i die Anzahl der Eingabeneuronen, xi der Eingabewert des i-ten Neurons und wij ein einzelnes Gewicht
des Neurons j zum i-ten Eingabeneuron ist.
Abbildung 4. Minimale Euklidische Distanz
Abbildung 4 zeigt anschaulich die Bestimmung der minimalen Euklidischen
Distanz zwischen einem Eingabevektor und einem Gewichtsvektor. Sie ist
nichts anderes als die Entfernung zweier Vektoren und damit ein Maß für
die Ähnlichkeit dieser.
Nun kann es allerdings vorkommen, dass zwei Gewichtsvektoren die gleiche
euklidische Distanz zum Eingabevektor aufweisen. In solchen Fällen wird entweder zufällig oder ein beliebiger Vektor aus dieser Gruppe gewählt und dessen
Neuron als Sieger bestimmt.
Eine weitere Möglichkeit zur Bestimmung des Siegerneurons ist das maximale Skalarprodukt der beiden Vektoren, aber da, wie schon erwähnt, die
euklidische Distanz am plausibelsten für die Ähnlichkeit ist, wird diese auch
hauptsächlich verwendet.
Ist das Siegerneuron bestimmt, wird nach dem Winner-Takes-All-Prinzip die
Ausgabe des Siegerneurons auf 1, die aller anderen Kartenneuronen auf 0 gesetzt.
3.2
Adaption der Gewichtsvektoren
Jetzt beginnt erst das eigentliche Training der Karte. Die Gewichtsvektoren
des Siegerneurons und die seiner umliegenden Neuronen werden an den Eingabevektor mit Hilfe einer Lernvorschrift angepaßt. Dabei spielt der Grad der
Nachbarschaft zum Siegerneuron eine große Rolle. Vereinfachend beschränken
wir diese Adaption erst einmal auf das Siegerneuron, da dieses sich selbst am
nächsten ist und damit zu 100% lernt:
∆wi,j = α(xi − wi,j )
Dabei ist α die sog. Lernrate, die nach jeder Epoche verkleinert wird, um den
Lernfortschritt der Karte im Laufe des Trainings zu verringern. Sind alle vorhandenen Eingabemuster der Karte einmal präsentiert worden, beginnt eine
neue Epoche, in der wieder alle Muster eingegeben werden. Dies wird solange
wiederholt bis die Lernrate auf 0 gesunken oder eine andere Abbruchbedingung erfüllt ist.
Um die anfangs erwähnte Topologieerhaltung, also die benachbarte Anord5
nung (Aktivierung des Siegerneurons) ähnlicher Eingabemuster in der Karte,
zu gewährleisten, müssen auch Neuronen in der Nachbarschaft des Siegerneurons in den Lernprozess mit einbezogen werden. Dies erfolgt über die Kombination verschiedener Funktionen.
3.3
Nachbarschafts- und Lernratenfunktion
Eine Nachbarschaftsfunktion berechnet den Grad der Nachbarschaft, welcher
zwischen 0 und 1 liegt, eines Ausgabeneurons zum Siegerneuron. Die Nachbarschaftsfunktion ist von den Werten einer Distanz- und Radiusfunktion
abhängig. Letztere bestimmt den Abstand der Ausgabeneuronen zum Siegerneuron und beruht meist auf der Basis der euklidischen Norm. Zu einem
(D)
gegebenen Koordinatenvektor hj des Neurons j, mit der Dimension D, berechnet diese den Abstand zum Ursprung des Koordinatensystems:
s
reukl (hj ) =
D
P
n=1
(n)
(hj )2
Der Abstand zum Siegerneuron mit dem Koordinatenvektor hj 0 wird an der
Stelle hj − hj 0 berechnet. Für das Siegerneuron selbst ist der Wert der Radiusfunktion also 0. Diese kann im übrigen auch auf Basis der Eins- oder
Maximumsnorm beruhen:
• reins (hj ) =
D
P
n=1
(n)
| hj
|
(1)
(D)
• rmax (hj ) = max{| hj | .... | hj
|}
Da im Laufe des Trainings nach jedem Eingabemuster der Einflussbereich
des Siegerneurons abnehmen soll, wird eine monoton fallende Distanzfunktion
benötigt. Dies ist sinnvoll, da sich die Karte so besser entfalten kann und
schneller konvergiert. Mögliche Funktionen sind folgende:


 c(1 −
• lineare Distanzfunktion: dlin (t) = 

t
)
te nd
für t < tend
0 sonst
−tc2
• exponentielle Distanzfunktion: dexp (t) =qc1 e
• Wurzel-Distanzfunktion: dwurzel (t) = c1 ( 1t )c2
Wobei t die aktuelle, und tend die Epoche, bei der das Training abgebrochen
werden soll, darstellt.
Die Ergebnisse der Radius- und Distanzfunktion werden der Nachbarschaftsfunktion als Parameter übergeben, welche den Grad der Nachbarschaft liefert. Dieser bestimmt letztendlich wie stark die Gewichte der Neuronen ange6
paßt werden. Auch hier sind verschiedene Arten von Funktionen, wie z.B. die
Gauß’sche Glockenkurve oder die Mexican-Hat-Funktion, anwendbar.
Die simpelste Nachbarschaftsfunktion ist die Rechtecksfunktion:
• frechteck (r, d) =


1
r<d

0
sonst
Alle Neuronen im Einflussbereich des Siegerneurons erhalten den Nachbarschaftsgrad 1 — lernen also so wie das Siegerneuron — alle anderen Neuronen
erfahren keine Veränderung ihrer Gewichte.
Eine weitere Möglichkeit zur Berechnung des Nachbarschaftsgrads liefert die
aus der Wahrscheinlichkeitsrechnung bekannte Gauß’sche Glockenkurve:
r
• fgauss (r, d) = e−( d )
Folgende Abbildung zeigt den Nachbarschaftsgrad über die Gaussfunktion für
eine zweidimensionale Ausgabeschicht. Das Siegerneuron liegt hier im Koordinatenursprung:
Abbildung 5. Gauß’sche Glockenkurve
Die Mexican-Hat-Funktion ist in Abbildung 6 zu sehen. Sie besitzt einen
negativen Wertebereich. Die Gewichte der Neuronen mit einem solchen Nachbarschaftsgrad werden dem Eingabemuster nicht ähnlicher gemacht, sondern
noch mehr verfälscht. Laut [Läm01] hat dies jedoch ein Divergieren der Karte
zur Folge, weshalb in der Praxis auf diese Abstoßung der Gewichte verzichtet
wird.
7
Abbildung 6. Mexican-Hat-Funktion
Die schon angesprochene Lernratenfunktion verhält sich ähnlich wie die
Distanzfunktion, weshalb hier nur eine spezielle Funktion angesprochen werden soll: die Ordering-Phase-Funktion
Sei t die aktuelle Epoche, torder eine Epoche, ab der die Lernrate konstant
bleibt, und tend die Anzahl der insgesamt zu durchlaufenden Epochen:
α=



c −






0,8c
torder



1−






3.4
· c falls t < torder
0, 2 falls torder < t ≤ 0, 8 · t
1
tend
· t falls 0, 8 · tend < t ≤ tend
0 sonst
Der Lernalgorithmus
Nachdem nun alle nötigen Funktionen definiert und erklärt wurden, kann nun
der Lernalgorithmus formuliert werden. Man unterscheidet bei selbstorganisierenden Karten zwischen zwei verschiedenen Lernmethoden, dem musterweisen und epochenweisen Lernen. Beim musterweisen Lernen erfolgt die Adaption der Gewichtsvektoren nach jedem Eingabemuster, das an die Eingabeschicht angelegt wurde, wohingegen beim epochenweisen Lernen die Gewichtsanpassung erst nach Durchlaufen einer kompletten Epoche, also nach Eingabe
aller vorhandenen Eingabemuster, vorgenommen wird. Am häufigsten wird
8
jedoch das musterweise Lernen verwendet, weshalb wir uns auf diesen Algorithmus beschränken:
Algorithm 1 Musterweises Lernen einer SOM
1: Initialisiere die Verbindungsgewichte wj
. Erklärung s.u.
2: Bestimme für jedes Eingabemuster X das Siegerneuron j(X) :
s
j(X) = arg min k X − Wj k= arg min
j
j
i
P
n=1
(xi − wij )2
3: Bestimme für jedes Ausgabeneuron j den Grad der Nachbarschaft λ(j)
zum Siegerneuron während der Epoche p:
λ(j) = f (rnorm (hj − hj 0 ), d(p))
4: Passe die Gewichtsvektoren der betreffenden Neuronen um ∆wj an:
∆wj = (X − Wj ) · λ(j) · α(p)
5: Falls eine vorher festgelegte Abbruchbedingung (z.B. Epochenanzahl)
erfüllt ist, breche das Training ab, ansonsten iteriere die Epochenzahl
p und fahre mit Schritt (2) fort.
Über diesen Algorithmus läßt sich nun eine selbstorganisierende Karte trainieren. Bevor allerdings mit dem Training begonnen werden kann, müssen die
Eingabedaten korrekt aufbereitet und kodiert werden, um diese überhaupt für
die Karte “lesbar” zu machen. Will man der SOM z.B. Tierdaten (siehe Anwendungsbeispiel) präsentieren, so ist klar, dass die Tiermerkmale passend,
d.h. in richtiger Relation zueinander, kodiert werden müssen, da ansonsten
das Training fehlerhaft durchgeführt wird.
Liegen die Eingabedaten bereits vor, muss die richtige Neuronenanzahl bestimmt werden. Die Anzahl der Eingabeneuronen ist offensichtlich gleich der
Dimension der Eingabedaten, aber die Menge der Ausgabeneuronen ist noch
ungeklärt. Hier empfiehlt es sich, durch vorhergehende Tests die passende
Größe des Neuronengitters ausfindig zu machen. Ein den selbstorganisierenden Karten verwandtes neuronales Netz sind die Growing Cell Structures, die
dieses Problem umgehen, indem sie während des Trainings neue Neuronen
bilden bzw. alte Neuronen entfernen können.
Ist die Größe des Netzes bestimmt, muss nun die Gewichtsinitialisierung geklärt werden (Schritt(1) im Lernalgorithmus). Es bieten sich zwei Möglichkeiten an, die Gewichtsvektoren festzulegen: entweder man initialisiert die
Gewichte zufällig klein, oder man setzt die Gewichtsvektoren alle auf einen
festen Wert. Dieser kann laut [Uni04] auch in Abhängigkeit von der Anzahl
der Eingabeneuronen stehen, z.B. √1UI
Letztendlich müssen jetzt noch Nachbarschafts- und Lernratenfunktion
definiert werden. Durch unterschiedliche Kombinationen der Funktionen lassen sich verschiedene Ergebnisse erzielen, wie folgende Abbildungen zeigen.
9
Abbildung 7. 8x8 Kohonenkarte nach zufälliger Initialisierung, 20, 50 und 300 Epochen
Abbildung 8. 8x8 Kohonenkarte nach zufälliger Initialisierung, 50, 100 und 300
Epochen
Abbildung 7 zeigt die Entfaltung einer selbstorganisierenden Karte mit 8x8
Ausgabeneuronen nach zufälliger Gewichtsinitialisierung, und nach jeweils 20,
50 und 300 eingegebenen Epochen. Als Nachbarschaftsfunktion wurde eine
10
Kegelfunktion gewählt. Lernraten- und Distanzfunktion verlaufen jeweils exponentiell. Die Radiusfunktion basiert auf der euklidischen Norm.
Zum Vergleich ist in Abbildung 8 die Karte mit veränderten Trainingsparamtern zu sehen. Diesmal wurde als Nachbarschaftsfunktion die Gauss-Kurve
und als Lernratenfunktion die Ordering-Phase-Funktion gewählt. Es ist deutlich zu erkennen, dass sich Variante 2 zuerst deutlich langsamer entwickelt als
Variante 1. Nach 300 Epochen hat sich die Gauss-Variante jedoch vollkommen entfaltet, wohingegen bei Variante 1 noch leichte topologische Defekte
erkennbar sind.
4
Anwendungsbeispiel: das Rundreiseproblem
Beim Rundreiseproblem geht es darum, die kürzeste Reiseroute zwischen gegebenen Orten zu bestimmen. Der Berechnungsaufwand steigt mit der Anzahl
der Orte exponentiell an. Versucht man dieses Problem mit Hilfe einer selbstorganisierenden Karte zu lösen, wird man feststellen, dass die Lösung zwar
keine 100%-ige Lösung darstellt, aber in Relation zum Berechnungsaufwand
sehr positiv zu bewerten ist.
Jedem Ort wird eine Koordinate zugewiesen, welche an die Eingabeschicht
angelegt wird. Es werden also zwei Eingabeneuronen benötigt, die diese an
die Kartenschicht weiterleiten. Die daraus entstehenden Gewichtsvektoren der
Ausgabeneuronen sind zweidimensional und können ebenfalls als Koordinaten
betrachtet werden. Jedes Neuron spiegelt also einen Ort wieder. Die Gewichtsinitialisierung wird so gewählt, dass die Neuronen bei einer Visualisierung der
Karte einen Kreis mit möglichst kleinem Radius bilden, da dies den Optimalfall für die Anordnung der Orte darstellt.
Abbildung 9. Gewichtsinitalisierung beim Rundreiseproblem
Legt man nun die Orts-Koordinaten an die Eingabeschicht an, so passen sich
die Verbindungsgewichte der Neuronen immer mehr an diese an. Nach mehreren Iterationen verringert sich der Abstand zwischen den Orten und den
zugehörigen Siegerneuronen immer mehr bis letztendlich Orts- und Gewichtskoordinaten nahezu identisch sind. Vor Trainingsbeginn müssen die Neuronen
noch durchnumeriert werden, so dass nach Ende des Lernvorgangs nur noch
der Numerierung gefolgt werden muss, um die Reiseroute zu erhalten.
11
Abbildung 10. Karte nach 1900 Iterationen
Laut [Läm01] ließ sich eine Rundreise durch 150 Orte mit 750 Kartenneuronen innerhalb weniger Sekunden in 1900 Schritten berechnen. Abbildung 10
zeigt das Ergebnis dieser Eingaben.
Selbstorganisierende Karten lassen sich jedoch nicht nur für das Rundreiseproblem benutzen. Sie finden auch Anwendung in der Robotik, z.B. für die
Steuerung eines Roboterarms in der Industrie, dessen Position mit Hilfe zweier
Kameras erfaßt und an eine Kohonenkarte übergeben wird. Auch eine Klassifizierung von Daten ist mit einer SOM möglich.
Abbildung 11 soll die Topologieerhaltung der selbstorganisierenden Karten
verdeutlichen. An die Eingabeschicht einer SOM wurden kodierte Tiermerkmale angelegt und an die Stelle des Siegerneurons das jeweilige Tier gesetzt.
Das Ergebnis ist gut zu erkennen: verwandte Tierarten wurden auch in der
Karte benachbart angeordnet.
Abbildung 11. Karte nach Eingabe von Tiermerkmalen
12
Literatur
[Uni04] Technische Anwendungen von Selbstorganisierenden Karten, Universität
Passau; http://lrs2.fmi.uni-passau.de/online/SOM/index.html
[Läm01] Uwe Lämmel, Jürgen Cleve: Lehr- und Übungsbuch Künstliche Intelligenz,
Fachbuchverlag Leipzig, 2001, ISBN: 3-446-21421-6
[Roj93] Raul Rojas: Theorie der neuronalen Netze - Eine systematische Einführung,
Springer-Lehrbuch, 1993, ISBN: 3-540-56353-9
[Neg01] Michael Negnevitsky: Artificial Intelligence: A Guide to Intelligent Systems,
Addison Wesley, Band 1, 2001, ISBN: 0-201-71159-1
13

Documentos relacionados