4.5. Implementierung des Neuronalen Feed-Forward-Netzwerkes
Die Klassen Neuron, Activation und ActivationFunction werden 1:1 aus Kapitel 3.4. übernommen.
Die Klasse TrainingParameter ändert sich wie folgt:
public class TrainingParameter {
public static final int numberOfEpochs = ...;
public static final double learningRate = ...;
public static final ActivationFunction activationFunction = ...;
public static final double faultTolerance = ...; // new
public static final double[][] inputs = ...;
public static final double[][] targets = ...; // new
public static final double[][] weightsOfHiddenLayer = ...; // new
public static final double[][] weightsOfOutputLayer = ...; // new
public static final boolean isBiasBackPropagationDesired = ...; // new
}
Es kommt eine statische Konstante faultTolerance hinzu, die angibt, wie nah der reale Output am Ziel (target) sein muss, damit das Training als erfolgreich gilt. Das Feld für die Ziele (targets) ist jetzt zwei- statt eindimensional, weil ja im Output-Layer mehr als ein Neuron vorhanden sein kann. Für den seltenen Fall, dass die Gewichte nicht zufällig gesetzt werden sollen, sondern Teil der Trainingsparameter sind, werden die beiden zweidimensionalen Felder weightsOfHiddenLayer und weightsOfOutputLayer vorgesehen. Für den überwiegenden Teil der Anwendungsfälle zeigen die Felder aber auf null. Mindestens genauso selten ist der Fall, dass das Bias-Gewicht nicht in den Backpropagation-Prozess mit eingebunden werden soll. Für fast alle Anwendungsfälle wird daher die statische Konstante isBiasBackPropagationDesired auf true gesetzt.
- 38 -