Path: blob/master/site/pt-br/tensorboard/hyperparameter_tuning_with_hparams.ipynb
25115 views
Copyright 2019 The TensorFlow Authors.
Tunagem de hiperparâmetros com o painel de controle HParams
Ao criar modelos de aprendizado de máquina, você precisa escolher vários hiperparâmetros, como a taxa de dropout em uma camada ou a taxa de aprendizado. Essas decisões afetam as métricas dos modelos, como exatidão. Portanto, um passo importante no fluxo de trabalho do aprendizado de máquina é identificar os melhores hiperparâmetros para seu problema, o que geralmente envolve experimentação. Esse processo é conhecido como "otimização de hiperparâmetros" ou "tunagem de hiperparâmetros".
O painel de controle HParams no TensorBoard oferece várias ferramentas para ajudar com esse processo de identificar o melhor experimento ou os conjuntos mais promissores de hiperparâmetros.
Este tutorial focará nas seguintes etapas:
Testar a configuração e o resumo do HParams
Adaptar as execuções do TensorFlow para registrar hiperparâmetros e métricas
Iniciar as execuções e registrar todas elas em um diretório pai
Visualizar os resultados no painel de controle HParams do TensorBoard
Observação: as APIs de resumo do HParams e a interface de usuário do painel de controle estão em fase de prévia e mudarão ao longo do tempo.
Comece instalando o TF 2.0 e carregando a extensão de notebook do TensorBoard:
Importe o TensorFlow e o plugin HParams do TensorBoard:
Baixe e dimensione o dataset FashionMNIST:
1. Teste a configuração e o resumo do experimento HParams
Teste três hiperparâmetros no modelo:
Número de unidades na primeira camada densa
Taxa de dropout na camada de dropout
Otimizador
Liste os valores que serão testados e registre uma configuração de experimento para o TensorBoard. Esse passo é opcional: você pode oferecer informações de domínio para permitir uma filtragem mais precisa de hiperparâmetros na interface do usuário e também é possível especificar quais métricas devem ser exibidas.
Se você decidir pular essa etapa, poderá utilizar um literal de string onde usaria um valor HParam
: por exemplo, hparams['dropout']
em vez de hparams[HP_DROPOUT]
.
2. Adapte as execuções do TensorFlow para registrar hiperparâmetros e métricas
O modelo será bastante simples: duas camadas densas com uma camada de dropout entre elas. O código de treinamento parecerá familiar, embora os hiperparâmetros não sejam mais embutidos no código. Em vez disso, os hiperparâmetros são fornecidos em um dicionário hparams
e usados durante a função de treinamento:
Para cada execução, registre um resumo de hparams com os hiperparâmetros e a exatidão final:
Ao treinar modelos Keras, você pode usar callbacks em vez de escrever isto diretamente:
3. Inicie as execuções e registre todas elas em um diretório pai
Agora você pode fazer vários experimentos, treinando cada um com um conjunto diferente de hiperparâmetros.
Para simplificar, use uma busca em grade: teste todas as combinações de parâmetros discretos e só os limites inferiores e superiores do parâmetro real. Para cenários mais complexos, pode ser mais eficaz escolher cada valor de hiperparâmetro aleatoriamente (isso é chamado de busca aleatória). Há métodos mais avançados que podem ser usados.
Execute alguns experimentos, o que levará alguns minutos:
4. Visualize os resultados no plugin HParams do TensorBoard
O painel de controle HParams já pode ser aberto. Inicie o TensorBoard e clique em "HParams" na parte superior.
A janela à esquerda do painel de controle fornece capacidades de filtragem que ficam ativas em todas as visualizações no painel de controle HParams:
Filtre quais hiperparâmetros/métricas são exibidos no painel de controle
Filtre quais valores de hiperparâmetros/métricas são exibidos no painel de controle
Filtre pelo status da execução (em andamento, sucesso...)
Classifique por hiperparâmetro/métrica na visualização de tabela
Número de grupos de sessão exibidos (útil para o desempenho quando há vários experimentos)
O painel de controle HParams tem três visualizações diferentes, com várias informações úteis:
A Table View (Visualização de tabela) lista as execuções, os hiperparâmetros e as métricas.
A Parallel Coordinates View (Visualização de coordenadas paralelas) mostra cada execução como uma linha que percorre um eixo para cada hiperparâmetro e métrica. Clique e arraste o mouse em qualquer eixo para marcar uma região, destacando somente as execuções que passarem por ela. Isso pode ser útil para identificar quais grupos de hiperparâmetros são mais importantes. Os próprios eixos podem ser reordenados ao soltá-los.
A Scatter Plot View (Visualização de plotagem de dispersão) mostra plotagens que comparam cada hiperparâmetro/métrica a cada métrica. Isso pode ajudar a identificar correlações. Clique e arraste para selecionar uma região em uma plotagem específica e destacar essas sessões em todas as outras plotagens.
É possível clicar em uma linha da tabela, uma linha das coordenadas paralelas e um mercado da plotagem de dispersão para ver uma plotagem das métricas como uma função dos passos de treinamento para essa sessão (embora neste tutorial somente um passo seja usado para cada execução).
Para explorar ainda mais as capacidades do painel de controle HParams, baixe um conjunto de logs pré-gerados com mais experimentos:
Veja esses logs no TensorBoard:
Você pode testar as diferentes visualizações no painel de controle HParams.
Por exemplo, ao acessar a visualização de coordenadas paralelas e clicar e arrastar o eixo de exatidão, você pode selecionar as execuções com maior exatidão. Conforme essas execuções passarem por "adam" no eixo de otimizador, você pode concluir que o "adam" teve um melhor desempenho do que "sgd" nesses experimentos.