Meerdere updates op gewichten toepassen
Je gaat nu meerdere updates doen zodat je de modelgewichten flink kunt verbeteren en kunt zien hoe de voorspellingen met elke update beter worden.
Om je code overzichtelijk te houden, is er een vooraf geladen functie get_slope() die input_data, target en weights als argumenten neemt. Er is ook een functie get_mse() die dezelfde argumenten gebruikt. De input_data, target en weights zijn al voor je geladen.
Dit netwerk heeft geen verborgen lagen en gaat rechtstreeks van de input (met 3 nodes) naar één outputnode. Let op: weights is één enkele array.
We hebben ook matplotlib.pyplot vooraf geladen, en de foutgeschiedenis wordt geplot nadat je je gradient-descent-stappen hebt uitgevoerd.
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning in Python
Oefeninstructies
- Gebruik een
for-lus om de gewichten iteratief bij te werken:- Bereken de helling met de functie
get_slope(). - Werk de gewichten bij met een leersnelheid van
0.01. - Bereken de mean squared error (
mse) met de bijgewerkte gewichten met behulp van de functieget_mse(). - Voeg
msetoe aanmse_hist.
- Bereken de helling met de functie
- Klik op "Antwoord verzenden" om
mse_histte visualiseren. Welke trend valt je op?
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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()