Künstliche Intelligenz mit Java
Maschinelles Lernen mit Neuronalen Netzwerken

 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 -