weight = 0          # Startwert
goal_pred = 0.85    # Zielvorhersage
input = 8.5         # durchn. Anzahl Fusszehen pro Spieler
alpha = 0.01        # Lernrate einstellen

for iteration in range(20):      # 20 Durchläufe
    pred = input * weight        # Voraussage
    delta = pred - goal_pred     # Abweichung bzw. Differenz vom erwarteten Ergebnis
    weight_delta = delta * input             # Abweichung in Abhängigkeit vom Eingabewert gewichten 
    weight = weight - weight_delta * alpha   # neues Gewicht einstellen = lernen mit eingestellter Lernrate 
    print("Delta: " + str(delta) + "    Prediction: " + str(pred))

print("Weight: " + str(weight))


Delta: -0.85    Prediction: 0.0
Delta: -0.23587500000000006    Prediction: 0.6141249999999999
Delta: -0.06545531249999992    Prediction: 0.7845446875000001
Delta: -0.018163849218750028    Prediction: 0.83183615078125
...
Delta: -2.9166857817841674e-10    Prediction: 0.8499999997083314
Delta: -8.093792303043301e-11    Prediction: 0.849999999919062
Delta: -2.246036689967923e-11    Prediction: 0.8499999999775396
Weight: 0.09999999999926673

Dieses Verfahren heißt Gradientenabstieg.

Last modified: Wednesday, 19 October 2022, 10:04 AM