Künstliche Intelligenz mit Java
Maschinelles Lernen mit Neuronalen Netzwerken

Jetzt braucht man eine Möglichkeit, um das Training zu beobachten:

public class ProcessMonitoring {

  public static double lastOutputAsSum;
  public static double lastOutputWithActivationFunction;
  public static double[] lastWeights;

}

Mit diesen Klassenattributs-Werten können die folgenden Fragen beantwortet werden:

  • Wie war die letzte Ausgangs-Berechnung, aufgeschlüsselt in eine reine Summenbildung und in eine darauf anschließende Aktivierung?
  • Wie sind zurzeit die Gewichte des Neurons (inkl. Bias) eingestellt?

Jetzt fehlen nur noch 2 Klassen. Eine (MachineLearningMain), um das Training zu formulieren, eine (MachineLearning), um das Maschinelle Lernen via Supervised Learning zu ermöglichen.

Zuerst wird das Training implementiert:

/**
 * @version 4.0 / 17.10.2020
 * @author  Dr. Albrecht Ehlert
 */

public class MachineLearningMain {

  public static void main(String[] args) {

    MachineLearning machineLearning = new MachineLearning();
    machineLearning.showWeights();
    machineLearning.testAllInputsAndShowResults();
    machineLearning.trainWithSupervisedLearning();
    machineLearning.showWeights();
    machineLearning.testAllInputsAndShowResults();

  }

}

Am Anfang des Trainings sollen die zufällig gesetzten Gewichte (inkl. Bias) und für alle möglichen Eingangskombinationen die jeweilige Ausgangsgröße ausgegeben werden. Danach wird das Training durchgeführt und am Ende des Trainings sollen die neu justierten Gewichte und alle (hoffentlich richtigen) Ausgangssignale für alle Eingangskombinationen angezeigt werden.

- 16 -