Cambiar los parámetros de optimización
Es hora de ensuciarse las manos con la optimización. Ahora intentarás optimizar un modelo con una tasa de aprendizaje muy baja, una tasa de aprendizaje muy alta y una tasa de aprendizaje "justa". Deberás observar los resultados después de realizar este ejercicio, recordando que un valor bajo de la función de pérdida es bueno.
Para estos ejercicios, hemos precargado los predictores y los valores objetivo de tus modelos de clasificación anteriores (predecir quién sobreviviría en el Titanic). Querrás que la optimización empiece desde cero cada vez que cambies la tasa de aprendizaje, para tener una comparación justa de cómo ha ido cada tasa de aprendizaje en tus resultados. Así que hemos creado una función get_new_model()
que crea un modelo no optimizado para optimizar.
Este ejercicio forma parte del curso
Introducción al Aprendizaje Profundo en Python
Instrucciones de ejercicio
- Importa
SGD
desdetensorflow.keras.optimizers
. - Crea una lista de ritmos de aprendizaje para intentar optimizarla llamada
lr_to_test
. Los ritmos de aprendizaje en él deben ser.000001
,0.01
, y1
. - Utilizando un bucle
for
para iterar sobrelr_to_test
:- Utiliza la función
get_new_model()
para construir un nuevo modelo no optimizado. - Crea un optimizador llamado
my_optimizer
utilizando el constructorSGD()
con el argumento de palabra clavelr=lr
. - Compila tu modelo. Configura el parámetro
optimizer
para que sea el objeto SGD que creaste anteriormente, y como se trata de un problema de clasificación, utiliza'categorical_crossentropy'
para el parámetroloss
. - Ajusta tu modelo utilizando
predictors
ytarget
.
- Utiliza la función
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____