Exotische Modelle der Parallelverarbeitung:
Neuronale Netze und Zellularautomaten
André Betz
Inhaltsverzeichnis 1. Berechenbarkeit ................................................................................................... 3 2. Neuronale Netze ................................................................................................. 4 2.1. Biologische Grundlage.................................................................................... 4 2.2. Abstraktes Modell ........................................................................................... 4 2.3. McCulloch-Pitts-Neuron.................................................................................. 5 2.4. Perzeptron .................................................................................................... 10 2.5. Mehrschichtige Netze ................................................................................... 14 2.6. Backpropagation-Algorithmus....................................................................... 15 2.7. Weitere neuronale Netze .............................................................................. 16 3. Zellularautomaten............................................................................................. 17 3.1. Grundlage..................................................................................................... 17 3.2. Eindimensionaler ZA..................................................................................... 18 3.3. Zweidimensionaler ZA .................................................................................. 19 3.3.1.Conway’s Game of life.................................................................................. 20 3.3.2.Weitere Regeln ............................................................................................. 23 4. Literatur ............................................................................................................... 24
2
1. Berechenbarkeit Neuronale
Netze
und
Berechenbarkeitsmodellen.
Zellularautomaten Um
verstehen
gehören zu
zu
können,
den was
sogenannten überhaupt
ein
Berechenbarkeitsmodell ist, muß man zuerst den Begriff Berechenbarkeit erläutern. Die Wurzel oder der Logarithmus einer Zahl ist eine berechenbare Funktion, weil es ein Berechnungs-Verfahren dafür gibt, das zum Beispiel auf einem Computer ausgeführt werden kann. Das aus der Informatik bekannte Halteproblem ist ein Beispiel für ein unberechenbares Problem, das heißt, daß es keine Anleitung dafür gibt, wie man es lösen kann und auch jemals gelöst werden kann. Ein weiteres Beispiel stellt die Quadratur des Kreises mit Hilfe von Lineal und Zirkel dar. Dabei handelt
es
sich
bei
Lineal
und
Zirkel
um
die
kleinsten
atomaren
Berechnungskomponenten dieses Berechnunsgsystems. Algorithmen können aus diesen Komponenten beschrieben werden. Es gibt aber viele weitere Berechnungsmodelle, die sich alle in ihren atomaren Komponenten unterscheiden. Das bekannteste aus dieser Gruppe ist die TuringMaschine, deren Komponenten aus dem unendlichen Band und dem Kopf besteht, der sich darauf bewegt und ein Zeichen lesen und schreiben kann, sowie den jeweiligen Zustand speichert. Der Algorithmus wird hier in sogenannten Transitionen im Kopf gespeichert. Ein weiteres Beispiel für ein solches Modell wäre die von Neumann Architektur, wie man sie in den heutigen Computern findet. Genauso gehören auch die Neuronalen Netze und die Zellularautomaten dazu. Das Besondere ist, daß alle Modelle untereinander äquivalent sind, das heißt, wenn einmal ein Algorithmus in einem Modell formuliert worden ist, so kann man es mit etwas Arbeitsaufwand auch in ein anderes Berechenbarkeitsmodell umwandeln. Diese Modelle haben noch eine weitere Eigenschaft; Sie sind universell. Dies bedeutet, daß alle berechenbaren Funktionen damit formuliert werden können. Jedes Modell ist folglich gleich mächtig und es gibt kein mächtigeres Modell. Ein Modell kann sogar durch ein anderes simuliert werden. Dies bedeutet, daß neuronale Netze und Zellularautomaten auf einem Computer programmiert werden können. Das gleiche gilt aber auch umgekehrt (Church-Turing-These).
3
2. Neuronale Netze 2.1.
Biologische Grundlage
Abb 1: biologisches Neuron
Die grundlegende Berechnungskomponente eines neuronalen Netzes ist das Neuron (Abb. 1), dessen Ursprung in der Biologie liegt. Die meisten Lebewesen auf diesem Planeten haben ein sogenanntes zentrales Nervensystem (Gehirn), welches ihnen die Fähigkeit verleiht, komplexe Aufgaben zu lösen und zu steuern. Das Gehirn besteht aus spezialisierten Körperzellen, den Neuronen. Sie bestehen aus Dendriten, Synapsen, Zellkörper und dem Axon. Die Information kommt von den anderen Zellen über die Synapse auf den Dendrit des Neurons und wird dort zur Zelle geführt. Von dort aus wird sie weiter an das Axon geleitet, das es an die anderen Nervenzellen weiterleitet. Im Gehirn eines Säugetieres ist jedes Neuron mit bis 1000 weiteren verschaltet,
wobei
von
den
Neuronen
einige
Milliarden
existieren.
Die
Schaltgeschwindigkeit einer solchen Zelle ist nicht sehr hoch, es können aber trotzdem sehr schnell komplexe Prozesse berechnet werden (Mustererkennung). Das Geheimnis hierfür liegt in der massiven parallelen Verschaltung dieser Neuronen .
2.2.
Abstraktes Modell
Um neuronale Netze auf einem Rechner zu simulieren, benötigt man zunächst ein abstraktes mathematisches Modell. Dazu stellt man sich das Netz erst einmal als eine B l a c k - B o x
mit n Eingängen und m Ausgängen vor (Abb. 3). Mathematisch
betrachtet wäre dies eine Funktion mit einem n-dimensionalen Eingabevektor der auf einen m-dimensionalen Ausgabevektor abgebildet wird. Öffnet man nun diese 4
Schachtel, so findet man zwei unterschiedliche Verschaltungsarten der Neuronen. Einmal kann die Eingabe von einem Neuron, das einen Teil der Funktion g(x) berechnet, an ein weiteres Neuron als Funktionseingabe übergeben werden, welches daraus die Funktion f(g(x)) berechnet (Abb. 3). Eine zweite Möglichkeit wäre, daß ein Neuron seine Ausgabe als eigene Eingabe erhält (Abb. 4). In diesem Fall ensteht eine sogenannte Rückkoppelung, mit der auch rekursive Funktionen dargestellt werden können.
Um zu bestimmen, was zur Eingabe und was zur
Ausgabe gehört, wird noch eine diskrete zeitliche Dimension t eingeführt. Dabei berechnet das rückgekoppelte Neuron zum Zeitpunkt t die Ausgabe, die ihm erst zum Zeitpunkt t+1 wieder als Eingabe zur Verfügung steht.
x1
y1
x2 f
M xn
y2
xt
x
g(x)
g
f
M
f
ym
f (xt , f (xt−1, f (xt−2,...)...). ..)
f (g(x))
Abb. 2-4: neuronales Netz
2.3.
McCulloch-Pitts-Neuron x1 x2
g
f
f ( g ( x1 , x 2 ,..., x n ))
xn
Abb. 5: McCulloch-Pitts-Neuron
McCulloch und Pitts führten 1934 das erste Neuronenmodel ein (Abb. 5). Dabei handelt es sich um sehr einfache Neuronen, die nur binäre Signale verwenden. Ein Neuron besteht aus n Eingangsleitungen, die jeweils Null oder Eins enthalten. Das eigentliche Neuron bildet die Summe dieser Eingaben, die folglich maximal n sein kann. Dieses Ergebnis wird einer Schwellenwertsfunktion zugeführt, die es mit einem Schwellenwert vergleicht. Liegt das Ergebnis unter diesem Schwellenwert, so legt das Neuron eine Null auf die Ausgabeleitung. Wenn der Wert gleich ist oder darüber liegt, dann sendet das Neuron eine Eins aus. Weiterhin existiert eine hemmende
5
Leitung. Ist diese aktiviert (es liegt eine Eins an), so ist das komplette Neuron gehemmt, und es sendet bei jeder Eingabe den Wert Null aus.
2.3.1. Beispiele Im folgenden sind einige Beispiele aufgeführt, in denen mit Hilfe der McCulloch-PittsNeuronen logische Gatterbausteine nachgebildet worden sind. Die AND-Funktion (Abb. 6) besitzt zwei Eingänge und einen Schwellenwert von zwei. Liegen beide Eingänge auf eins, so wird auch am Ausgang eine Eins angelegt. Bei allen anderen Werten sendet das Neuron eine Null aus. x1 2
x2
Abb. 6: AND-Funktion
Bei der NOR-Funktion (Abb. 7) existieren zwei absolut gehemmte Eingänge und ein Schwellenwert von Null. Liegt an allen Eingängen Null an, so sendet das Neuron eine Eins aus, weil der Schwellenwert Null erreicht wird. Liegt aber an einem der Eingänge eine Eins an, so wird das gesamte Neuron blockiert und inaktiviert (sendet Null aus). x1 0 x2
Abb. 7: NOR-Funktion
2.3.2. Beliebige logische Funktionen Prinzipiell können mit neuronalen Netzen beliebige Funktionen nachgebildet werden. Will
man
nun
eine
logische
Funktion
mit
einer
Ausgabeleitung
und
n
Eingabeleitungen mit Hilfe von Neuronen abbilden, so reicht ein zweischichtiges Netz vollkommen aus. Wie man in Abbildung 8 sehen kann, haben die Neuronen der ersten Schicht die Aufgabe, die einzelnen Eingaben nach den gewünschten Werten zu filtern. Ist die gewollte Eingabe dabei, dann senden sie diese an die nächste Schicht, die als sogenannte ODER-Funktion arbeitet. Ist also eine Eingabe als passend klassifiziert worden, so wird auch dieses Neuron aktiviert. Da man mit 6
Neuronen alle grundlegenden Gatterbausteine AND, OR und NOT nachbilden kann, ist es folglich auch möglich, jede logische Funktion damit zu konstruieren. Sie sind damit universell einsetzbar. x1
Eingabevektoren
F
(0,0,1)
1
(0,1,0)
1
alle anderen
0
x2 x3
1
1 1
Abb. 8: Beispiel einer beliebigen logischen Funktion
Wenn man Funktionen mit Neuronen parallelisieren möchte, dann stellt man fest, daß sich nicht alle Teilschritte einer Funktion in parallele Teilfunktionen umformen lassen. Es wird immer einen Schritt geben, der die Teilergebnisse zu einem Gesamtergebnis zusammenführen muß. Dies sieht man auch am Neuron in der letzten Schicht in Abbildung 8. 2.3.3. Äquivalenz gewichteter und ungewichteter Netze Bei gewichteten Neuronen erhalten die Eingabeleitungen x jeweils noch einen Faktor w, mit dem sie multipliziert werden (Abb. 9). Da aber schon das bisherige Neuronenmodell die allgemeinste Form darstellt, ist diese zusätzliche Information redundant. Dies bedeutet, daß die gewichteten Neuronen äquivalent zu den ungewichteten sind. Es ist also möglich, gewichtete Neuronen durch McCulloch-PittsNeuronen darzustellen.
x1
0,2 0,4
x2
x1
0 ,7
x2
0 ,3
7
x3
x3
f ( x1 , x 2 , x 3 ) = 0 , 2 x1 + 0 , 4 x 2 + 0 , 3 x 3 ≥ 0 , 7
f ( x1 , x 2 , x 3 ) = 2 x1 + 4 x 2 + 3 x 3 ≥ 7
Abb. 10: Äquivalenz gewichteter und ungewichteter Neuronen
Aus dem Beispiel in Abbildung 10 ist zu entnehmen, daß man durch die Multiplikation der Gewichte mit einer Konstanten ganze Zahlen erhält, die sich wiederum in der Zahl der Eingabeleitungen widerspiegelt.
7
2.3.4. Äquivalenz relativ und absolut gehemmter Netze Unter relativ gehemmten Neuronen versteht man Neuronen, die nicht sofort blockiert werden, wenn eine hemmende Leitung aktiv ist, wie bei den absolut gehemmten Neuronen, sondern bei denen der Wert der relativ hemmenden Leitung auf den Schwellenwert m addiert wird. Alternativ kann man sich die relativ hemmende Leitung aber auch mit einem Gewicht von –1 vorstellen. x1 x2 xn y
x1 x2
m
m 1
xn m +1
y
Abb. 11: Äquivalenz relativ und absolut gehemmter Neuronen
Um ein relativ hemmendes Neuron mit n erregenden, einer hemmenden und dem Schwellenwert m zu blockieren, muß die Bedingung n-m+1 < 0 gelten. Wie in Abbildung 11 dargestellt, kann auch ein realtiv gehemmtes Neuron (links) durch McCulloch-Pitts-Neuronen (rechts) dargestellt werden. Dabei muß aber die Netztopologie verändert werden. Das erste Neuron erhält eine absolut hemmende Leitung und ist blockiert, falls y auf Eins gesetzt ist. Das untere Neuron erhält alle anderen erregenden Eingänge, wobei aber ein Schwellenwert m+g zum Feuern erreicht werden muß. In diesem Fall steht g für das Gewicht der relativ hemmenden Leitung und ist in diesem Fall Eins.
2.3.5. Äquivalenz endlicher Automaten und neuronaler Netze Ein Automat ist ein System, das im Laufe der Zeit bestimmte Zustände annimmt und je nach externer Eingabe seinen Zustand ändert und eine entsprechende Ausgabe erzeugt. Endliche Automaten besitzen nur endlich viele Zustände und reagieren auf endliche Eingabesignale (jeder Computer ist ein endlicher Automat). Dabei kann jeder endliche Automat mit McCulloch-Pitts-Zellen simuliert werden. Von Marvin Minsky (1967) stammt ein konstruktives Verfahren, welches in Abbildung 12 zu sehen ist. Es existieren m Eingabesignale, die über die Leitung I decodiert eingegeben werden. Dabei ist zu jedem Zeitpunkt t nur eine Leitung aktiv (enthält eine Eins) und alle anderen Leitungen sind passiv (auf Null gesetzt). Am Anfang befindet sich der Automat im Startzustand Qi, dessen Leitung auf Eins gesetzt
8
worden ist; alle anderen sind auf Null gesetzt. Zu jedem Zeitpunkt t+1 kann also nur eine der AND-Zellen einen Eins feuern, nämlich genau diejenige, bei der Zustandsleitung und Eingabeleitung aktiv sind.
Wenn zum Beispiel die
Eingabeleitung I1 aktiv ist und der Zustand Q1 einen Übergang zum Zustand Q2 bewerkstelligen sollen, dann muß die Ausgangsleitung der obersten linken ANDZelle an die Eingangsleitung der OR-Zelle geschaltet werden (siehe gestrichelte Linie im oberen Kasten der Abb. 12).
1 I1
I2
1
1
L
Q1
Q2
2
2
L
2
2
2
L
2
Im
M
M
2
Qn
2
M
L
2
Q1 Q2 Qk Abb. 12: Realisierung eines endlichen Automaten mit McCulloch-Pitts-Netz
Die Leitung Q2 wird dann zum Zeitpunkt t+2 aktiv. Zu diesem Zeitpunkt muß eine neue Leitung (zum Beispiel I3) aktiv sein und ein neuer Zustandsübergang wird berechnet. Ähnlich verhält es sich mit der Ausgabe, wobei die aktive AND-Zelle auch mit der entsprechenden Ausgabe (unterer Kasten) verbunden ist. Der Nachteil dieses Verfahrens besteht darin, daß jeder endliche Automat für jede Funktion extra konstruiert werden muß. Viel sinnvoller wäre ein universelles, das beliebige Funktionen berechnen kann, ohne das Netz zu verändern. Zusätzlich sollte sich das Netz selbständig an das jeweilige Problem anpassen (selbst programmieren). Dafür wird ein Lernalgorithmus benötigt.
9
2.4.
Perzeptron
Das Perzeptron wurde 1958 von Rosenblatt als ein neues Neuronenmodell vorgeschlagen, das eher seinem biologischem Vorbild ähnelt. Dabei unterscheidet sich das Perzeptron hauptsächlich durch die gewichteten Kanten von den McCullochPitts-Netzen. Lernen erfolgt hier allein durch die Anpassung der Gewichte mit Hilfe eines Lernalgorithmus.
x1
w1
x2
w2
M
wn
n 1 falls ∑ xi wi ≥ Θ f = i =1 0 sonst
Θ
xn
x1
w1
x2
w2
M
wn
xn
n 1 falls ∑ xi wi − Θ ≥ 0 f = i =1 0 sonst
0
−Θ
1
Abb. 13: Perzeptron
Die Eingabe an den Kanten ist wie beim McCulloch-Pitts-Neuronen n-binär. Das gleiche gilt für die Ausgabe. Auch die Schwellenwertfunktion ist nicht verändert worden. Damit der Lernalgorithmus einfacher gehalten werden kann, bekommt der Schwellenwert eine eigene Eingabeleitung zugewiesen und wird als negatives Gewicht
dieser
Leitung
betrachtet,
die
ständig
aktiv
ist.
Der
eigentliche
Schwellenwert wird auf Null gesetzt (Abb. 13).
2.4.1. Anwendungsbeispiel Kantenerkennung Ein Anwendungsfeld des Perzeptrons ist die Mustererkennung. Dabei stellt ein gutes Beispiel die Kantenerkennung dar. Für diese Aufgabe werden lediglich lokale Informationen des Bildes benötigt. Dieses Verfahren ermöglicht auch eine hohe Parallelisierung. Dabei vergleicht ein Neuron ein Pixel mit seinen Nachbarpixeln (Abb. 14).
0 ,5
− 1 − 1 − 1 − 1 8 − 1 − 1 − 1 − 1 Abb. 14: Perzeptron als Kantenerkennungsoperator
10
Falls der Punkt dunkel und mindestens ein Nachbarpixel weiß ist, entspricht das Pixel einer Kante der Figur. Diese Information für das Pixel wird auf eine Projektionsfläche an der gleichen Koordinate aufgetragen. In der Matrix links in der Abbildung 14 sind die Gewichte eingetragen. Dabei steht die Acht für das zu untersuchende Pixel. Die anderen Werte stehen für die Nachbarpixel, mit denen das Neuron verbunden ist. Das Neuron selbst besitzt einen Schwellenwert von 0.5, den es zu erreichen gilt. Im Beispiel in der Abbildung 14 würde das Pixel zu einer Kante gehören, da 8 – (1+1) = 6 ergibt und dieser Wert ist größer als 0.5 ist. Weitere Beispiele dafür wären der Sobelfilter, Smoothed- und Isotropic-Operator . 2.4.2. Geometrische Interpretation Die Funktionsweise eines Perzeptrons kann man geometrisch interpretieren. Dabei teilt es den Eingaberaum in zwei Hälften ein. Die eine Hälfte enthält nur Punkte, bei denen das Neuron eine Eins feuert, die andere folglich nur welche, bei denen eine Null ausgesendet wird (Abb. 15). Alle Punkte, die gerade den Schwellenwert erreichen, liegen auf einer trennenden Geraden.
x1
xow−Θ > 0
x1 w1 x o w − Θ ≥ 0 ⇔ M M − Θ ≥ 0 x w n n
xow−Θ = 0
⇔ x1w1 + K + xn wn − Θ ≥ 0
xow−Θ < 0 0
x2 Abb. 15: geometrische Darstellung der zwei Entscheidungsräume
In Abbildung 16 sieht man einige Beispiele von zweidimensionalen logischen Funktionen. Dabei sieht man, daß die OR- und die AND-Funktion durch eine Gerade trennbar sind. Anders verhält es sich bei der XOR-Funktion, bei der keine Möglichkeit gibt der linearen Trennung vorhanden ist. Bei den zweidimensionelen logischen Funktionen gibt es zwei Funktionen, einschließlich der XOR-Funktion, die nicht linear trennbar sind. Diese Anzahl steigt aber bei höherdimensionalen Funktionen sehr schnell an, und der prozentuale Anteil der linear trennbaren Funktionen sinkt gegen 11
Null. Es ist also möglich, nicht alle Funktionen mit einem Neuron darzustellen. Wie aber in Kapitel 2.3.2. gezeigt wurden, ist es mit mehreren Neuronen in einem Netz möglich dieses Problem zu lösen. Allerdings bestand damals das Problem, daß noch kein solcher Lernalgorithmus für mehrschichtige Netze existierte, was die Popularität der neuronalen Netze wieder schmälerte OR
AND
1
XOR
1
0
1
0
1
1
0
1
Abb. 16: geometrische Interpretation logischer Funktionen
2.4.3. Lineares Verfahren als Lernalgorithmus Es existieren mehrere Verfahren, um die Gewichte eines Perzeptrons anzupassen. Eine Möglichkeit wäre die lineare Programmierung (Simplex-Verfahren). Hier soll nicht das Verfahren vorgestellt werden, sondern nur die Herleitung der notwendigen Nebenbedingungen am Beispiel der AND-Funktion. Dabei wurde dieses Verfahren entwickelt, um folgendes Problem zu lösen: Für eine vorgegebene Anzahl von n Variablen W1,W2,...,Wn soll die Zielfunktion X1W1+X2W2+...+XnWn minimiert (maximiert) werden. Dabei müssen die Variablen bestimmte Bedingungen erfüllen, die durch Ungleichungen (Abb. 17) festgelegt sind. Dabei werden zunächst die Eingabevektoren festgelegt, wobei immer der aktive Schwellenwert mitgeführt wird. Diese werden mit dem Gewichtsvektor w multipliziert und ergeben somit die Nebenbedingung für dieses Verfahren als vier Ungleichungen. Diese können auch in einer Matrix A dargestellt werden.
(0,0,1) → 0 (0,1,1) → 0 (1,0,1) → 0 (1,1,1) → 1
(0,0,1) ⋅ ( w1 , w2 , w3 ) < 0 (0,1,1) ⋅ ( w1 , w2 , w3 ) < 0 (1,0,1) ⋅ ( w1 , w2 , w3 ) < 0 (1,1,1) ⋅ ( w1 , w2 , w3 ) > 0
0 0 − 1 0 − 1 0 − 1 w1 0 w > 0 − 1 − 1 2 0 w3 1 1 1 0
Abb. 17: Herleitung der Nebenbedingungen für das lineare Programm anhand der AND-Funktion
12
2.4.4. Lernalgorithmus nach Minsky und Papert Ein etwas anderes iteratives Verfahren wurde von Minsky und Papert 1969 vorgestellt (Abb. 18). Dabei werden die Eingaben je nach gewünschter Ausgabe in eine positive Menge P und eine negative Menge N aufgeteilt. Zu Beginn werden alle Gewichtsvektoren w auf einen zufälligen Wert gesetzt. Danach wird ein Punkt, der in einer der beiden Mengen liegen kann zufällig herausgegriffen und mit den Gewichten multipliziert. Falls der Punkt zum Beispiel aus der Menge P kommt und das Ergebnis der Multiplikation kleiner oder gleich Null ist, so wurde dieser Punkt falsch zugewiesen und die Gewichte müssen korigiert werden, indem der Punkt auf den Gewichtsvektor addiert wird. Wäre das Ergebnis allerdings größer Null gewesen, so wäre keine Korrektur der Gewichte erforderlich gewesen. Start:
Der Gewichtsvektor w 0 wird zufällig generiert Setze t:=0
Testen:
Ein Punkt x in P ∪ N wird zufällig gewählt Falls x ∈ P und w t ⋅ x > 0 gehe zu Testen Falls x ∈ P und w t ⋅ x ≤ 0 gehe zu Addieren Falls x ∈ N und w t ⋅ x < 0 gehe zu Testen Falls x ∈ N und w t ⋅ x ≥ 0 gehe zu Subtrahieren
Addieren:
Setze w t +1 = w t + x Setze t := t + 1 Gehe zu Testen
Subtrahieren: Setze w t +1 = w t − x Setze t := t + 1 Gehe zu Testen Abb. 18: Lernalgorithmus von Minsky und Papert
2.4.5. Delta-Regel Der Lernalgorithmus ais Kapitel 2.4.4. konvergiert zwar, aber die Anzahl der Schritte kann sehr groß werden. Eine schnellere Methode zur Findung der idealen Gewichte ist die Delta-Regel. Dabei bildet man aus dem erwarteten Wert e und dem tatsächlich erhaltenen Wert t die Differenz, die auch als Fehler bezeichnet wird, und trägt ihn als Funktion der Gewichte auf. Man erhält dadurch eine sogenannte Fehlerfläche. Wird nun nach den idealen Gewichten gesucht, so muß ein globales Minimum dieser
13
Fläche gefunden werden (Abb. 19). Um dieses Minimum zu finden, benutzt man ein sogenanntes Gradientenabstiegsverfahren. Dieses berechnet an einer Stelle die jeweilige Steigung. An der Stelle der größten Steigung, wandert das Verfahren in das Minimum ab. Eine Voraussetzung dafür ist, daß die Schwellenwertfunktion differenzierbar ist, also an jeder Stelle der Gradient berechnet werden kann. Dies gilt nicht für das Perzeptron, da dessen Schwellenwertfunktion abschnittsweise definiert ist und aufgrund des Sprungs nicht überall differenzierbar ist. Deshalb hat man zum Beispiel beim Adeline eine lineare Schwellenwertfunktion, die von –1 bis +1 geht, eingeführt.
δ = e−t w t +1 = wt + ηδx
Abb. 19: Delta-Funktion und Fehlerfläche
2.5.
Mehrschichtige Netze
Wie in Kapitel 2.3.2. gezeigt wurde, kann man mit einem mehrschichtigen Netz alle Funktionen abbilden. Dabei existieren mehrere Varianten von neuronalen Netzen. Im folgenden werden nur mehrschichtige F e e d f o r w a r d - Netze betrachtet (Abb. 20). Dieser Typ von Netz ist in verschiedene Schichten eingeteilt, die aus Neuronen bestehen. Jede Schicht ist direkt mit der nächsten verbunden und es existieren keine Zyklen. Eingabeschicht
Verborgene Schicht
Ausgabeschicht
L L
M
M
M L
Abb. 20: Mehrschichtiges Netz
14
Die Eingabedaten gelangen zunächst an die Eingabeschicht. Von dort aus werden sie in die nächste Schicht gegeben, die den H i d d e n - L a y e r darstellt.Diese Schicht kann wiederrum aus mehreren Schichten bestehen, die nach außen nicht sichtbar sind. Die Ausgabe erfolgt schließlich über die Ausgabeschicht. Es ist möglich, alle 16 boolschen Funktionen mit zwei Variablen durch ein solches zweischichtiges neuronales Netz darzustellen. Eine Möglichkeit für die Lösung des XOR-Problems ist in Abbildung 21 dargestellt. Dabei teilen die Neuronen in der ersten Schicht den Eingaberaum in zwei Teilräume auf. Ist einer dieser Teilräume aktiv, so entscheidet auch die letzte Schicht, aktiv zu werden. Damit ist auch die XOR-Funktion entscheidbar geworden. Weiter kann man noch einschränken, daß alle diese Funktionen durch genau drei Neuronen mit 2 Schichten entscheidbar sind. 1, 0
0 ,5
x1
1, 0 − 1, 0 0 ,5
− 1, 0
1, 0 0 ,5
x2
1, 0 ( x 1 ∧ x 2 ) ∨ ( x1 ∧ x 2 )
Abb. 21: XOR-Funktion mit zwei Schichten und drei Neuronen
2.6.
Backpropagation-Algorithmus
Um nun die entsprechenden Gewichte eines mehrschichtigen F e e d f o r w a r d -Netzes zu finden, wurde der B a c k p r o p a g a t i o n -Algorithmus entwickelt. Dabei handelt es sich um eine Verallgemeinerung der Delta-Regel. Dieses Verfahren sucht folglich das Minimum der Fehlerfunktion eines bestimmten Lernproblems durch Abstieg in der Gradientenrichtung. Die Kombination derjenigen Gewichte eines Netzes, die den Berechnungsfehler minimiert, wird als Lösung des Lernproblems betrachtet. Der Gradient der Fehlerfunktion muß also für alle Punkte des Gewichtsraumes existieren, daß heißt, die partielle Ableitung der Fehlerfunktion nach den einzelnen Gewichten muß überall definiert sein. Deshalb findet man häufig die Sigmoid-Funktion (Abb. 22) als Schwellenwertfunktion in mehrschichtigen Netzen. a j = s ( x) =
ds ( x) e− x 1 = = a j (1 − a j ) ; 1 + e −cx dx (1 + e − x ) 2
Abb. 22: Sigmoidfunktion und ihre Ableitung 15
Die allgeime Formel für den B a c k p r o p a g a t i o n -Algorithmus findet man in Abbildung 23. Dabei steht die Abkürzung N e t für die Eingabe dieser Schicht, die aus den davor liegenden Schichten gebildet worden ist. Die Eingabe wird der abgeleiteten Schwellenwertfunktion übergeben. Der Index j steht für die jeweilige Schicht, für die der Fehler Delta berechnet werden soll. Dabei wird zwischen den versteckten Schichten und der Ausgabeschicht unterschieden. Der Index k steht für die Nachfolgerzellen des momentan betrachteten Neurons. a j (1 − a j )(e j − t j ) falls j Ausgabezelle ist δ j = a (1 − a ) δ w falls j verdeckte Zelle ist j ∑ k jk j k Abb. 23: Allgemeine Delta-Funktion
Das Verfahren geht nun so vor, daß zunächst alle Gewichte einen zufälligen Wert zugewiesen bekommen. Danach wird im F e e d f o r w a r d -Schritt für eine Eingabe die Ausgabe des Netzes berechnet. Unterscheidet sich das Ergebnis von der gewünschten Ausgabe, so tritt der B a c k p r o p a g a t i o n -Schritt in Aktion. In diesem Schritt wird zunächst das Delta für jedes Ausgabeneuron berechnet, das in Abbildung 23 der oberen Funktion entspricht. Für alle weiteren Schichten, wird die untere Funktion benutzt. Ist nun jedes Delta berechnet, so werden alle Gewichte mit der unteren Funktion aus Abbildung 19 aktualisiert. Dies wird solange mit verschiedenen Eingaben wiederholt, bis ein Minimum gefunden worden ist und die gewünschte Funktion korrekt berechnet wird. Ein Problem dieses Verfahrens besteht darin, daß es in einem lokalen Minumim stecken bleiben kann und es dadurch zu einem falschen Ergebnis kommt. Man kann also nicht mit Sicherheit davon ausgehen, daß immer ein globales Minimum gefunden wird. Um diesen Umstand etwas zu verbessern, existieren verscheidene Abwandlungen des B a c k p r o p a g a t i o n Algorithmus, wie B a c k p r o p a g a t i o n -Algorithmus mit Momentum und Quickprob.
2.7.
Weitere neuronale Netze
Die bisher vorgestellten Netzmodelle sind nicht die einzigen, die entwickelt worden sind. Es wurden aus sehr vielen Bereichen der Wissenschaft Modelle vorgeschlagen, welche in speziellen Gebieten eingesetzt worden sind.
16
LVQ
Learning-Vector-Quantisation:
Einschichtiges
neuronales
Netz ohne Rückkoppelung; Nächster Nachbar Klassifikator. SOM
Selforganizing-Feature-Map: Einschichtiges neuronales Netz ohne
Rückkoppelung;
Lernen
erfolgt
ohne
Lehrer;
Nächstliegende Neuronen werden verstärkt. Hopfield-Netz
Einschichtiges, indirekt rückgekoppeltes Netz, bei den ein Neuron mit den anderen in der gleichen Schicht verbunden ist, aber nicht mit sich selber.
Boltzmann-Maschine
Einschichtiges, indirekt rückgekoppeltes Netz, dem Hopfield Netz ähnlich; Lernalgorithmus entspricht dem Abkühlvorgang erhitzter Metalle.
BAM
Bidirektionaler
Assoziativspeicher:
Mehrschichtiges
neuronales Netz, bei dem die Ausgabeneuronen mit der Eingabeschicht
verbunden
sind.
Besitzt
die
Fähigkeit
unvollständige Eingaben zu vervollständigen RBF-Netze
Radial-Basis-Funktionen: neuronale Netze mit speziellen Übertragungsfunktionen, welche die Eigenschaft haben, Funktionen zu approximieren (zum Beispiel Gauß-Kernel).
ART
Assoziativ-Resonanz-Theorie:
Weiterentwicklung
der
Assoziativspeicher im Hinblick auf die Möglichkeit, neue Mengen bei schon bestehenden gelernten zu trainieren und dabei bereits Gelerntes nicht zu vergessen. Neocognitron
Komplexes Netz mit sehr vielen Schichten; angelehnt an biologische
visuelle
Mustererkennung;
besitzt
die
Eigenschaft, Muster drehungs- und sklarienungsunabhängig zu klassifizieren.
3. Zellularautomaten 3.1.
Grundlage
Ulam und von Neumann entwickelten 1940 ein formales Sytem zur Untersuchung komplexer Systeme. Zullulare Automaten (kurz ZA) sind dynamische Systeme, in denen der Raum und die Zeit in diskrete Abschnitte eingeteilt sind. Dabei ist der n17
dimensionale Raum in gleiche Zellen aufgeteilt. Dabei besitzt jede Zelle L Nachbarn. Weiterhin kann eine Zelle einen bestimmten Zustand q einnehmen. Die Bestimmung des nächsten Zustandes wird über Regeln definiert und hängt von den Nachbarzuständen und dem Zustand der Zelle ab. Die Regeln können als Transitionen eines endlichen Automaten aufgefaßt werden. Die Zeit ist in diskrete Einheiten eingeteilt. Dies bedeutet, daß alle Zellen zum Zeitpunkt t ihren neuen Zustand erst zum Zeitpunkt t+1 einnehmen. Allgemein kann ein zellularer Automat auch als ein Spezialfall eines einschichtigen neuronalen Netzes aufgefaßt werden. Auch hier ist die Zelle wieder das berechnende Element, das als einfacher Prozessor aufgefaßt werden kann. Auch dieses Automatenmodell gehört zu den massiv parallelen Modellen, da Algorithmen nur durch das gleichzeitige Zusammenspiel mehrerer Zellen erfolgt. Besondere Anwendungen findet man in der Chemie, Biologie, Physik, Verkehrsplanung und im künstlichen Leben (Robotik).
3.2.
Eindimensionaler ZA
Im eindimensionalen Fall besitzt jede Zelle einen direkten Nachbarn. Den ganzen eindimensionalen Raum kann man sich als ein unendlich langes Band vorstellen, wobei das Band in diskrete Zellen eingeteilt ist. Dabei besitzt eine Zelle zu einer Seite r Nachbarn. Zur Bestimmung der Zustände werden also 2r+1 Zellen herangezogen, wobei die eigene Zelle mit dazugerechnet wird (Abb. 24).
L
L r=3
r=3
Abb. 24: Eindimensionaler ZA mit sechs Nachbarn
In Abbildung 25a wird an einem Beispiel gezeigt, wie ein solcher Automat arbeitet. Dieser besitzt r=1 Nachbarn und q=2 Zustände die, mit Null und Eins gekennzeichnet oder hell und dunkel markiert sind. Die Transitionstabelle entspricht der daneben stehenden Modularfunktion. Das unterstrichene Symbol stellt die Zelle dar, deren Zustand bestimmt werden soll. Bevor der Automat starten kann, muß man noch das Zellenband initialisieren, das heißt eine Startinitialisierung (S e e d ) setzen.
18
000 → 0;001 → 1;
an ,t +1 = (an −1,t + an +1,t ) mod 2
010 → 0;011 → 1; 100 → 1;101 → 0; 110 → 1;111 → 0;
a entspricht dem Zustand der Zelle n zum Zeitpunkt t Abb. 25a: Beispielautomat
Am Einfachsten ist es, nur ein Feld zu belegen und den Rest auf Null zu setzen oder leer zu lassen. Nun läßt man den Automaten einige Generationen iterieren . Wie man in Abbildung 25b rechts erkennen kann, entsteht nach einigen hundert bis tausend Generationen ein komplexes Gebilde, das auch unter dem Namen Sierpinski-Dreieck bekannt geworden ist.
t=0
L
0
0
0
0
1
0
0
0
0
0
L
t=1
L L L
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
L L L
t=2 t=3
M Abb. 25b: Von einer einfachen Formel zum Sierpinski-Dreieck
Dieses Dreieck wird auch in der Chaosforschung untersucht, weshalb dort auch zellulare Automaten Einzug gehalten haben, da man mit einfachen Regeln chaotischen Formen produzieren kann, also Regeln existieren, welche selbstähnliche Gebilde erzeugen. 3.3.
Zweidimensionaler ZA
Zweidimensionale zellulare Automaten bestehen aus einem zweidimensionalen Feld, das in Zellen eingeteilt ist. Dabei hängt die Anzahl der Nachbarn von der Aufteilung und Geometrie der Zellen ab (Abb. 26). Sind die Zellen zum Beispiel hexagonal abgeordnet, so besitzt eine Zelle sechs direkte Nachbarn. Sind die Zellen quadratisch, so erhält man vier direkte Nachbarn (von Neumann Nachbarschaft) und wenn man die diagonalen Felder noch dazu nimmt, erhält man acht Nachbarn. Die hexagonale Anordnung wird hauptsächlich für biologische Simulationen verwendet. John von Neumann hat die quadratischen Felder mit vier Nachbarschaften 19
verwendet. Am besten hat sich aber das quadratische Feld mit acht Nachbarn durchgesetzt, das auch durch C o n w a y ’ s G a m e o f l i f e populär geworden ist.
Abb. 26: ZA mit sechs, vier und acht Nachbarn
3.3.1. Conway’s Game of life Conway hatte 1970 einen Artikel über ein Regelsystem für einen zellularen Automaten veröffentlicht, dessen Zellen quadratisch sind und nur zwei Zustände speichern können, die auch als tot und lebendig bezeichnet werden, weshalb das System auch Spiel des Lebens genannt wird. t
Zelle bleibt lebendig, da sie 2 bzw. 3 Nachbarn hat
Eine tote Zelle wird neu geboren, da sie 3 Nachbarn hat
Zelle stirbt, da sie nur einen Nachbarn hat, dies gilt auch für alle übrigen Fälle Abb. 27: Conway’s game of life Regeln
20
Weiterhin werden für den Zustand einer Zelle ihre acht direkte Nachbarn und die Zelle selbst für den Zustandsübergang herangezogen. Conway’s Regel lautete nun wie folgt: Hat eine tote oder lebendige Zelle zwei oder drei lebendige Nachbarn, so bleibt sie in diesem Zustand. Ist eine tote Zelle von drei lebendige Nachbarn umgeben, so wird auch sie lebendig. In allen anderen Fällen stirbt eine Zelle. Diese Regel wird auch als S23B3-Regel bezeichnet, wobei S für s u r v i v e
steht und die
Zahlen danach für die Anzahl der lebendigen Nachbarn steht, bei der eine Zelle sozusagen überlebt (Zustand bleibt gleich). Das B steht für b i r t h
und die Zahlen
danach stehen wieder für die lebendigen Nachbarn, wobei eine tote Zelle in eine lebendige verwandelt wird (Abb. 27). 3.3.1.1
Besondere Formen
In Abbildung 28a bis 18d sind einige Beispiele von speziellen Objekten aus der Welt von S23B3 abgebildet, die sehr interessant sind und auch im Laufe der Zeit von einigen Wissenschaftlern erforscht wurden. Sie sind deshalb interessant, weil sie sogenannte Grundbausteine von Algorithmen darstellen, aus denen sie konstruiert werden können. Abbildung 28a zeigt einen sogenannten Gleiter. Diese Form hat die Eigenschaft
nach
ein
paar
Generationen
wieder
in
die
Ausgangsform
zurückzukehren und zusätzlich ein Feld nach unten und rechts zu wandern. t
Abb. 28a: Gleiter
Eine weitere interessante Gestalt stellen oszillierende Formen dar, die auch nach einer bestimmten Zeit wieder ihre Ausgangsform annehmen, aber zusätzlich an ihrem Platz bleiben (Abb. 28b).
Abb. 28b: Oszillator
Stabile Elemente sind Formen, die in jeder Generation die gleiche Gestalt und Position behalten. Eine Möglichkeit hierfür ist in Abbildung 28c dargestellt. 21
Abb. 28c: Stabile Form
Eine besondere Form stellen sogenannte Kanonen dar. Sie sind Gebilde, die wie Oszillatoren nach einer gewissen Zeit auch wieder in ihre Ausgangslage und Form zurückkehren aber dabei zusätzlichen Eigenschaft einen Gleiter produzieren. In Abbildung 28d sieht man eine solche Form. Sie produziert nach einigen Generationen einen Gleiter, wie er in Abbildung 28a dargestellt ist. Da aber sehr viele Generationen zur Produktion nötig sind die Zwischenschritte nicht abgebildet.
M
Abb. 28d: Kanone
3.3.1.2.
Universaler ZA
Man mag es ja vielleicht kaum glauben, aber diese simplen Regeln von Conway erlauben es alle existierenden Funktionen zu berechnen, die berechenbar sind. In Abbildung 29 ist ein zellularer S23B3-Automat dargestellt, der einen zellularen Automaten mit der S23B3-Regel simuliert. Wie aus Kapitel 1 zu entnehmen ist, gehören solche Automaten zu den universalen Maschinen. Genauso gut könnte ein zellularer Automat mit dieser Regel eine Turing-Maschine oder einen Digitalcomputer nachahmen.
22
Abb. 29: Universaler zellularer Automat
3.3.2. Weitere Regeln Natürlich ist die S23B3-Regel nicht die einzige, die für zweidimensionale zellulare Automaten existiert. Mit der Zeit wurden verschiedene Regeln aufgestellt und untersucht. Im folgenden sind die wichtigsten aufgeführt und ihre Eigenschaften kurz erläutert. S23B3
Conway’s game of life: Chaotisches System
S23B36
High Life: (chaotisch) Ähnlich der S23B3-Regel, besitzt besondere Replikatoren
S34B34
34Life: (explodierend) Kleine Oszilatoren
S34678B3678
Day&Night: (stabil) Lebendige Zellen verhalten sich wie tote Zellen
S5B345
Long Life: (stabil) Hohe periodische Muster
S5678B35678
Diamoeba: (chaotisch) Schwer vorhersagbare „amöbische“ Formen
S1234B3
(explodierend) Irrgartenähnliche Muster
23
4. Literatur Theorie der neuronalen Netze; Rojas; Springer 1993 Simulation neuronaler Netze; A. Zell; Oldenburg 1994 The Nature of Statistical Learning Theory; Vladimir Vapnik; Springer 1995 http://www.ics.uci.edu/~eppstein/ca/ http://life.csu.edu.au/cl_complex/0CellularAutomata.html http://www.mindspring.com/~alanh/life/index.html
24