Actualizar varias veces los pesos

Ahora vas a realizar varias actualizaciones para mejorar drásticamente los pesos de tu modelo y ver cómo mejoran las predicciones con cada actualización.

Para mantener limpio tu código, hay una función precargada get_slope() que toma como argumentos input_data, target y weights. También existe una función get_mse() que toma los mismos argumentos. Se han precargado las páginas input_data, target y weights.

Esta red no tiene capas ocultas, y va directamente de la entrada (con 3 nodos) a un nodo de salida. Ten en cuenta que weights es una única matriz.

También hemos precargado matplotlib.pyplot, y el historial de errores se trazará después de que hayas realizado tus pasos de descenso gradiente.

Este ejercicio forma parte del curso

Introducción al Aprendizaje Profundo en Python

Ver curso

Instrucciones de ejercicio

  • Utilizando un bucle for para actualizar iterativamente los pesos:
    • Calcula la pendiente utilizando la función get_slope().
    • Actualiza los pesos utilizando una tasa de aprendizaje de 0.01.
    • Calcula el error cuadrático medio (mse) con las ponderaciones actualizadas utilizando la función get_mse().
    • Añade mse a mse_hist.
  • Pulsa "Enviar respuesta" para visualizar mse_hist. ¿Qué tendencia observas?

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

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()