fork download
  1. import numpy as np
  2. from itertools import product # To generate all binary combinations
  3.  
  4. # Initialisierung der Schwellenwerte
  5. lower_threshold = 0.8
  6. upper_threshold = 1.2
  7.  
  8. # Lernrate
  9. learning_rate = 0.1
  10.  
  11. # Trainingsdaten (Inputs für das XOR-Problem und andere)
  12. inputs = [[0, 0], [0, 1], [1, 0], [1, 1]]
  13.  
  14. # Alle möglichen Zieltabellen (16 Kombinationen)
  15. all_possible_targets = list(product([0, 1], repeat=4))
  16.  
  17. # Trainingsloop für jede mögliche Zieltabelle
  18. for table_index, targets in enumerate(all_possible_targets, start=1):
  19. print(f"\n=== Wahrheitstabelle {table_index}: Targets = {targets} ===")
  20.  
  21. # Trainingsloop mit max. 1000 Iterationen
  22. max_iterations = 1000
  23. epoch = 0
  24. network_trained = False
  25. start_weights = None
  26. final_weights = None
  27. all_epoch_outputs = [] # Store outputs of all epochs for debugging and transparency
  28.  
  29. while epoch < max_iterations:
  30. epoch += 1
  31. all_correct = True # Flag, um zu überprüfen, ob alle Ausgaben korrekt sind
  32. current_weights = np.random.rand(2) # Zufällige Startgewichte
  33.  
  34. if epoch == 1: # Die erste Iteration nach Initialisierung
  35. start_weights = current_weights # Speichere die Startgewichte
  36.  
  37. epoch_outputs = [] # To store outputs of this epoch
  38.  
  39. for input_vector, target in zip(inputs, targets):
  40. # Berechnung der gewichteten Summe
  41. weighted_sum = np.dot(input_vector, current_weights)
  42.  
  43. # Aktivierungsfunktion (einfache Schwellenwertfunktion)
  44. output = 1 if lower_threshold < weighted_sum < upper_threshold else 0
  45.  
  46. # Fehlerberechnung
  47. error = target - output
  48.  
  49. # Wenn ein Fehler vorliegt, dann weise die Gewichte an
  50. if error != 0:
  51. all_correct = False
  52. current_weights += learning_rate * error * np.array(input_vector)
  53.  
  54. epoch_outputs.append((input_vector, output, target)) # Save each iteration's output
  55.  
  56. all_epoch_outputs.append(epoch_outputs)
  57.  
  58. # Überprüfe, ob alle Ausgaben korrekt sind
  59. if all_correct:
  60. network_trained = True
  61. final_weights = current_weights # Speichere die finalen Gewichte
  62. break # Stoppe, wenn alle Ausgaben korrekt sind
  63.  
  64. # Wenn Tabelle nach 100 Iterationen nicht gelernt wurde, setze neue zufällige Startgewichte
  65. if epoch % 100 == 0:
  66. print(f"Nicht funktionierende Startgewichte: {start_weights}")
  67. start_weights = np.random.rand(2) # Setze neue Startgewichte
  68.  
  69. if network_trained:
  70. print(f"Das Netzwerk hat Wahrheitstabelle {table_index} korrekt nach {epoch} Iterationen gelernt.")
  71. print(f"Die Working Startgewichte waren: {start_weights}")
  72. print(f"Die finalen Gewichte sind: {final_weights}")
  73. else:
  74. print(f"Das Netzwerk hat Wahrheitstabelle {table_index} nach {epoch} Iterationen nicht korrekt gelernt.")
  75. print("\nFinal Test Output übersprungen, da das Netzwerk nicht gelernt hat.")
  76. continue # Skip final testing if the network didn't learn the truth table
  77.  
  78. # Testen des Netzwerks nach den Lern-Iterationen
  79. print("\nFinal Test Output:")
  80. for input_vector, target in zip(inputs, targets):
  81. weighted_sum = np.dot(input_vector, final_weights)
  82. output = 1 if lower_threshold < weighted_sum < upper_threshold else 0
  83. print(f"Input: {input_vector}, Target: {target}, Output: {output}")
  84.  
  85. # Optionally, print out the outputs of each epoch for transparency
  86. print("\nEpoch Outputs:")
  87. for epoch_index, epoch_outputs in enumerate(all_epoch_outputs):
  88. print(f"Epoch {epoch_index + 1}:")
  89. for input_vector, output, target in epoch_outputs:
  90. print(f" Input: {input_vector}, Output: {output}, Target: {target}")
  91.  
Success #stdin #stdout 0.85s 29240KB
stdin
Standard input is empty
stdout
=== Wahrheitstabelle 1: Targets = (0, 0, 0, 0) ===
Das Netzwerk hat Wahrheitstabelle 1 korrekt nach 1 Iterationen gelernt.
Die Working Startgewichte waren: [0.22790717 0.36143724]
Die finalen Gewichte sind: [0.22790717 0.36143724]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 2: Targets = (0, 0, 0, 1) ===
Das Netzwerk hat Wahrheitstabelle 2 korrekt nach 7 Iterationen gelernt.
Die Working Startgewichte waren: [0.82372734 0.85503543]
Die finalen Gewichte sind: [0.6003014  0.30151549]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 1, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 1
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 3: Targets = (0, 0, 1, 0) ===
Das Netzwerk hat Wahrheitstabelle 3 korrekt nach 3 Iterationen gelernt.
Die Working Startgewichte waren: [0.51749313 0.3175761 ]
Die finalen Gewichte sind: [0.84588288 0.47888374]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 4: Targets = (0, 0, 1, 1) ===
Das Netzwerk hat Wahrheitstabelle 4 korrekt nach 3 Iterationen gelernt.
Die Working Startgewichte waren: [0.70444754 0.86578686]
Die finalen Gewichte sind: [0.82869061 0.33125415]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 0, Output: 0
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 1
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 0
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 5: Targets = (0, 1, 0, 0) ===
Das Netzwerk hat Wahrheitstabelle 5 korrekt nach 10 Iterationen gelernt.
Die Working Startgewichte waren: [0.23469136 0.52231279]
Die finalen Gewichte sind: [0.50962206 0.86709554]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 0
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 6: Targets = (0, 1, 0, 1) ===
Das Netzwerk hat Wahrheitstabelle 6 korrekt nach 1 Iterationen gelernt.
Die Working Startgewichte waren: [0.07945515 0.92948662]
Die finalen Gewichte sind: [0.07945515 0.92948662]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 0, Output: 0
Input: [1, 1], Target: 1, Output: 1

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 0
  Input: [1, 1], Output: 1, Target: 1

=== Wahrheitstabelle 7: Targets = (0, 1, 1, 0) ===
Das Netzwerk hat Wahrheitstabelle 7 korrekt nach 11 Iterationen gelernt.
Die Working Startgewichte waren: [0.41160279 0.86001448]
Die finalen Gewichte sind: [0.95036472 0.91773943]

Final Test Output:
Input: [0, 0], Target: 0, Output: 0
Input: [0, 1], Target: 1, Output: 1
Input: [1, 0], Target: 1, Output: 1
Input: [1, 1], Target: 0, Output: 0

Epoch Outputs:
Epoch 1:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 2:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 3:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 4:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 5:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 6:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 7:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 8:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 9:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 0, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 0, Target: 0
Epoch 10:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 0, Target: 1
  Input: [1, 1], Output: 1, Target: 0
Epoch 11:
  Input: [0, 0], Output: 0, Target: 0
  Input: [0, 1], Output: 1, Target: 1
  Input: [1, 0], Output: 1, Target: 1
  Input: [1, 1], Output: 0, Target: 0

=== Wahrheitstabelle 8: Targets = (0, 1, 1, 1) ===
Nicht funktionierende Startgewichte: [0.26828676 0.58230744]
Nicht funktionierende Startgewichte: [0.11451431 0.75797703]
Nicht funktionierende Startgewichte: [0.24021069 0.5632595 ]
Nicht funktionierende Startgewichte: [0.72504432 0.2893505 ]
Nicht funktionierende Startgewichte: [0.60986015 0.6260188 ]
Nicht funktionierende Startgewichte: [0.17235312 0.65364134]
Nicht funktionierende Startgewichte: [0.7783718 0.3985945]
Nicht funktionierende Startgewichte: [0.24734871 0.16756609]
Nicht funktionierende Startgewichte: [0.52038719 0.78206717]
Nicht funktionierende Startgewichte: [0.51553879 0.77915737]
Das Netzwerk hat Wahrheitstabelle 8 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 9: Targets = (1, 0, 0, 0) ===
Nicht funktionierende Startgewichte: [0.62394962 0.09846077]
Nicht funktionierende Startgewichte: [0.26935456 0.40806367]
Nicht funktionierende Startgewichte: [0.58433364 0.30875586]
Nicht funktionierende Startgewichte: [0.14684539 0.54186043]
Nicht funktionierende Startgewichte: [0.89670688 0.8467174 ]
Nicht funktionierende Startgewichte: [0.41791862 0.35832983]
Nicht funktionierende Startgewichte: [0.72798037 0.56229347]
Nicht funktionierende Startgewichte: [0.49623814 0.82431809]
Nicht funktionierende Startgewichte: [0.63951659 0.87543638]
Nicht funktionierende Startgewichte: [0.72383946 0.35624161]
Das Netzwerk hat Wahrheitstabelle 9 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 10: Targets = (1, 0, 0, 1) ===
Nicht funktionierende Startgewichte: [0.17104383 0.65284909]
Nicht funktionierende Startgewichte: [0.33907713 0.27524086]
Nicht funktionierende Startgewichte: [0.40607845 0.40770612]
Nicht funktionierende Startgewichte: [0.98668333 0.38226382]
Nicht funktionierende Startgewichte: [0.06896737 0.32363165]
Nicht funktionierende Startgewichte: [0.20218607 0.21474402]
Nicht funktionierende Startgewichte: [0.84933491 0.6904219 ]
Nicht funktionierende Startgewichte: [0.56035786 0.81310613]
Nicht funktionierende Startgewichte: [0.79763297 0.14288962]
Nicht funktionierende Startgewichte: [0.25691467 0.52752845]
Das Netzwerk hat Wahrheitstabelle 10 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 11: Targets = (1, 0, 1, 0) ===
Nicht funktionierende Startgewichte: [0.67324681 0.82902388]
Nicht funktionierende Startgewichte: [0.34431202 0.80116454]
Nicht funktionierende Startgewichte: [0.1760659  0.69992398]
Nicht funktionierende Startgewichte: [0.41596374 0.16807873]
Nicht funktionierende Startgewichte: [0.96755604 0.91623654]
Nicht funktionierende Startgewichte: [0.02452324 0.98500133]
Nicht funktionierende Startgewichte: [0.04353669 0.57322913]
Nicht funktionierende Startgewichte: [0.00653284 0.92730483]
Nicht funktionierende Startgewichte: [0.11957281 0.54965692]
Nicht funktionierende Startgewichte: [0.48013518 0.50289694]
Das Netzwerk hat Wahrheitstabelle 11 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 12: Targets = (1, 0, 1, 1) ===
Nicht funktionierende Startgewichte: [0.83214544 0.11394236]
Nicht funktionierende Startgewichte: [0.02835058 0.54037982]
Nicht funktionierende Startgewichte: [0.04050967 0.40481916]
Nicht funktionierende Startgewichte: [0.2615761  0.37272525]
Nicht funktionierende Startgewichte: [0.78793318 0.67703009]
Nicht funktionierende Startgewichte: [0.22811535 0.4678637 ]
Nicht funktionierende Startgewichte: [0.25332524 0.02576475]
Nicht funktionierende Startgewichte: [0.47022222 0.2622524 ]
Nicht funktionierende Startgewichte: [0.04103436 0.44336665]
Nicht funktionierende Startgewichte: [0.40035332 0.74863901]
Das Netzwerk hat Wahrheitstabelle 12 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 13: Targets = (1, 1, 0, 0) ===
Nicht funktionierende Startgewichte: [0.45114451 0.80502188]
Nicht funktionierende Startgewichte: [0.91142577 0.90360162]
Nicht funktionierende Startgewichte: [0.10474231 0.65558062]
Nicht funktionierende Startgewichte: [0.54479864 0.49911424]
Nicht funktionierende Startgewichte: [0.85035532 0.04346864]
Nicht funktionierende Startgewichte: [0.65245677 0.46703431]
Nicht funktionierende Startgewichte: [0.95697497 0.38909673]
Nicht funktionierende Startgewichte: [0.03590277 0.32475103]
Nicht funktionierende Startgewichte: [0.51826772 0.39402334]
Nicht funktionierende Startgewichte: [0.32106004 0.11350909]
Das Netzwerk hat Wahrheitstabelle 13 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 14: Targets = (1, 1, 0, 1) ===
Nicht funktionierende Startgewichte: [0.84041487 0.14444518]
Nicht funktionierende Startgewichte: [0.34979341 0.38472526]
Nicht funktionierende Startgewichte: [0.63940195 0.46331844]
Nicht funktionierende Startgewichte: [0.70855782 0.50943611]
Nicht funktionierende Startgewichte: [0.90254408 0.43417466]
Nicht funktionierende Startgewichte: [0.49605126 0.40438611]
Nicht funktionierende Startgewichte: [0.19118952 0.736472  ]
Nicht funktionierende Startgewichte: [0.34774379 0.18120428]
Nicht funktionierende Startgewichte: [0.0884385  0.70073677]
Nicht funktionierende Startgewichte: [0.49235987 0.01125372]
Das Netzwerk hat Wahrheitstabelle 14 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 15: Targets = (1, 1, 1, 0) ===
Nicht funktionierende Startgewichte: [0.85586358 0.45962821]
Nicht funktionierende Startgewichte: [0.3615768  0.84502031]
Nicht funktionierende Startgewichte: [0.29114517 0.3834739 ]
Nicht funktionierende Startgewichte: [0.54717148 0.83274315]
Nicht funktionierende Startgewichte: [0.62889378 0.09004378]
Nicht funktionierende Startgewichte: [0.08349258 0.15733097]
Nicht funktionierende Startgewichte: [0.84752044 0.52548347]
Nicht funktionierende Startgewichte: [0.77211386 0.74382798]
Nicht funktionierende Startgewichte: [0.84277685 0.40614088]
Nicht funktionierende Startgewichte: [0.8558903  0.87129214]
Das Netzwerk hat Wahrheitstabelle 15 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.

=== Wahrheitstabelle 16: Targets = (1, 1, 1, 1) ===
Nicht funktionierende Startgewichte: [1.09621983 0.79763426]
Nicht funktionierende Startgewichte: [0.06744025 0.99009843]
Nicht funktionierende Startgewichte: [0.28332392 0.55738347]
Nicht funktionierende Startgewichte: [0.85473908 0.56761766]
Nicht funktionierende Startgewichte: [0.53679163 0.28415342]
Nicht funktionierende Startgewichte: [0.55586693 0.78114635]
Nicht funktionierende Startgewichte: [0.15426793 0.53046935]
Nicht funktionierende Startgewichte: [0.3749318  0.22728675]
Nicht funktionierende Startgewichte: [0.19970016 0.3598333 ]
Nicht funktionierende Startgewichte: [0.00138117 0.76655483]
Das Netzwerk hat Wahrheitstabelle 16 nach 1000 Iterationen nicht korrekt gelernt.

Final Test Output übersprungen, da das Netzwerk nicht gelernt hat.