Como funciona o ajuste de hiperparâmetros - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como funciona o ajuste de hiperparâmetros

Quando você constrói sistemas complexos de machine learning, como redes neurais de deep learning, é impraticável explorar todas as combinações possíveis. O ajuste de hiperparâmetros pode acelerar sua produtividade ao testar muitas variações de um modelo. Ele procura o melhor modelo automaticamente, concentrando-se nas combinações mais promissoras de valores de hiperparâmetros dentro dos intervalos que você especificar. Para obter bons resultados, é necessário escolher os intervalos corretos a serem explorados.

Use o Guia de referência da API para entender como interagir com o ajuste de hiperparâmetros. Os exemplos nesta página podem ser encontrados nas APIs HyperParameterTuningJobConfig e ConfigHyperbandStrategy.

nota

Como o próprio algoritmo é estocástico, é possível que o modelo de ajuste de hiperparâmetros não consiga convergir para a melhor resposta. Isso pode ocorrer mesmo se a melhor combinação possível de valores estiver dentro dos intervalos que você escolher.

Ao usar a pesquisa em grade, o ajuste de hiperparâmetros escolhe combinações de valores da faixa de valores categóricos que você especifica ao criar a tarefa. Somente parâmetros categóricos são suportados ao usar a estratégia de pesquisa em grade. Não é necessário especificar o MaxNumberOfTrainingJobs. O número de trabalhos de treinamento criados pelo trabalho de sintonia será automaticamente calculado como o total de combinações categóricas distintas possíveis. Se especificado, o valor de MaxNumberOfTrainingJobs deve ser igual ao número total de combinações categóricas distintas possíveis.

Ao usar a pesquisa aleatória, o ajuste de hiperparâmetros escolhe uma combinação aleatória de valores dentro dos intervalos que você especifica para os hiperparâmetros em cada trabalho de treinamento que ele inicia. Como a escolha dos valores de hiperparâmetros não depende dos resultados de trabalhos de treinamento anteriores, você pode executar o número máximo de trabalhos de treinamento simultâneos sem afetar o desempenho do ajuste.

Para ver um exemplo de notebook que usa pesquisa aleatória, consulte Pesquisa aleatória e escalonamento de hiperparâmetros com o SageMaker XGBoost e o notebook Automatic Model Tuning.

Otimização bayesiana

A otimização bayesiana trata o ajuste de hiperparâmetros como um problema de regressão. Dado um conjunto de recursos de entrada (os hiperparâmetros), o ajuste de hiperparâmetros otimiza um modelo para a métrica escolhida. Para resolver um problema de regressão, o ajuste de hiperparâmetros faz suposições sobre quais combinações de hiperparâmetros têm mais probabilidade de obter os melhores resultados e executa trabalhos de treinamento para testar esses valores. Após testar um conjunto de valores de hiperparâmetros, o ajuste de hiperparâmetros utiliza regressão para escolher o próximo conjunto de valores de hiperparâmetros a serem testados.

O ajuste de hiperparâmetros usa uma SageMaker implementação da Amazon de otimização bayesiana.

Ao escolher os melhores hiperparâmetros para o próximo trabalho de treinamento, o ajuste de hiperparâmetros considera tudo o que sabe sobre esse problema até o momento. Às vezes, ele escolhe uma combinação de valores de hiperparâmetros próxima da combinação que resultou no melhor trabalho de treinamento anterior para melhorar o desempenho de forma incremental. Isso permite que o ajuste de hiperparâmetros explore os resultados mais conhecidos. Outras vezes, ele escolhe um conjunto de valores de hiperparâmetros bem distantes daqueles que tentou. Isso permite explorar o intervalo de valores de hiperparâmetros para tentar encontrar novas áreas que ainda não são bem-compreendidas. A compensação de explorar/aproveitar é comum em muitos problemas de machine learning.

Para obter mais informações sobre a otimização bayesiana, consulte o seguinte:

Hyperband

Hyperband é uma estratégia de ajuste baseada em multifidelidade que realoca recursos dinamicamente. O Hyperband usa os resultados intermediários e finais dos trabalhos de treinamento para realocar épocas para configurações de hiperparâmetros bem utilizadas e interrompe automaticamente aquelas com desempenho inferior. Também se adapta perfeitamente ao uso de muitos trabalhos de treinamento paralelos. Esses recursos podem acelerar significativamente o ajuste de hiperparâmetros em relação às estratégias de busca aleatória e otimização bayesiana.

O Hyperband só deve ser usada para ajustar algoritmos iterativos que publicam resultados em diferentes níveis de recursos. Por exemplo, o Hyperband pode ser usado para ajustar uma rede neural para classificação de imagens que publica métricas de precisão após cada época.

Para obter mais informações sobre Hyperband, consulte os seguintes links:

Hyperband com interrupção antecipada

Os trabalhos de treinamento podem ser interrompidos antecipadamente quando é improvável que melhorem a métrica objetiva do trabalho de ajuste de hiperparâmetros. Isso pode ajudar a reduzir o tempo de computação e evitar o ajuste excessivo do modelo. O Hyperband usa um mecanismo interno avançado para aplicar a interrupção antecipada. Portanto, o parâmetro TrainingJobEarlyStoppingType na API HyperParameterTuningJobConfig deve ser definido como OFF ao usar o recurso interno de interrupção antecipada do Hyperband.

nota

O ajuste de hiperparâmetros pode não melhorar seu modelo. É uma ferramenta avançada para construir soluções de máquinas. Como tal, deve ser considerado parte do processo de desenvolvimento científico.