Konnektionistische Wissensverarbeitung Vorlesung an der Technischen Universität Chemnitz Sommersemester 2006 Prof. Dr. Werner Dilger Konnektionistische Wissensverarbeitung Seite 2 Inhalt 1. Einleitung.................................................................................................................................................................... 4 2. Schwellenwertlogik .................................................................................................................................................... 4 2.1. Netze von Funktionen ......................................................................................................................................... 4 2.2. Synthese Boolescher Funktionen ........................................................................................................................ 6 2.3. Gewichtete Netze ................................................................................................................................................ 8 2.4. Rekurrente Netze ................................................................................................................................................ 9 3. Das Perzeptron .......................................................................................................................................................... 11 3.1. Perzeptrone und Parallelverarbeitung ............................................................................................................... 11 3.2. Implementierung logischer Funktionen ............................................................................................................ 12 3.3. Linear separierbare Funktionen ........................................................................................................................ 14 3.4. Anwendungen von Perzeptronen ...................................................................................................................... 16 3.5. Lernalgorithmen für Neuronale Netze .............................................................................................................. 19 3.6. Ein Perzeptron-Lernalgorithmus ....................................................................................................................... 22 4. Unüberwachtes Lernen und Clustering-Algorithmen ............................................................................................... 27 4.1. Kompetitives Lernen......................................................................................................................................... 27 4.2. Konvergenzuntersuchung ................................................................................................................................. 29 4.3. Hauptkomponentenanalyse ............................................................................................................................... 32 4.4. Anwendungen ................................................................................................................................................... 35 5. Mehrschichtige Netze ............................................................................................................................................... 36 5.1. Struktur und geometrische Visualisierung ........................................................................................................ 36 5.2. Gebiete im Eingabe- und Gewichtsraum .......................................................................................................... 38 5.3. Gebiete für zweischichtige Netze ..................................................................................................................... 41 6. Der Backpropagation-Algorithmus ........................................................................................................................... 43 6.1. Lernen als Gradientenabstieg ............................................................................................................................ 43 6.2. Allgemeine zyklenfreie Netze ........................................................................................................................... 45 6.3. Geschichtete Netze ........................................................................................................................................... 49 6.4. Rekurrente Netze .............................................................................................................................................. 55 7. Assoziative Netze ..................................................................................................................................................... 59 7.1. Assoziative Mustererkennung ........................................................................................................................... 59 7.2. Assoziatives Lernen .......................................................................................................................................... 61 7.3. Das Kapazitätsproblem ..................................................................................................................................... 66 7.4. Die Pseudoinverse............................................................................................................................................. 66 8. Das Hopfield-Modell ................................................................................................................................................ 70 8.1. Synchrone und asynchrone Netze ..................................................................................................................... 70 8.2. Definition der Hopfield-Netze .......................................................................................................................... 72 8.3. Konvergenz bei Hopfield-Netzen ..................................................................................................................... 75 8.4. Äquivalenz des Hopfield- und Perzeptron-Lernens .......................................................................................... 77 8.5. Parallele Kombinatorik ..................................................................................................................................... 78 9. Kohonen-Netze ......................................................................................................................................................... 83 9.1. Selbstorganisation ............................................................................................................................................. 83 9.2. Kohonens Modell .............................................................................................................................................. 83 9.3. Konvergenzanalyse ........................................................................................................................................... 86 9.4. Anwendungen ................................................................................................................................................... 90 10. Modulare Neuronale Netze ....................................................................................................................................... 92 10.1. Konstruktive Algorithmen für modulare Netze ............................................................................................ 92 10.2. Hybride Netze ............................................................................................................................................... 94 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 3 Literatur R. Brause: Neuronale Netze. Eine Einführung in die Neuroinformatik.2 Teubner-Verlag, Stuttgart, 1995. T. Kohonen: Self-organizing maps.2 Springer, Berlin, 1997. R. Rojas: Neural Networks. A systematic introduction. Springer, Berlin, 1996. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 1. Seite 4 Einleitung Programm der Vorlesung: In Kapitel 2 werden die Grundlagen der Neuronalen Netze, die einfachen funktionalen Elemente, behandelt. Sie zeichnen sich dadurch aus, dass sie aus den Eingaben berechnete Werte mit einem Schwellenwert vergleichen und davon abhängig eine Ausgabe erzeugen oder nicht. In Kapitel 3 und 4 wird die einfachste Form der Netze, das Perzeptron, zunächst nach Aufbau und Funktionsweise dargestellt und anschließend betrachtet, wie solche Netze lernen können. Diese Form des Lernens heißt „überwachtes Lernen“. Es gibt aber auch eine andere Form, das unüberwachte Lernen, dieses wird in Kapitel 5 eingeführt. Erweitert man die Perzeptrone, dann bedeutet dies vor allem, dass man eine komplexere Struktur definiert, und zwar indem man mehrere so genannte Schichten einführt. Welche Probleme dies grundsätzlich mit sich bringt, wird in Kapitel 6 dargestellt. Das Lernen in solchen mehrschichtigen Netzen erfolgt mit Hilfe des BackpropagationAlgorithmus, der in Kapitel 7 eingeführt wird. In den weiteren Kapiteln werden die Hopfield-Netze, die Kohonen-Netze und die wachsenden Zellstrukturen behandelt. 2. Schwellenwertlogik 2.1. Netze von Funktionen 2.1.1. Zyklenfreie und rekurrente Netze Ein Neuronales Netz wird zunächst als Black box betrachtet, es wird nur erwartet, dass aus bestimmten Eingaben bestimmte Ausgaben entstehen, die Parameter werden nicht alle spezifiziert, vielmehr sollen sie sich durch einen Lernprozess ergeben. Aus dieser Sicht stellt sich ein Neuronales Netz wie in Abbildung 2.1 dar. Das Netz realisiert eine Abbildung der Form F : n m x1 x2 xn .. . F .. . y1 y2 ym Abbildung 2.1 Die Funktion F wird realisiert durch eine Menge primitiver Funktionen, die in einem Netz miteinander verknüpft sind. Bei der Berechnung von F findet ein Informationsfluss durch das Netz statt. Ein Teil der Knoten berechnet Werte, die an andere Knoten als Eingaben weitergegeben werden. Enthält das Netz keine Zyklen, dann ist das Ergebnis der Berechnung wohldefiniert. Dabei benötigt man keine Synchronisation zwischen den Knoten, man muss aber voraussetzen, dass die Berechnung in den einzelnen Knoten ohne Zeitverzögerung vonstatten geht. Im Fall von rekurrenten Netzen spielt die Synchronisation zwischen den Knoten eine Rolle, denn hier kann die Ausgabe wieder als Eingabe an den selben Knoten oder an Knoten, die bereits in die Berechnung einbezogen waren, zurückgeführt werden. In diesem Fall liegt eine rekursive Berechnung ohne explizites Haltekriterium vor. Deshalb muss festgelegt werden, was das Netz berechnen soll, den Fixpunkt der rekursiven Auswertung oder ein Zwischenergebnis. Dazu wird angenommen, dass jede Berechnung durch einen Knoten eine bestimmte Zeit benötigt, z.B. eine Zeiteinheit. Die zum Zeitpunkt t eingehenden Argumente liefern ein Ergebnis zum Zeitpunkt t+1. Die Berechnung Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 5 kann nach einer bestimmten Zahl von Schritten gestoppt werden und die dann vorliegende Ausgabe als Ergebnis der Berechnung genommen werden. 2.1.2. Die Recheneinheiten Die Knoten eines Neuronalen Netzes heißen Rechenelemente oder Einheiten. Die Kanten des Netzes sind gerichtet, so dass die Information in einer vorgegebenen Richtung propagiert wird. Die Zahl der in eine Einheit eingehenden Kanten oder Eingaben sei nach oben unbegrenzt. Die eigentliche Berechnung durch eine Einheit soll allerdings möglichst durch eine einstellige Funktion ausgeführt werden. Deshalb müssen die n Eingaben durch eine integrierende Funktion zu einem Wert zusammengefasst werden. Dazu werden die Einheiten in zwei Funktionsteile unterteilt: Die Integrationsfunktion g fasst die n Argumente zu einem einzigen Wert zusammen. Die Ausgabe- oder Aktivierungsfunktion f erzeugt aus dem Wert von g eine Ausgabe. Abbildung 2.2 zeigt die allgemeine Struktur einer Einheit. Als Integrationsfunktion wird meistens die Addition verwendet. x1 x2 . .. g f f(g(x1, x2, ..., xn)) xn Abbildung 2.2 Die ursprüngliche Form Neuronaler Netze, wie sie von McCulloch und Pitts definiert wurde, war sogar noch einfacher, denn sie arbeiten nur mit binären Werten. Die Kanten können einen von zwei verschiedenen Typen haben, nämlich exzitatorisch und inhibitorisch. Jede McCulloch-Pitts-Einheit besitzt einen Schwellenwert . Abbildung 2.3 zeigt die Standarddarstellung einer McCulloch-PittsEinheit und der beiden Kantentypen. Die Einheit besteht aus einer weißen und einer schwarzen Hälfte. Eingehende Kanten kommen an der weißen Hälfte an, ausgehende Kanten verlassen die Einheit an der schwarzen Hälfte. Sie können sich in eine beliebige Anzahl von Kanten verzweigen. x1 exzitatorische Kante x2 . . . inhibitorische Kante xn McCulloch-Pitt-Einheit Abbildung 2.3 Die Eingabe in eine McCulloch-Pitts-Einheit wird nach folgender Regel verarbeitet: 1. Die Einheit bekomme die Eingaben x1, x2, ..., xn über n exzitatorische Kanten und die Eingaben y1, y2, ..., ym über m inhibitorische Kanten. 2. Ist m 1und hat mindestens eine der Eingaben y1, y2, ..., ym den Wert 1, dann wird die Einheit inaktiv gesetzt (inhibited) und das Ergebnis der Berechnung ist 0. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 6 3. Andernfalls wird die Summe x = x1 + x2 + ... + xn gebildet. Ist n = 0, dann ist x = 0. x wird mit dem Schwellenwert verglichen. Ist x , dann ist das Ergebnis der Berechnung 1 (die Einheit feuert), ist x < , dann ist das Ergebnis der Berechnung 0. 2.2. Synthese Boolescher Funktionen 2.2.1. Konjunktion, Disjunktion, Negation Einfache logische Funktionen können durch einzelne McCulloch-Pitts-Einheiten realisiert werden. Die Ausgabewerte 1 bzw. 0 werden mit den Wahrheitswerten wahr bzw. falsch identifiziert. Die Funktionen AND und OR werden durch die Einheiten von Abbildung 2.4 realisiert. AND OR x1 x1 2 1 x2 x2 Abbildung 2.4 Eine monotone logische Funktion f mit n Argumenten ist eine Funktion mit der Eigenschaft, dass an zwei Punkten x = (x1, ..., xn) und y = (y1, ..., yn) gilt: Sind die in y enthaltenen Einsen eine Teilmenge der in x enthaltenen Einsen, dann ist f(x) f(y). Satz 2.1: McCulloch-Pitts-Einheiten ohne inhibitorische Kanten können nur monotone logische Funktionen realisieren. 2.2.2. Geometrische Interpretation Logische Funktionen können auf einfache Weise geometrisch veranschaulicht werden. Bis zu dreistellige Funktionen lassen sich auch graphisch darstellen. Die Eingabewerte bilden Punkte im Raum (2, 4 oder 8), genauer gesagt die Eckpunkte einer Strecke, eines Quadrats oder eines Würfels, jeweils mit der Seitenlänge 1. An jedem der Eckpunkte wird einer der Funktionswerte 0 oder 1 notiert. Abbildung 2.5 zeigt dies für eine dreistellige Funktion. x2 0 1 1 0 0 1 x1 0 1 x3 Abbildung 2.5 Allgemein bekommt man bei einer Funktion mit n Argumenten einen Würfel mit 2n Ecken. In n diesem sind 2 2 Zuordnungen von Werten zu den Ecken möglich. McCulloch-Pitts-Einheiten unterteilen den Eingaberaum in zwei Halbräume. Bei einer gegebenen Eingabe wie (x1, x2, x3) und dem Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 7 Schwellenwert wird die Bedingung x1 + x2 + x3 abgeprüft. Sie ist erfüllt für alle Punkte auf einer Seite der Ebene x1 + x2 + x3 = , einschließlich der Punkte in der Ebene, und nicht erfüllt für die Punkte auf der anderen Seite der Ebene, ausschließlich der Punkte der Ebene. Abbildung 2.6 zeigt den Fall der dreistelligen OR-Funktion mit = 1. x2 1 1 1 1 1 0 x1 1 x 1 + x2 + x3 = 1 x3 1 Abbildung 2.6 Abbildung 2.g zeigt die graphische Darstellung der Majoritätsfunktion. Der Eingaberaum wird hier durch die Ebene x1 + x2 + x3 = 2 unterteilt. Sie ist parallel zu der Ebene der OR-Funktion. Alle unterteilenden Ebenen bei McCulloch-Pitts-Einheiten sind parallel zueinander. Nicht parallele Trennebenen können nur mittels gewichteter Kanten erzeugt werden. x2 x 1 + x2 + x3 = 2 1 1 1 1 1 0 x1 1 x3 x 1 + x2 + x3 = 1 1 Abbildung 2.g 2.2.3. Konstruktive Synthese Beliebige logische Funktionen können mit McCulloch-Pitts-Einheiten realisiert werden. Um dies systematisch zu tun, geht man von der Darstellung einer logischen Funktion in Tabellenform aus. Die Tabelle hat n+1 Spalten. In jeder Zeile steht eine Eingabe mit n Werten und ein Ausgabewert. Die Idee der Konstruktion eines McCulloch-Pitts-Netzes ist, für jede Zeile eine Einheit vorzusehen und das Ergebnis der Zeilen geeignet zusammen zu fassen. Die McCulloch-Pitts-Einheiten werden dabei als binäre Decoder benutzt. Die Konstruktionsvorschrift für ein McCulloch-Pitts-Netz zur Realisierung einer n-stelligen logischen Funktion ist folgende. Die Funktion sei in Tabellenform gegeben. Jede Zeile der Tabelle ergibt eine McCulloch-Pitts-Einheit als Decoder der Eingabe. Einsen im Eingabevektor werden als Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 8 exzitatorische, Nullen als inhibitorische Kanten der jeweiligen Einheit realisiert. Der Schwellenwert der jeweiligen Einheit ist gleich der Summe der positiven Eingaben oder exzitatorischen Kanten. Diese Einheiten bilden die decodierende Schicht des Netzes. Die zweite Schicht des Netzes besteht aus einer Einheit, die die Ausgaben der decodierenden Schicht disjunktiv verknüpft. Satz 2.2: Jede logische Funktion F: {0, 1}n {0, 1} kann durch ein McCulloch-Pitts-Netz mit zwei Schichten berechnet werden. Die Konstruktion von McCulloch-Pitts-Netzen nach obiger Vorschrift kann so abgeändert werden, dass man jede decodierende Einheit durch ein kleines Netz ersetzt, in dem nur noch die Standardeinheiten AND, OR und NOT verwendet werden. Anstelle der inibitorischen Kanten werden NOTEinheiten verwendet und alle Eingaben durch AND zusammengefasst. Abbildung 2.7 illustriert diese Umformung. Diese Betrachtung führt zu der Aussage von Satz 2.3. x1 x2 x3 1 x1 0 x2 0 3 x3 Abbildung 2.7 Satz 2.3: Jede logische Funktion kann durch ein McCulloch-Pitts-Netz berechnet werden, das nur aus AND-, OR- und NOT-Einheiten zusammengesetzt ist. 2.3. Gewichtete Netze 2.3.1. Gewichtete und ungewichtete Netze McCulloch-Pitts-Netze sind ungewichtet, deshalb stellt sich die Frage, ob gewichtete Netze allgemeiner sind als ungewichtete. Ein einfaches Beispiel zeigt aber bereits, dass die beiden Typen von Netzen äquivalent sind. In Abbildung 2.8(a) ist eine gewichtete Einheit dargestellt, die die Funktion 0.2 x1 0.4 x2 0.3x3 0.7 berechnet. Diese ist aber äquivalent zu der Funktion 2 x1 4 x2 3x3 7 und diese wird durch die McCulloch-Pitts-Einheit von Abbildung 2.8(b) berechnet. x1 0.4 x2 x1 0.2 0.7 x2 7 0.3 x3 x3 (a) (b) Abbildung 2.8 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 9 2.3.2. Absolute und relative Inhibition Die in McCulloch-Pitts-Netzen benutzte Inhibition nennt man auch absolute Inhibition. Man kann auch eine relative Inhibition definieren. Sie entspricht Kanten mit negativen Gewichten, deren Wirkung die Verminderung des Schwellenwerts einer Einheit ist. Satz 2.4: McCulloch-Pitts-Netze sind äquivalent zu Netzen mit relativer Inhibition. 2.4. Rekurrente Netze 2.4.1. Netze mit gespeichertem Zustand McCulloch-Pitts-Einheiten können in rekurrenten Netzen verwendet werden, wenn man einen zeitlichen Faktor in die Berechnung einbezieht. Dazu wird angenommen, dass die Berechnung der Aktivierung einer Einheit eine Zeiteinheit benötigt. Kommt die Eingabe zum Zeitpunkt t an, dann liegt das Ergebnis zum Zeitpunkt t + 1 vor. Abbildung 2.9 zeigt ein einfaches rekurrentes Netz. Es erzeugt für jedes Eingabebit dasselbe Ausgabebit, außer bei zwei aufeinanderfolgenden Einsen, für diese gibt es die Folge 01 aus. Zum Beispiel wird die Folge 00110110 in die Folge 00100100 umgewandelt. 1 Eingabe 2 Ausgabe Abbildung 2.9 2.4.2. Endliche Automaten Das Netz von Abbildung 2.9 ist ein Beispiel für einen endlichen Automaten. Ein endlicher Automat kann verschiedene Zustände annehmen und sie in Abhängigkeit von der Eingabe wechseln. Er kann ferner eine Ausgabe erzeugen in Abhängigkeit von seinem Zustand. Bei dem Automaten von Abbildung 2.9 stellen die verschiedenen Kombinationen von Signalen, die durch das Netz zirkulieren können, die Zustände dar. Satz 2.5: Jeder endliche Automat kann durch ein McCulloch-Pitts-Netz simuliert werden. 2.4.3. Eine erste Klassifikation Neuronaler Netze Man kann Neuronale Netze nach drei Kriterien in verschiedene Klassen unterteilen. 1. Gewichtete und ungewichtete Netze. Die beiden Typen von Netzen sind äquivalent. Der Hauptunterschied zwischen beiden liegt in der Art, wie sie lernen. In ungewichteten Netzen können nur die Schwellenwerte und die Verbindungen zwischen den Einheiten angepasst werden. In Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 10 gewichteten Netzen wird die Topologie üblicherweise beim Lernen nicht verändert, sondern es werden nur die Gewichte angepasst. 2. Synchrone und asynchrone Netze. In synchronen Netzen wird die Ausgabe der Einheiten ohne Zeitverzögerung berechnet. Das ist möglich, wenn das Netz keine Schleifen enthält. In manchen Netzen sind die Einheiten in Schichten angeordnet und die Aktivität der Einheiten wird schichtweise nacheinander berechnet, aber in jeder Schicht simultan. In asynchronen Netzen wird die Aktivität einer Einheit unabhängig von den anderen Einheiten und an verschiedenen stochastisch ausgewählten Zeitpunkten berechnet. Solche Netze können Schleifen enthalten, die keine Probleme machen. 3. Netze mit und ohne gespeicherte Zustände. Die Zustände werden in den einzelnen Einheiten gespeichert. Die Berechnung der Ausgabe hängt dann auch vom gespeicherten Zustand ab, nicht nur von der Eingabe. Der Zustand kann bei jeder Berechnung geändert werden. Ist die Zahl der Zustände und der Eingaben endlich, dann liegt ein endlicher Automat vor. Da jeder endliche Automat durch ein Netz von Einheiten ohne gespeicherte Zustände simuliert werden kann, können speicherfähige Einheiten dieser Art durch ein McCulloch-Pitts-Netz ersetzt werden. Das heißt, dass Netze mit speicherfähigen Einheiten äquivalent zu Netzen ohne speicherfähige Einheiten sind. Die Daten werden bei ihnen im Netz selbst und seinen Rekursionsmustern gespeichert. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung 3. 3.1. Seite 11 Das Perzeptron Perzeptrone und Parallelverarbeitung 3.1.1. Perzeptrone als gewichtete Netze Der Psychologe Frank Rosenblatt schlug 1958 das Perzeptron als Berechnungsmodell vor. Das wesentlich Neue gegenüber den McCulloch-Pitts-Netzen waren die numerischen Gewichte und ein spezielles Verknüpfungsmuster. Im ursprünglichen Modell von Rosenblatt sind die Einheiten Schwellenwertelemente und die Verknüpfung ist stochastisch bestimmt. Lernen erfolgt durch Anpassen der Gewichte nach einem bestimmten Algorithmus. Das Modell wurde in den sechziger Jahren verfeinert und vervollständigt und seine Berechnungsfähigkeit wurde von Minsky und Papert analysiert. Minsky und Papert benutzten dazu eine Variante des Modells. Diese wird im Folgenden als Perzeptron bezeichnet, Rosenblatts ursprüngliches Modell als klassisches Perzeptron. Das klassische Perzeptron ist ein Netz für bestimmte Mustererkennungsprobleme. Abbildung 3.1 zeigt ein solches Netz. Projektionsebene Assoziationsebene Responseebene Retina feste Verbindungen zufällige Verbindungen Abbildung 3.1 Die Retina ist eine Oberfläche, auf die die Eingabe projiziert wird. Sie überträgt binäre Werte auf die Projektionsebene, eine Schicht von Recheneinheiten. Die Verbindungen von der Retina zur Projektionsebene sind fest und nicht adaptierbar. Die Verbindungen zwischen der zweiten und dritten Schicht und zwischen der dritten und vierten Schicht sind stochastisch ausgewählt um das Modell biologisch plausibel zu machen. Das Netz soll so trainiert werden, dass bestimmte Eingabemuster bestimmte Reaktionen an der Responseebene erzeugen. Dies geschieht durch Modifikation der Gewichte. Die Einheiten eines klassischen Perzeptrons funktionieren formal betrachtet genau so wie McCulloch-Pitts-Einheiten. Im Perzeptron von Minsky und Papert gibt es ebenfalls eine Retina, die aus Pixeln mit binären Werten besteht. Einige Pixel sind mit logischen Elementen verknüpft, Prädikate genannt, die aus der Eingabe einzelne Bits berechnen können. Die Zahl der Pixel, die mit einem Prädikat verknüpft sein können, und ihre Entfernung untereinander sind beschränkt. Die Prädikate können beliebig komplexe Recheneinheiten sein. Die Prädikate übertragen ihre binären Werte über gewichtete Kanten an ein Schwellenwertelement. Dieses entscheidet in einem Mustererkennungsproblem. Abbildung 3.2 zeigt ein Perzeptron nach dem Modell von Minsky und Papert. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 12 P1 w1 P2 w2 P3 P4 w3 w4 Abbildung 3.2 Ein Perzeptron besteht im Allgemeinen aus n Prädikaten P1, P2, ..., Pn und den entsprechenden n Gewichten w1, w2, ..., wn. Es feuert nur, wenn i 1 wi Pi , wobei der Schwellenwert der Einheit an der Ausgabe ist. 3.1.2. Die Grenzen der Berechnungsfähigkeit des Perzeptrons Minsky und Papert unterschieden bezüglich der Anzahl der rezeptiven Felder und ihrer Verbindung mit den Prädikaten zwischen drei Typen von Perzeptronen: Durchmesserbeschränkte Perzeptrone: Das rezeptive Feld jedes Prädikats hat beschränkten Durchmesser. Perzeptrone beschränkter Ordnung: Jedes rezeptive Feld kann höchstens eine bestimmte maximale Anzahl von Punkten enthalten. Stochastische Perzeptrone: Jedes rezeptive Feld besteht aus einer Anzahl zufällig gewählter Punkte. Satz 3.1: Kein durchmesserbeschränktes Perzeptron kann entscheiden, ob eine geometrische Figur zusammenhängend ist oder nicht. 3.2. Implementierung logischer Funktionen 3.2.1. Geometrische Interpretation Definition 3.1: Ein einfaches Perzeptron ist eine Recheneinheit mit einem Schwellenwert , der bei Eingabe von n reellen Werten x1, x2, ..., xn über Kanten mit Gewichten w1, w2, ..., wn eine 1 ausgibt, n wenn die Ungleichung i 1 wi xi gilt, und sonst eine 0. Die Herkunft der Eingaben spielt keine Rolle, sie kann von anderen Perzeptronen oder von einer anderen Klasse von Rechenelementen stammen. Die geometrische Interpretation der Verarbeitung durch ein Perzeptron ist die selbe wie bei den McCulloch-Pitts-Einheiten. Ein Perzeptron unterteilt den Eingaberaum in zwei Halbräume. Für Punkte im einen Halbraum ist das Ergebnis der Berechnung 0, für Punkte im anderen Halbraum ist es 1. Abbildung 3.3 zeigt als Beispiel die geometrische Interpretation der Berechnung durch ein Perzeptron mit zwei Eingaben und den Kantengewichten 0.9 und 2.0. Dieses Perzeptron prüft die Bedingung Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 13 0.9 x1 2 x2 1 x2 0.9x1 + 2x2 1 x1 0.9x1 + 2x2 < 1 Abbildung 3.3 In vielen Fällen ist es günstig, Perzeptrone mit dem Schwellenwert 0 zu betrachten. Die geometrische Interpretation eines solchen Elements ist eine lineare Unterteilung des Eingaberaums durch eine Gerade, die durch den Nullpunkt geht. Man kann ein Perzeptron mit Schwellenwert einfach in eines mit Schwellenwert 0 umwandeln, indem man ein zusätzliche Eingabe mit Gewicht vorsieht. Der Wert der neuen Eingabe ist konstant 1. Das extra Gewicht des Perzeptrons heißt sein Bias. Abbildung 3.4 illustriert dies. x1 x1 w1 . . . wn w1 . . . wn xn 0 xn 1 Abbildung 3.4 Die Verwendung so modifizierter Perzeptrone ist günstig für Lernalgorithmen. Der Eingabevektor (x1, x2, ..., xn) muss um eine 1 erweitert werden, und der neue Eingabevektor (x1, x2, ..., xn, 1) heißt erweiterter Eingabevektor. Der erweiterte Gewichtsvektor ist (w1, w2, ..., wn, ). 3.2.2. Das XOR-Problem Betrachtet man Funktionen von zwei Variablen, so gibt es insgesamt 16 verschiedene logische Funktionen dieser Art, vgl. Tabelle 3.1. x1 0 0 1 1 x2 0 1 0 1 f0 0 0 0 0 f1 1 0 0 0 Technische Universität Chemnitz f2 0 1 0 0 f3 1 1 0 0 f4 0 0 1 0 f5 1 0 1 0 f6 0 1 1 0 f7 1 1 1 0 f8 0 0 0 1 f9 1 0 0 1 f10 f11 f12 f13 f14 f15 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 14 Tabelle 3.1 Perzeptron-berechenbar sind diejenigen Funktionen, bei denen die Punkte mit dem Funktionswert 0 durch eine Gerade von den Punkten mit dem Funktionswert 1 getrennt werden können. Solche Funktionen sind z.B. die AND- und die OR-Funktion, wie Abbildung 3.5 zeigt. OR AND 1 1 0 1 0 1 0 0 Abbildung 3.5 Betrachtet man die Funktionen der Tabelle 3.1, dann sieht man, dass zwei davon nicht in dieser Weise berechnet werden können, weil bei ihnen die 0- und 1-wertigen Punkte nicht durch eine Linie getrennt werden können. Es sind die Funktion XOR (f6) und die Identitätsfunktion (f9). Eine analytische Betrachtung bestätigt dies. Seien w1 und w2 die Gewichte eine Perzeptrons mit zwei Eingaben und der Schwellenwert. Falls das Perzeptron die XOR-Funktion berechnet, müssen die folgenden vier Ungleichungen erfüllt sein: x1 = 0 x1 = 1 x1 = 0 x1 = 1 x2 = 0 x2 = 0 x2 = 1 x2 = 1 w1x1 + w2x2 = 0 w1x1 + w2x2 = w1 w1x1 + w2x2 = w2 w1x1 + w2x2 = w1 + w2 0< w1 w2 w1 + w2 < Nach der ersten Ungleichung ist positiv, also sind es auch w1 und w2 nach der zweiten und dritten Ungleichung und jedes von beiden ist mindestens so groß wie . Daher kann die Ungleichung w1 + w2 < nicht gelten. Aus diesem Widerspruch ergibt sich, dass kein Perzeptron die XOR-Funktion berechnen kann. 3.3. Linear separierbare Funktionen 3.3.1. Lineare Separierbarkeit Definition 3.2: Zwei Mengen von Punkten A und B in einem n-dimensionalen Raum heißen linear separierbar, wenn es n+1 reelle Zahlen w1, w2, ..., wn+1 gibt, so dass jeder Punkt (x1, x2, ..., xn) A n die Ungleichung i 1 wi xi wn1 erfüllt und jeder Punkt (x1, x2, ..., xn) B die Ungleichung n i 1 wi xi wn1 . Eine interessante Frage ist, wie viele linear separierbare Funktionen von n Variablen es gibt. In Tabelle 3.2 sind die Werte für n = 2, 3, 4 aufgelistet. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 15 n Anzahl logischer Funktionen linear separierbare Funktionen 2 16 14 3 256 104 4 65536 1882 Tabelle 3.2 3.3.2. Die Dualität von Eingaberaum und Gewichtsraum Um die geeigneten Gewichte für ein Perzeptron zu bestimmen, muss man Suche im Gewichtsraum betreiben. Dieser Raum ist aber sehr groß, denn bei m Gewichten ist es der gesamte Raum m. Bei einem Perzeptron mit n Eingaben bedeutet die Suche nach einer linearen Separierung die Suche nach n+1 freien Parametern, nämlich n Gewichte und das Bias. Diese n+1 Parameter repräsentieren einen Punkt im (n+1)-dimensionalen Gewichtsraum. Sobald man einen Punkt im Gewichtsraum herausgreift, wählt man eine bestimmte Kombination der Gewichte und bestimmt damit eine lineare Trennung des Eingaberaums. Das heißt, jeder Punkt im (n+1)-dimensionalen Gewichtsraum ist zu einer Ebene im (n+1)-dimensionalen erweiterten Eingaberaum assoziiert. Abbildung 3.6 illustriert dies für den dreidimensionalen Fall. x2 w2 x1 w1 w3 = x3 Abbildung 3.6 Eine ähnliche Relation gilt auch in umgekehrter Richtung. Wenn man einen Punkt (x1, x2, x3) im positiven Halbraum ansiedeln möchte, dann muss man dafür die Gewichte w1, w2, w3 geeignet bestimmen. Dazu muss die Ungleichung w1 x1 w2 x2 w3 x3 0 gelten. Diese Ungleichung definiert aber eine lineare Trennung im Gewichtsraum, d.h. der Punkt (x1, x2, x3) definiert eine Schnittebene im Gewichtsraum. Punkte im einen Raum werden auf Hyperebenen im anderen Raum abgebildet und umgekehrt. Diese Komplementarität heißt Dualität. 3.3.3. Die Fehlerfunktion im Gewichtsraum Angenommen die Menge A von Eingabevektoren in einem n-dimensionalen Raum soll von der Menge B von Eingabevektoren so getrennt werden, dass das Perzeptron die binäre Funktion fw berechnet mit fw(x) = 1 für x A und fw(x) = 0 für x B. Die Funktion fw hängt von der Menge w der Gewichte und dem Schwellenwert ab. Die Fehlerfunktion gibt die Zahl der falschen Klassifikationen an, die man mit dem Gewichtsvektor w erhält. Sie kann definiert werden durch E ( w) (1 f w ( x)) f w ( x) xA Technische Universität Chemnitz xB Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 16 Diese Funktion ist über dem gesamten Gewichtsraum definiert und das Ziel eines Lernalgorithmus ist sie zu minimieren. Da E(w) mindestens 0 ist, versucht man das globale Minimum mit E(w) = 0 zu bestimmen. Dazu beginnt man mit einem zufällig gewählten Gewichtsvektor w und sucht dann im Gewichtsraum nach einer besseren Alternative, wobei man bei jedem Schritt versucht, E(w) zu verringern. 3.3.4. Allgemeine Entscheidungskurven Funktionen, die zur Trennung von Gebieten des Eingaberaums benutzt werden, heißen Entscheidungskurven. Häufig gebrauchte Entscheidungskurven sind z.B. Polynome. In der statistischen Mustererkennung geht man davon aus, dass die zu erkennenden Muster in Clustern des Eingaberaums gruppiert sind. Mittels einer Kombination von Entscheidungskurven kann man versuchen die Cluster zu trennen. Eine andere Möglichkeit ist mehrere Perzeptrone zu kombinieren um ein konvexes Gebiet des Eingaberaums zu separieren. Die Aufgabe eines Neuronalen Netzes ist es allgemein, durch einen Lernalgorithmus die freien Parameter (hauptsächlich die Gewichte) so zu bestimmen, dass die relevanten Gebiete getrennt werden. 3.4. Anwendungen von Perzeptronen 3.4.1. Kantenerkennung Es sei folgende Anordnung gegeben: Die Figuren, die untersucht werden sollen, werden auf einem Bildschirm dargestellt und jedes Pixel ist mit einem Perzeptron verbunden, das außerdem Eingaben von den unmittelbaren Nachbarn des Pixels bekommt. Ein rezeptives Feld dieser Art, genannt eine Moore-Nachbarschaft, ist in Abbildung 3.7 dargestellt. Die Zahlen stellen die Gewichte der Verbindungen zu dem Perzeptron dar. -1 -1 -1 -1 8 -1 -1 -1 -1 Abbildung 3.7 Die Festlegung des Mittelpunkts auf einen hohen Wert und der übrigen Punkte auf einen negativen Wert nennt man einen Konvolutionsoperator. Er wird zum Zentrieren auf jedes einzelne Pixel des Bildes benutzt um für jedes Pixel einen bestimmten Ausgabewert zu erzeugen. Abbildung 3.8 illustriert die Verbindung zwischen einer Pixelumgebung, also einem rezeptiven Feld, und einem Perzeptron. 0.5 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 17 Abbildung 3.8 Bei jedem Muster auf dem Bildschirm wird für jedes Perzeptron die gewichtete Eingabe mit dem Schwellenwert 0.5 verglichen. Sind alle Punkte in der Umgebung des Pixels im Zentrum des Rezeptorfeldes hell, dann ist die Eingabe 0 und damit das Perzeptron inaktiv. Sind alle Punkte in der Umgebung dunkel, dann ist die Summe der Eingaben ebenfalls 0. Im Fall von Abbildung 3.8 ist die Eingabe 5, damit gehört der Mittelpunkt des Rezeptorfeldes zu einer Kante. 3.4.2. Pyramidale Netze und das Neocognitron Fukushima und seine Kollegen haben zum Zweck der Mustererkennung für verschobene oder rotierte oder unvollständige Muster das Cognitron und das Neocognitron entwickelt. Damit sollte auch der menschliche Erkennungsweg simuliert werden. Die Idee beim Neocognitron ist den Inhalt des Bildschirms auf andere Bildschirme zu übertragen und dabei durch Verstärken einiger Merkmale zu transformieren. Dieser Schritt wird mehrere Male wiederholt bis eine endgültige Entscheidung getroffen wird. Die Auflösung und die Zahl der Bildschirme kann von einem Übergang zum anderen verändert werden, das Ziel ist auf jeden Fall die Repräsentation zu reduzieren um auf der letzten Stufe eine Entscheidung nur auf der Basis einiger weniger Punkte zu treffen. Bei einem Neocognitron wird das Bild von einer Ebene zur nächsten umgeformt um spezifische Merkmale zu finden. In Abbildung 3.9 ist die allgemeine Vorgehensweise eines Neocognitrons dargestellt. Der Eingabebildschirm wird transformiert wobei für jedes Pixel entschieden wird, ob es hell bzw. dunkel bleiben soll. Dazu werden die vorgegebenen Muster der einzelnen Transformationen benutzt. Diese werden im Bild identifiziert indem jedes Pixel und seine Nachbarn betrachtet wird. Die Konvolutionsoperatoren haben entsprechend den Mustern das Gewicht 1, alle anderen Gewichte sind 0. Transformation Konvolutionsoperatoren Muster 1 1 1 1 1 1 1 1 1 Abbildung 3.9 Im Neocognitron sind nach dem Eingabebildschirm vier Paare von Ebenen nacheinander angeordnet. Zwischen den Ebenen eines Paares werden bisher entstandene Muster wieder zusammengefasst. Von der zweiten Ebene eines Paares zur ersten Ebene des nächsten Paares wird die oben beschriebene Transformationstechnik mit Aufteilung der bisher entstandenen Muster durchgeführt. Außerdem wird dabei die Helligkeit der dunklen Punkte graduell abgeschwächt, während sie beim Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 18 Zusammenfassen der Muster wieder verstärkt wird, wenn dasselbe Pixel in zwei verschiedenen Mustern gefärbt ist. 3.4.3. Die Silikonretina Die Silikonretina wurde von der Gruppe von Carver Mead am Caltech entwickelt. Sie ist in der Lage einige Fähigkeiten der menschlichen Retina zu simulieren. Das Fernziel dieser Arbeiten ist, die Retina bei Sehgeschädigten durch eine künstliche zu ersetzen. Die ersten drei Schichten der Retina, die Photorezeptoren, die horizontalen Zellen und die bipolaren Zellen, wurden simuliert. Ein Ausschnitt ist in Abbildung 3.10 dargestellt. Die horizontalen Zellen sind durch ein Gitter von Widerständen simuliert. Jeder Photorezeptor (in Abbildung 3.10 als dunkle Punkte dargestellt) ist mit jedem seiner sechs Nachbarn verbunden und erzeugt eine Potentialdifferenz, die proportional zum Logarithmus der gemessenen Helligkeit ist. Das Gitter der Widerstände erreicht einen elektrischen Gleichgewichtszustand, wenn sich eine durchschnittliche Potentialdifferenz herausgebildet hat. Die Neuronen der Silikonretina feuern nur, wenn die Differenz zwischen dem Durchschnitt und ihrem eigenen Potential einen bestimmten Schwellenwert erreicht. Abbildung 3.10 Das durchschnittliche Potential S von n Potentialen Si wird berechnet, indem man jedes Potential Si als proportional zum Logarithmus der gemessenen Lichtintensität Hi festlegt, d.h. S 1 n 1 n S log H i i n n i 1 i 1 Dieser Ausdruck kann in den folgenden umgeformt werden: S 1n log( H 1 H 2 H n ) log( H 1 H 2 H n )1 / n Das durchschnittliche Potential ist demnach der Logarithmus des geometrischen Mittels der Lichtintensitäten. Eine Einheit feuert nur, wenn die gemessene Intensität Hi minus der durchschnittlichen Intensität über einem Schwellenwert liegt, d.h. wenn log( H i ) log( H 1 H 2 H n )1 / n Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 19 und dieser Ausdruck ist äquivalent zu log Hi ( H 1 H 2 H n )1 / n 3.5. Lernalgorithmen für Neuronale Netze Ein Lernalgorithmus ist ein adaptives Verfahren, durch das ein Netz von Recheneinheiten sich selbst organisiert um das gewünschte Verhalten zu realisieren. In einigen Lernalgorithmen wird dies dadurch erreicht, dass dem Netz einige Beispiele des gewünschten Eingabe/Ausgabeverhaltens vorgelegt werden. Ein Korrekturschritt wird so lange wiederholt, bis das Netz gelernt hat die gewünschte Ausgabe zu erzeugen. Der Lernalgorithmus ist also eine Schleife aus Eingabe von Beispielen und Korrektur der Netzparameter. 3.5.1. Klassen von Lernalgorithmen Lernalgorithmen können in die beiden Klassen der überwachten und der nicht überwachten Verfahren eingeteilt werden. Beim überwachten Lernen wird eine Menge von Eingabevektoren in das Netz eingegeben. Dann wird die vom Netz erzeugte Ausgabe betrachtet und ihre Abweichung von der gewünschten Ausgabe gemessen. Dann werden die Gewichte entsprechend der Größe der Abweichung auf eine für den Lernalgorithmus spezifische Art angepasst. Diese Methode wird auch Lernen mit Lehrer genannt, weil ein Steuerungsprozess die korrekte Antwort auf eine Menge ausgewählter Eingabevektoren kennt. Das unüberwachte Lernen setzt keinen Lehrer voraus, d.h. für die Eingabevektoren ist die genaue Ausgabe nicht bekannt. Ein typisches Beispiel für eine Aufgabe, die durch unüberwachtes Lernen gelöst werden kann, ist eine Clustering-Aufgabe. Eine Punktmenge ist in Cluster zu unterteilen. Dafür eignet sich ein Neuronales Netz, das ebenso viele Ausgänge hat wie Cluster zu erwarten sind oder bestimmt werden sollen, z.B. n Stück. Jede der n Einheiten am Ausgang entspricht einem Cluster. Von ihnen soll bei einer Eingabe immer nur eine feuern, die anderen nicht. Das Netz muss sich selber organisieren um die Cluster zu bestimmen. Das überwachte Lernen kann noch weiter unterteilt werden in das Reinforcement Learning und das Lernen mit Fehlerkorrektur. Das Reinforcement Learning wird benutzt, wenn man bei der Ausgabe nur feststellen kann, ob es das gewünschte Ergebnis ist oder nicht, man aber kein Maß für die Abweichung hat. Entsprechend dieser Information werden die Gewichte aktualisiert, d.h. zur Korrektur der Gewichte können nur die Eingabevektoren benutzt werden. Beim Lernen mit Fehlerkorrektur bestimmt die Größe des Fehlers zusammen mit dem Eingabevektor die Größe der Korrektur an den Gewichten. In vielen Fällen versucht man, den Fehler in einem Schritt zu korrigieren. Der Perzeptron-Lernalgorithmus ist ein Verfahren des überwachten Lernens mit Reinforcement. Einige Varianten des Algorithmus benutzen überwachtes Lernen mit Fehlerkorrektur. Abbildung 3.10 stellt die Klassifikation der Lernverfahren dar. Lernen mit Fehlerkorrektur Überwachtes Lernen Reinforcement Learning Lernen Unüberwachtes Lernen Abbildung 3.10 Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 20 3.5.2. Vektornotation Die folgenden Notationen und Begriffe werden verwendet. Die Eingabe x = (x1, x2, ..., xn) in das Perzeptron heißt Eingabevektor. Sind w1, w2, ..., wn die reellwertigen Gewichte des Perzeptrons und der Schwellenwert, dann ist w = (w1, w2, ..., wn) der Gewichtsvektor und we = (w1, w2, ..., wn, wn+1) mit wn+1 = der erweiterte Gewichtsvektor und xe = (x1, x2, ..., xn, 1) der erweiterte Eingabevektor des Perzeptrons. Die Schwellenwertberechnung eines Perzeptrons wird durch ein Skalarprodukt beschrieben. Sie ist w x bzw. w e x e 0 Ist aus dem Kontext klar, ob die normalen oder erweiterten Vektoren gemeint sind, wird der Index e weggelassen. 3.5.3. Absolute lineare Trennbarkeit Definition 3.3: Zwei Mengen A und B von Punkten in einem n-dimensionalen Raum heißen absolut linear trennbar, wenn es n+1 reelle Zahlen w1, w2, ..., wn, wn+1 gibt, so dass jeder Punkt (x1, x2, ..., n xn) A die Bedingung i 1 wi xi wn1 und jeder Punkt (x1, x2, ..., xn) B die Bedingung n i 1 wi xi wn1 erfüllt. Der folgende Satz formuliert, dass aus der linearen Trennbarkeit die absolute lineare Trennbarkeit für endliche Punktmengen folgt. Eine Konsequenz aus diesem Satz ist, dass wenn ein Perzeptron mit Schwellenwert 0 zwei endliche Mengen von Eingabevektoren linear trennen kann, nur eine kleine Anpassung seiner Gewichte erforderlich ist um die absolute lineare Trennung zu erreichen. Satz 3.2: Zwei endliche Mengen A und B von Punkten in einem n-dimensionalen Raum, die linear trennbar sind, sind auch absolut linear trennbar. 3.5.4. Die Fehleroberfläche und das Suchverfahren Definition 3.4: Der offene (geschlossene) positive Halbraum, der mit dem n-dimensionalen Gewichtsvektor w assoziiert ist, ist die Menge aller Punkte x n, für die wx > 0 (wx 0) gilt. Der offene (geschlossene) negative Halbraum, der mit w assoziiert ist, ist die Menge aller Punkte x n, für die wx < 0 (wx 0) gilt. Seien P und N zwei endliche Punktmengen in n, die linear getrennt werden sollen. Es soll ein Gewichtsvektor w so bestimmt werden, dass die Punkte von P in seinem assoziierten positiven Halbraum liegen und die Punkte von N in seinem negativen Halbraum. Der Fehler eines Perzeptrons mit Gewichtsvektor w ist die Zahl der falsch klassifizierten Punkte, er ist also eine Funktion E(w). Der Lernalgorithmus muss diese Fehlerfunktion minimieren. Eine mögliche Strategie ist einen Greedy-Algorithmus zu verwenden, der den Fehler für einen gegebenen Gewichtsvektor berechnet, dann nach einer Richtung im Gewichtsraum sucht, in die er sich bewegen soll, und den Gewichtsvektor durch Wahl neuer Gewichte in der gewählten Suchrichtung aktualisiert. Diese Strategie kann man visualisieren, indem man ihre Wirkung im Gewichtsraum betrachtet. Als Beispiel wird das Perzeptron von Abbildung 3.11 betrachtet. Es hat den konstanten Schwellenwert 1. Die Gewichte w1 und w2 sollen so bestimmt werden, dass das Perzeptron sich wie ein binäres AND-Gatter verhält. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 21 x1 w1 1 w2 x2 Abbildung 3.11 Die Fehlerfunktion kann für alle Wertekombinationen der zwei Gewichtsvariablen grafisch dargestellt werden. In Abbildung 3.12 ist dies für den Wertebereich zwischen –0.5 und 1.5 durchgeführt. Abbildung 3.12 Die Lösungsregion liegt im Bereich des Dreiecks in der Mitte. Man kann sich dem Bereich von jedem Punkt aus nähern. Da er das am tiefsten liegende Gebiet des Geländes ist, kann man sich dem Gefälle folgend dem Lösungsbereich nähern. Abbildung 3.13 zeigt eine Draufsicht auf das Gelände. Die verschiedenen Regionen der Fehlerfunktion sind durch Zahlen gekennzeichnet. w2 w0 1 2 0 2 w1 w2 w* 1 1 w1 2 Abbildung 3.13 Das zu lösende Optimierungsproblem kann auch noch als Suche nach einem inneren Punkt im Lösungsbereich aufgefasst werden. Seien N = {(0, 0), (1, 0), (0, 1)} und P = {(1, 1)} die beiden Mengen, die absolut getrennt werden sollen. P soll im positiven Halbraum, N im negativen Halbraum liegen. Zur Trennung mit einem Perzeptron benötigt man die drei Gewichte w1, w2 und w3 = . Die Eingabevektoren werden um x3 = 1 erweitert und die folgenden Ungleichungen (mit Skalarprodukt) müssen gelten: (0, 0, 1)(w1, w2, w3) < 0 (1, 0, 1)(w1, w2, w3) < 0 Technische Universität Chemnitz (3.3) (3.4) Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 22 (0, 1, 1)(w1, w2, w3) < 0 (1, 1, 1)(w1, w2, w3) > 0 (3.5) (3.6) 0 0 1 0 w1 1 0 1 0 0 1 1 w2 0 1 1 1 w3 0 (3.7) In Matrixschreibweise: oder kurz Aw > 0 wobei A die obige Matrix und w der Gewichtsvektor ist. Die Ungleichung (3.7) beschreibt die inneren Punkte eines konvexen Polytops. Die Seiten des Polytops sind durch Ebenen begrenzt, die durch die Ungleichungen (3.3) – (3.6) definiert sind. Jeder innere Punkt des Polytops ist eine Lösung des Lernproblems. 3.6. Ein Perzeptron-Lernalgorithmus Der Lernalgorithmus für das Perzeptron benötigt eine Trainingsmenge, die aus den beiden Mengen P und N aus dem n-dimensionalen erweiterten Eingaberaum besteht. Gesucht ist ein Vektor w, der die beiden Mengen so absolut linear trennt, dass P im positiven Halbraum und N im negativen Halbraum liegt. Algorithmus 3.1 Perzeptron-Lernen Start: Der Gewichtsvektor w0 wird beliebig gesetzt t := 0 Test: Ein Vektor x P N wird zufällig gewählt if x P and wtx > 0 goto Test if x P and wtx 0 goto Add if x N and wtx < 0 goto Test if x N and wtx 0 goto Subtract Add: wt := wt + x t := t + 1 goto Test Subtract: wt := wt x t := t + 1 goto Test 3.6.1. Geometrische Veranschaulichung Das Perzeptron-Lernen kann auf zwei alternative Arten veranschaulicht werden, je nachdem, ob man die Ausgangsvektoren oder die erweiterten Vektoren verwendet. Seien die beiden Punktmengen P, N 2 gegeben. Abbildung 3.14 zeigt die Veranschaulichung mit den Ausgangsvektoren. Hier wird eine Trennung durch eine Gerade gesucht (angedeutet durch Graufärbung). Abbildung Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 23 3.15 zeigt die Veranschaulichung mit den erweiterten Vektoren. Die Trennung ist hier durch eine Ebene durch den Nullpunkt gegeben, definiert durch die Gleichung w1x1 + w2x2 + w3 = 0. Vektoren in P p2 Gewichtsvektor p1 n1 n2 Vektoren in N Abbildung 3.14 Gewichtsvektor p2 p1 n1 n2 Abbildung 3.15 Der Perzeptron-Lernalgorithmus startet mit einem zufällig gewählten Gewichtsvektor w0. Wird ein Vektor x P gefunden mit wx < 0, dann bedeutet das geometrisch, dass der Winkel zwischen den beiden Vektoren größer als 90° ist. Der Gewichtsvektor muss in Richtung von x gedreht werden um diesen Vektor in den positiven Halbraum zu bringen. Dies kann durch Addition von w und x gemacht werden, wie im obigen Algorithmus. Wird ein Vektor x N gefunden mit wx > 0, dann ist der Winkel zwischen den beiden Vektoren kleiner als 90°. Der Gewichtsvektor muss dann von x weg gedreht werden um diesen Vektor in den negativen Halbraum zu bringen. Dies kann man erreichen indem man x von w subtrahiert, wie im obigen Algorithmus. Für den Start ist es günstig, den Durchschnitt der positiven Eingabevektoren minus dem Durchschnitt der negativen Eingabevektoren als Gewichtsvektor zu wählen. 3.6.2. Konvergenz des Algorithmus Satz 3.3: Wenn die Mengen P und N endlich und linear trennbar sind, dann aktualisiert der Perzeptron-Lernalgorithmus den Gewichtsvektor wt endlich oft. Anders ausgedrückt: Werden die Vektoren in P und N zyklisch nacheinander getestet, dann wird nach endlich vielen (t) Schritten ein Gewichtsvektor wt gefunden, der die beiden Mengen trennt. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 24 3.6.3. Beschleunigung der Konvergenz Eine Verbesserung des Perzeptron-Lernalgorithmus kann man auf folgende Weise erreichen: Wird bei Iteration t der Eingabevektor x falsch klassifiziert, dann gilt wtx 0. Der Fehler kann definiert werden als = wtx. Der neue Gewichtsvektor wird wie folgt berechnet: w t 1 w t || x || 2 x bezeichnet eine kleine positive reelle Zahl. Die Klassifikation von x kann in einem Schritt korrigiert werden, weil w t 1 x (w t x) x || x || 2 = wtx + ( + ) = + ( + ) =>0 Die Zahl garantiert, dass der neue Gewichtsvektor gerade noch über den Rand der Region mit dem größeren Fehler gerät. sollte klein genug gewählt werden um zu vermeiden, dass der Vektor in eine andere Region gerät, deren Fehler größer als der der jetzigen Region ist. Für x N wird der Korrekturschritt ähnlich ausgeführt, aber statt + wird verwendet. 3.6.4. Der Taschenalgorithmus Algorithmus 3.2 Taschenalgorithmus Start: Initialisiere den Gewichtsvektor w zufällig. Definiere ein „gespeichertes“ Gewicht ws = w. Setze hs, die History von ws, auf 0. Iteriere: Aktualisiere w mittels einer Iteration des Perzeptron-Lernalgorithmus. Merke die Anzahl h der danach erfolgreich getesteten Vektoren. Wenn irgendwann h > hs, dann ersetze ws durch w und hs durch h. Fahre fort. Gelegentlich ersetzt der Algorithmus einen guten gespeicherten Gewichtsvektor durch einen schlechteren, weil nur die Information aus dem letzten Lauf mit den ausgewählten Beispielen betrachtet wird. Die Wahrscheinlichkeit dafür nimmt aber mit der Zahl der Iterationen ab. Man kann zeigen, dass bei endlicher Trainingsmenge und rationalen Gewichten und Vektoren der Algorithmus mit Wahrscheinlichkeit 1 gegen die optimale Lösung konvergiert. 3.6.5. Komplexität des Perzeptron-Lernens Der Perzeptron-Lernalgorithmus ist ein Greedy-Algorithmus. Er wählt eine Suchrichtung im Gewichtsraum nach der inkorrekten Klassifikation des zuletzt getesteten Vektors aus, also auf Grund lokaler Information, und benutzt keine globale Information über die Form der Fehlerfunktion. Das kann zu einer exponentiellen Zahl von Aktualisierungen des Gewichtsvektors führen. Dafür gibt es zwei extreme Typen von Fällen. Beim ersten liegt die Nullfehlerregion im spitzen Winkel zwischen zwei Geraden, die sich in einem engen Winkel schneiden und der initiale Gewichtsvektor liegt außerhalb dieser Region. Dies ist in Abbildung 3.16 dargestellt. Technische Universität Chemnitz Sommersemester 2006 Konnektionistische Wissensverarbeitung Seite 25 w2 1 Iterationen Nullfehlerregion 2 1 w0 w1 Abbildung 3.16 Im zweiten Fall sind zwei Vektoren als zum selben Halbraum gehörend zu klassifizieren, sie sind aber fast antiparallel zueinander. Abbildung 3.17 illustriert diesen Fall. Der Gewichtsvektor wird in Richtung des einen Vektors verschoben, wodurch der andere falsch klassifiziert wird. Eine große Zahl von Iterationen ist erforderlich, bis beide Vektoren richtig klassifiziert werden. Diese Zahl wird umso größer, je näher der Winkel zwischen den beiden Vektoren bei 180° liegt. x2 x1 Abbildung 3.17 Technische Universität Chemnitz Sommersemester 2006