Neuronale Netze und Zellularautomaten

Exotische Modelle der Parallelverarbeitung: Neuronale Netze und Zellularautomaten André Betz Inhaltsverzeichnis 1. Berechenbarkeit ..................
Author: Hansi Schräder
0 downloads 0 Views 301KB Size
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