Mehrfache Aktualisierungen der Gewichte
Nun wirst du mehrere Aktualisierungsschritte durchführen, um deine Modellgewichte deutlich zu verbessern und zu sehen, wie sich die Vorhersagen mit jedem Update verbessern.
Um den Code übersichtlich zu halten, gibt es eine vorab geladene Funktion get_slope(), die input_data, target und weights als Argumente entgegennimmt. Es gibt auch die Funktion get_mse(), die dieselben Argumente verwendet. input_data, target und weights wurden bereits vorab geladen.
Dieses Netzwerk hat keine versteckten Schichten und geht direkt von der Eingabe (mit drei Knoten) zu einem Ausgabeknoten. Beachte, dass weights ein einzelnes Array ist.
Außerdem wurde matplotlib.pyplot vorab geladen, und der Fehlerverlauf wird geplottet, nachdem du deine Gradient-Descent-Schritte ausgeführt hast.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
- Verwende eine
for-Schleife, um die Gewichte iterativ zu aktualisieren:- Berechne die Steigung mit der Funktion
get_slope(). - Aktualisiere die Gewichte mit einer Lernrate von
0.01. - Berechne die mittlere quadratische Abweichung (
mse) mit den aktualisierten Gewichten mithilfe der Funktionget_mse(). - Hänge
mseanmse_histan.
- Berechne die Steigung mit der Funktion
- Klicke auf "Antworten", um
mse_histzu visualisieren. Welchen Trend erkennst du?
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
n_updates = 20
mse_hist = []
# Iterate over the number of updates
for i in range(n_updates):
# Calculate the slope: slope
slope = ____(____, ____, ____)
# Update the weights: weights
weights = ____ - ____ * ____
# Calculate mse with new weights: mse
mse = ____(____, ____, ____)
# Append the mse to mse_hist
____
# Plot the mse history
plt.plot(mse_hist)
plt.xlabel('Iterations')
plt.ylabel('Mean Squared Error')
plt.show()