Perzeptronen im Verbund (Ensembles)

Kathrin Torlage und Volkmar Kötter

ktorlage@uos.de, vkoetter@uos.de

 

Mithilfe von Perzeptronen, die mit dem Perzeptronalgorithmus trainiert und dann auf unterschiedliche Weisen kombiniert werden, haben wir versucht, bessere Ergebnisse zu erzielen, als mit einem einzelnen Perzeptron.

 

1.) Einleitung

Bekanntlich gibt es Punktmengen, die man mit einem einzelnen Perzeptron nicht linear trennen kann. (Ein Perzeptron legt nur eine Hyperebene durch den Raum, welche die einzelnen Punkte voneinander trennt. Kurven und ähnliches sind dabei nicht darzustellen. )

Zu diesen vielen Problemen gehört zum Beispiel das für das menschliche Gehirn sehr einfache XOR – Problem.

Des weiteren werden wir hier unsere Ergebnisse beim Trainieren der ebenfalls nicht linear trennbaren Patternmengen "spirals" und "balance" erläutern.

Bei "spirals" handelt es sich um zwei ineinander liegende Spiralen im Zweidimensionalen.

"balance" dagegen beschreibt, wann eine Waage bei diversen beidseitigen Gewichten ausbalanciert ist und wann nicht. Dabei werden auch die Abstände der Gewichte zum Mittelpunkt berücksichtigt.

Zunächst werden wir die Ergebnisse beim Trainieren mit einem einzelnen Perzeptron darstellen. Danach werden die Ergebnisse, die wir durch unterschiedliche Kombination von Perzeptronen erhalten haben, vorgestellt.

Anfangen wollen wir aber mit der Erläuterung der verschiedenen Kombinationsmöglichkeiten von Perzeptronen.

 

2.) Kombination von Perzeptronen

Wir stellen hier vier verschiedene Methoden zur Kombination von Perzeptronen vor, die wir benutzt haben. Zur Vereinfachung werden wir sie im folgenden mit METHODE 1 ,..., METHODE 4 bezeichnen.

METHODE 1:

Es wird zunächst eine bestimmte Anzahl N von Perzeptronen unabhängig voneinander auf die komplette Patternmenge trainiert. Bezeichnen wir die einzelnen Perzeptronen mit f1,...,fN , so bilden wir danach

f = a 1 f1+ . . . + a n fn ,

wobei a i = 1/N .

Danach wird H(f) bestimmt. (H ist natürlich die Perzeptronaktivierung.)

METHODE 2:

Zunächst werden die N Perzeptronen wie bei METHODE 1 trainiert. Danach wird ein neuer Gewichtsvektor a = (a 1, ..., aN) auf die Ausgaben der f1,...,fN trainiert. Anschließend wird f wie in METHODE 1 berechnet.

METHODE 3:

Der Ansatz der Berechnung ist derselbe wie in METHODE 2. Nur variieren hier die Patternmengen für die einzelnen Perzeptronen. Für i = 1, ...,N-1 sei gi = 1/i f1+...+ 1/i fi .

Für k=1 ist die Menge die originale Patternmenge.

Für i = 2, ...,N wird fi auf eine zufällig gezogene Teilmenge derjenigen Pattern trainiert, die gi falsch klassifiziert. Abschließend wird f wie in METHODE 2 mit trainiertem a berechnet.

METHODE 4:

Diese Methode funktioniert im Prinzip wie METHODE 3. Nur ist hier die Wahrscheinlichkeit der bisher richtig klassifizierten Pattern nicht mehr Null. Für jedes Perzeptron werden alle Wahrscheinlichkeiten nach folgender Formel berechnet:

P(k+1)(n) = (1 + m(k) (n)4)/( (1 + m(k) (1)4)+...+ (1 + m(k) (N)4))

Dabei bezeichne m(k-1) (n) die Summe der falschen Prognosen der Perzeptronen f1,...,fk-1 zu dem Pattern n.

 

3.) Versuchsverlauf und –ergebnisse

Um später im Vergleich die Verbesserungen unserer Methoden zu erkennen, werden wir zunächst die Ergebnisse eines einzelnen Perzeptrons auf unsere Patternmengen darstellen:

Bei "spirals" werden von 195 Pattern ca. 125 falsch klassifiziert. Bei "balance" sind es zwischen 49 und 98 von 625. Zum XOR – Problem haben wir diesbezüglich in der Einleitung alles Wesentliche gesagt.

Für alle Versuche benutzen wir höchstens 100 Schleifendurchläufe des Perzeptronalgorithmus.

 

Ergebnisse bei Anwendung von METHODE 1:

Die Ergebnisse der folgenden Patternmengen beziehen sich auf das Trainieren von fünf Perzeptronen. Auch bei höherer Anzahl tritt hier keine wesentliche Verbesserung auf.

Bei XOR tritt keine Verbesserung ein. Auch bei der Kombination wird weiterhin mindestens ein Pattern falsch klassifiziert.

Bei "balance" werden nun konstant 49 Pattern falsch klassifiziert. Dies ist nur die triviale Lösung, alle Pattern werden einfach als nicht ausbalanciert klassifiziert, darunter auch die 49 balancierten Pattern. Betrachten wir dabei die Ergebnisse der einzelnen Perzeptronen, fällt auf, daß einige ebenfalls diese Lösung finden und andere wiederum versuchen, auch die balancierten zu berücksichtigen, wodurch aber nur noch schlechtere Ergebnisse erzielt werden.

Bei der Datei "spirals" werden regelmäßig ca. 88 Pattern falsch klassifiziert.

Im Folgenden beruhen unsere Ergebnisse, soweit nicht ausdrücklich anders erwähnt, auf die Verwendung von 20 Perzeptronen und jeweils 50 Durchläufe des Perzeptronalgorihmus.

 

Ergebnisse bei Anwendung von METHODE 2:

Bei XOR tritt eine Verbesserung zu METHODE 1 ein: In ca. der Hälfte der Fälle werden alle Pattern richtig klassifiziert. Damit haben wir also mit dieser Methode das XOR-Problem gelöst.

Bei "balance" tritt der gleiche Effekt auf wie bei METHODE 1, wieder werden meistens 49 Pattern falsch klassifiziert, in seltenen Fällen aber auch bis zu 101.

Auch bei "spirals" tritt keine nennenswerte Verbesserung ein. Es werden ungefähr 80 Pattern falsch klassifiziert.

Fazit: Bis auf die Lösung des XOR – Problems bringt diese Methode keine besonderen Vorteile gegenüber METHODE 1.

 

Ergebnisse bei Anwendung von METHODE 3:

Es treten im Vergleich zu METHODE 2 weder bei "balance" noch bei "spirals" nennenswerte Verbesserungen ein.

Da METHODE 3 aber etwas aufwendiger ist, ist im direkten Vergleich METHODE 2 zumindest bzgl. dieser beiden Patternmengen wohl vorzuziehen.

Sieht man sich hierbei genauer an, welche Perzeptronen welche Pattern der jeweiligen Menge falsch klassifizieren, fällt auf, daß jedes Pattern immer abwechselnd falsch bzw. richtig eingeordnet wird. Und das, weil immer nur im Wechsel die trivialen Lösungen, allen Pattern die Eins bzw. Null zuordnen, gefunden werden. Daran merkt man, daß es wohl wenig sinnvoll ist, das folgende Perzeptron ausschließlich auf die bisher falsch klassifizierten zu trainieren.

 

Ergebnisse bei Anwendung von METHODE 4:

Die Ergebnisse bei "balance" ändern sich im Vergleich zu METHODE 3 (bzw. METHODE 2 oder METHODE 1) nicht. Die einzelnen Perzeptronen versuchen hier zwar andere als die trivialen Lösungen zu finden, verschlechtern sich dadurch allerdings nur. Insgesamt erhalten wir wieder das Ergebnis, alle Pattern wären nicht balanciert. Auch wenn wir die Anzahl der Perzeptronen auf 100 hoch setzen, erhalten wir keine besseren Ergebnisse.

Dagegen tritt bei "spirals" eine deutliche Verbesserung ein: Es werden in den meisten Fällen nur noch ca. 50 Pattern falsch klassifiziert. Auch hier ist auffällig, daß abwechselnd mehr positiv bzw. negativ falsch klassifiziert werden. Das deutet darauf hin auch weiterhin nur ungefähr die triviale Lösung gefunden wird. Bei einer anderen Bewertung der bisher falsch klassifizierten in der oben unter METHODE 4 angegebenen Formel (zum Beispiel nur hoch 2 oder 3) erreichen wir allerdings keine weitere Verbesserung.

 

Vergleich der Methoden mit Hilfe anderer Patternmengen:

Bei genauerer Betrachtung der oben beschriebenen Ergebnisse wird klar, daß unsere Methoden bzgl. unserer Patternmengen nicht sehr überzeugend sind. Aus diesem Grund haben wir noch zwei weitere Patternmengen getestet: "monks1.pat" und "monks3.pat". Dabei handelt es sich um Pattern, die nach einem gewissen (relativ simplen) Schlüssel generiert werden.

Werden von einem Perzeptron bei "monks1.pat" noch ca. 50 von 124 und bei "monks3.pat" ca. 62 von 122 Pattern falsch klassifiziert, können wir von Methode zu Methode jeweils eine deutliche Verbesserung bei beiden Mengen erkennen.

Mit Hilfe von METHODE 4 werden unter Verwendung von 20 Perzeptronen bei "monks1.pat" nur noch ungefähr 28 Pattern falsch klassifiziert. Erhöht man die Anzahl auf 100 Perzeptronen, ist das Problem fast gelöst: Man erhält ca. zwei falsch klassifizierte Pattern.

Auch bei "monks3.pat" stellt sich ein deutlicher Erfolg ein:

Werden mit 20 Perzeptronen noch ungefähr 10 Pattern falsch klassifiziert, so erhält man mit 100 Perzeptronen nur noch ein falsch klassifiziertes Pattern.

 

4.) Zusammenfassung und offene Fragen

Wir haben versucht, mit Hilfe von Ensembles von Perzeptronen, die auf verschiedenen Arten kombiniert und auf Grund von unterschiedlich Schlüsseln zusammengestellte Patternmengen trainiert wurden, eine Verbesserung bei der Trennung von Punktmengen, hauptsächlich am Beispiel von "XOR", "balance" und "spirals", zu erreichen.

Damit haben wir auch einige deutliche Verbesserungen gegenüber dem bisherigen einfachen Perzeptronalgorithmus erzielt, besonders bei den beiden zusätzlichen Patternmengen "monks1.pat" und "monks3.pat". Dank unserer Methoden wurden drei der fünf Mengen so gut wie gelöst.

Unsere erhaltenen Ergebnisse bzgl. der beiden Patternmengen "balance" und "spirals" legen die Vermutung nahe, daß diese in einem gewissen Sinne "schwierig" zu trennen sind. Da wir nicht wissen, ob wir mit METHODE 4 den maximalen Erfolg erreicht haben, was das Kombinieren von Perzeptronen betrifft, bleibt natürlich die Frage offen, ob man durch das Kombinieren von Perzeptronen die Patternmengen "balance" und "spirals" überhaupt zufriedenstellend trennen kann.

Vergleicht man die Komplexität von METHODE 4 mit der von METHODE 1 und die trotzdem kaum besser werdenden Ergebnisse, kann man fast vermuten, daß die Antwort NEIN lautet.

Interessant wäre es hier, noch zu prüfen, ob eine noch deutlich größere Anzahl an Perzeptronen das Ergebnis erheblich positiv beeinflussen könnte. Auch könnte man noch testen, ob ein anderer Schlüssel zur Zusammenstellung der Trainingsmengen für die einzelnen Perzeptronen hilfreich wären.

 

Literatur:

[1] Christopher M. Bishop. Neural Networks for Pattern Recognition.

[2] Markus Hermes. Klassifikation von Korrosionsstellen in der Pipelineauswertung unter der Verwendung von Ensembles modularer Neuronaler Netze. (Diplomarbeit, Juli 1999)