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

Ver Curso

Instruções de exercício

  • Importar SGD de tensorflow.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.01 e 1.

  • Usando um loop for para iterar sobre lr_to_test:

    • Use a função get_new_model() para criar um modelo novo e não otimizado.

    • Crie um otimizador chamado my_optimizer usando o construtor SGD() com o argumento de palavra-chave lr=lr.

    • Compile seu modelo. Defina o parâmetro optimizer como o objeto SGD que você criou acima e, como esse é um problema de classificação, use 'categorical_crossentropy' para o parâmetro loss.

    • Ajuste seu modelo usando os sites predictors e target.

Exercício interativo prático

Experimente este exercício preenchendo 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
    ____