auto-nng
This website in English
Download
Hier ist der Quellcode von auto-nng erhältlich. Bitte beachten Sie den experimentellen Status der Software.
Version 1.0
Version 1.1
Version 1.2
Version 1.3
Version 1.4
Version 1.5

freshmeat.net Projektseite
Impressum

Was ist auto-nng?

auto-nng ist ein Programm zur Analyse und anschliessenden Klassifizierung von Datensätzen unter Zuhilfenahme von künstlichen Neuronalen Netzwerken. Wird eine Menge an Datensätzen bestehend aus Eingangs- und Ausgangsparametern dem Programm übergeben, so versucht dieses einen mathematisch greifbaren Zusammenhang zwischen Eingangs- und Ausgangsdaten festzustellen. Im Anschluss daran, können Datensätze, welche nur aus Eingangsdaten bestehen dem Programm präsentiert werden, und dieses versucht dann die entsprechenden Ausgangsdaten anhand der im ersten Schritt bereitgestellten Beispieldaten zu errechnen.

auto-nng ist kostenlos, und kann unter den Bedingungen der mitgelieferten Lizenz (MIT-Style) verwendet und weiterentwickelt werden. Es wurde unter dem Betriebssytem NetBSD entwickelt, ist jedoch auch unter Linux (und weiteren ähnlichen Betriebssystemen) lauffähig.

Welche Arten von Daten kann auto-nng verarbeiten?

Bei den von auto-nng verarbeiteten Eingangs- und Ausgangsdaten sollte es sich idealerweise um binäre Daten handeln (also um Antworten auf Fragen, die sich mit "Ja" oder "Nein" beantworten lassen). Diese binären Daten werden als reelle Zahlen zwischen -1 (für "Nein") und +1 (für "Ja") dargestellt. Auch Zahlen zwischen diesen beiden Werten sind möglich, so z.B. 0 für "unbekannt", oder 0.5 für "wahrscheinlich Ja" oder "überwiegend". Liegen jedoch Daten von kontinuierlicher Natur vor (z.B. Messgrößen oder ähnliches), kann auto-nng diese selbsttätig in zwei unscharfe binäre Eigenschaften ("kleiner als der Durchschnitt" und "grösser als der Durchschnitt") umwandeln. Hierbei wird auch die Standardabweichung berücksichtigt.

Besonders wichtig ist, dass viele Beispieldatensätze vorhanden sind, da das Programm ausschließlich auf Lern- und Zufallsprozessen basiert, die bei einer kleinen Anzahl von Datensätzen nicht gut funktionieren können.

Welche Schnittstellen bietet auto-nng?

Die von auto-nng zu verarbeitenden Daten müssen als reelle Zahlen in Form von CSV Dateien vorliegen. Die Ergebnisse werden ebenfalls als CSV Datei zur Verfügung gestellt.

Wie funktioniert auto-nng?

Zunächst werden von auto-nng die als "kontinuierlich" gekennzeichneten Eigenschaften der Beispieldatensätze umgewandelt in zwei (unscharfe) binäre Eigenschaften, damit die neuronalen Netzwerke es leicht haben eine Abweichung nach oben (vom Mittelwert aus) anders zu bewerten als eine Abweichung nach unten. Hierbei wurden Mittelwert und Standardabweichung berücksichtigt. Im nächsten Schritt werden alle Beispieldatensätze zufällig gemischt, und in zwei gleich grosse Gruppen aufgeteilt. Die eine Gruppe wird im Folgenden zum Training von neuronalen Netzen genutzt, während die andere Gruppe nur zur Kontrolle der Abstraktionsfähigkeit dient. Nun werden (abhängig von der Menge der Eingangs- und Ausgangsparameter) verschiedene Strukturen von vorwärts verketteten neuronalen Netzen aufgebaut. Diese kann man als Formeln verschiedener Struktur mit einer Reihe von Koeffizienten betrachten, welche die Eingangsdaten in die Ausgangsdaten ueberführen sollen. Alle Koeffizienten sind zunächst Null (also neutral) und führen immer zu neutralen Ausgangsdaten (also "unbekannt" oder zum Mittelwert). Anschließend werden die Neuronalen Netze durch zufällige Mutation (zufällige Änderung der Koeffizienten) modifiziert. Führen die Änderungen zu einer Verbesserung der Formel in Bezug auf die Trainingsdaten, werden die Änderungen beibehalten, ansonsten verworfen. Die Stärke der Mutation wird adaptiv angepasst, sodass sich ein für den Gesamtprozess möglichst optimales Verhalten ergibt.

Die Neuronalen Netze werden so versuchen einen Zusammenhang zwischen Eingangs- und Ausgangsdaten der Trainingsdatensätze herzustellen. Um sicherzustellen, dass die Neuronalen Netze hierbei nicht die Abstraktionsfähigkeit verlieren, werde sie mit Hilfe der vorher zusammengestellten Kontrolldatensätze (welche nicht zum Training der neuronalen Netze verwendet wurden) getestet. Das Neuronale Netz mit den besten Ergebnissen bei den Kontrolldaten wird schließlich als Ergebnis ausgegeben.

Wie verlässlich sind die Ergebnisse von auto-nng?

Bei auto-nng handelt es sich um experimentelle Software. Das Verhalten von auto-nng haengt unter anderem von Zufallsprozessen ab. Die Verlässlichkeit der Software kann man nicht vorhersagen. Insbesondere bei der Verwendung von kontinuierlichen Eingangs- oder Ausgangsdaten werden die Ergebnisse ungenau.

Links auf andere Webseiten:

Fast Artificial Neural Network Library (FANN)

Neuronale Netze - Eine Einführung (www.neuronalesnetz.de)

Informationen zu Optimierungsverfahren auf der Basis von Evolutionsalgorithmen (www.evocomp.de)