4. Unüberwachtes Lernen und Clustering-Algorithmen

Werbung
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 wp  0 für alle p  P und wn < 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 xjwi für i = 1, ..., k.
Wähle wm so, dass wmxj  wixj 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 wixj 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(ab) | a, b  K mit ||a|| = ||b|| = 1}
wobei 0  arccos(ab)  .
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(pn) | p  KP, n  KN, mit ||p|| = ||n|| = 1}
wobei 0  arccos(pn)  . Ü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  = xw.
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  = xiw 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 (wx)w größer als die
Länge der orthogonalen Projektion von x auf w. Angenommen, wx > 0, d.h. die Vektoren x und w
liegen nicht zu weit voneinander entfernt. Der Vektor x  (wx)w hat eine negative Projektion auf
w, denn
(x  (wx)w)w = wx  ||w||2wx < 0
Der Vektor x  (wx)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.
(wx)w
(wx)w
x
(wx)w
x  (wx)w
x  (wx)w
(a)
x
(wx)w
(b)
Abbildung 4.7
Abbildung 4.6(b) zeigt den Fall, dass |w| < 1. Hier hat der Vektor x  (wx)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
x1w1

+
2
w2

w3
x1w12w2

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 1616-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 10241024 Pixeln übertragen. Dazu benötigt man 220 Bits
(=210210). 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 128128 Felder mit je 88 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 128128 Felder im Bild überträgt der Sender den Namen
des Kodevektors, der den Inhalt des 88-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, ..., l1). 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 mn 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):
0w1 + 0w2 + 1w3 < 0
0w1 + 1w2 + 1w3 < 0
1w1 + 0w2 + 1w3 < 0
1w1 + 1w2 + 1w3  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:
0w1 + 0w2 + 1w3 = 0
0w1 + 1w2 + 1w3 = 0
1w1 + 0w2 + 1w3 = 0
1w1 + 1w2 + 1w3 = 0
0w4 + 0w5 + 1w6 = 0
0w4 + 1w5 + 1w6 = 0
1w4 + 0w5 + 1w6 = 0
1w4 + 1w5 + 1w6 = 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:
y1w7 + y2w8 + 1w9 = 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 141414 = 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 n1 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 n1 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( n1) , 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
ex
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 =  oij
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
 n1

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
Herunterladen