SynapseNN



  • Hallo Forum!

    Heute möchte ich euch mein Projekt vorstellen. Es ist definitiv noch nicht fertig und es gibt daher bis jetzt noch nicht viel zu sehen. Ich möchte es euch trotzdem schon jetzt vorstellen, da ich hoffe, dass ich vielleicht das Interesse von einigen hier zu erwecken. Gerne möchte ich nämlich mit anderen zusammenarbeiten.

    Nun zum Projekt, damit ihr erst einmal wisst worum es geht:

    Was ist SynapseNN?

    SynapseNN ist ein Simulator für künstliche neuronale Netzwerke. Das Tool ist darauf ausgelegt, konkrete Probleme lösen zu können. D.h. genauer, dass man es einsetzen kann wenn man in seinem eigenen Programm ein neuronales Netzwerk gebrauchen könnte.

    Was macht SynapseNN?

    SynapseNN wird dazu benutzt, das Neuronale Netzwerk zu generieren und anschließend zu trainieren. Später sollte man es dann nur noch mit Werten füttern müssen, um korrekte Ergebnisse erhalten zu können. Dabei lege ich großen Wert darauf, die Schnittstelle für den Benutzer so einfach wie möglich zu halten. Wie gesagt: das Problem soll im Fokus stehen, nicht die Implementierung des Neuronalen Netzwerkes.

    Wie benutze ich nun SynapseNN aus Anwendersicht?
    Es soll zwei Alternativen geben:

    • Das Benutzen als Bibliothek aus eigenen Programmen heraus und
    • das Benutzen als eigenständige Konsolenanwendung.

    Die Konsolenanwendung soll es erlauben, neuronale Netzwerke zu erstellen ohne Programmieren zu müssen. Man soll ein KNN aus der Konsole heraus erzeugen, trainieren und benutzen können.

    Soweit dazu, was das Programm können soll.

    Was habe ich von diesen Zielen schon umgesetzt?

    Zuerst einmal kann mein Programm einfache Feedforward-Netzwerke erstellen.
    Der nächste logische Schritt sind Lernverfahren:
    Hier habe ich bereits die Delta-Funktion sowie Backpropagation implementiert. Backpropagation funktioniert allerdings noch nicht, die Delta-Funktion muss noch ausführlicher getestet werden.

    Bis jetzt ist SynapseNN nur als Library zu benutzen, das CLI muss noch entwickelt werden.

    Das sollte euch einen ungefähren Eindruck davon vermitteln, wie weit ich bin.

    Noch ein paar Details zum Projekt selbst:
    Ich entwickle mit C++ unter Linux. Das Programm/die Bibliothek sollte aber weitestgehend plattformunabhängig sein. SynapseNN ist übrigens ein OpenSource Projekt.

    Hier könnt ihr es auf Sourceforge begutachten:
    http://synapsenn.sf.net (Das Paket im Download-Bereich ist schon etwas alt, schaut euch lieber den Sourcecode im SVN-Repository an)

    So, ich hoffe ich konnte euch einen kleinen Einblick in mein Projekt geben. Wer Spaß am entwickeln hat und auch gerne etwas dazu lernt (ich lerne selbst erst mit diesem Projekt neuronale Netzwerke kennen), der ist herzlich willkommen! Es würde mich freuen, wenn einige Leute mit mir zusammen daran weiterarbeiten könnten.

    Viele Grüße,
    nevermore



  • Hallo,

    schönes Projekt,
    ich werde mir(wenn ich wieder Zeit habe) dein Projekt anschauen.
    Wir können vll sogar voneinander lernen.

    Gruß
    MADCrew



  • Das wäre wunderbar, du entwickelst ja grade auch an so nem Ding. 🙂


Log in to reply