10. Modulare Neuronale Netze - Technische Universität Chemnitz

Werbung
Konnektionistische Wissensverarbeitung
9.
9.1.
Seite 83
Kohonen-Netze
Selbstorganisation
Bei einem selbstorganisierenden Netz wird in jedem Rechenschritt ein Eingabevektor eingegeben.
Diese Vektoren bilden die „Umgebung“ des Netzes. Jede Eingabe bewirkt eine Anpassung der
Netzparameter. Wenn diese Anpassungen richtig gesteuert werden, kann das Netz eine interne
Repräsentation der Umgebung erzeugen. Die Lern- und die „Produktions“-Phase sind dabei nicht
getrennt, deshalb wird die Repräsentation ständig aktualisiert. Die Form der Repräsentation ist die,
dass der Raum der Eingabevektoren in Segmente zerlegt wird und die Vektoren innerhalb eines
Segments auf einen Zielvektor abgebildet werden. Abbildung 9.1 illustriert die Repräsentation.
A
B
f
Abbildung 9.1
Das Netz berechnet eine Funktion von einem Eingaberaum A in einen Ausgaberaum B. Die
Zerlegung des Eingaberaums in Segmente wird eine Karte des Eingaberaums genannt.
9.2.
Kohonens Modell
9.2.1. Der Lernalgorithmus
Ein n-dimensionaler Raum soll durch eine eindimensionale Kette von Kohonen-Einheiten
abgebildet werden. Die Einheiten sind als Folge angeordnet und von 1 bis m durchnummeriert. Jede
Einheit hat einen n-dimensionalen Gewichtsvektor, also die i-te Einheit den Vektor wi. Bei der
Eingabe eines Vektors x erhält jede Einheit diesen Vektor und berechnet eine Erregung. Diese wird
bestimmt durch die Euklidische Distanz zwischen ihrem Gewichtsvektor und dem Eingabevektor.
Geringe Distanz bedeutet hohe Erregung. Durch den Lernprozess soll sich jede Einheit an eine
bestimmte Region des Eingaberaums anpassen. Das heißt, wenn ein Vektor aus dieser Region
eingegeben wird, soll die betreffende Einheit maximal erregt werden.
Jede Einheit besitzt eine Nachbarschaft, definiert durch den Radius r. Ist z.B. r = 1, dann sind die
Nachbarn des k-ten Elements (bei linearer Anordnung) das (k-1)-te und das (k+1)-te Element. Die
Einheiten an den Enden der Kette haben asymmetrische Nachbarschaften. Für beliebiges r enthält
die Nachbarschaft einer Einheit 2r Einheiten. Abbildung 9.2 zeigt ein eindimensionales KohonenNetz.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 84
Nachbarschaft von Einheit 2 mit Radius 1
1
2
3
w1
w2
w3
m-1
m
wm-1
wm
Eingabevektor x
Abbildung 9.2
Zum Gebrauch der Nachbarschaft einer Einheit im Lernalgorithmus wird eine Nachbarschaftsfunktion  definiert. (i, k) bezeichnet die Stärke der Verbindung zwischen Einheit i und Einheit k
während des Lernprozesses. Eine einfache Wahl für die Stärke ist (i, k) = 1 für alle Einheiten i in
der Nachbarschaft von Einheit k und (j, k) = 0 für alle anderen Einheiten.
Algorithmus 9.1. Kohonen-Lernen
Initialisierung
Die n-dimensionalen Gewichtsvektoren w1, w2, ..., wm der m Einheiten werden zufällig gewählt.
Initiale Werte für den Radius r, die Lernkonstante , und die Nachbarschaftsfunktion  werden
gewählt.
Schritt 1
Wähle einen Eingabevektor  entsprechend der gewünschten Wahrscheinlichkeitsverteilung über
dem Eingaberaum.
Schritt 2
Die Einheit k mit maximaler Erregung, d.h. für die die Euklidische Distanz zwischen wi und 
minimal ist (i = 1, ..., m), wird gewählt.
Schritt 3
Die Gewichtsvektoren werden nach der folgenden Regel aktualisiert:
wi  wi + (i, k)(  wi), für i = 1, ..., m
Schritt 4
Stopp, wenn die maximale Zahl der Iterationen erreicht ist, sonst modifiziere  und  und fahre mit
Schritt 1 fort.
Die Modifikation der Gewichtsvektoren in Schritt 3 zieht sie in die Richtung des Eingabevektors .
Wird dieser Schritt mehrfach wiederholt, dann ist eine gleichförmige Verteilung der Gewichtsvektoren im Eingaberaum zu erwarten (vorausgesetzt die Eingabevektoren sind gleichförmig verteilt gewählt). Der Radius der Nachbarschaften wird nach einem vorab festgelegten Plan reduziert,
der Zeitplan heißen soll. Bei der Anpassung eines Gewichtsvektors werden die Gewichtsvektoren
der benachbarten Einheiten mit angepasst, allerdings in geringerem Maß. Während des Trainingsprozesses verringern sich sowohl die Größe der Nachbarschaft als auch der Wert von , also insgesamt der Einfluss einer Einheit auf die Nachbareinheiten. Auch die Lernkonstante  wird reduziert.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 85
Abbildung 9.3 zeigt das Ergebnis eines Versuchs mit einem eindimensionalen Kohonen-Netz. Die
Einheiten sind durch Punkte dargestellt. Der Eingabebereich hat die Form eines Dreiecks. Im Lauf
des Lernprozesses werden die Einheiten nach ihrem Wert so auf die Fläche des Dreiecks verteilt,
dass jede ein kleines Gebiet des Eingaberaums repräsentiert. Die Einheit in der rechten unteren
Ecke repräsentiert z.B. die grau unterlegte Fläche. Verwendet man eine Winner-takes-all-Strategie,
dann ist sie die einzige Einheit, die bei Eingabe eines Vektors aus der grauen Fläche feuert.
Abbildung 9.3
Kohonen-Netze können in mehrdimensionalen Gittern angeordnet werden. Besonders interessant ist
eine zweidimensionale Anordnung. Abbildung 9.4 zeigt dafür ein Beispiel. Die Nachbarschaft mit
Radius r der Einheit k besteht hier aus allen Einheiten, die höchstens r Plätze nach links, rechts
oben oder unten angeordnet sind. Die Nachbarschaft ist also ein quadratischer Teil des Netzes. Man
kann beliebige andere Nachbarschaften definieren, aber diese wird in den meisten Anwendungen
benutzt. Die Abbildung zeigt, wie sich ein zweidimensionales Kohonen-Netz in einem quadratischen Eingaberaum entfaltet. Die vier Abbildungen zeigen den Zustand des Netzes nach 100, 1000,
5000 und 10000 Iterationen.
Abbildung 9.4
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 86
9.2.2. Abbildung hochdimensionaler Räume
Werden irgendwelche empirischen Daten verwendet, dann kennt man gewöhnlich ihre tatsächliche
Dimension nicht. Haben die Eingabedaten z.B. die Dimension n, dann kann es trotzdem sein, dass
sie sich auf ein Vielfaches einer niedrigeren Dimension reduzieren lassen. Deshalb ist es im
Allgemeinen nicht unmittelbar klar, welche Netzdimension für eine gegebene Datenmenge gewählt
werden sollte. Kohonen untersuchte was geschieht, wenn ein niedrigdimensionales Netz zur
Abbildung eines hochdimensionalen Raums verwendet wird. Das Netz müsste sich gewissermaßen
auffalten um den Raum zu füllen. Im Fall der Abbildung eines dreidimensionalen Raums in einem
zweidimensionalen Netz entwickelt sich das Netz in x- und y-Richtung und faltet sich in zRichtung. Die Einheiten versuchen, den ganzen Raum zu füllen, aber ihre Nachbarschaften sind
quadratisch, deshalb gelingt dies nicht richtig. In Experimenten konnte gezeigt werden, dass sich
bei der Repräsentation des dreidimensionalen Raums Streifenmuster mit abwechselnder Farbe
ausbilden, ähnlich den Streifen eines Zebras. Die Streifen drücken den Sachverhalt aus, dass die zKomponente der Eingabevektoren zu einer entweder nach links oder nach rechts verschobenen
Repräsentation führt.
Ein Kohonen-Netz ist den Netzen für das unüberwachte Lernen von Kapitel 4 ähnlich. In beiden
Fällen wird versucht, einen Eingaberaum durch Verteilung der Einheiten so zu erfassen, dass sie
bestimmte Teilmengen der Eingabevektoren repräsentieren. Der Hauptunterschied zwischen den
beiden Netztypen ist, dass Kohonen-Netze eine vordefinierte Topologie haben. Die Einheiten sind
in einem Gitter angeordnet und die Lernaufgabe ist, dieses Gitter auf den Eingaberaum zu verteilen.
9.3.
Konvergenzanalyse
9.3.1. Der Lernprozess bei eindimensionalen Netzen
Das einfachste Kohonen-Netz besteht aus einer einzigen Einheit und der Eingabebereich ist das
eindimensionale Intervall [a, b]. Durch den Lernalgorithmus wird das einzige vorhandene Gewicht
x gegen die Mitte des Intervalls konvergieren.
Die Kohonen-Lernregel besteht aus einer Regel für das Aktualisieren des Gewichts:
xn = xn-1 + ( - xn-1)
xn und xn-1 sind die Werte des Gewichts der Einheit in den Schritten n bzw. n-1 und  ist eine
Zufallszahl aus dem Intervall [a, b]. Ist 0 <   1, dann kann die Wertefolge x1, x2, … das Intervall
[a, b] nicht verlassen, d.h. sie ist beschränkt. Der für x erwartete Wert x ist damit ebenfalls
beschränkt, also ist der erwartete Wert der Ableitung von x nach t null,
dx
0
dt
sonst würde x einen Wert kleiner als a oder größer als b annehmen. Wegen
dx
a b

    x   
 x 
dt
 2

folgt
Technische Universität Chemnitz
x 
ab
2
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 87
Die stabilen Zustände des allgemeinen eindimensionalen Falls können auf dieselbe Art untersucht
werden. Seien n Einheiten mit den Gewichten x1, x2, …, xn in einer eindimensionalen Kette
angeordnet. Das Netz soll das Intervall [a, b] ausfüllen. Es wird angenommen, dass die Gewichte
monoton in aufsteigender Reihenfolge angeordnet sind, also a < x1 < x2 < … xn < b. Es wird gezeigt,
dass die erwarteten Werte für die Gewichte folgendermaßen definiert sind:
x i  a  2i  1
ba
2n
(9.1)
Die Verteilung ist statistisch stabil für ein eindimensionales Kohonen-Netz weil die Anziehung, die
auf jedes Gewicht von seinem jeweiligen Gebiet ausgeübt wird im Durchschnitt Null ist. Die
Gewichtswerte oszillieren um die erwarteten Werte x1, …, xn. Da die Gewichte beim
Lernprozess beschränkt bleiben, gilt für i = 1, 2, …, n
dx i
dt
0
(9.2)
Der Lernalgorithmus verändert die relativen Positionen der Gewichte nicht. Gleichung (9.2) gilt,
wenn die erwarteten Werte x1, …, xn homogen verteilt sind, d.h. so, dass die Anziehung von
rechts der Anziehung von links das Gleichgewicht hält. Dies ist aber nur möglich mit der Verteilung
von Gleichung (9.1).
9.3.2. Der Lernprozess bei zweidimensionalen Netzen
Das Intervall [a, b]  [c, d] soll durch ein zweidimensionales Kohonen-Netz mit n  n Einheiten
abgebildet werden. Jede Einheit hat vier unmittelbare Nachbarn, mit Ausnahme der Einheiten an
den Rändern. Der Zustand des Netzes in einem Stadium des Lernprozesses ist in Abbildung 9.5
dargestellt. Die Einheiten sind mit Nij bezeichnet (i, j = 1, …, n).
n1
nn
w1
w1
d
nn
n1
w2
N
n1
N
11
N
N
11
w2
w2
nn
1n
1n
w2
c
11
1n
a w1
w1
b
Abbildung 9.5
Die Netzgewichte seien monoton geordnet, d.h.
und
Technische Universität Chemnitz
w1ij  w1ik
falls j  k
(9.3)
w w
falls i  k
(9.4)
ij
2
kj
2
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 88
w1ij und w2ij bezeichnen die beiden Gewichte der Einheit Nij.
Der Lernprozess beginnt mit einer geordneten Konfiguration der Gewichte in der beschriebenen
Art. Intuitiv ist klar, dass die Gewichte sich homogen in den Eingaberaum verteilen. Das
zweidimensionale Problem kann in zwei eindimensionale zerlegt werden. Der durchschnittliche
Wert der Gewichte aller Einheiten in der j-ten Spalte werde mit
1 n ij
w   w1
n i 1
j
1
bezeichnet. Wegen Gleichung (9.4) sind diese durchschnittlichen Werte monoton geordnet, d.h. für
die erste Koordinate gilt
a  w11  w12    w1n  b
Wegen der monotonen Ordnung der Werte werden die erwarteten Werte w1i homogen im Intervall
[a, b] verteilt sein. Ist die Nachbarschaftsfunktion auf Null gesetzt, dann werden die Gewichte der
Einheiten der ersten Spalte, w111 , w121 , …, w1n1 , um den Durchschnittswert w1i oszillieren. Eine entsprechende Betrachtung kann für die Durchschnittswerte der Gewichte in jeder Reihe von Einheiten
gemacht werden. Wenn die Lernkonstante genügend klein ist, wird die Ausgangsverteilung gegen
einen stabilen Zustand konvergieren.
9.3.3. Die Wirkung der Nachbarschaften der Einheiten
Wie sich die Definition der Nachbarschaftsfunktion auf den endgültigen Zustand der Einheiten
auswirkt, wurde bisher außer Acht gelassen. Angenommen, die Nachbarschaftsfunktion sei folgendermaßen definiert:
 1 falls i  k

 i, k    1 2 falls i  k  1
 0 sonst

Ein lineares Kohonen-Netz werde mit dieser Nachbarschaftsfunktion trainiert. Die stabile
Anordnung, die im Lauf des Trainings erreicht wird, unterteilt den Eingabebereich nicht in gleich
große Abschnitte. Die stabilen Werte für x1 und x2 sind -¼ bzw. ¼, vgl. Abbildung 9.6.
0
-1
x 
1
x 
2
1
Abbildung 9.6
Die Nachbarschaftsfunktion bewirkt eine Konzentration der Einheiten um das Zentrum der
Verteilung. Das genaue Muster hängt von der Art der Funktion und dem Nachbarschaftsradius ab.
Eine starke Verbindung zwischen den Einheiten zieht sie zum Mittelpunkt. Deshalb ist eine
günstige Lernstrategie, mit einer starken Verbindung zu beginnen und diese im Verlauf des
Lernprozesses abzuschwächen. Bei zweidimensionalen Netzen konzentriert diese Lernstrategie das
Netz im Mittelpunkt. Der Rand zieht aber das Netz an, entfaltet es und trägt dazu bei, Konvergenz
zu erreichen. Der Lernprozess kann dadurch unterstützt werden, dass man das Netz mit kleinen
Gewichtswerten initialisiert.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 89
9.3.4. Metastabile Zustände
Die Konvergenz eines Netzes hängt u.a. von der Lernregel ab. Auch im eindimensionalen Fall kann
es passieren, dass das Netz gegen einen falsch geordneten Zustand konvergiert. Einen solchen
Zustand nennt man einen metastabilen Zustand.
Für eine Kette von Gewichten w1, w2, …, wn sei die Lernregel definiert durch
wk = wk + ( - wk)
k ist hierbei der Index des am nächsten bei der Eingabe  und seinen beiden Nachbarn liegenden
Gewichts (abgesehen von den am Rand liegenden Einheiten) und  ist eine Lernkonstante. Die
Lernregel impliziert, dass die Nachbarschaftsfunktion nicht von einer Einheit in der Kette zur
nächsten abnimmt. Normalerweise wird aber eine Nachbarschaftsfunktion (i, k) zum Training des
Netzes benutzt, so dass man sich fragen kann, ob unter Umständen das eindimensionale KohonenNetz eventuell gegen einen falsch geordneten Zustand konvergieren kann. Das kann tatsächlich
passieren, wenn die Nachbarschaftsfunktion zu rasch abnimmt.
Um die Entstehung metastabiler Zustände zu beobachten wird eine einfache Kette aus drei
Einheiten betrachtet. Sie wird im Intervall [0, 1] in der in Abbildung 9.7 dargestellten falsch
geordneten Anfangskonfiguration gestartet.
0
1
3
2
w1
w3
w2
1
Abbildung 9.7
Die Kette ist im Gleichgewicht, wenn die Anziehung auf jede Einheit Null ist. Die folgende
Nachbarschaftsfunktion wird betrachtet:
 1 falls i  k

 i, k   a falls i  k  1
 0 sonst

a ist eine reelle positive Konstante. Die Lernregel ist
wk = wk + (i, k)( - wk)
k,  und  sind wie oben definiert. Die Gesamtanziehungskraft auf jedes Gewicht wird mit f1, f2 und
f3 bezeichnet. In der Konfiguration von Abbildung 9.7 sind diese Kräfte
a
a
 3

1 a
f1     a  w1  w2     w3 
4
2
 4

4 4
(9.5)
a
1
 3

1 a
w1     a  w2     w3 
4
2
 4

4 4
(9.6)
f2 
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
f3 
Seite 90
1
a
1 a
 1 3a 
w1     w2      w3 
4
2
4 4
 2 4 
(9.7)
Das ist ein lineares Gleichungssystem für die drei Gewichte. Die assoziierte Kräftematrix ist
a
1 a 
 a  3

1
F  a
a 3
a 1 
4
a  1  3a  2 
 1
Die Matrix F kann als negative Hesse-Matrix einer Potenzialfunktion U(w1, w2, w3) betrachtet
werden. Die Lösung ist stabil, wenn –F positiv definit ist. Ist a = 0, d.h. die Einheiten ziehen ihre
Nachbarn nicht an, dann ist w1 = 1/6, w2 = 5/6 und w3 = 1/2 die Lösung des Gleichungssystems. Das
ist aber ein stabiler, falsch geordneter Zustand. Wird a etwas erhöht, dann ist die Matrix des
Gleichungssystems immer noch nicht invertierbar und die Lösungen entsprechen den Randbedingungen des Problems. Man kann auch einen maximalen Wert für a berechnen, bis zu dem es metastabile Zustände gibt. Für a = 0.3 erfüllen die stabilen Lösungen nicht mehr die Randbedingungen
des Problems, so dass geordnete Zustände für Werte über 0.3 zu erwarten sind.
9.3.5. Welche Dimension sollte für ein Kohonen-Netz gewählt werden?
Die Dimension der Datenmenge kann experimentell berechnet werden, indem man die Schwankung
der Anzahl der Datenpunkte misst, die näher als ein gegebenes  an einem anderen Datenpunkt
liegen, wobei  allmählich erhöht oder vermindert wird. Liegt z.B. die Datenmenge auf einer Ebene
im dreidimensionalen Raum und wird ein Datenpunkt  zufällig gewählt, dann ist N() die Zahl der
Datenpunkte, die nicht weiter als  von  entfernt liegen. Diese Datenpunkte müssen in einem Kreis
um  liegen, d.h. es muss das Potenzgesetz N()  2 gelten. In diesem Fall sollte ein zweidimensionales Netz gewählt werden. Im allgemeinen Fall zeichnet man für diese Berechnung den Verlauf
von log(N()) über log(). Die Neigung der Regressionskurve für  gegen Null ist die fraktale
Dimension der Datenmenge.
Die Bestimmung des geeigneten Potenzgesetzes bedeutet, dass in manchen Fällen die Funktion an
die Messungen angepasst werden muss. Da die Dimension der Daten manchmal am besten durch
einen Bruch angenähert werden kann, spricht man von der fraktalen Dimension der Daten. Es
wurde experimentell gezeigt, dass bei Kohonen-Netzen, die an die fraktale Dimension der Daten
angenähert sind, der Interpolationsfehler kleiner ist als bei Netzen anderer Größen. Das bedeutet,
dass die Einheiten in diesen Netzen optimal genutzt werden um den Eingaberaum zu
approximieren.
9.4.
Anwendungen
9.4.1. Approximation von Funktionen
Mit einem Kohonen-Netz kann eine kontinuierliche reelle Funktion f über dem Definitionsbereich
[0, 1]  [0, 1] approximiert werden. Die Menge P = {(x, y, f(x, y))|x, y  [0, 1]} ist eine Oberfläche
im dreidimensionalen Raum. Ein ebenes Gitter soll an diese Fläche angepasst werden. P ist also der
Eingabebereich, der mit einem Kohonen-Netz abgebildet werden soll. Wenn der Lernprozess
gestartet wird, bewegt sich das Netz in die Richtung von P und verteilt sich selbst um den
Eingaberaum zu überdecken. Abbildung 9.8 zeigt das Ergebnis eines Experiments, bei dem die
Funktion z = 5sin x + y gelernt werden sollte. Die Kombinationen von x und y wurden in einem
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 91
kleinen Bereich erzeugt. Am Ende des Lernprozesses hat das Netz die Funktion f in dem
betreffenden Wertebereich gelernt.
Abbildung 9.8
Die obige Funktion hat die Eigenschaft, dass sie die optimale Steuerung des Stangen-BalanceSystems garantiert. Ein solches System besteht aus einer Stange, die auf einem sich bewegenden
Fahrzeug fixiert ist. Die Stange kann um den Fixationspunkt rotieren und das Fahrzeug kann sich
nur nach rechts oder links bewegen. Die Stange muss im Gleichgewicht gehalten werden, indem das
Fahrzeug hin und her bewegt wird. Die Kraft, die erforderlich ist um die Stange im Gleichgewicht
zu halten, ist f() =  sin  +  d/dt, wobei  den Winkel zwischen dem Pfahl und der Vertikalen
bezeichnet und  und  Konstanten sind, vgl. Abbildung 9.9. Für kleine Werte von  kann eine
lineare Approximation benutzt werden. Da ein Kohonen-Netz die Funktion f lernen kann, kann es
auch zur automatischen Steuerung des Stangen-Balance-Systems benutzt werden.

f
Abbildung 9.9
Ist eine Kombination von x und y gegeben, oder hier von  und d/dt, dann wird die Einheit (i, j)
gefunden, für die die Euklidische Distanz zwischen ihren assoziierten Gewichten w1(i,j) und w2(i,j)
und (, d/dt) minimal ist. Der Wert der Funktion an diesem Punkt ist der gelernte Gewichtswert
w3(i,j), d.h. eine Approximation an den Wert der Funktion f. Das Netz kann also wie eine Tabelle zur
Aufsuche der Werte von f benutzt werden. Eine Tabelle zu benutzen ist im Allgemeinen effizienter
als den Funktionswert jedes Mal von neuem zu berechnen. Wenn die Funktion in dieser Weise
durch ein Kohonen-Netz gelernt worden ist, spiegelt das Netz ein Backpropagationnetz wider. Das
Kohonen-Netz kann sich kontinuierlich an sich verändernde Bedingungen anpassen. Es verhält sich
wie eine adaptive Tabelle, die mit minimalem Aufwand an Hardware aufgebaut werden kann. Aus
diesem Grund werden Kohonen-Netze gerne in der Robotik verwendet.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 92
10. Modulare Neuronale Netze
10.1. Konstruktive Algorithmen für modulare Netze
10.1.1. Kaskadenkorrelation
Ein wichtiges aber schwieriges Problem bei der Konstruktion Neuronaler Netze ist die Wahl einer
geeigneten Anzahl verborgener Schichten. Dieses Problem versucht der KaskadenkorrelationsAlgorithmus zu lösen indem er neue Einheiten zu dem Netz entsprechend dem verbleibenden
Approximationsfehler hinzufügt. Auf diese Weise erhält das Netz eine bestimmte Struktur und die
Trainingszeit wird reduziert. Abbildung 10.1 veranschaulicht das Prinzip des Algorithmus. Es wird
angenommen, dass für die zu lernende Aufgabe nur eine Ausgabeeinheit notwendig ist. Der
Algorithmus beginnt mit null verborgenen Einheiten (a) und fügt in jedem Zeitschritt eine Einheit
entsprechend dem verbleibenden Fehler hinzu (b), (c). Die Ausgabeeinheit wird darauf trainiert, den
quadratischen Fehler zu minimieren. Der Algorithmus stoppt, wenn sich der Fehler nicht weiter
verringert. Ist der Fehler größer als eine vorgegebene Schranke, dann wird eine neue Einheit
hinzugefügt und das Netz von neuem trainiert.
Der mittlere Fehler des Netzes sei E und die Fehler für die einzelnen Eingabemuster i = 1, 2, …, p
sei Ei, entsprechend V der mittlere Ausgabewert und Vi die einzelnen Ausgabewerte. Eine
verborgene Einheit wird unabhängig vom Rest des Netzes darauf trainiert, den Absolutbetrag der
Korrelation zwischen Vi – V und Ei – E zu maximieren. Die zu maximierende Größe ist also
H1
H1
Ausgabe
H2
Ausgabe
(a)
(b)
Ausgabe
(c)
trainierte Gewichte
fixierte Gewichte
Abbildung 10.1
S
 V
p
i 1
i
 V Ei  E 
(10.1)
Die Idee ist dabei, die verborgene Einheit auf die Entdeckung des Restfehlers im Netz zu
spezialisieren. Für das Training wird der übliche Backpropagation-Algorithmus verwendet, aber so
modifiziert, dass er das Vorzeichen des Arguments des Absolutbetrags-Operators berücksichtigt.
Man kann die Modifikation auch vermeiden, wenn man an der Ausgabekante der verborgenen
Einheit noch ein spezielles Gewicht vorsieht, das darauf trainiert wird, das geeignete Vorzeichen
anzunehmen.
Ist die verborgene Einheit H1 trainiert, d.h. wenn das Korrelationsniveau nicht weiter erhöht werden
kann, dann wird sie in das Netz eingefügt (b). Die Gewichte an den Kanten zu der verborgenen
Einheit werden fixiert. Die Ausgabeeinheit erhält jetzt Eingaben von den Eingabeplätzen und von
der verborgenen Einheit. Alle Gewichte der Ausgabeeinheit werden erneut trainiert, bis der Fehler
nicht mehr weiter fällt, und dann wird geprüft, ob eine neue Einheit erforderlich ist. Jede neue
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 93
Einheit erhält Eingaben von den Eingabeplätzen und von allen früher eingefügten verborgenen
Einheiten. Der Algorithmus läuft so lange, bis der Approximationsfehler eine Schranke unterschritten hat.
Der Algorithmus benötigt nicht viel Zeit zum Training, weil bei jeder Iteration nur eine Schicht von
Gewichten trainiert werden muss, im Prinzip nur eine sigmoidale Einheit. Das endgültige Netz hat
mehr Struktur als die üblichen flachen zyklenfreien Netze. Wenn das Training korrekt durchgeführt
wird stoppt der Algorithmus, wenn die minimal notwendige Zahl verborgener Einheit ausgewählt
worden ist. Um dies zu garantieren kann man mehrere verborgene Einheiten in jeder Iteration trainieren und diejenige mit der größten Korrelation in das Netz einfügen. Sind mehrere Ausgabeeinheiten vorhanden, dann wird in jeder Iteration der Durchschnitt der Korrelationswerte aller
Ausgabeeinheiten maximiert. In Gleichung (10.1) wird dazu die Summe über alle Ausgabeeinheiten
eingefügt.
10.1.2. Optimale Module und Mischung von Experten
Die Kaskadenkorrelation kann als Spezialfall einer allgemeineren Strategie betrachtet werden, bei
der spezielle Module auf jeweils eine Aufgabe trainiert werden. Wenn sie stetige und differenzierbare Funktionen erzeugen, können sie in jedem Backpropagation-Netz verwendet werden. Die
Parameter der Module werden nach dem Training fixiert.
In Klassifizierungsnetzen wird ein ähnlicher Ansatz verwendet. Dort werden optimale unabhängige
Zwei-Klassen-Klassifizierer als Bausteine für größere Netze verwendet. Angenommen, man will
ein Netz zum Klassifizieren von Sprachdaten nach einem von 10 verschiedenen Phonemen
konstruieren. Eine Möglichkeit dazu ist, verborgene Einheiten so zu trainieren, dass sie ein Phonem
von einem anderen unterscheiden können. Die Zahl unterschiedlicher Phonempaare ist 45, deshalb
müssen 45 verborgene Einheiten trainiert werden. Das Training geht rasch, danach werden die 45
Einheiten zusammen in das Netz eingefügt. Die Ausgabeeinheiten können eine nach der anderen
trainiert werden. Wie bei der Kaskadenkorrelation muss in jeder Iteration nur eine Schicht von
Gewichten trainiert werden. Soll eine neue Kategorie eingeführt werden, z.B. ein neues Phonem,
dann müssen nur zusätzliche verborgene Einheiten für die neue Klasse und die schon existierenden
Klassen trainiert und in die verborgene Schicht eingefügt werden und die Ausgabeschicht muss neu
trainiert werden.
Ein allgemeinerer Ansatz ist die Mischung von Experten. Ist eine Trainingsmenge aus p Paaren (x1,
y1), …, (xp, yp) gegeben, dann wird das komplette Netz aus mehreren Experten-Teilnetzen aufgebaut. Jedes von ihnen erhält die Eingabe x und erzeugt die Ausgabe y mit der Wahrscheinlichkeit
Py x, i 
wobei i der Parametervektor des i-ten Experten ist. Die Ausgabe jedes Expertenteilnetzes wird von
einem Schlüsselteilnetz gewichtet, das aus der Eingabe x für jedes der m Expertenteilnetze die
Schlüsselwerte g1, g2, …, gm berechnet. Sie stellen die Wahrscheinlichkeit dafür dar, dass jedes
Expertennetz das korrekte Ergebnis berechnet. Die endgültige Wahrscheinlichkeit für die
Berechnung von y ist durch das Produkt der Berechnungen der einzelnen Experten und ihres
zugehörigen Schlüsselwerts gegeben. Die Mischung der Experten kann in verschiedenen Ebenen
organisiert werden, wie ein optimaler Entscheidungsbaum. Dann heißt das gesamte Netz eine
hierarchische Mischung von Experten.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 94
10.2. Hybride Netze
10.2.1. Die ART-Architektur
Die Netze der Familie der ART-Architekturen (Adaptive Resonance Theory) stellen hybride
Modelle von Netzen dar. Ihr Ziel ist, biologisch adäquatere Modelle zu bauen als zyklenfreie Netze
oder Standard-Assoziativspeicher. Die ART-Netze klassifizieren eine stochastische Folge von
Vektoren in Cluster. Die Dynamik der Netze besteht aus einer Folge automatisch ausgeführter
Schritte, die das Lernen bei Menschen widerspiegeln.
Abbildung 10.2 illustriert die Aufgabe, die das Netz lösen soll. Die Gewichtsvektoren w1, w2, …,
wm repräsentieren Kategorien im Eingaberaum. Alle Vektoren innerhalb des Konus um einen
Gewichtsvektor werden als Elemente eines spezifischen Clusters betrachtet. Die Gewichtsvektoren
sind mit rechnenden Einheiten in einem Netz assoziiert. Jede dieser Einheiten gibt nur für Vektoren
innerhalb ihres assoziierten Konus mit Radius r eine 1 aus. Der Wert r ist umgekehrt proportional
zum „Aufmerksamkeitsparameter“ der Einheit. Ist r klein, dann ist die Klassifikation des
Eingaberaums feinkörnig. Ein großer Wert für r erzeugt eine Klassifikation niedriger Granularität,
d.h. eine mit großen Clustern. Das Netz wird dazu trainiert die für eine Datenmenge geeigneten
Gewichtsvektoren zu finden.
Sind die Gewichtsvektoren bestimmt, dann berechnet das Netz, ob neue Daten in den vorhandenen
Clustern klassifiziert werden können. Ist das nicht der Fall, z.B. wenn ein neuer Vektor weit von
den Gewichtsvektoren entfernt ist, dann wird ein neues Cluster mit einem neuen assoziierten
Gewichtsvektor erzeugt. Sind z.B. in Abbildung 10.2 zunächst nur die Gewichtsvektoren w1 und w2
vorhanden und wird w3 hinzugefügt, dann kann dieser in die beiden vorhandenen Cluster nicht
eingeordnet werden und ein neues Cluster um den Vektor w3 herum wird gebildet. Das Netzt erhält
seine Plastizität, weil es immer auf unbekannte Eingaben reagieren kann, und seine Stabilität, weil
schon existierende Cluster nicht durch neue Informationen ausgelöscht werden. Damit das Netz
funktionieren kann, müssen ausreichend viele Einheiten vorhanden sein, damit entsprechend viele
Gewichtsvektoren repräsentiert werden können.
Abbildung 10.2
Abbildung 10.3 zeigt die grundlegende Struktur von ART-1. Das Modell besitzt zwei elementare
Schichten rechnender Einheiten. Schicht F2 enthält Elemente, die nach der „Winner-takes-all“Methode feuern, d.h. nur die Einheit, die das maximale Skalarprodukt ihres Gewichtsvektors mit
der Eingabe erhält, gibt eine 1 aus. In Abbildung 10.3 hat gerade die zweite Einheit von F2 eine 1
erzeugt und die übrigen Einheiten haben keine Ausgabe erzeugt. Alle Gewichtsvektoren der
Einheiten in F2 sind zu Beginn gleich, genauer: alle Komponenten sind auf 1 gesetzt, und
differenzieren sich im Lauf des Trainings aus.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 95
Kategorien
0
1
0
0
Aufmerksamkeit
F2
-n
F1
w12
w22
2
ResetSignal
2
2
-1
x1
0
x2
xn
1
-1
r
-1
0
r
1
1
r
Abbildung 10.3
Die Schicht F1 erhält binäre Eingabevektoren von der Eingabeschicht. Die Einheiten von F1 haben
alle den Schwellenwert 2. Wenn ein Eingabevektor ankommt, wird er zu Schicht F1 weitergeleitet
und von dort zu Schicht F2. Wenn eine Einheit in F2 feuert, schaltet das negative Gewicht –n die
Aufmerksamkeitseinheit aus. Außerdem sendet die Gewinnereinheit eine 1 über die Verbindungen
mit F1 zurück an F1. Jede Einheit in F1 erhält als Eingabe die entsprechende Komponente des
Eingabevektors x und des Gewichtsvektors w. Die i-te Einheit von F1 vergleicht xi mit wi und gibt
das Produkt xiwi aus. Die Reset-Einheit erhält diese Produkte und die Komponenten von x,
gewichtet mit dem Aufmerksamkeitsparameter r, d.h. sie berechnet die Ungleichung
n
r  xi  x  w  0
i 1
Dies ist gleichbedeutend mit dem Test
xw
i1 xi
n
r
Das heißt, die Reset-Einheit feuert nur, wenn die Eingabe außerhalb des Aufmerksamkeitskonus der
gewinnenden Einheit liegt. Das Reset-Signal wird an F2 geschickt, aber nur die Gewinnereinheit
wird dadurch gehemmt. Dadurch wird erneut die Aufmerksamkeitseinheit aktiviert und eine neue
Runde der Berechnung beginnt.
Wie man sieht gibt es in dem Netz nur dann Resonanz, wenn die Eingabe nahe genug bei einem
Gewichtsvektor w liegt. Die Gewichtsvektoren in Schicht F2 werden mit allen Komponenten gleich
1 initialisiert und r wird zwischen 0 und 1 gewählt. Dadurch wird garantiert, dass irgendwann ein
unbenutzter Vektor zur Repräsentation eines neuen Clusters verwendet wird. Der ausgewählte
Gewichtsvektor w wird aktualisiert, indem er in Richtung von x bewegt wird. Dies geschieht so,
dass alle Komponenten von w auf Null gesetzt werden, die in x ebenfalls Null sind.
Der Zweck des Reset-Signals ist, alle Einheiten zu hemmen, die nicht in Resonanz mit der Eingabe
sind. Eine Einheit in F2, die noch unbenutzt ist, kann für das neue Cluster, das x enthält, ausgewählt
werden. Auf diese Weise kann eine einzelne Präsentation eines Beispiels, das sich ausreichend stark
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 96
von den bisherigen Daten unterscheidet, zu einem neuen Cluster führen. Durch Modifikation des
Aufmerksamkeitsparameters r kann man die Zahl und Größe der Cluster steuern.
10.2.2. Maximale Entropie
Die Entropie H einer Datenmenge von N Elementen, die k verschiedenen Clustern zugeordnet sind,
ist definiert durch
k
H   pci log  pci 
i 1
p(ci) bezeichnet die Wahrscheinlichkeit, mit der das i-te Cluster getroffen wird, wenn ein Element
der Datenmenge zufällig ausgewählt wird. Sind alle Daten einem einzigen Cluster zugeordnet, dann
ist H = 0. Da sich die Wahrscheinlichkeiten zu 1 addieren, ist die Clusterung mit maximaler
Entropie diejenige, für die alle Clusterwahrscheinlichkeiten identisch sind. Das heißt, die Cluster
tendieren dazu, dieselbe Zahl von Elementen zu enthalten.
Es entsteht ein Problem, wenn die Klassen alle unterschiedlich viele Elemente enthalten. Ein
Beispiel sind Sprachdaten. Hier kommen einige Phoneme häufiger vor als andere, und wenn die
Methode der maximalen Entropie benutzt wird, weichen die Grenzen zwischen den Clustern von
der natürlichen Lösung ab und klassifizieren einige Daten falsch. Abbildung 10.4 illustriert dieses
Problem auf einfache Weise an Hand dreier Cluster. Die natürliche Unterteilung der Daten in
Klassen ist offensichtlich, die maximale Entropie liefert aber die Unterteilung entlang der Linien.
Abbildung 10.4
Das Problem kann mit einem iterativen Algorithmus mit Bootstrapping gelöst werden. Er führt
folgende Schritte durch:
Algorithmus 10.1: Bootstrapped Clustering
cluster: Berechne eine Clusterung mit maximaler Entropie für die Trainingsdaten. Markiere die
ursprünglichen Daten entsprechend dieser Clusterung.
select: Bilde eine neue Trainingsmenge durch zufälliges Auswählen der gleichen Zahl von
Elementen aus jeder Klasse. Gehe zu cluster.
Die Trainingsmenge für die erste Iteration ist die ursprüngliche Datenmenge. Mit diesem
Algorithmus werden die Grenzen zwischen den Clustern unabhängig von der Zahl der Elemente in
jedem Cluster angepasst, wodurch eine natürlichere Lösung gefunden wird.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 97
10.2.3. Counterpropagation-Netze
Abbildung 10.5 zeigt den Aufbau eines Counterpropagation-Netzes. Die Eingabe besteht aus einem
n-dimensionalen Vektor. Dieser wird einer verborgenen Schicht aus h Clustervektoren übergeben.
Die Ausgabeschicht besteht aus einem einzigen linearen Assoziator (es wird angenommen, dass
eine Abbildung f: n   gelernt werden soll). Die Gewichte zwischen der verborgenen Schicht
und der Ausgabeeinheit werden mittels überwachten Lernens angepasst.
Linearer Assoziator
z1
zm
z2
KohonenSchicht
Eingabeplätze
x1
x2
X3
xn
Abbildung 10.5
Das Netz lernt in zwei Phasen. Zuerst wird die verborgene Schicht mittels zufällig ausgewählter
Vektoren aus dem Eingaberaum trainiert. Die Schicht erzeugt eine Clusterung des Eingaberaums,
die einer n-dimensionalen Voronoi-Zerlegung entspricht, vgl. für zwei Dimensionen Abbildung
10.6. Danach ist jede Einheit der verborgenen Schicht darauf spezialisiert, auf Eingaben aus einem
bestimmten Gebiet des Eingaberaums zu reagieren. Die Trainingsstrategie kann irgendeine der
bekannten Vektorquantisierungsmethoden sein, und die verborgene Schicht kann als Gitter
angeordnet sein oder aus isolierten Elementen bestehen. Die Ausgabe der verborgenen Schicht kann
so gesteuert werden, dass nur die Einheit mit der höchsten Aktivierung feuert. Die verborgene
Schicht ist damit ein Klassifikationsnetz.
z
zi
x
y
Abbildung 10.6
Die Funktionsapproximation wird dadurch implementiert, dass jedem Gewicht zi im Netz von
Abbildung 10.5 ein Wert zugeordnet wird. Dies entspricht dem Fixieren des Werts der Approximation für jedes Clustergebiet, wie in Abbildung 10.6 dargestellt. Das Polygon der Höhe zi entspricht
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 98
der Funktionsapproximation, die für dieses Gebiet ausgewählt wurde. Der zweite Trainingsschritt
ist eine überwachte Anpassung der zi-Werte. Falls die verborgene Einheit i feuert, wenn der
Eingabevektor x eingegeben wird, dann ist der quadratische Fehler der Approximation
E
1
2
z i  f x 2
Direkter Gradientenabstieg über diese Kostenfunktion liefert die notwendige Gewichtsaktualisierung:
z i  
dE
   f x   z i 
dz i
 ist eine Lernkonstante. Nach mehreren Iterationen des überwachten Lernprozesses kann eine gute
Approximation der Funktion f gefunden werden. Das Trainieren der verborgenen und der
Ausgabeschicht kann abwechselnd oder nacheinander geschehen. Das Netz kann n nahe liegender
Weise auf mehrere Ausgabeeinheiten erweitert werden.
10.2.4. Spline-Netze
Die Funktionsapproximation, die von einem Netz mit einer Clustering-Schicht geliefert wird, kann
durch Berechnung einer lokalen linearen Approximation an die Zielfunktion verbessert werden.
Abbildung 10.7 zeigt ein Netz, das um eine Schicht linearer Assoziatoren erweitert ist. Jede
Clustereinheit in dem Netz wird dazu benutzt, einen der linearen Assoziatoren zu aktivieren oder zu
hemmen. Die Assoziatoren sind mit allen Eingabeplätzen verbunden.
Linearer Assoziator
Kohonen-Schicht mit
linearen Assoziatoren
Eingabeplätze
x1
x2
X3
xn
Abbildung 10.7
Die Clustereinheiten in der verborgenen Schicht werden wie bei den Counterpropagation-Netzen
trainiert. Abbildung 10.8 zeigt die endgültige Voronoi-Zerlegung des Eingaberaums. Dann werden
die linearen Assoziatoren in der verborgenen Schicht mit dem Backpropagation-Algorithmus
trainiert. Für jede einzelne Eingabe aktiviert ausschließlich eine Clustereinheit einen Assoziator.
Nur die entsprechenden Gewichte werden angepasst. Die Wirkung davon ist, dass das Netz eine
Menge linearer Approximationen an die Zielfunktion mit lokaler Gültigkeit konstruiert. Die
konstruierte Approximation besteht jetzt aus unterschiedlich orientierten Polygonen. Die neue
Oberfläche hat einen kleineren quadratischen Fehler als die Approximation mit horizontalen
Flächen. Die funktionale Approximation kann noch genauer gemacht werden durch Hinzufügen
neuer Einheiten in die verborgene Schicht, wodurch die Voronoi-Zerlegung verfeinert wird. Das
Netz kann leicht auf mehrere Ausgabeeinheiten erweitert werden.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 99
Bei der Kombination einer selbst organisierenden verborgenen Schicht mit einer konventionellen
Ausgabeschicht, wie es in dem Netz von Abbildung 10.7 der Fall ist, besteht das Problem der
Interaktion zwischen diesen beiden verschiedenartigen Strukturen. Dies kann ein Problem sein,
wenn eine Funktion gelernt werden soll, die in einem Gebiet wesentlich stärker variiert als in einem
anderen. Abbildung 10.9 illustriert diesen Fall. Wenn die Auswahl der Eingabevektoren gleich
verteilt über den Eingaberaum erfolgt, ist der mittlere Fehler im Zentrum wesentlich größer als am
Rand, wo die Funktion gleichmäßiger verläuft.
z
x
y
Abbildung 10.8
(a)
(b)
Abbildung 10.9
Die allgemeine Lösung für das Problem ist, die Auswahl der Eingabevektoren entsprechend der
Variabilität der Funktion zu treffen, d.h. nach ihrem Gradienten. In diesem Fall ist das Gitter, das
z.B. durch ein zweidimensionales Kohonen-Netz definiert wird, im Zentrum dichter als im
Außenbereich (Abbildung 10.9 rechts). Da aber nur eine Menge von Trainingsbeispielen gegeben
ist, muss das Problem mit heuristischen Methoden gelöst werden.
10.2.5. Radiale Basisfunktionen
Eine Variante der hybriden Netze mit einer Clustering-Schicht besteht in der Nutzung Gauss’scher
Funktionen als Aktivierungsfunktionen der Einheiten. Die verborgene Schicht wird in der üblichen
Weise trainiert, aber die Eingabe wird an den verborgenen Einheiten in unterschiedlicher Weise
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 100
verarbeitet. Alle Einheiten produzieren einen Ausgabewert, und diese Werte werden von dem
linearen Assoziator an der Ausgabe kombiniert. Dabei ist erwünscht, dass die Einheit, deren
Gewichtsvektor näher am Eingabevektor liegt, stärker feuert als die anderen verborgenen Einheiten.
Abbildung 10.10 zeigt die Struktur eines Netzes, das nach diesem Prinzip arbeitet. Jede verborgene
Einheit j berechnet als Ausgabe den Wert
g j x 
exp x  w j 2 / 2 2j 
 exp x  w 
2
j
k
/ 2 k2 
wobei x der Eingabevektor und w1, w2, …, wm die Gewichtsvektoren der verborgenen Einheiten
sind. Die Konstanten i werden ad hoc gewählt und können als Werte den Abstand zwischen dem
Gewichtsvektor wi und seinem nächsten Nachbarn bekommen.
Linearer Assoziator
z1
zm
z2
KohonenSchicht
Eingabeplätze
x1
x2
X3
xn
Abbildung 10.10
Die Ausgabe jeder verborgenen Einheit wird normiert, indem sie durch die Summe der Ausgaben
aller verborgenen Einheiten dividiert wird. Dies erklärt die Bedeutung der horizontalen
Verbindungen zwischen den Einheiten in Abbildung 10.10. Die Ausgabe der verborgenen Schicht
besteht daher aus normierten Zahlen.
Die Gewichte z1, z2, …, zm werden mittels Backpropagation bestimmt. Der quadratische Fehler
beträgt
 n

E  12   g i x z i  f x 2 
 i 1

Die erforderlichen Gewichtsaktualisierungen sind gegeben durch
z i  
n
dE


 g i x  f x    g i x z i 
dz i
i 1


Die Mischung der Gauss’schen Funktionen liefert eine stetige Approximation an die Zielfunktion
und macht die Berechnung der maximalen Erregung in der verborgenen Schicht überflüssig.
Abbildung 10.11 zeigt ein Beispiel für eine Funktionsapproximation mit vier Gauss’schen
Funktionen. Der Fehler kann durch Nutzung weiterer verborgenen Einheiten minimiert werden.
Technische Universität Chemnitz
Sommersemester 2006
Konnektionistische Wissensverarbeitung
Seite 101
Abbildung 10.11
Der Hauptunterschied zwischen Netzen mit radialen Basisfunktionen und Netzen mit sigmoidalen
Einheiten ist, dass die RBF-Netze lokal konzentrierte Funktionen als Bausteine verwenden,
während die sigmoidalen Netze gleichmäßige Schritte benutzen. Welche Art der Aktivierungsfunktion am günstigsten ist, hängt von der Art der zu approximierenden Funktion ab. Ist sie eine
Gauss-Funktion, dann sind die RBF-Netze günstig, ist sie ein gleichmäßiger Übergang von
niedrigen zu höheren Werten oder umgekehrt, dann sind sigmoidale Netze günstiger.
Technische Universität Chemnitz
Sommersemester 2006
Herunterladen