Neuronales feed-forward Netzwerk zur Klassifikation des Geschlechts (Frau / Mann) aufgrund eines Bildes

 

 

0.     Inhalt 0.     Inhalt 1 1.     Einleitung. 1 2.     Verwendete Materialien. 1 3.     Vorgehen: Datenaufbereitung und Training des Netzwerkes. 2 4.     Ergebnisse. 2 5.     Diskussion, Fazit, Verbesserungsvorschläge. 4 6.     Literatur 4  

1.     Einleitung

Wir haben uns zum Ziel gesetzt ein neuronales Netzwerk zu konstruieren und darauf zu trainieren, aufgrund eines graustufen Bildes (60x75 Pixel, frontale Aufnahme des Kopfes) zu erkennen, ob es sich bei der gezeigten Person um eine Frau, bzw. um einen Mann handelt.

 

 

2.     Verwendete Materialien

Um den Arbeitsaufwand möglichst gering zu gestalten, versuchten wir möglichst viele bereits vorhandene Arbeitsmittel zu unserer Unterstützung heranzuziehen.

 

SNNS - Stuttgart Neural Network Simulator

Unser Kernprogramm, das ermöglicht neuronale Netzwerke per Mausklick zu kreieren und mit speziellen Mustern zu trainieren.

(http://www.informatik.uni-stuttgart.de/ipvr/bv/projekte/snns/snns.html als freier download für Lernzwecke)

 

Die Trainingsbilder: The Psychological Image Collection at Stirling (PICS)

Die Bilderdatenbank bestehend aus 100 Bildern (50 Männern, 50 Frauen) bezogen wir aus der PICS - Datenbank. Es handelt sich dabei um 100 verschiedene Individuen, frontal aufgenommen, Kopfansicht, neutraler Gesichtsausdruck, Bilder nicht positions-normiert (d.h. dass z.B die Augen nicht immer auf gleicher Höhe bzw. Breite im Bild liegen)

(http://pics.psych.stir.ac.uk/cgi-bin/PICS/New/pics.cgi)

 

Konverter: Zur Umwandlung der Bilder in Vektoren für das neuronale Netz

Da ein solcher Konverter nicht vorlag, mussten wir selber einen programmieren. Die Aufgabe bestand darin, ein Bild in das spezielle file-format des SNNS zu konvertieren. Des weiteren sollte es auch möglich sein ganze Verzeichnisse zu konvertieren.

Der Konverter liegt in zwei verschiedenen Versionen vor (in VisualBasic und C) als download vor. Es sei hier aber ausdrücklich darauf hingewiesen, dass es sich bei diesen Programmen um Hilfsmittel für uns handelt und sie darum nicht gerade leicht für Aussendstehende zu handhaben sind! Sie wurden auch nicht unter dem Anspruch der leichten Bedienbarkeit und Übersichtlichkeit entwickelt.

VisualBasic6-Version (bmp, gif, jpeg, wmf, emf) : bmp2pat_konverter\pix2pat_vb6.zip

C-Version (bmp) : bmp2pat_konverter\bmp2pat_c.zip

 

Übliche Tools zum Umgang mit Bildern

Um die Bilder von ihrer ursprünglichen Grösse (381x467 pixel) auf unsere Grösse von 60x75 pixel herunterzurechnen. Wir verzichten hier auf eine Quellenangabe, da diese Programme zuhauf im Internet verfügbar sind.

 

 

3.     Vorgehen: Datenaufbereitung und Training des Netzwerkes

Als erstes haben wir die 100 Ausgangsbilder auf 60x75 Pixel herunterrechnen lassen. Danach wandelten wir die Bilder in ein Pattern (*.pat-file) um, das Dateiformat des SNNS. Wir verwendeten dabei 90 Bilder als Trainingsmenge und behielten uns 10 Bilder (5 Frauen, 5 Männer) als Testvektoren vor, die wir zufällig auswählten.

 

(Bild 1: Auszug aus der Trainingsmenge, bestehend aus 100 solcher Bildern)

 

Im SNNS konstruierten wir nun feed-forward Netzwerke mit unterschiedlichen Topologien (siehe Ergebnisse). Die Bilder wurden nun direkt auf die Eingabeneuronen gelegt (ein Feld von 60x75 Neuronen) und dann in internen (hidden neurons) weiterverarbeitet und schliesslich an zwei Ausgabeneuronen geleitet (je eines für das Kriterium Mann, bzw. Frau).

 

Das Netz wurde nun trainiert und mit dem unabhängigem Testvektor ständig auf seine Erkennungsqualität überprüft um ein übertrainieren des Netzes zu vermeiden. Die Trainingsbilder wurden dem Netz dabei in zufälliger Reihenfolge präsentiert.

 

 

4.     Ergebnisse

Wir testeten verschiedene Netzwerktopologien und Lernparameter aus. Folgend eine Zusammenstellung (Tab. 1) der Ergebnisse.

 

Nr.

Topologie

Trainingsrunden

Lern-Rate

Erkennungsleistung

1

15x5-5x5

2000

0.2

85%

2 (Bild 2)

20x20-5x5-1x10

400

0.2

90%

3

15x15

100

0.3

80%

4

15x15 (2 parallel)

100

0.2

85%

5

15x15

400

0.4

65%

6

6x6

600

0.2

60%

(Tab. 1: Übersicht über die Erkennleistung der verschiedenen Netze)

 

Interpretation der gewonnenen Daten:

Definition der Erkennleistung:

Unsere Netze haben immer zwei Ausgabeneuronen. Dabei symbolisiert eines die Eigenschaft Frau und ein anderes die Eigenschaft Mann. Es kann nun aber vorkommen, dass nicht nur ein Ausgabeneuron (nach einer Analyse) einen Wert ausgibt, sondern beide. Das Netz ist sich in seiner Analyse gewissermassen „nicht sicher". Da es sich bei der Frau / Mann Frage aber um ein boolsches Problem handelt, interpretierten wir immer nur das Neuron, welches stärker erregt war, bzw. ein höheres Potential feuerte. So konnten wir eindeutig entscheiden und berechneten so die Erkennleistung in Prozent.

 

Die Lernrate:

Wir bemerkten schnell, dass die Lernrate (learning-rate) nicht zu hoch gewählt werden darf. Bereits Werte von über 0.3 ergaben, dass das Netz sich nicht richtig trainieren konnte, d.h. der Fehler auf den unabhängigen Testvektor bezogen entwickelte sich nicht nach einem Minimum sondern schwankte um einen festen Wert. Klar, dass so auch keine guten Erkennraten erzielt werden konnten (siehe Versuch Nr.5). Wir stellten fest, dass sich Werte um 0.2 besonders gut für unsere Problemstellung eigneten. Noch tiefere Werte schienen nicht von Nöten und machten den Lernerfolg nur unnötig langsamer.

 

Die Anzahl Trainingsrunden:

Dieser Wert legte die Anzahl Durchläufe fest. Ein Durchlauf erfolgt wenn alle Bilder des Lernvektors (hier 90) dem Netz einmal in zufälliger Reihenfolge zum Lernen präsentiert wurde. Wir stellten fest, dass mit bereits unter 500 Durchläufen gute Ergebnisse erzielt werden konnten. Auch ein Versuch mit 2000 Durchläufen (siehe Nr. 1) brachte keine Verbesserung der Erkennleistung mehr. Dies war auch durch einen Plot des Fehlers, bezogen auf den Testvektor, gut zu erkennen, der sich meistens nach 300 Durchgängen auf einen festen Wert (Minimum) einstellte.

 

Topologien:

Die Topologie des Netzes scheint die Erkennleistung nicht gross zu beeinflussen, wenn eine Mindestanzahl von Neuronen eingesetzt wird. So stellten wir fest (siehe Nr. 6), dass ein Netz aus 6x6 Neuronen (ein Feld von Länge=6, Breite=6, also insgesamt 36 Neuronen) der Aufgabe nicht genügt. Verwendeten wir aber mehr Neuronen verbessert sich die Leistung des Netzes erheblich, wenn gleich sie sich nicht ins Unermessliche steigern lassen konnte. So schien eine Erkennungsrate von mehr als 90% nicht erreichbar zu sein, auch wenn wir 25x25 Netze trainierten.

Wir machten auch den Versuch (Nr. 4) zwei Netze parallel zu betreiben. Eines das sich auf die Eigenschaft Mann sensibilisierte und ein anderes parallel dazu für die weibliche Eigenschaften im Bild. Aber auch dieses Vorgehen führte zu keinen spektakulären Ergebnissen.

Die Verusche Nr. 1 und 2 beschrieben gekoppelte Netze. Damit meinen wir Netze die nacheinander geschaltet wurden. Nehmen wir Nr. 2 als Beispiel ist damit folgendes Netz gemeint. Direkt an die Eingabeneuronen haben wir ein 20x20 Netz angeschlossen, die Ausgabe dieses Teilnetzes wiederum leiteten wir an ein zweites Netz der Grösse 5x5 weiter, und dieses schliesslich wurde an ein eindimensionales Netz von 10 Neuronen geleitet welche schliesslich ihre Information an die Ausgabeneuronen weitergeben. Leider auch hier, keine wesentliche Steigerung der Erkennleistung.

 

Beispiel der Erkennleistung:

(Bild 2: Analyse mit 20x20-5x5-1x10 nach 400 Trainingsdurchläufen: grün = erkannt, rot = Fehlanalyse)

 

Bei obigem Testvektor handelt sich um 10 Personen (5 Männer links und 5 Frauen rechts). Das Netz aus Versuch Nr. 2 erkannte hier 9 von 10 Bildern richtig (die richtigen sind grün eingefärbt). Das rote Bild (3. von rechts) wurde falsch analysiert und das Netz gab einen Mann aus. Die Erkennrate liegt in diesem Beispiel also bei 90%.

 

Kuriose Fehlleistungen des Netztes:

Auch wenn hier die Fehlinterpretation des Netzes vielleicht einigermassen nachvollziehbar ist, so wurden wir aber auch durch frappante Fehlleistungen des Netzes überrascht. So identifizierte es auch einmal einen vollbärtigen und urchigen Mann voller Überzeugung als Frau. Man stellt also fest, dass es nicht ganz einfach ist, das eigentliche Beurteilungskriterium nachdem das Netz handelt herauszufinden.

 

 

5.     Diskussion, Fazit, Verbesserungsvorschläge

Die durchschnittliche Erkennleistung der Netzwerke von ungefähr 85% hat uns überrascht, lag sie doch erheblich über unseren Erwartungen.

 

Eine weitere Verbesserung der Erkennungsleistung wäre wohl durch eine Normierung der Bilder zu erreichen. So könnte man z.B. darauf achten, dass die man die Augenpartie der Probanden immer auf die gleiche Position im Bild schiebt.

 

Des weiteren könnte eine Erhöhung der Bilderanzahl des Trainingvektors (wir verwendeten 90 Bilder) das Netz in seiner Treffsicherheit erfolgreicher machen.

 

Es scheint aber dennoch schwierig, herauszufinden nach welchen Kriterien das Netz seine Entscheidungen fällt. Wir verweisen hier nochmals an den vollbärtigen Mann der vom Netz mit grosser Sicherheit als Frau identifiziert wurde.

 

 

6.     Literatur

- Simulation Neuronaler Netze, Andreas Zell. Addison-Wesley (Deutschland). 1996

- diverse Internetquellen

 

 

Anmerkung: Am Besten sieht man sich diese Seite im MS - Explorer an, weil sie mit Word nach html konvertiert wurde.

 

patrick heusser / heusser@dolphins.ch / g:\daten\eth\pps_neuronaleNetze\Geschlechter_Erkennung.doc / 19. Januar 2000 / v 1.0

 

 

Uebersicht über alle Seminararbeiten