Mehrere Aktualisierungen der Gewichte vornehmen
Jetzt machst du mehrere Aktualisierungen, um die Gewichtung deines Modells deutlich zu verbessern und zu sehen, wie sich die Vorhersagen mit jeder Aktualisierung verbessern.
Damit dein Code übersichtlich bleibt, gibt's eine vorinstallierte Funktion „ get_slope()
“, die „ input_data
“, „ target
“ und „ weights
“ als Argumente nimmt. Es gibt auch eine Funktion „ get_mse()
“, die die gleichen Argumente verwendet. Die Dateien „ input_data
“, „ target
“ und „ weights
“ sind schon drauf.
Dieses Netzwerk hat keine versteckten Schichten und geht direkt von der Eingabe (mit 3 Knoten) zu einem Ausgabeknoten. Beachte, dass „ weights
” ein einzelnes Array ist.
Wir haben auch „ matplotlib.pyplot
“ vorinstalliert, und der Fehlerverlauf wird angezeigt, sobald du die Gradientenabstiegsschritte durchgeführt hast.
Diese Übung ist Teil des Kurses
Einführung in Deep Learning mit Python
Anleitung zur Übung
Mit einer „
for
“-Schleife werden die Gewichte immer wieder aktualisiert:Berechne die Steigung mit der Funktion „
get_slope()
“.Aktualisiere die Gewichte mit einer Lernrate von
0.01
.Berechne den mittleren quadratischen Fehler (
mse
) mit den aktualisierten Gewichten mithilfe der Funktionget_mse()
.Füge
mse
anmse_hist
an.
Klick auf „Antwort senden“, um „
mse_hist
“ anzuzeigen. Welchen Trend siehst du?
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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()