Abbildung 14 (*Q21): Sigmoid-Aktivierungsfunktion
Abbildung 15 (*Q22): Heaviside-Aktivierungsfunktion
Zum anderen der Klasse mit den Implementierungen der einzelnen Aktivierungsfunktionen:
public class Activation {
public static double activateWithHeaviside(double sum) {
if (sum > 0)
return 1;
return 0;
}
public static double activateWithSigmoid(double sum) {
return (1 / (1 + Math.exp(-sum)));
}
}
Jetzt kann in der Methode getOutput(…) (siehe vorherige Seite) der Platzhalter "// activation function" mit Leben gefüllt werden:
switch (activationFunction) {
case HEAVISIDE:
output = Activation.activateWithHeaviside(output);
break;
case SIGMOID:
output = Activation.activateWithSigmoid(output);
break;
case ONLYSUM:
default:
break;
}
Es fehlen nur einige Verwaltungsmethoden, um die Gewichte von außen setzen bzw. auslesen zu können:
public double[] getWeights() {
return weights;
}
public double getWeights(int i) {
return weights[i];
}
public void setWeights(int i, double weight) {
weights[i] = weight;
}
Damit ist die Klasse Neuron vollständig implementiert.
- 14 -