Em aprendizado de máquina, o ajuste de hiperparâmetros, também conhecido como otimização de hiperparâmetros, é o problema de escolher um conjunto de hiperparâmetros ótimos para um algoritmo de aprendizado. Um hiperparâmetro é um parâmetro cujo valor controla o processo de aprendizado e deve ser configurado antes do início do treinamento, em contraste com os parâmetros do modelo, que são aprendidos durante o treinamento. O objetivo é determinar o conjunto de hiperparâmetros que produz o modelo ótimo, minimizando uma função de perda predefinida em um determinado conjunto de dados. A função objetivo recebe um conjunto de hiperparâmetros e retorna a perda associada, e a validação cruzada é frequentemente usada para estimar o desempenho de generalização e orientar o processo de seleção.
O ajuste de hiperparâmetros é distinto do treinamento do modelo. Enquanto o treinamento ajusta os pesos internos usando algoritmos de otimização como variantes do gradiente descendente estocástico ou o otimizador Adam, o ajuste opera em um nível mais alto, definindo valores para elementos como a agenda da taxa de aprendizado, o número de camadas em uma rede neural ou a força da regularização por dropout. Um ajuste eficaz é essencial para alcançar um bom desempenho, pois hiperparâmetros mal escolhidos podem levar a underfitting ou overfitting, independentemente da qualidade dos dados de treinamento ou da sofisticação da arquitetura do modelo.
Busca em grade
O método tradicional para otimização de hiperparâmetros é a busca em grade, ou varredura de parâmetros, que pesquisa exaustivamente um subconjunto definido manualmente do espaço de hiperparâmetros. Um algoritmo de busca em grade é guiado por uma métrica de desempenho, tipicamente medida por validação cruzada no conjunto de treinamento ou avaliação em um conjunto de validação separado. Como o espaço de parâmetros pode incluir valores reais ou ilimitados, limites manuais e discretização são frequentemente necessários.
Por exemplo, uma máquina de vetores de suporte com margem suave típica tem pelo menos dois hiperparâmetros: uma constante de regularização C e um hiperparâmetro de kernel γ. Ambos são contínuos, então a busca em grade seleciona um conjunto finito de valores para cada um, como C ∈ {10, 100, 1000} e γ ∈ {0,1, 0,2, 0,5, 1,0}. Em seguida, treina uma SVM com cada par (C, γ) no produto cartesiano e avalia o desempenho. A busca em grade sofre com a maldição da dimensionalidade, mas é frequentemente paralelizável de forma trivial, pois as configurações de hiperparâmetros são independentes.
Busca aleatória
A busca aleatória substitui a enumeração exaustiva pela seleção aleatória de combinações de hiperparâmetros. Ela pode ser aplicada a espaços discretos, contínuos e mistos. Uma vantagem sobre a busca em grade é que a busca aleatória pode explorar muitos mais valores para hiperparâmetros contínuos. Ela pode superar a busca em grade, especialmente quando apenas um pequeno número de hiperparâmetros afeta significativamente o desempenho final, uma situação conhecida como baixa dimensionalidade intrínseca. A busca aleatória também é trivialmente paralelizável e permite a inclusão de conhecimento prévio por meio da especificação de distribuições de amostragem. Apesar de sua simplicidade, continua sendo uma referência importante para comparar novos métodos de otimização de hiperparâmetros.
Otimização bayesiana
A otimização bayesiana é um método de otimização global para funções de caixa-preta ruidosas. Aplicada ao ajuste de hiperparâmetros, ela constrói um modelo probabilístico da função que mapeia os hiperparâmetros para o valor da função objetivo avaliado em um conjunto de validação. Ao avaliar iterativamente configurações promissoras com base no modelo atual e atualizá-lo, a otimização bayesiana visa coletar observações que revelem informações sobre a função e a localização de seu ótimo. Ela equilibra exploração (hiperparâmetros com resultados incertos) e explotação (hiperparâmetros esperados próximos do ótimo). Na prática, a otimização bayesiana frequentemente obtém melhores resultados com menos avaliações do que a busca em grade ou a busca aleatória, devido à sua capacidade de raciocinar sobre a qualidade dos experimentos antes de executá-los.
Otimização baseada em gradiente
Para algoritmos de aprendizado específicos, é possível calcular o gradiente em relação aos hiperparâmetros e otimizá-los usando descida de gradiente. O primeiro uso dessas técnicas focou em redes neurais, e os métodos foram posteriormente estendidos para modelos como máquinas de vetores de suporte e regressão logística. Uma abordagem diferencia as etapas de um algoritmo de otimização iterativo usando diferenciação automática. Trabalhos mais recentes usam o teorema da função implícita para calcular hipergradientes e propõem uma aproximação estável da inversa da Hessiana, escalando para milhões de hiperparâmetros com memória constante.
Outra abordagem treina uma hiper-rede para aproximar a função de melhor resposta, que pode lidar com hiperparâmetros discretos. Redes de autoajuste oferecem uma versão eficiente em memória ao escolher uma representação compacta para a hiper-rede. Mais recentemente, a rede de autoajuste delta (Δ-STN) melhorou isso ao reparametrizar a hiper-rede para acelerar o treinamento e obter uma melhor aproximação da Jacobiana de melhor resposta. Métodos baseados em gradiente também podem otimizar hiperparâmetros discretos adotando uma relaxação contínua, como amplamente utilizado na busca de arquiteturas neurais.
Otimização evolutiva
A otimização evolutiva é uma metodologia para otimização global de funções de caixa-preta ruidosas, usando algoritmos evolutivos para pesquisar o espaço de hiperparâmetros. Ela segue um processo inspirado na evolução biológica: criar uma população inicial de soluções aleatórias (tipicamente mais de 100 tuplas de hiperparâmetros), avaliar sua aptidão (por exemplo, precisão de validação cruzada), classificá-las por aptidão e, em seguida, gerar uma nova população por meio de seleção, cruzamento e mutação. Esse processo iterativo continua até que um critério de parada seja atendido. Os métodos evolutivos são robustos e podem lidar com espaços de busca complexos e não diferenciáveis, tornando-os adequados para ajustar hiperparâmetros em diversos modelos de aprendizado de máquina, incluindo aqueles usados em aprendizado profundo e modelos de linguagem de grande porte.
Considerações práticas
O ajuste de hiperparâmetros é uma etapa crítica no desenvolvimento de sistemas de inteligência artificial. A escolha do método depende do orçamento computacional, da dimensionalidade do espaço de hiperparâmetros e da natureza do modelo. Para modelos caros, como transformadores usados em IA generativa, a otimização bayesiana é frequentemente preferida devido à sua eficiência amostral. Para modelos mais simples ou quando recursos paralelos são abundantes, a busca aleatória ou a busca em grade podem ser suficientes. Ferramentas e estruturas para ajuste são amplamente disponíveis, e a pesquisa continua em métodos mais eficientes, incluindo aqueles que se integram a técnicas como normalização em lote e outras práticas de treinamento.