Konnektionistische Wissensverarbeitung 4. 4.1. Seite 27 Unüberwachtes Lernen und Clustering-Algorithmen Kompetitives Lernen Das unüberwachte Lernen kann in zwei Klassen unterteilt werden: Reinforcement Learning und kompetitives Lernen. Bei der ersten Form erzeugt jede Eingabe eine Verstärkung der Gewichte des Netzes in der Weise, dass die Reproduktion der gewünschten Ausgabe erhöht wird. Die Hebbsche Lernregel ist ein Beispiel für Reinforcement Learning in Neuronalen Netzen. Beim kompetitiven Lernen treten die Einheiten des Netzes in Wettbewerb miteinander um das „Recht“ für eine Eingabe eine Ausgabe zu erzeugen. Nur eine darf eine Ausgabe abliefern und hindert gleichzeitig alle anderen daran es zu tun. 4.1.1. Verallgemeinerung des Perzeptron-Problems Abbildung 4.1 zeigt ein zweidimensionales Problem, an dem die beiden Mengen P und N von Vektoren beteiligt sind. P ist eine eher kompakte Menge von Vektoren, während die Vektoren von N auf zwei verschiedene Regionen des Eingaberaums verteilt sind. N P Abbildung 4.1 Dieses Klassifikationsproblem ist zu komplex für ein einziges Perzeptron. Ein Gewichtsvektor w kann nicht wp 0 für alle p P und wn < 0 für alle n N erfüllen. Man kann aber stattdessen drei verschiedene Vektoren w1, w2 und w3 bestimmen, die als „Repräsentanten“ der Vektoren in den drei Clustern A, B und C gelten können, wie in Abbildung 4.2 dargestellt. Jeder der drei Repräsentanten liegt in der Nähe der Vektoren seines Clusters. Jeder der drei Gewichtsvektoren entspricht einer Recheneinheit, die nur feuert, wenn der Eingabevektor nahe genug beim eigenen Gewichtsvektor liegt. 4.1.2. Unüberwachtes Lernen durch Wettbewerb Beim unüberwachten Lernen werden die n-dimensionalen Eingaben mit genau so vielen Recheneinheiten verarbeitet, wie Cluster bestimmt werden sollen. Für den in Abschnitt 4.1.1 dargestellten Fall von drei Clustern ist ein Netz von drei kompetitiven Einheiten in Abbildung 4.3 dargestellt. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 28 w1 Cluster B Cluster A w2 Cluster C w3 Abbildung 4.2 x1 x2 w11 w12 w21 w22 w31 w32 Abbildung 4.3 Algorithmus 4.1 Kompetitives Lernen Sei X = (x1, x2, ..., xl) eine Menge normalisierter n-dimensionaler Eingabevektoren. X soll in k verschiedene Cluster unterteilt werden. Dazu wird ein Netz mit k Einheiten verwendet, von denen jede n Eingänge und den Schwellenwert 0 hat. start: Die normalisierten Gewichtsvektoren w1, w2, ..., wk werden zufällig erzeugt. teste: Wähle zufällig einen Vektor xj X. Berechne xjwi für i = 1, ..., k. Wähle wm so, dass wmxj wixj für i = 1, ..., k. aktualisiere: Ersetze wm durch wm + xj und normiere. Fahre fort bei teste. Der Algorithmus kann nach einer vordefinierten Zahl von Schritten abgebrochen werden. Die Gewichtsvektoren der k Einheiten werden in die Richtung der Cluster im Eingaberaum „angezogen“. Die Verwendung normierter Vektoren verhindert, dass ein einzelner Gewichtsvektor so groß wird, dass er den Wettbewerb zu oft gewinnt. Das hätte nämlich zur Folge, dass andere Gewichtsvektoren nie aktualisiert werden und damit unbenutzt bleiben. Man nennt Einheiten, die mit solchen Vektoren assoziiert sind, tote Einheiten. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 29 Da die Eingabe- und Gewichtsvektoren normiert sind, ist das Skalarprodukt wixj gleich dem Cosinus des Winkels, der von den beiden Vektoren aufgespannt wird. Die Auswahlregel „maximales Skalarprodukt“ garantiert, dass der aktualisierte Gewichtsvektor wm derjenige ist, der am dichtesten bei dem getesteten Eingabevektor liegt. Die Aktualisierungsregel dreht den Gewichtsvektor wm in die Richtung von xj. Dazu können verschiedene Lernregeln verwendet werden. - Aktualisierung mit Lernkonstante: Die Gewichtsveränderung ist definiert durch wm = xj Die Lernkonstante ist eine reelle Zahl zwischen 0 und 1. Sie nimmt gegen 0 gehend mit fortschreitendem Lernprozess ab. Die Plastizität des Netzes kann so gesteuert werden, dass die Korrekturen in den ersten Iterationen stärker ausfallen und später schwächer werden. - Differenzaktualisierung: Die Gewichtsveränderung ist definiert durch wm = (xj wm) Die Korrektur ist proportional zur Differenz der beiden Vektoren. - Batchaktualisierung: Die Gewichtskorrekturen werden berechnet und gesammelt. Nach einer Anzahl von Iterationen werden die Gewichtskorrekturen zu den Gewichten addiert. Durch diese Regel wird der Lernprozess stabiler. 4.2. Konvergenzuntersuchung 4.2.1. Der eindimensionale Fall - Energiefunktion Im eindimensionalen Fall betrachtet man Cluster von Zahlen auf der reellen Achse. Sei {1.3, 1.0, 0.7, 0.7, 1.0, 1.3} die Eingabemenge. In der Eingabemenge liegen zwei wohlunterschiedene Cluster vor, die um die Werte –1 bzw. 1 angeordnet sind. Die Cluster sollen durch das Netz von Abbildung 4.4 identifiziert werden. x Abbildung 4.4 Es besteht aus zwei gewichteten Einheiten mit je einem Eingang. Eine mögliche Lösung ist = 1 und = 1. Sei x ein Punkt in einem Cluster, 0 das aktuelle Gewicht der ersten Einheit und eine Konstante. Die Anziehung, die x auf das Gewicht ausübt, ist gegeben durch Fx ( 0 ) ( x 0 ) Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 30 Man sagt auch, dass mit der Kraft Fx ein Potential oder eine Trägheit assoziiert sei. Das mit Fx assoziierte Potential wird hier die Energiefunktion genannt, die der Lernaufgabe entspricht. Im obigen Beispiel ist die Funktion gegeben durch E x ( 0 ) ( x 0 )d 0 2 (x 0 )2 C Dabei ist C eine Integrationskonstante, und die Integration wird über das erste Cluster ausgeführt. Die Anziehung jedes Punktes in den Clustern auf beide Gewichte hängt von ihrer relativen Position ab, deshalb muss eine grafische Repräsentation der Energiefunktion beide Gewichte und berücksichtigen. In Abbildung 4.5 ist eine entsprechende zweidimensionale Energiefunktion dargestellt. Teil (a) zeigt den Verlauf zwischen –5 und 5 für beide Gewichte und Teil (b) ist eine Ausschnittvergrößerung, die die beiden globalen Minima heraushebt, während in (a) die lokalen Minima zu sehen sind. (a) (b) Abbildung 4.5 4.2.2. Der mehrdimensionale Fall – die klassischen Methoden Definition 4.1: Die Energiefunktion einer Menge X = {x1, x2, ..., xm} von n-dimensionalen normierten Vektoren (n 2) ist definiert durch m E X (w ) (x i w ) 2 i 1 wobei w einen beliebigen n-dimensionalen Vektor bezeichnet. Die Energiefunktion kann in folgender Weise umgeschrieben werden: m m i 1 i 1 E X (w) mw 2 2 x i w x i Technische Universität Chemnitz 2 Sommersemester 2006 Konnektionistische Wissensverarbeitung m( w 2 m( w Seite 31 m m 2 2 w xi ) xi m i 1 i 1 m 1 m 1 2 2 2 x ) ( x ) xi i i m i 1 m i 1 m(w x*) 2 K Der Vektor x* ist der Schwerpunkt des Clusters {x1, x2, ..., xm} und K eine Konstante. Das globale Minimum der Energiefunktion liegt bei x*. Abbildung 4.6 zeigt den Verlauf der Energiefunktion für ein zweidimensionales Beispiel mit zwei Clustern. Das erste Cluster hat seinen Schwerpunkt bei (1, 1), das zweite bei (1, 1). Die Abbildung zeigt den Verlauf der Anziehung, die auf die Gewichtsvektoren ausgeübt wird, wenn jedes Cluster einen der Vektoren anzieht. Abbildung 4.6 In der Statistik wird seit vielen Jahren daran gearbeitet, ein gutes Clustering mehrdimensionaler empirischer Daten zu finden. Zwei gebräuchliche Methoden sind die folgenden. k-nächste Nachbarn (k-nearest neighbors): Beispielvektoren werden in l verschiedene Klassen unterteilt gespeichert. Für einen unbekannten Eingabevektor werden die k am dichtesten bei ihm liegenden Vektoren bestimmt und der Eingabevektor wird derjenigen Klasse zugeordnet, in der die Mehrzahl dieser Vektoren liegt. Konfliktfälle werden mit speziellen Heuristiken gelöst. Bei diesem Verfahren benötigt man eine Trainingsmenge. k-means: Die Eingabevektoren werden in k verschiedene Cluster unterteilt, wobei zu Beginn jedem Cluster genau ein Vektor zugeordnet wird. Ein neuer Vektor x wird demjenigen Cluster zugeordnet, dessen Schwerpunkt ck am dichtesten bei x liegt. Dann wird der Schwerpunktvektor gemäß folgender Vorschrift aktualisiert: ck ck Technische Universität Chemnitz 1 (x c k ) nk Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 32 nk ist die Anzahl der bereits im k-ten Cluster vorhandenen Vektoren. Das Verfahren wird für die gesamte Datenmenge wiederholt. Es gibt dabei verschiedene Varianten für die Aktualisierung des Schwerpunkts. 4.2.3. Stabilität der Lösungen Definition 4.2: Sei P = {p1, p2, ..., pm} eine Menge der n-dimensionalen (n 2) Vektoren im selben Halbraum. Der durch P definierte Kegel K ist die Menge aller Vektoren x der Form x = 1p1 + 2p2 + ... + mpm, wobei 1, 2, ..., m positive reelle Zahlen sind. Definition 4.3: Der Winkeldurchmesser eines Kegels K, gegeben durch die normierten Vektoren {p1, p2, ..., pm}, ist definiert durch = sup{arccos(ab) | a, b K mit ||a|| = ||b|| = 1} wobei 0 arccos(ab) . Definition 4.4: Seien P = {p1, p2, ..., pm} und N = {n1, n2, ..., nk} zwei nicht leere Mengen normierter Vektoren im n-dimensionalen Raum (n 2), die die Kegel KP bzw. KN definieren. Ist der Durchschnitt der beiden Kegel leer, dann ist ihr Winkelabstand definiert durch PN = inf{arccos(pn) | p KP, n KN, mit ||p|| = ||n|| = 1} wobei 0 arccos(pn) . Überschneiden sich die beiden Kegel, dann ist ihr Winkelabstand 0. In vielen Anwendungen liegt es nicht auf der Hand, wie verschiedene Cluster nach ihrer Qualität eingestuft werden sollen. Der übliche Weg ist eine Kostenfunktion zu definieren, die zu viele Cluster verhindert und weniger aber kompaktere Cluster bevorzugt. Der Extremfall wäre, jeden Datenpunkt als eigenes Cluster zu betrachten. Dies ergibt natürlich keinen Sinn. 4.3. Hauptkomponentenanalyse 4.3.1. Unüberwachtes Reinforcement Learning Es sei eine Menge empirischer Daten gegeben, die aus n-dimensionalen Vektoren bestehen, also {x1, x2, ..., xm}. Die erste Hauptkomponente dieser Vektorenmenge ist der Vektor w, der den Ausdruck 1 m w xi m i 1 2 d.h. den Durchschnitt der quadratischen Skalarprodukte, maximiert. Die zweite Hauptkomponente wird dadurch berechnet, dass man von jedem der Vektoren xi seine Projektion auf die erste Hauptkomponente subtrahiert. Von den so entstehenden Vektoren berechnet man wieder die erste Hauptkomponente, diese ist dann die zweite Hauptkomponente der Ausgangsdaten. Sie ist orthogonal zur ersten. Die dritte Hauptkomponente berechnet man rekursiv: die Projektionen auf die erste und die zweite Hauptkomponente werden subtrahiert und von den verbleibenden Vektoren die erste Hauptkomponente berechnet. Mittels der Berechnung der Hauptkomponenten kann man die Dimension der Daten bei minimalem Informationsverlust reduzieren. Dazu werden einfach die Punkte durch die Längen der einzelnen Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 33 Projektionen ersetzt. Die Angabe der Vektoren wird dann durch die Richtung der Hauptkomponente und die Länge der Projektionen ersetzt. Die Richtung der Hauptkomponente gilt für alle Vektoren, also wird ein einzelner Vektor selbst nur durch die Länge seiner Projektion wiedergegeben. Der dabei gemachte Fehler hängt vom Abstand der Vektoren von der ersten Hauptkomponente ab. Deshalb muss dieser Vektor so gewählt werden, dass die Summe der Abstände aller anderen Vektoren von ihm minimal wird. Aus diesem Grund ist die Hauptkomponentenanalyse besonders bei Datenmengen günstig, die in einem kleinen Gebiet des Eingaberaums liegen. Bei Neuronalen Netzen hat man in der Praxis das Problem, dass sich die Menge der Eingabevektoren im Lauf der Zeit ändern kann. Die Hauptkomponenten können deshalb nur schrittweise adaptiv berechnet werden. Mit Hilfe von linearen Assoziatoren können Hauptkomponenten berechnet werden. Es wird dabei vorausgesetzt, dass der Schwerpunkt der Daten im Ursprung liegt. Ist dies nicht der Fall, dann können die Koordinaten so transformiert werden, dass der Schwerpunkt der Daten in den Ursprung kommt. Algorithmus 4.2 Berechnung der ersten Hauptkomponente start: Sei X eine Menge n-dimensionaler Vektoren. Der Vektor w wird zufällig initialisiert (w 0). Eine Lernkonstante mit 0 < 1 wird gewählt. aktualisiere: Wähle zufällig einen Vektor x X. Berechne das Skalarprodukt = xw. Der neue Gewichtsvektor ist w + (x w). Erniedrige und gehe zu aktualisiere. 4.3.2. Konvergenz des Lernalgorithmus Existiert eine Lösung für das Clusteringproblem, dann konvergiert Algorithmus 4.2, d.h. der Gewichtsvektor w geht gegen die Mitte des Clusters. Gleichzeitig wird er normiert. Wird Algorithmus 4.2 mit einer Menge von Eingabevektoren {x1, x2, ..., xm} und einem Gewichtsvektor w gestartet, dann wird w von den Vektoren {x1, x2, ..., xm} angezogen, bis er in den von ihnen gebildeten Kegel gerät und bleibt anschließend dort, er oszilliert nur noch zwischen den Vektoren hin und her. Falls |w| = 1, dann entspricht das Skalarprodukt = xiw der Länge der Projektion von xi auf w. Der Vektor xi w ist normal zu w, d.h. er steht senkrecht auf w. Die Iteration des Algorithmus zieht w zu einem Vektor im Cluster. So lange |w| 1, bringt der Algorithmus nach einer hinreichenden Zahl von Iterationen w in die Mitte des Clusters. Es ist nun zu zeigen, dass w automatisch normiert wird, d.h. dass die Bedingung |w| 1 erfüllt ist. Dazu betrachte man die Abbildung 4.7: (a) zeigt den Fall, in dem |w| > 1. In diesem Fall ist die Länge des Vektors (wx)w größer als die Länge der orthogonalen Projektion von x auf w. Angenommen, wx > 0, d.h. die Vektoren x und w liegen nicht zu weit voneinander entfernt. Der Vektor x (wx)w hat eine negative Projektion auf w, denn (x (wx)w)w = wx ||w||2wx < 0 Der Vektor x (wx)w hat eine Komponente, die normal zu w ist und eine, die in die negative Richtung von w zeigt. Wiederholte Iterationen bringen w in die Mitte des Clusters, so dass die normalen Komponenten allmählich verschwinden. Die negative Komponente verschwindet aber Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 34 nicht, so lange |w| > 1. Der Effekt der Iterationen ist daher, w richtig zu positionieren und es gleichzeitig kleiner zu machen. (wx)w (wx)w x (wx)w x (wx)w x (wx)w (a) x (wx)w (b) Abbildung 4.7 Abbildung 4.6(b) zeigt den Fall, dass |w| < 1. Hier hat der Vektor x (wx)w eine positive Projektion auf w. Die Normalkomponente des Vektors bringt w nach einer Anzahl von Iterationen in die Mitte des Clusters. Die positive Projektion bewirkt eine Vergrößerung von w. Nach ausreichend vielen Iterationen und bei genügend kleinem oszilliert der Gewichtsvektor um die Mitte des Clusters und seine Länge um den Wert 1. 4.3.3. Mehrfache Hauptkomponenten Mit dem von Sanger vorgeschlagenen Netz kann man die ersten m Hauptkomponenten einer Menge empirischer Daten in einem Durchlauf berechnen. Die Idee ist, abwechselnd mit Hilfe eines linearen Assoziators eine Hauptkomponente zu berechnen und anschließend die Projektion der Daten von der Hauptkomponente zu subtrahieren. Abbildung 4.8 zeigt ein Netz für 3 Hauptkomponenten. w1 + x w1 w2 x1w1 + 2 w2 w3 x1w12w2 1 + 3 w3 Abbildung 4.8 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 4.4. Seite 35 Anwendungen 4.4.1. Mustererkennung Unüberwachtes Lernen kann immer dann verwendet werden, wenn die Zahl der Cluster schon vorab bekannt ist. Das ist z.B. bei der optischen Zeichenerkennung der Fall. Wir nehmen an, dass Buchstaben in einem Dokument gescannt und in einer 1616-Pixelfläche zentriert werden. Jeder Buchstabe wird als Vektor mit 256 binären Elementen kodiert. Der Wert 1 kodiert ein dunkles Pixel und der Wert –1 ein helles Pixel. Die Eingabebilder sind in der Regel verrauscht, so dass einige Pixelwerte falsch sind. So lange die Zahl der Fehler nicht zu groß wird dann bilden die Eingaben für denselben Buchstaben ein Cluster um ein bestimmtes Muster im Eingaberaum. Diese Cluster können durch ein Netz kompetitiver Einheiten bestimmt werden. 4.4.2. Bildkompression Angenommen, man will ein Bild mit 10241024 Pixeln übertragen. Dazu benötigt man 220 Bits (=210210). Um diesen Aufwand zu reduzieren, kann man sich die Tatsache zu Nutze machen, dass die Verteilung der Pixelwerte auf einem Bild nicht völlig zufällig ist, vielmehr haben Bilder eine Struktur, die untersucht und zur Kompression der Bilder genutzt werden kann. Dazu unterteilt man das ganze Bild in 128128 Felder mit je 88 Pixel. Jedes dieser Felder kann eines von 264 verschiedenen möglichen Mustern enthalten, aber wir legen fest, dass diese in 64 verschiedene Klassen zusammengefasst werden sollen. Wir starten ein unüberwachtes Netz und trainieren es darauf, alle 64 Muster in dem Bild zu klassifizieren. Das Training erfolgt natürlich nicht mit allen 264 möglichen Mustern, das wäre unmöglich, sondern nur mit den Mustern, die in dem vorliegenden Bild enthalten sind. Die so bestimmten 64 Gewichtsvektoren werden als Repräsentanten der Cluster ausgegeben, sie entsprechen einem bestimmten Muster, das von der jeweiligen Einheit bestimmt worden ist. Die 64 Vektoren sind die Kodierung des Bildes für die Übertragung. Die Übertragung eines Bildes kann erfolgen, wenn sich Sender und Empfänger auf eine bestimmte Kodierung geeinigt haben. Für jedes der 128128 Felder im Bild überträgt der Sender den Namen des Kodevektors, der den Inhalt des 88-Feldes wiedergibt. Da es nur 64 Vektoren gibt, benötigt der Sender für jeden Vektor nur 6 Bits. Das erzielte Kompressionsverhältnis ist also 64/6 = 10,66. Abbildung 4.9 zeigt acht Gewichtsvektoren, die durch unüberwachtes Lernen in einem Bild gefunden wurden. Abbildung 4.9 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 5. 5.1. Seite 36 Mehrschichtige Netze Struktur und geometrische Visualisierung 5.1.1. Netzarchitekturen Netze werden durch ihre Architektur beschrieben. Die elementaren Bestandteile jeder Architektur sind die Recheneinheiten und ihre Verbindungen. Jede Einheit fasst die Information aus n Eingaben mittels einer integrierenden Funktion: n zusammen. Der Wert dieser Funktion, die Erregung der Einheit, dient als Eingabe für die Aktivierungsfunktion : . Definition 5.1: Eine Netzarchitektur ist ein Quadrupel (I, N, O, E) bestehend aus einer Menge I von Eingabeplätzen, einer Menge N von Recheneinheiten, einer Menge O von Ausgabeplätzen und einer Menge E gewichteter gerichteter Kanten. Eine gerichtete Kante ist ein Tripel (u, v, w) mit u I N, v N O und w . In Architekturen mit Schichten ist N in l Teilmengen N1, N2, ..., Nl so unterteilt, dass nur zwischen Einheiten in den Schichten Ni und Ni+1 Kanten bestehen (i = 1, ..., l1). Die Eingabeplätze sind nur mit Einheiten aus N1 verbunden und die Einheiten in Nl sind die einzigen, die mit Ausgabeplätzen verbunden sind. Die Mengen Ni heißen die Schichten des Netzes. Die Menge der Eingabeplätze heißt Eingabeschicht, die der Ausgabeplätze Ausgabeschicht. Alle anderen Schichten heißen verborgene Schichten. Ein Neuronales Netz mit Schichtenarchitektur enthält keine Zyklen. Die Eingabe wird verarbeitet und von einer Schicht zur nächsten weiter gegeben. Abbildung 5.1 zeigt die allgemeine Struktur einer Schichtenarchitektur. Üblicherweise sind alle Einheiten einer Schicht mit allen Einheiten der nächsten Schicht verbunden, haben also die Schichten m bzw. n Einheiten, dann gibt es mn Kanten zwischen den beiden Schichten. Die Gesamtzahl der Verbindungen in einem Netz kann also sehr groß werden, deshalb muss man sich mit dem Problem des Pruning von Netzen befassen. Eingabeschicht Ausgabeschicht . . . . . . . . . . . . . . . verborgene Schichten Abbildung 5.1 5.1.2. Eine Lösung des XOR-Problems Abbildung 5.2 zeigt ein dreischichtiges Netz mit drei Recheneinheiten, das die XOR-Funktion berechnet. Eine der Einheiten der verborgenen Schicht berechnet die Funktion x1 x2 und die andere die Funktion x1 x2. Die Einheit der Ausgabeschicht berechnet die OR-Funktion, so ergibt sich als Ergebnis der Berechnung durch das Netz die Funktion (x1 x2) (x1 x2) Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 37 1.0 x1 0.5 1.0 1.0 0.5 1.0 1.0 x2 1.0 0.5 Abbildung 5.2 5.1.3. Geometrische Veranschaulichung Das zweischichtige Netz für das XOR-Problem definiert verschiedene Regionen im Eingaberaum. Die beiden Einheiten der ersten Schicht (Abbildung 5.2) unterteilen den Raum jeweils in einen geschlossenen positiven und einen offenen negativen Halbraum. Abbildung 5.3 zeigt die verschiedenen Regionen, die positiven Halbräume sind grau unterlegt. x2 - x1 0.5 (1, 1) (0, 1) x1 – x2 0.5 (0, 0) (1, 0) Abbildung 5.3 Die drei Regionen können mit zwei Bits markiert werden. Das erste Bit ist 1, wenn die Region im positiven Halbraum der ersten linearen Trennung liegt, sonst 0, und das zweite Bit entsprechend für die zweite lineare Trennung. Die beiden Einheiten der ersten (verborgenen) Schicht erzeugen die Markierung der Region, in der die Eingabe liegt. Das Umkodieren der Eingaben durch die beiden Bits macht das XOR-Problem lösbar, weil jetzt die Ausgabeeinheit nur die drei Bereichsmarken dekodieren muss. Nur die grau unterlegten Bereiche sollen eine 1 erzeugen und dies kann mit der OR-Funktion, angewandt auf die Bereichsmarkierungen leisten. Das ist ein allgemeines Merkmal mehrschichtiger Netze: die erste Schicht von Einheiten bildet den Eingabevektor durch lineare Trennung in einen zweiten Raum ab, der Klassifikations- oder Merkmalsraum genannt wird. Die Einheiten der letzten Schicht dekodieren die Klassifikation, die von den verborgenen Einheiten berechnet wurde und erzeugen die Ausgabe. Diese Dekodierung kann als UND- oder ODER-Verknüpfung oder auf andere Weise erfolgen. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 5.2. Seite 38 Gebiete im Eingabe- und Gewichtsraum 5.2.1. Gewichtsraumgebiete für das XOR-Problem Angenommen, die Gewichtsvektoren eines Perzeptrons für die AND-Funktion sollen bestimmt werden. Die Gewichte w1, w2, und w3 müssen die folgenden Ungleichungen erfüllen: für Punkt (0, 0): für Punkt (0, 1): für Punkt (1, 0): für Punkt (1, 1): 0w1 + 0w2 + 1w3 < 0 0w1 + 1w2 + 1w3 < 0 1w1 + 0w2 + 1w3 < 0 1w1 + 1w2 + 1w3 0 Ausgabe = 0 Ausgabe = 0 Ausgabe = 0 Ausgabe = 1 Die drei Ungleichungen definieren Halbräume im dreidimensionalen Gewichtsraum. Die vier trennenden Ebenen gehen durch den Nullpunkt und sind durch die folgenden Gleichungen definiert: Ebene 1: Ebene 2: Ebene 3: Ebene 4: w3 = 0 w2 + w3 = 0 w1 + w3 = 0 w1 + w2 + w3 = 0 Drei trennende Ebenen im dreidimensionalen Raum definieren 8 verschiedene Gebiete, vier trennende Ebenen definieren 14 verschiedene Gebiete. Jedes Gebiet entspricht einer von 14 möglichen Kombinationen von Ungleichungssymbolen in der Menge der vier Ungleichungen, die eine Boolesche Funktion definiert. Da es 16 Boolesche Funktionen von zwei Variablen gibt, können offensichtlich zwei davon nicht mit einem Perzeptron berechnet werden. Es sind die XOR- und die XOR-Funktion. 5.2.2. Bipolare Vektoren Statt binärer Vektoren werden in Neuronalen Netzen auch bipolare Vektoren verwendet. Bei ihnen ist der Wert 0 durch den Wert –1 ersetzt. Die Eigenschaften des Perzeptrons werden dadurch nicht verändert, aber die Symmetrie der Lösungsgebiete. Die vier Schnittebenen der dreidimensionalen Booleschen Kugel bekommen in bipolarer Kodierung die Form Ebene 1: Ebene 2: Ebene 3: Ebene 4: –w1 – w2 + w3 = 0 –w1 + w2 + w3 = 0 w1 – w2 + w3 = 0 w1 + w2 + w3 = 0 Die drei Ebenen gehen durch den Nullpunkt und bilden symmetrische Lösungspolyeder, Vektoren, die zu den Ebenen normal sind, haben das paarweise Skalarprodukt 1 oder –1. Die relativen Größen der Lösungsregionen auf der Booleschen Kugel entsprechen dem Schwierigkeitsgrad zum Erlernen der Funktionen. Da jede beliebige Funktion erlernbar sein soll, ist es ratsam die Lösungsgebiete so zu gestalten, dass sie ungefähr gleiche Größe haben. Tabelle 5.1 zeigt die Ergebnisse eines Versuchs, bei dem ein normierter Gewichtsvektor zufällig erzeugt wurde und dann die zu ihm assoziierte Boolesche Funktion berechnet wurde. Durch mehrfaches Wiederholen des Versuchs konnte die relative Größe der Lösungsregionen bestimmt werden. Der Prozess wurde mit binärer und bipolarer Kodierung durchgeführt. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Kodierung binär bipolar Seite 39 Nummer der Booleschen Funktion 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 26.83 2.13 4.18 4.13 4.17 4.22 0.00 4.13 4.20 0.00 4.26 4.17 4.17 4.14 2.07 27.12 8.33 6.29 6.26 8.32 6.24 8.36 0.00 6.22 6.16 0.00 8.42 6.33 8.27 6.31 6.25 8.23 Tabelle 5.1 5.2.3. Projektion der Lösungsgebiete Die Lösungsgebiete auf der Oberfläche der Booleschen Kugel können durch stereografische Projektion in die Ebene projiziert werden. Dazu zieht man vom Nordpol der Kugel aus Geraden durch jeden Punkt auf der Kugeloberfläche und zieht die Geraden so lange, bis sie die Ebene, auf der die Kugel steht, schneiden. Auf diese Weise werden alle Punkte eineindeutig auf die Ebene projiziert. Der Nordpol hat seine Entsprechung im Unendlichen (Schnittpunkt zweier Tangenten). Die stereografische Projektion projiziert Kreise auf der Kugel (die den Nordpol nicht berühren) in Ellipsen auf der Ebene. Zum Beispiel erzeugen die vier Schnittebenen vier Kreise auf der Kugel, die in vier Ellipsen projiziert werden. Da man hier nicht an der genauen Gestalt der Projektionen interessiert ist, sondern an den Gebieten, die sie auf der Ebene bilden, werden die Ellipsen in Kreise transformiert. Abbildung 5.4 zeigt die Projektion der Kreise, wobei der Mittelpunkt des Gebiets 1111 als Nordpol gewählt wurde. Man kann die Symmetrie der Lösungsgebiete noch evidenter machen, indem man stilisierte Repräsentationen verwendet. Da hier nur die Nachbarschaftsbeziehungen wichtig sind, kann Abbildung 5.4 in die Abbildung 5.5 transformiert werden. Sie zeigt, dass Funktionen f und f in zueinander symmetrischen Gebieten liegen. 1 NAND x1 x2 x1 f x2 NOR 0 AND x2 g x1 x1 x2 OR f = x1 x2 g = x1 x2 Abbildung 5.4 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 40 1 NAND x1 x2 x1 f x2 NOR 0 AND x2 g x1 x1 x2 OR f = x1 x2 g = x1 x2 Abbildung 5.5 5.2.4. Geometrische Interpretation Gegeben sei ein Netz mit drei Perzeptronen in der verborgenen Schicht und einer Ausgabeeinheit. Es wird ein Vektor eingegeben und verarbeitet und die drei Perzeptrone erzeugen einen neuen Kode für den Vektor aus drei Bits. Dieser wird von der Ausgabeeinheit interpretiert. Jede Einheit in der verborgenen Schicht trennt den Eingaberaum in zwei Halbräume. Zwecks Visualisierung werden nur normierte Vektoren betrachtet. Jede Unterteilung des Eingaberaums entspricht einer Unterteilung der Einheitskugel, die hier Eingabevektoren repräsentiert. Abbildung 5.6 zeigt eine stilisierte grafische Repräsentation dieser Vorstellung. Abbildung 5.6 Diese Art der Repräsentation führt zur Idee des „Aufsplitterns“ des Eingaberaums durch eine Klasse von Konzepten. In der Lerntheorie interessiert man sich für Elemente eines Eingaberaums, die in Teilmengen oder Klassen angeordnet werden können. Ist eine Teilmenge S eines Eingaberaums X gegeben, die in positive Beispiele (Wert 1) und negative Beispiele (Wert 0) unterteilt ist, dann möchte man das Konzept bestimmen, das die Menge S korrekt klassifiziert. Beim Perzeptron ist der Eingaberaum n und die Konzepte sind Halbräume des n. Wenn die positiven Beispiele Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 41 von S in einen Halbraum zu liegen kommen, dann heißt S erlernbar, denn eines der Konzepte, d.h. ein Halbraum, kann die Punkte in S korrekt klassifizieren. Eine wichtige Frage ist, wie viele Elemente eines Eingaberaums maximal durch die Konzepte klassifiziert werden können. Für Perzeptrone mit zwei Eingaben ist dies die Zahl drei. Man kann drei Punkte im 2 beliebig anordnen und ihnen entweder eine 0 oder eine 1 zuordnen, immer gibt es eine lineare Trennung der drei Punkte. Vier Eingaben können im Allgemeinen nicht mehr auf diese Weise getrennt werden, und das ist der Fall für die XOR-Funktion. 5.3. Gebiete für zweischichtige Netze 5.3.1. Gebiete im Gewichtsraum für das XOR-Problem Es seien w1, w2, w3 die Gewichte der ersten Einheit, w4, w5, w6 die Gewichte der zweiten Einheit und w7, w8, w9 die Gewichte der Ausgabeeinheit. x1 und x2 seien die Komponenten des Eingabevektors und y1 bzw. y2 die Ausgaben der beiden verborgenen Einheiten. Die Eingaben definieren eine Menge von trennenden Hyperebenen im Gewichtsraum. Diese sind durch die folgenden Gleichungen definiert: 0w1 + 0w2 + 1w3 = 0 0w1 + 1w2 + 1w3 = 0 1w1 + 0w2 + 1w3 = 0 1w1 + 1w2 + 1w3 = 0 0w4 + 0w5 + 1w6 = 0 0w4 + 1w5 + 1w6 = 0 1w4 + 0w5 + 1w6 = 0 1w4 + 1w5 + 1w6 = 0 Für die Ausgabeeinheit gibt es so viele Trennebenen, wie (y1, y2)-Kombinationen von den verborgenen Einheiten erzeugt werden. Jede Trennebene wird durch folgende Gleichung beschrieben: y1w7 + y2w8 + 1w9 = 0 Die Trennebenen der drei Einheiten sind orthogonal zueinander. Jede Einheit definiert durch die vier Trennebenen höchstens 14 verschiedene Gebiete. Die maximale Zahl von Gebieten auf der neundimensionalen Kugel ist also 141414 = 2744. 5.3.2. Die Zahl der Gebiete im Allgemeinen Die Frage, die hier beantwortet werden soll ist: Wie viele Gebiete werden in einem n-dimensionalen Raum von m Schnittebenen der Dimension n1 definiert? Es werden nur Schnittebenen durch den Nullpunkt, die aber ansonsten beliebig liegen können, betrachtet. Der Schnitt von l Hyperebenen (l n) hat die Dimension n – l. Satz 5.1: Sei R(m, n) die Zahl der verschiedenen Gebiete, die durch m trennende Hyperebenen der Dimension n1 in beliebiger Lage in einem n-dimensionalen Raum definiert werden. Für alle n 1 sei R(1, n) = 2 und für alle m 1 R(m, 0) = 0. Dann gilt für alle n 1 und m > 1 R(m, n) = R(m – 1, n) + R(m – 1, n – 1) Satz 5.2: Für n 1 ist R(m, n) ein Polynom vom Grad n – 1 in der Variablen m. Aus der bisher durchgeführten Analyse ergeben sich zwei Folgerungen: Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 42 Die Anzahl der Schwellenwertfunktionen in einem n-dimensionalen Raum wächst polynomiell, dagegen die Anzahl der möglichen Booleschen Funktionen exponentiell. Die Anzahl der Boolen schen Funktionen ist nämlich 2 2 , die Anzahl der Schwellenwertfunktionen eine Funktion der Form 2 n( n1) , da 2n Eingabevektoren höchstens R(2n, n) Gebiete im Gewichtsraum definieren, und dieser Ausdruck ist ein Polynom vom Grad n – 1 in 2n. Der Prozentsatz der Schwellenwertfunktionen im Verhältnis zur Gesamtzahl Boolescher Funktionen geht mit wachsendem n gegen 0. In Netzen mit zwei oder mehr Schichten gibt es ein Lernproblem. Jede Einheit in der ersten Schicht trennt den Eingaberaum in zwei Hälften. Wenn die verborgene Schicht m Einheiten besitzt und der Eingabevektor die Dimension n hat, dann ist die maximale Zahl von Klassifikationsgebieten R(m, n). Ist die Zahl der Eingabevektoren größer, dann kann es passieren, dass nicht ausreichend viele Klassifikationsgebiete vorhanden sind um eine gegebene logische Funktion zu berechnen. Unlösbare Probleme dieser Art können leicht produziert werden durch Erhöhen der Zahl der Eingaben in das Netz. 5.3.3. Das Problem der lokalen Minima Eines der grundlegenden Probleme der iterativen Lernalgorithmen sind die lokalen Minima der Fehlerfunktion. Bei einem einzelnen Perzeptron hat die Fehlerfunktion nur ein einziges Minimum, das dann das globale ist, aber für komplexe Netze trifft dies nicht zu. Im Fall des Netzes mit drei Einheiten, das die XOR-Funktion berechnet (vgl. Abbildung 5.2), gibt es vier Klassen von Gebieten im Gewichtsraum, denen ein Fehler zwischen 0 und 4 zugeordnet ist, d.h. jede Teilmenge der vier Eingabevektoren kann korrekt klassifiziert werden oder nicht. Eine erschöpfende Suche über alle möglichen Gebiete des Gewichtsraums ergibt, dass es keine unechten (spurious) lokalen Minima in der Fehlerfunktion gibt. Es kann immer ein Pfad von Gebieten mit größerem Fehler als Null zu einem anderen Gebiet mit kleinerem Fehler gefunden werden. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 6. 6.1. Seite 43 Der Backpropagation-Algorithmus Lernen als Gradientenabstieg 6.1.1. Differenzierbare Aktivierungsfunktionen Der Backpropagation-Algorithmus versucht das Minimum der Fehlerfunktion im Gewichtsraum mittels Gradientenabstieg zu bestimmen. Diejenige Kombination von Gewichten, die die Fehlerfunktion minimiert, wird als Lösung des Lernproblems betrachtet. Dazu muss in jedem Iterationsschritt der Gradient der Fehlerfunktion berechnet werden, deshalb muss die Fehlerfunktion stetig und differenzierbar sein. Es ist klar, dass man dazu eine andere Aktivierungsfunktion als die Schrittfunktion braucht, die in Perzeptronen benutzt wird, denn die zusammengesetzte Funktion im Fall von verknüpften Perzeptronen ist nicht stetig, damit ist es auch die Fehlerfunktion nicht. Eine gebräuchliche Aktivierungsfunktion für Backpropagation-Netze ist die Sigmoidfunktion, die definiert ist durch sc: (0, 1) sc ( x) 1 1 e cx Die Konstante c kann beliebig gewählt werden. Ihr reziproker Wert 1/c heißt in stochastischen Neuronalen Netzen Temperaturparameter. Der Wert von c bestimmt die Form der Sigmoidfunktion, je größer c desto stärker nähert sich ihr Verlauf an die Schrittfunktion an, d.h. mit c wird sie zur Schrittfunktion. Abbildung 6.1 zeigt den Verlauf der Sigmoidfunktion für c = 1, c = 2 und c = 3. 1 x -4 -2 0 2 4 Abbildung 6.1 In diesem Kapitel wird zum Zweck der Vereinfachung c = 1 gesetzt und die Sigmoidfunktion s1(x) heißt kurz s(x). Die Ableitung der Sigmoidfunktion nach x ist d ex s ( x) s( x)(1 s( x)) dx (1 e x ) 2 Man kann eine symmetrische Variante der Sigmoidfunktion definieren, die für das Lernen gewisse Vorteile hat. Die Definition ist 1 e cx S x 2s x 1 1 e cx Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 44 Das ist die Funktion Tangens hyperbolicus für das Argument x/2. Ihr Verlauf ist in Abbildung 6.2(a) dargestellt. In Abbildung 6.2(b) und (c) sind noch andere stetige Funktionen mit ähnlichem Verlauf dargestellt, die ebenfalls als Aktivierungsfunktionen verwendet werden. 1 -3 -2 -1 1 0 1 2 3 x -3 -2 -1 -1 1 0 1 2 3 -1 (a) x -3 -2 -1 0 1 2 3 x -1 (b) (c) Abbildung 6.2 Eine differenzierbare Aktivierungsfunktion macht auch die von dem Netz berechenbare Funktion differenzierbar, falls die Integrationsfunktion an jeder Einheit die Summe der Eingaben ist, denn das Netz berechnet nur Funktionskompositionen. Auch die Fehlerfunktion wird differenzierbar. 6.1.2. Gebiete im Eingaberaum und lokale Minima der Fehlerfunktion Die Werte der Sigmoidfunktion liegen echt zwischen 0 und 1, die beiden Extremwerte werden nur asymptotisch erreicht. Die Einheiten, die hier betrachtet werden, verwenden die Höhe der Erregung als Eingabe für die Sigmoidfunktion. Sind die Gewichte w1, .., wn und das Bias gegeben, dann berechnet eine sigmoidale Einheit für die Eingabewerte x1, .., xn den Ausgabewert 1 1 exp i 1 wi xi n Ein höherer Wert für die Erregung bringt den Ausgabewert näher an die 1 heran. Das Kontinuum der Ausgabewerte kann mit einer Unterteilung des Eingaberaums in ein Kontinuum von Klassen verglichen werden, vgl. Abbildung 6.3 Ein höherer Wert von c macht die Trennungen im Eingaberaum schärfer. (1, 1) (0, 1) Gewicht (0, 0) (1, 0) Abbildung 6.3 Das wichtigste Problem bei der Sigmoidfunktion ist, dass unter Umständen die Fehlerfunktion lokale Minima haben kann, die bei der Schrittfunktion nicht aufgetreten wären. Abbildung 6.4 zeigt ein Beispiel für ein lokales Minimum. Die Funktion wurde für eine einzelne Einheit mit zwei Gewichten, konstantem Schwellenwert und vier Eingabe/Ausgabe-Paaren in der Trainingsmenge Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 45 berechnet. Wird der Gradientenabstieg in der Umgebung des lokalen Minimums gestartet, dann erreicht er das globale Minimum nicht. Abbildung 6.4 6.2. Allgemeine zyklenfreie Netze 6.2.1. Das Lernproblem Betrachte ein zyklenfreies Netz mit n Eingabeplätzen und m Ausgabeeinheiten. Es kann eine beliebige Anzahl verborgener Einheiten haben und beliebige zyklenfreie Verknüpfungen zwischen den Einheiten. Es sei eine Trainingsmenge {(x1, t1), ..., (xp, tp)} aus p geordneten Paaren von nbzw. m-dimensionalen Vektoren gegeben, die so genannten Eingabe- bzw. Ausgabemuster. Die primitive Funktion an jeder Einheit sei stetig und differenzierbar. Die Gewichte der Kanten sind zufällig gewählte reelle Zahlen. Wenn dem Netz das Eingabemuster xi aus der Trainingsmenge eingegeben wird, erzeugt es eine Ausgabe oi, die im Allgemeinen von dem Zielwert ti abweicht. Durch Benutzung eines Lernalgorithmus sollen oi und ti identisch gemacht werden für i = 1, ..., p. Genauer: Die Fehlerfunktion des Netzes soll minimiert werden. Sie ist definiert durch E p 1 2 o i 1 i ti 2 Danach werden dem Netz neue unbekannte Muster eingegeben und es soll durch Interpolation Ausgaben berechnen, d.h. es soll bestimmen, ob die neuen Muster zu gelernten Mustern ähnlich sind und eine entsprechende Ausgabe erzeugen. Der Backpropagation-Algorithmus wird dazu benutzt ein lokales Minimum der Fehlerfunktion zu bestimmen. Dazu wird das Netz mit zufällig gewählten Gewichten initialisiert. Dann wird der Gradient der Fehlerfunktion berechnet und nach ihm werden die Anfangsgewichte korrigiert. Der Gradient muss rekursiv berechnet werden. Im ersten Schritt des Minimierungsprozesses wird das Netz um Einheiten erweitert, so dass es die Fehlerfunktion automatisch berechnet. Jede Ausgabeeinheit wird mit einer neuen Einheit verknüpft, die die Funktion ½(oij – tij)2 berechnet, wobei oij bzw. tij die j-te Komponente des Ausgabevektors oi bzw. des Zielvektors ti ist. Die Ausgaben der neuen m Einheiten werden in einer weiteren Einheit aufaddiert und als Summe Ei ausgegeben. Diese Konstruktion muss für jeden Zielvektor ti gemacht werden. Die Ausgaben Ei aus den einzelnen Konstruktionen werden schließlich durch eine letzte Einheit addiert zu dem Gesamtfehler E = E1 + ... + Ep. Nun kann die Fehlerfunktion berechnet werden. E wird in dem erweiterten Netz ausschließlich durch Komposition der Funktionen in den Einheiten berechnet, deshalb ist sie eine stetige und diffeTechnische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 46 renzierbare Funktion der l Gewichte w1, w2, .., wl im Netz. Der Gradient von E berechnet sich nach folgender Vorschrift: E E E E , , , wl w1 w2 Jedes Gewicht wird durch das Inkrement wi E wi für i 1, , l aktualisiert, wobei eine Lernkonstante ist. Sie beschreibt die Schrittlänge jeder Iteration in der negativen Gradientenrichtung. 6.2.2. Ableitungen von Netzfunktionen Die Einheiten eines Netzes werden als aus einer linken und einer rechten Seite zusammengesetzt dargestellt, wie in Abbildung 6.5 illustriert. Diese Darstellung heißt B-Diagramm (für Backpropagation-Diagramm). f‘ f Abbildung 6.5 Die rechte Seite der Einheit berechnet die primitive Funktion, die der Einheit zugeordnet ist, die linke Seite berechnet die Ableitung dieser Funktion für dieselbe Eingabe. Die Integrationsfunktion der Einheit kann von der Aktivierungsfunktion dadurch unterschieden werden, dass die Einheit in zwei Teile aufgeteilt wird, wie in Abbildung 6.6 dargestellt. Der erste Teil berechnet die Summe der Eingaben, der zweite Teil die Aktivierungsfunktion s. Die Ableitung von s ist s‘ und die partielle Ableitung der Summe von n Argumenten bezüglich jedes Arguments ist gerade 1. Durch diese Unterteilung wird die Darstellung vereinfacht, denn jetzt berechnet jede Einheit genau eine Funktion. 1 + s‘ s Abbildung 6.6 Die Auswertung des Netzes erfolgt in zwei Schritten. Im ersten, dem Vorwärtsschritt, wird die Information von links her eingegeben und jede Einheit wertet ihre primitive Funktion f in ihrer rechten Seite und deren Ableitung f‘ in ihrer linken Seite aus. Beide Ergebnisse werden in der Einheit gespeichert, aber nur das Ergebnis der rechten Seite wird zur nächsten Einheit übertragen. Im zweiten Schritt, dem Backpropagationschritt, wird das Netz rückwärts durchlaufen und die gespeicherten Werte werden ausgewertet. Dabei sind drei Fälle zu betrachten. Erster Fall: Funktionskomposition. Man betrachte das B-Diagramm von Abbildung 6.7(a). Im Vorwärtsschritt wird die eingehende Information als Argument der primitiven Funktion der jeweiligen Einheit sowie ihrer Ableitung ausgewertet. Das Netz berechnet in diesem Schritt die KomposiTechnische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 47 tion der Funktionen f und g. Abbildung 6.7(b) zeigt das Ergebnis der Berechnung. Die korrekte Ausgabe wurde erzeugt und jede Einheit hat Information in der linken Seite gespeichert. Im Backpropagationschritt kommt die Eingabe von rechts und hat den Wert 1. Die eingehende Information wird mit dem Wert in der linken Seite multipliziert. Das Ergebnis wird zur nächsten Einheit nach links übertragen. Das Ergebnis dieses Schritts an jeder Einheit heißt der durchfließende Wert an dieser Einheit. Abbildung 6.7(c) zeigt das Ergebnis des Backpropagationschritts, nämlich f‘(g(x))g‘(x), d.h. die Ableitung der Funktionskomposition f(g(x)), die in dem Netz implementiert ist. Damit liefert der Backpropagationschritt eine Implementierung der Kettenregel. Auf diese Weise kann jede Folge von Funktionskompositionen berechnet werden und ihre Ableitung kann im Backpropagationschritt erzeugt werden. Die Eingabe beim Backpropagationschritt ist jeweils 1. Zweiter Fall: Funktionsaddition. Abbildung 6.8(a) zeigt ein Netz für die Berechnung der Addition der Funktionen f1 und f2. Die dritte Einheit führt die Addition durch. Die partielle Ableitung der Addition nach jedem Argument ist 1. Im Vorwärtsschritt berechnet das Netz den Wert f1(x) + f2(x). Im Backpropagationschritt wird wieder eine 1 von rechts eingegeben, mit den beiden Einsen in der linken Seite der rechten Einheit multipliziert und an die beiden Einheiten zur Berechnung der Funktionen f1 und f2 weitergegeben. Die Multiplikation mit 1 ergibt jeweils den in der linken Seite gespeicherten Wert, und nun werden diese beiden Werte in Umkehrung der Addition nach rechts addiert und nach links ausgegeben. Dies ist in Abbildung 6.8(b) dargestellt. Dritter Fall: Gewichtete Kanten. Im Vorwärtsschritt wird die eingehende Information x mit dem Kantengewicht w multipliziert und das Ergebnis ist wx. Im Backpropagationschritt wird der durchfließende Wert 1 mit w multipliziert. Das Ergebnis w ist die Ableitung von wx nach x. Gewichtete Kanten werden also in beiden Schritten in genau der gleichen Weise behandelt. Sie modulieren die in jeder Richtung übertragene Information durch Multiplikation mit dem Kantengewicht. (a) x g‘ f‘ f f‘(g(x)) f g Funktionskomposition (b) x g‘(x) g f(g(x)) Backpropagation (c) f‘(g(x))g‘(x) g‘(x) g f‘(g(x)) f 1 Abbildung 6.7 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 48 Funktionsaddition f 1‘(x) f1 1 (a) f 1(x) + f 2(x) + x 1 f 2‘(x) f2 Backpropagation f 1‘(x) (b) f1 1 f 1‘(x) + f 2‘(x) + 1 1 f 2‘(x) f2 Abbildung 6.8 6.2.3. Schritte des Backpropagation-Algorithmus Algorithmus 6.1. Backpropagation-Algorithmus Gegeben sei ein Netz mit einer einzelnen reellwertigen Eingabe x und der Netzfunktion F. Die Ableitung F‘(x) wird in zwei Phasen berechnet: Vorwärtsschritt: Der Wert x wird in das Netz eingegeben. Die primitiven Funktionen in den Einheiten und ihre Ableitungen werden berechnet. Die Ableitungen werden gespeichert. Backpropagation: Die Konstante 1 wird in die Ausgabeeinheiten eingegeben und das Netz wird rückwärts durchlaufen. Der in eine Einheit eingehende Wert wird mit dem in der linken Seite der Einheit gespeicherten Wert multipliziert und das Ergebnis nach links weitergegeben. Das Ergebnis am Eingabeplatz ist die Ableitung der Netzfunktion nach x. Satz 6.1: Algorithmus 6.1 berechnet die Ableitung der Netzfunktion F nach dem Eingabewert x korrekt. Der Backpropagation-Algorithmus arbeitet auch für Netze mit mehr als einem Eingabeplatz korrekt. In einem Netz mit z.B. zwei Eingaben x1 und x2, die unabhängig voneinander eingegeben werden, ist das Ergebnis der Berechnung eine Funktion F(x1, x2). Sie hat zwei Argumente und man kann die partielle Ableitung der Funktion nach jedem der Argumente berechnen. Der Vorwärtsschritt ändert sich nicht und alle Teilberechnungen werden wie vorher in den linken Seiten der Einheiten gespeichert. Im Backpropagationschritt kann man zwei Teilnetze unterscheiden. Das eine besteht Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 49 aus allen Pfaden vom ersten Eingabeplatz zur Ausgabeeinheit und das zweite aus den Pfaden vom zweiten Eingabeplatz zur Ausgabeeinheit. Mittels Backpropagation durch das erste Teilnetz erhält man die partielle Ableitung der Funktion nach dem ersten Argument, entsprechend für das zweite Teilnetz. Die beiden Backpropagationschritte können überlappend in einem Durchgang durch das Netz durchgeführt werden. 6.2.4. Lernen mit Backpropagation Zur Verwendung von Backpropagation zum Lernen wird im Vorwärtsschritt die Ausgabe jeder Einheit in der rechten Seite gespeichert. Dann wird der Backpropagationschritt durchgeführt. Man betrachtet nun irgendeines der Gewichte, etwa wij an der Kante von der i-ten zur j-ten Einheit, sowie das Teilnetz, das mit dieser Kante beginnt und alle Pfade von dort zur Ausgabeeinheit enthält. Die Eingabe in dieses Teilnetz beim Vorwärtsschritt ist oiwij, wobei oi die Ausgabe der i-ten Einheit ist, die dort in der rechten Seite gespeichert ist. Der Backpropagationschritt berechnet die Ableitung von E nach dieser Eingabe, d.h. E/oiwij. Im Backpropagationschritt wird oi als Konstante behandelt, deshalb erhält man E E oi wij oi wij Insgesamt lässt sich also sagen, dass die beiden Schritte wie vorher durchgeführt werden, nur dass in den Einheiten jetzt folgende Informationen gespeichert werden: Die Ausgabe oi der Einheit bei Vorwärtsschritt in der rechten Seite. Das kumulierte Ergebnis der Rückwärtsberechnung im Backpropagationschritt bis zu dieser Einheit. Dieser Wert heißt zurück propagierter Fehler. Der zurück propagierte Fehler an der j-ten Einheit wird oft als j bezeichnet, damit kann man die partielle Ableitung von E nach wij in folgender Weise beschreiben: E oi j wij Sind alle Ableitungen auf diese Weise berechnet, dann kann man den Gradientenabstieg durchführen indem man zu jedem Gewicht wij das Inkrement wij = oij hinzufügt. Mit diesem Korrekturschritt wird aus dem Backpropagation-Algorithmus ein Lernverfahren für Neuronale Netze. 6.3. Geschichtete Netze 6.3.1. Erweiterte Netze Es wird ein Netz mit n Eingabeplätzen, k verborgenen und m Ausgabeeinheiten betrachtet. Das Gewicht an der Kante zwischen dem Eingabeplatz i und der verborgenen Einheit j wird mit wij(1) bezeichnet. Das Gewicht an der Kante zwischen der verborgenen Einheit i und der Ausgabeeinheit j wird mit wij( 2) bezeichnet. Das Bias jeder Einheit ist als Gewicht einer zusätzlichen Kante impleTechnische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 50 mentiert. Die Eingabevektoren werden also um eine 1 erweitert, entsprechend der Ausgabevektor der verborgenen Schicht. Das Gewicht an der Kante zwischen dem Bias und der verborgenen Einheit j heißt wn(1)1, j und das Gewicht an der Kante zwischen dem Bias und der Ausgabeeinheit j heißt wn( 2)1, j . Abbildung 6.9 zeigt ein Netz mit einer verborgenen Schicht und den entsprechenden Kanten. k verborgene Einheiten n Eingabeplätze . . . Eingabeplatz n+1 1 . . . wn+1,k . . . wk+1,m (1) m Ausgabeeinheiten (2) 1 Verknüpfungsmatrix W1 Verknüpfungsmatrix W2 Abbildung 6.9 Es gibt (n + 1)k Gewichte zwischen den Eingabeplätzen und den verborgenen Einheiten und (k + 1)m Gewichte zwischen den verborgenen und den Ausgabeeinheiten. Sei W1 die (n + 1)k-Matrix mit der Komponente wij(1) an der i-ten Zeile und j-ten Spalte, entsprechend W 2 die (k + 1)m-Matrix mit den Komponenten wij( 2) . Die Notation mit dem Überstrich deutet an, dass die letzte Zeile beider Matrizen dem Bias der Recheneinheiten entspricht. Im Backpropagationschritt werden die Matrizen ohne die letzte Zeile gebraucht. Der n-dimensionale Eingabevektor o = (o1, ..., on) wird erweitert zu oˆ (oˆ1 ,, oˆ n ,1) . Die Erregung der j-ten Einheit netj ist definiert durch n 1 net j wij(1) oˆ i i 1 Die Aktivierungsfunktion ist eine Sigmoidfunktion und die Ausgabe o (j1) der j-ten Einheit ist damit n1 o (j1) s wij(1) oˆi i 1 Die Erregung aller Einheiten der verborgenen Schicht kann durch das Vektor-Matrix-Produkt oˆ W1 berechnet werden. Der Ausgabevektor der verborgenen Schicht o(1) ist definiert durch o (1) s oˆ W1 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 51 wobei die Sigmoidfunktion auf jede Komponente des Vektors ô angewendet wird. Die Erregung der Einheiten in der Ausgabeschicht wird mit dem erweiterten Vektor oˆ (1) (oˆ1(1) ,, oˆ k(1) ,1) berechnet. Die Ausgabe des Netzes ist der m-dimensionale Vektor o(2) mit o ( 2 ) s oˆ (1) W 2 6.3.2. Schritte des Algorithmus In Abbildung 6.10 ist ein Ausschnitt des erweiterten Netzes, beginnend mit der i-ten verborgenen Einheit, dargestellt. Der Einfachheit halber wird zunächst nur ein Ein/Ausgabepaar (o, t) betrachtet und später auf p Trainingsbeispiele verallgemeinert. Die Einheiten der zusätzlich eingeführten Schicht berechnen in der rechten Seite die quadratische Abweichung 12 (oi( 2 ) t i ) 2 der i-ten Komponente des Ausgabevektors und in den linken Seiten wird der Wert (oi( 2 ) t i ) gespeichert. Jede Ausgabeeinheit i des ursprünglichen Netzes berechnet die Sigmoidfunktion s und erzeugt die Ausgabe oi( 2 ) . Die Addition der quadratischen Abweichung ergibt den Fehler E. Die Fehlerfunktion für p Ein/Ausgabepaare kann durch Erzeugen von p erweiterten Netzen nach dem Muster von Abbildung 6.10, für jedes Paar eines, und Addition aller Ausgaben dieser Netze berechnet werden. Ausgabeeinheiten (2) s s‘ o1 (2) s s‘ oi i-te verborgene Einheit (2) – t1) ½(o1 (2) – t2) ½(o2 (o1 o2 (o2 (2) – t1) 2 (2) – t2) 2 + (1) (2) wim . . . . . . (2) s s‘ E om (2) (om (2) – tm) ½(om – tm) 2 Abbildung 6.10 Nach zufälliger Wahl der Anfangsgewichte verläuft der Backpropagation-Algorithmus zur Korrektur der Gewichte in vier Schritten: (i) (ii) (iii) (iv) Vorwärtsberechnung Backpropagation bis zur Ausgabeschicht Backpropagation bis zur verborgenen Schicht Gewichtsanpassungen Der Algorithmus wird abgebrochen, wenn der Wert der Fehlerfunktion ausreichend klein ist. Erster Schritt: Vorwärtsberechnung. Der Vektor o wird in das Netz eingegeben. Die Vektoren o(1) und o(2) werden berechnet und gespeichert. Die ausgewerteten Ableitungen der Aktivierungsfunktionen werden ebenfalls in jeder Einheit gespeichert. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 52 Zweiter Schritt: Backpropagation bis zur Ausgabeschicht. Die erste Menge partieller Ableitungen E/wij(2) ist zu bestimmen. Der Backpropagationpfad von der Gesamtausgabe des erweiterten Netzes bis zur i-ten verborgenen Einheit ist in Abbildung 6.11 dargestellt. Backpropagation Zur j-ten Einheit zurück propagierter Fehler (2) (2) oj (1 – oj )(oj oi (2) – tj) (oj (1) wij – tj) ½(oj (2) – tj) 2 (2) (2) (2) oj (1 – oj ) i-te verborgene Einheit (2) oj quadratischer Fehler der j-ten Komponente (2) 1 + 1 j-te Ausgabeeinheit Abbildung 6.11 Der zurück propagierte Fehler j(2) kann entlang des Pfades einfach durch Multiplikation der in den linken Seiten gespeicherten Werte bestimmt werden, d.h. es ist (j 2) o (j2) (1 o (j2) )(o (j2) t j ) und die gesuchte partielle Ableitung ist E [o (j2) (1 o (j2) )(o (j2) t j )]oi(1) (j 2) oi(1) ( 2) wij Dritter Schritt: Backpropagation zur verborgenen Schicht. Jede Einheit j der verborgenen Schicht ist mit jeder Einheit q der Ausgabeschicht verknüpft mit dem Kantengewicht w(jq2) für q = 1, ..., m. Bei der Berechnung des Fehlers bis zur Einheit j in der verborgenen Schicht, müssen alle möglichen Rückwärtspfade berücksichtigt werden, wie in Abbildung 6.12 illustriert. Backpropagation Zur j-ten verborgenen Einheit zurück propagierter Fehler m (1) (1) oj (1 – oj ) w q 1 oi wij ( 2) jq zurück propagierter Fehler 1(2) ( 2) q (1) (2) wj1 (2) wj2 (1) (1) oj (1 – oj ) oj 2(2) (1) wjm verborgene Einheit j . . . (2) m(2) Abbildung 6.12 Der zurück propagierte Fehler ist Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 53 m (j1) o (j1) (1 o (j1) ) w(jq2) q( 2) q 1 Die gesuchte partielle Ableitung ist jetzt E (j1) oi (1) wij Dieses Verfahren zur Berechnung des Fehlers kann für beliebig viele Schichten verborgener Einheiten iteriert werden und der Ausdruck für die partiellen Ableitungen von E behält die selbe analytische Form. Vierter Schritt: Gewichtsanpassungen. Zuletzt werden die Gewichte in Richtung des negativen Gradienten angepasst. Eine Lernkonstante legt die Schrittlänge der Korrektur fest. Die Korrekturen der Gewichte sind definiert durch wij( 2) oi(1) (j 2) wij(1) oi (j1) für i 1,, k 1; j 1,, m für i 1,, n 1; j 1,, k wobei on 1 ok(1)1 1 . Mehrere Trainingsmuster. Für mehrere Trainingsmuster wird ein erweitertes Netz benutzt, mit dem die Fehlerfunktion für jedes Ein/Ausgabepaar getrennt berechnet wird. Für jedes Paar wird die Gewichtskorrektur berechnet, d.h. für das Gewicht wij(1) erhält man z.B. folgende Korrekturen 1 wij(1) , 2 wij(1) ,, p wij(1) und daraus wird die Gesamtkorrektur durch Addition der einzelnen Korrekturen berechnet: wij(1) 1 wij(1) 2 wij(1) p wij(1) Bei dieser Art der Berechnung werden die Korrekturen im Batch oder off-line gemacht. Man kann die Korrekturen auch nach jeder Präsentation eines Trainingspaars vornehmen, dann spricht man von on-line-Training. In diesem Fall folgen die Korrekturen nicht genau dem negativen Gradienten. Wenn die Trainingsbeispiele zufällig ausgewählt werden, oszilliert aber die Suchrichtung um den exakten Gradienten herum, so dass im Durchschnitt ebenfalls ein Abstieg in der Fehlerfunktion zustande kommt. 6.3.3. Backpropagation in Matrixform In einem Netz mit einer verborgenen und einer Ausgabeschicht (k und m Einheiten in den einzelnen Schichten und n Eingabeplätze, vgl. Abschnitt 6.3.1, Abbildung 6.9) erzeugt die Eingabe o die Ausgabe o( 2 ) s ˆo( 1) W 2 mit ˆo( 1) s ˆo W 1 . W1 und W 2 sind die erweiterten Verknüpfungsmatrizen. Für den Backpropagationschritt benötigt man die Erweiterungen nicht, d.h. man braucht nur die ersten n Zeilen von W1 und die ersten k Zeilen von W 2 . Diese Matrizen werden mit W1 bzw. W2 bezeichnet. Die Ableitungen, die beim Vorwärtsschritt in den k verborgenen und den m Ausgabeeinheiten gespeichert werden, können in Form der folgenden beiden Matrizen gespeichert werden: Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 54 o1( 2) (1 o1( 2) ) 0 ( 2) 0 o2 (1 o2( 2) ) D2 0 0 0 om( 2) (1 om( 2) ) o1(1) (1 o1(1) ) 0 (1) 0 o2 (1 o2(1) ) D1 0 0 0 0 ok(1) (1 ok(1) ) 0 Der Vektor e der gespeicherten Ableitungen der quadratischen Abweichungen ist (o1( 2 ) t1 ) ( 2) (o 2 t 2 ) e (o ( 2 ) t ) m m Die Vektoren der zurück propagierten Fehler zu den Ausgabeeinheiten ((2)) bzw. zu den verborgenen Einheiten ((1)) können nun in folgender Weise berechnet werden: δ ( 2) D 2 e bzw . δ (1) D1 W2 δ ( 2) Die Korrekturen an den (erweiterten) Verknüpfungsmatrizen W1 und W 2 werden berechnet durch T W 2 δ ( 2) oˆ 1 T bzw . W1 δ (1) oˆ Die Verallgemeinerung der obigen Gleichungen auf l Schichten ist einfach. Die Verknüpfungsmatrix zwischen der i-ten und der (i+1)-ten Schicht sei W i 1 . Der zur Ausgabeschicht zurück propagierte Fehler ist dann δ (l ) D l e Der zur i-ten Schicht von Recheneinheiten zurück propagierte Fehler wird rekursiv definiert durch δ (i ) D i Wi 1δ (i 1) für i 1,, l 1 δ (i ) D i Wi 1 Wl 1 D l 1 Wl D l e oder 6.3.4. Die Lokalität von Backpropagation f‘(ab)b a b Backpropagation f‘ f a f‘(ab)a Technische Universität Chemnitz b Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 55 Abbildung 6.f Satz 6.2: In einer Einheit mit n Eingaben x1, ..., xn garantieren nur Integrationsfunktionen der Form I ( x1 ,, xn ) F1 ( x1 ) F2 ( x2 ) Fn ( xn ) C wobei C eine Konstante ist, die Lokalität des Backpropagation-Algorithmus in dem Sinn, dass an einer Kante i j nicht explizit Information über xj gespeichert werden muss. 6.4. Rekurrente Netze 6.4.1. Backpropagation in der Zeit Es sei ein Netz mit n Recheneinheiten gegeben und wij sei das Gewicht an der Kante von Einheit i zu Einheit j. Faltet man das Netz an den Zeitpunkten 1, 2, ..., T auseinander, dann kann man es als zyklenfreies Netz mit T Berechungsschritten betrachten. An jedem Zeitpunkt t wird eine externe Eingabe x(t) in das Netz eingegeben und die Ausgaben (o1( t ) , , o n( t ) ) aller Recheneinheiten werden aufgesammelt. Dieser n-dimensionale Vektor der Ausgaben aller Einheiten zum Zeitpunkt t wird mit o(t) bezeichnet und heißt Netzzustand. Der Anfangswert dieses Vektors sei 0, d.h. o(0) = (0, ..., 0), dagegen kann x(0) ungleich dem Nullvektor sein. In Abbildung 6.13 ist ein aufgefaltetes Netz dargestellt. Diese Technik des Auffaltens eines Netzes und seine Umwandlung in ein zyklenfreies Netz zum Zweck der Anwendung des Backpropagation-Algorithmus heißt Backpropagation in der Zeit (backpropagation through time, BPTT). (0) (1) x o Einheit 1 (2) x (0) (T) x o (1) x o (2) ... o (T) ... Einheit 2 . . . . . . . . . . . . ... Einheit n t=0 t=1 t=2 t=T Abbildung 6.13 W sei die n n-Matrix der Netzgewichte wij und W0 die m n-Matrix der Verknüpfungen zwischen den m Eingabeplätzen und den n Einheiten. Der Vorwärtsschritt wird wie üblich durchgeführt, beginnend mit einer initialen Eingabe x(0). An jedem Zeitpunkt t werden der Netzzustand o(t) und die Ableitungen der Aktivierungsfunktion jeder Einheit o‘(t) gespeichert. Der Fehler des Netzes kann nach jedem Zeitschritt oder nach dem letzten Zeitschritt T gemessen werden. Die erste Methode wird angewendet, wenn eine Folge von Werten erzeugt werden soll, die zweite, wenn nur die letzte Ausgabe von Bedeutung ist. Hier wird der erste, allgemeinere Fall betrachtet. Die Differenz zwischen dem Zielvektor t(t) zum Zeitpunkt t und der tatsächlichen Ausgabe des Netzes ist e(t) = (o(t) t(t)). Dies ist ein n-dimensionaler Vektor, aber in den meisten Fällen ist man nur an der Ausgabe einiger Einheiten im Netz interessiert, nicht aller. Dazu wird ei(t) = 0 gesetzt für jede Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 56 Einheit i, deren genauer Zustand unwichtig ist und die deshalb als verborgen betrachtet werden kann. Der Backpropagationschritt bei BPTT beginnt von rechts. Der zurück propagierte Fehler zur Zeit T ist δ (T ) D (T ) e (T ) wobei D(T) die diagonale n n-Matrix mit den Komponenten o‘i(T) in der Diagonalen ist, d.h. die gespeicherten Ableitungen der i-ten Ausgabeeinheit zur Zeit T. Zur Zeit T – 1 ist der zurück propagierte Fehler δ (T 1) D (T 1) e (T 1) D (T 1) WD (T ) e (T ) Allgemein gilt also für den zurück propagierten Fehler δ (i ) D (i ) (e (i ) Wδ (i 1) ) für i 0,, T 1 Die endgültigen Gewichtskorrekturen sind definiert durch T W (δ (1) oˆ ( 0) δ (T ) oˆ (T 1) ) T W 0 (δ ( 0) xˆ ( 0) δ (T ) xˆ (T ) ) Dabei sind ô (1) , ..., oˆ (T ) die erweiterten Ausgabevektoren in den Schritten 1, ..., T und W und W 0 die Erweiterungen der Matrizen W und W0. 6.4.2. Hidden-Markov-Modelle Hidden-Markov-Modelle sind ein wichtiger Spezialfall der rekurrenten Netze. Ein Markov-Modell erster Ordnung ist ein System, das zum Zeitpunkt t einen von n verschiedenen Zuständen annehmen kann. Das System ändert seinen Zustand an jedem Zeitpunkt nicht deterministisch, sondern entsprechend einer stochastischen Dynamik. Die Wahrscheinlichkeit des Übergangs vom i-ten zum j-ten Zustand bei einem Schritt ist aij (0 aij 1) und hängt nicht von den vorangegangenen Übergängen ab. Diese Wahrscheinlichkeiten können in einer n n-Matrix A angeordnet werden. Bei jedem Schritt gibt das Modell einen von m möglichen Ausgabewerten aus. Die Wahrscheinlichkeit der Ausgabe des k-ten Ausgabewertes im i-ten Zustand ist bik. Das Modell beginnt in einem definierten Zustand zum Zeitpunkt t = 0 und läuft T Zeiteinheiten, dabei werden die erzeugten Ausgaben aufgesammelt. Jeder neue Lauf des Modells erzeugt im Allgemeinen eine unterschiedliche Folge von Ausgabewerten. Der Name „Hidden-Markov-Modell“ kommt daher, dass man nur die Ausgaben des Systems beobachten kann, nicht die Zustandsübergänge. Das allgemeine Problem bei einer gegebenen Folge von Ausgabewerten eines Hidden-MarkovModells ist, die wahrscheinlichste Folge von Zustandsübergängen zu berechnen, die die Ausgabewerte erzeugt hat. Dies kann mittels eines rekursiven Algorithmus gemacht werden. Das Zustandsdiagramm eines Hidden-Markov-Modells kann durch ein Netz mit n Einheiten und Kanten zwischen je zwei Einheiten repräsentiert werden. Die Gewichte an den Kanten repräsentieren die Übergangswahrscheinlichkeiten. Ein Beispiel eines solchen Netzes mit drei Einheiten ist in Abbildung 6.14 dargestellt. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 57 a11 S1 a12 a31 a13 a21 a23 S2 S3 a32 a33 a22 Abbildung 6.14 Wendet man Backpropagation in der Zeit an, dann kann man das Netz auffalten und es an jedem Zeitschritt beobachten. Am Zeitpunkt t = 0 erzeugt eine Einheit, etwa die i-te, eine 1, alle anderen eine 0. i ist der aktuelle Zustand des Systems. Die Wahrscheinlichkeit zum Erreichen von Zustand j am Zeitpunkt t = 1 ist aij, die Wahrscheinlichkeit zum Erreichen von Zustand k am Zeitpunkt t = 2 ist n a a j 1 ij jk Dies ist genau die aufsummierte Eingabe am k-ten Knoten im Schritt t = 2 des Netzes von Abbildung 6.15. a11 Zustand 1 a11 a11 ... ... Zustand 2 . . an1 . an2 . . an1 . an2 anm Zustand n t=0 . . an1 . an2 anm anm t=1 t=2 ok1 . . . ... t=T ok2 okT Abbildung 6.15 Was geschieht, wenn man nur die Ausgaben des Systems aber nicht die Zustandsübergänge beobachten kann? Das System soll am Zeitpunkt t = 0 in einem Zustand starten, der durch eine diskrete Wahrscheinlichkeitsverteilung 1, 2, ..., n gegeben ist. Die Wahrscheinlichkeit am Zeitpunkt t = 0 die k-te Ausgabe zu bekommen ist dann n b i 1 i ik Die Wahrscheinlichkeit am Zeitpunkt t = 0 die k-te Ausgabe und am Zeitpunkt t = 1 die m-te Ausgabe zu bekommen ist Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 58 n n b j 1 i 1 i ik aij b jm Die übrigen Zustände des Netzes berechnen die entsprechenden Wahrscheinlichkeiten in ähnlicher Form. Abbildung 6.16 stellt die Berechnung der Wahrscheinlichkeiten im aufgefalteten Netz dar. + b1k1 a11 + b1k2 a11 ... + 1 b1kT + 1 b2k1 + b2k2 ... + b2kT 2 n . . . + . . . bnk1 t=0 ann + . . . bnk2 ann t=1 ... + bnkT + t=T Abbildung 6.16 Mit Hilfe des aufgefalteten Netzes von Abbildung 6.16 und Backpropagation können die Zustandsübergangs- und Ausgabewahrscheinlichkeiten eines Hidden-Markov-Modells bestimmt werden. Die Wahrscheinlichkeit einer Folge von Ausgaben k1, k2, ..., kT ist das Produkt der Wahrscheinlichkeiten der einzelnen Ausgaben. Dieses wird durch die Konstruktion des Netzes von Abbildung 6.16 berechnet, indem nach jedem Knoten in jedem Schritt eine Kante mit dem Gewicht bikh , i = 1, ..., n, h = 1, ..., T – 1, eingeschoben wird. Dadurch wird im letzten Knoten, der die Summe aller einzelnen Berechnungen bildet, die Wahrscheinlichkeit der Folge bestimmt. Das aufgefaltete Netz enthält nur differenzierbare Funktionen, deshalb kann es mit dem Backpropagation-Algorithmus trainiert werden. Man muss allerdings dafür sorgen, dass die Wahrscheinlichkeiten so aktualisiert werden, dass sie weder negativ noch größer als 1 werden. Technische Universität Chemnitz Sommersemester 2006