In diesem Fall stehen die Trainingsdaten in der Klasse LogicalAndData:
public class LogicalAndData {
public static final double[][] inputs = {
{ 0, 0 },
{ 1, 0 },
{ 0, 1 },
{ 1, 1 } };
public static final double[] targets = {
0,
0,
0,
1 };
}
Jetzt sollen für ein Training alle Ausgaben angezeigt werden (siehe Abbildung 18). Denn dadurch wird der Lernprozess sehr genau und gut dokumentiert. Der erste und der letzte Ausgabenblock werden durch die Methoden showWeights() und testAllInputsAndShowResults(…) erzeugt.
Der lange Mittelblock wird durch die Methode trainWithSupervisedLearning(…) generiert.
weights incl. bias: -0.16845808819938868 -0.7935079981112905 0.7771656639659383 outputs: 0.7771656639659383 0.6087075757665497 -0.016342334145352133 -0.1848004223447408 learned in percent: 25 epoche: 1 data number: 1 error: -1.0 new weights: -0.16845808819938868 -0.7935079981112905 0.27716566396593834 epoche: 2 data number: 2 error: -1.0 new weights: -0.6684580881993887 -0.7935079981112905 -0.22283433603406166 epoche: 3 data number: 4 error: 1.0 new weights: -0.16845808819938868 -0.29350799811129047 0.27716566396593834 epoche: 4 data number: 1 error: -1.0 new weights: -0.16845808819938868 -0.29350799811129047 -0.22283433603406166 epoche: 5 data number: 1 epoche: 6 data number: 4 error: 1.0 new weights: 0.3315419118006113 0.20649200188870953 0.27716566396593834 epoche: 7 data number: 1 error: -1.0 new weights: 0.3315419118006113 0.20649200188870953 -0.22283433603406166 epoche: 8 data number: 2 error: -1.0 new weights: -0.16845808819938868 0.20649200188870953 -0.7228343360340617 epoche: 9 data number: 4 error: 1.0 new weights: 0.3315419118006113 0.7064920018887095 -0.22283433603406166 epoche: 10 data number: 4 epoche: 11 data number: 4 epoche: 12 data number: 2 error: -1.0 new weights: -0.16845808819938868 0.7064920018887095 -0.7228343360340617 … … epoche: 21 data number: 2 epoche: 22 data number: 4 error: 1.0 new weights: 0.8315419118006113 1.2064920018887095 -0.7228343360340617 epoche: 23 data number: 4 … … epoche: 29 data number: 2 epoche: 30 data number: 4 end of training weights incl. bias: 0.3315419118006113 1.2064920018887095 -1.2228343360340617 outputs: -1.2228343360340617 -0.8912924242334503 -0.016342334145352133 0.3151995776552592 learned in percent: 100 |
Abbildung 18: Dokumentation eines Trainings (Epochenanzahl = 30)
Und bitte daran denken: es wurden hier nur die Summen-Endwerte ausgegeben. Die Endwerte mit Hilfe der Heaviside-Funktion lauten 0, 0, 0, 1 und sind damit vollständig richtig!
- 21 -