Lernende Systeme II
KONNEKTIONISMUS M.M.Richter Universität Kaiserslautern
2 § 0 Vorwort 3 § 1 Einleitung 3 § 2 Histo...
39 downloads
915 Views
418KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Lernende Systeme II
KONNEKTIONISMUS M.M.Richter Universität Kaiserslautern
2 § 0 Vorwort 3 § 1 Einleitung 3 § 2 Historische Entwicklung...................................................................... 5 § 3 Was man aus der Neurophysiologie wissen sollte ........................................ 8 § 4 Das einfachste Neuronenmodell ...........................................................17 4.1 Grundlegende Begriffe......................................................................17 4.2 Erste Bemerkungen über vorgenommene Vereinfachungen und Idealisierungen. ..........................................................24 4.3 Die Hyperebeneninterpretation..............................................................26 4.4 Matrixdarstellungen 4.5 Automatentheoretische Vorstellungsweise.................................................31 4.6 Graphendarstellungen und erste dynamische Aspekte ...................................32 4.7 Ein erstes Anwendungsbeispiel.............................................................34 § 5 Neuronale Dynamik und das allgemeine PDP- Modell...................................36 5.1 Neuronen als Prozeßeinheiten..............................................................37 5.2 Der Aktivierungszustand an(t) ..............................................................37 5.3 Verknüpfungszustand cn,n'( t )............................................................38 5.4 Output - Signale 39 5.5 Input - Signale 40 5.6 Die Aktivierungsregel .......................................................................40 5.7 Dynamische Regeln für c(t).................................................................42 5.8 Der stochastische Fall .......................................................................43 5.9 Konvergenzbetrachtungen ..................................................................44 §6 Lernmodelle 44 6.1 Einige grundlegende Lernregeln ............................................................45 6.2 Das Perceptron und sein Konvergenztheorem ............................................50 6.3 Backpropagation .............................................................................53 6.4 Wettbewerbslernen ...........................................................................59 6.5 Kohonen's selbstorganisierende Abbildungen............................................66 6.6 Lernen durch Belohnung (Reinforcement Learning) .....................................68 6.7 Zusammenfassende Bemerkungen .........................................................71 §7 Stabilitätsbetrachtungen.......................................................................72 §8 Hopfield-Netz und Boltzmann-Maschine. .................................................76 8.1 Lernen von Aktivitätszuständen im Hopfield- Netz. .....................................77 8.2 Die Boltzmann - Maschine...................................................................78 8.2.1 Allgemeines 78 8.2.2 Lernen und Boltzmann -Maschine.......................................................82 § 9 Mustererkennung .............................................................................83 9.1 Allgemeines 83 9.2 Mustererkennung mit dem Hopfieldnetz...................................................86 9.3 Mustererkennung mit dem Hammingnetz..................................................90 § 10 Kombinatorische Optimierungsprobleme.................................................93 §11 Interpolation und Extrapolation.............................................................98 §12 Hard- und Softwarerealisierungen ....................................................... 102 12.1 Eine Hardware-Realisierung Die Connection - Maschine ................................................................. 102 12.2 Eine Softwaresimulation Neuraltalk 107 12.3 Wissensrepräsentation und Programmiersprachen.................................... 117 12.3.1 Neuronen und Regeln.................................................................. 117 12.3.2 Darstellung komplexerer Zusammenhänge .......................................... 120 12.4 Übersicht über weitere Realisierungen ................................................. 121 12.4.1 Familien von Parallelarchitekturen.................................................... 121 12.4.2 Sprachen für Netzwerke ............................................................... 121 12.4.3 Beispiele für existierende Hard- und Software...................................... 122 12.4.4 Anwendungsfelder ..................................................................... 124 § 13 Literatur 124
2
3
§ 0 Vorwort Dies ist der zweite Teil einer Vorlesung über lernende Systeme an der Universität Kaiserslautern. Teil I dieser Vorlesung beschäftigt sich mit den symbolischen Verfahren; hier werden die subsymbolischen oder konnektionistischen Verfahren dargestellt. Ein zentraler Gesichtspunkt war, das Thema zwar kurz aber doch in seiner Allgemeinheit darzustellen. Dazu ist die Erkenntnis wichtig, daß das Thema zwar aktuell, aber keineswegs neu und in verschiedenen Wissenschaftszweigen zuvor behandelt worden ist. Daraus resultiert das Bestreben, Querverbindungen zwischen den Disziplinen herzustellen. Oft stellt sich heraus, daß die Gebiete, die von verschiedenen Begriffen tangiert werden, recht heterogen sind; wir haben etwa, ausgehend von der Informatik, die Mathematik, das Operations Research, die Biologie und die Medizin sowie die Kognitionswissenschaften. Als wesentliches Ziel dieser Ausarbeitung wollen wir die Einführung in die elementaren Sachverhalte und Einsichten dieses Gebietes festhalten, ohne die ein weiteres Vordringen kaum möglich wäre. Die Ausarbeitung enthält keine wesentlich neuen Erkenntnisse. Die zugrunde liegende Literatur ist im Literraturverzeichnis angegeben aber meist nicht direkt im Text zitiert. §3 geht auf Dr.Uwe Koch zurück. Eine ganze Reihe der Bilder fertigte dankenswerter Weise Bettina Anslinger an.
§ 1 Einleitung Konnektionismus ist derzeit ein aktuelles Schlagwort, hinter dem sich eine Reihe verschiedenartiger Begriffsbildungen und methodischer Ansätze verbergen. Die Aktualität darf nicht darüber hinwegtäuschen, daß die behandelten Problematiken keineswegs neu sind. Sie haben vielmehr eine teilweise längere Tradition in ganz verschiedenartigen Bereichen wie Kybernetik, Biologie, Mathematik und Physik. Es sind in letzter Zeit jedoch eine ganze Reihe von Fortschritten gemacht worden, die einmal für sich Aufmerksamkeit erregt haben und zum anderen durch Querverbindungen zum Teil weit auseinanderliegende Gebiete in Beziehung zueinander gesetzt haben. Erst dadurch ist es sinnvoll geworden, vom Konnektionismus als einem Gebiet überhaupt zu sprechen. Dabei ist es häufig so, daß sich die Phänomene jeweils aus der Sicht verschiedener Disziplinen auf verschiedene Weisen deuten und erklären lassen. Diese Sichten sind aber meist nur partiell befriedigend und erst ihre Kombination bringt die wirkliche Erkenntnis. Je nach spezieller Interessenlage und wissenschaftlicher Herkunft wird man aber u.U. die Phänomene unter das Gebiet XY einordnen und (mit partiellem Recht) sagen, "Konnektionismus ist nichts anderes als XY". Es ist zweifelsohne richtig, daß im Konnektionismus vieles wiedererfunden wurde; die Lehre hieraus ist, daß man sich zweckmäßigerweise mit solchen Gebieten wie XY beschäftigt. Wir zählen zunächst lose die Hauptstichworte auf, die im Konnektionismus eine Rolle spielen und erwähnen damit zugleich verwandte Gebiete und Vorläufer: 1 . Verständnis der grundlegenden Prozesse im Gehirn höherer Tiere und des Menschen; 2 . Entwicklung von Modellen, nach denen das Gehirn arbeiten könnte; 3 . Computersimulation solcher Modelle; 4 . Neuronale Netze als Berechnungsmodelle; 5 . Automatentheorie;
3
4 6. 7. 8. 9. 10. 11. 12.
Deutung von Berechnungen als Lernverfahren; Lernverfahren und Optimierung; Pseudoboole'sche Funktionen; Gleichgewichtszustände, statistische und thermodynamische Modellvorstellungen; Verständnis fehlertoleranter Systeme; Anwendungsmöglichkeiten wie Mustererkennung u.ä.; Konstruktion von neuartigen, hochgradig parallelen Rechnern; Allgemeines Verständnis von Parallelität;
Das Gemeinsame aller dieser Schlagworte steckt schon rein sprachlich im BegriffKonnektionismus: Es ist die Rede von Verbindungen. Verbunden werden viele kleine Einheiten, die je nach Modellvorstellung Neuronen, Prozessoren oder Recheneinheiten sind. Die Vorstellung ist dabei, daß diese Einheiten zahlreich, aber individuell von relativ einfacher Natur sind. Sie erhalten entlang der Verbindungen Impulse, die sie dann je nach Zustand selbst wieder zu Impulsen an andere Einheiten ausgeben. Koordiniert wird dies alles nur lokal und die Prozesse laufen nebenläufig oder parallel ab. Durch einen hohen Vernetzungsgrad kann man dann auf diese Weise auch bei einfachen Grundeinheiten zu großer Wirksamkeit gelangen. Man kann (noch) nicht sagen, daß durch die konnektionistische Betrachtungsweise grundsätzlich neue Lösungsmöglichkeiten aufgezeigt wurden. Wohl aber kann durch die etwas globalere Betrachtungsweise die Tür zu bisher nicht beachteten Möglichkeiten aufgestoßen werden. Grundsätzlich verabschiedet man sich hier sowohl von der Vorstellung einer nach klassischen Prinzipien gesteuerten, deterministischen und algorithmischen Architektur wie auch vom Paradigma der von logischen Regeln gesteuerten Symbolmanipulation. Man orientiert sich eher an statistischen Vorstellungen, z.B. an der evolutionären Entwicklung. Die große Zahl der beteiligten Einheiten legt häufig einen Verzicht auf die genaue Beschreibung des Endresultates eines solchen Prozesses oder auch des Prozesses selbst nahe, man gibt sich mit Gleichgewichtszuständen oder anderen statistischen Merkmalen zufrieden. Dies bedeutet nicht, daß ein wirklicher Zufallsprozeß vorliegen muß, es ist nur praktisch, ihn als Vorstellung zu haben, vergleichbar einem System kommunizierender Röhren, in das man Wasser gießt: Die einzelnen Moleküle (als Prozessoren gedacht) reagieren nach sehr einfachen Prinzipien (den Stoßgesetzen der Mechanik) in hochgradig paralleler Weise miteinander; diese Prozesse lassen sich exakt nicht mehr ausrechnen, aber ein einfacher Gleichgewichtszustand stellt sich nach kurzer Zeit ein. Diese global-statistische Betrachtungsweise beinhaltet wesentliche Elemente der Fehlertoleranz. Es kommt eben nicht mehr, wie in der algorithmischen Denkweise, "auf jedes einzelne Bit an", sondern mehr auf ein mehrheitliches Verhalten. Fehler werden unter Umständen toleriert und eventuell durch ein flexibles und lernendes Verhalten kompensiert. Hier ist jedoch Vorsicht geboten. Manchmal kommt es doch auf jedes Bit an und die kleinste Abweichung kann (auch bei biologischen Systemen) zum tödlichen Kollaps führen. Beispiele hierfür werden in der Katastrophentheorie abgehandelt, Phänomene wie beim Herzinfarkt kommen hier vor. Wichtig zu wissen ist, auf welche Details es nicht ankommt. Liegt etwa ein Abstimmungsverhaltern von "Wählern" vor, dann kommt es normalerweise auf eine Stimme nicht an; wird aber das Resultat dieser Abstimmung in einem Register gespeichert, dann steht und fällt die Richtigkeit der gesamten Information mit der Korrektheit dieses einen Registers. Die gesamte Vorstellungswelt läuft auch unter dem Schlagwort "subsymbolisches Paradigma". Die Unterscheidung zwischen symbolisch und subsymbolisch ist aber nicht formal streng sondern deutet mehr Richtungen und Tendenzen an. Wir werden sehen, wie man digitale Schaltungen mit neuronalen Netzen simulieren kann. In diesem Fall ist das Netz von völlig "symbolischen" Charakter, man hat nur eine etwas andere Beschreibungsweise als bisher. Wird das Netz jedoch zur Erkennung eines gesprochenen Satzes im (bayrischen, schwäbischen, rheinischen) Dialekt benutzt, dann überwiegt der subsymbolische Charakter. 4
5
Genaue Zahlenvergleiche zwischen der Leistungsfähigkeit von Gehirn und Computer sind anzweifelbar und es gibt auch durchaus unterschiedliche Zahlenangaben. Die nachfolgende Tabelle soll deshalb nicht allzu wörtlich genommen werden.
Computer Schaltgeschwindigkeit
Gehirn ms
ns 3
Anzahl
10
Schaltzeit pro Sekunde
10 9
Schaltvorgänge total / sec
10
11 Trans
10
18
Neuronen 1000 10 13
Wichtiger als diese Zahlen ist noch der Vernetzungsgrad. Im Gehirn existieren pro Neuron ca. 1000 - 10000 Verbindungen zu anderen Neuronen. Unser Interesse an diesem Gebiet fassen wir hier kurz so zusammen: - Verständnis vorkommender Phänomene - Verständnis paralleler Algorithmen - Anwendungsmöglichkeiten neuronaler Netze und paralleler Algorithmen - Beziehungen zu alternativen Ansätzen und Begriffsbildungen.
§ 2 Historische Entwicklung Ende des 19. Jahrhunderts entwickelte sich ein erstes Verständnis vom Gehirn als paralleles (neuronales) Netzwerk mit sehr vielen, aber kleinen und einfachen Grundeinheiten (Nervenzellen). Diese Grundeinheiten, die einzeln nicht besonders leistungsfähig sind, werden dann besonders leistungsstark, wenn sie durch Leitungen miteinander verbunden sind. Dies war ein rein anatomisches Verständnis; dabei wurden Teileinheiten lokalisiert (sehen, hören...). Die Form der Neuronenverknüpfung wurde bereits in Grundzügen verstanden. Dabei sind die Vorstellungen der Neurologen Jackson und Luria als Vorläufer des "PDP"Modelles ( "Parallel Distributed Processing") anzusehen. Eine erste Implementierung eines neuronalen Netzwerkes mit hydraulischen Mitteln wurde 1913 von Russel berichtet. Nach 1930 fanden in großem Maße Abstraktionsvorgänge statt. Man entwickelte abstrakte Modelle : A) zum Studium des realen Gehirns ( bei Vögeln und anderen Tieren) und B) zum Erstellen eines künstlichen Gehirns. A) war durch Experimente zu verifizieren; B) war durch Anwendung zu erproben. Betrieben wurde dies damals in der mathematisch-biologischen Physik, später in der oft totgesagten Kybernetik und neuerdings im Konnektionismus (gekennzeichnet durch verteilte parallele Prozesse).
5
6 1943 war ein wichtiges Jahr in der Entwicklung dieses Forschungszweiges, in dem drei grundlegende Arbeiten erschienen -
Craik: The nature of explanation; (Das Nervensystem als eine Rechenmaschine, welche externe Einflüsse modellieren und parallelisieren kann).
-
Rosenbleuth, Wiener, Bigelow: Behaviour, purpose and teleology; (Rückkopplung als grundlegende Kontrollstruktur des Gehirns).
McCulloch, Pitts: A logical calculus of ideas immanent in nervous activity; Ein erstes, grundlegendes mathematisches Modell eines Neurons als einer Einheit für eine Schwellwertlogik. Das war ein Anlaß für J.v.Neumann, über Erweiterungen von Turingmaschinen als "universelle Konstruktionsmaschinen" nachzudenken; das führte dann anschließend zu Automaten, die sich selbst reproduzieren können. In dem Modell der McCulloch-Pitts-Neuronen waren aber noch keine Lernkonzepte vorhanden. Dann kamen neue Ideen auf, die den Sitz des Gedächtnisses und die Lernvorgänge betrafen (Verbindungen -"Konnektionen"- als der eigentliche Sitz von Gedächtnis und als Grundlage von Lernprozessen). Gleichzeitig wurden selbstregelnde Prozesse in diesem Zusammenhang studiert, was zu einer Zusammenführung der Regelungs- und Nachrichtentechnik unter dem Namen Kybernetik führte. Dieser Name wurde von der Gruppe um Norbert Wiener 1947 eingeführt; er bedeutet soviel wie Steuermannskunst und wurde in Erinnerung an die erste bedeutende Arbeit über Rückkopplungen von Maxwell 1868 über den Fliehkraftregler (von Maxwell "Governor" genannt) gewählt. Um 1949 entwickelte D. Hebb in seinem Buch "The organization of behavior" formale Modelle für Lernvorgänge. Die Hebb'sche Lernregel besagt, daß sich eine Verbindung zwischen zwei Neuronen proportional zum Produkt der Aktivitäten der einzelnen Neuronen verstärkt. Neu war vor allem, daß dies überhaupt als ein Lernvorgang aufgefaßt wurde. Der Typ dieser Lernregel erwies sich als grundlegend für viele weitere Vorstellungen. Zu Beginn des Jahres 1950 begann das eigentliche Studium von Verstand, Gehirn und Maschine aus einheitlicher Sicht im Rahmen der Kybernetik. Minsky und Edmonds konzipierten 1951 ein mechanisches Modell eines neuronalen Netzes mit 40 Neuronen. Weitere Ideen entwickelte Minsky 1954 in seiner Dissertation. A. Uttley definierte 1956 eine theoretische Maschine aus Prozessorelementen, die er informons nannte. Der Ausdruck "Artificial Intelligence" kam erst um 1956 auf. Etwa in dieser Zeit zerfielen die einheitlichen Studien in verschiedene Forschungszweige : 1. 2. 3.
Biologische Kontrolltheorie (Rückkopplungen, Regelungen etc.); Neuronale Modelle (Modelle einzelner Neuronen und ihrer Vernetzung); KI (Forschungsgebiet mit Schwerpunkt auf der sequentiellen Verarbeitung).
Obwohl der Schwerpunkt der KI auf sequentieller Verarbeitung lag, wurden daneben noch neuronen-ähnliche Netze studiert, dies insbesondere in der Erkenntnis, daß viele Probleme ihrer Natur nach nicht sequentiell sind. Steinbuch studierte als einer der ersten um 1961 lernende Systeme zur Mustererkennung (von handschriftlichen Zeichen); er führte dabei die sog. Lernmatrizen ein. Der Höhepunkt der sequentiellen Ära fällt in die erste Hälfte der 70er Jahre. Man gab es im wesentlichen auf, den Menschen im Ganzen zu simulieren, sondern beschränkte dies auf sein Input-Output-Verhalten. Die Betonung lag auf der Performance im Sinne von "Benchmarks" und nicht im Sinne eines "strukturellen Verhaltens". Feigenbaum und Feldman (Computers and Thoughts, 1963) schlossen dabei neuronale Netzwerke definitiv aus.
6
7 1969 übten Minsky und Papert (Perceptrons: An essay in computational geometry) einen entscheidenden Einfluß zugunsten der sequentiellen Sichtweise aus. Das Modell des Perceptrons war dabei bereits von Rosenblatt 1957 vogestellt worden; es erweiterte die Vorstellungen von McCulloch und Pitts um Lernvorgänge. Minsky und Papert zeigten, daß einfache Perceptronmodelle (solche, die in nur zwei Ebenen Neuronen haben) auch nur sehr einfache Funktionen realisieren und lernen können. Als Folge dieser Ergebnisse erlosch das (öffentliche) Interesse an neuronalen Netzen für eine Weile weitgehend. Von den Überlegungen, die weitergehende Möglichkeiten von neuronalen Netzen aufzeigten aber weitgehend unbekannt und somit ohne Einfluß blieben, verdienen vor allem die von S. Amari genannt zu werden. Die späteren Entwicklungen gingen dann teilweise wieder in frühere Richtungen zurück. Schlagwortartig stellen sie sich etwa so dar: (a) Ende der 70er Jahre entstand die Cognitive Science aus 1. 2. 3.
Kognitiver Psychologie KI Linguistik.
(hier war Parallelität stets im Spiel)
(b) Der technische Fortschritt, vor allem auf dem Gebiet der VLSI, trieb die Parallelität voran. (c) In speziellen KI-Gebieten wie "Computer-Sehen" ist Parallelität ganz natürlich: - low level: pixel - elementare Bildverarbeitungsprozesse - high level: "verstehen": Einfluß der Cognitive Science. (d) Für die sequentielle Verarbeitung ergaben sich praktische Grenzen bei großen Datenmengen; aus diesem Grunde gab es nur geringe Erfolge auf Gebieten wie "Sehen", "Sprachverstehen" und "Lernen". (e) Das Expertensystem "Hearsay" (1980) hatte dabei einen kooperativen Ansatz zum Sprachverstehen. Es wurde sequentiell implementiert, aber eine Neuro-NetzBeschreibung wurde gegeben. Das System war begrifflich anspruchsvoll, litt aber unter nicht ausreichender Hardware. (f) Dann kamen die semantischen Netze und ihre Programmierung auf. (g) Es gab Einflüsse aus dem Gebiet der dynamischen Systeme. Die Vorstellung besagte u.a.: Es gibt keine determinierte Abfolge von Befehlen, sondern ein durch Gleichungen gesteuertes System, welches einen Gleichgewichtszustand erreicht (Theorie der Attraktoren, Morphogenese etc.). (h) Anknüpfend an die Lernmatrizen von Steinbuch entwickelte sich das Studium der Korrelationsmatrizen, auch Assoziativspeicher genannt und wurde auf Fragen wie die Mustererkennung angewandt.
7
8
§ 3 Was man aus der Neurophysiologie wissen sollte Die Überschrift dieses Abschnittes ist diskutabel. Zum technischen Verständnis der restlichen Paragraphen wird er nicht benötigt. Er ist aber zum einen in sich interessant kann zum anderen Motivationen für alternative Vorgehensweisen bieten und beschäftigt sich schließlich mit Fragen, ohne die es dies Gebiet heute vermutlich gar nicht gäbe. Die heute bekannten biologischen Tatsachen sind wesentlich komplizierter, als die Abstraktionen, die in Ansätzen des Konnektionismus auftreten. Es gibt eine große Vielfalt von real auftretenden Neuronen. Ihr Zusammenwirken in neuronalen Netzen wird durch elektro-chemische Reaktionen verwirklicht. Bei einigen einfachen Tieren (z.B. Nematoden oder Heuschrecken) sind gewisse Tatsachen bekannt. Wir erläutern hier die wichtigsten auftretenden Begriffe. Neuronen: oder Nervenzellen sind Zellen, die elektrische Impulse aussenden und empfangen können. Die Bestandteile einer solchen Zelle sind: Der Zellkörper oder die Soma (Durchmesser 5 - 100 µm), enthält den Zellkern; Aufbauzentrum des Neurons. Das Axon: Langer (bis 1 m), dünner Zylinder, der Impulse vom Soma zu anderen Zellen überträgt; spaltet sich auf (Divergenzprinzip neuronaler Verschaltung). -
Ein oder mehrereDendriten: Kleine, dünne Eingangsleitungen zu den Neuronen.
Die eigentliche Informationsverarbeitung erfolgt in den Dendriten und im Soma. Synapse: Kopplungsstelle zwischen zwei Neuronen. Elektrische Signale, die die Synapse erreichen, haben Signale in den Dendriten zur Folge. Man unterscheidet chemische und elektrische Synapsen Am häufigsten findet man Synapsen zwischen Axonen (Sender) und Dendriten (Empfänger). Andere Kopplungsmöglichkeiten (z.B. axo - axonische, axo - somatisch sollen hier vernachlässigt werden, ebenso wie: -
Gliazellen: Diese versorgen die Neuronen mit Nahrung; Äußere Einflüsse wie z.B. Hormone oder Temperatur.
8
9
Synapse DENDRIT Soma III AXON
Synapse
SOMA (ZELLKÖRPER)
S
Soma II
In der jetzt folgenden Funktionsbeschreibung eines Neurons sollen "biologische Bilder" durch zugehörige elektrische Ersatzschaltbilder ergänzt und erläutert werden. Diese Ersatzschaltbilder abstrahieren einerseits von der biologischen Wirklichkeit, sollen aber andererseits die wesentlichen Aspekte der Informationsübermittlung, die hier stattfindet, möglichst getreu widerspiegeln. Diese Schaltbilder (bzw. ihre Vernetzung) realisieren mathematische Strukturen, "Biologische Neuronle Netze" (BNN) genannt werden. Auch diese sind teilweise softwaremäßig repräsentiert, vgl. [Be 90]. Die sehr viel weitergehenden mathematischen Abstraktionen, die man gewöhnlich im Konnektionismus behandelt, werden meist "Artifizielle Neuronale Netze" (ANN) genannt. Man kann sich später ein Bild darüber machen, wie genau sie wenigstens die Realität der BNN reflektieren (neuere Ergebnisse zeigen, daß schon bezüglich der Lernregeln ein großer Unterschied besteht). Die Zusammengehörigkeit der folgenden Abbildungen wird jeweils duch die Zusätze (a) und (b) in der Numerierung deutlich gemacht. Das Neuron im "Ruhezustand": Die Nervenzelle ist von einer Membran begrenzt, die verschiedene Elektrolyte voneinander trennt (Abb.1a). Die Membran ist für verschiedene Ionen unterschiedlich durchlässig. Die Durchlässigkeit ist für Eiweißionen sehr schlecht, für Natriumionen ein wenig besser, für Kaliumionen sehr deutlich besser und für Chlorionen nochetwas besser. Im Inneren der Zelle ist daher die Konzentration der Eiweißionen konstant. Im
9
Axon
10 Ruhezustand findet man im Inneren einen Überschuß von Kaliumionen, während außerhalb der Zelle ein Natriumionenüberschuß zu verzeichnen ist. Die trennende Membran besitzt, in elektrotechnischer Betrachtungsweise, die Eigenschaft eines Kondensators, der in Abbildung1b als CM bezeichnet wird. Weiterhin können in der Membran Moleküle existieren, die jeweils nur für eine dieser Ionensorten durchlässig sind. Diese sollen als Poren bezeichnet werden
Na
POREN
Elektrolyt Elektrolyt
K
10 nm Membran
(Abb. 1a) Würde die Membran sehr viele kaliumdurchlässige Poren enthalten, so würde sich in der Zelle das sogenannte Kalium-Gleichgewichtspotential von -75 mV einstellen. Bei einer Membran mit sehr vielen offenen Natrium-Poren würde sich dagegen ein Zellpotential von +55 mV, das Natrium-Gleichgewichtspotential einstellen. Je nach Anteil der Kaliumund Natrium-Poren stellt sich das Zellpotential auf einen bestimmten Wert ein, der zwischen diesen beiden Extremwerten liegt. Im Ruhezustand überwiegen die KaliumPoren stark in der Zellmembran. Deshalb stellt sich das "Ruhepotential" bei -60 mV ein. In Abbildung 1b werden die Natrium- und Kalium-Poren als ohmsche Widerstände (Leckwiderstände) dargestellt, die einen Spannungsteiler bilden. +
R
N
U
M
C
M
R
K
P
(Abb. 1b) Synaptische Eingänge und postsynaptische Potentiale:
10
11 Weiterhin existieren in der Membran ionenselektive Öffnungen, die aber nicht ständig geöffnet sind. Solche steuerbaren "Ionenschleusen" (Ionenkanäle) dienen der Verarbeitung und Weiterleitung von Signalen. Durch den Einfluß chemischer Substanzen, elektrischer Spannungen, Deformationen oder ph-Wert-Änderungen wird darüber entschieden, ob diese selektiven Ionenschleusen geöffnet oder geschlossen sind. Ändert sich der Öffnungszustand dieser Schleusen, so kann das Membranpotential dadurch verschoben werden. Dies ist jedoch nur innerhalb der "Versorgungsspannungen" (-75 mV bis +55 mV) möglich. Eine sehr wichtige Ansteuerung für diese selektiven Ionenschleusen vollzieht sich in den Synapsen. Vorgeschaltete Sendeneuronen geben hier chemische Substanzen ("Transmitter") ab. Diese Transmitter sind in der Lage, durch chemische Reaktionen die Ionenschleusen im Empfängerneuron zu öffnen. Während dieser Öffnung, die nur ca 1 ms dauert, können z.B. Natriumionen in die Empfängerzelle fließen und dort die Zellspannung in positive Richtung verschieben. Man spricht dann von einem EPSP (exzitatorischen postsynaptischen Potential).
E
R
2 (
(Abb. 2a.)
Die Stärke des Ionenflusses durch die synaptische Membran wird durch die Anzahl der offenen Schleusen bestimmt. Dementsprechend wird als Kopplungsfaktor in Abbildung 2b der Widerstand Rs eingeführt. Während des Ionenflusses lädt sich dabei der Membrankondensator auf. Nachdem die Schleusen wieder geschlossen sind, entlädt sich der Kondensator CM in einem exponentiellen Spannungsverlauf über die Leckwiderstände RNa und RK.
11
12
SS
+ 55 mV RS+
Spike 1
Spike 2
RNa
PM
S.T.
UM CM
S.T.
RK
RS-
- 75 mV ERSATZSCHALTBILD EINER ERREGENDEN SYNAPSE (FETTE LINIE) UND EINER HEMMENDEN SYNAPSE (DÜNNE LINIE) MIT EINEM PASSIVEN MEMBRANELEMENT.
(Abb. 2b.) Die Ionenschleusen sind nur für die Dauer des Aktionspotentials (dies wird weiter unten erklärt) des Sendeneurons geöffnet. Im Modell wird deshalb der Schalter über einen Schmitt-Trigger (S.T.) nur solange geschlossen, wie das Aktionspotential andauert. In Analogie dazu entstehen IPSPs (inhibitorische postsynaptische Potentiale) durch das Öffnen von transmittergesteuerten Kaliumschleusen. Dieser Vorgang bedingt eine Senkung des Zellpotentials. Man unterscheidet also zwischen erregenden (exzitatorischen) und hemmenden (inhibitorischen) Synapsen. Während erregende Synapsen zur Auslösung von Aktionspotentialen führen, wirken die inhibitorischen Synapsen dieser Auslösung von Aktionspotentialen entgegen. Ein wichtiger Schritt der Informationsverarbeitung im Neuron geschieht bereits im Bereich der Dendriten. Hier treffen synaptische Einflüsse verschiedenster Eingänge aufeinander und werden untereinander verrechnet. Dabei spielen der Zeitverlauf und die nichtlinearen Eigenschaften der Synapsen eine wichtige Rolle.
12
13 Beispiel: N
1
N
1
3
2
2
+
4
-
+
N
3
N
4
Aktionspotential (Spike): Eine weitere Klasse von steuerbaren Natrium- und Kaliumschleusen wird durch Membranspannungen beeinflußt.
Na
K
(Abb. 3a.) Diese öffnen sich dann, wenn die Membranspannung einen Schwellwert von ca. -40 mV übersteigt. Dies geschieht lawinenartig, da der Natriumioneneinstrom eine Spannungserhöhung bewirkt, die ihrerseits wieder zu einer Öffnung weiterer Natriumschleusen führt usw. Durch das Öffnen aller Natriumschleusen steigt das Zellpotential nahezu bis zum Natrium-Gleichgewichtspotential an. Nach etwa 0,5 ms schließen sich die Natriumschleusen selbsttätig. Normalerweise würde nun das Zellpotential gemäß einer Exponentialfunktion wieder zum Ruhepotential zurückkehren. Stattdessen öffnen sich die Kaliumschleusen, die ihrerseits auch durch das hohe Zellpotential aktiviert wurden, und beschleunigen den Abfall des Zellpotentials. Dieser Vorgang unterliegt jedoch einer Einschaltverzögerung von ca. 0,5 ms. Die schlagartige Abnahme des Zellpotentials erreicht sogar Spannungswerte, die unter dem Ruhepotential liegen (Hyperpolarisation), vgl. Abb. 4, die es zweckmäßig ist, zuerst zu verstehen.
13
14
(Abb. 4)
M+KNiZU
Die dadurch erzielte Signalform hat die Form wie in Abb.4. Man bezeichnet sie als Aktionspotential oder Spike. Dieses Neuronenausgangssignal hat die Eigenschaft, sich entweder voll auszubilden oder ganz auszubleiben. Aktionspotentiale haben daher stets die gleiche Höhe, gleichgültig welchen Verlauf das Membranpotential vor der Auslösung des Spikes hatte. Insofern hat das Aktionspotential die Eigenschaft eines "digitalen" Impulses ("Alles-oder-Nichts-Gesetz").
R Na
S.T. MF 0.5MS
Rc
RK
CM
AN S.T. DEL 0.5MS
R Na´
+ 55mV (Na+) UM
RK´ -75 mV (K+)
BLOCKSCHALTBILD DER ELEMENTE, DIE AKTIONSPOTENTIALE GENERIEREN.
(Abb. 3b.)
14
15 Abb. 3b zeigt das Blockschaltbild einer elektrischen Schaltung, die in der Lage ist, einen Spike zu erzeugen. Die Schaltung enthält neben den Elementen der passiven Membranschaltung ein Verzögerungselement (AN.DEL), steuerbare Kalium- und Natrium-Strompfade und den Koppelwiderstand Rc als Verbindung zum Dendriten. Beim Überschreiten der Schwelle des Schmitt-Triggers (S.T.) wird der Natriumstrompfad für 0,5ms eingeschaltet. Durch die Verzögerung wird der Kaliumstrompfad verspätet eingeschaltet. Er schaltet sich erst wieder ab, wenn das Membranpotential in die Nähe des Ruhepotentialzurückgekehrt ist. Aktionspotentiale pflanzen sich auf den Axonen fort und dienen zur Fortleitung neuronaler Informationen über lange Strecken. Bei manchen Neuronen fehlt die Fähigkeit, Aktionspotentiale auszubilden ("Nichtspikes"). Sie übertragen kontinuierlich Information, da an ihren Synapsen kontinuierlich Transmitter ausgeschüttet wird. Sie sind besonders in kleinen totalen (analogen) Rechennetzwerken zu finden. (z. B. in der Netzhaut). Die Existenz der Nichtspikes scheint ein wesentlicher Grund dafür zu sein weshalb BNN's flexibler bei Lernvorgängen als ANN's sind. Sehr wichtig ist nun, daß die Synapsen modifiziert werden können. Bei konstanter Reizstärke kann sich nach häufiger Benutzung die freigesetzte Transmittermenge ändern. Dies kann in zwei verschiedenen Richtungen hin geschehen, die man beides als Lernvorgänge bezeichnen kann: - Sensitivierung: Es wird mehr Transmitter ausgeschüttet; Reflexe können so verstärkt werden. - Gewöhnung: Es wird weniger Transmitter ausgeschüttet; Reaktionen können so unterdrückt werden. Beides sind Formen des nicht-assoziativen Lernens. (Beim assoziativen Lernen lernt man ein bestimmtes Aktivierungsmuster dann zu reproduzieren, wenn gleichzeitig ein bestimmtes anderes Muster erscheint.) Weitere Lernformen: - Langzeitpotenzierung: Durch kurze starke oder durch wiederholte Erregung wird eine länger anhaltende Veränderung der Synapse hervorgerufen. Geschehen kann dies durch - Assoziation zweier Reize (eine Form des assoziativen Lernens) - einen einzigen starken Reiz ( eine Form nicht-assoziativen Lernens). - Herabsetzung synaptischer Verbindungsstärken: Bei einem zeitlich bedingten Reiz an einem Neuron werden alle am Reiz nicht beteiligten Synapsen in ihrer Stärke herabgesetzt (durch Verminderung der ausgeschütteten Tansmittermenge). Dies eine Form des assoziativen Lernens.
Das Nervensystem als Teil des Gesamtorganismus: Das Neuronennetz erhält seine Eingabe durch die Sinnesorgane und gibt seine Ausgabe an Effektoren (Muskeln) ab. Dadurch wird die Umwelt verändert, was eine veränderte Sinneswahrnehmung bewirkt. Insgesamt erfolgt so ein Rückkopplungseffekt:
15
16
Propriozeptoren
Sinne Rezeptoren
Reize UmweltEinflüsse
Feedback
Zentral Nerven System
Umwelt
Muskeln Effektoren
Einfluß auf die Umwelt "Feedback"
Organismus Beim Vergleich Rechner - Gehirn können wir grob wie folgt vorgehen: - Ein (traditionelles) Rechenwerk greift nach Vorschrift des Programmes auf wohlbestimmte Weise auf Speicherzellen zu und verändert diese sukzessive. - Neuronen feuern gemäß ihres Anfangzustandes und diese Signale erreichen je nach Art der Verbindungen andere Neuronen; dabei werden auch und sogar als Wichtigstes die Verbindungen selbst verändert. Es soll betont werden, daß man über die Gesamtorganisation von neuronalen Netzen in biologischen Systemen noch relativ wenig weiß. Selbst in den relativ gut untersuchten Beispielen gewisser niederer Tierarten tappt man weitgehend im Dunkeln. Daß die im folgenden studierten künstlichen neuronalen Netzwerke die biologische Realität nur unzureichend darstellen, sieht man allein daran, daß nicht-spikende Neuronen dort gar nicht auftreten. Geht man etwa zum menschlichen Gehirn über, so besteht eine beträchtliche Lücke zwischen den Erkenntnissen der Neurophysiologen, die sich auf einer Makroebene befinden, und den Elementarvorgängen auf der Ebene der Neuronen ( der Mikroebene). Man kennt weder die genauen Organisationsprinzipien noch die speziellen Algorithmen, z.B. numerischer Art, die im Gehirn realisiert sind. Legt man eine evolutionäre Auslese zugrunde, so ist auch nicht bekannt, welche Prinzipien dort vorgeherrscht haben. Sind etwa Gedächtnisstrukturen mit einer größeren Informationskapazität selektiv bevorzugt worden ? Oder solche, welche Polynome 4.Grades exakt extrapolieren können ? Man kann die Ansicht vertreten, daß es viele Jahrhunderte dauern wird, bis man die wesentlichen im Gehirn realisierten Algorithmen auch nur annäherungsweise entdecken wird. Ein wenig vielversprechender Weg dazu ist sicher, nur nach bisher bekannten Algorithmen zu suchen.
16
17
§ 4 Das einfachste Neuronenmodell 4.1
Grundlegende Begriffe
Zur abstrakten Modellierung von Neuronen können und müssen vereinfachende Annahmen getroffen werden. Die einfachsten abstrakten Neuronen heißen McCulloch Pitts - Neuronen (McCP-Neuronen) oder auch einfach Schwellwertneuronen. Sie abstrahieren auf größtmögliche Weise von den biologischen Modellvorstellungen. Definition: Ein McCP-Neuron hat : (a) m Eingaben x1, x2....xm, m≥1 mit Werten aus dem Bereich B = {0,1} der boole'schen Größen. (b) Eine Ausgabe y, ein boole'scher Wert. (c) m Gewichte w1,...,wm, (reelle Zahlen) die an den Eingabelinien liegen. Dabei heißen die Gewichte wn - anregend bei wn > 0 - hemmend bei wn < 0; - wn = 0 bedeutet "keine Verbindung". (d) Einen Schwellenwert θ, ebenfalls eine reelle Zahl.
Arbeitsweise des Neurons: In diskreten Takten 1,2,..... xi= xi (t)
t = 1, 2, ......
y = y (t) Die grundlegende Relation ist: y(t+1) = 1 ⇔ [ f(x1 ,...x m ) := \I\su(i=1; m ; wi x i (t)) ≥ θ ]
Fassen wir (wi) und (xi) als Vektoren auf, so ergibt sich f(x1 ,...xm ) gerade als das Skalarprodukt w . x von (wi) und (xi).
17
18 Im Schaubild:
x1
w1
xm
w
m θ
Y Sprechweisen : - x=1 bzw. y=1 heißt x bzw. y feuert. (oder: ist aktiv, ist angeregt, ist erregt usw.) -
fθ(x) = y ist die Schwellwertfunktion mit dem Schwellwert θ.
Mathematisch ist f eine Abbildung B n µ |R von boole'schen Vektoren in die reellen Zahlen. Solche Abbildungen haben in der Mathematik die Bezeichnung pseudo-boole'sche Funktionen. Sind die Werte der Funktion auch wieder in B, so spricht man von boole'schen Funktionen. Die Eingabe - Ausgabe Funktion der McCP - Neuronen ist eine boole'sche Funktion.
18
19 Beispiele :
Funktionale Sichtweise: Abbildungen (boole'sche Funktionen)
a.)
x
-1
Negation (NICHT)
-0.5
Y
b.)
x1
1
x
1
Konjunktion (UND)
2 2
Y
c.)
x1
1
x
1
2
Disjunktion (ODER)
1
Y
d.)
x1
1
-1
x 2
-1
1
0.5
0.5
XOR (Entweder-Oder) 1
19
1
0.5
Y
20
Ein Beispiel für eine komplexere Schaltfunktion ist:
Beispiel: -1
1
-1
1
-1
1
1
-1
-1
-1
1
1
1
1
-1
3
3
2
1
1
1
1
Man stelle diese Funktion als Boole'sche Funktion einmal explizit dar! Durch Hintereinanderschalten von McCP-Neuronen läßt sich also jede boole`sche Funktion gewinnen, denn dazu genügen ja bekanntlich schon die Konjunktion und die Negation als Basisfunktionen. Durch Vernetzung (was die Rückkopplung einschließt) können wir so also auch jede Schaltung realisieren. Daraus ergibt sich: Satz: Die durch Verschaltung von McCP-Neuronen gewonnenen Funktionen bilden ein universelles Berechnungsmodell. Die obigen Beispiele sind natürlich nur eine Möglichkeit, die angegebenen Funktionen zu realisieren; es gibt deren viele und manche sind gegenüber klassischen Schaltungen auch einfacher. Aus der Anwendungsperspektive ist das ein nicht unerheblicher Gesichtspunkt. Bei der Darstellung der XOR - Funktion fällt auf, daß nicht nur ein einziges Neuron, sondern bereits ein ganzes Netz verwendet wurde. Die Frage, ob wir auch mit einem Neuron hätten auskommen können, wird negativ beantwortet: Es bezeichne v die XOR-Operation (die ja nichts anderes als die Addition modulo 2 ist); diese Operation ist symmetrisch. Wir nehmen an, es gibt Gewichte u und v sowie einen Schwellwert θ mit x 1 v x2 = 1
∫
ux1 + vx2 ≥ θ.
Wegen der Symmetrie gilt aber auch x 1 v x2 = 1
∫
vx1 + ux2 ≥ θ
20
21
und durch Addition ergibt sich mit t = 1/2 (u + v) und y = x1 + x2 x1 v x2 = 1 ∫ p(y):= t y - θ ≥ 0 Daraus folgt aber: Für y = 0 und y = 2 ist p(y) < 0 und für y =1 ist p(y) ≥ 0, was ein Widerspruch dazu ist, daß p(y) eine lineare Funktion ist. Wir vermerken noch, daß diese Art der Argumentation durch die Symmetrie der XOR - Operation ermöglicht wurde. Den diskutierten Sachverhalt können wir noch etwas anders ausdrücken: XOR ist eine Funktion, die eine Menge von Ein- Ausgabepaaren darstellt, welche sich durch keine Wahl von Belegungen für die Gewichte und den Schwellwert durch ein einziges Schwellwertneuron realisieren läßt. Definition: Eine minimale Menge nicht durch ein Neuron realisierbarer Ein- Ausgabepaare heißt ein Konflikt. Eine vorgelegte Funktion, aufgefaßt als eine Menge von Ein- Ausgabepaaren, kann nun mehrere Konflikte (d.h. mehrere Teilmengen, die einen Konflikt bilden) haben. Man kann sich überlegen, daß eine Menge mit drei oder weniger Paaren keine Konflikte haben kann; deshalb hat die XOR-Funktion auch nur einen Konflikt, nämlich die ganze Funktion selber. Wir haben oben bereits mehrfach die Verschaltung von Neuronen erwähnt. Die entsprechende formale Begriffsbildung ist: Definition: (i) Ein Neuronennetz (oder: neuronales Netz) besteht aus (partiell) verknüpften Neuronen, wobei jede Ausgabe in mehrere Ausgabeleitungen aufgespalten werden darf. (ii) Die Eingabeleitungen eines Netzes sind diejenigen Eingabeleitungen, die nicht von Ausgabeleitungen herrühren. (iii) Die Ausgabeleitungen eines Netzes sind diejenigen Ausgabeleitungen, die nicht zu einer Eingabe führen. (iv) Führt eine Leitung vom Neuron n zum Neuron m, dann heißt n das präsynaptische und m das postsynaptische Neuron. (v) Das Gewicht der Leitung von i nach j wird mit wij bezeichnet. Eine Ausgabe kann also zu mehreren Eingaben führen, während eine Eingabe von höchstens einer Ausgabe herrührt. Die Art der Vernetzung nennt man die Topologie des Netzes, sie kann sehr unterschiedlich sein. Die Topologie ist also ein gerichteter Graph. Wir betrachten einige typische Beispiele: 1) Feedforward- Netze:
21
22
Ausgabeschicht
*
*
*
*
*
Verborgene Ebenen (hidden layers)
Eingabeschicht
Bei diesem Netztyp sind die Neuronen in Schichten angeordnet. Jedes Neuron einer Schicht ist höchstens mit Neuronen der darüberliegenden Schicht verbunden; es gibt keine Quer- oder Rückwärtsverbindungen.Ist jedes Neuron mit jedem anderen der darüber liegenden Schicht verbunden, so spricht man von einem vollständig verbundenen Feedforward-Netze. Die Eingabeschicht entspricht dabei den Rezeptoren und die Ausgabeschicht den Effektoren des biologischen Modells. Formal werden die Eingabeneuronen meist anders als die restlichen Neuronen behandelt; sie erhalten ihre Aktivitätszustände eben von außen zugeteilt und nicht aufgrund der Anwendung einer Aktivierungsregel. Das führt gelegentlich zu terminologischen Unstimmigkeiten: Wir haben z.B. die Konjunktion durch ein Neuron realisiert; setzt man jedoch an die beiden Eingabeleitungen noch je ein Eingabeneuron, so erhält man insgesamt drei Neuronen. 2) Rekurrente Netze: Hier existieren Verbindungen von einem Neuron zu sich selbst, entweder direkt oder über eine Kette von Verbindungen. Man kann auch hier zwischen Ein- und Ausgabeneuronen unterscheiden; manchmal wird dieser Unterschied aber fallen gelassen. Ein Beispiel für rekurrente Netze sind die Jordannetze:
22
23
Verborgene und Ausgabeneuronen
Eingabeteil
Kontext
Eingabe
Hier ist eine neue Sorte von Neuronen ausgezeichnet, nämlich diejenigen, die Empfänger für Rückkopplungen sind; sie heißen Kontextneuronen. Es sind hier verschiedene Topologien möglich; die Jordannetze erhalten die Kontextneuronen ihre Impulse von den Ausgabeneuronen (die im Bild graphisch mit den verborgenen Neuronen zusammengefaßt wurden) und von sich selbst. 3) Vollständige Vernetzung: Dies ist ein weiterer, aber extremer Spezialfall von rekurrenten Netzen wo jedes Neuron ist mit jedem anderen verbunden ist. Unter diesen vollständigen Netzen spielen besonders die mit symmetrischen Verbindungen eine Rolle. Ein Beispiel für ein Feedforward-Netz war zur Realisierung der XOR-Funktion angegeben worden. Für eine vorgelegte Funktion erhebt sich natürlicher Weise die Frage, wieviel verborgene Neuronen zu ihrer Realisierung mindestens benötigt werden. Diese Zahl steht in Verbindung mit der Anzahl der Konflikte. Im Vorgriff auf Späteres stellen wir eine wichtige Verwendung von neuronalen Netzen vor, die Mustererkennung. Diese läßt sich als eine Klassifikationsaufgabe auffassen: - Der Zustand der Eingabeschicht entspricht einem zu erkennenden Muster - Der Zustand der Ausgabeschicht entspricht der Zuordnung zu einer Klasse Die Muster und die Klassenzugehörigkeit müssen dabei geeignet kodiert werden. Betrachtet man in einem mehrstufigen Feedforward-Netz eine Zwischenstufe, so muß sie ebenfalls die gesamte für die Ausgabe benötigte Information enhalten, denn die nächsthöhere Schicht erhält ja ihre Eingaben nur von hierher. Da die Aktivitäten dieser Schicht aber nicht identisch mit der darunterliegenden ist (sonst wäre sie überflüssig). heißt das, daß die Information umkodiert worden ist. Man kann also den Übergang zwichen den Schichten als einen (zweckmäßigen) Kodierungswechsel auffassen. Eine andere Verwendung der Netze besteht darin, daß die Eingabe einer bestimmten Situation und die Ausgabe einer vorzunehmenden Aktion entspricht. Insgesamt übernimmt das Netz jedesmal die Realisierung einer gewissen Funktionalität. Aus der Mathematik und Informatik sind nun viele Fälle bekannt, wo die einmalige Anwendung einer Funktion erst eine Approximation an die gewünschte Funktionalität darstellt. In solchen Fällen behilft man sich oft mit Iterationsverfahren. Im Prinzip finden Iterationen
23
24 auch bei Netzen statt; sie spielen hier sogar unter dem Namen "Lernverfahren" eine große Rolle und wir werden uns ihnen noch zuwenden. 4.2 Erste Bemerkungen über vorgenommene Vereinfachungen und Idealisierungen. 1. Es gibt nur boole'sche Werte anstatt beliebiger (reeller) Zahlen. Eine rein technische Variation besteht darin, die Werte -1 und +1 anstatt 0 und 1 zu wählen. Wenn xi {0,1} und ui {-1,1}, dann kann man durch ui = 2·xi -1 eine Umrechnung vornehmen. Es entsprechen sich dann die Schwellwertfunktionen \I\su(i=1;m; w i x i (t)) ≥ θ und \I\su(i=1;m; wi u i (t)) ≥ θ' genau dann, wenn θ'= 2θ −\I\su(i=1;m; wi). In einer ganzen Reihe von Anwendungen ist es praktisch, diese Werte -1 und 1 zu wählen. 2. Wir haben diskrete Takte und eine universelle Uhr : Man könnte auch asynchron oder kontinuierlich vorgehen. 3. Die Schwellwerte sind exakt und die Ausgaben deshalb binär; man könnte sich z.B. y=0 für \I\su(i=1 ;n ;w ix i(n)) ≤ θ −ε und y = 1 für \I\su(i=1;n ;w ix i(n))≥ θ+ε denken, wobei noch eine stetige Interpolation zu erfolgen hat. Die Resultate sind dann nicht mehr nur 0 oder 1, sondern beliebige Zahlen zwischen 0 und 1. Beispiele:
1 Linearisierte Schwelle bei 0
−ε
+ε 1 Sigmoidschwelle f(x) = 1/ (1 + e -x )
Häufig wird auch als leichte Variation die Form f(x) = \f(1;1 + e-(\f(x-θ;T))) gewählt. Der Parameter θ verschiebt den Wendepunkt. Der Parameter T ist für die Steilheit der Kurve verantwortlich: Bei großen T verläuft sie sehr flach, während sie sich für T µ 0 der normalen Schwellwerfunktion annähert. Dies läßt sich wie folgt präzisieren: Wenn (bei gleichem h) fs die Schwellwertfunktion und fT die Sigmoidfunktion mit dem Parameter darstellt, dann gilt:
24
25
Satz: limTµ0 \I(-∞;∞;|fs(x) - fT(x)|dx) = 0. Beweis: Die Stammfunktion von f(x) hat die Form -1/T · ln(\f(e-(x-h)/T;1 + e-(x-h)/T)) + C, woraus lim T µ 0 \I(-∞;0; |0 - fT (x)|dx) = limT µ 0 \I(0; ∞;|0 - fT (x)|dx) = 0 und damit die Behauptung folgt. Weiter sieht man, daß die Sigmoidfunktion durch eine linearisierte Schwelle approximiert wird, daß sie also insbesondere für kleine Werte durch eine lineare Funktion angenähert werden kann. Eine andere Form, eine Funktion mit einer Sigmoidform darzustellen ist durch f(x) = 1/2·(1+tanh(x)) gegeben. Eine Verallgemeinerung der Funktionen mit einer Sigmoidform sind die treppenartigen Funktionen. Sie sind monoton steigend und genügen den Bedingungen limxµ∞ f(x) = 1 und limxµ-∞ f(x) = 0. 4. Der Schwellwert ist pro Neuron für alle Zeit konstant. 5. Die Gewichte sind zeitunabhängig und hängen auch nicht vom Input ab. 6. Gewichte werden aufaddiert: Andere Integralfunktionen sind denkbar. 7. Die Tatsache, ob ein Neuron feuert hängt deterministisch von der Eingabe ab. Es könnte aber durch die Eingabe auch nur die Wahrscheinlichkeit des Feuerns bestimmt sein. Folgende Situation ist denkbar: Wahrscheinlichkeit(Neuron feuert) = f(\I\su(i=1;n;wixi(n)) ), wobei f z.B. die linearisierte Schwelle oder die Sigmoidfunktion ist. Im Verhältnis zu 3.) sind hier zwar für f dieselben Funktionen zugelassen, aber sie spielen eine ganz andere Rolle. Oben war die Ausgabe gemäß f nicht mehr binär, jetzt werden die Werte als Wahrscheinlichkeiten interpretiert, wodurch die Ausagabe wieder binär wird: direkte Ausgabe
gewichtete Summen
reelle Ausgabe
Eingabe Anwendung der Funktion f Wahrscheinlichkeitsinterpretation binäre Ausgabe Im allgemeinen PDP-Modell werden später Alternativen vorgestellt, die die erwähnten Einschränkungen aufheben. Die Erweiterungen und Variationen ändern nichts an der prinzipiellen Tragweite der neuronalen Netze vom Standpunkt der Berechenbarkeitstheorie aus (denn man kann ja auch im bisherigen einfachen Modell schon alles berechnen), beeinflussen aber sehr wohl ihre vernünftige Verwendbarkeit. Dazu gehören vornehmlich Fragen der Komplexität, der Genauigkeit, der Fehlertoleranz, der Parallelisierbarkeit und der Robustheit. Es soll noch einmal betont werden, daß im Vergleich zu einem Gehirn in den künstlichen Neuronennetzen trotz allen Aufwandes bisher aber nur sehr elementare Funktionsweisen nachgeahmt werden.
4.3 Die Hyperebeneninterpretation.
25
26 Wenn w der Gewichtsvektor und x der Eingabevektor eines Neurons und θ der Schwellwert ist, dann feuert das Neuron genau dann, wenn w . x ≥ θ ist; dabei bezeichnet w . x das Skalarprodukt. Halten wir w und θ fest, so wird durch w . x = θ eine Hyperebene im |Rn definiert. Diese teilt den ganzen Raum in zwei Halbräume, von denen der eine noch die Hyperebene selbst enthält und das Neuron klassifiziert die Eingaben genau nach der Zugehörigkeit zu ihnen. Eine Hyperebene im |R2 (also eine Gerade) kann zwei Punktmengen z.B. auf folgende Weise trennen: Menge A * trennende Hyperebene * * * * * * * * * * * * * * Menge B
Ein kleiner Trick erlaubt es uns, auch den Schwellwert als Gewicht aufzufassen, was gelegentlich praktisch ist. Dazu verlängern wir die Vektoren um 1 durch die Festsetzung y = ( x1,..., x n, 1 ) , v = (w1,...w n, - θ ) ("angereicherte" Vektoren) Die Hyperebene ist dann durch die Gleichung v . y = 0 definiert. Gegeben seien nun wieder zwei Mengen Eingabevektoren.
Y1 und Y2 von
(angereicherten)
Definition: (i) w trennt Y1 und Y2 ı w . y ≥ 0 für y ∈ Y1 und w . y < 0 für y ∈ Y2 und es eine Umgebung von w (als Punkt im Raum aufgefaßt) gibt, in der jedes w´ ebenfalls noch diese Eigenschaft hat. (ii) Y1 und Y2 sind linear trennbar, wenn es ein w gibt, das beide Mengen trennt.
Man beachte, daß die Verwendung von angereicherten Vektoren es erlaubt, die Definition in dieser einfachen Weise zu machen, wo die trennende Hyperebene durch den Nullpunkt geht. Es ist klar, daß im allgemeinen zwei endliche Mengen genau dann linear trennbar sind, wenn ihre konvexen Hüllen disjunkt sind. Wenn nun eine boole'sche Funktion f gegeben ist, dann wird die Eingabemenge in zwei Mengen aufgespalten; offenbar ist f genau dann durch ein Neuron zu realisieren, wenn diese beiden Mengen linear trennbar sind. Anders ausgedrückt: Konflikte entsprechen minimalen nicht linear trennbaren Partitionen der Eingabemenge. In diesem Lichte betrachten wir noch einmal das Beispiel der XOR - Funktion. Zu trennen sind hier die beiden Punktmengen {(0,1),(1,0)} und {(0,0),(1,1)}. Wie wir oben gesehen haben, 26
27 leistet eine Gerade das nicht; anschaulich ist dies klar. Die beiden Neuronen der Zwischenschicht führen nun jeweils eine neue Gerade ein, deren definierende Gleichungen x1 - x2 = 0,5 und x2 - x1 = 0,5 sind. In den Halbebenen I und III feuert je eins der beiden Neuronen.
(1,1)
(0,1) x
1
= 0, x
2
=1
II I x
III
1
=x
Neuron 1 feuert
2 x
Neuron 2 feuert
(0,0)
1
= 1, x
2
=0
(1,0)
kein Neuron feuert
Nun ist klar, wie diese Neuronen mit dem Ausgabeneuron zu verbinden sind: Es ist einfach die Disjunktion zu realisieren. Dadurch feuert das gesamte Netz genau dann, wenn der Eingabevektor in der Vereinigung der Halbebenen I und III liegt. Diese Argumentation zeigt nun auch, wie man bei einer beliebigen boole'schen Funktion vorzugehen hat. Der Definitionsbereich D einer solchen Funktion ist endlich, und man markiert sich zuerst die Punkte mit dem Funktionswert 1. Sodann spaltet man diese neue Punktmenge so in Teilmengen auf, daß ihre konvexe Hülle jeweils keine Eingaben mit dem Wert 0 enthalten. Eine solche konvexe Menge K wird von einer Anzahl von Hyperebenen Hi, 1 ≤ i ≤ m, berandet. Für jede solche Hyperebene Hi wählt man ein Neuron Ni, das auf der K zugewandten Seite den Wert 1 ergibt. (Es genügt dabei die Hi so zu wählen, daß der Durchschnitt dieser Halbräume dieselben Eingaben wie K enthält.) Alle diese Ni werden auf der nächst höheren Schicht mit einer Konjunktionsschaltung zu einem Neuron NK zusammengeschaltet; NK feuert also genau bei den Eingabevektoren aus K. Schließlich werden alle diese NK mit einer Disjunktionsschaltung zum Ausgabeneuron zusammengeführt.
27
28 Wir veranschaulichen uns dies am Beispiel der negierten XOR-Funktion und haben dazu also die Werte der XOR-Funktion zu vertauschen. Dazu ersetzen wir in Neuronen der Zwischenschicht zunächst die Gewichte w durch -w und θ durch -θ; das führt zu denselben Geraden. Neuron 1 feuert dann in den Mengen II und III, während Neuron 2 dies in I und II tut. Die Konjunktion ergibt uns dann als Durchschnitt die erwünschte Menge II. Auf diese Weise haben wir jede boole'sche Funktion f durch Feedforward-Netze mit insgesamt drei Schichten von Neuronen realisiert: - eine Schicht zur Einführung von Geraden; - eine Schicht zu Bildung konvexer Mengen durch Konjunktionen; - eine Schicht zur Bildung von Vereinigungen (Disjunktionen) konvexer Mengen. Was hier nachgeahmt wird ist nichts anderes als die disjunktive Normalform boole'scher Ausdrücke. Man kann solche Ausdrücke natürlich auch komplizierter schachteln (was gelegentlich Vorteile haben mag, vor allem weil die Normalform aufwendig zu finden ist), und aus denselben Gründen kann man Netze in mehr Schichten organisieren; prinzipiell notwendig ist das aber nicht. Ganz wesentlich bleibt aber zu bemerken, daß wir hier nur eine grundsätzliche Aussage vor uns haben. Wie man solche Netze aus vorgelegten Ein-Ausgabepaaren der gesuchten Funktion tatsächlich finden kann, steht auf einem ganz anderen Blatt. Wir kommen hierauf im Zusammenhang mit den Lernverfahren zurück, u.a. bei der Diskussion des Perceptrons. Die dargestellte Vorgehensweise kann man leicht verallgemeinern, z.B. wenn die betrachtete Funktion reelle Argumente oder Werte hat. Ferner sei als Möglichkeit der Verallgemeinerung der Ersatz der Summenbildung im Neuron durch eine andere Funktion genannt, um so nicht eine Entscheidung über die Zugehörigkeit zu Halbräumen sondern zu anderen Aufspaltungen des Raumes zu treffen, etwa ob sich eine Eingabe innerhalb oder außerhalb einer n-dimensionalen Kugel befindet. Die Einschränkung, daß durch ein einziges Neuron definierte Neuronen die Eingabe entsprechend ihren Werten linear trennen, restringiert die Anzahl der mit einem Neuron definierbaren Funktionen mit wachsender Argumentzahl immer mehr. Die folgende Tabelle (vgl. [Wa 89}) ilustriert dies. n 1 2 3 4 5 6
Anzahl der Boole'schen Funktionen 4 16 256 65.536 4,3·109 1,8·1019
Anzahl der linear separierbaren Funktionen 4 14 104 1.882 94.572 5.028.134
4.4 Matrixdarstellungen: Ein neuronales Netz mit n Neuronen können wir auch als Matrix darstellen. Das Netz ist nämlich vollständig dadurch beschrieben, daß man - sagt, ob von Neuron ai zu Neuron aj eine Leitung geht und - welches das mit so einer Leitung verbundene Gewicht wij ist. Fehlende Leitungen lassen sich durch das Gewicht 0 charakterisieren; die Matrix (wij)1≤i,j≤n der Gewichte beschreibt also das Netz vollständig. In der Spalte j stehen dann die Eingänge zum Neuron aj . Wenn nun die Neuronen zu einem Zeittakt jeweils einen Eingabewert x haben, so ergibt das insgesamt einen Eingabevektor (xi), der sich in n Eingabevektoren aufspaltet. Die mit dem Schwellwert verglichenen Größen ergeben dann einen Vektor 28
29
zj = \I\su(i=1;n;wijxi(n)) . Das ergibt aber gerade die Matrixmultiplikation (wij) · (x) = (z): aus (z) berechnet sich dann der Ausgabevektor (y) durch Anwendung der Schwellwertfunktion. Die Matrix (wij) assoziiert also zusammen mit dem Schwellwert die Eingabe (x) mit der Ausgabe (y); sie heißt auch Assoziations- oder Memorymatrix. Falls wir nun m Neuronen einer Eingabeschicht mit n Neuronen einer Ausgabeschicht verbinden wollen, erhalten wir entsprechend eine (m,n) - Matrix. Wir halten folgenden wichtigen Sachverhalt fest: Eine Memorymatrix speichert ihre Informationen nicht in bestimmten Sektionen, auf die etwa mittels eines Schlüssels zugegriffen werden kann, sondern alle Informationen sind stets über die ganze Matrix verteilt. Wenn nun zu gegebenem (x) die Ausgabe (y) vorgeschrieben ist, so fragt man nach einer geeigneten Assoziationsmatrix. Dazu vernachlässigen wir einmal die Schwellwertbildung und erlauben weiter für den Moment eine Verallgemeinerung derart, daß für die Zustände nicht nur {0,1} sondern beliebige reelle Zahlen zugelassen sind. Wir gehen die Frage schrittweise an und beginnen mit dem einfachsten Fall. 1) (x) ist ein Einheitsvektor und y ein Skalar. Die Memorymatrix ist ein Vektor und wir wählen diesen Gewichtsvektor w als w = y·(x). Dann gilt das Gewünschte: (w)· (x) = y·(x) · (x) = y. 2) (x) ist ein Einheitsvektor und (y) ein Vektor. Die Memorymatrix wird dann als (w) = (y) · (x)T (das Matrizenprodukt von (y) und der Transponierten von (x)) erklärt (äußeres Produkt); es gilt dann (y) · (x)T· (x) = (y). Die j-te Stelle von (w) ist also das Produkt der j-ten Stellen von (x) und (y); haben wir nur binäre Vektoren, dann ist wj = 1 genau dann, wenn xj = yj = 1. In Termini von Neuronen besagt das, daß die Verbindung genau dann zu 1 gesetzt wird, wenn Ein- und Ausgabe gleichzeitig aktiviert sind. Später bei den Lernverfahren wird uns das unter dem Namen Hebbregel wiederbegegnen; hier haben wir eine mathematische Motivation dafür. 3) Es sollen n n-dimensionale paarweise orthogonale Einheitsvektoren als Eingabe mit n n-dimensionalen Ausgabevektoren assoziert werden. Wir setzen (wi) = (yi) · (xi)T , 1≤i≤n, und setzen die Matrix (w) hieraus additiv zusammen: (w) = (w1) + ....+ (wn). Dann gilt: (w) · (xi) = ((w1) + ....+ (wn)) · (xi) = (y1) · (x1)T · (xi) + ...(yi) · (xi)T · (xi) + ...+ (yn) · (xn)T · (xi) = 0 +...+ (yi) +...+ = (yi). Die Einschränkung auf Einheitsvektoren läßt sich leicht aufheben und durch entsprechende Faktoren korrigieren. Dasselbe ist mit der Orthogonalität nicht der Fall. Schwierig wird die Fragestellung also allgemein dann, wenn zu mehreren (möglichst vielen) Eingaben die Ausgabe vorgeschrieben ist. Es soll ja nicht jedesmal eine extra Matrix erstellt werden und es erhebt sich dann die Frage, wieviele Ein- Ausgaberelationen sich eine Memorymatrix "merken" kann. Wenn die Eingabevektoren zu einer Matrix X und die Ausgabevektoren zu einer Matrix Y zusammengefaßt werden, so ergibt sich für die gesuchte Memorymatrix die Gleichung Y=W.X . Daraus berechnet sich dann W als Y. X-1, falls das Inverse von X existiert, falls also die Eingabevektoren linear unabhängig sind. Das ist nun aber erstens meist nicht der Fall und es läßt sich zweitens auch im positiven Falle bei großen Anzahlen nur sehr aufwendig nachweisen. Um mit dieser Problematik fertig zu werden, wurde der Begriff der Pseudo-Inversen (oder Moore-Penrose - Inversen) für Matrizen eingeführt. Definition:
29
30
A heißt Pseudo-Inverse von W, falls (i) W = W · A · W (ii) A = A · W · A (iii) A · W und W · A sind symmetrische Matrizen. Es gilt zunächst: Satz: Jede Matrix besitzt genau eine Pseudo-Inverse. Die Bedeutung der Pseudo-Inversen liegt nun darin, daß sie Näherungslösungen für Gleichungen liefert, falls exakte Lösungen nicht vorhanden sind. Betrachten wir wie oben eine Matrizengleichung (in der Additionen, Subtraktionen und Multiplikationen vorkommen dürfen) der Form F(W) = (0), wobei (0) die Nullmatrix ist; diese Gleichung soll in W gelöst werden. || · || bezeichne im folgenden die euklidische Norm.
30
31
Definition: W0 heißt beste approximative Lösung von F(W) = (0), falls (i) Für alle W1 ≠ W0 gilt ||F(W1)|| > ||F(W0)|| oder (ii) F(W0) = (0) und für alle W1 mit F(W1) = (0) gilt ||W1|| ≥ ||W0||. Bezeichnen wir die Pseudo-Inverse von W mit W+, so liefert W+ häufig als Ersatz der Inversen noch beste approximative Lösungen. Zum Beispiel gilt, falls die beiden folgenden Gleichungen keine exakten Lösungen haben: W0 = A+ · C · B+ ist die beste approximative Lösung der Gleichung A · W · B = C W1 = B · A+ ist die beste approximative Lösung der Gleichung W · A = B Es gibt mehrere Möglichkeiten, die Pseudo-Inverse zu berechnen. Eine ganze Reihe von Lernverfahren in neuronalen Netzen machen nichts anderes, als die "Pseudo-Inverse zu lernen". Bei dem speichern von Ein-Ausgabepaaren wird die Aufgabe häufig noch dadurch erschwert, daß z.B. die Eingabe fehlerhaft, d.h. (wenn man sich das als Signale vorstellt) verrauscht sein kann. Darauf gehen wir u.a. in § 9.2 ein. 4.5 Automatentheoretische Vorstellungsweise Vom Standpunkt der Automatentheorie aus gesehen kann man das Netz (vertreten durch die Matrix M) als einen endlichen Automaten betrachten:
Input
Automat
Output
Hier sieht das Problem dann so aus: Gegeben die Eingabe X und die Ausgabe Y, wie sieht der zugehörige Automat aus (das Identifikationsproblem) ? In der Sprechweise der Mustererkennung (ein Eingabebild soll einer vorliegenden Klassifikation zugeordnet werden) haben wir folgendes Bild:
31
32
Eingabebild
Klassifikation
Identifikationstheorie (Automatentheorie)
In der Automatentheorie gibt es ein Standardverfahren, das zu einer sequentiellen Funktion (das ist eine Funktion auf den Worten des Alphabets, die bestimmten Bedingungen genügt) den minimalen endlichen Automaten konstruiert, dessen EinAusgabeverhalten gerade durch diese Funktion beschrieben wird. Unter verallgemeinerten Bedingungen spielt dies Problem auch in der Systemtheorie eine große Rolle. Von besonderer Bedeutung für die neuronalen Netze sind die zellularen Automaten. Die Automatentheorie hat auch ferner eine Theorie zur Vernetzung von Automaten geliefert, die entsprechend auch auf die neuronalen Netze anwendbar ist, vgl. hierzu [Go-Ma 90].
4.6 Graphendarstellungen und erste dynamische Aspekte Im folgenden sei der Schwellwert für alle Neuronen gleich. Wir deuten die Assoziationsmatrix als eine verallgemeinerte Inzidenzmatrix eines gerichteten Graphen mit n Knoten, an den Kanten stehen als Beschriftungen die Gewichte. Für wij = 1 nehmen wir eine unbeschriftete Kante, bei wij = 0 besteht keine Verbindung: i −wij−−→ j i −−−→ j
Ohne Beschriftung:
wij = 1
Ungerichtete Kanten sollen symmetrische Kanten symbolisieren, d.h. wij = wji. Zwei Beispiele:
- 1 -1
-1 -1 θ=0
θ=1
In beiden Fällen haben die Netze vier Knoten. Das rechte Netz entsteht aus dem linken dadurch, daß sowohl bei den Gewichten wie bei dem Schwellwert je 1 subtrahiert wurde.
32
33 Wenn wir die Gewichte des linken Netzes mit wij und die des rechten Netzes mit vij bezeichnen, so gilt also vij = wij - 1. Man könnte vermuten, daß der Unterschied zwischen den Gewichten durch eine entsprechende Veränderung von θ aufzufangen ist. Das obige Beispiel zeigt aber, daß dies nicht der Fall sein muß, denn die beiden Netze verhalten sich unterschiedlich. Wenn ein Neuron feuert (d.h. yn (t) ≠ 0), soll es aktiv (zur Zeit t) heißen. Demgemäß ergibt sich für den Aktivierungszustand, den wir mit an (t) bezeichnen wollen :
an ( t+1 ) =
1 w e n n Σ w n ' n ·a n' (t)≥ θ; 0 sonst
Summiert wird über alle Neuronen n'. Der dynamische Aspekt ist hier nun, wie sich der Aktivierungszustand zeitlich im Netz verändert, wie er also durch das Netz hindurch propagiert wird. Der Ausgangspunkt sei eine Menge M ∑ N von aktiven Neuronen. Wir setzen:
fθ ( M ) = { j I (Σ wij (t ) ≥ θ | i M)}
fθ ( M ) ist die Menge der zum nächsten Zeitpunkt aufgrund von M aktiven Neuronen. Wir erhalten so einen Fluß: M, fθ(M) , fθ 2 (M), ..... Wegen der Endlichkeit von der Neuronenmenge und der Aktivitätszustände ist diese Folge entweder zyklisch oder ab einer Stelle konstant (was ein trivialer Zyklus ist). Zur Beschreibung der Fernwirkung einer Menge von Neuronen sind die folgenden Begriffe nützlich. Definitionen:
1. M1 entzündet M2 ⇔ ex. k mit M2 ∑ fθ k (M1) 2. M invariant ⇔ fθ (M) = M 3. M ist persistent ⇔ M ∑ fθ (M) 4. M ist schwach ⇔ ex. k mit fθ k (M) = Ø 5. Falls fθ k (M) = fθ k+1 (M) für ein k > 0, dann heißt cl (M) := fθ k (M) die Hülle von M.
Hieraus folgt sofort für nicht negative Gewichte: - Persistente Mengen werden schließlich invariant; - cl (M) ∑ cl ( cl (M)); wenn M1 ∑ M2 dann cl (M1) ∑ cl (M2 ).
33
34 Beispiel:
persistent für
persistent für
θ≤2 θ≤3 Ein anderer Ausdruck für die Invarianz von M ist, daß M ein Fixpunkt von fθ ist. Das ist vor allem gebräuchlich, wenn man fθ auf die einzelnen Neuronen anwendet. Die Erkennung von Zyklen ist eine der wichstigsten Aufgaben bei der Analyse eines Netzes. Läßt man als Aktivitätszustände nicht nur 0 und 1 sondern beliebige reelle Zahlen zu, dann gibt es unendlich viele Zustände und die Folge M, fθ(M) , fθ 2 (M), .....muß weder Zyklen besitzen noch schließlich konstant sein. Das Verhalten solcher Folgen ist Gegenstand von Konvergenzbetrachtungen (s. §5.9. und §7).
4.7 Ein erstes Anwendungsbeispiel Ein Spiel wie Schach oder Mühle kann theoretisch durch einen Baum beschrieben werden: An den Knoten stehen die Spielsituationen und die Kanten sind mit den erlaubten Zügen beschrieben. Eine Partie entspricht dann einem Pfad in diesem Baum. Eine Strategie S ist eine Abbildung S : Situationen →Züge, z = S(s) ist der in der Situation s gemäß S auszuführende Zug. Die Nachfolgesituation s' von s ist durch die Strategie eindeutig bestimmt. Zur Darstellung einer Strategie benötigen wir entweder eine Berechnungsvorschrift oder ein großes assoziatives Gedächtnis, das mit jeder Spielsituation die Nachfolgesituation oder den auszuführenden Zug speichert: s 1 →z 1 , s2 → z2 , ..... Um ein solches Gedächtnis in unserem Rahmen zu organisieren, müssen wir die Situationen für die Eingabe und die Züge für die Ausgabe geeignet kodieren. Dies sei geschehen; dadurch fassen wir nun die si und die zi als Wörter der Länge n über {0,1} auf. Die Memorymatrix M wollen wir als eine n2 - Matrix mit 0 -1-Einträgen wählen. Wir deuten wie oben eine solche Matrix als die Inzidenzmatrix eines Graphen mit n Knoten: Mij = 1 heißt, daß die Knoten i und j verbunden sind, bei Mij = 0 besteht keine Verbindung. Wie können wir uns jetzt eine solche Memorymatrix verschaffen ? Der erste Übergang s1 →z1 sei 01100 → 01010 Eine Memorymatrix M1 für diese Assoziation sieht entsprechend der Vorgehensweise von 4.4 so aus: 34
35
j
i
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
Man erhält sie durch die (Matrizen-)Multiplikation der Spalten- und Zeilenvektoren s1 und z1. Dasselbe können wir unabhängig für zwei weitere Situationen (beliebig, keine Nachfolgesituationen) durchführen: 1 0 0 0 1 ---> 1 0 1 0 0 s2 z2
1 0 0 1 0 ---> 0 0 1 0 1 s3 z3
Wir erhalten dann zwei weitere Matrizen M2 und M3, die die jeweiligen Aktionen kodieren. Da wir noch die Schwellwertfunktion haben, gehen wir anders als in 4.4 vor und überlagern diese drei Matrizen zu einer Matrix M:
j
i
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
Die allgemeine Definition dieser Überlagerung von Matrizen M1, ... ,Mk zu einer Matrix M ist: M(i,j) = max( Mr(i,j)| 1 ≤ r ≤ k) Den Schwellwert bestimmen wir durch θi = max (Σ xi wi | x Eingabe), wobei die wi die Gewichte des Neurons i sind; in unserem Fall erhalten wir also stets θi = 2. Damit erhalten wir folgendes Neuronennetz: 35
36
si
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
2
2
2
2
2
z
i
Eine genauere Analyse dieses Vorgehens wird in 9.1 gegeben. Die Memorymatrizen heißen auch Assoziationsmatrizen, weil sie Eingabe und Ausgabe zueinander assoziieren. Falls die Eingabe gleich der Ausgabe ist, spricht man auch von einer Autoassoziation. Es sei noch ein Wort zu den Kodierungen gesagt, die es uns erlauben ein Problem wie eine Spielsituation in Termini von binären (oder allgemeiner reellen) Vektoren zu beschreiben. Auf der einen Seite besteht die Gefahr, daß Zusammenhänge, die man implizit mit der realen Situation verbindet, verloren gehen. Auf der anderen Seite kann es aber in der kodierten Darstellung wichtige Relationen geben, die ursprünglich gar keine Rolle spielten. Dazu gehören u.a. Abstandsbeziehungen; Situationen, deren Kodierungen (also Vektoren im |Rn) nahe benachbart sind, müssen ursprünglich gar nichts miteinander zu tun gehabt haben. Es ist ein vorteilhafter Aspekt einer Kodierung, wenn solche Effekte nicht auftreten.
§ 5 Neuronale Dynamik und das allgemeine PDPModell Im Ansatz des allgemeinen PDP - Modelles wird ein entgegengesetzter Standpunkt zum letzten Abschnitt eingenommen: Es sollen möglichst viele Modellierungen von Vorstellungen über Neuronen erfaßt werden. PDP ist dabei eine Abkürzung für "Parallel Distributed Processing", woraus ein gewisser Allgemeinheitsanspruch ersichtlich wird. Die McCP - Neuronennetze werden dabei ein Spezialfall sein. Die Beschreibung dieses allgemeinen Modelles geschieht mittels gewisser grundlegender Begriffe, die als erstes aufgezählt werden sollen. Es handelt sich dabei um
36
37 - Prozeßeinheiten: Neuronen n - Aktivierungszustand: an ( t ) , a (t ) - Verknüpfungszustand: cn,n' ( t ) , c (t ) - Outputsignal: On (t ) = fn ( an (t ) ) - Inputsignal : netn (t ) = g ( c (t ), O (t ) ) netn (t ) = O (t ) . C (t ) - Aktivierungsregel: a ( t+1 ) = F ( t, a (t ), net (t ) ) - Lernregel: D cij = G (aj, Tj) . H (Oi, cij) Diese Begriffe erläutern wir jetzt etwas näher.
5.1
Neuronen als Prozeßeinheiten
Es ergeben sich als alternative Modellierungen: a.) diskret: endlich viele Neuronen N = { n1,...,nn } b.) kontinuierlich: N ∑ R3 oder N ∑ R2, gegeben durch Angabe von Koordinaten. Alle Rechenschritte werden von diesen Prozeßeinheiten, den Neuronen, übernommen; es gibt keine Kontrolle. Neuronen empfangen Inputs, entsenden Outputs und arbeiten dabei parallel. In sequentiellen Simulationen ist letzteres natürlich nicht mehr der Fall.
Es gibt drei Sorten von Neuronen: - Input-Neuronen - Output-Neuronen - Verborgene Neuronen Input- und Output-Neuronen stehen mit der Außenwelt in Kontakt; verborgene Neuronen sind unsichtbar.
5.2 Der Aktivierungszustand an (t) (Lokaler) Zustand des Neurons n zur Zeit t : an ( t ) . Es ist i.a. an ( t ) ∈ |R , meist an ( t ) ≥ 0. a.) diskret: an ( t ) hat nur endlich viele Werte; (McCP: {0,1}) b.) kontinuierlich: meist reelle Intervalle : 8 a , b 9 ∑ |R
37
38
Wir kommen auf diese Möglichkeiten bei der Behandlung der Outputsignale zurück. (Globaler) Zustand des Netzes zur Zeit t : a(t) = (an ( t ) | n ∈ Ν) , ein Vektor.
5.3 Verknüpfungszustand
cn,n' ( t )
Es bezeichne N wieder die Neuronenmenge. Der (lokale) Verknüpfungszustand zwischen den Neuronen n und n' zur Zeit t ist eine Zahl cn,n' (t) ∈ |R. Sprechweisen:
cn,n' (t ) = 0
keine Synapsen
cn,n' (t ) > 0
anregende Synapsen
cn,n' (t ) < 0
hemmende Synapsen
Der (globale) Verknüpfungszustand des Netzes zur Zeit t ist eine Abbildung c(t) : N≈N → |R. Wenn N endlich ist, dann ist c = c( t ) eine m2 -Matrix, wobei m die Neuronenzahl ist. Für McCP- Neuronen haben wir dann : Wenn eine Verbindung von n zum i-ten Eingang von n' existiert , dann ist cn,n' gerade das i-te Gewicht von n'. Sprechweisen: Fan -in (n) = |{ n' | cn',n ≠ 0 }| Fan -out (n) = |{ n' | cn,n' ≠ 0 }| Beide Größen sind im allgemeinen zeitabhängig. Im kontinuierlichen Falle definiert die Verknüpfungsfunktion eine Hyperfläche wie etwa in folgendem Beispiel:
38
39
C
N
Häufig sind im kontinuierlichen Fall metrische Verknüpfungen; sie sind von der Gestalt cn,n' = h ( d(n,n')) , d ein geeignetes Abstandstandsmaß. Als wichtigsten Unterschied des allgemeinen Modells zu den McCP - Neuronen halten wir die Zeitabhängigkeit von c fest; diese beinhaltet auch die Möglichkeit einer zeitlichen Veränderung der Verbindungsstärken.
5.4 Output - Signale Zur Zeit t sendet das Neuron n ein Outputsignal der Stärke On ( t ) = fn ( an(t ) ) ∈ IR+. Diese Stärke hängt also nur vom (lokalen) Aktivierungszustand ab; fn ( an(t ) ) = 0 bedeutet, daß kein Signal gesendet wird. Der (globale) Output des Netzes ist wieder ein Vektor: O ( t ) = (fn ( an(t ) ) | n ∈ N). Im Spezialfall der McCP - Neuronen kann fn nur die beiden Werte 0 oder 1 annehmen. Die Modellierung der Schwellwertfunktion kann inhaltlich auf zwei verschiedene Weisen geschehen: a) Verlagerung in den Aktivierungszustand: Hier ist an ( t ) = 1 oder = 0, je nachdem, ob die gewichtete Summe der Eingabewerte den Schwellwert überschreitet oder nicht (so sind wir oben unter 2. vorgegangen). In diesem Falle ist ganz einfach fn ( an(t ) ) = an(t ), d.h. fn ist die Identität. b) Alternativ kann man die Schwellwertfunktion aber auch in das Outputsignal verlagern: Man muß jetzt für an (t) die gewichtete Summe Σx i w i nehmen und fn als die Schwellwertfunktion wählen.
39
40 Die Möglichkeiten für fn werden wir hier nicht weiter diskutieren, weil man sie gemäß a) auch in die Aktivierungsfunktion verlagern kann. Auf diese gehen wir unten in 5.6 ein.
5.5 Input - Signale Zur Zeit t erhält ein Neuron n Inputsignale von anderen Neuronen n'. Die Art der Verbindungen bewirkt, daß die Signale nur "teilweise ankommen"; dieser Teil heißt Nettoinput; er ist abhängig vom Output und vom Verknüpfungszustand des Netzes: Nettoinput von n' nach n : net n',n (t ) Nettoinput nach n :
net n (t ) = gn ( c(t ), O (t ) )
Globaler Nettoinput:
net (t ) = ( net n (t ) I n ∈ N ), ein Vektor.
Bei den McCP - Neuronen ist die Funktion g die Matrixmultiplikation: net (t ) = O(t ) . C ( t ). Im englischen Sprachgebrauch steht für "Nettoinput" der Begriff "net input", dessen Übersetzung eigentlich "Netzeingabe" heißt. Dieser Begriff ist jedoch genauso wie der hier gewählte diskutabel. "Netto" verstehen wir hier im Gegensatz zu "Brutto" als das, was nach Abzug (oder Zugabe) der Wirkung der Verbindungen am Neuron noch ankommt.
5.6
Die Aktivierungsregel
Der Aktivierungszustand eines Neurons ist schon im McCP - Fall nicht zeitlich konstant. Im allgemeinen Modell haben wir eine Aktivierungsregel (man sollte besser sagen: Aktivierungsfunktion) a ( t+1 ) = F ( t, a (t ), net (t ) ) = F1 ( t, a (t ), c (t ) ), für ein geeignetes F1, denn net (t ) hängt nur von a (t ) und c (t ) ab. Diese allgemeine Regelform hat viele Spezialfälle; im Hinblick auf uns bekannte Fälle zählen wir einige hier auf: a) F hängt nicht explizit von t ab. b) F ist linear : a ( t+1 ) = a (t ) . c (t ), an ( t+1 ) = Σ an' (t ) . cn',n (t). Dieser Fall wird unter folgenden Zusatzannahmen interessant, die allgemein ein lineares Modell charakterisieren: a n ( t ) : beliebige reelle Zahl, Ο n ( t ) = fn ( an (t )) = an (t ), c (t ) = c konstant.
40
41 Satz: Wenn ein Zustand in einem linearen Modell in k Schritten erreicht werden kann, dann gibt es auch ein anderes lineares Modell, wo der Zustand in einem Schritt erreicht werden kann. Beweis: Durch Induktion über k. Es ist a (n +2) = a (n+1) . c = a (n ) . c 2 Verändert man also im linearen Modell die Matrix, so erhält man das Gewünschte. Man wähle daher einfach Ck statt C . Eine Konsequenz dieses Satzes ist, daß im linearen Falle verborgene Neuronen grundsätzlich überflüssig werden. Wie wir gesehen haben, ist das jedoch für McCPNeuronen nicht mehr der Fall. Auch bei einem einzigen McCP-Neuron ist die Ausgabe keine lineare Funktion von der Eingabe! c) F ist quasilinear, d.h. hat nur eine lineare Funktion als Argument : an ( t+1 ) = F ( Σ On' (t ) . c n',n(t ) ). Hier ist das Argument von F noch eine lineare Funktion. Wenn F selbst nicht linear ist, dann liefert auch die Verschaltung von Neuronen für die Ausgabeneuronen keine Argumente mehr, die linear von der Eingabe abhängen. Es eröffnet gerade dies die Möglichkeit, durch ein neuronales Netz "sehr nichtlineare" Funktionen zu realisieren. Wir weisen hier darauf hin, daß die Terminologie für den Gebrauch des Wortes "linear" in der Literatur uneinheitlich ist. So ist z.B. das nichtlineare Schwellwertneuron in der Lage, lineare Trennungen von Punktmengen vorzunehmen. d) F ist zusätzlich eine Schwellwertfunktion (wie bei den McCP-Neuronen) :
wenn Σ O n' (t ) . c n ' (t ) < θ ; 1 nwenn n (t ) ≥ θΣ O n' (t ) . c n ' 0
an ( t+1 ) =
(Hier haben wir wieder die Modellierung, daß die Zustände 0 oder 1 und nicht, wie in b), beliebige reelle Zahlen sind.) Analog kann F dann auch eine Sigmoidfunktion usw. sein. e) a(t + 1) = F(g(net(t))), wobei F eine Schwellwertfunktion ist. Dies ist eine Verallgemeinerung der quasilinearen Schwellwertfunktion. In 4.3 gaben wir für die McCP-Neuronen die Hyperebeneninterpretation: Die Gewichte und der Schwellwert definierten eine Hyperebene, die den ganzen Raum in zwei Halbräume zerlegte und das Neuron traf seine Entscheidung über Feuern oder Nicht-Feuern danach, in welchem der Halbräume die Eingabe lag. Die Funktion g verallgemeinert diese Vorstellung. Durch g und θ wird vermöge g(x) - θ = 0 eine Entscheidungsfläche definiert. Ganz genauso wie beim Hyperebenenfall feuert das Neuron entsprechend der Lage der Eingabe zur Entscheidungsfläche. f) Den bisherigen Ansätzen liegt die Vorstellung zugrunde, daß die Gewichtungen aus "fest verdrahteten" Leitungen resultieren; die Gewichtungen sind insbesondere unabhängig von den Aktivitätszuständen. Eine ganz andere Vorstellung geht davon aus, daß sich die Gewichtungen gerade nach dem Grad der Aktivität richten. Realisiert werden kann das durch folgende Funktion: M s ( x1, ... , xm) = ( \f( (x1)s+...+(xm)s;m) ) 1/s
41
42 Dies ist ein Mittelwert, der die Summenbildung im linearen oder quasilinearen Modell ersetzen kann. Dabei ist s eine reelle Zahl ≠ 0. Für die Abhängigkeit von den Argumenten ergibt sich: \f(∂Ms;∂xi) = 1/s . ( ( \f( (x1)s+...+(xm)s;m) ) (1/s - 1) . 1/m . s. (xi) s-1, woraus sich die relativen Abhängigkeiten zu \f(( \f(∂Ms;∂xi) ) ; ( \f(∂Ms;∂xj) )) = ( \f(xi ; xj ))s-1 berechnen. Die Abhängigkeit von den Argumenten läßt sich durch die Wahl von s steuern; für große Werte von s hängt M z.B. mehr von den großen Werten ab. Hat man zusätzlich noch eine Schwellwertfunktion, dann ist die Entscheidungsfläche ( \f( (x1)s+...+(xm)s;m) ) 1/s = θ. Im Falle s = 2 ist das eine Hyperkugel, sonst handelt es sich um verallgemeinerte Hyperkugeln. Für positve s feuert das Neuron im Äußeren und für negative s im Inneren dieser Kugeln. Hält man die Dimension des Raumes fest und läßt s wachsen, dann nähern sich die Entscheidungsflächen immer mehr verallgemeinerten Würfeln an; für m = 2 erhält man für große s annähernd ein Quadrat. g) Im stochastischen Fall haben wir wieder zwei Aktivierungszustände 0 und 1, aber die Funktion F bestimmt nur die Wahrscheinlichkeit des Eintretens eines der Zustände: Wahrscheinlichkeit( a(t+1) = 1) = F(t, a(t), net(t) ). Man kann das verfeinern, in dem man diese Wahrscheinlichkeit durch einen Parameter steuert den man variiert. So kann man etwa den Absolutbetrag der Aktivität im Laufe der Zeit stochastisch gegen 0 gehen lassen; diesen Vorgang bezeichnet man als "Abkühlung" ("Annealing"), eine Redeweise, die sich aus thermodynamischen Vorstellungen motiviert. Zusammenfassend wiederholen wir, daß die Aktivierungsregel insgesamt den Netzfluß steuert und daher für diesen Teil der Dynamik des Netzes verantwortlich ist.
5.7 Dynamische Regeln für
c(t)
Eine aus der Biologie herrührende Vorstellung sagt in Kurzform, daß die Speicherung des Aktivierungszustandes dem Kurzzeitgedächtnis und die des Verknüpfungszustandes dem Langzeitgedächtnis entspricht. Also: Kurzzeitgedächtnis: Netzfluß, Aktivierung Langzeitgedächtnis: Verknüpfungsmatrix c. Änderungen von c werden durch Funktionen oder Regeln beschrieben; dadurch wird der interessanteste Teil der Dynamik des Netzes gesteuert, nämlich die sogenannten Lernvorgänge. Eine andere Vorstellung aus der Regelungstechnik motiviert die Sprechweise "Fehlerkorrektur" und "Korrekturregel". Beiden Vorstellungsweisen ist gemeinsam, daß ein gewisses Verhalten erwünscht ist und daß das Netz in dieser Richtung optimiert werden soll. Es gibt viele ähnliche Probleme , z.B. eine Gerade so zu bestimmen, daß sie eine gegebene Menge von Punkten optimal approximiert. In Anlehnung an die Terminologie einer Regelsprache wie OPS5 gibt es für Regeln grundsätzlich drei Möglichkeiten : 1. Make
cn',n ( t+1 ) : Schaffe eine Verbindung von n' nach n.
42
43 2. Remove cn',n ( t+1 ) : Entferne eine Verbindung von n' nach n. 3. Modify c n',n ( t+1 ) : Modifiziere eine Verbindung von n' nach n. Da wir das Nichtvorhandensein einer Verbindung von n' nach n durch c n',n ( t ) = 0 ausdrücken können, ist eine Beschränkung auf die Modifikationsregel möglich. Die (sehr) allgemeine Form für die Änderung sieht so aus: ∆t cn',n = cn',n ( t+1 ) - cn',n ( t ) = G ( an (t ), Tn (t ) ) . H ( On' (t ), cn',n ( t ) ) Sprechweisen: Die Funktionen G und H heißen (par abuse de language) auch lokale synaptische Lernregeln. Die Funktion Tn(t) soll einen äußeren Einfluß (einen Lehrer oder korrigierenden Einfluß) darstellen und heißt Teaching-Input für n . Da man sich unter der Änderung eine Verbesserung vorstellt, sagt man auch, das Netz hat ∆ c in gewissem Sinne "gelernt" . Die Lernvorgänge sind ein zentrales Thema dieses Gebietes und werden gesondert behandelt. Man kann einen Lernvorgang auch als Rückkopplungseffekt auffassen und sich so "Lernen" als einen Regelungsprozeß vorstellen. Dies schafft eine direkte Verbindung zum wichtigsten Thema der Kybernetik. Der Teaching-Input kommt in dieser Vorstellung normalerweise so zustande:
Feedback
Rezeptoren
Neuronales
Effektoren
Netz
Ein Teaching - Input stellt somit einen äußeren "Lehrer" dar. Für den Fall der McCP-Neuronen sei noch auf eine Schwierigkeit hingewiesen. Es reicht nämlich hier anscheinend nicht aus, nur die Gewichte zu verändern, um bestimmte Lernerfolge zu erzielen. Möchte man etwa für die Eingabe (0,...,0) die Ausgabe 1 erzwingen, so ist das für keine Wahl der Gewichte möglich, man erhält stets nur 0. Erforderlich wäre hier also auch eine Adaption des Schwellwertes. In $6.2 werden wir sehen, wie man den Schwellwert unter die Gewichte subsumieren kann; es genügt dann in der Tat die Adaption der Gewichte.
5.8
Der stochastische Fall
Bisher waren alle Größen X wie Aktivitäten oder Verbindungen feste Werte und die Dynamik war durch einen deterministischen Prozeß gegeben. Im stochastischen Fall
43
44 treten Wahrscheinlichkeiten an die Stelle dieser Größen, deren Verteilungen bekannt sein können; auch für die Zustandsänderungen sind nur noch Wahrscheinlichkeiten bekannt. Dementsprechend liegt die zeitliche Verteilung von X(t) nur noch als ein stochastischer Prozeß vor. Die genauen Modellierungen hierfür können sehr unterschiedlich sein. Eine sehr allgemeine Vorstellung geht von festen Regeln für die Übergänge T bei den Aktivitäten oder den Verbindungen (mit X bezeichnet) aus, der Anfangszustand X0 sei ebenfalls fest aber die erste Eingabe x sei zufällig erfolgt. Der stochastische Prozeß genügt dann der Bedingung X(t+1) = T(X(t), x). Man interessiert sich dann natürlich für die Verteilung F dieses Prozesses, aus ihr lassen sich alle relevanten statistischen Größen bestimmen. Einige nähere Ausführungen hierzu findet man in [Ri-Ma-Sch 90].
5.9
Konvergenzbetrachtungen
Ein dynamisches System X(t), sei es nun eines für die Aktivierungszustände oder eines für die Verbindungsstärken, kann nach verschiedenen Begriffen konvergieren. Die Terminologie ist hier nicht ganz einheitlich, die wichtigsten Ausdrücke wollen wir vorläufig hier erklären. Die zeitabhängige Größe X soll dabei den Zustand vollständig beschreiben; i.a. wird X ein n-dimensionaler reeller Vektor sein. Es gelte dabei X(t+1) = f( X(t),t); häufig liegt aber keine explizite Abhängigkeit von t vor. Dies ist der zeitinvariante Fall, den wir jetzt immer voraussetzen wollen. 1) X ist ein Fixpunkt oder Gleichgewichtszustand, wenn für X = X(t) gilt X(t) = X(t+1). 2) X(t) ist schließlich konstant, wenn es ein t0 mit X(t0+1) = X(t0) gibt. Dann ist X(t) von t0 an konstant. 3) Ein Fixpunkt X ist ein Attraktor für eine Menge M von Zuständen, wenn für jedes Y M und jedes t0 gilt: Wenn Y(t0) = Y für ein t0, dann ist Y(t) schließlich im Zustand X konstant. Die maximale Menge M, für die X ein Attraktor ist, heißt der Anziehungsbereich von X. 4) Statistisches Gleichgewicht: Für die Größe X(t) ist eine Wahrscheinlichkeitsverteilung bekannt. X(t) ist in einem statistischem Gleichgewicht, wenn der Erwartungswert für eine Änderung von X(t) gleich 0 ist. In der Thermodynamik spricht man hier auch von einem thermischen Gleichgewicht. Eine genauere Erörterung dieser Sachverhalte wird in §7 vorgenommen.
§6 Lernmodelle Im weitesten Sinne soll hier unter "Lernen" ein Vorgang verstanden werden, der die Aktivierungs- oder Verknüpfungszustände verändert; im Normalfall wird darunter aber nur das letztere verstanden. Beim Lernen sind mehrere Akteure und Begriffe beteiligt: - Der Lernende: Das Netz. - Ein Lehrer: Er kann Lob und Tadel verteilen oder korrigierend eingreifen. Der Lehrer kann auch fehlen und z.B. durch einen internen Korrekturmechanismus ersetzt werden. - Ein Lernziel: Die erwünschte Verhaltensweise des Netzes. Auch sie kann fehlen, man läßt dann das Netz "ziellos" lernen. Gegebenenfalls muß das Lernziel auch nur approximativ erreicht werden, dann muß eine Genauigkeitsschranke vorgelegt werden.
44
45 - Eine Lernmethode: Sie besagt, wie sich die Lernvorgänge abspielen. Ein elementarer Lernschritt wird Lernregel genannt; diese werden dann nach einem bestimmten Mechanismus organisiert. Hier interessieren die Fragen nach Abbruchkriterien, Dauer der Lernvorgänge etc. - Beispiele: Wenn das Lernziel ein gewünschtes Ein- Ausgabeverhalten (also eine Funktion) ist, so sind bestimmte vorgelegte Ein-Ausgabepaare Lernbeispiele. Man kann sich hier die Frage nach der Anzahl der benötigten Beispiele stellen.
6.1 Einige grundlegende Lernregeln Die allgemeine Form einer Lernregel im letzten Abschnitt war ∆t cn',n = G ( an (t ), Tn (t ) ) . H ( On' (t ), cn',n ( t ) ). Sie ist eine (sehr weitgehende) Verallgemeinerung der klassischen Regel von Hebb (1949), die der Urvater (der eben vor den Verallgemeinerungen des PDP-Modells da war) aller dieser Lernregeln ist: ∆tcn',n = ∆cn',n(t) = η . an (t ) . On' (t ) Dabei ist η eine positive Konstante, die als Lernrate bezeichnet wird. Dieser Regel liegt die folgende Vorstellung zugrunde: Wenn beide Neuronen sehr aktiv waren und viel Input am Zielneuron ankommt, dann wird die Verbindung noch verstärkt. (Man könnte sagen : Training stärkt das Gehirn!). Aus biologischer Sicht ist zu vermerken, daß die Vorstellung, Synapsen würden überhaupt nach lokalen Regeln modifiziert, lange Zeit mehr Hoffnung als gesicherte Tatsache war. In letzter Zeit scheint sich dies jedoch zu bestätigen. Die meisten Lernregeln sind Spezialisierungen der Hebbregel oder Variationen davon. Wir geben ein Beispiel dafür, wie so etwas zustande kommen kann. Dazu betrachten wir McCP-Neuronen mit Aktivitätszuständen 0 und 1 und Gewichten 0, 1 (und evtl. -1). Eine Lernregel läßt sich durch folgende Tabelle aufschreiben: Zustand ai(t) des präsynaptisches Neurons
1
1
0
0
Zustand aj(t) des postsyaptischen Neurons
1
0
1
0
Änderung ∆cij(t) der Synapsenstärke
w1
w2
w3
w4
Die Hebbregel besagt bei Lernrate 1 gerade w = (w1,w2,w3, w4) = (1,0,0,0) oder auch ∆cij(t) = ai(t) · aj(t) Eine andere Regel ist die Hopfieldregel: w = (1, -1, -1, 1). Als Hebb-artige Regel schreibt sie sich in diesem Kontext als ∆cij(t) = (2ai(t) - 1)(2aj(t) - 1) Diese Regel besagt, daß eine Verstärkung bei gleicher und eine Abschwächung bei unterschiedlicher Aktivität auftritt. Hätten wir als Aktivierungszustände -1 und +1 gewählt (vgl. 1 von 4.2), so hätten wir auch dieselbe Situation wie bei der Hebbregel, ∆cij(t+1) wäre das Produkt aus prä- und postsynaptischer Aktivität. 45
46
Eine weitere Regel besagt, daß eine Verstärkung nur bei postsynaptischer Aktivität auftritt, d.h. w = (1, 0, 1, 0), d.h. ∆cij(t+1) = aj(t). Auf diese Regeln kommen wir in §9 (Mustererkennung) zurück. Die Regeln kamen bisher ohne den Teaching - Input aus. Der Prototyp einer Regel, wo er eine Rolle spielt ist die Deltaregel (auch: Widrow-Hoff-Regel oder ADALINE-Regel (von Adaptive Linear Neuron)) : ∆t cn',n = η . (Tn(t) - an(t) ) . On' (t ). Der Teaching-Input Tn stellt die erwünschte Aktivität (also inhaltlich das korrekte Ergebnis) dar, die Änderung der Gewichte ist proportional zur Abweichung von der Aktivität. Ist man also noch weit vom Ziel entfernt, macht man große Schritte, sie werden umso kleiner, je näher man dem Ziel ist. Der Teachinginput ist nur an den Ausgabeneuronen definiert. Wir wollen die Deltaregel jetzt etwas näher motivieren. Dazu setzen wir folgende vereinfachende Annahmen voraus: 1) Es liegt der lineare Fall vor. 2) Es gibt genau eine Eingabeschicht und eine Ausgabeschicht und keine verborgenen Neuronen. 3) Es sei weiter On(t) = an(t). Die Bedingung 3) hat mehr terminologischen Charakter. Die anderen beiden Bedingungen werden in 6.3 verallgemeinert. Ziel ist es nun nicht, die Aktivität eines bestimmten Neurons richtig zu adjustieren, sondern dies global zu bewerkstelligen. Als Maß für den globalen Fehler E bietet sich die Summe der lokalen Fehlerquadrate an: E = 1/2. \I\su(n=1;N;) (Tn(t) - an(t) )2 , wobei der Faktor 1/2 mehr technische Bedeutung hat. (Hier liegt ein glücklicher Umstand der Sprachen vor; im Moment steht E für "Error", später werden wir E auch als "Energie" oder "Energy" deuten.) Denken wir uns die Neuronen in einer Ebene angeordnet, so stellt E eine Fläche über dieser Ebene dar, in der es ein Minimum zu finden gilt. Wir wollen zeigen, daß die Deltaregel gerade die Gradientenmethode, also die Methode des steilsten Abstieges auf dieser Fläche ist. Zur Anwendbarkeit dieser Methode muß die Aktivierungsfunktion differenzierbar sein, was bei einem linearen Neuron der Fall ist, aber nicht bei einem Schwellwertneuron; in den Verallgemeinerungen wird später statt der Schwelle eine Sigmoidfunktion genommen. Für die Änderung von E in Abhängigkeit von cn,n' ergibt sich zunächst: ∴φ(∂E;∂cn',n) = \f(∂E;∂an). \f(∂an;∂cn',n) Weiter gilt \f(∂E;∂an) = - (Tn - an) Jedes einzelne Neuron geht also nur linear in das Fehlermaß ein. Aus der Linearität an ( t+1 ) = Σ an' (t ) . cn',n (t) schließen wir auf ∂an;∂cn' = an' n
46
47 ∂E;∂cn' Somit ergibt sich schließlich = (Tn - an) . an'. Das ist aber wie erforderlich n proportional zu ∆ cn',n und somit zeigt ∆ cn',n in die Antigradientenrichtung, also die Richtung des steilsten Abstieges. Hier wurde eine Lernregel in Zusammenhang mit einer Fehlerminimierung, also einer Optimierung gebracht. Diese Beziehung ist nicht zufällig, sie spielt vielmehr bei Lernverfahren eine zentrale Rolle und wir werden darauf noch zurückkommen. Eine weitere Variation der Lernregeln wird später ihren Sinn durch das "Wettbewerbslernen" bekommen: Grossbergregel: ∆t cn',n = η . an(t) . ( On' (t ) - cn',n(t ) ) Diese Regel ändert nur bei postsynaptischen Aktivitäten. Bei der Stärke der Änderung werden das Ausgabesignal des präsynaptischen Neurons und die Verbindungsstärke verglichen; ein Teaching-Input kommt nicht vor. Die zugrunde liegende Vorstellung ist, daß kleine positive Änderungen dann stattfinden, wenn Verbindungstärken und Ausgabe beinahe gleich sind. Diese Idee wird beim Kohonen-Netz wieder aufgegriffen. Lernen von Zuständen im linearen Fall: Hier stellen wir uns zum einen auf einen sehr allgemeinen Standpunkt. Es sollen sowohl die Eingaben x wie auch die Zustände c n-dimensionale reelle Vektoren sein. Die Ausgaben sollen reelle Zahlen y sein, die Eingabe soll aber nicht der Nullvektor sein. Zur Zeit t soll auf der anderen Seite die Ausgabe durch das Skalarprodukt y(t) = c(t). x(t), 1 ≤ i ≤ n, gegeben sein. Es liegt also der lineare Fall und nicht ein Schwellwertneuron vor. Ein Beispiel für diese Situation ist einfach dadurch gegeben, daß man ein Neuron mit n Eingaben hat, das eine lineare Aktivierungsregel besitzt:
.. .
lineare Ausgabe
Der Zustandsvektor ist dann der Gewichtsvektor, er soll sich im Laufe des Lernprozesses verbessern. Die Verbesserung bezieht sich auf eine von außen vorgelegte erwünschte ("korrekt" genannte) Ausgabe; wir haben es daher wieder mit einem Teaching - Input, also mit einem Lernen mit Lehrer zu tun. Es wird dabei nicht verlangt, daß die richtige Antwort genau getroffen wird, sondern es wird eine gewisse Fehlerabweichung ohne Strafe akzeptiert. Wenn zur Zeit t die erwünschte korrekte Ausgabe u(t) ist, dann wird der relative Fehler e(t) durch e(t) = \f(u(t)- y(t);|| u(t) || ) definiert. Die Lernregel (die im Verhältnis zu anderen etwas raffinierter ist) ändert den Zustand wie folgt: Lernregel:
47
48 c(t+1) =
\B\LC\{ ( \A\AL(c(t), wenn | e (t) | ≤ θ;c(t) + e(t).(1 - \f(θ; | e(t) |) ). \f(x(t);|| x(t) ||), wenn | e(t) | ≥ θ))
Dabei ist θ eine Schranke für die Fehler, die noch toleriert werden. Die Regel läßt sich so interpretieren: c(t+1) ist der eindeutig bestimmte Vektor c so daß unter der Nebenbedingung \f(|u(t) - c . x(t)|;|| x(t) ||) ≤ θ der Wert || c - c(t) || minimal wird. Wir setzen v(t) = \f(u(t) - c . x(t);|| x(t) ||) sowie für das Fehlermaß E eines Zustandes E(c) = sup(|v(t)| t = 0,1,...) = sup( \f(|u(t) - c . x(t)|;|| x(t) ||) |t = 0,1...), an. Dieses Fehlermaß macht eine globale Aussage über die relativen Fehler zu allen Zeitpunkten. Es hängt vom Anfangszustand c(0) ab, der im folgenden beliebig gewählt wird. Für die Regel gilt folgender Satz, der eine nachträgliche Motivation für sie liefert: Satz: Für jeden Zustand c gilt: (i) Wenn E(c) ≤ θ, dann ist \I\su(e(t)| > θ;;) (|e(t)| - θ )2 ≤ ||c - c(0)||2 ; (ii) Wenn E(c) < θ, dann gilt \I\su(e(t)| > θ;;) (|e(t)| - θ ) ≤ \f(||c - c(0)||2 - \I\su(|e(t)| > θ;;) (|e(t)| - θ )2;2(θ - E(c))). Beweis: Wir setzen x0(t) = \f(x(t); ||x(t)|| ), s(t) = ||c - c(t)||2 , σ(t) = 1 - \f(θ; |e(t)| ) sowie wie oben v(t) = \f((u(t) - c . x(t)) ; ||x(t)||) . Daraus folgen dann |x0(t)| = 1, v(t) ≤ E(c) und (c - c(t)) . x0(t) = \f(c· x(t) - c(t) . x(t);|| x(t) ||) = e(t) - v(t). Die Lernregel lautet jetzt für | e(t) | ≥ θ : c(t+1) = c(t) + e(t) · s(t) · x0(t) Es sei nun |e(t)| > θ gegeben, wir erhalten dann: s(t+1) = || (c - c(t)) - e(t) σ(t) x0(t)||2 (wegen der Lernregel), = s(t) - 2e(t)σ(t)((x0(t) . (c - c(t)) + σ2(t)|e(t)|2 = s(t) - 2e(t)σ(t)(e(t) - v(t)) + σ2(t)|e(t)|2 (wegen x0(t) = 1) = s(t) - σ(t) (2 - σ(t))|e(t)|2 + 2σ(t)e(t)v(t) ≤ s(t) - σ(t)(2 - σ(t))e(t)2 + 2σ(t)|e(t)|E(c) = s(t) - σ(t)|e(t)|((2 - σ(t))|e(t)| - 2E(c)) . Daraus folgt dann durch Induktion s(t+1) ≤ s(0) - \I\su(|e(k)|>θ, 0≤k≤t; ; σ(k)|e(k)|[(2 - σ(k))|e(k)| - 2E(c))] Weil nun stets s(t + 1) ≥ 0 ist, haben wir durch ersetzen von σ(t) und ausmultiplizieren \I\su(|e(k)|>θ; ; σ(k)|e(k)|[(2 - σ(k))|e(k)| - 2E(c))] ≤ s(0). Das ist aber äquivalent zu \I\su(|e(t)|>θ; ;(|e(t)| - θ)(|e(t)| + θ - 2E(c)) ≤ ||c - c(0)||2 .)
48
49 Daraus folgen aber sofort die Behauptungen (i) und (ii) des Satzes. Er besagt eigentlich folgendes: Wenn es einen (normalerweise unbekannten) Zustand z gibt, der für alle Eingaben x(t), t = 0,1,... , eine Ausgabe liefert, die bezüglich der Toleranzgrenze akzeptabel (bezüglich θ) ist, dann liefern die gelernten Zustände Ausgaben, für die die nicht akzeptablen Fehler jedenfalls abgeschätzt werden können. Die Abschätzung ist erwartungsgemäß umso besser, je näher der Anfangszustand z(0) an z liegt. Der vorgelegte Ansatz ist trotz seiner Einschränkungen von einem grundsätzlichen Interesse. Was passiert hier? Man macht eine Voraussage und lernt von einem Fehlverhalten. Allgemein sind solche Voraussagen in die Zukunft Gegenstand der Zeitreihenanalyse. Für einfache Funktionen, z.B. Polynome beschränkten Grades, lassen sich Voraussagen exakt treffen, weil solche Funktionen bestimmten Differenzengleichungen genügen; kennt man z.B. bei einem Polynom n-ten Grades die Funktionswerte an n+1 Argumenten, so kennt man auch den gesamten Funktionsverlauf. Könnte nicht das Gehirn auch solche Verfahren gelernt haben? Weitere Überlegungen dieser Art findet man in [My 86].
49
50
6.2 Das Perceptron und sein Konvergenztheorem Bei der Betrachtung der neuronalen Dynamik in McCP - Netzen in 4.6 hatten wir uns für das zeitliche Verhalten des Aktivierungszustandes interessiert. Eine Menge von Neuronen hieß invariant, wenn im nächsten Zeittakt genau dieselben Neuronen aktiv waren. Bei der zeitlichen Änderung der Verknüpfungen stellen wir genau dieselbe Frage, nämlich nach dem asymptotischen Verhalten. Die Verknüpfungsmatrix kann schließlich konstant werden, konvergieren, in einen statistischen Gleichgewichtszustand geraten, oszillieren oder sich beliebig unregelmäßig verhalten. Das Perceptron ist ein berühmtes Beispiel, bei dem der erste Fall vorliegt. Inhaltlich kann man sich das Perceptron als eine Maschine zur Mustererkennung vorstellen, die mittels eines Trainingsprogramms lernt, im Laufe der Zeit gewisse Muster von anderen zu unterscheiden (z.B. Ziffern von Buchstaben). Ein wesentliches Strukturelement des Perceptrons ist, daß es keine verborgenen Neuronen gibt. Falls man nur ja/nein Antworten wünscht, kommt man mit einer Antworteinheit aus.
Schema:
Sensoreinheiten
Assoziations-
Antwort-
(Retina)
einheiten
einheiten
Die Antworteinheiten klassifizieren das Eingabebild.
Man sollte sich auch vorstellen, daß die Muster in einer Vorverarbeitung in ndimensionale reelle Vektoren transformiert werden. Dabei sind endlich viele Muster als Eingabe vorgesehen (andere werden dem Netz nicht vorgelegt), und diese zerfallen in zwei Klassen. Ziel ist es, das Netz diese Klassifikation lernen zu lassen, was natürlich nicht immer geht. Die Assoziationseinheiten stellen die Eingaben an die Antworteinheiten bereit, letztere sind McC-Neuronen. Jedes dieser Neuronen ist dabei für eine bestimmte Klassifikationsaufgabe zuständig; wir beschränken uns daher ab jetzt auf eine einzige Antworteinheit. Wir verwenden die Hyperebenensicht aus 4.3. Für Eingabevektoren x = ( x1,..., xn ) und Gewichte v = ( w1,..., wn ) sei wieder x . w = x1. w1 + ... + xn. wn das Skalarprodukt. Wie in 4.3 beschrieben verwenden wir auch hier angereicherte Vektoren, die um eine Stelle verlängert sind um den Schwellwert mit aufzunehmen: y = ( x1,..., x n, 1 ) , v = (w1,...w n, - θ ) 50
51
Gegeben sind zwei solche Mengen Y 1 und Y2 von Eingabevektoren. Die Voraussetzung ist, daß diese beiden Mengen linear trennbar sind. Es ist dann eine trennende lineare Funktion g (x) = x1w1 + ... + xnwn + wn+1, d.h. der zugehörige Vektor w effektiv zu finden. Das Perceptron benutzt (in einer einfachen Weise) eine Form der Deltaregel, auch wenn die hier gegebene Darstellung formal nicht genau diese Form hat. Wir haben gewöhnliche Schwellwertneuronen, deren Zustände 0 oder 1 sein können. Wir nehmen noch eine technische Vereinfachung vor: Y2' = { -y I y ∈ Y2 } Y = Y1 ∪ Y2' Hierdurch wird erreicht, daß alle Eingabevektoren in einer Halbebene zu liegen haben. Eine hinreichende Bedingung für ein trennendes w ist dann: w . y > 0 für y ∈ Y. Sie ist deshalb nicht notwendig, weil es ja auch erlaubt wäre, wenn die Ebene einen der Eingabevektoren enthielte. Dann benötigen wir noch zwei Begriffe für gegebenes y : a) Die Lernregel (nach Rosenblatt) ist : w(t+1) = \B\LC\{(\A\AL(w(t) für w . y > 0;w(t) + y für w . y≤ 0)) Die Regel bewirkt für das fragliche y einen "Schritt in die richtige Richtung". Unklar ist bisher noch, ob der nächste Schritt für ein weiteres y' bezüglich dieses y nicht wieder in eine falsche Richtung leitet und ob sich eventuell ein solcher Prozess unendlich lange fortsetzen kann. Der Vergleich w . y > 0 bzw. w . y≤ 0 ist inhaltlich genau die Stelle, wo ein Lehrer von außen eingreift. b) Eine Trainingsfolge T(Y) ist eine unendliche Folge von Vektoren aus Y, in der jedes Element aus Y unendlich oft vorkommt. Es sei T(Y) = ( y0, y1, ....) eine solche Trainingsfolge. Dadurch wird eine Folge w(k) von Gewichtsvektoren wie folgt erklärt: w(0) : Nullvektor (0,...,0) ; w(k+1) ensteht aus w(k) und yk nach der Rosenblattregel. Die Folge der w(k) wird i.a. zumindest zu Anfang nicht konstant sein. Es sei w(kj) die Teilfolge derjenigen Vektoren, an denen Änderungen stattfinden; wir setzen wj = w(kj); wir setzen weiter zj = ykj Perceptron - Konvergenz - Theorem: Die Folge der wj ist endlich.
51
52 Bemerkung: Wenn die Folge (wj) endlich ist, so kann man das dadurch feststellen, daß sich die Gewichte nicht mehr ändern, wenn alle Vektoren aus Y einmal in der Trainingsfolge erschienen sind. In diesem Sinne hat das Perceptron zu einem gewissen Zeitpunkt ein linear trennendes w gelernt und "weiß" dies auch. Beweis: Nach Definition ist wj . zj ≤ 0 und wj+1 = wj +zj für alle j außer eventuell dem letzten j der Folge. Daraus ergibt sich wj+1 = z1 + z2 + ... zj Nach Annahme existiert ein linear trennendes w, d.h. es gilt y . w ≥ 0 für alle y ∈ Y. Wir setzen a = min ( y. w | y ∈ Y ); a wird durch ein y definiert, was am nächsten an der trennenden Hyperebene liegt (man beachte, daß a≠0 ist). Daraus erhalten wir wj+1 . w ≥ ( z1 + ... zj) . w ≥ j.a Die allgemeine Cauchy - Ungleichung der linearen Algebra ist . |wj+1 |2 . |w|2 ≥ ( wj+1. w) 2, ihre Anwendung ergibt |wj+1|2 ≥ \f(j2.a2 ; |w|2). Die Quadrate der Längen der Gewichtsvektoren wachsen also mindestens quadratisch. Auf der anderen Seite haben wir aber wegen 2wj. zj ≤ 0 |wj+1 |2 = |wj |2 + 2wj. zj + | zj| 2 ≤ |wj |2 + | zj| 2 ≤ |wj-1 |2 + | zj-1| 2 + | zj| 2 . Iteration ergibt
|wj+1 |2 ≤ j M wobei M = max (|y|2 | y ∈ Y ). Das besagt aber, daß die Quadrate der Längen der Gewichtsvektoren nur linear wachsen. Insbesondere erhalten wir \f(j2a2 ; |w|2) ≤ |wj+1 |2 ≤ j M und somit j < |w|2 . \f(M; a2). Eine unendliche Folge wi kann also nicht stattfinden und wir können ihre Länge sogar in Abhängigkeit von w abschätzen, womit der Satz bewiesen ist. Der Beweis gibt Anlaß zu einer Komplexitätsüberlegung. Nehmen wir wir an, daß in der Trainingsfolge alle Elemente von Y jeweils stets einmal durchlaufen werden. Weil dann im schlimmsten Fall eine Gewichtsänderung erst nach |Y| - 1 Schritten stattfinden kann, ist eine obere Schranke für die Terminierung des Lernprozesses (|Y| - 1).. |w| 2. \f(M; a2), was die Größenordnung O(\f(1;a2)) hat. Vom Standpunkt des Lernens aus gesehen handelt es sich um ein Lernen aus Beispielen. Daher liegt die Frage nahe, ob man nicht zur Effizienzsteigerung einige Beipiele weglassen könnte, die zum Lernerfolg nichts beitragen. Man könnte dabei etwa an eine Teilmenge der Eingabe denken, deren Elemente alle in derselben Klasse liegen und in deren konvexer Hülle auch wieder nur Eingaben dieser Klasse liegen; hier darf man ohne Einbuße alle Eingaben weglassen, die im Inneren dieser Hülle liegen. Leider sind hiermit aber nicht tolerierbar aufwendige Berechnungen verbunden wie etwa die Berechnung der konvexen Hülle im n-dimensionalen Raum. Abschließend sei bemerkt, daß das Perceptron verschiedentlich verallgemeinert und erweitert worden ist. Insbesondere sind verborgene Neuronen eingeführt worden, wenn man auch stets bei den Feedforward-Netzen geblieben ist.
52
53
6.3
Backpropagation
Die Lernmethode des Perceptrons ist nicht ohne weiteres auf verborgene Neuronen zu übertragen, weil diese auch für den Lehrer unsichtbar sind. Um auch unsichtbare Verbindungen korrigieren zu können, liegt es nahe, den an der Ausgabe festgestellten Fehler ins Netz hinein zurückzuverfolgen (daher der Name "Backpropagation") :
Ausgabeneuron hier wird der Fehler festgestellt
Netzfluß
Fehlerrückverfolgung
Der Netzfluß in diesem Modell wird durch die Deltaregel gesteuert. Es ist hingegen gar nicht klar, wie die Korrekturen an den verborgenen Neuronen vorzunehmen sind. Gegenüber 6.1 werden jetzt folgende Verallgemeinerungen vorgenommen: 1) Für die Aktivierungsregel wird ein spezieller quasilinearer Fall angenommen, d.h. aj(t+1) = F( \I\su(i; ; ai(t) . cij(t)) ), wobei F eine Sigmoidfunktion der Form F(x) = \f(1;1 + exp(-(\f(x-θ;T)))) ist. T bestimmt wie erwähnt die Steilheit der Kurve, während θ den Wendepunkt verschiebt. 2) Das Netz ist in einzelnen Ebenen organisiert. Verbindungen können jeweils zwischen Neuronen einer Ebene und denen der nächst höheren Ebene existieren und zwar nur in dieser Richtung, jedes Neuron ist mit jedem Neuron der nächst höheren Ebene verbunden. Wie in 4.1 eingeführt haben wir es mit einem vollständig vernetzten Feedforward-Netz zu tun. Die Backpropagation - Methode läßt sich in zwei Phasen aufspalten. - Vorwärtsphase: Die Netzeingabe durchläuft das Netz, ändert die Aktivitäten und produziert schließlich eine Netzausgabe. - Rückwärtsphase: Die Differenz zwischen der erzeugten und der erwünschten Ausgabe wird erzeugt und durchläuft nun das Netz in umgekehrter Richtung. In der Vorwärtsphase wird die Eingabe auf die übliche Weise in die Ausgabe überführt. An einem Ausgabeneuron n wird die Ausgabe dann mit dem geforderten Teachinginput Tn verglichen; der Teachinginput ist auch nur an den Ausgabeneuronen definiert. Die Rückwärtsphase soll nun die Gewichte zwischen verborgenen Neuronen letztlich so verändern, daß an der Ausgabe der Fehler minimiert wird. Das ist nicht vollständig trivial, denn nur an den Ausgabeneuronen ist der Teachinginput definiert und deshalb die
53
54 Abhängigkeit des Fehlers auf einfache Weise gegeben. Die Realisierung der Rückwärtsphase findet auf folgende Weise statt: Rückwärtsphase des Backpropagation-Algorithmus: Der Nettoinput am Neuron j ist netj = \I\su(i; ;cij . ai) und der Teachinginput ist Tj. Die Änderung der Gewichte erfolgt rekursiv über die einzelnen Schichten von der Ausgabeschicht zurück zur Eingabeschicht. Die Änderung wird erklärt als ∆cij( t ) = η . δj . ai ( t ) . Dabei ist der Faktor η wieder die Lernrate. Für δj werden zwei Fälle unterschieden: 1) Neuron j ist in der Ausgabeschicht: δj = (Tj - aj (t ) ) . F'( netj ); dies ist der Rekursionsanfang. 2) Neuron j ist ein verborgenes Neuron: δj = (\I\su(k; ;δk . cjk)) . F'( netj ). Hier erfolgt der Rekursionsschritt; das Neuron j ist aus einer Schicht, die Verbindungen zu Neuronen k hat, für die die δk sind bereits bekannt sind. F' ist die Ableitung von F. Im linearen Fall ist F die Identität F(x) = x, also ist F'(x) = 1. Es trifft dann nur Fall 1) zu und ergibt dieselbe Regel wie in 6.1. Wenn F die Sigmoidfunktion F(x) = \f(1;1 + e-(\f(x-θ;T))) ist, dann ist F'(x) = -1·F2(x)·(-1/T)·e-(\f(x-θ;T)) = (1/T)·F(x)·(1-F(x)), wie man leicht nachrechnet. Diese Beziehung erlaubt eine effiziente Implementierung der Ableitung F'(x), wenn F(x) bereits (aus der Vorwärtsphase) bekannt ist. Die Ableitung ist ´(für h = 0) in der Nähe des Nullpunktes am größten, was auch anschaulich klar ist. Für kleine T sieht F'(x) so aus: y
x
Wenn T gegen Null geht, ist das natürlich keine Funktion mehr; es handelt sich dann um eine sog. Distribution (genannt "δ - Funktion"), nicht zu verwechseln mit unserem Fehlersignal, das die gleiche Bezeichnung hat), die noch gewisse Eigenschaften als
54
55 Integraloperator hat, z.B. \I(-∞;+∞;δ(x)g(x)dx) = g(0) für jede stetige Funktion g(x). Anschaulich gesehen handelt es sich um einen Impuls begrenzter Größe von "unendlich kleiner Dauer". Genau wie bei der Diskussion der Deltaregel in 6.1 wollen wir uns auch hier davon überzeugen, daß sie die (verallgemeinerte) Methode des steilsten Abstieges auf der globalen Fehlerfläche E implementiert. Dabei wählt man die Änderung aus, die das Fehlermaß am meisten verringert. Wir gehen genau wie in 6.1 vor. Es gilt E = 1/2. \I\su(n=1;N;) (Tn(t) - an(t) )2 , wobei über alle Ausgabeneuronen n summiert wird. Wir betrachten wie früher die partiellen Ableitungen von E: ∴φ(∂E;∂cij) = \f(∂E;∂netj) \f(∂netj;∂cij) Der zweite Faktor berechnet sich zu Nun erklären wir
\f(∂netj;∂cij) = \f(∂;∂cij) . \I\su(k; ;ckj . ak) = ai . δ'j := - \f(∂E;∂netj)
und erhalten − ∴φ(∂E;∂cij) = δ'j . ai . Um die Gradientenmethode zu implementieren muß also ∆cij( t ) = η . δ'j . ai ( t ) gesetzt werden. Wir müssen uns nur noch davon überzeugen, daß die getroffene Wahl von δ'j mit der von δ j des Algorithmus gleich ist. Dazu wenden wir wieder die Kettenregel für partielle Ableitungen an: δ'j = - \f(∂E;∂netj) = - \f( ∂E;∂aj) . \f(∂aj;∂netj) = - \f(∂E;∂aj) . F'( netj ). Jetzt kommt die Fallunterscheidung: 1) Bei j handelt es sich um ein Ausgabeneuron: \f(∂E;∂aj) = - (Tj - aj ), es gilt also δ'j = δj . 2) Neuron j ist verborgen: \f(∂E;∂aj) = \I\su(k; ;\f(∂E;∂netk) . \f(∂netk;∂aj)) = \I\su(k; ;\f(∂E;∂netk) .\f(∂;∂aj)) \I\su(i; ;cikai) = \I\su(k; ;\f(∂E;∂netk) . cjk )= - \I\su(k; ;δkcjk); die letzte Gleichung gilt, weil wir beim Rekursionsschritt bereits δk = δ'k = - \f(∂E;∂netk) für die Neuronen k voraussetzen dürfen. Daraus folgt aber die Behauptung auch für den Rekursionsschritt. Die Berechnungskomplexität ist für die Vorwärts- und die Rückwärtsphase im wesentlichen die gleiche, was auch an der speziellen Form der Ableitung von F liegt. Wir vermerken noch, daß die obigen Überlegungen formelmäßig aber nicht ausnutzten, daß es
55
56 sich bei F um eine Sigmoidfunktion handelte sondern nur ihre stetige Differenzierbarkeit verwendeten. Es ist nicht ganz einfach, hier Konvergenzbetrachtungen anzustellen; man kann verschiedene Parameter eingehen lassen und verschiedene Aspekte betrachten. Einen einfachen Fall wollen wir uns anschauen. Das Netz möge n Eingabe- und ein Ausgabeneuron aber keine verborgenen Neuronen haben; wir können deshalb auf den Index j verzichten, der Eingabevektor sei x und der Gewichtsvektor c. Die Aktivierungsregel sei durch eine Sigmoidfunktion mit h = 0 gegeben. Wir stellen uns vor, daß eine Eingabe wiederholt eingegeben wird und nehmen eine differenzierbare Abhängigkeit aller interessierenden Größen von der Zeit t an. Für die Aktivierung a = aj erhalten wir: \f(da;dt) = \f(d;dt)(F(c·x) = F'(net)·\f(dc;dt)··x; einsetzen von \f(dc;dt)· = η . ( \f(∂E;∂net))·F'(net)·x ergibt \f(da;dt) = - η· \f(∂E;∂net) ·(F'(net))2 · x2. Nun setzen wir z = a - T und erhalten für den Fehler die Proportionalität E ~ z2.Nähern wir z durch eine linearisierte Schwelle an, dann gilt F'(net) ~ |z| für kleine z und wir erhalten \f(dz;dt) ~ z3; eine Integration führt auf z ~ t-(1/2), woraus sich schließlich E ~1/t ergibt. Diese Argumentation läßt sich auf den Falle des Lernens mehrerer Eingabemuster erweitern; auch im Falle verborgener Neuronen ergeben sich ähnliche Resultate, vgl.[TeHe-Ah 89]. Wir ergänzen noch einige praktische Bemerkungen. Weil man in jedem Schritt des Algorithmus den Fehler optimal verringert, approximiert bei stetiger Verkleinerung der Lernrate stets ein Minimum, das allerdings i.A. nur ein lokales und kein globales sein wird. Man kann versuchen, ein globales oder wenigstens ein "gutes" Minimum durch geschickte Anfangswerte zu erreichen, aber dem steht entgegen, daß man die Fehlerfunktion E schlecht explizit in den Griff bekommen kann. Die Idee des Gradientenabstieges kann natürlich auch auf andere Funktionen als die quadratische Fehlerabweichung E angewendet werden. Die Backpropagationmethode erbt von dieser allgemeinen Vorgehensweise der Optimierung ihre Vor- und Nachteile. Zu den letzteren gehört vor allem die langsame Konvergenzgeschwindigkeit. Es gibt nun sehr viele Möglichkeiten, diese praktisch zu verbessern. Dazu gehören vor allem solche, die auch zweite Ableitungen von E mit berücksichtigen; ihre Analyse ist mathematisch teilweise nicht ohne Aufwand. Eine ziemliche einfache Methode hat in der Fehlerkorrekturfomel ein sog. "Moment". Die modifizierte Deltaregel liest sich dann so: ∆cij( t ) = η . δj . ai ( t ) + α . ∆cij (t - 1). Der Sinn dieser Regel ist, bei oszillierenden Vorzeichen von ∆cij zu vermeiden, daß man um ein Minimum herumpendelt. Das Moment bewirkt, daß jeder Schritt dadurch modifiziert wird, daß noch ein Bruchteil ( 0 < α < 1 ) der vorherigen Gewichtsänderung addiert wird. Gehen beide Änderungen in dieselbe Richtung, werden die Schrittweiten dadurch etwas größer, gehen sie in die entgegengesetzte Richtung, wird die zweite Schrittweite etwas kleiner. Wie sich das beschleunigend auf die Konvergenz auswirken kann, macht folgendes Beispiel klar :
56
57
E(c)
c c(0) c(2) c(2')
c(1)
Ausgehend von c(o) möge der nächste Wert c(1) auf der anderen Seite des Tales der EFunktion liegen. Ohne das Moment wäre der nächste Wert c(2), mit Moment erhält man den günstigeren Wert c(2'). Als Preis für die Konvergenzbeschleunigung zahlt man den erhöhten Aufwand, der darin besteht, daß man sich die letzte Änderung ∆c(t-1) merken muß. Das Verhalten des Backpropagationalgorithmus hängt natürlich von den initialen Gewichten ab. Dabei sind vor allem zwei Punkte stark zu beachten: 1) Neuronen mit gleicher Aktivierungsfunktion, die mit den gleichen Neuronen verbunden sind, sollen nicht die gleichen initialen Gewichte haben. Sonst würden sie nämlich stets gleich aktiviert, würden die gleichen Fehlermeldungen geben und erhielten die gleichen Gewichtsänderungen. 2) Wenn eine Sigmoidfunktion vorliegt, sollten die Gewichte mit kleinen Gewichten initialisiert werden. Dadurch liegt am Anfang der Nettoinput nahe bei Null, wo die Ableitung der Sigmoidfunktion groß ist. Dadurch sind relativ große Sprünge bei den Gewichtsänderungen möglich, was zu Anfang bei der Suche nach einem Optimum von Vorteil ist. Die Wahl des Parameters h bedeutet nur eine Translation und ist für das Lernverhalten uninteresseant. Eine weitere natürliche Frage in diesem Zusammenhang ist aber, ob der Parameter T in der Sigmoidfunktion das Lernverhalten prinzipiell beeinflußt. Dies ist nicht der Fall. Um dies ein zusehen, bezeichne FT die Abhängkeit von T und es sei F(x) = F1(x); wir vergleichen also beliebige Sigmoidfunktionen mit derjenigen mit T = 1. Es sei ein Neuron j fest gegeben. Für j ändern wir die eingehenden Kanten zu cijT := T · cij und bestimmen ferner eine neue Lernrate ηΤ := T2 · η ; netjT berechne sich mittels der cijT und das Fehlersignal für das Neuron j im Backpropagationalgorithmus sei entsprechend mit djT bezeichnet, woraus sich die Gewichtsänderungen DTcij ergeben. Satz: Es gilt: (i) F(netj) = FT(netjT) (ii) F'(netj) = T · (FT)'(netjT) (iii) δj = T · δjT (iv) δj · cij = δTj · cTij (v) T ·∆cij = ∆Tcij.
57
58 Beweis: (i) folgt aus F(netj) = \f(1;1 + e-( \I\su(i; ;cij . ai))) = FT(netjT). \I\su(i; ;cijT . ai);T)))
= \f(1;1 + e-(\f(
Für (ii) verwenden wir die Formel (FT)'(x) = (1/T)·FT(x)·(1-FT(x)) und erhalten mit (i) die Behauptung. (iii)Weiter oben haben wir allgemein δj = - \f(∂E;∂aj) . F'( netj ) abgeleitet . Da wir für unser Neuron nur die Gewichte der eingehenden Kanten geändert haben, aber der zurückpropagierte Fehler (- \f(∂E;∂aj) ) nur von den ausgehenden Kanten abhängt ( \f(∂E;∂aj) = - (Tj - aj ) bzw. \f(∂E;∂aj) = - \I\su(k; ;δkcjk)), ist dieser Term unabhängig von den Änderungen in T. Damit liefert (ii) die Behauptung. (iv) folgt aus (iii) und cijT = T · cij . (v) Es gilt : ∆cij( t ) = η . δj . ai ( t ) = η . δΤj . T · ai ( t ) = (ηΤ . δΤj . ai ( t ))·1/T = (1/T) · ∆Τcij( t ). Damit ist der Satz bewiesen. Dieser Satz besagt, daß das Lernverhalten, d.h. das Verhalten des Backpropagationalgorithmus, in einem prinzipiellen Sinne von dem Parameter T unabhängig ist, weil man es bis auf einen konstanten Faktor auf den Fall T = 1 zurückführen kann. Der Sinn dieses Parameters ist auch ein ganz anderer, die Steilheit der Kurve bewirkt mehr und mehr die Annäherung an die Schwellwertfunktion, die gewissermaßen keine "Unschärfe" mehr in der Ausgabe hat. Interpretiert man die Sigmoidfunktion als eine Wahrscheinlichkeit für die Aktivität, so nähert man sich dem deterministischen Fall an. Darauf kommen wir noch im Zusammenhang mit der Boltzmannmaschine zurück. Numerisch wirkt sich der Parameter T aber auch beim Lernen schon aus, weil er bei der Umrechnung in die Lernrate η eingeht. Diese wurde hier nicht erörtert; sie spielt aber für die Konvergenzgeschwindigkeit eine nicht unbeträchtliche Rolle. Die Lernrate spielt im Gebirge der Energie- oder Errorfunktion die Rolle einer Kontrolle der Schrittweite. Bei großer Schrittweite kann man Optima leicht durch "Überspringen" verfehlen. Eine gewisse Beeinflussung der Schrittweite brachte schon das Moment. Der Parameter θ, der den Wendepunkt der Sigmoidfunktion verschiebt (also gewissermaßen eine Phasenverschiebung ist) kann ebenfalls zu Optimierungszwecken eingesetzt werden.
6.4 Wettbewerbslernen Ein Vorläufer des Wettbewerbslernen sind die Lernmatrizen von Steinbuch. Es soll gelernt werden, Eingabevektoren einer bestimmten Klasse zuzuordnen; die Anzahl der Klassen ist fest. Die Lernmatrix c = (cij) ( die eine Gewichtsmatrix ist) ist mit den Komponenten i der Eingabevektoren und den Klassen j indiziert. Nach Eingabe von a bestimmt zunächst ein äußerer Lehrer die zugehörige Klasse j(a). Anschließend wird cij(a) um einen bestimmten festen Betrag x erhöht (bzw. erniedrigt), wenn aj(a) = 1 (bzw. wenn aj(a) = 0) ist. Die cij mit j ≠ j(a) bleiben unverändert. Nach Beendigung der Lernphase wird bei Eingabe eines Vektors a diejenige Klasse j ausgegeben, deren Gewichtsvektor ( cij ) zu a den geringsten Abstand a hat. Denkt man sich die Klassen j durch Ausgabeneuronen realisiert, dann "gewinnt" (durch Entscheidung des Lehrers) in der Lernphase stets ein Neuron; die Gewichte seiner aktiven Eingabeleitungen werden verstärkt, die seiner passiven Eingabeleitungen werden vermindert.
58
59 Würde dasselbe Muster nocheinmal eingegeben, würde auch dasselbe Neuron wieder gewinnen, denn wir haben stets (wenn m Leitungen zu diesem Neuron führen) Dnetj = \I\su(i;;ai·Dcij) = g·(1/m· \I\su(i;;(ai2)) - \I\su(i;;ai·cij)) = g·(1 - netj) ≥ 0, weil netj ≤ 1 wegen der Normierung der Gewichte ist, g ist ein zu wählender Faktor. Das eigentliche Wettbewerbslernen übernimmt die Grundidee dieses Ansatzes, macht aber eine entscheidende Änderung. Sie besteht darin, das der Lernprozeß selbstorganisierend geschieht, also ohne Lehrer oder einen Teaching - Input. Man kennt die Einteilung in die einzelnen Klassen nicht a priori, sie wird erst durch den Wettbewerb definiert und auch die "Sieger" müssen durch interne Vergleiche bestimmt werden.
59
60
Es gibt mehrere Arten, dies zu organisieren. Wir betrachten eine typische Architektur mit 3 Ebenen: Cluster
Ebene 3
Ebene 2 anregende Verbindungen
Ebene 1
Neuronen, von denen einige aktiviert sind schwarz = aktiviert
Die Neuronen sind in verschiedenen Schichten (Ebenen) organisiert; es sind McCPNeuronen, ihre Aktivitäten an können also die Werte 0 oder 1 annehmen. Die schwarz gefärbten Neuronen sind aktiv. Außerdem nehmen wir der Einfachheit noch On(t) = an(t) an. Jede Schicht außer der untersten ist wiederum in sog. Cluster partitioniert. Die Eingabeneuronen befinden sich auf Level 1, eine bestimmte Aktivierung dieser Neuronen heißt auch Stimulus: Ein Stimulus ist ein binärer Inputvektor mit 0 : nicht aktiv 1 : aktiv Jedes Neuron einer tieferen Schicht ist mit jedem Neuron der nächst höheren Schicht anregend verbunden; z.B.ist jedes Neuron von L1 mit jedem Neuron aus L2 anregend verbunden. Innerhalb eines Clusters bestehen auch Verbindungen und zwar hemmender Art. Diese bewirken beim Wettbewerb, daß es möglichst keine toten Rennen gibt; wir gehen darauf nicht näher ein. Weiterhin ist die Summe aller Gewichte von Verbindungen aus der tieferliegenden Schicht zu einem Neuron stets konstant. Man kann deshalb für diese Verbindungen die Normierung \I\su(i; ;cij) = 1 verabreden. Nun kommen wir zu den Punkten, die den Namen dieser Modellierung motivieren. Der Wettbewerb: Ein Neuron n gewinnt innerhalb seines Clusters, wenn sein Nettoinput maximal unter den Konkurrenten seines Clusters ist. Der Gewinner bekommt nun einen Bonus in Form einer Gewichtsänderung, so daß dieser ihn befähigen würde, beim nächsten Mal mit demselben Input noch deutlicher zu gewinnen. Bei einem anderen Input würde er aber eventuell um so deutlicher verlieren. Der Gewinn besteht in einer geeigneten Änderung der Gewichte, die in einer ersten Form so ausfällt:
60
61 ∆ cij =\B\LC\{(\A\AL(0, wenn Neuron j nicht gewinnt;g\f(ai;m) - gcij , falls Neuron j gewinnt,)) dabei ist m die Anzahl der aktiven Neuronen in der Ebene unterhalb j und g ein (beliebig) zu wählender Bruchteil, der auch wieder Lernfaktor heißt. Kommentar: Die vorgestellte Lernregel läßt sich als eine Modifikation der Grossbergregel (vgl. den Abschnitt über grundlegende Lernregeln) auffassen. Es werden nur Zustände von Neuronen geändert, die in ihrem Cluster gewinnen. Für ein gewinnendes Neuron j werden alle Gewichte von Leitungen zu j, die von inaktiven Neuronen kommen, um einen gewissen Bruchteil vermindert; dieser Anteil wird wieder gleichmäßig auf die Gewichte von Leitungen zu j von aktiven Neuronen verteilt. Dadurch wird die Summe der Gewichte von Leitungen zu j nicht verändert, aber der Nettoinput von j steigt. Beispiel: Es seien die Gewichte zum gewinnenden Neuron c1 = 1/2; c2 = c3 = 1/4 und die Aktivitäten seien a1 = a3 = 0 sowie a2 = 1; wir nehmen g = 0,1 an. Für die neuen Verbindungsstärken ci' erhalten wir dann c1 ' = 0,45; c2 ' = 0,325 und c3 ' = 0, 225. Insbesondere ist die Summe der Gewichte wieder 1. Dies ist kein Zufall, denn es gilt allgemein: Satz: G = \I\su(i,j; ;∆cij) = 0 Beweis: Es sei j das gewinnende Neuron; dann haben wir G = \I\su( i; ;∆cij) = g · \I\su(i; ; (ai/m - cij)) = g ·[ 1/m · \I\su(i; ; ai )- \I\su(i; ;cij ] = )g · [ 1-1]=0 Die Regel erhält also insbesondere die Normierungsbedingung für die Gewichte. Sie besitzt auch eine geometrische Veranschaulichung. Betrachten wir nur zwei Schichten, die untere Schicht (an der die Stimuli wirksam werden) habe N Neuronen. Alle Stimuli mögen dieselbe Anzahl an aktivierten Neuronen haben. Dann können wir sie als Vektoren auffassen, die vom Nullpunkt zum Rand einer N-dimensionalen Kugel deuten; die Endpunkte "ähnlicher" Stimuli liegen nahe beieinander. Auf der anderen Seite erhält jedes Neuron der oberen Ebene genau N Eingaben von unten, die Gewichte der Eingabelinien lassen sich ebenso zu einem N-dimensionalen Vektor zusammenfassen. Die Summe dieser Gewichte ist zwar zu 1 normiert, aber dieser Vektor hat nur ungefähr die Länge 1; der Unterschied für ein Neuron j ist \I\su(i; ;cij) - \I\su(i; ;(cij)2 ). Von diesem Fehler abgesehen liegen diese Vektoren aber auch auf derselben Kugel wie die Stimulivektoren, so daß sich folgendes Bild ergibt:
*
*
*
* * Welcher dieser Vektoren "*" gewinnt nun ? Weil die Gesamteingabe das Skalarprodukt aus Eingabe- und Gewichtsvektor ist, hat dasjenige Neuron gewonnen, dessen Gewichtsvektor am nächsten beim Eingabevektor ist (die ganz großen Verlierer sind die Neuronen, deren Gewichtsvektor antiparallel zum Eingabevektor ist).
61
62
Konvergenzbetrachtung: Wir haben es mit einem dynamischen System zu tun, dessen Zustände die globalen Verknüpfungszustände c sind. Wir stellen uns vor, daß eine gewisse Anzahl von Stimuli dem Netz zufällig präsentiert werden. Ein statistischer Gleichgewichtszustand des Systems herrscht dann, wenn der Erwartungswert für eine Gewichtsänderung ∆c = 0 ist. Die Bedingungen hierfür wollen wie etwas genauer studieren. Bezeichnungen: Die Stimuli, d.h. die zu präsentierenden Muster, seien S1, ..., SM. aik = Aktivitätszustand von Neuron i bei Eingabe von Sk; mik = Anzahl der aktiven Neuronen in der Schicht unterhalb i bei Eingabe von Sk; Pk = Wahrscheinlichkeit des Erscheinens von Stimulus Sk; Wik = Wahrscheinlichkeit, daß das Neuron i bei Eingabe von Sk gewinnt. Wir haben es in dieser Sicht mit einem stochastischen Prozeß zu tun. Der Gleichgewichtszustand ist charakterisiert durch \I\su(k=1;M; ∆cij . Wjk . Pk) = 0 für alle i und j; d.h. die mittlere Änderung der Gewichte ist 0. Eingesetzt für die ∆ cij ergibt dies \I\su(k=1;M;\f(aik . Wjk . Pk ;mik)) = cij . \I\su(k=1;M;Wjk . Pk) weil sich der Faktor g herauskürzt. Aufgelöst nach cij erhalten wir cij = \f( \I\su(k=1;M;\f(aik . Wjk . Pk ;mik)) ; \I\su(k=1;M;Wjk . Pk)) Der Nenner dieses Ausdrucks ist die durchschnittliche Wahrscheinlichkeit (gemittelt über alle präsentierten Muster), daß Neuron j gewinnt, während \I\su(k=1;M;aik . Wjk . Pk) die Wahrscheinlichkeit ist, daß Neuron i aktiv ist und Neuron j gewinnt. Nehmen wir nun vereinfachend an, daß alle Sk die gleiche Anzahl von Neuronen aktivieren, also mik = m für alle k = 1,...,M, so ergibt sich der Wert für cij in einem Gleichgewichtszustand als eine bedingte Wahrscheinlichkeit: cij = 1/m . Prob ( ai = 1 | Neuron j gewinnt). Festhalten wollen wir hier: Dies ist eine Bedingung an die Gleichgewichtszustände. Sie garantiert weder deren Existenz noch deren Eindeutigkeit. Die Tatsache, ob Neuron j gewinnt, hängt nämlich vom Verlauf der Entwicklung und damit vom Anfangszustand ab. Wenn netj(l) der Nettoinput von Neuron j bei Eingabe von Sl ist, dann erhalten wir netj(l) = \I\su(i; ;ail . cij) = \I\su(i; ;ail . \f( \I\su(k=1;M;\f(aik . Wjk . Pk ;mik)) ; \I\su(k=1;M;Wjk . Pk))) was sich mit der Abkürzung rilk = ail . aik zu \I\su(i; ;\f( \I\su(k=1;M;\f(rilk . Wjk . Pk ;mik)) ; \I\su(k=1;M;Wjk . Pk))) umschreibt. Was bedeuten die rilk ? Sie beschreiben die gemeinsame Aktivierung von Neuron i bei Eingabe von Sk und Sl, bedeuten also eine Überlappung dieser beiden Muster. Der Nettoinput ist also groß, wenn die anderen präsentierten Muster mit dem vorgelegten eine große Ähnlichkeit (im Sinne von großen Überlappungen) haben. Man kann daher erwarten, daß sich eine Klasse von in diesem Sinne ähnlichen Mustern gut und eine Klasse von nicht ähnlichen Mustern schlecht lernen läßt. 62
63
Beispiele: Wir wollen nun einige Experimente aus Anwendungen studieren. In der Literatur wird über viele solche Beispiele berichtet, allerdings nicht mit der Genauigkeit, die ein präzises Nachvollziehen ermöglichen würden. Das ist besonders deswegen nachteilig, weil gerade in diesem Bereich die Effekte häufig von Details wie gewählten Anfangswerten etc. abhängig sind. Wir beschränken uns deshalb auf Erfahrungen mit eigenen Implementierungen. Experiment 1 Es liegt folgender Aufbau vor : Wir haben ein System mit einem Input-Layer bestehend aus zwei Neuronen und einem Wettbewerbs-Cluster mit drei Neuronen. Es kommen nur drei Eingabemuster vor (die voneinander linear abhängig sind): ( 0 1 ), ( 1 0 ) und ( 1 1 ), diese werden jeweils in einer Iteration eingegeben. Effekt: Nach 200 Iterationen mit dem Lernfaktor 0.1 ergibt sich folgendes Diagramm, in dem nach jeweils 10 Iterationen die einzelnen Gewichte der drei konkurrierenden Neuronen dargestellt sind; die Anzahl der Iterationen steht auf der x-Achse, während auf der yAchse die Gewichte dargestellt sind. Ausgefüllte Flächen stehen für Gewichte zum InputNeuron 1 und leere Flächen für Gewichte zum Input-Neuron 2. Das Lernverfahren kann die Muster nur nach zwei Klassen einteilen. Dies wird durch die Zusatzangaben an der X-Achse deutlich. So bedeutet die Angabe 311 bei x=1, daß nach 10 Schritten Neuron 1 bei Muster 3 gewinnt und die Neuronen 2 und 3 bei Muster 1. Bis auf den Fall nach der 60. Iteration werden jeweils Muster 1 durch Neuron 3 und die beiden anderen Muster durch Neuron 1 klassifiziert. Neuron 2 schmiegt sich der Mitte an und kommt nur einmal zum Zug. Es kommt also nicht zu einer Klassifikation in 3 Klassen. Es zeigte sich weiter, daß auch bei nachfolgenden Iterationen kein Gleichgewichtszustand eintritt; die beobachteten Schwankungen bei den Gewichtsänderungen treten auch weiterhin auf. 1000 900 800
Unit 1
700
Unit 2
600 500
Unit 3
400
von Input 1 von Input 2
300 200 100 0 1 311
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20
311 312
311
63
64 Experiment 2: Hierüber wird auch in [Ru-Cl 86] berichtet. Wir nehmen ein Netzwerk mit zwei Ebenen. Die obere Ebene hat zwei Neuronen, die als Klassifikatoren dienen. In der unteren Ebene seien N2 Neuronen gegeben, die wir uns in einer quadratischen Matrix angeordnet denken. Ein Dipol besteht aus zwei waagerecht oder senkrecht benachbarten aktivierten Neuronen, etwa:
Zwei Dipole
Bei diesem Experiment werden mit unterschiedlichen Lernraten (0.01 - 0.04) relativ ähnliche Ergebnisse erzielt. Nach ungefähr 50-100 Iterationen (oft schon eher) wird ein stabiler Zustand erreicht, der sich nicht mehr ändert. Experiment 3: In diesem Experiment wird die Anzahl der Input-Neuronen dem Eingabe-Muster angepasst und die Größe des Clusters auf zehn erhöht wird. Bei den Mustern handelt sich um 4 x 5 Matrizen, die jeweils eine der Ziffern von 0-9 darstellen. Der Algorithmus ist nicht fähig, alle Muster in verschiedene Klassen zu trennen, sondern er legt auch hier mehrere Muster je nach Überdeckungsgrad und Anfangskonfiguration in eine Klasse. Dabei trennt der Algorithmus die Muster in 5-6 Klassen auf. Experiment 4: Dieses Experiment hat folgenden Aufbau: Als Eingabe-Muster werden 2-stellige Wörter aus den Buchstaben A und B benutzt, d.h. man erhält folgende Muster (AA), (AB), (BA) und (BB). Das Wettberwerbs-Cluster besteht aus 4 Neuronen. Der Algorithmus klassifiziert nur in 2 Klassen, wobei je zwei Muster mit der größten Überdeckung in eine Klasse fallen: AA und AB in Klasse 1; BB und BA in Klasse 2.
64
65
6.5 Kohonen's selbstorganisierende Abbildungen Neben dem Prinzip der Selbstorganisation war beim Wettbewerbslernen noch interessant, daß die geometrischen Relationen zwischen den Eingabedaten sowohl untereinander als auch in Bezug zu den Gewichtsvektoren von Bedeutung war. Diese Aspekte spielen auch im Ansatz von Kohonen eine Rolle, der jetzt in einfacher Form vorgestellt wird. Es gibt nur eine Schicht von n Neuronen, die reelle Eingabesignale empfangen und jeweils eine reelle Ausgabe haben. Die Neuronen selbst sind linear. Ist also die Eingabe x = (x1,...,xn) und sind cij die Gewichte, dann ist die Ausgabe ( gleich der Aktivität) des j-ten Neurons oj = \I\su(i; ;xi · cij). Es wird nun wieder das Neuron zum Gewinner erklärt, das am stärksten auf die Eingabe antwortet. Eine andere Weise dies auszudrücken ist: Neuron j gewinnt, falls ||x - cj|| = min( ||x - ck|| | 1 ≤ k ≤ n), wobei ci = (c1i, ...,cni) der Gewichtsvektor ist. Die Lernregel für die Gewichte kann nun auf verschiedene Weisen definiert werden. Eine gemeinsame Grundidee ist, daß nicht nur der Gewinner sondern auch die Neuronen in seiner Umgebung nach der Gewichtsänderung bei derselben Eingabe noch besser abschneiden würden. Der Umgebungsbegriff ist z.B. wieder durch den euklidischen Abstand der Gewichtsvektoren gegeben. Wichtig ist nun, das die Umgebungen mit fortschreitender Zeit zusammenschrumpfen. Falls Neuron j gewinnt, sieht die Lernregel so aus: ∆c i =
{ η ·(x-ci)füri U(j);0 sonst
Der Gewinner gewinnt hierbei am wenigsten, denn eine größere Veränderung würde ihn evevtuell am Ziel vorbeischießen lassen. Dabei ist sowohl die Umgebung U(j) = U(j,t) als auch die Lernrate η = η(t) zeitabhängig, beide sollen kleiner werden. Bei den Umgebungen kann man das sich z.B. so veranschaulichen: Wir wählen n = m2 als Quadratzahl und notieren den Gewichtsvektor in einer m2-Matrix:
Gewinner = Absteigende Grauzonen = Größere Entfernung vom Gewinner
65
66 Die genaue Wahl der Folgen U(t) und η(t) sind für eine effiziente Implementierung von großer Bedeutung, aber sie sind sehr fallabhängig und man kann keine allgemeinen Regeln angeben. Die Methode von Kohonen ist vielfältig erweiterbar und kann auf verschiedene Weise variiert werden. Eine Möglichkeit ist, die Lernregel wie folgt anzugeben: ∆c i = { η·h(c i,c j)·(x-c i)füri U(j);0sonst , wobei h eine Funktion ist, die in cj ihr Maximum hat und und mit wachsendem Abstand von cj gegen 0 strebt. Dadurch werden Neuronen in der Nähe des Gewinners bevorzugt; je nach Form der Funktion h kann dann auf die Umgebungen überhaupt verzichtet werden, weil Änderungen von entfernten Punkten dann vernachlässigbar werden. Eine Möglichkeit für h ist h(x,y) = e - \f((x - y)2;s2). Dabei ist s = s (t) als abnehmende Funktion zu wählen, was den schrumpfenden Umgebungen U(t) entspricht. In biologischen Systemen wurde eine Variante der Gauss'schen Glockenkurve h beobachtet, die sog. mexikanische Hutfunktion:
Mexikanische Hutfunktion Sie wird in einem gewissen Abstand vom Zentrum für kurze Zeit inhibitorisch. In den sog. Counter-Propagation-Netzen arbeitet ein Teil nach der Kohonen-Methode, während ein anderer Teil Regeln von Grossberg benutzt.
66
67
6.6 Lernen durch Belohnung (Reinforcement Learning) Beim "Lernen mit Lehrer" wird das Netz von außen korrigiert. Der "Lehrer" kennt die richtige Verhaltensweise des Netzes (z.B. weiß er, ob ein Muster richtig erkannt wurde oder ob eine Klassifizierung richtig oder falsch war) und ist in der Lage, eine Maßnahme in der richtigen Richtung vorzunehmen oder vorzuschlagen. Diese Situation hatten wir z.B. beim Perceptron und beim Backpropagationalgorithmus. Beim Wettbewerbslernen war das genaue Gegenteil der Fall, man wußte gar nichts über die richtige Verhaltensweise. Viele Fällen liegen nun zwischen diesen beiden Extremen. Das richtige Verhalten ist im Detail gar nicht bekannt, man weiß nur, ob eine Reihe von Einzelhandlungen im Endeffekt erfolgreich war. Ein Beispiel dafür ist das Kegeln: Man weiß nicht genau, welche Drehbewegungen der Hand zu einem Wurf führen, der einen vorgegebenen Kegel umwirft; man sieht hingegen im nachhinein sehr wohl, ob man ihn umgeworfen hat. Man weiß also, ob der Gesamteffekt gut war (daher "eine Belohnung verdient"), nicht aber, welcher Teil der vorangegangenen Aktionen dafür verantwortlich war. Das "richtige" Verhalten ist auch der Umwelt nicht bekannt, es kann nur "besser" oder "schlechter" beurteilt werden. Das Lernen durch Belohnung versucht, dieser Situation Rechnung zu tragen. Dem Netz werden Eingabemuster präsentiert und das produzierte Ausgabemuster wird (von außen) bewertet und gegebenenfalls ein "Lob" ausgesprochen. Analog zu einer Belohnung kann natürlich auch eine Bestrafung für schlechtes Verhalten erfolgen. Dabei soll man sich vorstellen, daß das Ausgabemuster eine Aktion bewirkt. Das Netzwerk lernt sich so zu verhalten, daß eine ausgesetzte Belohnung maximal wird. Von allen Lernverfahren scheint diese Art des Lernens dem "in der Natur vorkommenden" am nächsten zu sein; dort wird die Belohnung in der Form von Lust, Schmerz etc. ausgeteilt. Die Einordnung in die bisherigen Ansätze läßt sich schematisch wie folgt darstellen: Teaching-Input Beispiel Lernziel
Backpropagation Genaues EinAusgabeverhalten Äußere Information Das richtige Verhalten; Korrektur
Belohnung
Optimale Gesamtbewertung Globale Bewertung
Selbstorganisation Wettbewerbslernen Herausbildung von Klassen Gar keine
Gewöhnlich findet das ganze in einem stochastischen Modell statt. Etwas genauer: Gegeben: Eine Wahrscheinlichkeit P(x,y) für eine Belohnung von Ein-Ausgabepaaren. Gesucht: Ein Netz mit der Ein-Ausgaberelation (x,f(x)) sodaß P(x,f(x)) maximal wird, d.h. P(x,f(x)) ≥ P(x,y) für alle y.
67
68
Wir betrachten hier den folgenden Ansatz:
Rückkopplung
Belohnungslernen
BP-Netz
Aktionserzeugung
Aktion
Umwelt
Zur genaueren Beschreibung dieses Diagramms benötigen wir einige Bezeichnungen. Es liegen insgesamt vier Komponenten vor. Die Eingabemenge {x1,...,xm} hat m Elemente; die Eingabe erfolgt auf nicht näher spezifizierte Weise von der Umwelt. Die Ausgabe, die schließlich an die Umwelt zurückgegeben wird, ist ein Element einer Menge A = {y1,...,yn}; A heißt die Aktionsmenge. Zwischen die Eingabe und die Ausgabe ist jedoch ein stochastischer Mechanismus geschaltet, der zwei Komponenten hat: 1) Die Eingabe erfolgt in das BP-Netz, ein gewöhnliches Feedforwardnetz ist, wie es der Backpropagationalgorithmus verwendet. Die Ausgabe für xi ist eigentlich ein Vektor pi = (p i1 ,...,p in ) von reellen Zahlen aus dem Intervall [0,1] mit pi1 +...+p in = 1. Die Summenbedingung erlaubt es aber nur n-1 Zahlen auszugeben, weil dadurch die letzte eindeutig bestimmt ist. Vom nächsten Modul, der Aktionserzeugung, werden diese Zahlen als bedingte Wahrscheinlichkeiten gedeutet: pij= Prob( yj | xi ). Vom Modul "Belohnungslernen" wird dann ein erwünschter Vektor p*i als TeachingInput eingegeben werden. Mittels Backpropagation soll das BP-Netz dann die p*i lernen.
68
69 2) Das dreischichtige Netz"Aktionserzeugung" hat die folgende Struktur (hier ist n = 4 gewählt): 1 v1 2 u 1 p i1 θ v2 2 u2 pi2 Σ θ v3 2 u3 pi3 Σ θ v4 2 1 Wir haben 3 = 4-1 Eingaben pi. Die erste Netzschicht summiert einfach, die Ausgaben sind pi1, pi1 + pi2, pi1 + pi2 + pi3. Die Neuronen ui der zweiten Schicht sind Schwellwertneuronen mit den Ausgaben 1 und -1 sowie einem zufälligen Schwellwert θ, 0 ≤ θ ≤ 1. Die Neuronen vi der dritten Schicht sind Schwellwertneuronen mit den Ausgaben 0 und 1 sowie dem festen Schwellwert 2. Durchgezogene Linien bedeuten Gewicht 1 und bestrichelte Linien Gewicht -1. Wenn die Ausgabe von vi = 1, dann soll Aktion yi (auf wieder nicht näher spezifizierte Weise) wirken. Als Beispiel gelte pi1 + pi2 < θ < pi1 + pi2 + pi3. Dann hat das Neuron v3 als einziges die Ausgabe 1, d.h. die Aktion y3 findet statt. 3) Die Rückkopplung bewirkt zunächst eine Bewertung der Aktion; wir nehmen den einfachen Fall einer binären Bewertung an (1 = gut, 0 = schlecht). Gemäß dieser Bewertung werden dann "bessere" Werte p*ij für die pij vorgeschlagen; p*ij = pij + ∆pij. Wir nehmen jetzt an, die Aktion yj sei erfolgt. Dabei soll für eine Eingabe xi und eine erfolgte Aktion yj gelten: Wenn Bewertung = 1, dann ∆pij ≥ 0 und ∆pik ≤ 0 für k ≠ j; wenn Bewertung = 0, ∆pij ≤ 0 und ∆pik ≥ 0 für k ≠ j. Es gibt mehrere Möglichkeiten, die zu realisieren. Ein einfacher linearer Ansatz ist (wobei η1 und η2 positive Lernraten sind): Bei Bewertung = 1: ∆pij = η1 · (1 - pij) > 0 und ∆pik = - η1 · pik < 0 für k ≠ j; bei Bewertung = 0: ∆pij = - η2 · pij < 0, ∆pik = η2 · (F(xi) - pik) für k ≠ j; dabei ist F(xi) eine fest zu xi gewählte Zahl. Die p* ij werden nun dem BP-Netz als Teaching-Input gegeben, so daß der Backpropagationalgorithmus angewandt werden kann. Das BP-Netz bekommt die Auswirkungen seiner Entscheidungen also nur indirekt zu spüren.
69
70 Aufgrund der Aktion wird von der Umwelt eine neue Eingabe an das BP-Netz angestoßen. Eine etwas komplexere Modellierung würde hier zulassen, daß durch die Umwelt auch die Eingabemenge selbst verändert werden kann. Das ist aber keine wesentliche Erweiterung, man müßte gegebenenfalls diese Menge unendlich groß wählen, was an der bisherigen Argumentationen aber nichts ändert.
6.7 Zusammenfassende Bemerkungen Wir wollen abschließend einige Kriterien angeben, nach denen sich lernende Netze klassifizieren lassen. 1) Struktur der einzelnen Neuronen: Ist die Ausgabe binär oder reell ? Welche Entscheidungsflächen haben die Neuronen ? Ist die Ausgabe deterministisch oder stochastisch ? 2) Die Netztopologie: Gibt es verborgene Neuronen ? Beliebige Vernetzung möglich ? Geht der Netzfluß nur in einer Richtung oder gibt es Rückkopplungen ? Welchen genauen Typus hat der unterliegende Graph des Netzes ? 3) Vorhandensein äußerer Einflüsse: Ist die erwünschte Ein - Ausgabeassoziation bekannt und wird eine Korrektur vorgeschlagen ? Nach welchem Prinzip wird gegebenenfalls eine Optimierung vorgenommen ? Nach welchem Prinzip wird gegebenenfalls selbst organisiert ? 4) Art der Verbindungsänderung: Wann wird geändert ? Nach welcher Regel wird geändert ? Erfolgt die Änderung deterministisch oder stochastisch ? 5) Metaaspekte: Welche Konvergenz- und Stabilitätsbetrachtungen sind möglich und sinnvoll ? Welche Vorschläge existieren für Art und Dauer der Trainings- und Testphase ? Wird versucht ein biologisches Phänomen zu modellieren ? Welche Anwendungen sind intendiert ?
70
71
§7 Stabilitätsbetrachtungen Wir hatten in 5.7 schon einige Bemerkungen zur Konvergenzproblematik gemacht. Diese sollen jetzt etwas vertieft werden. Im Zusammenhang mit Programmen interessieren wir uns üblicherweise für ihre Korrektheit und versuchen sie nachzuweisen oder sonstwie zu sichern. Dabei unterscheiden wir zwei Formen: 1) Die partielle Korrektheit: Sie besagt, daß das Programmen im Falle seiner Terminierung bezüglich einer vorgegebenen Spezifikation jede Eingabe in die erwünschte Ausgabe überführt. 2) Die totale Korrektheit: Hier wird zusätzlich noch die Terminierung des Programmes für jede Eingabe verlangt. Da auch eine neuronales Netz ein Programm ist, fragen wir uns, wie es hier mit den entsprechenden Aufgaben steht. Weil eine der Intentionen des ganzen Ansatzes ist, die explizite Kontrolle über die einzelnen Rechenschritte aufzugeben, erwarten wir hier eine Modifikation der Begriffsbildungen. Zunächst wird die Rolle der Spezifikation durch den Lehrer, d.h. den Teaching-Input übernommen. Er hat aber nicht die gleiche rigorose Funktion wie die Spezifikation einer Prozedur, da man gewöhnlich nur eine Annäherung erwartet und leichte Fehler toleriert. Wie bei numerischen Verfahren und anders als bei Prozeduren ist hier in die Angabe der Spezifikation bereits die Möglichkeit der Fehlerabschätzung eingebaut. Ist kein Lehrer vorhanden, dann kann man von Korrektheit nicht sprechen. Das Programm soll ja selbst Sachverhalte entdecken und man kann dann allenfalls von einer Nützlichkeit sprechen. Die Frage der Terminierung eines Programmes läßt sich grundsätzlich nicht allgemein entscheiden. Man hat aber gewisse Techniken entwickelt, die in vielen Einzelfällen helfen können. Die wichtigste davon besteht in der Angabe von Schleifenparametern, um die Terminierung beim Schleifendurchlauf zu sichern. Es handelt sich um die Zuordnung einer natürlichen Zahl zu der Schleife bei dem Eintritt in sie, die sich bei jedem Durchlauf erniedrigt; die Terminierung wird dadurch gesichert, daß diese Zahl nicht negativ werden kann. Bei geschachtelten Schleifen wird das etwas schwieriger und führt im Prinzip auf das Gebiet der Ordinalzahlen. Die Aufgabe der expliziten Kontrolle führt nun dazu, den Terminierungsbegriff abzuschwächen, z.B. zu Konvergenzbegriffen oder dem Erreichen von Gleichgewichtszuständen. Auch hierüber sind aber Aussagen erwünscht und die Grundidee ist dieselbe wie bei den Schleifenparametern, nämlich das Verhalten durch abnehmende aber nicht negative Zahlen zu kontrollieren. Dem wollen wir uns jetzt zuwenden. In 6.1 hatten wir im Zusammenhang mit der Deltaregel bereits ein Fehlermaß E betrachtet, das diese Regel zu minimieren versuchte, wir wurden dabei auf ein quadratisches Optimierungsproblem geführt. Diesen Aspekt wollen wir nun genauer untersuchen. Er stellt einen Zusammenhang zu verschiedenen anderen Gebieten dar, je nachdem welche Interpretation für E man wählt: - E ist eine Kostenfunktion: Sie führt in den Bereich der kombinatorischen Optimierung; falls die Argumente aus {0,1} n sind, ist man im Bereich der pseudoboole'schen Funktionen. - E ist eine Energiefunktion: Dies ist der physikalische Standpunkt, man sucht ein Potentialminimum. - E ist eine Liapunovfunktion: Dies ist die Begriffswelt der dynamischen Systeme.
71
72 - E ist eine Harmoniefunktion: Sie unterscheidet sich von den angegebenen Funktionen nur dadurch, daß man sie maximieren und nicht minimieren will. Wir werden auf sie nicht weiter eingehen, da sie sich von den restlichen Interpretationen nur durch ein Negationszeichen unterscheidet. Die Vorstellungen von einer Energie und von Kosten kommen aus Analogien und Anwendungen, während hinter dem Begriff der Liapunovfunktion eine zentrale mathematische Theorie steckt. Der Begriff Liapunovfunktion umfaßt dabei die anderen Begriffe als Spezialfälle. Sie ist nicht allgemein definiert, in einer für bestimmte Anwendungsfälle geeigneten Definition liegt vielmehr ein kreatives Element. Die Funktion E übernimmt aber die Rolle des Schleifenparameters. Bevor wir die Fragen in den allgemeinen Rahmen der Systemtheorie einbetten, schauen wir uns zur Motivation einige charakteristische Eigenschaften der Energiefunktion (oder des Fehlermaßes etc.) und der Regel für die Änderung der Gewichte in Bezug auf eine Konvergenz an: (1) Jede Gewichtsänderung sollte die Energiefunktion nicht erhöhen; es sollten hinreichend oft Änderungen vorkommen, sie echt heruntersetzen. (2) Ein lokales Minimum sollte stets erreicht werden. (3) Es sollte die Möglichkeit bestehen, ein globales Minimum zu erreichen. (4) Die Änderung sollte einer gewissen Konvergenzbedingung (gewöhnlich oder stochastisch) genügen. Dies sind ganz normale Fragen in der Optimierung (oder Suche, vgl. [Ri89]). Man sieht auch sofort, daß sich (1) und (3) widersprechen. Deswegen versucht man zuerst, (1) zu erreichen, um dann später gegebenenfalls davon geeignet abzuweichen. Relativ einfach ist die Sache, wenn nur ein lokales Minimum existiert. Relativ typisch aus der Sicht der Physik ist der Fall der gedämpften Schwingung. An einer Masse m greifen eine Dämpfung mit der Konstanten ρ und eine Federkraft mit der Konstanten c an. Die Bewegung gehorcht dann der Differentialgleichung m\f(d2x;dt2) + ρ\f(dx;dt) + cx = 0. Die Gesamtenergie des Systems ist E = 1/2. m . ( \f(dx;dt) )2 + 1/2 . x2, sie ist positiv definit (d.h. stets ≥ 0 und = 0 nur im Nullpunkt). Für ihre zeitliche Ableitung gilt \f(dE;dt) = - ρ. ( \f(dx;dt) )2, sie ist also negativ semidefinit. Daraus schließt man ohne Kenntnis des Bewegungsverlaufes, daß die Energie des Systems bei einem beliebigen Anfangszustand ständig abnimmt, sie hat ihr Minimum 0 bei einem Stillstand des Systems. Von der Funktion E haben wir dabei nichts anderes benötigt als - E ist positiv definit, - \f(dE;dt) ist negativ semidefinit. Die Funktion E wird in der Systemtheorie eine Liapunovfunktion genannt. Die obige Vorgehensweise soll jetzt ein wenig verallgemeinert und auf unsere Bedürfnisse zugeschnitten werden. Ein wesentlicher Unterschied zu dem gerade vorgeführten physikalischen Beispiel ist, daß wir es bei den neuronalen Netzen mit diskreten Systemen zu tun haben. Ein weiteres aus der Physik kommendes Beispiel hat bereits diskreten Charakter. Es ist das Isingmodell, das in sehr vereinfachter Weise die Kristallgitterstruktur von Magneten beschreibt. Das Gitter besteht aus regelmäßig angeordneten atomaren Magneten (nach dem quantenmechanischen Vorbild auch Spin genannt), die eine der Richtungen +1 oder -1 annehmen können:
72
73
Für den i-ten Spin wird ai = 1 gesetzt, wenn seine Richtung 1 ist, anderfalls setzen wir ai = -1. Die Spins erzeugen ein internes magnetisches Feld, das wiederum die einzelnen Spins beeinflußt. Der Einfluß Ei auf den Spin i berechnet sich dabei wie folgt: Ei = \I\su(j; ;cji·aj ); die cij heißen Interaktionsstärken und es gilt cij = cji sowie cii = 0 (kein Selbst Einfluß); u.U. wirkt noch ein äußerer Einfluß Eext auf i. Die zugehörige Energiefunktion (die hier auch Hamiltonfunktion genannt wird) ist E = -1/2·\I\su(i,j; ;cij·ai·aj) - Eext· \I\su(j; ;aj ) Dieses Modell ist schon, wie aus den Bezeichnungen hervorgeht, ganz auf ein vollständig vernetztes Netz mit symmetrischen Verbindungen zugeschnitten; die Energiefunktion wird bei der Betrachtung des Hopfieldnetzes wieder auftreten. Wie schon einmal in 6.1 diskutiert, sind die Aktivitätszustände hier als +1 oder -1 modelliert. Wir betrachten wieder wie in §5.7 zeitinvariante dynamische Systeme Σ (d.h. die Übergangsfunktion von einem Zustand zum nächsten hängz nicht von der Zeit ab), ohne äußere Einflüsse. Solche Systeme heißen auch autonom. Die möglichen Zustände X des Zustandsraumes von Σ seien wieder reelle n-dimensionale Vektoren und ||X|| bezeichne die euklidische Norm von X. Die Dynamik des Systems sei durch X(t+1) = f(X(t)) , t = 0,1,... gegeben. Eine solche Zustandsfolge heißt auch eine Lösung des Systems mit dem Anfangszustand X(0); eine solche Lösung ist durch ihren Anfangszustand eindeutig bestimmt. Wenn f eine lineare Funktion ist, dann heißt das System linear. Von §5.7 wiederholen wir, daß Gleichgewichtszustände Fixpunkte von f sind, d.h. es gilt X = f(X). Die Idee der Stabilität ist: Ein Gleichgewichtszustand X ist stabil (im Sinne von Liapunov), wenn eine kleine Auslenkung aus X im Zeitverlauf in der Nähe von X bleibt. Eine genaue Definition ist: Definition: Der Gleichgewichtszustand X ist genau dann stabil (im Sinne von Liapunov), wenn gilt: Für alle ε > 0 existiert ein δ > 0, sodaß für jede Lösung X*(t) mit ||X*(0) - X|| < δ auch ||X*(t) - X|| < ε für alle t > 0 gilt. Diese Definition der Stabilität greift die Konvergenzidee noch nicht auf. Das erfolgt durch folgende Befriffsbildung:
73
74
Definition: (i) Ein Gleichgewichtszustand X ist asymptotisch stabil (oder auch: ein Attraktor) für eine Menge M von Zuständen, wenn für jede Lösung X*(t) mit X*(0) = X M die Beziehung lim tµ∞ || X*(t) - X || = 0 gilt. Die größte Menge M mit dieser Eigenschaft ist der Anziehungsbereich von X. (ii) X heißt asymptotisch stabil, wenn X für eine Menge M asymptotisch stabil ist. (iii) X ist global asymptotisch stabil, wenn sein Anziehungsbereich die Menge aller Zustände ist. Der Begriff des Attraktors wurde hier gegenüber §5.7 etwas verallgemeinert. Die Begriffe "asymptotisch stabil" und "stabil" können für praktische Zwecke unterschiedlich nützlich sein. Bei der Stabilität ist zwar von Konvergenz noch keine Rede, sie reicht jedoch vielfach aus, wenn die Variation klein genug bleibt. Andererseits kann die Konvergenz nutzlos bleiben, wenn die Störung des Gleichgewichtszustandes aus dem Anziehungsbereich herausführt. Diese Definitionen können in verschiedener Hinsicht variiert, verallgemeinert und spezialisiert werden. Das kann einmal im Hinblick auf allgemeinere Systeme oder auch für solche mit reichhaltigerer Struktur (z.B. EinAusgabeverhalten) geschehen. Dasselbe trifft auch auf den Begriff der Liapunovfunktion zu, dem wir uns jetzt zuwenden wollen. Der Begriff ist dabei auf die behandelten diskreten autonomen Systeme zugeschnitten. In der nächsten Definition bezeichne 0 den Nullvektor, der auch ein Zustand sein soll. Definition: Eine auf den Zuständen definierte Funktion E heißt eine Liapunovfunktion, wenn sie die folgenden Eigenschaften erfüllt: (i) E (0) = 0; (ii) E(X) > 0 für X ≠ 0; (iii) ∆E(X) = E(f(X)) - E(X) < 0 für X ≠ 0; (iv) E ist stetig; (v) E(X) µ ∞ für ||X|| µ ∞. Diese Definition bezieht ihre Rechtfertigung aus dem folgenden Theorem, das ohne Beweis zitiert wird. Satz (Zweites Liapunovsches Theorem): (i) Wenn für ein autonomes System eine Liapunovfunktion existiert, dann ist der Gleichgewichtszustand X = 0 global asymptotisch stabil. (ii) Im linearen Fall ist die Bedingung in (i) auch notwendig. Bemerkungen: - Die Bedingungen ersetzen diejenigen aus dem physikalischen Beispiel auf natürliche Weise. - Es ist nichts darüber ausgesagt, wie man eine Liapunovfunktion findet. - (ii) folgt sofort daraus, daß man E(X) = ||X|| wählen kann.
74
75 - Die Originalversion des Liapunovtheorems war wesentlich allgemeiner und umfaßte mehrere Fälle. Um eine sehr allgemeine Version aus der Systemtheorie zu erhalten, betrachten wir eine Menge (C, ≥C). C ist als Zustandsmenge gedacht und c1 ≥C c2 soll " c2 ist ein möglicher Nachfolgezustand von c1" heißen. Für c C ist ≥C(c) = {d C | c ≥C d}, also die Menge der Nachfolgezustände von c; ≥C(D) ist {d C | c ≥C d, d D}. Weiter sei U eine Familie von Teilmengen von C und für c C sei U(c) = {U U | c U}. Wir denken uns Mengen aus U(c) als Zustandsmengen, die "nahe zu c benachbarte" Zustände enthalten. Damit können wir eine allgemeine Stabilitätsdefinition erstellen: Definition: Ein Zustand c C ist stabil relativ zu ≥C und U genau dann, wenn [ÆU U( ≥C(c) )] [æ V U(c)] [ ≥C(V) ∑ U ] Um den entsprechenden Begriff einer Liapunovfunktion erklären zu können, benötigen wir eine partiell geordnete Menge (P,≤) und eine Teilmenge P+ ∑ P. Definition: Eine Funktion f: C µ P ist für eine Teilmenge C* von C eine Funktion vom Liapunovtyp, falls (i) c1 ≥C c2 ˜ f(c2) ≤ f(c1); (ii) (Æa P+)(æ D)(Æc D)( C* ∑ D ∑ C å f(c) ≤ a ); (iii) (ÆD)(æ a P+)(Æc C)([C* ∑ D ∑ C å f(c) ≤ a ] µ ( c D)); Damit läßt sich dann der folgende Satz beweisen (siehe [Me-Ta 75]): Satz: Eine Teilmenge D ∑ C besteht genau dann aus Zuständen, die relativ stabil zu ≥C und U sind, wenn eine Funktion f: C µ P vom Liapunovtyp für D existiert.
§8 Hopfield-Netz und Boltzmann-Maschine. 8.1 Lernen von Aktivitätszuständen im Hopfield- Netz. Die Fragestellung beim Hopfieldnetz ist anders als bei der früher besprochenen Deltaregel oder beim Perceptron, da jetzt keine Änderungen der Gewichte sondern solche der Zustände zur Debatte stehen. Das rührt von intendierten Anwendungen in der kombinatorischen Optimierung her, wo die Gewichte etwa Entfernungen entsprechen und nicht verändert werden sollen.
75
76 Beim Hopfieldnetz ist jeder Knoten gleichzeitig Ein- und Ausgabeknoten. Es werden gewöhnliche McCP-Neuronen verwandt. Eine Grundannahme des Hopfieldnetzes ist: Die Gewichte sind symmetrisch, (d.h. cn',n = cn,n' ) und es gilt cnn = 0. Die Energiefunktion ist etwas anders als bisher, sie leitet sich von der physikalischen Vorstellung des in Abschnitt 7 betrachteten Isingmodells her. Die Energiefunktion ist : E = - 1/2 . \I\su(n; ; \I\su(n'≠n; ; an an' . cn',n)) + \I\su(n; ;an θn ) Nun betrachten wir die Arbeitsweise des Netzes. In jedem Takt passiert entweder gar nichts oder es findet eine einzige Operation, nämlich den Übergang der Aktivität eines Neurons m von 0 zu 1 oder von 1 zu 0 statt. Es sei also E0 = Energie vor der Änderung; E1 = Energie nach der Änderung; bm = Aktivität des Neurons m nach der Änderung. ∆a = am - bm = Aktivitätsänderung. Daraus erhalten wir D E = E0 - E 1 = - 1/2 · \I\su(n; ;\I\su(n'≠n; ;an a n' c n'n )) + \I\su(n; ;an θ n ) - [- 1/2 · \I\su(n≠m; ;\I\su(n'≠n,m; ;anan'cn'n)) + \I\su(n≠m; ;anθn) - 1/2 · \I\su(n'≠m; ;bman'cn'm) - 1/2 · \I\su(n'≠m; ;anbm'cmn') + bmθm] = (\I\su(n'≠m; ;an'cmn') - θm )(bm - am) = - (\I\su(n'≠m; ;an'cmn') - θm )∆a = - (\I\su(n'; ;an'cmn') - θm )∆a . Die letzte Gleichung gilt, weil wir stets cnn = 0 haben. Nun sind zwei Fälle zu unterscheiden. Fall 1: am = 0, bm = 1, also ist ∆a = -1. In diesem Fall ist das Neuron m aktiviert worden, die Schwellwertbedingung \I\su(n'; ;an'cmn') ≥ θm ist daher erfüllt und daher gilt ∆E ≥ 0. Fall 2: am = 1, bm = 0, also ist ∆a = 1. In diesem Fall ist das Neuron m nicht aktiviert worden, die Schwellwertbedingung ist nicht erfüllt und es gilt \I\su(n'; ;an'cmn') < θm . Daraus folgt aber wieder ∆E ≥ 0. Daraus sehen wir: ∆E ≥ 0 genau dann, wenn das Neuron m die Zustandsänderung gemäß der Schwellwertbedingung für McCP-Neuronen vornimmt. Weiter gilt: E ist durch eine Konstante nach unten beschränkt. Es ist nämlich E ≥ - 1/2 · \I\su(n; ;\I\su(n'≠n; ;cn'n)) . Das bedeutet aber, daß E eine Liapunovfunktion ist; man landet also stets in einem (lokalen) Energieminimum und wir erhalten das Konvergenztheorem:
76
77 Im Hopfieldnetz werden die Zustandsänderungen der Aktivitäten bei jeder Belegung der Anfangszustände schließlich konstant. Nach den obigen Ausführungen können wir uns die Zustandsänderungen aber auch als durch äußere Eingriffe vorgenommen denken. Der Algorithmus liest sich dann wie folgt: 1. Wähle ein Neuron 2. Ändere seinen Aktivierungszustand genau dann, wenn ∆E > 0 3. Stop, falls eine Energieverminderung nicht mehr möglich. Das Energieminimum ist lokal in dem Sinne, daß keine Aktivitätsänderung eines einzigen Neurons zu einer Verbesserung führt. Um ein globales Minimum zu finden, muß man entweder eine synchrone Veränderung mehrerer Neuronen zulassen (worauf hier nicht eingegangen wird) oder auch gelegentlich im Sinne von E ein "bergaufgehen" erlauben. Dies sollte natürlich kontrolliert geschehen, sodaß das Auf- und Abspringen in gewissem Sinne konvergiert. Die Idee dazu ist schon länger bekannt und wird unter dem Namen "Simulated Annealing" geführt; hier führt sie zu dem Begriff der Boltzmannmaschine. Wir erinnern jetzt an den bereits mehrfach benutzten kleinen Trick, der es erlaubt, den Schwellwert unter die Gewichte zu zählen; wir benutzten ein "virtuelles" Neuron, was stets die Aktivität 1 hatte. Hier führt das zu einer formalen Vereinfachung; es mag hingegen interessant sein, die Abhängigkeit vom Schwellwert direkt zu studieren.
8.2 Die Boltzmann - Maschine 8.2.1 Allgemeines Wie man von einem lokalen zu einem globalen Minimum kommen kann, läßt sich an folgendem Bild plausibel machen:
d m M Wenn sich im Tal m eine unregelmäßig bewegende Kugel befindet, die gerade genug Energie hat, eine Höhe d zu überwinden, dann wird die Kugel mit einer gewissen Wahrscheinlichkeit nach einiger Zeit im Tal M sein und wird auch wahrscheinlich nicht nach m zurückkehren. Man kann dann aber anschließend dafür sorgen, daß der Kugel genug Kraft entzogen wird, nach links zu entwischen. Durch eine entsprechend geschickte zeitliche Dosierung der Wahrscheinlichkeiten kann man so erreichen, daß die Kugel vermutlich ins globale Minimum rollt. Wichtig ist aber, daß das Minimum nicht sicher, sondern nur mit einer bestimmten Wahrscheinlichkeit erreicht wird. Wir betrachten vorerst eine vereinfachte Form der Boltzmannmaschine ohne verborgene Neuronen. Sie entsteht aus dem Hopfieldnetz durch folgende Veränderungen, die ein stochastisches Modell einführen: Notation:
77
78
(i) a bezeichne den globalen Aktivierungszustand des Netzes, a(n) sei der Zustand, der aus a durch Änderung der Aktivität des Neurons n entsteht. (ii) T sei eine positive reelle Zahl, die einen Kontrollparameter darstellt, der aus noch zu erläuternden Gründen auch Temperaturparameter heißt. Die Energiefunktion des Hopfieldnetzes vereinfachen wir durch Setzen der Schwellwerte auf null. 1) Die Energiefunktion ist E = - 1/2 . Σ ( an an' cn',n ) Wenn a(n) aus a durch Änderung des Zustandes des Neurons a entsteht, dann ist ∆E(a(n)) = E0 -E1, wobei E0 die Energie im Zustand a und E1 die Energie im Zustand a(n) ist. Der Schwellwertterm fehlt hier. Wie in 4.3 beschrieben, erlaubt es ein kleiner technischer Trick, den Schwellwert unter die Gewichte aufzunehmen. 2) Die Änderung des Aktivierungszustandes wird mit der Wahrscheinlichkeit Wa(n) (T) = \f(1;1 + e-∆E(a(n))/T) akzeptiert. Dies ist die schon aus 4.2 bekannte Sigmoidfunktion. Für kleine Werte von T nähert sie sich der Schwellwertfunktion an, der Exponent geht bei 0 schnell von sehr großen zu sehr kleinen Werten über und der Bruch entsprechend von (fast) 0 zu (fast) 1.
1 p 0
∆Ε
Wenn ∆E > 0, dann wäre im deterministischen Falle der Schwellwert überschritten und die Änderung akzeptiert; hier findet die Änderung jedoch nur mit der Wahrscheinlichkeit p statt. Je steiler die Kurve ist, umso größer ist p und umso seltener weicht man von dem Schwellwertneuron ab. Arbeitsweise der Boltzmann-Maschine:
3) Der Abarbeitungsalgorithmus: Er besitzt eine innere und eine äußere Schleife.
78
79 3a) Die innere Schleife: Wähle mit einer (festen) Wahrscheinlichkeit P ein Neuron n und akzeptiere seine Zustandsänderung mit der Wahrscheinlichkeit Wa(n) (T). (Diese Vorgehensweise nennt man auch nach dem Vorbild der Evolution die MUSE Strategie : - Mutation - Selektion.) 3b) Die äußere Schleife: Zwei Zahlen L1 und L2 > 0 seien fest gegeben. (i). Gebe Anfangswert T0 von T ein. (ii) Durchlaufe die inneren Schleife L1 mal. (iii). Erniedrige T gemäß festem Dekrement . (iv). STOP, falls sich der Zustand L2 mal nicht ändert. Die äußere Schleife wird dabei von außen gesteuert; die Änderung von T wird nicht durch das Netz selbst vorgenommen. Die einzelnen numerischen Werte sind natürlich implementierungsabhängig und je nach Anwendungsfall verschieden zweckmäßig zu wählen; es gibt jedoch einige Erfahrungen. 1. Bei der Wahl der Anfangstemperatur T0i für ein Neuron ni wird üblicherweise gewählt T0i = γ \I\su((i,j); ; |cij| ), wobei γ eine reelle Zahl, 0 < γ < 1, praktischerweise meist γ ≈ 1/2. 2. Wahl des Dekrementes: Tj+1 i = α . Tj i , 0 < α < 1, α ≈ 1. Das Dekrement bewirkt gerade die Abkühlung und die Relation α ≈ 1 besagt, daß die Abkühlung langsam vor sich geht. 3.Wahl einer Zahl L1: Das Netz arbeitet L1 Schritte bei jedem Tji; (Schritte heißt: Aktivierungsänderung (bezüglich einem Neuron) vorschlagen, gegebenfalls akzeptieren und durchführen ). L1 wird gewöhnlich nur in Abhängigkeit von der Neuronenzahl N gewählt, es sollte ein geeigneter Bruchteil sein, z.B. L1 = 1/4. N 4. Die Zahl L2 sollte sehr viel größer als L1 gewählt werden, L2 = 10.L1. Eine weitere verwendete Form der Abkühlung von T(t) in Abhängigkeit vom Zeitparameter t ist durch T(t) = \f(T(0);1 + log(t)) gegeben. Der obige Algorithmus ist sequentiell angelegt, weil jeweils ein Neuron pro Zeitpunkt behandelt wird. Eine Parallelität läßt sich dadurch erreichen, daß man zufällig eine Menge S von Neuronen auswählt, deren Anzahl stets ein fester Bruchteil von N ist und die Zustandsänderung gemäß der inneren Schleife für alle Neuronen von S parallel vornimmt. Die Hauptprobleme sind nun: 1) Konvergiert der Algorithmus ? 79
80 2) Wie effizient arbeitet der Algorithmus? Theoretische Terminierungseigenschaften sind sehr schwer herzuleiten und bisher nur in Ausnahmefällen bekannt. Das Abbruchkriterium verhindert i.a. eine endgültige (exakte) Lösung, man erreicht also nur eine Approximation. Das ist aber erwünscht; eine exponentiell lange Laufzeit wird so verhindert. Das genaue Verhalten des Algorithmus hängt natürlich von der Wahl der Parameter des Algorithmus ab. Die Analogie zur Physik, die der Boltzmann-Maschine ihren Namen gegeben hat, legt nun eine statistische Betrachtungsweise nahe. Dazu erinnern wir an einige Vorstellungen aus der Thermodynamik: - (ideale) Gase können sich in den Zuständen A, B,... befinden; - die Energie des Zustandes A sei EA; - Die statistische Verteilung der Molküle des Gases über die möglichen Zustände wird durch die Boltzmann-Verteilung beschrieben. - In einem thermischen Gleichgewicht ist der Erwartungswert einer Zustandsänderung gleich 0. Die Boltzmann-Verteilung gibt bei einem Gleichgewichtszustand für zwei (globale) Zustände a und b bei einer Temperatur T die relative Aufenthaltswahrscheinlichkeit des Systems für diese Zustände durch die Gleichung \f(P(a);P(b)) = e-(Ea-Eb)/T = \f(eEb/T;eEa/T)
(*)
an; dabei ist T die Temperatur und Ea und Eb sind die jeweiligen Energien in diesen Zuständen. Je kleiner die Energie ist, umso größer ist die Aufenthaltswahrscheinlichkeit; Maxima der Wahrscheinlichkeiten entsprechen Minima der Energie. Die Vorgehensweise ist nun die, daß man das neuronale Netz in Beziehung zu einem Gas und seine "Energie" zu der physikalischen Energie des Gases setzt. Für die Energiefunktion der Boltzmann-Maschine läßt sich dann ebenfalls die Gleichung (*) herleiten. Eine Variation der Boltzmannmaschine ist Cauchymaschine. Die Boltzmannverteilung wird hier durch die Cauchy-Verteilung ersetzt; die Wahrscheinlichkeit für die Änderung des Aktivierungszustandes wird daher gesetzt als Wa(n) (T) = \f(T;T + (∆E(a(n))2)) Auch ein schnelleres Abkühlschema wird verwendet: T(t) = \f(T(0);1 + t) Die Idee ist, einerseits den Erkennungsprozeß zu beschleunigen andererseits das Risiko eines nicht-globalen Minimums durch die Möglichkeit größerer Energiesprünge zu vermindern. 8.2.2
Lernen und Boltzmann -Maschine
Wir wollen jetzt die allgemeine Boltzmann - Maschine, die auch verborgene Neuronen enthält betrachten und wollen sie mit Lernvorgängen wie bisher versehen, d.h. wir 80
81 wollen auch Gewichtsänderungen lernen. Zunächst hängt die Energie linear von den Gewichten ab (wenn wir den Schwellwert unter die Gewichte subsumieren): E = - 1/2 . \I\su(n; ; \I\su(n'≠n; ; an · an' . cn',n)). Wir wollen ja nach bewährtem Muster die Verbindungen so verändern, daß sich die Energie verringert. Dazu ist es wie beim Studium des Backpropagationalgorithmus zweckmäßig, die partiellen Ableitungen nach den Gewichten zu studieren. Es ergibt sich: \f(∂e-E/T;∂cn',n) = 1/2 · \f(1;T) · an · an' · e -E/T Für einen globalen Zustand a kann man daraus ableiten \f(∂ln(P(a));∂cn',n) = \f(1;T) · (an · an' - pn,n'), wobei pn,n' die Wahrscheinlichkeit ist, daß im Gleichgewichtszustand beide Neuronen aktiv sind. Diese Abhängigkeit erlaubt es, die logarithmischen Aufenthaltswahrscheinlichkeiten durch Gewichtsänderungen zu beeinflussen. Wir unterteilen jetzt die Neuronen in verborgene und sichtbare und letztere wieder in Einund Ausgabeneuronen. Werden die Zustände der sichtbaren Neuronen festgehalten, dann ergeben sich für die globalen Zustände entsprechende Wahrscheinlichkeiten, die durch den oberen Index 0 gekennzeichnet werden, also z.B. P0(a). Die P0 stehen zu den P Wahrscheinlichkeiten wie a die posteriori-Wahrscheinlichkeiten nach Eintreten eines Ereignisses zu den a priori-Wahrscheinlichkeiten vor dem Eintreten des Ereignisses (das betrachtet man gewöhnlich im Zusammenhang mit Anwendungen der Formel von Bayes). Das Ereignis bedingt nun einen Informationsgewinn. Diesen kann man messen; die Maßzahl (an die vorliegende Terminologie angepaßt) ist: G = \I\su(a; ;P0(a) · ln(\f(P0(a);P(a)))). Wenn P0 und P gleich sind (was man natürlich gerne hätte, weil dann das Netz die gewünschte Ein- Ausgabebeziehung hätte), dann ist der Informationsgewinn 0. Es gilt also G zu minimieren, und dazu wird wieder die Gradientenmethode verwandt. Es müssen also die partiellen Ableitungen von G berechnet werden. Eine mittellange Rechnung ergibt \f(∂G;∂cn,n') = - \f(1;T) · (p0n,n' - pn,n'), was zu einer Lernregel der Form ∆cn',n = η · (p0n,n' - pn,n') führt, wobei η eine Lernrate ist. Die Größen auf der rechten Seite sind beobachtbar; es ist eigentlich erstaunlich, daß sie nur von dem Verhalten der beiden Neuronen abhängen. Auf diese Weise kann man die Wahrscheinlichkeit optimieren, in einen gewünschten globalen Zustand zu kommen. Es sei aber angemerkt, daß wir, wie stets bei der Gradientenmethode, nur ein lokales Optimum garantieren können. Weiter ist zu vermerken, daß das Training der Boltzmannmaschine mit dieser Lernregel sehr zeitaufwendig ist, weil zum Messen der Wahrscheinlichkeiten dien Maschine erst in ein Gleichgewicht gebracht werden muß, die methode des Abkühlens muß also mehrfach durchlaufen werden. In Termini von Eingabe E und Ausgabe A sieht das Maß G so aus: \I\su(E,A; ;P0(A|E) · ln(\f(P0(A|E);P(A|E)))). In dieser Sprechweise optimieren wir die bedingten Wahrscheinlichkeiten, daß bei Eingabe E die Ausgabe A erfolgt. (Man vergleiche hierzu die Überlegungen aus Lernende Systeme I im Zusammenhang mit dem TDIDT-Verfahren.)
81
82
§ 9 Mustererkennung 9.1 Allgemeines Die Mustererkennung hat verschiedene Teilaufgaben und mögliche Variationen. Die Aufgabe ist stets so, daß ein Muster vorgelegt wird und "erkannt" werden soll. Dies kann zweierlei bedeuten: 1) Das Muster soll klassifiziert werden, d.h. ein Klassenindex ist die Ausgabe. 2) Das Muster soll einem anderen zugeordnet werden, d.h. ein weiteres Muster ist die Ausgabe. Gibt es nur bestimmte zugelasssene Ausgabemuster, so wird auch hier eine Klassifikation erreicht. Die verschiedenen möglichen Phasen stellen sich so dar: a) Musterspeicherung: Möglichst viele Muster sollen in das System "hineingebracht" werden. b) Musterwiedergabe: Bei Eingabe eines der gespeicherten Muster soll dieses wieder ausgegeben werden. Vom Standpunkt traditioneller Datenbanken aus gesehen erscheint dies keine besonders sinnvolle Aufgabe zu sein; der Sinn wird erst dann klar, wenn man sich vorstellt, daß die Eingabe auch verrauscht sein darf. Wird ein beliebiges Muster eingegeben, soll ein möglichst ähnliches unter den gespeicherten Mustern ausgegeben werden. Die gespeicherten Muster sollen also Fixpunkte und Attraktoren mit einem möglichst großen Anziehungsbereich sein. Im statistischen Falle soll der Erfolg mit möglichst großer Wahrscheinlichkeit eintreten. Ein wichtiger Aspekt ist auch, eine möglichst große Anzahl von Mustern zu erkennen. Dieser Zahl sind durch die Informationstheorie Grenzen gesetzt. c) Mustervervollständigung: Wenn nur ein Teil eines gespeicherten Musters eingegeben wird, soll das ganze Muster ausgegeben werden. a) bezeichnet man auch als die Lernphase, während b) und c) zur Erkennungsphase zählen. Vorgelegt werden können die Muster auf dreierlei Weisen: In einer bestimmten Reihenfolge, in einer zufälligen Reihenfolge oder parallel. Eine recht allgemeine Methode zur Musterspeicherung und Musterwiedergabe knüpft an die Überlegungen zur Memorymatrix in 4.7 an und verwendet dabei die in 6.1 eingeführten Lernregeln. Musterspeicherung: Wir stellen uns auf einen etwas allgemeineren Standpunkt, der schon im Anwendungsbeispiel in 4.7 eingenommen wurde: Es seien ((xji)1≤i≤N, (yji)1≤i≤N | 1 ≤ j ≤ M) M zu speichernde Musterpaare; d.h. bei Eingabe von xj soll yj ausgegeben werden. Ein Spezialfall ist dabei xj = yj. Sei nun R eine der Regeln aus 6.1, z.B. die Hebbregel, so bilden wir die Gewichtsmatrix (die Memorymatrix aus 4.7) gemäß dieser Regel. Im Falle der Hebbregel erhalten wir dann für ein Ein-Ausgabepaar (x,y) cij = xi . yj . Auf diese Weise erhalten wir bei allen angegebenen Regeln eine nicht unbedingt symmetrische N≈ N- Matrix. Es sei aber angemerkt, daß für diese Überlegungen symmetrische Matrizen stets ausreichen, weil sich jede quadratische Matrix C als Summe einer symmetrischen und einer schiefsymmetrischen Matrix darstellen läßt: C = 1/2 . (C + CT) + 1/2 . (C - CT), wobei CT die zu C transponierte Matrix ist. Hat der Eingaberaum die Dimension L und der Ausgaberaum die Dimension N, dann erhalten wir eine L≈N- Gewichtsmatrix.
82
83 Nun ergibt sich aber die Frage nach Vorgehensweise bei mehreren Musterpaaren. Die gerade vorgestellte Methodik muß iterativ erweitert werden; das kann auf verschiedene Weisen geschehen. Es seien die M Musterpaare ((xk,yk) | 1 ≤ k ≤ M) vorgelegt, die gespeichert werden sollen. Eine Möglichkeit bietet das Modell von Palm an, was schon in 4.7 verwandt wurde. Dort wird cij = max( xki . ykj | 1 ≤ k ≤ M) gesetzt. Man erhält wieder eine 0-1-Matrix und cij ist genau dann gleich 1, wenn in mindestens einem Muster die Synapse nach der Hebbregel verstärkt wird, d.h. die i-te Eingabe und die j-te Ausgabe gleichzeitig aktiv ist. Im Falle des Hopfieldnetzes in 9.2 wird etwas anders vorgegangen. Musterwiedergabe: Die Grundschritte sind typischerweise: (1) Multiplikation von Eingabevektor x und Gewichtsmatrix c; (2) Anwenden einer Schwellwertfunktion. Durch (1) entsteht ein Vektor v = c . x; die Schwellwertfunktion macht daraus wieder einen 0-1-Vektor u. Im Modell von Palm wird die Schwelle θ (wie in 4.7 ) als die Anzahl r der Einsen im Eingabevektor x gesetzt. Also ist die Ausgabe: 0 ui = wenn vi < θ; 1 wenn v ≥ θ i Entsprechend gehen wir im Hopfieldnetz in 9.2 vor. Naturgemäß interessieren wir uns dafür, ob und unter welchen Umständen ein gespeichertes Muster auf diese Weise richtig wiedergegeben wird. Es gibt zwei Arten von Fehlern: a) Anstatt einer richtigen 1 wird eine 0 ausgegeben; b) anstatt einer richtigen 0 wird eine 1 ausgegeben. Auch wenn die Gewichtsmatrix symmetrisch ist, sind es die Fragen a) und b) keineswegs, denn die Schwellwertfunktion reflektiert diese Symmetrie nicht. Wir nehmen Musterpaar (x j ,y j ) mit entsprechenden vj i und uj i sowie neuronenabhängigen Schwellwerten hi. Nun machen wir hier eine weitere Annahme: Alle Eingabevektoren haben eine feste Anzahl e von Einsen. Als erstes betrachten wir a) und dazu yjk = 1. Dann gilt: \I\su(i=1;N;xji . cik) = \I\su(i=1;N;xji . cik· yjk ) ; nach Definition der Gewichte ergibt dies dann \I\su(i=1;N;xji . yjk) = \I\su(i=1;N;xji ). Damit gilt dann vjk = \I\su(i=1;N;xji . cik) = e; für jede Wahl des Schwellwertes θk ≤ e ergibt sich also u jk = yjk = 1. Unter diesen Umständen werden also alle Einsen richtig ausgegeben. Nimmt man noch die Möglichkeit von Fehlern bei den Matrixelementen an, so wird man sicherheitshalber θj < e setzen. Um die Frage b) zu analysieren machen wir eine informelle stochastische Überlegung. Wenn die Wahrscheinlichkeit der Koordinaten von Eingabevektoren eine 1 zu enthalten stets gleich ist, dann ist diese Wahrscheinlichkeit e/N. Wenn nun die Ausgabevektoren ganz überwiegend nur Einsen haben, dann ist auch die Wahrscheinlichkeit, daß für ein l das Produkt xl i . ylk = 1 ist, annähernd (wenn auch etwas kleiner als) e/N. Die Wahrscheinlichkeit, daß die Ausgabe (fälschlich) eine 1 enthält, steigt damit, daß die
83
84 Einsen der M Muster an verschiedenen Stellen stehen (was aber nicht der Normalfall ist), weil dann mehr cik = 1 und damit auch vjk = 1 sind. Bei M Mustern können wir die Wahrscheinlichkeit für cik = 1 mit M · e / N abschätzen. Für ujk = 1 muß nun mindestens θk mal vjk = 1 passieren. Setzen wir noch q = M · e / N, so erhalten wir als Abschätzung der Wahrscheinlichkeit P für eine fälschlich gesetzte 1beim k-ten Neuron : P ≤ \I\su(i=θk;e;qi(1 - q)e - i (\O\AC(\S\UP5(e);\S\DO5(i)))) Die einzelnen Terme der Summe (die Binomialverteilungen beschreiben) besagen, daß bei e-maliger unabhängiger Wiederholung das von uns gewünschte Ereignis mit der Wahrscheinlichkeit q genau i-mal eintritt; dabei muß i mindestens hk und kann höchstens e sein. Um die Fehlerwahrscheinlichkeit klein zu halten, muß man verlangen, daß q sehr klein und θk relativ nahe bei e ist; das impliziert aber M · e << N. Bei der Diskussion von a) wurde gesagt, daß man aus Sicherheitsgründen gern θ j < e wählen würde; diese Überlegungen zeigen, daß dann die andere Irrtumswahrscheinlichkeit steigt. Es liegt also in der Tat ein Motiv vor, alle θj = e zu wählen. Assoziativspeicher: Die Verbindungsmatrix c speichert also im Idealfall diejenigen Muster, die auch richtig wiedergegeben werden. Als Speicherkapazität K(N) wird in Abhängigkeit von der Neuronenzahl N die Anzahl M von Mustern definiert, die nach der Speicherung richtig wiedergegeben werden können. In [Pa 81] wird gezeigt, daß die Anwendung der Hebbregel zu größeren Kapazitäten führt als andere Regeln. Bei der Mustererkennung sollen die vorgelegten Muster wieder ausgegeben werden. Wie schon im Beispiel 4.7 hat man aber häufig eine andere Situation: Auf bestimmte Eingabevektoren xk , 1 ≤ k ≤ n, sollen bestimmte Ausgabevektoren uk , 1 ≤ k ≤ n, wiedergegeben werden. Es kann hierfür ganz genauso wie im Falle der Musterkennung vorgegangen werden. Mit ansteigender Musterzahl vergrößert sich hier einmal die hineingesteckte Information, aber auch die Wahrscheinlichkeit einer fehlerhaften Ausgabe. Für das Palm-Modell erhält man eine maximale Informationsspeicherung, wenn M ƒ \f(1;4s2) . N2 ist, mit s = O(ln N). Dabei wird (auch im folgenden in 9.2) davon ausgegangen, daß für ein Eingabemuster die Wahrscheinlichkeiten für eine 0 und eine 1 gleich (jeweils 1/2) sind.
9.2 Mustererkennung mit dem Hopfieldnetz Die Neuronenzahl sei N und es sollen M viele Muster xk = (xk1, ...,xkN ), 1 ≤ k ≤ M, gespeichert werden wobei wir uns M<< N vorstellen. Im Hopfieldnetz müssen zunächst die Gewichte festgelegt werden. Sie müssen symmetrisch gewählt werden und es darf von keinem Neuron zu sich selbst eine Verbindung bestehen. Die Festlegung geschieht mit Hopfield's Lernregel, sie wurde bereits in 6.1 eingeführt. Dort standen nur zwei Muster zur Debatte und die Regel wird hier entsprechend (iterativ) auf mehrere Muster erweitert; Man geht hier aber etwas anders als im Modell von Palm in 9.1 vor. Wie früher angedeutet wird sie schreibtechnisch einfacher, wenn man als Aktivitätszustände -1 und +1 wählt. Dies wollen wir auch hier tun und treffen die Aktivitäten des Neurons k die Vereinbarung: ak(t) {-1, 1}.
84
85 Definition der Gewichte:
= j))
cij = \B\LC\{(\A\AL(\I\su(k=1;M;xki . xkj) für i ≠ j; ; 0 für i
Die cij reflektieren die Ähnlichkeiten, die zwischen den xi und xj bestehen anders als beim Modell von Palm. Diese Gewichtsdefinition hat den Vorteil, daß bei einem neuen (M+1)-ten Muster die Gewichte sofort angepaßt werden können durch die Anweisung cij := cij+ xM+1i . xM+1j. Man sieht auch sofort, daß die Gewichte symmetrisch sind. Der eigentliche Lernalgorithmus soll einen geeigneten Aktivitätszustand erzeugen. In der folgenden Beschreibung sei der Schwellwert θ = 0 und f = fθ = f 0 sei die zugehörige Schwellwertfunktion.
85
86
Der Lernalgorithmus: 1) Initialisiere die Aktivitäten zur Zeit t = 0: ai(0) = -1 oder 1, beliebig 2) Iterationsschritt: aj(t+1) = f ( \I\su(i=1;N;ai(t) . cij) ), 1 ≤ j ≤ N 3) Abbruchkriterium: a ( t ) = a ( t+1 )
Die Initialisierung der Aktivitäten bedeutet die Vorgabe eines Eingabemusters. Die Aktivitäten zur Zeit t bilden gleichzeitig die neue Eingabe, die zu den Aktivitäten zur Zeit t+1 führen. Bei der Analyse dieses Algorithmus vermerken wir vorab, daß die grundsätzlichen Fragen der Konvergenz schon in 8.1 abgehandelt wurden. Hier interessieren aber noch nähere Information, vor allem, gegen welches Muster der Algorithmus konvergiert. Wir beginnen mit einem der ursprünglichen Muster, etwa xk , und initialisieren die Aktivitäten mit diesem Muster, d.h. wir setzen a(0) = xk. Sodann ist der Nettoinput in das Neuron j netj = \i\sunet(i; ;cijxki) = \i\su(i≠j; ; \I \su (l=1;M;xli . xlj . xki)) Diesen Term spalten wir nun bezüglich des Musters xk in einen Signalterm und einen Rauschterm auf. Der Signalterm enthält den Anteil, der auf das Muster xk selbst zurückzuführen ist und der Rauschterm enthält die Einflüsse der restlichen Muster: netj = Signalj + Rauschj Signalj = \I\su(i≠j; ;xki . xkj . xki) = xkj . (\I\su(i≠j; ;xki . xki) ) = (N -1) . xkj Rauschj = \i\su(i≠j; ; \I \su (l≠k;;xli . xlj . xki) = \I\su(l≠k; ;xlj . \I\su(i≠j; ;xli . xkj))) Setzen wir N > 1 voraus, dann verstärkt der Signalterm die Aktivität des Musters xk mit einem positiven Faktor und die Schwellwertfunktion reproduziert die alte Aktivität, d.h. wir haben a(1) = a(0). Mit anderen Worten: Wenn die Rauschterme alle verschwinden würden, wäre jedes der eingespeisten Muster ein Fixpunkt des Netzes; der Lernalgorithmus würde sofort abbrechen. Eine andere Ausdrucksweise dafür ist: "Die eingegebenen Muster werden vom Netz richtig erkannt." Würden wir ein Muster y eingeben, daß sich von xk an r Stellen unterscheidet, dann wäre netj = \i\sunet(i; ;cijyi ) und Signalj = (N - 1 - 2r) . xkj , für r < (N - 1)/2 hätten wir also f( netj ) = xkj ; die durch den Lernalgorithmus gelieferte Zustandsfolge wäre dann im zweiten Schritt stabil. Bei verschwindendem Rauschterm sind die eingegebenen Muster also sogar Attraktoren in einem Kreis mit dem Hammingradius (N - 1)/2 - 1 ( der Hammingabstand zweier Vektoren ist die Anzahl der Koordinaten, an denen sie sich unterscheiden). Als nächstes studieren wir die Rauschterme. Jeder Summand \I\su(i≠j; ;xli . xki) ist bis auf einen Fehler vom Betrag 1/N das Skalarprodukt von xk und xl (dieser Fehler kommt auch nur dadurch zustande, daß die cii = 0 gesetzt wurden). Sind alle Muster paarweise orthogonal, so gilt | Rauschj | ≤ M/N. Weil wir M << N vorausgesetzt hatten,
86
87 liefert das nur eine kleine Störung, die die obigen Konvergenzbetrachtungen nur insofern beeinträchtigt, als der Einzugsbereich der Muster etwas kleiner wird. Nun sind gewöhnlich in einer vorgelegten Menge von Mustern diese nicht paarweise orthogonal, sondern irgendwie statistisch verteilt. Zwei Fragen ergeben sich hier: 1) Wieviel Muster kann das Netz richtig erkennen, was ist gegebenenfalls die Irrtumswahrscheinlichkeit ? Das hängt sowohl von der Art der Muster (Orthongonalität) wie auch ihrer Anzahl ab; das Kriterium ist, die Rauschterme klein zu halten. 2) Wie groß ist dann der Anziehungsbereich dieser Muster (als Attraktoren) ? Diese Fragen sind genau noch nicht richtig beantwortet; ihre Untersuchung ist auch recht aufwendig. Um sicher zu gehen, muß jedenfalls die Neuronenzahl immer sehr groß gewählt werden. Die Berechnung der Wahrscheinlichkeit einer fehlerhaften Wiedergabe wurde in [Schü88] durchgeführt. Es ergab sich zunächst, daß die Wahrscheinlichkeit p(M,N) der Ausgabe einer 0 statt einer richtigen 1 praktisch dieselbe wie die der Ausgabe einer 1 statt einer richtigen 0 ist; M ist wieder die Anzahl der Muster und N die Neuronenzahl. Für die Information I(M,N) ergab sich I(M,N) = 1 - p(M,N). log2(\f(1;p(M,N))) - (1 - p(M,N) . log2(\f(1;1 - p(M,N))) . Die maximale Information ergab sich, wenn etwa M = 0,279N ist, d.h die optimale Musterzahl liegt bei etwa 30% der Neuronen. Wir hatten festgestellt, daß bei kleiner Musterzahl die eingegebenen Mustern Attraktoren des Netzes sind. Eine natürliche Frage ist, ob es nicht noch weitere Attraktoren, also Minima der Energiefunktion gibt. Die Energiefunktion war für die möglichen Zustände 0 und 1 definiert, was sich auf +1 und -1 umrechnen läßt. Eine für uns praktische Form von E hat dasselbe Aussehen wie im 0-1 Fall: E = - 1/2 . \I\su(n; ; \I\su(n'≠n; ; an · an' . cn',n)) . Aus der Symmetrie der Gewichte folgt sofort eine erste Antwort auf unsere Frage: Mit jedem Attraktor a ist stets auch -a = (-a1,...,-aN) ein Attraktor. Es gibt aber i.A. noch weitere Attraktoren. Dazu nehmen wir uns eine ungerade Anzahl M von gespeicherten Mustern, Daraus bilden wir uns einen "gemischten" Zustand amix durch amix i = sgn(a1 i +(-) a2 i +(-)...+(-) aM i), d.h. Linearkombinationen mit den Faktoren +1 oder -1; dabei ist sgn(x) die Vorzeichenfunktion. Für ungerades M haben diese immer den Wert +1 oder -1, es ergibt sich für amix also stets ein legitimer Zustand. Aus rein rechentechnischen Gründen wählen wir der Einfachheit halber N als durch vier teilbar und wir betrachten für amix nur Summen und spezialisieren uns weiter auf M = 3. Wir haben dann amixi = sgn(a1i + a2i + a3i) für 1 ≤ i ≤ N. Ein Beispiel (+ steht für 1 und - für -1) sei für N = 16: a1 = (+, +, +, +, -, -, -, -, +, +, -, +, -, +, -, -) a2 = (+, +, +, +, -, -, -, -, -, -, +, -, +, -, +, +) a3 = (+, +, -, -, +, +, -, -, +, -, -, +, +, -, -, +) a mix = (+, +, +, +, -, -, -, -, +, -, -, +, +, -, -, +) Wir haben amix so gewählt, daß amix in 3/4 aller Komponenten (also hier 12) mit allen drei Mustern ai übereinstimmt. Das ist auch im Mittel der Fall, weil z.B. amixi ≠ a1i nur dann sein kann, wenn a2i und a3i beide ein anderes Vorzeichen als a1i haben. Es gilt dann Hammingabstand(amix, al) = N/4 für 1 ≤ i ≤3 und es folgt \I \su( i ; ;ali . amixi) = N/2. Für netj erhalten wir bei Eingabe von amix jetzt: netj = \i\sunet(i; ;cij · amixi) = \i\su(i; ; \I \su( l=1 ;M;ali . alj . amixi)) = \i\su(1; M; alj · \I \su( i; ;ali . amixi)) = N/2 ·\I \su( l=1 ; M;alj) = N/2 · amixj. 87
88 Es ist also amix ein Fixpunkt. Diese Argumentation beruhte sehr wesentlich darauf, daß wir amix so wählen konnten, daß es zu allen eingegebenen Mustern (die die Gewichte definierten) einen nicht zu kleinen Hammingabstand hatte. Bei zu viel gespeicherten Mustern ist das natürlich nicht mehr möglich. Ohne Beweis sei vermerkt, daß es noch weitere Attraktoren geben kann, die nicht so einfach mit den gespeicherten Mustern zusammenhängen. Generell heißen andere Attraktoren als die gespeicherten Muster auch Geisterzustände. Sie sind unerwünscht und man interessiert sich deshalb für Lerntechniken, die solche Muster wieder "verlernen". Die Mustervervollständigung kann beim Hopfieldnetz mit den gleichen Methoden wie die Mustererkennung erfolgen. Alle erwähnten Begriffsbildungen sind verwendbar und die entsprechenden Bemerkungen gelten in derselben Weise.
9.3 Mustererkennung mit dem Hammingnetz Das Hammingnetz hat seinen Namen vom Hammingabstand. Der Hammingabstand zwischen zwei Vektoren gleicher Länge ist die Anzahl der Koordinaten, auf denen sie sich unterscheiden. Die Aufgaben des Hammingnetzes kann man auch dem Hopfieldnetz stellen: Wir speichern eine Reihe von Mustern, geben dann ein verrauschtes Muster x ein und suchen eines der gespeicherten Muster, daß zu x einen minimalen Hammingabstand hat. Zunächst zur Topologie des Netzes. Es ist praktisch, sich das Netz in einen oberen und einen unteren Teil zu zerlegen: M Ausgabeknoten oberes Netz vollständig vernetzt
M mittlere Knoten unteres Netz N Eingabeknoten Dem Netz werden M zu lernende Muster mit je N binären Werten ( hier wieder -1 und 1) vorgelegt, wobei wieder M<
89
g(x) =
{; C für x ≥ C ; ; 0 für x < 0
Dabei ist C eine zu wählende (kleine) positive Konstante; zwischen 0 und C wird linear interpoliert. Die M Eingabemuster seien (zij), 1≤i≤N, 1≤j≤M. Bestimmung der Gewichte zwischen Eingabe- und mittleren Neuronen: cij = 1/2. zij, 1≤i≤N, 1≤j≤M. Bestimmung des Schwellwertes: θ = -1/2 . N Diese Festlegung hat für ein mittleres Neuron nj bei Eingabe von x die Nettoeingabe netj = \I\su(i=1;N; zij. xi ) zur Folge. Initialisierung der Aktivitäten der mittleren Neuronen: aj (0) = g(netj - θ) = g(\I\su(i=1;N; 1/2.zij. xi ) - θ ) , 1 ≤ j ≤ M.
Es gilt nun g(\I\su(i=1;N; 1/2.zij. xi ) - θ ) = g(\I\su(zji≠xi;; 1/2.zij. xi )+ \I\su(zji=xi;; 1/2.zij. xi + 1/2 . N)) = g( − 1/2.Hammingabstand( zj, x) + 1/2.(Ν − Hammingabstand( zj, x)) + 1/2 . N)) = g(Ν − Hammingabstand( zj, x)). Hier verwenden wir, daß die Zustände die +1 und -1 sind, wodurch das Minuszeichen in den ersten Teilsummanden hereinkommt. Das Neuron nj erhält also eine umso größere Aktivierung, je näher die Eingabe bei dem Muster zj liegt. Der Index j0 des Neurons mit der größten Aktivierung ist dann die Nummer des zu identifizierenden Musters. Der restliche Teil des Netzes hat keine andere Aufgabe als dieses Neuron auf 1 und alle anderen auf 0 zu setzen. Da die Neuronen des vollständig vernetzten Teiles nur Kopien der mittleren Neuronen sind, nehmen wir dieselben Bezeichnungen nj. Definition der Gewichte des vollständig vernetzten Teils: w ij = { 1 für i = j ; ; - ε f ü r i ≠ j Dabei ist 0 < ε < 1/M eine feste Konstante.
1 ≤ i,j ≤ M
Die Verbindungen zwischen verschiedenen Neuronen sind also hemmend. Der Lernalgorithmus ist duch die Arbeitsweise des Netzes gegeben. Der Lernalgorithmus:
89
90
1) Initialisierung: Durch die Initialisierung der mittleren Neuronen gegeben. 2) Iterationsschritt: aj (t+1) = g(netj (t+1)) = g(\I\su(i=1;M;wij . aj(t)) ) = g ( aj (t) - ε . \I\su(i≠j; ; ai(t)) ) 3) Abbruchkriterium: a(t+1) = a(t) Die Aktivitäten der Neuronen können nicht negativ werden, da die Schwellwertfunktion sie dann auf Null setzen würde. Ist das Abbruchkriterium erfüllt, sind entweder alle Aktivitäten Null oder genau eine ist von Null verschieden. Hätte man ε zu groß gewählt, so würde in der Tat das Nullmuster entstehen. Unter der Bedingung 0 < ε < 1/M läßt sich aber zeigen, daß das Verfahren stets so konvergiert, daß das einzige aktive Neuron die Nummer des Musters mit dem geringstens Hammingabstand zum Eingabemuster trägt. Ist der Lernalgorithmus zum Abbruch gekommen, geben die Neuronen ihre Aktivitäten noch an die Ausgabeneuronen unverändert weiter. Wenn man will, kann man die Erzeugung des gesuchten Musters dann noch nachträglich vornehmen. Dies geschieht jedoch nicht automatisch, sondern erfordert einen Zusatzaufwand, was in Relation zum Hopfieldnetz ein Nachteil ist. Ein Vorteil ist jedoch, daß bei einer beliebigen Eingabe die Klassifikation immer dasjenige Muster liefert, was zur Eingabe den geringsten Abstand hat; insbesondere werden die ursprünglichen Eingaben alle richtig klassifiziert. Beim Hopfieldnetz kann das Ergebnis der Iteration jedoch ein Muster sein, das sich nicht unter den ursprünglichen Eingaben befindet; das Ergebnis der Klassifikation müßte dann die Antwort "Muster unbekannt" sein.
§ 10 Kombinatorische Optimierungsprobleme Wir wollen nun die Boltzmannmaschine auf ein Optimierungsproblem anwenden. Ein kombinatorisches Optimierungsproblem läßt sich definieren als ein Tripel (A, L, K) mit A : Menge von Alternativen L ∑ A : zulässige Alternativen, "Lösungen " K : L → |R : zu optimierende (zu minimierende oder zu maximierende) Kostenfunktion Gesucht ist eine Lösung mit einer optimalen Kostenfunktion.Ein solches Problem muß zunächst geeignet in einer 0-1-Kodierung formuliert werden. Diese sieht normalerweise so aus: Es wird eine Menge { x1,..., xN } von Boole'schen Variablen gewählt, xi ist also eine Variable mit Werten 0, 1 ; A ist die Menge aller Belegungen der Variablen. Wenn die Menge der Lösungen bekannt ist, kann man auf L auch verzichten und dann L = A setzen. Die zu optimierende Funktion K ist jedenfalls ein pseudo-boole'sche Funktion. Man unterscheidet zwischen globalen und lokalen Optima. Ein lokales Minimum (analog für ein Maximum) ( x1,..., xN ) ist dadurch charakterisiert, daß für jedes i, 1 ≤ i ≤ N, K( x1 ,...,x i, ..., xN ) ≤ K( x1 ,...,c(x i),..., xN ) gilt, wobei c(xi) das Komplement von xi ist. 90
91
Einem solchen kombinatorischen Optimierungsproblem soll nun eine BoltzmannMaschine mit N Neuronen derart zugeordnet werden, daß (im Falle der Minimierung, analog bei der Maximierung) folgende zwei Bedingungen gelten: B1. Die Energieminima von E korrespondieren zu Lösungen in L. B2. Kleinere Werte von E entsprechen kleineren Kosten K. Diese beiden Bedingungen leisten folgendes: a. Falls sich das Netz auf ein lokales Maximum einpendelt (durch Lernen), hat man eine Lösung berechnet. b . Approximation der Minima geben Näherungslösungen des Optmierungsproblems; bei NP-vollständigen Problemen kann man fast optimale Lösungen berechnen. Wie man so eine Boltzmann-Maschine erhält, bleibt den Überlegungen des Einzelfalls überlassen; die Bedingungen B 1 und B 2 müssen also stets nachgeprüft werden. Wir wollen dies in zwei Beispielen vorführen. In beiden Fällen sind die Verbindungen cii ≠ 0, so daß man eigentlich noch nachrechnen muß, daß bei jedem Schritt die Energie abnimt, worauf wir aber hier verzichten.
1. Beispiel:
Maximaler Schnitt
Aufgabe: Gegeben ist ein Graph ( V, E ) mit positiven Gewichten wij an den Kanten (i,j) E. Für nicht vorhandene Kanten seien die Gewichte 0; ebenfalls sei stets wii = 0. Gesucht ist eine Partition ( ein "Schnitt") von V: V = V1 ∪ V2, V1 ∩ V2 = ∅ mit Σ (wij | i V1 , j V2 oder j V1, i V2 ) maximal.
Die Gewichte sind hier stets symmetrisch. Die Formulierung mit Boole'schen Variablen ist einfach: Den N Knoten von V werden Variable xi zugeordnet und einer Partition (V1, V2 ) entspricht die Belegung x i = 1 für i ∈ V1 u n d x i = 0 für i ∈ V 2 . D i e Maximalitätsforderung wandeln wir in eine Anforderung an eine boole'sche Gleichung um. Die zu maximierende Summe lautet dann K = \I\su ( i=1;N; \I\su(j=i+1;N;wij{(1-xi)xj + xi(1-xj)})) Die N Variablen sind die Neuronen unserer Boltzmann-Maschine; vollständig spezifiziert ist sie durch die Wahl von Verbindungsstärken cij. Für eine solche Maschine berechnen wir im Aktivierungszustand a die Energiefunktion E. Dazu spalten wir die Verbindungen C auf: C = Cb ∪ Cw 91
92 Cb = { (cii) I i ∈ V } Cw ={ (cij) I (i, j) ∈ Ε, i ≠ j } Somit erhält man für die Energiefunktion der Boltzmannmaschine bei einer Aufspaltung in zwei Teilsummen E = -1/2.( \I\su(i=1;N; cii . xi2) + \I\su(i≠j; ;cij . xi . xj) ) ; dabei wird im zweiten Summanden über die Kanten summiert. Jetzt setzen wir bi = \I\su(j=1;N; wij) und erklären die Gewichte als cii = bi sowie cij = -2 wi j , falls (i, j) ∈ Ε, i ≠ j . Obwohl für die Gewichte des Graphen wii = 0 galt, haben wir die Verbindungen cii des Netzes anders gewählt! Daraus ergibt sich nun E = -1/2( \I\su(i=1;N;bi . xi2 ) −2 (\I\su(i≠j; ;wij .xi) .xj ) ). = -1/2 . [ \I\su(i=1;N; \I\su(j=1;N; w ij . xi 2 ) ) -2 \I\su ( i = 1 ; N ; N \I\su(j=i+1; ;wijxi)xj )] Weil wij = wji , wii = 0 sowie xi2 = xi gilt, folgt E = -1|2 .[ \I\su(i=1;N;\I\su(j=i+1;N;wij {( xi + xj ) - 2xixj})) ] = -1/2 K. Daraus folgt die Gültigkeit der Bedingungen B1 und B2, insbesondere entsprechen Minima der Energiefunktion Maxima der Funktion K. Als Übungsaufgabe überlege sich der Leser das folgende Beispiel.
Beispiel: Boltzmann-Maschíne im optimalen Zustand:
Graph G:
7 1 4
4
-2
2
3
2
-8
5
-4
-4 1
6
-6 -10
15
6
9 -2
-12 7 = Zustand 0 = Zustand 1
92
93
2. Beispiel:
Unabhängige Mengen
Eine unabhängige Menge in einem Graphen G = (V,E) ist eine Teilmenge V'∑ V sodaß für kein i, j V' die Kante (i, j) in E ist.
Aufgabe: Gegeben ein Graph G = (V,E) ; die Knotenzahl sei N. Gesucht eine unabhängige Teilmenge V'∑ V mit mit i V'I maximal. Zunächst muß dies Poblem wieder in einer 0-1 Formulierung mit Boole'schen Variablen kodiert werden. Für jeden Knoten i wählen wir ein xi . Jeder Teilmenge V' entspricht dann die Belegung xi = 1 für i ∈ V' xi = 0 für i ∉ V'. Weiter setzen wir li j = 1 für (i,j) ∈ E li j = 0 für (i,j) ∉ E. Damit können wir unser Optimalitätsproblem wieder in eine Anforderung an eine boole'sche Gleichung umwandeln; unser Problem sieht dann so aus: Maximiere K = \I\su(i=1;N; xi )unter den Nebenbedingungen xi . xj . li j = 0 für i ≠ j und i, j = 1, ..., N. Die Vorgehensweise ist ganz ähnlich wie beim ersten Beispiel. Insbesondere werden die Verbindungen C wieder aufgespalten: C = Cb ∪ Ch Cb = { cii I i ∈ V } Ch ={ cij I i, j ∈ Ε, i ≠ j }. Der Index h steht für "hemmend", weil diese Verbindungen inhibitorisch gewählt werden. Die Festlegung der Gewichte erfolgt mittels eines noch zu bestimmenden reellen Parameters λ ∈ |R , λ > 0. Wir setzen: Cb : ci i = λ ; Ch : c ij = c < - λ . Die genaue Größe von c interessiert dabei nicht. Für die Energiefunktion erhalten wir wie oben E = -1/2( \I\su(i=1;N;cii . xi2 ) + (\I\su(iCh; ;wij .xi) . xj)) Wir haben für solche Verbindungen die Bedingungen B 1 und B 2 nachzuweisen. Zu diesem Zwecke partitionieren wir die Menge A der Aktivierungszustände: Α = ΑL ∪ ΑnL , 93
94 wobei die Zustände in ΑL den Lösungen und die Zustände in ΑnL den nicht-Lösungen entsprechen. Wir beachten zunächst generell, daß der erste Summand in der Klammer von E nur positive und der zweite nur negative Beiträge liefert. Wenn nun ein Zustand a ∈ ΑnL vorgelegt ist, so müssen zwei Knoten aus V' verbunden und deshalb zwei Neuronen mit einer hemmenden Verknüpfung aktiviert sein, also etwa ai = aj = 1. Wir ändern nun den Aktivierungszustand eines der beiden Neuronen von 1 auf 0, so daß wir jetzt z.B. ai = 0 haben. Das bewirkt einen Energieübergang von Ea nach Ea(i) und für die Differenz gilt ∆Ea(i) = Ea - Ea(i) = -1/2 ( cii + cij + \I\su( k≠j,(i,k)Ch; ;cik ) ) ≥ 1/2(-c -λ) > 0. Daher kann a kein lokales Minimum sein und die Bedingung B1 gilt. Für jedes a ΑL gilt nun E = -1/2.\I\su(i=1;N;cii . ai)2 = -1/2. \I\su(i=1;N;λ. ai) \I\su(i=1;N;xi) , d.h. kleinere Energien entsprechen größeren Kosten. Daraus folgt auch die Gültigkeit der Bedingung B2. In beiden Beispielen haben wir bisher nur den nicht stochastischen Teil der Boltzmannmaschine, d.h. ihre Eigenschaft als Hopfieldnetz, ausgenutzt. Die Methode des simulated annealing kann dann ausgenutzt werden, um die Konvergenzgeschwindigkeit auch in diesen Beispielen zu erhöhen und approximative Lösungen zu erhalten.
§11 Interpolation und Extrapolation Bei den bisher behandelten Fragen der Mustererkennung ging es im wesentlichen darum, Muster zu speichern, die dann Attraktoren des Netzes waren; das konnte für die Mustererkennung oder Mustervervollständigung verwendet werden. Es ist aber auch interessant, sich ganze Folgen von Mustern (oder auch einfach Zahlen) zu denken, deren Bildungsgesetz gelernt werden soll, um die Folge an unbekannten Stellen vorherzusagen, etwa in der Zukunft, wenn die Folge eine zeitliche Reihenfolge darstellt. Wir wollen diese Frage in allgemeiner Weise angehen. Untersuchungsgegenstand sind Funktionen y = f(t), die an bestimmen Argumentstellen t1< ...< tmax bekannt sind und für deren Werte an weiteren Stellen man sich interessiert. Die Funktion soll an diesen Stellen möglichst gut angenähert werden, wir haben es daher mit einem Approximationsproblem zu tun. Die Aufgabe spaltet sich so auf: Interpolation: Bestimme f(ti + ∆) für 1 ≤ i < max und ti + ∆ < ti+1. Extrapolation: Bestimme f(tmax + ∆). Ein Spezialfall der Extrapolation ist die Vorhersage von Funktionen, die an diskreten Zeitpunkten t = 1, 2, ... definiert sind und ein sog. chaotisches Verhalten haben. Das bedeutet, daß ihre Werte zwar wohlbestimmt sind aber aufgrund des unübersichtlichen Verhaltens der Funktion schwer vorherzusagen sind; obwohl sie völlig deterministisch sind sehen sie doch wie stochastisch erzeugt aus. Eine solche Funktion ist durch die sog. Feigenbaumreihe gegeben: xn+1 = 4·α·xn·(1-xn), mit x0 [0,1] und 0,75 < α < 1. Ein anderes Beispiel ist im Intervall [-1,1] durch die Parabelgleichung xh+1 = 1 - 2xh2 gegeben. Solche Probleme führen auf das Gebiet der Zeitreihenanalyse.
94
95
In 4.1 hatten wir angemerkt, daß neuronale Netze ein universelles Berechnungsmodell darstellen. Wenn wir reelle Ein- und Ausgaben zulassen, dann fragen wir uns natürlich, welche stetigen oder differenzierbaren Funktionen f: |Rn µ |R durch ein Netz realisiert werden können. Schon die Einschränkung auf Feedforwardnetze mit Sigmoidfunktionen zur Aktivierung erlaubt eine interessante Antwort. Einen ersten Anhaltspunkt ergibt der folgende Satz. Satz (Kolmogorov): Für jede stetige Funktion f(x1,...,xn) existieren stetige Funktionen fi und jij von einem Argument mit f(x1,...,xn) = \I\su(i=1;2n+1;fi(\I\su(j=1;n;jij(xj)))). (Anmerkung: Dieser Satz löst das 13. Hilbert'sche Problem, daß nach der Darstellung von n-stelligen reellen Funktion durch einstellige mittels Superposition und Summenbildung fragte; Hilberts Vermutung war, daß dies i.A. nicht möglich sei, vgl. [Lo 76]) Falls die fi und die jij als als Aktivierungsfunktionen zugelassen wären, hätten wir hier eine Realisierung durch ein vierschichtiges Netz. Leider ist dies nicht der Fall, diese Funktionen sind alles andere als Sigmoidfunktionen und in der Regel noch nicht einmal differenzierbar (diese Forderung ist z. B. bei den Backpropagation-Netzen sehr wesentlich); erschwerend kommt noch hinzu, daß die Form dieser Funktionen von f abhängt und sie nicht in parametrisierter Form darzustellen sind. In der Tat, Kolmogorov's Satz würde falsch, falls man ihn für den Bereich der differenzierbaren Funktionen formulieren würde. Es gibt aber auch eine positive Antwort: Satz: Sei n ≥ 2, f: [0,1]n µ [0,1] und > 0. Dann existiert ein k und Sigmoidfunktionen fi und jij , 1≤ i ≤ k, 1 ≤ j ≤ n, sodaß für alle (x1,...xn) |Rn gilt: | f(x1,...xn) - \I\su(i=1;k;fi(\I\su(j=1;n;jij(xj)))) | < . Zum Beweis siehe [Kurk 90], dort sind auch Abschätzungen für die Anzahl der benötigten verborgenen Neuronen gegeben. Diese Approximationseigenschaft neuronaler Netze ist prinzipiell gesehen schon deshalb ausreichend, weil auch eine einzelne Sigmoidfunktion bereits nur angenähert dargestellt werden kann. Über die Güte der Approximation ist damit freilich noch nichts ausgesagt. Wir wollen uns jetzt einer Approximationsaufgabe zuwenden; dabei werden wir auch eine anschauliche geometrische Vorstellung davon bekommen, wie das Netz konkret approximiert. Es wird zunächst eine wichtige Einschränkung bezüglich der Stellen gemacht, an denen die Funktion bekannt ist: Die Funktion sei für ein festes ∆ und feste m und t an den Stellen t, t - ∆, ..., t - (m-1)∆ gegeben; gesucht ist f(t + ∆). Diese Aufgabe soll jetzt ein neuronales Netz übernehmen. Der vorgestellte Ansatz wird so sein, daß das Netz neben m auch die Differenz ∆ als festen Parameter haben wird, während t variabel ist. Das Netz soll also letztendlich lernen, aus der Kenntnis von Funktionswerten von m äquidistanten Argumenten den nächsten vorherzusagen; Extrapolation liegt genau dann vor, wenn das Argument größer als alle bisher betrachteten Argumente ist. Zu lernen ist eine Funktion F von m Variablen mit der Eigenschaft f(t + ∆) = F(t, t - ∆, ..., t - (m - 1)∆). F definiert eine Hyperfläche im (m+1) - dimensionalen Raum. Das verwendete Netz ist ein vollständig vernetztes Feedforwardnetz. Es hat m Eingabeknoten und einen 95
96 Ausgabeknoten; sowie zwei Schichten verborgenen Neuronen. Wir verwenden die folgende Notation: c ij : Verbindungsstärken von der Eingabeschicht zur ersten Schicht verborgener Neuronen; c'jk : Verbindungsstärken von der ersten Schicht verborgener Neuronen zur zweiten Schicht verborgener Neuronen; c'' ka : Verbindungsstärken von der zweiten Schicht verborgener Neuronen zur Ausgabeschicht; θj : "Schwellwerte" der ersten Neuronenschicht; θ'k : "Schwellwerte" der zweiten Neuronenschicht; θa : "Schwellwert" des Ausgabeneurons; (Es handelt sich nicht um Schwellwertneuronen, sondern θ verschiebt nur den Wendepunkt der Sigmoidfunktion.) g(x) : Gemeinsam benutzte Sigmoidfunktion; xi = t - i · ∆, 0 ≤ i ≤ m - 1. Damit ergibt sich als explizite Darstellung der Ausgabe A(t) des Netzes A(t) = \I\su( k; ; c''ka · g(\I\su(j; ; c'jk · g(\I\su(i; ; cij · xi - θj) ) - θ'k)) - θa ) A(t) ist eine hochgradig nichtlineare Funktion, die sich auch durch folgende drei Gleichungen schichtenweise beschreiben läßt: A(t) = \I\su( k; ; c''ka · g(F2k - θ'k ) - θa ); F2k = \I\su(j; ; c'jk · g(F1j )); F1j = \I\su(i; ; cij · xi - θj.) Das hilft uns jetzt bei der geometrischen Veranschaulichung der Approximation. Die F1j (x0,...,xm-1) beschreiben uns Hyperebenen. Jedes g(F1j (x0,...,xm-1)) liefert eine Fläche, die in Abhängigkeit von jedem xi (wenn man die anderen Variablen festhält) eine Sigmoidkurve definiert. Bei zwei Variablen (also m = 1) können wir uns so eine Fläche wie im folgende Bild verschaffen:
96
97
(Der Anschaulichkeit halber ist das Achsenkreuz gedreht.) Die Multiplikation mit einem positiven c'jk streckt oder staucht die Fläche; ist der Faktor negativ, haben wir eine nach unten verlaufende Fläche. Nehmen wir zwei Summanden mit c'j1k = - c'j2k , so erhalten wir für die Summe S(x0, x1) = c'j1k · g(F1j1 ) + c'j2k · g(F1j2) bei geeigneten Gewichten das Bild:
Auf diese Weise können wir also "Wellenflächen" herstellen.Wir nehmen nun zwei weitere Neuronen und verschaffen uns damit eine weitere Welle, die senkrecht zur ersten liegt und addieren sie zur ersten, was dann etwa so aussieht:
97