Information Technology Reference
In-Depth Information
und so den Fehler jedes Trainingslaufes ermitteln kann. Der Fehler ist die Differenz bzw.
der Unterschied zwischen der tatsächlichen Ausgabe des neuronalen Netzes und der er-
warteten Ausgabe. Die folgenden Programmzeilen erstellen eine weitere FileInput-
Synapse und bereiten diese vor, aus der Eingabedatei die entsprechende dritte Spalte
einzulesen.
FileInputSynapse samples = new FileInputSynapse();
samples.setInputFile(new File(inputFile));
samples.setAdvancedColumnSelector("3");
trainer.setDesired(samples);
Schließlich wird der Vorgang des Trainings an sich parametrisiert. Für diesen Anwen-
dungsfall wird zunächst festgelegt, dass die Eingabedatei aus vier Reihen an Daten be-
steht. Außerdem wird definiert, dass zunächst 10.000 Trainingsläufe absolviert werden
sollen. Auch an dieser Stelle gilt es, mit den Parametern zu experimentieren, da die Wahl
der Trainings- bzw. Lernparameter wesentlich darüber entscheidet, wie erfolgreich das
neuronale Netz trainiert und damit eine Mustererkennung möglich wird.
monitor.setTrainingPatterns(4);
monitor.setTotCicles(10000);
monitor.setLearning(true);
JOONE sieht gleich mehrere Verfahren vor, das neuronale Netz zu starten. So kann man
beispielsweise die einzelnen Schichten als Hintergrundprozess in Form eines Threads ma-
nuell starten.
input.start();
hidden.start();
output.start();
trainer.start();
Nachdem nun alle Vorbereitungen abgeschlossen sind, kann der Trainingsprozess ebenfalls
als Hintergrundprozess gestartet werden. Dies kann entweder, wie oben, durch einen de-
dizierten Aufruf der start() -Methode des Trainers oder global über die go() -Methode
des neuronalen Netzes veranlasst werden. Letztere Variante zeigt die folgende Sequenz:
NeuralNet nnet = new NeuralNet()
;nnet = new NeuralNet();
nnet.addLayer(input, NeuralNet.INPUT_LAYER);
nnet.addLayer(hidden, NeuralNet.HIDDEN_LAYER);
nnet.addLayer(output, NeuralNet.OUTPUT_LAYER);
nnet.setTeacher(trainer);
Search WWH ::




Custom Search