2. Klassifikatoren - Universität Freiburg
Transcription
2. Klassifikatoren - Universität Freiburg
Albert-Ludwigs-Universität Freiburg Institut für Informatik Lehrstuhl für Mustererkennung und Bildverarbeitung Prof. Dr.-Ing. H. Burkhardt Praktikumsversuch Klassifikatorentwurf1 M. Schael, C. Bahlmann und H. Burkhardt 25. Februar 2002 1 http://lmb.informatik.uni-freiburg.de/people/bahlmann/data/klassifikator2000.pdf Inhaltsverzeichnis 1. Einleitung 1.1. Die Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Literatur zur Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 6 2. Klassifikatoren 2.1. Bayes-Entscheidungs-Theorie . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Repräsentation eines Klassifikators . . . . . . . . . . . . . . . . . . . . . . 8 9 11 3. Parametrische Klassifikatoren 3.1. Bayes-Klassifikator für normalverteilte Muster 3.1.1. Euklidischer-Distanz-Klassifikator . . . 3.1.2. Mahalanobis-Distanz-Klassifikator . . . 3.2. Parameterschätzung . . . . . . . . . . . . . . . 13 13 14 14 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. Nicht-parametrische Klassifikatoren 18 4.1. κ-Nächste-Nachbarn-Klassifikator . . . . . . . . . . . . . . . . . . . . . . 18 5. Klassifikatoren basierend auf Funktionsapproximation 5.1. Polynom-Klassifikator . . . . . . . . . . . . . . . . . . . 5.2. Neuronaler-Netzwerk-Klassifikator . . . . . . . . . . . . 5.2.1. Allgemeines über Künstliche Neuronale Netze . . 5.2.2. Das biologische Neuron . . . . . . . . . . . . . . 5.2.3. Das abstrakte Neuron . . . . . . . . . . . . . . . 5.2.4. Das Perzeptron . . . . . . . . . . . . . . . . . . . 5.2.5. Das Multilagen-Perzeptron . . . . . . . . . . . . 5.2.6. Aufgaben . . . . . . . . . . . . . . . . . . . . . . 6. Fehlerquellen beim Klassifikatorentwurf 6.1. Unterbestimmter Klassifikator . . . . . . 6.2. Überbestimmter Klassifikator . . . . . . 6.3. Umfang der Stichproben für das Lernen . 6.4. Optimaler Klassifikator? . . . . . . . . . 7. Aufgaben zum Praktikum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 23 23 24 24 27 32 38 . . . . 40 40 41 41 41 44 i Inhaltsverzeichnis A. Beschreibung der graphischen Oberfläche A.1. Erste Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2. Die graphische Oberfläche . . . . . . . . . . . . . . . . . . . . A.2.1. Klassifikator bestimmen und Trainingsmenge laden . . . A.2.2. Parameter für den spezifizierten Klassifikator schätzen . A.2.3. Testmenge laden und den trainierten Klassifikator testen A.3. Datentypen und Bezeichner . . . . . . . . . . . . . . . . . . . . ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 47 47 48 49 49 49 Vorwort Menschen fällt es nicht schwer Objekte ihrer Umwelt den zugehörigen Bedeutungsklassen zuzuordnen. Sehen wir zum Beispiel ein Tier, so wissen wir in den meisten Fällen sofort, welcher Tierart es angehört. Obwohl es eine große Vielfalt an Tierarten gibt, die sich in viele Rassen unterteilen lassen, bereitet uns die Zuordnung keine Probleme. Aufgrund von Informationen unserer Sinne (visuell, auditiv usw.) und unserer Erfahrung sind wir dazu befähigt eine Einteilung eines Objektes in die zugehörige Bedeutungsklasse — eine Klassifikation — durchzuführen. Der Vorgang der Klassifikation ist in vielen Bereichen unserer Umwelt mittlerweile automatisiert vorzufinden. In der Produktion gibt es Klassifikatoren, die darüber entscheiden, ob ein Produkt bestimmten Gütekriterien genügt und fehlerfrei ist. Blutparameter von Patienten werden in der Medizin verwendet um Krankheiten zu diagnostizieren, was wiederum eine Klassifizierung darstellt. In der Bildverarbeitung finden Klassifikatoren, die ein wesentlicher Bestandteil der Mustererkennung sind, breite Anwendung. Im Rahmen dieses Praktikums sollen grundlegende Kenntnisse über die Theorie der Klassifizierung und deren Anwendung vermittelt werden. Ziel des Praktikums ist es, die Teilnehmer dazu zu befähigen Klassifikatoren — für die Mustererkennung — der Problemstellung entsprechend auszuwählen und anzuwenden. Dazu werden in dieser Anleitung zunächst die notwendigen theoretischen Grundlagen der Klassifikation in der Mustererkennung erklärt. Nachdem das notwendige Wissen dargelegt wurde, werden die am häufigsten verwendeten Klassifikatoren vorgestellt. Im Praktikum werden die erworbenen Kenntnisse angewendet und vertieft. 1. Einleitung Der Vorgang der Mustererkennung läßt sich in mehrere Schritte schematisch unterteilen, die in der Abbildung 1.1 dargestellt sind [1]. Die Unterteilung dient dabei mehr dem Verständnis und der Überschaubarkeit. Wesentlich ist, daß bei der Lösung von Problemstellungen in der Mustererkennung die einzelnen Blöcke (z.B. Merkmalextraktion und Klassifikation), nicht voneinander isoliert zu betrachten sind. So hängen zum Beispiel die Merkmalkonstruktion und die Klassifikation eng miteinander zusammen. Ein Objekt aus dem Objektraum wird mit Hilfe eines Sensors, der entsprechend der Aufgabenstellung und Objekteigenschaften selektiert werden muß, in Informationseinheiten gewandelt. Die vom Objekt ermittelten sensorischen Informationen müssen die für die Lösung der Aufgabenstellung notwendigen Daten enthalten. Der Objektraum, also der Raum, der alle auftretenden Objekte der realen Welt beinhaltet, ist zur Lösung einer Aufgabenstellung häufig zu umfangreich. Aus diesem Grund wird der Objektraum in der Regel beschränkt. D.h. es werden nur die Objekte zugelassen, die in der Problemstellung wirklich auftreten. Der Sensor bildet die Objekte aus dem Objektraum auf ein Muster ab. Die Menge aller Muster, die durch eine sensorische Erfassung eines Objektes entstehen können, werden zum Musterraum zusammengefaßt. Zum Beispiel werden bei der Spracherkennung die Schallwellen eines Sprechers über ein Mikrofon in in analoges elektrisches Signal umgewandelt. Um das Signal mit einem Computer weiter zu verarbeiten ist eine Digitalisierung über einen Analog-Digital-Konverter unumgänglich. Die vom Sensor erzeugten Muster der Objekte enthalten im allgemeinen einen großen Teil an Informationen, die für die Aufgabenstellung irrelevant sind. Damit verbunden ist ein hoher Datenumfang der Muster. Ziel der Merkmalextraktion ist es, nur die Informationen als Merkmal vom Muster zu extrahieren, die für die Lösung der Mustererkennungsaufgabe notwendig ist. Unwesentliche Information werden bei der Merkmalkonstruktion idealerweise dezimiert. Damit ermöglicht die Merkmalextraktion eine erhebliche Reduktion des Datenumfangs der Muster. Als letzter Schritt in der Mustererkennung erfolgt nun die Klassifikation der Merkmale. D.h. die Merkmale der Muster werden ihrer Bedeutungsklasse zugeordnet. In diesem Praktikum werden wir uns mit dem letzten Block aus Abbildung 1.1, der Klassifikation, befassen. D.h. wir gehen davon aus, daß die Merkmale von den Objekten für eine 3 1. Einleitung gegebene Aufgabenstellung geeignet extrahiert wurden. Sensor Objektraum Merkmalkonstruktion Musterraum Klassifikation Merkmalraum Bedeutungsklassen Abbildung 1.1.: Schematisierung der Mustererkennung. 1.1. Die Klassifikation Für die Definition des Vorgangs der Klassifikation ist es notwendig ein paar grundlegende Begriffe einzuführen. Wir definieren den Objektraum als denjenigen Raum, der alle auftretenden Objekte enthält, die in unserer Klassifikationsaufgabe vorkommen können. Diese Einschränkung dient dazu die Aufgabe der Klassifikation überschaubar und lösbar zu machen. Die Objekte können beliebiger Natur sein, wie zum Beispiel Schriftzeichen für eine Zeichenerkennung, oder physikalische Größen. Der Objektraum läßt sich in Bedeutungsoder Äquivalenzklassen unterteilen. Für eine Klassifikationsaufgabe seien k Bedeutungsklassen ωi vorgegeben. Die Menge aller Klassen sei Ω := {ω1 , . . . , ωk }. Im Fall der Schrifterkennung repräsentieren die Buchstaben des Alphabets die Klassen. Um eine automatische Klassifikation zu realisieren — was unser Ziel beim Klassifikatorentwurf ist — benötigen wir nun eine elektronische Repräsentation der Objekte. Hierfür gilt es einen Sensor zu finden, der die zu untersuchenden Eigenschaften des Objektes detektiert. Im mathematischen Sinne bildet der Sensor den Objektraum auf den Musterraum ab. Für die Schriftzeichenerkennung würde zum Beispiel ein Scanner als Sensor in Frage kommen. Von den über den Sensor generierten Muster werden nun wesentliche Merkmale extrahiert. Dieser Schritt dient auch der Datenreduktion, bei der für die Aufgabenstellung unwesentliche Informationen unterdrückt werden. Die Merkmale beinhalten hinreichend viele Informationen, die für eine Klassifikation notwendig sind. Nachdem die Merkmale von den Mustern extrahiert wurden, erfolgt die Klassifikation der Merkmale. Die Aufgabenstellung einer Klassifikation läßt sich folgendermaßen allgemein umschreiben: Gegeben seien k Bedeutungsklassen ωi . Jede Bedeutungsklasse wird durch ihre Elemente definiert. Allgemeiner läßt sich festhalten, daß eine Bedeutungsklasse durch ihre intrinsischen Merkmale, die allen Elementen der Bedeutungsklasse gemein sind, definiert ist. Die Objekte — und damit auch die Muster resp. Merkmale der Objekte — einer Bedeutungsklasse unterliegen bei realen Problemstellungen einer gewissen Variabilität. Unter der Variabilität der Objekte sind Transformationen und/oder Störungen zu verstehen, die auf die Objekte wirken. Aber auch unterschiedliche Erscheinungsformen der Objekte tragen zur Variabilität bei. 4 1.1. Die Klassifikation ω1 ω2 Musterraum Bedeutungsklassenraum Abbildung 1.2.: Klassifikation der Muster eines Zwei-Klassenproblems. Zu den Transformationen gehören in der Bildverarbeitung geometrische Abbildungen, wie z.B. Euklidschen Bewegungen (Rotation und Translation) im IR2 oder IR3 , projektive Abbildungen usw. Ebenso gehören auch intensitätsbasierte Abbildungen, z.B. durch Beleuchtungseinflüssen bei der Aufnahme eines Objektes mit der Kamera, zu den Transformationen. Zu den Störungen gehört zum Beispiel das Rauschen des Sensors. Häufig lassen sich Merkmale konstruieren, die gegenüber den vorkommenden Störungen robust und gegenüber einen Teil der Transformationen invariant sind. Doch ist es nicht immer möglich, solche Merkmale zu konstruieren. D.h. der Klassifikator muß die Merkmale — und damit die Objekte — trotz Transformationen und Störungen der korrekten Bedeutungsklasse zuordnen. Bemühen wir noch einmal das Beispiel der Schrifterkennung. Wenn in der Problemstellung die Rotation in der Ebene auftreten kann, so muß der Klassifikator das Merkmal eines rotierten „A“ auch der Bedeutungsklasse ωA zuweisen. Für den Vorgang der Klassifikation muß dem Klassifikator Wissen über die zu klassifizierenden Objekte und deren Klassenzugehörigkeit zugänglich gemacht werden. Grundsätzlich gibt es hierfür zwei Vorgehensweisen: Beim überwachten Lernen (supervised learning) wird der Klassifikator mit Hilfe einer klassifizierten Stichprobenmenge an Mustern resp. Merkmalen trainiert. Hierfür wurde die Stichprobe zuvor von einem Experten manuell klassifiziert. Der Klassifikator wird an die Trainingsmenge der Merkmale — bezüglich gewisser Bewertungskriterien (z.B. Fehlklassifikationsrate) — angepaßt. Eine weitere Möglichkeit für das Training eines Klassifikators ist das unüberwachte Training. Ist die Klassenzugehörigkeit der Muster nicht vorab bekannt, so handelt es sich um ein unüberwachtes Lernen (unsupervised learning). Auf Klassifikatoren, die auf unüberwachtem Lernen basieren, werden wir nicht näher eingehen. 5 1. Einleitung In Abbildung 1.2 ist das Vorgehen der Musterklassifikation für ein Zwei-Klassenproblem dargestellt. Die Muster der Klasse ω1 sind mit Punkten, die der Klasse ω2 mit Kreisen gekennzeichnet. Die Klassifikation bildet jedes Muster auf eine Bedeutungsklasse ω ab. In realen Problemstellungen treten hierbei Fehler auf. D.h. die Muster werden einer falschen Klasse zugeordnet, wie das in Abbildung 1.2 für ein Muster der Klasse ω1 angedeutet ist. Allgemein bezeichnen wir ein Muster x als Element aus dem Vektorraum X ⊂ IRN . Die Klassenzugehörigkeit ω läßt sich auch über k-dimensionale Einheitsvektoren ei beschreiben. Wir definieren den Zielvektor y der Klasse ω folgendermaßen: yi = ei für ωi . Ein Muster x ist im Zusammenhang mit seiner wahren Klassenzugehörigkeit ω zu betrachten. Ein Klassifikator stellt eine Abbildung eines Musters [x, ωi ] auf einen Zielvektor y dar: d : x → y, y = d(x). Im Idealfall ist d(x) = yi . Andernfalls ist ein Klassifikationsfehler aufgetreten. 1.2. Literatur zur Klassifikation Die in dieser Anleitung zum Praktikum vorgestellte Theorie läßt sich in der Standardliteratur der Mustererkennung resp. Musterklassifikation wiederfinden. Ferner werden die theoretischen Grundlagen der Klassifikation ausführlich in [1] vermittelt. Hervorzuheben sind die folgenden Bücher, die für die Einführung und Vertiefung in das Gebiet der Klassifikation gute Dienste leisten, und hauptsächlich für die vorliegende Anleitung verwendet wurden: Pattern Classification and Scene Analysis von R. O. Duda und P. E. Hart, [3], ein Standardwerk der Klassifikation, bietet eine umfassende Einführung in die Bayes-Entscheidungstheorie. Es werden parametrische und nichtparametrische Methoden der Klassifikation hergeleitet. Ebenso wird die Theorie der linearen Diskriminanzfunktionen erläutert. Methoden des unüberwachten Lernens und Clustering-Verfahren werden in [3] zusätzlich behandelt. Das Buch Pattern Recognition and Neural Networks von B. D. Ripley, [7], ist ein weiteres Standardwerk der Mustererkennung. Die Gebiete der statistischen Entscheidungstheorie, der linearen Diskriminanz-Analyse werden ausführlich dargestellt. Der Schwerpunkt von [7] ist in der Verwendung von künstlichen neuronalen Netzwerken für die Klassifikation zu sehen. Ein weiteres — gut verständliches — Standardwerk der Musterklassifikation ist das Buch Pattern Classification von J. Schürmann, [10]. Es bietet Einblick in statistische und neuronale Ansätze der Klassifikation. Dabei deckt [10] nahezu alle Themenbereiche der Musterklassifikation ab und diskutiert zudem Fragen zur Merkmalselektion und Bewertung von Klassifikatoren. Zusätzlich werden Ansätze zur Kombination von Klassifikatoren erläutert. Ergänzende Literatur zu der hier gegebenen Einführung in künstliche neuronale Netze kann in [8], [6] und [9] gefunden werden. [8] konzentrieren sich auf selbstorganisierende Karten, einen hier nicht näher betrachteten Ansatz von KNN, geben aber auch für das 6 1.2. Literatur zur Klassifikation in diesem Versuch zu behandelnde Multilagen-Perzeptron eine kompakte, gut verständliche Einführung. [6] und [9] gehen auf das Perzeptron etwas ausführlicher ein. Ebenfalls empfehlenswert ist das Manual zur Matlab Neural Networks Toolbox [2], welches neben der Syntax-Beschreibung der in dem praktischen Teil verwendeten Matlab-Funktionen zur KNN-Simulation auch theoretische Erläuterungen zu den Verfahren bereithält sowie auch die Matlab-Demonstrationen zu dieser Toolbox. Im WWW gibt es unter der Referenz [5] MPEG-Filme, in denen das Lernen von KNN, insbesondere das Perzeptron-Lernen, animiert wird. 7 2. Klassifikatoren Wie schon erwähnt lassen sich Klassifikatoren in der Art ihres Lernens unterscheiden. Wir betrachten hier nur solche Klassifikatoren, die auf einem überwachten Lernvorgang basieren. D.h. dem Klassifikator wird zu Beginn eine Lernstichprobe von dem mustererzeugenden Prozeß — der Musterquelle — präsentiert, die vorab — zum Beispiel von einem Experten — klassifiziert wurde. Der Klassifikator hat somit die Möglichkeit, seine Schätzung der Klassenzugehörigkeit eines Musters der Stichprobe zu validieren. Das Wissen von einer Fehlentscheidung ist schließlich Voraussetzung für ein Lernen. Für die Bewertung der Güte eines trainierten Klassifikators wird eine weitere Stichprobenmenge herangezogen. Diese ist von der Lernstichprobe verschieden und wird häufig Teststichprobe („recall"´Stichprobe) genannt (siehe auch 6). Die auf überwachten Lernen basierenden Klassifikatoren lassen sich in drei Hauptkategorien unterteilen: Zur ersten Kategorie gehören die parametrischen verteilungsbasierten Klassifikatoren. Sie basieren auf einer Modellannahme bezüglich der statistischen Eigenschaft der Musterquelle resp. auf der Kenntnis der Wahrscheinlichkeitsdichteverteilung (WDV ). Ist die WDV nicht a-priori bekannt, wird bezüglich der WDV des mustererzeugenden Prozesses eine Hypothese aufgestellt (zum Beispiel wird angenommen, daß es sich um eine Normalverteilung handelt). Jede Verteilung wird mit Parametern beschrieben, die im allgemeinen aus der Muster-Stichprobe geschätzt werden müssen. Einen anderen Weg beschreiten nicht-parametrische Klassifikatoren, die eine WDV modellieren ohne eine Annahme über die der Musterquelle zugrundeliegende WDV -Funktion zu machen. Zu den nicht-parametrischen Klassifikatoren gehören solche, die für die Klassifikation direkt die Lernstichproben verwenden oder die Verteilungen aus den Lernstichproben schätzen. Als ein wichtiger Vertreter der nicht-parametrischen Klassifikatoren wird der κ-Nächste-Nachbarn-Klassifikator vorgestellt. Als dritte Klassifikator-Kategorie sind Ansätze zu nennen, die auf einer Funktionsapproximation basieren. Für das Training der Funktionsapproximations-Klassifikatoren müssen auch Parameter angepaßt werden. Wesentlicher Unterschied zu den parametrischen und nicht-parametrischen Klassifikatoren ist, daß keinerlei Verteilungen modelliert werden. Zwei Instanzen der auf Funktionsapproximation basierenden Klassifikatoren werden in diesem Praktikum vorgestellt: der Polynom-Klassifikator und der und der NeuronaleNetzwerk-Klassifikator. 8 2.1. Bayes-Entscheidungs-Theorie 2.1. Bayes-Entscheidungs-Theorie Die auftretenden Variationen der Muster x1 einer Klasse lassen sich über die Statistik beschreiben. Dem Umstand, daß jede Klasse ωi mit einer bestimmten Wahrscheinlichkeit auftreten kann, wird mit der a-priori Wahrscheinlichkeit P (ωi ) begegnet. Bei einer Gleichverteilung der Klassen gilt P (ωi ) = 1/k. Im folgenden Kontext gehen wir davon aus, daß die statistischen Eigenschaften — also die a-priori Wahrscheinlichkeit und die klassenbedingte Wahrscheinlichkeitsdichtefunktion (WDF ) — bekannt sind. D.h. für jeden Klasse haben wir eine WDF p(x|ωi ), die uns die bedingte Wahrscheinlichkeit für des Muster x mit der Bedingung, daß x zur Klasse ωi gehört, angibt. Was wir erreichen möchten, ist eine Aussage über die W, daß ein beobachtetes Muster x der Klasse ωi angehört. D.h. wir benötigen einen Ausdruck für die a-posteriori Wahrscheinlichkeit P (ωi |x). Die gesuchte Aussage wird von der Bayes-Regel geliefert: p(x|ωi )P (ωi ) P (ωi |x) = p(x) mit p(x) = k i=1 p(x, ωi ) = k p(x|ωi )P (ωi ). i=1 Die a-posteriori Wahrscheinlichkeit gibt uns ein Maß für die Zugehörigkeit eines Musters x zur Klasse ωi an. Der Vorgang der Klassifikation mit gegebener a-posteriori Wahrscheinlichkeit ist nun einfach: Berechne alle P (ωi |x) für ein neu beobachtetes Muster x. Bestimme die Klasse ωi für den die a-posteriori Wahrscheinlichkeit maximal wird. Ein nach der soeben beschriebenen Entscheidungsregel arbeitender Klassifikator heißt Maximum APosteriori Klassifikator, oder kurz MAP-Klassifikator. Ist die a-priori Wahrscheinlichkeit für alle Klassen gleich, so läßt sich die Entscheidungsregel vereinfachen: Bestimme für alle Klassen für das aktuelle Muster x den Wert der bedingte WDF p(x, ωi ). Suche die Klasse ωi deren WDF maximal ist. Ein Klassifikator mit einer solchen Entscheidungsregel heißt Maximum-Likelihood-Klassifikator, abgekürzt ML-Klassifikator. Der MAPund der ML-Klassifikator minimieren die mittlere Wahrscheinlichkeit eines Fehlers. Für ein Klassifikationsproblem mit bekannter WDF und a-priori Wahrscheinlichkeit ist der MAPKlassifikator optimal. Allerdings ist in realen Problemstellungen die WDF der Klassen selten bekannt. Alternativ läßt sich die Bayes-Entscheidungsregel auch über das Risiko einer Fehlentscheidung herleiten. Sei Ω := {ω1 , . . . , ωk } die Menge aller möglichen Klassen einer Klassifikationsaufgabe. Die Menge aller Entscheidungen, die vom Klassifikator getroffen werden kann, sei mit Ω̂ = Ω ∪ {ω0 } definiert. Hierbei bezeichnet die Klasse ω0 die Zurückweisung eines Klassifikators. Der Klassifikator wird ein Muster x dann zurückweisen, wenn die Entscheidung zugunsten einer Klasse aus der Menge Ω zu „unsicher“ ist. In realen Aufgabenstellungen fallen bei einer Fehlentscheidung des Klassifikators Kosten 1 Wir betrachten das Muster x zunächst ganz allgemein als n-dimensionale kontinuierliche Zufallsvariable. 9 2. Klassifikatoren an. Diese lassen sich mit der Kosten- oder Verlustfunktion C(ω, ω̂)2 angeben. Da die Kostenmatrix C applikationsspezifisch ist, wird für die weitere theoretische Betrachtung eine vereinfachte Annahme gemacht: Die Kosten einer Fehlentscheidung sei mit CF , die Kosten einer Zurückweisung mit CR definiert. Üblicherweise wird eine korrekte Entscheidung ohne Kosten belegt. Das Risiko einer Fehlentscheidung ist definiert über den Erwartungswert der Kosten: C(ω, ω̂)P (x, ω). (2.1) R := E{C} = x ω Die Klasse ω̂ wird vom Klassifikator generiert. Mit der Funktion ω̂ = d(x) und der BayesRegel läßt sich die Suche nach einem Klassifikator mit der Eigenschaft eines minimalen Risikos wie folgt formulieren: C(ω, d(x))P (ω|x) p(x) = min . (2.2) R= x d(x) ω Um die optimale Funktion d — und damit den optimalen Klassifikator – zu finden, werden die Kostenmatrix C und die a-posteriori W P (ω|x) benötigt. Für ein gegebenes Muster x läßt sich das lokale Risiko Rx angegeben: Rx = C(ω, d(x))P (ω|x) (2.3) ω Das Risiko R wird dann minimal, wenn das lokale Risiko Rx minimal wird. Mit der Kostenmatrix C und dem Vektor der a-posteriori Wahrscheinlichkeit p = (P (ω1 |x), . . . , P (ωk |x))T wird der k + 1-dimensionale Risiko-Vektor r definiert: C(ω, ω̂ = ω0 )P (ω, x) ω . T .. (2.4) r := C p = . C(ω, ω̂ = ωk )P (ω, x) ω Die Minimierung des lokalen Risikos Rx ist gleichzusetzen mit der Suche nach der minimalen Komponente von r, d.h. Rx = min(r1 , . . . , rk+1 ). Mit der Voraussetzung für die Kostenmatrix C erhält man für den Risiko-Vektor r schließlich CR CF (1 − P (ω1 |x)) r= (2.5) . .. . CF (1 − P (ωk |x)) Multiplizieren wir den Ausdruck für den Risiko-Vektor in Gleichung (2.5) mit dem Faktor −1/CF und addieren 1 hinzu, ergibt sich der Vektor: CR 1− C F P (ω |x) β 1 . (2.6) = .. p . P (ωk |x) 2 Aus dem kartesischen Produkt der Mengen Ω und Ω̂ ergeben sich alle möglichen Konstellationen (ω, ω̂). 10 2.2. Repräsentation eines Klassifikators Der Schwellwert β 3 kennzeichnet die minimale W, die für eine Entscheidung zugunsten einer Klasse ω überschritten werden muß. Ein minimales Risiko wird damit durch folgende Regel erreicht: falls (P (ω̂|x) = max{P (ω|x)} und P (ω̂|x) > β), ω wähle ω̂ : sonst Rückweisung. (2.7) D.h. die Formulierung der Klassifikationsaufgabe über das minimale Risiko führt zur der Bayes-Entscheidungs-Regel (siehe oben). Bezüglich des minimalen Klassifikationsfehlers ist ein auf der Bayes-Entscheidungs-Regel basierender Klassifikator optimal. Da in der Realität die statistischen Eigenschaften der Musterquellen nicht bekannt sind, müssen diese approximiert werden. Die Approximation führt zu Fehlern bei der Klassifikation, die die Fehlerrate steigen läßt. Bestenfalls kann der Klassifikator bezüglich der Fehlerrate so gut wie der auf der Bayes-Entscheidungs-Regel beruhende Klassifikator werden. Aufgabe 1: Skizzieren sie für ein eindimensionales Klassifikationsproblem mit zwei Klassen die WDF p(x|ωi ) nach ihren Vorstellungen und konstruieren sie daraus mit den a-priori Wahrscheinlichkeit P (ω1 ) = 2/3 und P (ω2 ) = 1/3 die a-posteriori Wahrscheinlichkeit. Kennzeichnen sie die Entscheidungsgrade eines MAP-Klassifikators und die Wahrscheinlichkeit für einen Fehler. Aufgabe 2: Schreiben Sie die Kostenmatrix C allgemein für ein Klassifikationsproblem mit vier Klassen auf. 2.2. Repräsentation eines Klassifikators Für die Implementierung eines Klassifikators benötigt man Funktionen D(x), mit deren Hilfe die unbekannten Muster x diskriminiert — also einer Klasse zugeordnet — werden können. Die Entscheidungsfunktionen Di (i = 1, . . . , k) sollen derart definiert sein, daß sie ein Muster x der Klasse ω̂i zuordnet, wenn Di (x) > Dj (x), ∀j = i. Die a-posteriori W erfüllt diese Bedingung und damit kann für D festgehalten werden: Di (x) = P (ωi |x) = p(x|ωi )P (ωi ) p(x) (2.8) Da für alle Di für ein gegebenes Muster x der Nenner gleich ist und für die Entscheidung nur das Maximum gefunden werden muß, läßt sich die Diskriminierfunktion vereinfachen. Mit D (x) = log(D(x)) folgt: Di (x) = log(p(x|ωi )) + log(P (ωi )) 3 Da die Kosten CR und CF per Definition positiv sind, und i.a. CR < CF gilt, ist der Schwellwert β (2.9) ∈ [0, 1]. 11 2. Klassifikatoren Zusammen definieren die Funktionen Di die Entscheidungsgrenzen (Grenzflächen). Für die Entscheidungsgrenze zwischen den Klassen i und j gilt der Zusammenhang: Di (x) = Dj (x) resp. Di (x) = Dj (x) 12 (2.10) 3. Parametrische Klassifikatoren In diesem Kapitel wird als Vertreter für parametrische Klassifikatoren ein auf der BayesEntscheidungsregel basierender Klassifikator für Normalverteilungen hergeleitet. Ein Klassifikator, der auf der Bayes-Entscheidungsregel aufbaut, wird auch als Bayes-Klassifikator bezeichnet. Der Bayes-Klassifikator gehört zu den in der Mustererkennung am häufigsten verwendeten Klassifikatoren. Grundlage parametrischer, verteilungsbasierter Klassifikatoren sind statistische Modellannahmen bezüglich der Musterquelle. D.h. einem Klassifikationsproblem wird eine bestimmte Klassenverteilung zugrunde gelegt. Im allgemeinen sind weder die Verteilungsfunktionen noch die Parameter der Verteilungsfunktionen bekannt. Um einen parametrischen Klassifikator für eine Aufgabenstellung zu entwerfen wird eine Hypothese über die Wahrscheinlichkeitsdichteverteilung (WDV ) der Musterquelle aufgestellt. Nach der Auswahl einer Verteilung müssen deshalb die zur Verteilung zugehörigen Parameter mit Hilfe einer Muster-Stichprobenmenge geschätzt werden. 3.1. Bayes-Klassifikator für normalverteilte Muster Es soll nun ein parametrischer Klassifikator für ein Problem mit Normalverteilung hergeleitet werden. Für die n-dimensionale Normalverteilungsdichte gilt: 1 1 T −1 exp − (x − µ) K (x − µ). (3.1) p(x) = (2π)n/2 |K|1/2 2 Hierbei ist x ∈ IRn der n-dimensionale Mustervektor, µ ∈ IRn der Mittelwert und K ∈ IRn×n die Kovarianzmatrix. Die Normalverteilung wird häufig mit p(x) ∼ N (µ, K) abgekürzt, was bedeutet, daß p eine Normalverteilung mit dem Mittelwert µ und der Kovarianz K darstellt. Der Mittelwert und die Kovarianzmatrix sind die Parameter, die die Verteilung beschreiben. Für µ und K gelten folgende Zusammenhänge: µ = E{x} und K = E{(x − µ)(x − µ)T }. (3.2) Bei einem klassenweise normalverteilten Problem mit k Klassen ergeben sich allgemein k Verteilungen pi (x) ∼ N (µi , Ki ), mit i = 1, . . . , k. Für die i-te Entscheidungsfunktion D 13 3. Parametrische Klassifikatoren gilt wegen Gleichung (2.9): n log(2π) − 0.5 log(|Ki |) + log(P (ωi )). (3.3) 2 Gleichung (3.3) stellt die allgemeine Form der Entscheidungsfunktionen dar. Je nach Eigenschaft der Kovarianzmatrix lassen sich die Entscheidungsfunktionen vereinfachen. Di (x) = −0.5(x − µi )T K−1 i (x − µi ) − 3.1.1. Euklidischer-Distanz-Klassifikator Im Fall statistisch unabhängiger Zufallsvariablen x mit identischer Varianz σ 2 vereinfacht sich die Kovarianzmatrix zu K = σ 2 I. Einsetzen in die allgemeine Form der Entscheidungsfunktion von Gleichung (3.3) ergibt: 1 n ||x − µi ||2 − log(2π) − 0.5 log(σ 2n ) + log(P (ωi )). 2 2σ 2 Weglassen der von i unabhängigen und konstanten Terme liefert: Di (x) = − 1 ||x − µi ||2 + log(P (ωi )) (3.4) 2 2σ Diese Entscheidungsfunktionen beinhalten die quadrierten Euklidischen Distanzen zwischen dem Mustervektor x und dem Mittelwertsvektor µ. Sie beschreiben einen minimalen Euklidischen-Abstands-Klassifikator unter Berücksichtigung der Varianz. Der Vorgang der Klassifikation läßt sich für Klassen mit gleicher Wahrscheinlichkeit — damit wird P (ωi ) = 1/k — einfach beschreiben: Um ein unbekanntes Muster x zu klassifizieren, müssen alle k Euklidische Distanzen ||x − µi || bestimmt werden. Ordne x derjenigen Klasse ωi zu, für die der Abstand zum Mittelwert µi minimal ist. Abbildung 3.1 zeigt die Klassifikation für ein Zwei-Klassenproblem mittels Euklidischer Distanz. Di (x) = − 3.1.2. Mahalanobis-Distanz-Klassifikator Ein weiterer einfacher Fall der Normalverteilung der Klassen sind für alle Klassen identische Kovarianzmatrizen, d.h. Ki = K. Setzt man diese Vereinfachung wiederum in die allgemeine Form der Entscheidungsfunktionen aus Gleichung (3.3) ein, so entarten die Entscheidungsfunktionen zu: Di (x) = −0.5(x − µi )T K−1 (x − µi ) + log(P (ωi )) (3.5) Die Distanz (x − µi )T K−1 (x − µi ) wird als quadrierte Mahalanobis-Distanz bezeichnet. Für den Sonderfall der gleichen a-priori Wahrscheinlichkeiten läßt sich die Arbeitsweise des auf den minimalen Mahalanobis-Abstand basierenden Klassifikators simpel beschreiben: Berechne für ein gegebenes Muster x mit unbekannter Klassenzugehörigkeit die quadrierten Mahalanobis-Distanzen für alle k Klassen. Weise x der Klasse ωi zu, für die x dem Vektor µi am nächsten liegt. Die Abbildung 3.2 stellt die Klassifikation für ein ZweiKlassenproblem mit der Mahalanobis-Distanz dar. 14 3.1. Bayes-Klassifikator für normalverteilte Muster x2 R1 D1 (x) = D2 (x) R2 µ1 µ2 x1 Abbildung 3.1.: Euklidische-Distanz-Klassifikation für ein Zwei-Klassenproblem mit gleicher a-priori Wahrscheinlichkeit. x2 D1 (x) = D2 (x) R1 R2 µ1 µ2 x1 Abbildung 3.2.: Mahalanobis-Distanz-Klassifikation für ein Zwei-Klassenproblem mit gleicher a-priori Wahrscheinlichkeit. 15 3. Parametrische Klassifikatoren 3.2. Parameterschätzung Im vorangegangenen Kapitel 3.1 wurden Klassifikatoren auf Basis der Bayes-Regel unter der Annahme von normalverteilten Klassen betrachtet. Die verwendeten Verteilungen und deren Parameter µ und K wurden als bekannt vorausgesetzt. Dies ist in realen Problemstellungen selten der Fall. D.h., wenn die Parameter nicht bekannt sind, müssen sie aus den Stichproben geschätzt werden. Die Schätzung der a-priori Wahrscheinlichkeit P (ωi ) stellt kein Problem dar. Hingegen bereitet die Schätzung der klassenbedingten WDF Probleme. Dieses liegt häufig an dem in bezug auf die Dimension der Muster zu geringen Stichprobenumfang. Im folgenden Kontext werden wir die Parameterschätzung für den Fall einer Normalverteilung — d.h. p(x|ωi ) ∼ N (µi , Ki ) — betrachten. Wir fassen die beiden Parameter zu einem Vektor θ i = (µi , Ki )T für einen allgemeineren Ansatz zusammen. Gegeben seien k Stichprobenmengen Si — also für jede Klasse eine Stichprobenmenge. Es wird angenommen, daß aus den Proben der Menge Si keinerlei Informationen für die Parameter der Klasse j, θ j , enthalten sind. Das bedeutet, die Parameter θj der verschiedenen Klassen sind funktional unabhängig voneinander. Damit haben wir für jede Klasse das gleiche Problem zu lösen: Verwende die Stichprobe Si um die WDV -Funktion p(xi |θ i ) der Musterquelle zu schätzen, unter der Annahme der Verteilungsparameter θi . Enthält die Stichprobe Si = {xi1 , . . . , xis } genau s Proben, dann gilt für die bedingte WDV -Funktion p(Si |θ i ) = s p(xj |θ i ), j=1 da die einzelnen Proben statistisch unabhängig voneinander beobachtet wurden. Wenn die bedingte Wahrscheinlichkeitsdichtefunktion p(Si |θ i ) maximal wird, entspricht der Parameter θ i am besten den realen Parametern der Stichprobenverteilung. Man spricht in diesem Fall von einer Schätzung mit maximaler Wahrscheinlichkeit, oder auch einer Maximum Likelihood Estimation, abgekürzt MLE. Mit anderen Worten: Die MLE-Methode findet diejenige Schätzung eines Parametervektors, welche die Wahrscheinlichkeit für die Beobachtung, bezüglich einer gegebenen Modellverteilung, maximiert. Aus analytischen Gründen wird für die ML-Schätzung mit dem Logarithmus der WDV -Funktion p(S|θ) gearbeitet. Für die notwendige Bedingung eines Maximums der WDV p(S|θ) gilt: T ∂ ∂ ,..., log(p(S|θ)) = 0. ∂θ1 ∂θa Wobei der Ausdruck allgemein für a Parameter angegeben ist. Für die hier betrachtete Normalverteilung ist a = 2. Nach einsetzen der Funktion für die Normalverteilung aus Gleichung (3.1) und kurzer Rechnung ergibt sich als MLE für den Mittelwert 1 xi µ̂ = s i=1 s 16 (3.6) 3.2. Parameterschätzung und als MLE für die Kovarianzmatrix 1 (x − µ̂)(x − µ̂)T . K̂ = s i=1 s (3.7) Wohlgemerkt handelt es sich bei µ̂ und K̂ nur um Schätzungen und nicht um die wirklichen Parameter µ und K. Damit die Kovarianzmatrix nicht singulär wird, ist es erforderlich, daß der Stichprobenumfang s größer als die Dimension des Mustervektors n = dim(x) ist. 17 4. Nicht-parametrische Klassifikatoren Im Gegensatz zu den parametrischen Klassifikatoren basiert der in diesem Kapitel vorgestellte Vertreter nicht-parametrischer Klassifikatoren auf keinen statistischen Modellannahmen bezüglich der Musterquelle. 4.1. κ-Nächste-Nachbarn-Klassifikator Der κ-Nächste-Nachbarn-Klassifikator verwendet für die Klassifikation die gesamte zur Verfügung stehende Stichprobe. Gegeben sei eine gelabelte1 Stichprobe S. Seien X κ ⊂ S eine Untermenge der k nächsten Nachbarn von dem zu klassifizierenden Muster x. Der Merkmalvektor x wird derjenigen Klasse ωi zugeordnet, für das eine Mehrheitsvotum unter den k benachbarten Proben besteht. Für κ = 1 vereinfacht sich die Regel zur NächsteNachbar-Klassifikations Regel. Die Performanz des κ-Nächste-Nachbarn-Klassifikators ist stark abhängig vom Umfang der Stichprobe und der Konstanten κ. Um eine hohe Klassifikationsgüte zu erreichen, müssen eine große Anzahl von Musterproben verwendet werden. Dies führt bei der Implementation zu einem hohem Speicheraufwand. In der Abbildung 4.1 ist die Klassifikation mit einem κ-Nächste-Nachbarn-Klassifikator für ein ZweiKlassenproblem mit zweidimensionalen Mustern dargestellt. Die Klasse ω1 ist mit Punkten, die Klasse ω2 mit Kreisen gekennzeichnet. Das zu klassifizierende Muster ist mit xnew in der Abbildung eingetragen. Mit κ = 3 wird das Muster xnew der Klasse ω1 zugeordnet. Bemerkenswert für das dargestellte Problem ist, daß bei Verwendung von κ = 1 — also der Nächste-Nachbar-Klassifikator — das Muster xnew der Klasse ω2 zugeordnet wird. Dies liegt in diesem Fall an der sehr geringen Stichprobe. 1 Jedem Muster der Stichprobe ist die Klassenzugehörigkeit zugeteilt. D.h. ein Element aus der Stichprobenmenge S besteht aus dem Wertepaar (x, y), wobei y die Klasse als Einheitsvektor der Dimension k bezeichnet. 18 4.1. κ-Nächste-Nachbarn-Klassifikator x2 xnew x1 Abbildung 4.1.: Klassifikationsproblem mit zwei Klassen und zweidimensionalen Mustern. Das unbekannte Muster xnew wird mit einem κ-Nächste-Nachbarn-Klassifikator (κ = 3) klassifiziert. 19 5. Klassifikatoren basierend auf Funktionsapproximation In diesem Kapitel werden nun zwei Vertreter der auf einer Funktionsapproximation basierenden Klassifikatoren vorgestellt. 5.1. Polynom-Klassifikator Aus der Mathematik ist der Ansatz der Funktionsapproximation mittels einer Menge von Basisfunktionen, zum Beispiel Polynome, bekannt. Ferner weiß man, daß eine Menge von Polynomen geeigneter Länge ausreichend ist um eine Funktion bis zur gewissen Genauigkeit zu approximieren. Dieses Wissen dient als Motivation für die Verwendung von Polynomen zur Musterklassifikation. Gegeben sei ein n-dimensionaler Mustervektor x = (x1 , . . . , xn )T und der Grad g eines Polynoms. Ein skalare Entscheidungsfunktion d(x) kann auf folgende Weise definiert werden: d(x) = a0 + a1 x1 + a2 x2 + · · · + an xn +an+1 x21 + an+2 x1 x2 + an+3 x1 x3 + · · · +a··· x31 + a··· x21 x2 + a··· x21 x3 + · · · . (5.1) Das Polynom besteht in der ersten Zeile aus einem konstanten Term a0 gefolgt von n linearen Termen der Form ai xi . In der zweiten Zeile sind die n(n + 1)/2 quadratische Terme aufgeführt. Sinngemäß wird das Polynom mit allen Termen entwickelt, bis der maximale Grad g erreicht ist. Insgesamt besteht das Polynom aus n+g L= g Termen. Jeder Term des Polynoms repräsentiert eine der L Basisfunktionen, die für die Approximation verwendet werden. Damit ist die Komplexität des Polynoms — und damit des Modells — über den Grad g und der Dimension n des Mustervektors x vorgegeben. Das Polynom in Gleichung (5.1) kann kompakter in folgende Form gefaßt werden: d(x) = aT q(x), 20 (5.2) 5.1. Polynom-Klassifikator wobei a = (a0 , . . . , aL )T und q(x) = (1, x1 , x2 , . . . , xn , x21 , x1 x2 , . . . , x31 , x21 x2 . . .)T die Polynomstruktur bezeichnet. Da wir ein Klassifikationsproblem mit k Klassen zu lösen haben, werden wir auch k Polynome di , i = 1, . . . , k, verwenden. Da nur die Koeffizienten ai klassenspezifisch sind — q(x) ist für alle Klassen gleich auszuwerten — läßt sich die gesamte Klassifikation mit einem Polynom-Klassifikator auf die Gleichung d(x) = AT q(x) (5.3) bringen. Hierbei ist die Koeffizientenmatrix definiert über A = (a1 , a2 , . . . , ak ). Abbildung 5.1 stellt das Funktionsprinzip eines trainierten Polynomklassifikators dar. Das Training — oder Lernen — eines Polynomklassifikators besteht in der Adaption der Koeffizientenmatrix A. Aufgabe 3: Bestimmen Sie für ein Klassifikationsproblem mit zwei Klassen und dreidimensionalen Muster und einem Polynom des Grades g = 2 allgemein die Polynomstruktur q(x). Notieren Sie die vektorielle Entscheidungsregel für diesen Fall. Die Adaption der Koeffizientenmatrix A wird nun über die Methode der kleinsten mittleren quadratischen (LMS - least mean square) Abweichungen erreicht. S 2 = E{||d(x) − y||2 } = E{||AT q(x) − y||2 } = min A (5.4) Die Größe y bezeichnet die wirkliche Klassenzugehörigkeit des Musters x. Die Auswertung von Gleichung (5.4) ergibt nach längerer Rechnung schließlich die folgende Vorschrift zur Bestimmung der Koeffizientenmatrix A = [E{q(x)q(x)T }]−1 E{q(x)yT }. (5.5) Unter der Voraussetzung, daß die Matrix E{q(x)q(x)T } regulär ist. Eine ausführliche Herleitung für die Berechnung der Koeffizientenmatrix A kann in [1, 10] gefunden werden. 21 5. Klassifikatoren basierend auf Funktionsapproximation q1 (x) a0,1 a0,k q2 (x) Σ x1 d1 a1,k a1,1 aL−1,1 xn qL−1 (x) dk aL−1,k aL,1 Σ aL,k qL (x) x q(x) A Abbildung 5.1.: Blockschaltbild eines Polynom-Klassifikators. 22 d(x) 5.2. Neuronaler-Netzwerk-Klassifikator 5.2. Neuronaler-Netzwerk-Klassifikator In diesem Teil des Versuchs wird ein Klassifikationsansatz auf der Basis von Künstlichen Neuronalen Netzen (KNN) bearbeitet. Die Beschreibung von KNN, die in dieser Versuchsanleitung erfolgen soll, gliedert sich in folgende Abschnitte: Zunächst wird in Abschnitt 5.2.1 die Arbeitsweise von allgemeinen KNN beschrieben. Abschnitt 5.2.2 skizziert das Vorbild für KNN, ein biologisches Neuron. Abschnitt 5.2.3 führt anschließend ein mathematisches, abstraktes Neuron ein und in Abschnitt 5.2.4 wird ein spezieller Typ eines Neurons, das Einlagen-Perzeptron, beschrieben. Abschnitt 7 behandelt den Übergang von einem einzelnen Neuron auf ein Netz von Neuronen und Abschnitt 5.2.5 schließlich das in dem Versuch verwendete Multilagenperzeptron (MLP). 5.2.1. Allgemeines über Künstliche Neuronale Netze Vorbild für die Informationsverarbeitung mit KNN ist das menschliche Gehirn bzw. Nervensystem. Es zeichnet sich unter anderem dadurch aus, daß es durch Beobachtung und Erfahrung bestehende Zusammenhänge seiner Umwelt anzulernen und folgende Handlungen darauf einzustellen vermag. Dabei agiert es überaus fehlertolerant. Untersuchungen der Neurobiologie haben ergeben, daß das Nervensystem aus mehreren Millionen „einfacher“ Berechnungseinheiten, sogenannter Neuronen, besteht, dessen Leistungsfähigkeit aus einem außerordentlich hohem Vernetzungsgrad resultiert. Bei der Untersuchung von KNN wird erforscht, wie die Behandlung von allgemeinen Problemstellungen in der Informationsverarbeitung (wie in dem hier besprochenen Fall der Klassifikation) durch eine Vernetzung von einfachen elementaren Berechnungseinheiten, sogenannten abstrakten Neuronen, realisiert werden kann. In der mathematischen Modellierung finden häufig die Neuronen eine Entsprechung in Knoten und die Verbindungen in Kanten eines gerichteten Graphen. In diesem KNN-Modell können bestimmte Neuronen als Eingabe- und weitere als AusgabeNeuronen definiert werden. Alle übrigen Neuronen sind verdeckte Neuronen. Ausgehend von den Eingabe-Neuronen können die sogenannten Erregungen anderer und somit auch die der Ausgabe-Neuronen berechnet werden. Auf diese Weise kann mit einem Neuronennetz die Berechnung einer mathematischen Funktion f :X→Y modelliert werden, dessen Eingabe x ∈ X an den Eingabeneuronen anliegt und dessen Ausgabe y ∈ Y an den Ausgabeneuronen abgegriffen werden kann. Die variablen Parameter in KNN sind die Verbindungsstärken zwischen den Neuronen. Diese werden typischerweise in einem iterativen Lernprozeß anhand von Beispieldaten gelernt. Ein Lernprozeß setzt sich im allgemeinen aus mehreren einzelnen Lernschritten zusammen. 23 5. Klassifikatoren basierend auf Funktionsapproximation Der Ablauf eines Lernschrittes gliedert sich dabei in zwei aufeinanderfolgende Teilschritte: 1. Dem KNN wird ein Lernbeispiel aus einem Trainingsdatensatz präsentiert, aus welchem es sogenannte Aktivierungen oder Erregungen der Neuronen berechnet. 2. Gemäß einer vorgegebenen Lernregel wird eine Korrektur der Neuronenparameter (der Gewichte) vorgenommen. Die Lernregel ist in der Regel eine Funktion des aktuellen Lernbeispieles und der Erregung des Neurons. Dieser Vorgang wird in mehreren Schritten wiederholt, wobei bei jedem Schritt zufällig ein Exemplar aus den Datenbeispielen ausgewählt wird. Im idealen Fall sind nach einer Vielzahl von Trainingsschritten die Neuronenparameter so eingestellt, daß die KNN auf eine erneute Eingabe der Trainingsbeispiele eine „richtige“ Antwort erzeugen bzw. die Fehlerrate einen gewünschten Schwellwert unterschreitet. Weiterhin ist es wie bei allen Klassifikatoren erwünscht, daß die Neuronen ihr angelerntes Wissen auf unbekannte Testbeispiele generalisieren können. In Abschnitt 1.1 wurde zwischen überwachtem und unüberwachtem Lernen unterschieden. Für beide Arten existieren künstliche neuronale Modelle. In den Experimenten dieses Versuchs sollen ausschließlich Daten mit bekannter Klassenzugehörigkeit behandelt werden. Daher gilt die Konzentration der folgenden Abschnitte dem überwachten Lernen. Den am unüberwachten Lernen mit KNN interessierten Leser sei die Lektüre von [8] empfohlen. Dort findet sich ausführliche Behandlung von unüberwachtem Lernen mit einem sehr vielseitigen Typ der KNN: den Selbstorganisierenden Merkmalskarten (Kohonenkarten). 5.2.2. Das biologische Neuron Wie in Abschnitt 5.2.1 erwähnt, ist das Vorbild für das abstrakte Modell das biologische Neuron. Ein typisches biologisches Neuron besteht aus drei Hauptstrukturen, nämlich dem Dentritenbaum, dem Soma (oder auch Zellkörper) und dem Axon (siehe Abbildung 5.2). Der Dendritenbaum bildet die Eingabe des Neurons. Im Soma werden die Eingabesignale verarbeitet, und das Ergebnis des Verarbeitungsschrittes wird an das Axon weitergeleitet. Bei einem Netz von Neuronen werden die Signale aus dem Axon an die Dendriten eines anderen Neurons weitergeleitet. Die Verbindungselemente zwischen Axon und Dendriten heißen Synapsen. Auf diese Weise besteht ein Nervensystem aus einem riesigen Netz von Neuronen, welches beim Menschen etwa eine Anzahl von 1011 Neuronen umfaßt. Eine ausführlichere Behandlung der biologischen Zusammenhänge befinden sich z.B. in [8]. 5.2.3. Das abstrakte Neuron 24 5.2. Neuronaler-Netzwerk-Klassifikator Synapse Axon Zellkern Soma, Zellkoerper Dendriten Abbildung 5.2.: Aufbau eines typischen biologischen Neurons: Dendriten bilden die Eingabe für das Neuron. Diese werden im Soma (Zellkörper) verarbeitet und das Ergebnis der Verarbeitung an das Axon weitergeleitet (entnommen aus [6]). Aufbau Der Aufbau eines abstrakten Neurons orientiert sich an dem biologischen Vorbild, wie Abbildung 5.3 illustriert: Es besitzt N einführende (die Dendriten) und eine ausführende (das Dendriten Soma Axon x1 a1 x2 a2 y = f ( i xi ai ) .. . y .. . aN xN Abbildung 5.3.: Modell eines abstrakten Neurons: Das Modell geht von N Eingabeleitungen (Dendriten) aus, die in die Berechnungseinheit (Soma) einführen. Hier wird die Erregung ydes Neurons aus einem an N T den Dendriten anliegenden Stimulus x = (x1 , . . . , xN ) nach der Formel y = f i=1 ai xi berechnet und an die Ausgabeleitung (das Axon) weitergeleitet. Die ai bezeichnen hierbei die Synapsenstärken, welche den Stimulus gewichten, und f die Aktivierungsfunktion des Neurons. Axon) Leitung. Zwischen Dendriten und Axon befindet sich die Berechnungseinheit (das Soma). In dem Modell wird angenommen, daß an den Dendriten ein Muster oder Stimulus x = (x1 , . . . , xN )T als Eingabe anliegt. Die Aktivierung (auch Erregung) y des Neurons berechnet sich in zwei Schritten: 25 5. Klassifikatoren basierend auf Funktionsapproximation 1. Die Stimuli xi werden mit Verbindungs- (Synapsen-) N stärken aiT, die den Dendriten zugeordnet sind, gewichtet und aufsummiert, s = i=1 ai xi = a x. 2. Eine Aktivierungsfunktion f , die sowohl linear als auch nichtlinear gewählt sein kann, wird anschließend auf das Skalarprodukt s angewendet, y = f (s). Beispiele solcher Aktivierungsfunktionen sind die Identitätsfunktion, die Stufenfunktion, die FermiFunktion und die tanh-Funktion (nähere Erläuterungen dazu in den Abschnitten 5.2.4 und 5.2.5). Zusammenfassend wird die Aktivierung y eines Neurons also aus der Vorschrift y = f N ai x i = f aT x (5.6) i=1 bestimmt. Die Adaption der Gewichte Den Gewichten ai kommt bei KNN eine wesentliche Bedeutung zu: Diese Parameter sind in der Regel weder fest in den Neuronen „verdrahtet“, noch werden sie in einer geschlossenen Formel berechnet. Stattdessen sind sie in einem iterativen Prozeß anhand von Trainingsbeispielen zu lernen und beschreiben somit den adaptiven Charakter des KNN. In diesem Lernprozeß nimmt die Lernregel die zentrale Stellung ein. In der Theorie der KNN gibt es eine Vielzahl von unterschiedlichen Modellen von Lernregeln. Jedoch lassen sich die meisten auf eine Grundhypothese zurückführen. Diese Hypothese wurde bereits 1949 vom Psychologen Donald Hebb aufgestellt [4] und wird in der Hebb’schen Lernregel beschrieben. Hiernach ändern sich die Synapsenstärken proportional zur korrelierten Aktivität vor und hinter der Verbindung. Mathematisch kann diese Aussage durch die Formel ∆a = ' · y · x = ' · f (aT x) · x (5.7) beschrieben werden. Hierbei bezeichnet y(aT x) wie bisher die Erregung des Neurons (anliegend hinter den Synapsen), x den Stimulus (anliegend vor den Synapsen) und ' > 0 einen Parameter, der die Größe des einzelnen Lernschrittes bemißt. Nehmen also sowohl Stimulus als auch Aktivität hohe Werte gleichen Vorzeichens an, so wird die Synapsenstärke erhöht. Auch in der in Abschnitt 5.2.4 beschriebenen Perzeptron-Lernregel wird sich dieser Gedanke wiederfinden lassen. In Vorbereitung dazu soll nun das Einlagen-Perzeptron eingeführt werden. 26 5.2. Neuronaler-Netzwerk-Klassifikator 5.2.4. Das Perzeptron Aufbau Ein Perzeptron ist ein abstraktes Neuron gemäß der Erregungsberechnung (5.6), welche die Stufenfunktion θ als Aktivierungsfunktion einschließt: 0, s < 0 f (s) = θ(s) = (5.8) 1, s ≥ 0 Ein Perzeptron „feuert“ demnach mit dem Wert 1, je nachdem, ob das Skalarprodukt von Stimulus x und Gewichtsvektor a größer oder kleiner Null ist. Die Abwesenheit einer Schwelle ss in der Stufenfunktion, y = θ (s − ss ) (5.9) bedeutet hierbei zunächst eine Einschränkung. Ein Beispiel für eine solche Einschränkung in Bezug zur Klassifikation wird in Aufgabe 1 beschrieben. Beim Perzeptron-Modell wird der Schwellwert durch eine Erweiterung des Eingaberaumes um eine weitere Komponente (x0 bzw. a0 ) modelliert, wobei x0 auf den konstanten Wert x0 = −1 gesetzt wird. Wegen y = θ N =θ ai x i N i=0 ai x i − a0 (5.10) i=1 und Vergleich mit (5.9) ist die Schwelle dann durch a0 gegeben, ein Wert, welcher wie die übrigen Synapsenstärken ai adaptiv behandelt werden kann. Abbildung 5.4 veranschaulicht diesen Sachverhalt. y 1 N a0 aixi i=1 N Abbildung 5.4.: Die Erregung y = θ i=1 ai xi + a0 x0 eines Perzeptrons. Die Synapsenstärke der 0Komponente übernimmt hierbei bei einem festen Wert x0 = −1 die Funktion eines adaptiven Schwellwertes a0 . 27 5. Klassifikatoren basierend auf Funktionsapproximation Klassifikation mit einem Einlagen-Perzeptron Schaltet man M solche Perzeptron-Einheiten r = 1, . . . , M parallel zu einem EinlagenPerzeptron zusammen (siehe Abbildung 5.5), so kann hiermit eine Klassifikation Φ von Mustervektoren x ∈ IRN in M bekannte Klassen Φ : IRN → {1, . . . , M } vorgenommen werden: Während der Trainingsphase soll jede Einheit r ∈ {1, . . . , M } seine Koeffizienten ari so anpassen, daß es nur auf die Muster x seiner Klasse r mit einem Ausgabewert yr = 1 reagiert, im anderen Fall mit yr = 0.1 x1 1 y1 = θ N a1ixi i=0 x2 2 y2 = θ N a2ixi i=0 ... ... xN −1 M yM = θ N aM ixi i=0 xN Eingabe Ausgabe Abbildung 5.5.: Ein Einlagen-Perzeptron: Jeder Klasse r ∈ {1, . . . , M } wird eine Perzeptron-Einheit zugeT ordnet, die genau dann feuert ( yr = 1), wenn das Muster x = (x1 , . . . , xN ) zu der zugehörigen Klasse gehört. Die Erregung der jeweiligen Perzeptron-Einheiten ergibt sich damit in Analogie zur Gleichung (5.10) zu N (5.11) ari xi . yr = θ i=0 Dazu müssen die Neuronenparameter ari natürlich mit geeigneten Werten belegt sein. Wie eine Adaption der ari vollzogen werden kann, wird durch die Perzeptron-Lernregel erklärt, welche im folgenden eingeführt werden soll. 1 28 Unter dieser Voraussetzung kann es passieren, daß das Training zu einer Gewichtskonstellation führt, durch die bei der Präsentation eines Testbeispiels zwei Neuronen feuern. In diesem Fall wäre das Antwortverhalten nicht eindeutig definiert. Man kann sich dann jedoch N aushelfen, daß als Ausgabeklasse der Index des Neurons mit der höchsten summierten Eingabe s = i=0 ai xi angenommen wird. 5.2. Neuronaler-Netzwerk-Klassifikator Die Perzeptron-Lernregel Die Perzeptron-Lernregel für ein Einlagen-Perzeptron wie jenes aus Abbildung 5.5 repräsentiert einen überwachten Lernprozeß. Wie bereits in Abschnitt 5.2.1 erläutert, werden beim überwachten Lernen dem Perzeptron Trainingspaare (xj , rj ), j = 1, . . . , P präsentiert, wobei xj den Mustervektor und rj im Falle einer Klassifikation die zugehörige Klasse des Lernbeispiels j angibt. Der Perzeptron-Lernalgorithmus ist wie folgt definiert: 1: Wähle zufällig ein neues Trainingsbeispiel (xj , r j ) aus dem Datensatz 2: falls die Klassifikation korrekt ist 3: gehe zu 1: 4: sonst {die Klassifikation ist nicht korrekt} 5: ∀i ∈ {1, . . . , M } führe Lernschritt aus: 6: ∆ai = ' (yi − yi ) · xj , 7: gehe zu 1: ' = Lernschrittweite, yi = 1, i = rj 0, i = rj Terminieren soll der Algorithmus entweder nach einer vorgegebenen Anzahl von Lernschritten oder wenn für eine Anzahl Q Iterationen kein Fehler mehr berechnet wurde. Wenn die Klassifikation für ein Lernbeispiel j korrekt vollzogen wird, bleiben die Gewichte ai also unverändert. Erfolgt eine Fehlklassifikation, so wird nach der Idee der Hebb’schen Regel (5.7) die falsche Antwort yi „vergessen“ bzw. „entlernt“ (engl. „unlearn“, durch den Term −' · yi · xj ) und die Sollantwort angelernt (durch den Term ' · yi · xj ). Geometrisch kann ein praktizierter Lernschritt so interpretiert werden, daß die Gewichtsänderung ∆ai parallel zum Stimulus xj vollzogen wird. Die Stärke und Richtungsorientierung der Verschiebung wird durch ' und den „Klassifikationsfehler“ (yi − yi ) ∈ {−1, 1} bemessen. Abbildung 5.6 veranschaulicht diesen Sachverhalt: Betrachtet werden zwei Klassen (weiß und schwarz, repräsentiert durch Kreise und Punkte) und ein Gewichtsvektor a bzw. dessen Neuron,2 welches für Beispiele der schwarzen Klasse feuern soll. Im Initialisierungszustand ist das Gewicht a mit dem Wert a0 belegt und nimmt nach der Präsentation der Stimuli x1 , x2 und x3 die Werte a1 , a2 und a3 an (siehe Abbildung 5.6 (a)). Die Gewichtsänderungen des Lernschrittes j sind durch die Vektoren ∆aj gekennzeichnet. Bei jedem Lernbeispiel wird angenommen, daß es eine falsche Antwort des Perzeptrons provoziert, T T d.h. a(j−1) xj < 0 für xj ∈ schwarz bzw. a(j−1) xj > 0 für xj ∈ weiß, und folglich ein Lernschritt durchgeführt werden muß. 2 Es wird also nur ein Neuron betrachtet, welches durch die beiden Zustände „feuern“ und „nicht feuern“ in zwei Klassen klassifiziert. 29 5. Klassifikatoren basierend auf Funktionsapproximation x2 x2 x2 a x1 a3 a2 a1 x3 a0 xρ ∆a3 x1 x1 ∆a2 ∆a1 Trenngerade (a) Lernschritte beim Perzeptron-Lernen (b) Endzustand der Gewichte und Klassifikation eines Testbeispiel xρ Abbildung 5.6.: Geometrische Interpretation der Perzeptron-Lernregel: Betrachtet werden zwei Klassen weiß und schwarz und der Gewichtsvektor zu den Zeitschritten 0, 1, 2 und 3, bezeichnet durch a0 , a1 , a2 und a3 (a). Die Gewichtsänderungen ∆aj nach Präsentation des Lernbeispiels xj finden stets parallel bzw. antiparallel zu xj statt. In (b) ist die erwartete Position des Gewichtsvektors a nach erfolgtem Training eingezeichnet. Dieser liegt günstigenfalls etwa auf einer Gerade, die durch den Ursprung und bestmöglich die Mit durch telpunkte der beiden Datenverteilungen läuft. Durch die Klassifikationsvorschrift y = θ aT x teilt a den Eingaberaum in zwei Teile auf, wobei die zu a senkrechte, durch den Ursprung laufende Gerade (bzw. Hyperebene im Mehrdimensionalen) die Klassifikationsgrenze bildet. In der Abbildung kann nachvollzogen werden, daß der Lernschritt ∆aj parallel zu dem aktuellen Beispiel xj verläuft (wegen der Adaptionsvorschrift ∆ai = '(yi − yi ) · xj ). Während bei der Präsentation der beiden ersten Lernbeispiele x1 , x2 ∈ schwarz der Term y − y = 1 ist, der Lernschritt also parallel zum Lernbeispiel vollzogen wird, gilt im Fall von x3 ∈ weiß für y − y = −1. Hier wird die Gewichtsänderung also antiparallel zum Lernbeispiel durchgeführt. Ist die Klassenverteilung im Datenraum derartig, daß eine Gerade durch den Ursprung die beiden Klassen fehlerfrei trennen kann (wie in dem illustriertem Beispiel), so wird der Gewichtsvektor also immer in Richtung des gleichen der beiden, durch die Trenngerade definierten Halbräume hin „gezogen“, unabhängig von der Klassenzugehörigkeit des Trainingsbeispiels. Durch mehrmaliges Anwenden der Lernregel unter Präsentation aller Lernbeispiele konvergiert der Gewichtsvektor a (falls immer noch Fehlklassifikationen auftreten) in die Richtung einer Linie, welche durch den Ursprung und bestmöglich durch die zwei Mittelwerte der beiden Datenverteilungen läuft (siehe Abbildung 5.6 (b)). Wegen y = θ aT x teilt der Gewichtsvektor a den Musterraum in zwei Teilräume auf. Die Aufteilung wird durch die Trenngerade definiert, welche orthogonal zu a liegt und durch den Ursprung verläuft. Mustervektoren aus dem Teilraum, dem a zugehört, stimulieren das Neuron zu y = 1, Mustervektoren aus dem Teilraum, dem a nicht zugehört, zu y = 0. 30 5.2. Neuronaler-Netzwerk-Klassifikator Die Klassifikation eines Testbeispiels (oder Recall-Beispiels) xρ ist in Abbildung 5.6 (b) skizziert: xρ liegt auf der Seite der Trenngerade, welche a enthält (hier die rechte Seite), und bildet mit a somit ein positives Skalarprodukt. Folglich wird es vom Perzeptron in die T schwarze Klasse klassifiziert (wegen θ a x = 1). Erwähnenswert ist die Tatsache, daß mit der Anzahl der Lernschritte die Länge des Gewichtsvektors, a zunimmt, da, wie bereits oben erläutert, a in diesem Beispiel ausschließlich in Richtung des Halbraumes mit den schwarzen Trainingsbeispielen gezogen wird. Dies hat zur Folge, daß die relative Änderung von a in einer späteren Trainingsphase kleiner wird. Dieses Verhalten ist in der Regel sogar wünschenswert, da in der Trainingsstartphase das Neuron durch große Gewichtsänderungen die grobe und in einer anschließenden Phase durch kleinere Gewichtsänderungen die Feinheiten der Datenverteilung erlernen soll. Will man ein Anwachsen von a verhindern, z.B. wenn das Abnehmen der Lernschrittweite explizit durch eine monoton sinkende Funktion realisiert wird, z.B. '(t) = 1/t · '(0), so kann man a nach jedem Lernschritt auf die Länge 1 normieren. In der geometrischen Interpretation bewegt sich a damit auf dem Einheitskreis (im n-dimensionalen Vektorraum entsprechend auf der n-dimensionalen Einheitskugel) um den Ursprung. Konvergenz der Perzeptron-Lernregel Im vorigen Abschnitt ist das Verfahren für die Adaption der Perzeptron-Gewichte anhand der Perzeptron-Lernregel erläutert worden. Nun stellt sich die Frage nach der Konvergenz der Perzeptron-Lernregel, d.h. die Frage, ob das Verfahren in endlich vielen Schritten eine korrekte Lösung a konstruieren kann. In der Tat läßt läßt sich diese Konvergenzaussage für beschränkte Mustervektoren (d.h. x < S, S konstante Schranke) aufstellen. Ein Beweis dieser Konvergenzaussage ist u.a. in [8] nachzulesen. Voraussetzung ist natürlich, daß ein a∗ existiert, welches anhand der Aktivie T rungsvorschrift y = θ a∗ x die Klassifikation vornehmen kann. Die Frage nach der Existenz eines solchen a∗ entspricht genau der Frage nach einer linearen Trennbarkeit der Musterklassen. Diese Eigenschaft ist durch die Tatsache einzusehen, daß eine Lösung a∗ die Normale einer Trenngeraden ist, welche durch den Ursprung verläuft (siehe Abbildung 5.6 (b)) und die beiden Musterklassen linear separiert. Die Notwendigkeit der linearen Separabilität zu einer fehlerfreien Klassifikation macht das Einlagen-Perzeptron für praktische Zwecke vielmals unbrauchbar. Aus dieser Motivation ist eine Erweiterung des Einlagen-Perzeptrons eingeführt worden, das Multilagen-Perzeptron, welches die Einschränkung der linearen Separabilität überwinden kann. Abschnitt 5.2.5 wird dieses Thema behandeln. Vorher soll jedoch in einer allgemeineren Form ein Neuronennetzwerk eingeführt werden. 31 5. Klassifikatoren basierend auf Funktionsapproximation Ein Netzwerk von Neuronen Zur Bildung eines neuronalen Netzwerkes oder Netzes werden mehrere Neuronen zusammengeschaltet. Dazu wird das Axon eines Neurons j mit Dendriten eines Neurons i verbunden. Die Verbindung wird wie im biologischen Vorbild Synapse genannt. Die Stärke der Verbindung wird durch die Synapsenstärke aij bemessen. Ein Beispiel für ein solches neuronales Netzwerk mit mehreren Neuronen zeigt Abbildung 5.7. Man beachte, daß in diesem Beispiel die Vernetzung sowohl vorwärts- als auch i x1 j y k x2 m l Abbildung 5.7.: Ein Netz von fünf Neuronen i, j, k, l, m. Die Neuronen sind durch die Knoten des Graphen dargestellt, Verbindungen durch gerichtete Kanten. Man beachte, daß für diesen allgemeinen Fall eines neuronalen Netzwerkes sowohl vorwärts- als auch rückwärtsgerichtete Verbindungen zugelassen sind. rückwärtsgerichtet ist. Um die Rückkoppelung zu realisieren, führt man am Eingang der Neuronen eine Verzögerungseinheit und einen globalen Zeitschalttakt ein. Die Berechnung der Neuronenaktivität konsumiert dann eine Zeiteinheit, so daß eine Neuroneneingabe zur Zeit t eine Neuronenausgabe zur Zeit t + 1 produziert. Ein solches neuronales Netzwerk kann so mit einem endlichen Automaten identifiziert werden. Ein Beispiel für ein (hier nicht behandeltes) rückgekoppeltes Netzwerk ist das HopfieldModell, welches für die Assoziation von Mustern häufig Verwendung findet. Literatur hierzu mit einem anschaulichen Beispiel befindet sich ebenfalls in [8]. Überlegungen zu einem rückgekoppelten Netzwerkes sollen im weiteren jedoch nicht weiter verfolgt werden. Die Konzentration gilt in den folgenden Abschnitten ausschließlich einer vorwärtsgerichteten (feed-forward) Netzstruktur, dem Multilagen-Perzeptron. Dieses kann wesentliche, hier bereits aufgedeckte Nachteile des Einlagen-Perzeptrons überwinden. 5.2.5. Das Multilagen-Perzeptron 32 5.2. Neuronaler-Netzwerk-Klassifikator Aufbau Das Multilagen-Perzeptron (MLP) ist der am häufigsten verwendete Vertreter von KNN. Es zeichnet sich durch eine ausschließlich vorwärtsgerichtete (d.h. nicht rückgekoppelte) Netzstruktur von Neuronen aus, die zudem in mehreren Schichten (bzw. Lagen oder engl. Layer) angeordnet sind. Verbindungen sind nur zwischen Neuronen direkt benachbarter Schichten zugelassen. Ein allgemeines MLP ist in Abbildung 5.8 skizziert. Die Indizierung der Neuroa<k> nm x1 y1 o<k−1> m y2 x2 o<k> n .. .. .. .. .. .. .. yM xN Schicht0 1 2 ··· k−1 k ··· H −1 H Eingabe x Ausgabe y Abbildung 5.8.: Die allgemeine Form eines Multilagenperzeptrons (MLP). Das Netz besteht aus H Schichten von Neuronen. Alle Verbindungen bei einem MLP sind ausschließlich vorwärtsgerichtet. Die 0-te Schicht ist die Eingabeschicht x. Da sie keine Berechnungen durchführt, wird sie bei der Zählung der Gesamtschichten nicht berücksichtigt. Die Schichten 1, . . . , H − 1 werden häufig innere oder verdeckte Schichten genannt. nen erfolgt durch Angabe der jeweiligen Schicht k und des Neuronenindexes n, der in jeder Schicht neu gezählt wird. Man beachte, daß zwei verschiedene Schichten eine unterschiedliche Anzahl von Neuronen enthalten können. Die Aktivierung des Neurons n der Schicht bezeichnet, eine Verbindungsstärke von dem Neuron m k wird in diesem Sinne mit o<k> n 3 der Schicht k − 1 zum Neuron n der Schicht k mit a<k> nm . Im Gegensatz zum Einlagen-Perzeptron wird beim Multilagen-Perzeptron nicht die Stufenfunktion (5.8) als Aktivierungsfunktion verwendet, sondern eine Sigmoid-Funktion. Eine Sigmoid-Funktion ist überall monoton steigend und strebt für x → ±∞ gegen asymptotische Sättigungswerte. Sie beschreibt einen weichen, also differenzierbaren Übergang zwischen den Sättigungswerten. Diese Eigenschaft ist beim Lernalgorithmus für das MLP unbedingt erforderlich, da, wie im folgenden beschrieben wird, dieser einen Gradientenabstieg auf der Fehlerfläche aller möglichen Gewichtskonstellationen beschreibt. Zur Berechnung des Fehlergradienten ist Differenzierbarkeit der Aktivierungsfunktion Voraussetzung. 3 Man beachte, daß die Reihenfolge der Indizes in der Literatur nicht einheitlich verwendet wird. 33 5. Klassifikatoren basierend auf Funktionsapproximation Ein häufig verwendetes Beispiel einer Sigmoid-Funktion ist die Fermifunktion σ(s) = 1 . 1 + exp(−s) Ihr Verlauf ist in Abbildung 5.9 dargestellt. 1 0.5 0 –10 10 s −1 Abbildung 5.9.: Funktionsgraph der Fermifunktion σ(s) = (1 + exp(−s)) , einer typischen Wahl für die Aktivierungsfunktion f eines Neurons beim MLP. Die Aktivierungen o<k> berechnet sich analog (5.11) zu n =σ o<k> n Nk−1 <k−1> a<k> nm om n = 1, . . . , Nk ; k = 1, . . . , H (5.12) m=0 wie beim Einlagen-Perzeptron einen konstant auf −1 gesetzten Eingang bewobei o<k> 0 zeichnet (vergleiche Abschnitt 5.2.4 bzw. Aufgabe 1) und Nk die Anzahl der Neuronen in der Schicht k. = o<H> eines MLP wird durch eine sukzessive Anwendung der AktivieDie Ausgabe y rungsregel (5.12) von links nach rechts aus dem Eingangsvektor x = o0 berechnet. Zuletzt sei erwähnt, daß durch den Übergang auf die sigmoide Funktion auch die Funktionswerte yi an die Eigenschaften der Sigmoiden angepaßt werden müssen, weil 0 und 1 nur asymptotisch erreicht werden. Üblich sind die Werte 0.1 und 0.9. Die Lernregel—Backpropagation Für das MLP soll nun eine Lernvorschrift angegeben werden, die beschreibt, wie die Gewichte a<k> nm sinnvoll adaptiert werden. „Sinnvoll“ bedeutet in diesem Zusammenhang, daß 34 5.2. Neuronaler-Netzwerk-Klassifikator eine Klassifikation für einen Satz von Trainingsbeispielen (xj , yj ), j = 1, . . . , P (und natürlich auch für davon unabhängige Testbeispiele) korrekt bzw. mit minimalem Klassifikationsfehler erfolgt. Ein attraktiver Ansatz dazu wird durch den Backpropagation-Algorithmus beschrieben. Dem Backpropagation-Algorithmus liegt eine einfache Idee zugrunde: Betrachtet wird der über alle Trainingsbeispiele j = 1, . . . , s summierte quadratische Klassifikationsfehler s NH j 2 1 ym − ym (xj ) , J= 2 j=1 m=1 (5.13) Dieser hängt von den aktuell eingestellten Gewichten a<k> m (xj )) als freie nm (in den Termen y Parameter ab. Man kann sich J also als eine p-dimensionale (p = Anzahl der Gewichte des MLP) (Hyper-) Fläche in dem p + 1-dimensionalen Gewichts-Fehler-Raum vorstellen. Der Backpropagation-Algorithmus versucht nun, ein lokales Minimum der Fehlerfläche mit Hilfe eines Gradientenabstiegsverfahren zu finden. Der Gradientenabstieg ist ein allgemein verwendbarer, iterativer Vorgang zur Minimierung einer Funktion F (x), in welchem (in der Grundformulierung) bei jedem Iterationsschritt eine Korrektur der Argumente x entlang des stärksten Abfalls von F vorgenommen wird, bis der Gradient von F verschwindet. Mathematisch wird dieser Sachverhalt für den beim MLP vorliegenden Fall mit den Identifizierungen F = J und x = a<k> nm durch ∆a<k> nm = −' · ∂J , ∂a<k> nm ∀n, m, k (5.14) beschrieben. Bevor die Vorschrift zur Bestimmung von ∆a<k> nm weiterentwickelt wird, soll noch eine Vereinfachung vorgenommen werden. Der Fehler J ist in (5.13) als Summe aus den Beiträgen jedes Trainingsbeispieles j dargestellt. Ein Lernverfahren, welches den Gradienten auf der Grundlage dieses Gesamtfehlers berechnet, wird Batch-Verfahren genannt. Oft werden KNN jedoch inkrementell adaptiert. Dies bedeutet, daß der Gradient für nur ein (zufällig ausgewähltes) Trainingsbeispiel berechnet und der Adaptionsschritt vollzogen wird. Dieses Vorgehen entspricht der Minimierung einer nur vom aktuellen Trainingsbeispiel abhängigen Fehlerfunktion NH j 2 1 j yi − yi (xj ) F = 2 i=1 In diesem Fall wird zu einer besseren Lesbarkeit bei der Notation häufig der Index j des Trainingsbeispiels weggelassen. Wird ' klein genug gewählt und werden alle Trainingsbeispiele gleich oft behandelt, bedeutet dieses Vorgehen nur einen geringen Unterschied zum Batch-Modus. Der Vorteil des inkrementellen Verfahrens ist, daß die Fehlerfläche durch den stochastischen Auswahl-Prozeß der Trainingsbeispiele weitläufiger exploriert wird, was es erlaubt, kleinen lokalen Minima zu entweichen. 35 5. Klassifikatoren basierend auf Funktionsapproximation In der Vorlesung [1] wird gezeigt, wie sich durch Ausformulierung von (5.14) schließlich die Adaptionsvorschrift der Gewichte zu <k> ∆a<k> · o<k−1> nm = −' · δn m (5.15) bestimmen läßt, mit <k−1> δn<k−1> = σ s<k−1> · en n e<H> n e<k−1> n = yn − yn Nk <k> = a<k> mn δm , (5.16) (5.17) k = 1, . . . , H (5.18) m=1 wobei σ die Ableitung der Aktivierungsfunktion nach ihrem Argument bezeichnet, welche bei der Fermi-Funktion leicht über die Auswertung des Funktionswertes berechnet werden kann: σ (x) = σ(x)(1 − σ(x)) Ein Vergleich mit der Perzeptron-Lernregel aus Abschnitt 5.2.4 zeigt, daß der Adaptionsschritt der letzten Schicht beim MLP ((5.15)–(5.17)) bis auf den Faktor σ (·) mit der Hebb’schen Perzeptron-Lernregel übereinstimmt. Das Prinzip des Backpropagation-Algorithmus wird zusammenfassend in Abbildung 5.10 verdeutlicht: Hier wird einsichtig, woher der Name „Backpropagation“ stammt. Während ausgehend von der Eingabe- zur Ausgabeschicht in Abhängigkeit von die Aktivitäten o<k> n berechnet werden, werden die „Fehler“ δn<k> an den Neuronen der Vorgängerschicht o<k−1> m <k+1> der Neuronen der Nachfolgeschicht zurück-, also „backpropagiert“. aus den Fehlern δm Proportional zum errechneten Fehler wird anschließend an den Neuronen der Korrektur<k> <k−1> om für jedes Gewicht vollzogen. schritt ∆a<k> nm = −' · δn Dimensionierung eines MLP Bei der Dimensionierung eines MLP sind 1. 8: die Anzahl der Schichten und 2. die Anzahl der Neuronen pro Schicht festzulegen. Überlegungen zu beiden Fragestellungen sind abhängig vom Problem und können oft nur durch die Aussage „so viel wie nötig und so wenig wie möglich“ beantwortet werden. Die Bestrebung, ein MLP aus einer minimalen Anzahl von Neuronen aufzubauen, ist durch die Tatsache motiviert, daß wie bei jedem Klassifikator (vergleiche dazu auch Abschnitt 6.2) 36 5.2. Neuronaler-Netzwerk-Klassifikator <k> x1 on = σ Nk−1 j=0 <k−1> a<k> nm om δ1<H> x2 δ2<H> x3 Nk <k> <k> · m=1 amn δm δn<k−1> = σ s<k−1> n <k> <k−1> ∆a<k> om nm = −δn Abbildung 5.10.: Das Prinzip des Backpropagation-Algorithmus am Beispiel eines 3-Lagen-Perzeptrons: Während die Eingabesignale x1 , . . . , x3 von der Eingabeschicht sukzessiv in Vorwärtsrichtung anhand der Nk−1 <k> <k−1> <k> das MLP durchlaufen (dargestellt durch die durchgezogenen =σ Gleichung on m=0 anm om Nk <k> <k> Linien), pflanzen sich die Fehler gemäß der Vorschrift δn<k−1> = σ sn<k−1> · m=1 amn δm ausgehend von der Ausgabeschicht rückwärts fort (gestrichelte Linien). An jedem Neuron wird dabei ein Korrekturschritt <k> <k−1> om vollzogen. ∆a<k> nm = −δn mit wachsender Zahl der Parameter (= Anzahl der Gewichte) das KNN sich zu sehr an die vorliegenden Trainingsbeispiele anpaßt und die Generalisierungsfähigkeit auf unbekannte Beispiele sehr schlecht wird. Weiterhin besteht bei der Verwendung von zu vielen Parametern die Gefahr, daß die Häufigkeit der lokalen Minima der Fehlerfunktion und damit auch die Wahrscheinlichkeit, eine nur suboptimale Lösung zu finden, ansteigt. Andererseits soll das MLP genügend viele Schichten bzw. Neuronen besitzen, um den Restfehler der Klassifikationsaufgabe klein zu halten. In der Literatur ist jedoch bewiesen worden, daß ein 3-Lagen-Perzeptron im Prinzip ausreicht, um jede Daten-/Klassenverteilung in IRN zu modellieren. Ein Beweis kann durch folgende Überlegung anschaulich verstanden werden: Die erste Schicht separiert beliebige Halbräume in IRN , die zweite faßt die entstandenen Halbräume durch Konjunktion zu konvexen Gebieten zusammen, und die dritte (Ausgabe-) Schicht vereint die konvexen Gebiete durch Disjunktion zu beliebigen konkaven Mengen. Aufgrund diesen Ausführungen werden im Allgemeinen MLP aus mehr als drei Schichten selten eingesetzt. 37 5. Klassifikatoren basierend auf Funktionsapproximation Erweiterungen des einfachen MLP Das hier beschriebene, einfache MLP weist bezüglich der Konvergenz in lokalen Minima, der Generalisierungsfähigkeit oder auch der Konvergenzgeschwindigkeit noch einige Unzulänglichkeiten auf. Aufgrund dessen sind durch eine Variation der Fehlerfunktion (5.13) bzw. der Lernregel (5.14) zahlreiche Ansätze verfolgt worden, um eine bessere Performanz zu erreichen. Eine Behandlung dieser Techniken würde jedoch den Rahmen dieses Praktikums sprengen. Für eine ausführlichere Erläuterung sei auf die angegebene Literatur verwiesen, insbesondere auf [6]. Andeutungsweise seien hier erwähnt: Trägheitsterm Der Lernregel kann noch ein „Trägheitsterm“ zugefügt werden, der den ∂E +' ∆a<k> vorherigen Adaptionsschritt berücksichtigt: ∆a<k> nm (t+1) = −'· ∂a<k> nm (t). nm Damit wird ein schnelles Oszillieren der Gewichtstrajektorie in der „Fehlerlandschaft“ verhindert, ähnlich der Massenträgheit einer Kugel, die auf einer kurvigen Oberfläche rollt. Außerdem ermöglicht dieser Term, daß kleinen lokalen Minima entwichen werden kann. 2 addiWeight Decay Wird der Fehlerfunktion (5.13) ein weiterer Term ' nm a<k> nm tiv zugefügt, werden große Gewichte in der „Fehlerlandschaft“ angehoben, was dazu führt, daß die Adaption in Gebieten kleinerer Gewichte konvergiert. Kleinere Gewichte führen zu einer glatteren Netzantwort und somit sinkt die Gefahr eines „Overfitting“ an den Trainingsdaten. 5.2.6. Aufgaben Aufgabe 1: In Abschnitt 5.2.4 ist erläutert worden, daß sich eine fehlende Schwelle in der Aktivierungsfunktion durch eine Erweiterung des Eingaberaumes um eine Dimension (Index 0) mit einer konstanten Eingabe x0 = −1 simulieren läßt. Man veranschauliche sich diese Aussage geometrisch, indem man in einem Musterraum der Dimension 2 die beiden Muster x1 = (1, 1) und x2 = (2, 2) durchWahl eines geeigneten Gewichtsvektors a anhand der Aktivierungsfunktion y = θ aT x in zwei Klassen ( y = 0 für Klasse 1, y = 1 für Klasse 2) klassifiziert. Man versuche zunächst, einen geeigneten Gewichtsvektor im zweidimensionalen Musterraum und anschließend in dem um die Komponente x0 = −1 erweiterten dreidimensionalen Vektorraum zu finden. Man zeichne in beiden Fällen die durch a definierte Trenngerade ein. Aufgabe 2: Gegeben sei die in Abbildung 5.11 skizzierte Datenverteilung von zwei Musterklassen. Man wähle aus jeder Klasse zwei beliebige Datenbeispiele aus und vollziehe die Lernschritte, die sich nach der Perzeptron-Lernregel anschließen, nach. Wo etwa wird der Gewichtsvektor a nach Abschluß des Trainings liegen. Man zeichne zu a die zugehörige Separationsgerade ein. 38 5.2. Neuronaler-Netzwerk-Klassifikator x2 x1 Abbildung 5.11.: Zu Aufgabe 2. Aufgabe 3: Man berechne den Korrekturschritt für Gewichte der letzten Neuronenschicht eines MLP, ∆a<H> nm , aus der Minimierung der Fehlerfunktion F und verifiziere die Gültigkeit von der allgemeinen Gleichung für den Adaptionsschritt (5.15). 39 6. Fehlerquellen beim Klassifikatorentwurf Die Klassifikationsgüte eines Klassifikationsmodells hängt entscheidend von der vorgenommenen Dimensionierung ab. Dies entspricht im Wesentlichen der Festlegung der Anzahl von freien Parametern, d.h. beim Polynomklassifikator dem Polynomgrad, beim MLP der Anzahl von Schichten und der Perzeptron-Einheiten pro Schicht. Bei den parametrischen Klassifikatoren hängt die Performanz von der gewählten Verteilung und der Güte der geschätzten Parameter ab. Für den κ-Nächste-Nachbarn-Klassifikator — als Vertreter für die nicht-parametrischen Klassifikatoren — gilt: je größer die Stichprobenmenge und die Anzahl κ desto besser wird das Klassifikationsergebnis sein. Der frei wählbare Parameter ist durch κ gegeben. Sowohl zu wenige als auch zu viele Parameter beeinflussen das Klassifikationsverhalten negativ. Welche Auswirkungen eine Fehldimensionierung hat, soll in diesem Abschnitt beschrieben werden. 6.1. Unterbestimmter Klassifikator Von einem unterbestimmten Klassifikator spricht man, wenn die Anzahl der Parameter des Klassifikatormodells zu klein ist, um die Struktur des Merkmalsraumes hinreichend genau zu beschreiben. Die Skizzen aus Abbildung 6.1 (a) und (b) veranschaulichen ein Beispiel für einen solchen Fall: Betrachtet werden wiederum zwei Klassen — repräsentiert durch ausgefüllte und leere Kreise — in einem zweidimensionalen Merkmalsraum, wobei die schwarze Klasse die weiße umschlingt (siehe Abbildung 6.1 (a)). In Abbildung 6.1 (b) wird ein einfacher, für diese Aufgabe unterbestimmter Klassifikator beschrieben. Er ist hier durch eine lineare Trennlinie skizziert, was zum Beispiel durch ein einfaches Einlagen-Perzeptron aus Kapitel 5.2.4 modelliert werden kann. Das Modell besitzt also nur zwei freie Parameter—die Geradenparameter. Dies ist zu wenig, um die Datenstruktur nachzubilden und führt zwangsläufig zu Klassifikationsfehlern in Bezug auf Beispiele der Trainings- als auch einer der Trainingsmenge „ähnlichen“ Testmenge. 40 6.2. Überbestimmter Klassifikator 6.2. Überbestimmter Klassifikator Im Gegensatz zu einem Mangel an freien Parametern kann ein Klassifikator auch zu viele besitzen; er ist damit überbestimmt. Dieser Fall ist in Abbildung 6.1 (c) durch den sechskantigen Polygonzug skizziert. Dessen Beschreibung erfordert mindestens zwölf Parameter (zehn für die fünf inneren Knotenpunkte und zwei für die Richtung der ersten und letzten Kante). Dieser Klassifikator klassifiziert zwar ohne Fehler die Trainingsbeispiele korrekt, er würde aber mit großer Wahrscheinlichkeit zusätzliche Beispiele einer Testmenge, die „ähnlich“ wie die Trainingsmenge verteilt ist, fehlklassifizieren. Der Klassifikator paßt sich zu genau der Trainingsmenge an, so daß jegliche Generalisationsfähigkeit verloren geht. 6.3. Umfang der Stichproben für das Lernen Geht man von einem ausreichend dimensionierten Klassifikator aus, gilt es — für eine erfolgreiche Klassifikation — noch einen weiteren wichtigen Punkt zu beachten: die Stichprobenmenge für das Lernen. Wesentlich für den Erfolg einer Klassifikation ist der Umfang und die Beschaffenheit der Stichprobenmenge. Allgemein gilt: Je größer die Stichprobenmenge, desto besser kann ein Klassifikator trainiert werden. Die Anzahl der mindestens erforderlichen Lernstichproben für ein hinreichendes Training hängt von der Art des gewählten Klassifikators und der Dimension der Merkmale ab. 6.4. Optimaler Klassifikator? Zusammenfassend stellt sich nun die Frage, ob es eine allgemeingültige Verfahrensweise für die Klassifikation gibt. Den „optimalen“ Klassifikator für alle Arten von Problemstellungen gibt es nicht. Für den Entwurf eines Klassifikators lassen sich aber Richtlinien angeben, die in den vorangegangenen Kapitel dieser Anleitung diskutiert wurden. Bezüglich der Dimensionierung eines Klassifikators — gleichbedeutend mit der Wahl der möglichen Freiheitsgrade eines Klassifikators — läßt sich feststellen, daß zu wenige Parameter einen großen Restfehler in der Klassifikation zur Folge haben. Hingegen führen zu viele Parameter zu einer schlechten Generalisierungsfähigkeit des Klassifikators. Hierbei spricht man auch vom Overfitting. Ferner kann ein optimal — bezüglich der Klassifikationsgüte für eine gegebene Klassifikationsaufgabe — dimensionierter Klassifikator nur so gut sein, wie es der Umfang der Lernstichprobe es erlaubt. In realen Aufgabenstellungen ist der Umfang der Muster-Lernstichprobe oft zu klein, um einen Klassifikator umfassend zu trainieren. Um trotzdem eine hinreichende Klassifikationsgüte zu erreichen bedarf es anderer Ansätze, die hier nicht diskutiert werden sollen. 41 6. Fehlerquellen beim Klassifikatorentwurf Ein hinreichend dimensionierter Klassifikator ist in Abbildung 6.1 (d) skizziert. Seine Parameteranzahl liegt zwischen der von Fall (b) und Fall (c). Er besitzt eine geeignete Form, um sowohl die Trainingsbeispiele als auch „ähnlich“ verteilte Testbeispiele zu klassifizieren. 42 6.4. Optimaler Klassifikator? x2 x2 x1 (a) Datenverteilung von zwei Klassen x1 (b) Unterbestimmter Klassifikator x2 x2 x1 (c) Überbestimmter Klassifikator x1 (d) „Optimaler“ Klassifikator Abbildung 6.1.: Beispiel zur Erläuterung von unter- und überbestimmten Klassifikatoren: Eine zweidimensionale Datenverteilung von zwei Klassen (a) wird mit einem unterbestimmten (b), einem überbestimmten (c) und einem „optimalen“ (d) Klassifikator klassifiziert. Die eingezeichneten Linien entsprechen jeweils die Klassengrenzen. 43 7. Aufgaben zum Praktikum Eine umfangreiche Bedienungsanleitung für die im Praktikum zu verwendenden Matlab -Routinen ist im Anhang A zu finden. Die mit einem * gekennzeichneten Aufgaben sind optional. Aufgabe 1: Kennenlernen der Klassifikatoren Gegeben sind drei Stichprobenmengen mit zweidimensionalen Mustern eines Klassifizierungsproblems mit drei Klassen. Die Muster jeder Stichprobe sind klassenweise normalverteilt mit unbekannten Parametern µ und K, sowie gleicher a-priori W. Die Stichprobenmenge beinhaltet für alle Muster deren Klassenzugehörigkeit. Zu finden sind die Stichproben in den Dateien normdist_{test,train}_samples_{1,2,3}. Für die folgenden Teilaufgaben sollen alle drei Stichproben nacheinander klassifiziert werden. Hierzu muß der Klassifikator zunächst mit den Dateien normdist_train_samples_{1,2,3} trainiert werden. Die Bewertung der Güte des Klassifikators ist mit den Stichprobenmengen normdist_test_samples_{1,2,3} durchzuführen. a) Parametrischer Klassifikator Als wichtiger Vertreter der parametrischen Klassifikatoren soll der Bayes-Klassifikator für normalverteilte Daten in dieser Teilaufgabe kennengelernt werden. Schätzen Sie zunächst mittels der Trainingsmenge die benötigten Parameter. Führen Sie die Klassifikation mit dem trainierten Klassifikator für beide Stichprobenmengen (test resp. train) durch und bestimmen Sie die Klassifikationsrate des Klassifikators. Anschließend visualisieren Sie die Stichprobe und die Klassifikationsgrenzen der drei Klassen. Führen Sie die Schritte auch mit dem Euklidischen- und MahalanobisDistanz-Klassifikator durch. Was ist bezüglich der zu schätzenden Parameter zu beachten? b) Nicht-parametrischer Klassifikator In dieser Teilaufgaben soll als Vertreter der nicht-parametrische Klassifikatoren der κ-Nächste-Nachbarn-Klassifikator untersucht werden. Muß für den Klassifikator ein Training durchgeführt werden? Variieren Sie die Anzahl der Nachbarn κ = {1, 10, 100, 500, 1000}. Beachten Sie, daß der Button „Trainieren“ beim Drücken die Parameter des Klassifikators zurücksetzt. c) Klassifikation basierend auf funktionaler Approximation Stellvertretend für Klassifikatoren, die auf einer Approximation der Grenzflächen 44 aufbauen, werden der Polynom- und der Neuronale-Netzwerk-Klassifikator (nur MLP) angewendet. Visualisieren Sie die Muster der Stichproben und die von den Klassifikatoren bestimmten Grenzflächen. Worin unterscheiden sich die in dieser Aufgabe evaluierten Klassifikatoren? Was ist zu der Klassifikationsquoten der Klassifikatoren bezüglich des hier vorgestellten Klassifikationsproblem festzuhalten? Welcher Klassifikator ist für die Problemstellungen optimal? Wie beurteilen Sie den Berechnungsaufwand der einzelnen Klassifikatoren? Aufgabe 2*: Klassifikatorauswahl Wiederum ist eine Stichprobenmenge mit zweidimensionalen Mustern einer Klassifikationsaufgabe mit drei Klassen gegeben. Die Wahrscheinlichkeitsdichteverteilungen der Klassen sind nicht bekannt! Finden Sie zunächst eine geeignete Methode für die Visualisierung der Stichproben, die in der Datei csel_samples gespeichert sind. Geben Sie eine Schätzung ab, um welche Klassenverteilungen es sich handelt. Wählen Sie einen Klassifikator aus und führen Sie die Klassifikation durch. Begründen Sie Ihre Entscheidung für den Klassifikator. Messen Sie die Performanz des von Ihnen ausgewählten Klassifikators anhand der gleichen Stichprobenmenge. Läßt sich die Klassifikationsrate durch eine Umformulierung der Problemstellung erhöhen? Wenn ja, wie? (Tip: Verwenden Sie für die Visualisierung der Stichproben die Matlab -Routine find um einzelne Klassen darzustellen.) Aufgabe 3: Fehlerquellen: Geringer Stichprobenumfang Die Performanz eines Klassifikators ist unter anderem wesentlich vom Umfang und der Qualität der Lernstichprobenmenge abhängig. a) Schreiben Sie in Matlab ein Programm für einen Polynomklassifikator zweiten Grades, der Muster der Dimension n = 2 klassifiziert. Das Programm soll auch die Adaption der Koeffizientenmatrix A durchführen. b) In der Datei sse_train_samples steht Ihnen eine Stichprobe einer zweidimensionalen Musterquelle zur Verfügung, die für die Adaption der Koeffizientenmatrix verwendet werden soll. Zur Evaluation des Klassifikators verwenden Sie die Stichprobe in der Datei sse_test_samples. c) Für ein erneutes Trainieren des Polynom-Klassifikators verwenden Sie nun die Stichprobenmenge in der Datei sse_train_ext_samples. Führen Sie wiederum die Klassifikation mit der Evaluationsmenge in der Datei sse_test_samples durch. d) Messen Sie für beide Fälle b) und c) die Klassifikationsrate des Polynom-Klassifikators.Wie läßt sich das schlechte Ergebnis bei Teilaufgabe b) erklären? Aufgabe 4: Fehlerquellen: Über- und unterbestimmter Klassifikator In den Dateien banana_train_samples und banana_test_samples stehen Ihnen Stichproben einer zweidimensionalen Zweiklassen-Musterquelle zur Verfügung. Zur Klassifikation soll ein MLP-Klassifikator zum Einsatz kommen. 45 7. Aufgaben zum Praktikum a) Visualisieren Sie die Stichprobe. Überlegen Sie, wieviele Schichten und Neuronen pro Schicht zur Klassifikation der Musterquelle benötigt werden. i) Adaptieren Sie das MLP mit der Stichprobenmenge. ii) Lassen Sie sich den RMSE (Root-Mean-Square-Error) der letzten Neuronenschicht für die Trainingsbeispiele als Funktion der Zeit ausgeben. iii) Nach wie vielen Trainingsepochen (1 Epoche = Präsentation aller Trainingsbeispiele) konvergiert der Klassifikationsfehler? iv) Lassen Sie sich die Entscheidungsfunktionen der Klassen und die Klassengrenzen in einer Grafik anzeigen. v) Wie hoch ist die Klassifikationsrate der Trainingsmenge? b) Verwenden Sie ein MLP mit nur i) einer Schicht (verwenden Sie hierzu das einschichtige Perzeptron) ii) halb sovielen Neuronen pro verdeckter Schicht im Vergleich zum MLP aus Aufgabenteil (a). zur Klassifikation und wiederholen Sie die Schritte aus Aufgabenteil (a) mit dem inkrementellen Backpropagation-Algorithmus. c) Verwenden Sie ein MLP mit i) doppelt sovielen verdeckten Schichten und doppelt sovielen Neuronen pro verdeckter Schicht im Vergleich zum MLP aus Aufgabenteil (a) und wiederholen Sie die Schritte aus Aufgabenteil (a) mit dem Backpropagation-Algorithmus. Welche anderen Arten von Klassifikatoren eignen sich für die durch die Stichprobenmengen gegebene Problemstellung? Welche nicht? Aufgabe 5*: Linear korrelierte Muster Gegeben sind zwei Stichprobenmengen cor_train_samples und cor_test_samples von dreidimensionalen Mustern. Die Muster sind klassenweise normalverteilt mit unbekannten Parametern. Die Stichproben beschreiben ein Klassifikationsproblem mit drei Klassen. Schätzen Sie die Parameter µ und K aus der Lernstichprobe cor_train_samples. Ist die Kovarianzmatrix invertierbar? Bestimmen Sie die Korrelationskoeffizienten √ δij = σij / σii σjj aus der Kovarianzmatrix. Was können Sie über die Korrelation der Muster sagen? Wie läßt sich das Problem der singulären Kovarianzmatrix umgehen? Führen Sie eine geeignete Transformation der Muster für beide Stichprobenmengen durch. Trainieren Sie den Bayes-Klassifikator mit der transformierten Lernstichprobe. Bestimmen Sie die Klassifikationsrate mit der Teststrichprobe. Welche Klassifikationsrate erreichen Sie? (Hinweis: Die für die Lösung der Aufgabe benötigten Berechnungen lassen sich nicht mit der Klassifikations-GUI durchführen. Tip: Verwenden Sie die Matlab -Routinen cov, corrcoef und svd.) 46 A. Beschreibung der graphischen Oberfläche A.1. Erste Schritte Das Programm wurde auf Windows-NT unter Verwendung von Matlab Version 5.2 entwickelt. Es ist nicht unter früheren Matlab Versionen lauffähig. Zusätzlich muß die Neuronale Netze und die Statistik Toolbox installiert sein. Bevor das Programm-Paket verwendet wird, muß SetMyPath.m ausgeführt werden, damit die entsprechenden Pfade gesetzt werden. Nachdem die Pfade in Matlab eingetragen wurden, stehen die Online-Hilfen zur Verfügung. Sie können wie gewohnt mit dem Aufruf von helpwin abgefragt werden. Die graphische Oberfläche wird mit dem Befehl klassifikationGUI gestartet. Siehe Abschnitt A.2 für weiterführende Informationen zur graphischen Oberfläche. A.2. Die graphische Oberfläche Das Hauptprogramm KlassifikationGUI läßt sich grob in drei Teile zusammenfassen: 1. Klassifikator bestimmen und Trainingsmenge laden 2. Parameter für den spezifizierten Klassifikator schätzen 3. Testmenge laden und den trainierten Klassifikator testen Wenn alle Parameter in der ersten Spalte eingegeben wurden, wird durch das Drücken der Schaltfläche “Trainieren” die Anzeige für die Parameter (mittlere Spalte) an den ausgewählten Klassifikator angepaßt und das entsprechende Parametermodell geschätzt. Je nach 47 A. Beschreibung der graphischen Oberfläche Abbildung A.1.: Screenshot von KlassifikationGUI. Klassifikator können Parameter verändert werden. Zusätzlich lassen sich abhängig vom verwendeten Klassifikator Graphiken anzeigen. Um den trainierten Klassifikator testen zu können, muß eine Testmenge angeben werden (rechte Spalte). Drücken von “Testen” berechnet die Fehlerrate und die Verwechselungsmatrix und zeigt diese graphisch im rechten unteren Teil des Fensters an. A.2.1. Klassifikator bestimmen und Trainingsmenge laden • Klassifikator auswählen: Selektieren Sie den Klassifikator, den sie verwenden wollen • Trainingmenge laden: Klicken auf “Durchsuchen” öffnet ein Dialogfenster, in dem die Datei ausgewählt werden kann, die geladen werden soll. Es ist auch möglich den Dateinamen direkt in das Eingabefeld einzugeben. • Information: Hier werden Informationen (Anzahl der Trainingsvektoren, Anzahl der Klassen und Dimension der Trainingsvektoren) zu der geladenen Trainingsmenge angezeigt. • Scatterplot zeichnen: “Scatterplot” zeichnet die Trainingsmenge in zwei ausgewählten Dimensionen gegeneinander auf. Die beiden Dimensionen werden in dem Eingabefeld “Proj. Dimensionen” in Form eines 2-dimensionalen Vektors eingegeben ([dimX, dimY]). 48 A.3. Datentypen und Bezeichner A.2.2. Parameter für den spezifizierten Klassifikator schätzen Drücken Sie die Schaltfläche “Trainieren” um das Parametermodell für den gewählten Klassifikator zu berechnen. Abhängig vom Klassifikator stehen Anzeige- und Manipulationsmöglichkeiten zur Verfügung: • Editieren: Das Drücken der Schaltfläche “Editieren” öffnet ein Dialogfenster, in dem einzelne Werte des Parametermodells geändert werden können. • Anzeigen im WKSP: Alle Parameter werden im Workspace (Matlab -Eingabeshell, vor der aus KlassifikationGUI aufgerufen wurde) von Matlab ausgegeben. • Aktueller Klassifikator-Typ: Nach dem hier angebenden Klassifikator wurde das aktuelle Parametermodell berechnet und wird die Testmenge klassifiziert. • Zeichnen: Die in “Art der Graphik” angebend Graphik wird für den in dem entsprechenden Eingabefeld angebenden Bereich gezeichnet. • Laden & Speichern: Um das Testen eines Klassifikators auch zu einem späteren Zeitpunkt zu ermöglichen, läßt sich das berechnete Parametermodell speichern und später wieder laden. A.2.3. Testmenge laden und den trainierten Klassifikator testen • Testmenge auswählen: Die Testmenge muß Vektoren enthalten, die dieselbe Dimension haben wie die Vektoren aus der Trainingsmenge. • Insgesamt korrekt: Fehlerrate gemittelt über alle Vektoren der Trainingsmenge. • Anz. Testdaten: Anzahl der Vektoren in der Testmenge. • Speichern der Fehlerrate & Verwechselungsmatrix: Die Fehlerrate und die Verwechselungsmatrix kann als Matlab -Datei abgespeichert werden, um die Ergebnisse anderen Programmen zur Verfügung zu stellen. A.3. Datentypen und Bezeichner Beschreibung einiger wichtigen Datentypen und Bezeichner: TrainingSet oder TestSet: (struct) Examples : N x M - Matrix ClassLabels : 1 x M - Matrix 49 A. Beschreibung der graphischen Oberfläche Examples enthält M N-dimensionale Merkmalsvektoren. Classlabels enthält die entsprechenden Klassenbezeichnungen c mit c aus {1..(Anzahl der Klassen)} Model: (struct) ist abhängig von dem gewählten Klassifikator, folgende Feldnamen sind allen Klassifikatoren gemein: type : String dim : double wobei dim die Dimension der Merkmalsvektoren und type der Name des Klassifikators bezeichnet. 50 Literaturverzeichnis [1] H. Burkhardt. Grundlagen der Bilderzeugung und Bildanalyse. Vorlesung am Institut für Informatik. Albert-Ludwigs-Universität Freiburg. 1, 1.2, 5.1, 8 [2] Howard Demuth and Mark Beale. Neural Network Toolbox—For Use with MATLAB, User’s Guide. Math Works, 3 edition, January 1998. 1.2 [3] R. O. Duda and P. E. Hart. Pattern Classification and Scene Analysis. Interscience Publications. Wiley, 1973. 1.2 [4] Donald Hebb. Organisation of Behavior. Wiley Interscience, 1949. 5.2.3 [5] Alois Heinz. Neuronale netze - eine einführung. freiburg.de/˜heinz/nnintro/, 1998. 1.2 http://www.informatik.uni- [6] J. Hertz, A. Krogh, and R.G. Palmer. Introduction to the Theory of Neural Computation. Addison-Wesley Publishing Company, Inc., Redwood City, CA, 1991. 1.2, 5.2, 8 [7] B. D. Ripley. Pattern Recognition and Neural Networks. Cambridge University Press, 1996. 1.2 [8] H.J. Ritter, T.M. Martinetz, and K.J. Schulten. Neuronale Netze. Addison-Wesley, München, 1992. 1.2, 5.2.1, 5.2.2, 7, 7 [9] Raul Rojas. Theorie der neuronalen Netze. Springer Verlag, 1993. 1.2 [10] J. Schürmann. Pattern Classification: a unified view of statistical and neural approaches. Interscience Publications. Wiley and Sons, New York, 1996. 1.2, 5.1 51