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 ab 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 ba 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 Py 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 xw i1 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 pci log pci 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