Hallo Zusammen,
ich habe eine Frage zu den Datenmengen die Membrain oder Neuronale Netze allgemein "stemmen" können. Ganz konkret habe ich Lessons mit ca. 5 Mio. Mustern.
Es handelt sich um sehr lange Messreihen. Ich habe 15 Input Neuronen/Variablen und einen Outputwert. Ziel ist es den Einfluss der einzelnen Neuronen/Variablen auf den Output zu Isolieren. Ich habe bis jetzt nur mal ein wenig herum probiert, ob das Überhaupt geht bei solchen Mengen. Bei 1 Mio. Muster war die Trainingszeit für einen Durchlauf doch schon recht lange.
Meine Fragen:
Können solche Datenmengen sinnvoll verarbeitet ohne die Rechenzeit unendlich in die Höhe zu treiben?
Welche Einstellungen könnte ich vornehmen um die Rechenzeit zu verringern? Ich habe z.B. anstatt RPROP mal die standard BP ohne loopback gewählt und die Rechenzeit und der Net Error haben sich (wider erwarten) deutlich verbessert.
Gibt es eine bestimmte Systemleistung die nötig ist für dieses Problem? Ich hätte notfalls auch die Möglichkeit das irgendwie auf einem Server laufen zu lassen.
Vielen Dank schon einmal für hilfreiche Hinweise.
Rechenzeit
Re: Rechenzeit
Hallo,
Dagegen ist prinzipiell erst einmal nichts zu machen. Ob die Zeiten akzeptabel sind, muss man im Einzelfall entscheiden.
Die Aufteilung der Netzberechnung auf mehrere Kerne ist problematisch, da die Berechnung im NN immer schichtweise durchgeführt werden muss. Aus diesem Grund können nicht mehrere Kerne beliebig 'vor sich hin rechnen'. Sie müssen in jedem Layer des Netzes permanent aufeinander warten, bis alle Neuronen des Layers berechnet sind. Diese Synchronisation macht eine feste Aufteilung des Netzes auf mehrere Kerne ineffizient und in aller Regel langsamer als mit nur einem Kern. Ich arbeite hier allerdings an einem neuen Ansatz, der erfolgversprechender ist, so dass MemBrain in naher Zukunft hoffentlich alle Kerne voll nutzen kann.
Viele Grüße
So lange der Rechner ausreichend RAM hat (also nicht auf die Platte swappen muss), sollte die Rechenzeit linear mit der Anzahl der Trainingsmuster steigen.Toddster wrote:Können solche Datenmengen sinnvoll verarbeitet ohne die Rechenzeit unendlich in die Höhe zu treiben?
Dagegen ist prinzipiell erst einmal nichts zu machen. Ob die Zeiten akzeptabel sind, muss man im Einzelfall entscheiden.
Ausreichendes RAM vorausgesetzt, ist die Taktrate des Prozessors entscheidend. Die Anzahl der Kerne ist zweitranging. Es sollte zwar mehr als einer sein, da MemBrain schon mehrere Threads am laufen hat. Allerdings findet die eigentliche Berechnung in einem einzigen Thread statt, so dass immer nur ein Kern voll ausgelastet wird.Toddster wrote:Gibt es eine bestimmte Systemleistung die nötig ist für dieses Problem?
Die Aufteilung der Netzberechnung auf mehrere Kerne ist problematisch, da die Berechnung im NN immer schichtweise durchgeführt werden muss. Aus diesem Grund können nicht mehrere Kerne beliebig 'vor sich hin rechnen'. Sie müssen in jedem Layer des Netzes permanent aufeinander warten, bis alle Neuronen des Layers berechnet sind. Diese Synchronisation macht eine feste Aufteilung des Netzes auf mehrere Kerne ineffizient und in aller Regel langsamer als mit nur einem Kern. Ich arbeite hier allerdings an einem neuen Ansatz, der erfolgversprechender ist, so dass MemBrain in naher Zukunft hoffentlich alle Kerne voll nutzen kann.
Viele Grüße
Thomas Jetter
Re: Rechenzeit
Ausreichend viel RAM ist wirklich Gold wert. Die Erfahrung musste ich auch schon machen.TJetter wrote: So lange der Rechner ausreichend RAM hat (also nicht auf die Platte swappen muss), sollte die Rechenzeit linear mit der Anzahl der Trainingsmuster steigen.