Jump to content






Photo
* * * * * 3 votes

Neuronales Netz: Die Implementierung Teil1

Posted by Mythos , 11. August 2012 · 1,196 views

ki neuronales netz library
Kommen wir zum schwierigen Teil: Die Implementierung.

Für das ganze restliche rundherum hab ich das EA Kitchen Framework genommen. Den aktuellen Source gibts dann immer im dazugehörigen Thread.

Die konkrete Implementierung der NN Logik wird in eine Lib ausgelagert. Ich hatte zwar schon mal so eine geschrieben, aber keine Ahnung mehr wo die is. Also nochmal.

Das ganze wird jetzt sicher ein bissl hardcore programmiertechnisch, also wems nur ums prinzip geht: besser wegschaun ;)

Softwarestruktur
Die Lib wird so aufgebaut das sie genau 1 NN repräsentiert. Sprich es gibt globale variablen in der Lib die Status und Konfiguration speichern, und dann Funktionen für die entsprechenden Zugriffe.
Gespeichert werden muss:
  • Anzahl der Schichten -> integer bzw. direkt über größe des layers array
  • Anzahl der Neuronen pro Schicht -> int-array: layers
  • Definition der Übergangsfunktion pro Neuron -> zweidimensionales array (anzahl schichten x knoten pro schicht)
  • Gewichte pro Verbindung -> wird wohl ein dreidimensionales double array. Ebene 1: layer, ebene 2: neuron am layer Ebene 3: neuron auf nächstem Layer
Nötige Zugriffsfunktionen:
  • Erzeuge NN. Parameter: <Anzahl Inputs>,<Array mit Anzahl Knoten pro Layer>, <Anzahl Outputs>, <Array mit Identifier der Übergangsfunktion>
  • Berechne NN. <Array mit Inputs>,<Ref auf Array für Outputs>
  • Lade Parameter von File: <Filename>
  • Speichere in File: <Filename>
  • Autosave (nimmt filename aus dem geladen wurde
  • Trainiere 1 Schritt: <Array mit Inputs>, <Array mit gewünschten Outputs>
Als Lernalgorithmus werd ich den backpropagation verwenden, einfach weil ich ihn kenne ;)

Sprich die Lib wird ein komplett allgemeines NN, das man ggf. auch für ganz andere Varianten verwenden kann. Alle Projektspezifischen Einstellungen werd ich in eine mqh packen die die NN-Lib dann verwendet.

Dann geh ich mal an die Implementation der Lib. Mal sehen wie lang es dauert ;)

  • 3



Photo
DrStrangelove
12. August 2012
Hi!

Warum nimmst du nicht einfach RapidMiner? Das ist kostenlos, hat fast jeden Lernalgo unter der Sonne eingebaut und kommt direkt mit Auswertungstools und Testtools daher.
    • 0
  • Report
Hauptgrund: weil ichs nicht kannte. Jetzt wo ichs kenne, neuer Hauptgrund: Ich will ja was lernen ;)

Im Ernst, einerseits bin ich mir jetzt nicht sicher ob man RapidMiner ohne Probleme vollautomatisieren und an MT anbinden kann, andererseits will ich ein NN mal komplett selber bauen. Fertige Blackboxen sind eben immer noch Blackboxen auch wenn sie viel können. Falls das eigene NN scheitert, kann leicht sein das ich mir den RapidMiner anschaue, aber erstmal bau ichs selber.
    • 0
  • Report
Photo
DrStrangelove
12. August 2012
Mein Vorschlag vorhin war nicht als Kritik gedacht, Lernalgos selber zu schreiben um sie besser zu verstehen oder anpassen zu können ist ein Grund den ich als Programmierer nur als zu gut nachvollziehen kann. Abgesehen davon macht es ja auch Spaß ;)

Vollautomatisch wird man Rapidminer in MT wohl nicht integrieren können, aber das ist imho auch nicht nötig, in den meisten Fällen will man ja nur das gelernte Modell haben. Ich kann aber nur empfehlen mit Rapidminer mal zu spielen, einfacher kann man andere Lerner wie die SVM nicht testen. Das Programm kann aber am Anfang durch seine Mächtigkeit etwas einschüchternd wirken.
Ich habe selber ein paar Ideen für eine Kombination von NN mit Kursleveln, wenn ich doch nur die Zeit hätte...
    • 0
  • Report
habs auch nicht wirklich als Kritik aufgenommen. Freu mich immer über Input. Fürs Daten analysieren ist RapidMiner dann sicher besser weil mehr Möglichkeiten.

Ich will aber auch kein statisches NN machen, sondern es im weiteren Verlauf automatisch "nachlernen" lassen etc. Könnte man in der Praxis dann zwar händisch einmal wöchentlich über RapidMiner spielen, aber ich wills vollautomatisch backtesten auch ;)
    • 0
  • Report

September 2022

M T W T F S S
   1234
567891011
12131415161718
19202122232425
26 27 282930  

Recent Comments

Recent Entries

0 user(s) viewing

0 members, 0 guests, 0 anonymous users

Categories

Latest Visitors

  • Photo
    eurix
    14. Apr 2017 - 21:50 Uhr
  • Photo
    chimbonda
    03. Jul 2016 - 11:49 Uhr
  • Photo
    tompaul
    21. May 2016 - 16:37 Uhr
  • Photo
    fatlemming
    24. Jan 2016 - 17:41 Uhr
  • Photo
    compulsorytrading
    11. Dec 2014 - 09:33 Uhr