Neuronale-Netzwerk-Bibliothek Neuronica

Die Klassenbibliothek Neuronica erlaubt es, künstliche neuronale Netze einfach in bestehende oder neu zu entwickelnde Programme einzubinden. Die Bibliothek im aktuellen Entwicklungsstand unterstützt dabei bereits verschiedene Backpropagation-Lernverfahren und selbstorganisierende Karten.

Aufgrund des modularen Aufbaus ist eine Erweiterung für weitere Lernverfahren einfach realisierbar. Bei der Entwicklung wurde Wert darauf gelegt, die eigentliche Funktionalität soweit wie möglich auf einer möglichst niedrigen (lokalen) Ebene zu realisieren. Das heißt, die Lernverfahren funktionieren nicht nach dem klassischen Top-Down-Ansatz, bei dem der Algorithmus im Zentrum steht (prozeduraler Ansatz), sondern nach dem Bottom-Up-Prinzip mit dem Neuron als Basis-Baustein (objektorientierter Ansatz). Der eigentliche Algorithmus ergibt sich dabei aus der Summe der Funktionalität der einzelnen Komponenten.

Kompatibilität mit bestehenden Tools war ein weiterer Entwicklungsschwerpunkt. Als Dateiformat zur Abspeicherung und zum Laden von Mustern (Pattern-Datei) wird das vom SNNS bekannte Format benutzt. Zum Laden und Speichern der Netze wird ein eigenes XML-basiertes Format benutzt. Der Export in das SNNS-Netz-Format ist aber direkt durchführbar. Da für den SNNS viele nützliche Werkzeuge zur Verfügung stehen, sind diese damit auch mit den über Neuronica erzeugten Dateien verwendbar. Dies ist insbesondere bei der Visualisierung von mit Neuronica erzeugten und trainierten Netzen nützlich.

Die über Neuronica bereitgestellten künstlichen neuronalen Netze wurden ausgiebig auf ihre Funktionalität getestet. Als Referenz wurde dabei der Stuttgarter Neuronale Netzwerk-Simulator (SNNS) verwendet. Es konnte so nachgewiesen werden, dass SNNS und Neuronica, wenn die gleichen Lernparameter eingestellt werden, bis auf Rundungsfehler zu exakt den gleichen Ergebnissen führen. Die Netz-Bibliothek wurde bereits in realen Anwendungsprojekten eingesetzt und dort ebenfalls intensiv getestet.

Das modulare Prinzip der Netzwerk-Bibliothek erlaubt eine einfach zu realisierende Einbindung der künstlichen neuronalen Netze. Durch die Möglichkeit einzelne Neuro- nen beliebig zusammen zu schalten und insbesondere dadurch, mehrere Netze jeweils zu einem großen Netz zu verbinden, lassen sich theoretisch beliebig komplexe Strukturen aufbauen. Die Funktionalität, Teilnetze getrennt zu trainieren und abzuspeichern, ist dabei besonders nützlich. Durch das Paradigma, die Lernverfahren soweit wie möglich auf der (niederen) Ebene der Neuronen zu implementieren, ergeben sich weitere Vorteile. Zum einen erlaubt es diese Art der Implementation, auf bereits bestehende Grundfunktionalitäten aufzubauen und neue Verfahren und Strukturen mit relativ niedrigem Aufwand zu entwickeln und zu testen. Zum anderen ist es dadurch einfach heterogene Netze zu erstellen. Die Heterogenität kann sich dadurch ergeben, dass sich für jedes Neuron die einzelnen Parameter (Lernrate, Steilheit des Anstiegs der Aktivierungsfunktion usw.) individuell einstellen und verändern lassen, und dass es möglich ist, gezielt verschiedene Arten von Neuronen in einem Netz zu kombinieren. Es ist auch möglich Neuronen, die mit verschiedenen Verfahren trainiert werden, in einem Netz zu kombinieren, z.B. Neuronen die nach dem Standard-Backpropagation- Verfahren trainiert werden und Neuronen die Quickprop verwenden.

Die Software Neuronica ist für Linux unter der GNU GENERAL PUBLIC LICENSE (GPL) als Open-Source-Software frei verfügbar. Jedes Open-Source-Projekt unter der GPL kann diese Software also frei verwenden. Darüber hinaus ist Neuronica auch in anderen Lizenzen (und für weitere Betriebssysteme, z.B. Windows) verfügbar, so dass auch der Einsatz in Nicht-GPL-Software möglich ist. Das ist möglich, da das Copyright für den gesamten relevanten Quellcode bei uns liegt. Sollten Sie Interesse am Einsatz von Neuronica in einem Nicht-Open-Source-Produkt haben, kontaktieren Sie uns bitte.




[ Startseite ]       [ Kontakt ]       [ Impressum / Datenschutz ]