Path: blob/master/site/pt-br/tutorials/keras/keras_tuner.ipynb
25118 views
Copyright 2020 The TensorFlow Authors.
Introdução ao Keras Tuner
Visão geral
O Keras Tuner é uma biblioteca que ajuda a escolher o conjunto ideal de hiperparâmetros do seu programa TensorFlow. O processo de seleção do conjunto certo de hiperparâmetros para sua aplicação de aprendizado de máquina é chamado de tunagem de hiperparâmetros ou hipertunagem.
Os hiperparâmetros são as variáveis que governam o processo de treinamento e a topologia de modelos de aprendizado de máquina. Essas variáveis permanecem constantes durante o processo de treinamento e impactam diretamente o programa de aprendizado de máquina. Há dois tipos de hiperparâmetros:
Hiperparâmetros do modelo, que influenciam a seleção do modelo, como o número e a largura das camadas ocultas.
Hiperparâmetros do algoritmo, que influenciam a velocidade e qualidade do algoritmo de aprendizado, como a taxa de aprendizado para o Método do Gradiente Descendente Estocástico (SGD, na sigla em inglês) e o número de vizinhos mais próximos para um classificador K Vizinhos Mais Próximos (KNN, na sigla em inglês).
Neste tutorial, você usará o Keras Tuner para hipertunar uma aplicação de classificação de imagens.
Configuração
Instale e importe o Keras Tuner.
Baixar e preparar o dataset
Neste tutorial, você usará o Keras Tuner para descobrir os melhores hiperparâmetros para um modelo de aprendizado de máquina que classifica imagens de roupas do dataset Fashion MNIST.
Carregue os dados.
Definir o modelo
Quando você cria um modelo para fazer hipertunagem, também define o espaço de busca de hiperparâmetros, além da arquitetura do modelo. O modelo configurado para fazer hipertunagem é chamado de hipermodelo.
Há duas estratégias para definir um hipermodelo:
Usando uma função de construção de modelos.
Fazendo uma subclasse da classe
HyperModel
da API do Keras Tuner.
Além disso, você pude usar duas classes HyperModel pré-definidas: HyperXception e HyperResNet para aplicações de visão computacional.
Neste tutorial, você usará uma função de construção de modelos para definir o modelo de classificação de imagens. Essa função retorna um modelo compilado e usa os hiperparâmetros que você define internamente para hipertunar do modelo.
Instanciar o tuner e fazer a hipertunagem
Instancie o tuner para fazer a hipertunagem. O Keras Tuner disponibiliza quatro tuners: RandomSearch
, Hyperband
, BayesianOptimization
e Sklearn
. Neste tutorial, você usará o tuner Hyperband.
Para instanciar o tuner Hyperband, você precisa especificar o hupermodelo, o objective
(objetivo) de otimização e o número máximo de épocas para o treinamento (max_epochs
).
O algoritmo de tunagem Hyperband usa alocação adaptativa de recursos e parada antecipada para convergir rapidamente para um modelo de alto desempenho. Isso é feito usando-se chaveamento similar ao de campeonatos esportivos. O algoritmo treina uma grande quantidade de modelos com algumas épocas e prossegue somente com os 50% modelos com melhor desempenho na próxima rodada. O Hyperband determina o número de modelos a serem treinados em uma chave computando 1 + logfactor
(max_epochs
) e arredondando para o número inteiro mais próximo.
Crie um callback para interromper o treinamento antecipadamente após a perda de validação atingir um determinado valor.
Execute a busca de hiperparâmetros. Os argumentos do método de busca são os mesmos usados para tf.keras.model.fit
, além do callback acima.
Treinar o modelo
Encontre o número ideal de épocas para treinar o modelo com os hiperparâmetros obtidos pela busca.
Instancie o hipermodelo novamente e treine-o usando o número ideal de épocas acima.
Para concluir este tutorial, avalie o hipermodelo com os dados de teste.
O diretório my_dir/intro_to_kt
contém checkpoints e logs detalhados para cada tentativa (configuração do modelo) executada durante a busca de hiperparâmetros. Se você executar novamente a busca de hiperparâmetros, o Keras Tuner utilizará o estado atual usando esses logs para retomar a busca. Para desativar esse comportamento, passe o argumento adicional overwrite=True
ao instanciar o tuner.
Resumo
Neste tutorial, você aprendeu a usar o Keras Tuner para tunar os hiperparâmetros de um modelo. Para saber mais sobre o Keras Tuner, confira os seguintes recursos:
Verifique também o HParams Dashboard (Painel HParams) no TensorBoard para tunar interativamente os hiperparâmetros do seu modelo.