zurück |
Source Code: | aufg_1_1.m | |
perco.m | ||
genData.m |
1. EinleitungDie Aufgabe besteht darin, den Online Perzeptron Trainingsalgorithmus aus dem Skriptum zur Vorlesung (S. 33) zu implementieren und auf Trainingssets zu testen, die die Probleme OR, AND und XOR beschreiben.2. LösungswegDie Matlab-Implementierung gliedert sich in zwei Funktionen und ein Skript, das den allgemeinen Ablauf regelt.
2.1 AusgangsdatenAbhängig von den zwei Benutzereingaben n und L für die Anzahl und Art(OR, AND, XOR) der Trainingsdaten wird mit genData(n,L) das von L spezifizierte Trainingsset mit zugehörigen Targets erstellt. Die Trainingsvektoren sind dabei mit einem Rauschen zwischen -0.2 und 0.2 gestört.2.2 Trainieren des PerceptronsNach der Konvertierung der Trainingsdaten in ein homogenes Trainingsset wird mit Hilfe der Funktion perco(X,t,maxEpoches) der Gewichtsvektor w berechnet.Die Funktion perco(X,t,maxEpoches) implementiert den Online Perzeptron Trainingsalgorithmus. Die Lernrate wird mit gamma = 1.0 und der Gewichtsvektor mit w = 0 initialisiert. Im Falle der linearen Separierbarkeit konvergiert der Algorithmus, sobald keine Samples mehr falsch klassifiziert werden. Spätestens wird aber nach maxEpoches Iterationen abgebrochen. 2.3 Plotten der DatenAm Ende des Skripts werden die Trainingsdaten je nach Klassenlabel eingefärbt geplottet. Zusätzlich werden noch die Entscheidungsgrenze und der Gewichtsvektor eingezeichnet.3. ErgebnisseAufgrund der zufällig generierten Störung in den Trainingsdaten können diese Ergebnisse nicht genau reproduziert werden.3.1 Trainingsset 1: OR-DatenEs wurden n = 100 Testdaten erzeugt, die das OR-Problem beschreiben(L=1). Das Trainingsset ist linear separierbar und so konvergiert der Online-Perceptron Trainingsalgorithmus schon nach 2 Epochen. Ein Plot der Daten, sowie der Entscheidungsgrenze und des Gewichtsvektors ist in Abbildung 1 zu sehen.![]() Abbildung 1: Plot der Daten und Entscheidungsgrenze für OR-Testset Die geometrische margin beträgt gm(X,t) = 0.0074. Daraus lässt sich auf eine relativ schlechte Generalisierungsfähigkeit schließen. 3.2 Trainingsset 2: AND-DatenErneut werden n = 100 Testdaten erzeugt, die das AND-Problem beschreiben(L=2). Das Trainingsset ist wieder linear separierbar und der Algorithmus konvergiert nach 4 Epochen. Ein Plot der Daten sowie der Entscheidungsgrenze und des Gewichtsvektors ist in Abbildung 2 zu sehen.![]() Abbildung 2: Plot der Daten und der Entscheidungsgrenze für AND-Testset Die geometrische margin beträgt gm(X,t) = 0.0043 3.3 Trainingsset 3: XOR-DatenFür ein Trainingsset des XOR-Problems(L=3) werden n = 100 Samples erzeugt. Es ist leicht zu sehen, dass das XOR-Problem nicht durch eine lineare Entscheidungsgrenze teilbar ist und erwartungsgemäß bricht der Algorithmus nach maxEpoches Epochen ab. Ein Bild des letzten Gewichtsvektors sowie der Eintscheidungsgrenze ist in Abbildung 3 dargestellt.![]() Abbildung 3: XOR-Problem mit falscher Entscheidungsgrenze nach Abbruch des Algorithmus |
nach oben |