Elektronische Nase

Sie haben ein bestimmtes Projekt zu bearbeiten und wissen nicht, wie Sie an die Aufgabe heran gehen sollen? Sie sind sich nicht sicher, ob Ihr Netzentwurf zu Ihrem Problem passt oder ob es da Optimierungsmöglichkeiten gibt? Ist es überhaupt sinnvoll an Ihre Daten mit einem NN basierten Ansatz heranzugehen? Ist MemBrain das richtige Werkzeug für Ihr Problem und Ihre Infrastruktur?

Hier ist der richtige Platz für diese Art von Fragen.
Post Reply
meenzerjung
Posts: 1
Joined: Fri 6. Mar 2009, 15:58

Elektronische Nase

Post by meenzerjung »

Sehr geehrter Herr Jetter,
an der Uni Mainz versuchen wir im Rahmen einer Diplomarbeit eine elektronische Nase für die Erkennung von Pilzbefall auf Pflanzen zu bauen. Wir (mein Betreuer und ich) haben seit 20 Jahren Erfahrung in der Gassensorik, allerdings um ANN immer einen Bogen gemacht. Jetzt fehlt uns ein Tool, dies Defizit so schnell als möglich aufzuholen.
Wir nehmen Zeitreihen auf und geben die fertige Messungen in ein Netz ein. Größenordnung 800 Eingänge.
Die Anzahl von Ausgängen liegt im Bereich von 10.
An Trainingsdatensätzen erwarten wir in den kommenden Monaten ca. 100.000.

Folgende Fragen stellen sich uns:
A) Können wir in ihrer klasse Simulationsumgebung Netze per Editor konfigurieren? Sprich, NeuralNetDef.c und .h zum Beispiel aus einem C-Programm automatisch generieren?
B) Können wir unsere Messdaten in das Dateiformat der Lektions.mbl ebenfalls möglichst automatisch umwandeln? Wir haben die Syntax nicht erkannt und nicht einmal einen passenden Viewer dazu gefunden. Ihre anderen Forumsbeiträge legen aber nahe, daß wir da etwas übersehen haben.

Mit freundlichen Grüßen und bestem Dank im Voraus,
Ihre meenzerjungs
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Elektronische Nase

Post by Admin »

Hallo meenzerjungs,

leider befinde ich mich im Moment auf einer längeren Dienstreise und habe bisher in meiner freien Zeit noch keinen Internetzugang. Deshalb möchte ich Sie um noch etwas Geduld bitten, ich werde auf Ihre Fragen eingehen, so bald die Möglichkeit für mich besteht.

Vielen Dank und viele Grüße,
Thomas Jetter
User avatar
Admin
Site Admin
Posts: 438
Joined: Sun 16. Nov 2008, 18:21

Re: Elektronische Nase

Post by Admin »

Hallo meenzerjungs,

ein spannendes Projekt, scheint mir, ich wünsche auf jeden Fall schon einmal viel Erfolg!

Ich habe unten auf Ihre Fragen geantwortet, hoffe, das hilft zunächst. Ansonsten bitte einfach wieder posten.
Wir nehmen Zeitreihen auf und geben die fertige Messungen in ein Netz ein. Größenordnung 800 Eingänge.
Die Anzahl von Ausgängen liegt im Bereich von 10.
Das wird wahrscheinlich ein sehr mächtiges Netz ergeben. MemBrain kann damit zwar problemlos umgehen, es wird bei 100000 Datensätzen und entsprechend vielen Links aber prinzipbedingt aber sehr lange Trainingszeiten ergeben. Meine Frage deshalb: Sind die 800 Eingänge von unterscheidlicher Qualität oder handelt es sich um 800 (oder auch weniger) Zeitschritte der selben skalaren Größe(n)? Im letzteren Fall bietet es sich an, ein zeitvariantes Netz zu erstellen, das die Vergangenheit intern selbst abbildet und damit wesentlich weniger Eingänge hat (nämlich genau so viele, wie unabhängige Eingangsgrößen vorhanden sind). Das reduziertz die Anzahl notwendiger Links und beschleunigt somit die Netzberechnungen.
A) Können wir in ihrer klasse Simulationsumgebung Netze per Editor konfigurieren? Sprich, NeuralNetDef.c und .h zum Beispiel aus einem C-Programm automatisch generieren?
Ich bin mir nicht ganz sicher, ob ich die Frage richtig verstehe. MemBrain kann die generierten C-Code Files nicht wieder einlesen, um daraus ein Netz in MemBrain darzustellen. Die Dateien sind dazu da, die Funktionalität eines in MemBrain trainierten Netzes in eine eigene Applikation einzubinden. Dabei ist - anders als wenn z.B. die MemBrain DLL verwendet wird - auch kein Nachtrainieren über den Source Sode mehr möglich, die Netze sind im C-Code also 'eingefroren'. Beantwortet das Ihre Frage?
B) Können wir unsere Messdaten in das Dateiformat der Lektions.mbl ebenfalls möglichst automatisch umwandeln?
Dazu gibt es, abhängig vom Format, in dem Ihre Daten vorliegen, mehrere Möglichkeiten. Daten im CSV-Format kann MemBrain über den Lesson-Editor einlesen, dort können Sie die Daten dann im mbl Format abspeichern. Das Ganze geht auch über ein MemBrain Skript.
Wenn Sie die MemBrain DLL verwenden, können Sie darüber beliebige Lesson-Dateien erstellen, Sie müssen dazu aber natürlich den Code selbst schreiben, d.h., Ihre Daten selbst aus Dateien lesen, parsen und über die DLL der Lesson zuweisen und abspeichern.

Bald wird auch eine MemBrain Version erscheinen, die eine an C++/Java angelehnte, mächtige Skriptsprache beinhaltet. In dieser Skriptsprache können Sie dann Ihre Dateien im Text- oder Binärformat öffnen, Ihre Daten daraus einlesen und umwandeln und dann daraus ein Lesson-File erstellen. Also ganz ähnlich wie mit der DLL nur mit dem Vorteil, dass Sie die DLL nicht benötigen, sondern einfach ein C++-ähnliches Programm (= Skript) schreiben können, das von MemBrain compiliert und ausgeführt wird. Sie können MemBrain auch mit einem solchen Sktiptfile als Parameter auf der Kommandozeile aufrufen, so dass Sie die Generierung der Files auch in eine eigene Automatisierungen einbinden können.

Hilft Ihnen das zunächst einmal weiter?

Viele Grüße!
Thomas Jetter
Post Reply