Alteração dos parâmetros de otimização
É hora de você colocar a mão na massa com a otimização. Agora, você tentará otimizar um modelo com uma taxa de aprendizado muito baixa, uma taxa de aprendizado muito alta e uma taxa de aprendizado "ideal". Você deverá analisar os resultados depois de executar esse exercício, lembrando que um valor baixo para a função de perda é bom.
Para esses exercícios, pré-carregamos os preditores e os valores-alvo de seus modelos de classificação anteriores (previsão de quem sobreviveria no Titanic). Você desejará que a otimização comece do zero toda vez que alterar a taxa de aprendizagem, para oferecer uma comparação justa de como cada taxa de aprendizagem se comportou em seus resultados. Portanto, criamos uma função get_new_model() que cria um modelo não otimizado para você otimizar.
Este exercício faz parte do curso
Introdução à aprendizagem profunda em Python
Instruções do exercício
Importar
SGDdetensorflow.keras.optimizers.Crie uma lista de taxas de aprendizado para tentar otimizar com o nome
lr_to_test. As taxas de aprendizado nele devem ser.000001,0.01e1.Usando um loop
forpara iterar sobrelr_to_test:Use a função
get_new_model()para criar um modelo novo e não otimizado.Crie um otimizador chamado
my_optimizerusando o construtorSGD()com o argumento de palavra-chavelr=lr.Compile seu modelo. Defina o parâmetro
optimizercomo o objeto SGD que você criou acima e, como esse é um problema de classificação, use'categorical_crossentropy'para o parâmetroloss.Ajuste seu modelo usando os sites
predictorsetarget.
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
____