Alterando parâmetros de otimização
Hora de colocar a mão na massa com otimização. Agora você vai testar a otimização de um modelo com uma taxa de aprendizado muito baixa, uma muito alta e uma “na medida certa”. Depois de executar este exercício, observe os resultados, lembrando que valores baixos para a função de perda são desejáveis.
Para estes exercícios, já carregamos os preditores e os valores-alvo dos seus modelos de classificação anteriores (prevendo quem sobreviveria no Titanic). Você vai querer que a otimização comece do zero sempre que mudar a taxa de aprendizado, para comparar de forma justa como cada taxa se saiu nos resultados. Por isso, criamos a função get_new_model() que cria um modelo não otimizado para você otimizar.
Este exercício faz parte do curso
Introdução a Deep Learning em Python
Instruções do exercício
- Importe
SGDdetensorflow.keras.optimizers. - Crie uma lista de taxas de aprendizado para testar chamada
lr_to_test. As taxas de aprendizado devem ser.000001,0.01e1. - Usando um loop
forpara iterar sobrelr_to_test:- Use a função
get_new_model()para construir um novo modelo não otimizado. - Crie um otimizador chamado
my_optimizerusando o construtorSGD()com o argumento nomeadolr=lr. - Compile seu modelo. Defina o parâmetro
optimizercomo o objeto SGD criado acima e, como este é um problema de classificação, use'categorical_crossentropy'para o parâmetroloss. - Treine seu modelo usando
predictorsetarget.
- Use a função
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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
____