Publicado em: 23 de julho de 2024
Colaboradores: Ivan Belcic, Cole Stryker

O que é ajuste de hiperparâmetros?

O ajuste de hiperparâmetros é a identificação e seleção de variáveis usadas no treinamento de modelos de machine learning, tem como foco obter um melhor desempenho dos modelos em suas tarefas.

Quando realizado corretamente, o ajuste de hiperparâmetros minimiza a função de perda de um modelo de aprendizado de máquina, o que significa que o desempenho do modelo é treinado para ser o mais preciso possível. 

O ajuste de hiperparâmetros é uma prática experimental em que cada iteração testa diferentes valores de hiperparâmetros até que os melhores sejam identificados. Esse processo é crítico para o desempenho do modelo, pois os hiperparâmetros regem seu processo de aprendizado.

A quantidade de neurônios em uma rede neural, a taxa de aprendizado de um modelo de IA generativa e o tamanho do kernel de uma máquina de vetores de suporte são exemplos de hiperparâmetros. 

Um bom ajuste de hiperparâmetros significa um desempenho geral mais sólido do modelo de aprendizado de máquina de acordo com as métricas da tarefa pretendida. É por isso que o ajuste de hiperparâmetros também é conhecido como otimização de hiperparâmetros.

O que são hiperparâmetros?

Os hiperparâmetros são variáveis de configuração que os cientistas de dados definem com antecedência para gerenciar o processo de treinamento de um modelo de aprendizado de máquina.

A IA generativa e outros modelos probabilísticos aplicam seus aprendizados dos dados de treinamento para prever o resultado mais provável de uma tarefa. Encontrar a combinação certa de hiperparâmetros é essencial para obter o melhor desempenho dos modelos de aprendizado supervisionado e aprendizado não supervisionado.

Hiperparâmetros de regularização

Os hiperparâmetros de regularização controlam a capacidade ou a flexibilidade do modelo, que é a margem de manobra que ele tem ao interpretar dados.

Aplique uma mão muito leve, e o modelo não será capaz de ser específico o suficiente para fazer boas previsões. Vá longe demais e o modelo sofrerá com o sobreajuste: quando ele se adapta demais aos dados de treinamento e acaba sendo um nicho demasiado para uso no mundo real. 

Hiperparâmetros versus parâmetros do modelo

A principal diferença entre hiperparâmetros e parâmetros do modelo na ciência de dados é que, enquanto os modelos aprendem ou estimam parâmetros dos conjuntos de dados de treinamento que ingerem, os cientistas de dados definem os hiperparâmetros para o algoritmo do modelo antes do início do processo de treinamento.

Os modelos continuam a atualizar os parâmetros à medida que trabalham, enquanto os valores ideais dos hiperparâmetros de um modelo são identificados e definidos com antecedência.

Por que o ajuste de hiperparâmetros é importante?

O ajuste de hiperparâmetros é importante porque estabelece as bases para a estrutura, a eficiência do treinamento e o desempenho de um modelo. As configurações ideais de hiperparâmetros levam a um sólido desempenho do modelo no mundo real.

As operações de grandes modelos de linguagem (LLMOps) enfatizam o aspecto da eficiência de um bom ajuste, com ênfase na minimização dos requisitos de poder computacional.

Viés e variância

O objetivo do ajuste de hiperparâmetros é equilibrar a troca de viés-variância. O viés é a divergência entre as previsões de um modelo e a realidade. Modelos que são subajustados, ou mal ajustados, não conseguem discernir relações fundamentais entre pontos de dados e são incapazes de tirar as conclusões exigidas para um desempenho preciso. 

A variância é a sensibilidade de um modelo a novos dados. Um modelo confiável deve fornecer resultados consistentes ao migrar de seus dados de treinamento para outros conjuntos de dados. No entanto, modelos com altos níveis de variância são complexos demais: eles são superajustados aos seus conjuntos de dados de treinamento originais e têm dificuldade para acomodar novos dados. 

Modelos com baixo viés são precisos, enquanto modelos com baixa variância são consistentes. Um bom ajuste de hiperparâmetros otimiza para criar o melhor modelo para o trabalho e, ao mesmo tempo, maximizar a eficiência dos recursos computacionais durante o treinamento. 

Exemplos de hiperparâmetros

Cada algoritmo de aprendizado de máquina favorece seu próprio conjunto respectivo de hiperparâmetros, e não é necessário maximizá-los em todos os casos. Às vezes, uma abordagem mais conservadora ao ajustar os hiperparâmetros levará a um melhor desempenho.

Hiperparâmetros de redes neurais

As redes neurais se inspiram no cérebro humano e são compostas por nós interconectados que enviam sinais uns aos outros. Em geral, aqui estão alguns dos hiperparâmetros mais comuns para treinamento de modelos de redes neurais:

    Taxa de aprendizado

    A taxa de aprendizado define a velocidade na qual um modelo ajusta seus parâmetros em cada iteração. Esses ajustes são conhecidos como etapas. Uma alta taxa de aprendizado significa que um modelo se ajustará mais rapidamente, mas correndo o risco de ter um desempenho instável e desvio de dados.

    Enquanto isso, embora uma baixa taxa de aprendizado seja mais demorada e exija mais dados, também torna mais provável que os cientistas de dados identifiquem uma perda mínima de um modelo. A otimização do gradiente descendente é um exemplo de métrica de treinamento que exige uma taxa de aprendizado definida.

    Decadência da taxa de aprendizado

    A decadência da taxa de aprendizado define a taxa na qual a taxa de aprendizado de uma rede cai ao longo do tempo, permitindo que o modelo aprenda mais rapidamente. A progressão do treinamento de um algoritmo desde sua ativação inicial até o desempenho ideal é conhecida como convergência.

    Tamanho do lote

    O tamanho do lote define a quantidade de amostras que o modelo calculará antes de atualizar seus parâmetros. Isso tem um efeito significativo na eficiência do cálculo e na precisão do processo de treinamento. Por si só, um tamanho de lote maior enfraquece o desempenho geral, mas o ajuste da taxa de aprendizado e do tamanho do lote pode mitigar essa perda.

    Número de camadas ocultas

    O número de camadas ocultas em uma rede neural determina sua profundidade, o que afeta sua complexidade e capacidade de aprendizado.

    Menos camadas resultam em um modelo mais simples e rápido, mas mais camadas (como em redes de deep learning) levam a uma melhor classificação dos dados de entrada. Identificar o valor ideal dos hiperparâmetros aqui entre todas as combinações possíveis é uma questão de equilíbrio entre velocidade e precisão.

    Número de nós ou neurônios por camada

    O número de nós ou neurônios por camada define a largura do modelo. Quanto mais nós ou neurônios por camada, maior será a amplitude do modelo e mais capaz ele será de representar relacionamentos complexos entre pontos de dados.

    Momento

    Impulso é o grau em que os modelos atualizam os parâmetros na mesma direção das iterações anteriores, em vez de reverter o curso. A maioria dos cientistas de dados começa com um valor de hiperparâmetros mais baixo para impulso e, em seguida, ajusta para cima conforme a necessidade para manter o modelo no curso à medida que recebe dados de treinamento. 

    Epochs

    Epochs é um hiperparâmetro que define a quantidade de vezes que um modelo é exposto a todo o seu conjunto de dados de treinamento durante o processo de treinamento. Maior exposição pode levar a um melhor desempenho, mas corre o risco de superajuste. 

    Função de ativação

    A função de ativação introduz a não linearidade em um modelo, permitindo que ele lide com conjuntos de dados mais complexos. Os modelos não lineares podem se generalizar e se adaptar a uma variedade maior de dados. 

    Hiperparâmetros de SVM

    A máquina de vetor de suporte (SVM) é um algoritmo de aprendizado de máquina especializado na classificação de dados, regressão e detecção de valores discrepantes. Ele tem seus próprios hiperparâmetros essenciais:

      Hiperparâmetro SVM: C

      C é a razão entre a margem de erro aceitável e o número resultante de erros quando um modelo atua como um classificador de dados.

      Um valor de C mais baixo estabelece um limite de decisão suave, com uma tolerância a erros mais alta e um desempenho mais genérico, mas com risco de classificação de dados incorreta. Enquanto isso, um valor alto de C cria um limite de decisão nítido para resultados de treinamento mais precisos, mas com possível superajuste. 

      Hiperparâmetro SVM: kernel

      O kernel é uma função que estabelece a natureza das relações entre os pontos de dados e os separa em grupos adequadamente.

      Dependendo do kernel usado, os pontos de dados mostrarão relações diferentes, o que pode afetar fortemente o desempenho geral do modelo SVM. Linear, polinomial, função de base radial (RBF) e sigmóide são alguns dos kernels mais usados. Os kernels lineares são mais simples e melhores para dados facilmente separáveis, enquanto os kernels não lineares são melhores para conjuntos de dados mais complexos. 

      Hiperparâmetro SVM: gama

      O gama define o nível de influência que os vetores de suporte têm no limite da decisão.

      Os vetores de suporte são os pontos de dados mais próximos do hiperplano: a borda entre grupos de dados. Valores mais altos atraem forte influência de vetores próximos, enquanto valores mais baixos limitam a influência de vetores mais distantes. Definir um valor de gama muito alto pode causar superajuste, enquanto um valor muito baixo pode confundir o limite de decisão. 

      Hiperparâmetros XGBoost

      XGBoost significa " reforço do gradiente extremo" e é um algoritmo combinado, que mistura as previsões de vários modelos mais fracos, conhecidos como decision trees, para obter um resultado mais preciso. Os algoritmos impulsionados por gradiente tendem a superar o desempenho dos modelos de floresta aleatória, outro tipo de algoritmo combinado que abrange várias decision trees. 

      Os hiperparâmetros mais importantes para o XGBoost são:

        learning_rate

        learning_rate é semelhante ao hiperparâmetro de taxa de aprendizado usado por redes neurais. Essa função controla o nível de correção feita durante cada rodada de treinamento. Os valores potenciais variam de 0 a 1, com 0,3 sendo o padrão. 

        n_estimators

        n_estimators define o número de decision trees no modelo. Esse hiperparâmetro é conhecido como num_boost_rounds no XGBoost original, enquanto a popular API do Python scikit-learn introduziu o nome n_estimators

        max_depth

        max_depth determina a arquitetura da decision tree, definindo a quantidade máxima de nós da decision tree para cada folha — o classificador final. Mais nós levam a uma classificação de dados com mais nuances, enquanto árvores menores evitam facilmente o superajuste. 

        min_child_weight

        min_child_weight é o peso mínimo (a importância de uma determinada classe para o processo geral de treinamento do modelo) necessário para gerar uma nova decision tree. Pesos mínimos mais baixos criam mais árvores, mas com superajuste em potencial , enquanto pesos maiores reduzem a complexidade, exigindo mais dados para dividir decision trees. 

        subamostra

        subsample define a porcentagem de amostras de dados usadas durante cada rodada de treinamento, e colsample_bytree fixa a porcentagem de recursos a serem usados na construção de decision trees. 

        Como funciona o ajuste de hiperparâmetros?

        O ajuste de hiperparâmetros se concentra na função objetiva, que analisa um grupo, ou tupla, de hiperparâmetros e calcula a perda projetada.

        O ajuste ideal do hiperparâmetro minimiza a perda de acordo com as métricas escolhidas. Os resultados são confirmados por meio de validação cruzada, que mede o quão intimamente eles se generalizam em relação a outros conjuntos de dados fora da instância de treinamento específica.

        Métodos de ajuste de hiperparâmetros

        Os cientistas de dados têm uma variedade de métodos de ajuste de hiperparâmetros à sua disposição, cada um com seus respectivos pontos fortes e fracos. O ajuste de hiperparâmetros pode ser realizado manualmente ou automatizado como parte de uma estratégia de AutoML (aprendizado de máquina automatizado).

        Pesquisa em grade

        A pesquisa em grade é um método abrangente e exaustivo de ajuste de hiperparâmetros. Depois que os cientistas de dados estabelecem todos os valores possíveis para cada hiperparâmetro, uma pesquisa em grade constrói modelos para todas as configurações possíveis desses valores discretos de hiperparâmetros. Esses modelos são avaliados quanto ao desempenho e comparados entre si, com o melhor modelo selecionado para treinamento. 

        Dessa forma, a pesquisa em grade é semelhante a forçar um PIN de forma bruta, inserindo todas as combinações possíveis de números até que a sequência correta seja descoberta. Embora permita que os cientistas de dados considerem todas as configurações possíveis no espaço de hiperparâmetros, a pesquisa em grade é ineficiente e consome muitos recursos computacionais.

        Pesquisa aleatória

        A pesquisa aleatória difere da pesquisa em grade porque os cientistas de dados fornecem distribuições estatísticas em vez de valores discretos para cada hiperparâmetro. Uma pesquisa aleatória extrai amostras de cada intervalo e constrói modelos para cada combinação. Ao longo de várias iterações, os modelos são ponderados uns contra os outros, até que o melhor modelo seja encontrado. 

        A pesquisa aleatória é preferível à pesquisa em grade em situações em que o espaço de pesquisa de hiperparâmetros contém grandes distribuições — simplesmente exigiria muito esforço testar cada valor discreto. Os algoritmos de pesquisa aleatória podem retornar resultados comparáveis à pesquisa em grade em consideravelmente menos tempo, embora não seja garantido que descubram a configuração de hiperparâmetros mais ideal.

        Otimização bayesiana

        A otimização bayesiana é um algoritmo de otimização baseada em modelo sequencial (SMBO), no qual cada iteração de testes melhora o método de amostragem do próximo. Tanto a grade quanto as pesquisas aleatórias podem ser realizadas simultaneamente, mas cada teste é realizado isoladamente — os cientistas de dados não podem usar o que aprenderam para informar os testes subsequentes. 

        Com base nos testes anteriores, a otimização bayesiana seleciona probabilisticamente um novo conjunto de valores de hiperparâmetros que provavelmente fornecerá melhores resultados. O modelo probabilístico é chamado de substituto da função objetiva original. Como os modelos substitutos são eficientes em termos de computação, eles geralmente são atualizados e melhorados cada vez que a função objetiva é executada. 

        Quanto melhor o substituto for na previsão de hiperparâmetros ideais, mais rápido o processo se tornará, com menos testes de função objetiva necessários. Isso torna a otimização bayesiana muito mais eficiente do que os outros métodos, já que não há perda de tempo em combinações inadequadas de valores de hiperparâmetros. 

        O processo de determinar estatisticamente a relação entre um resultado (neste caso, o melhor desempenho do modelo) e um conjunto de variáveis é conhecido como análise de regressão. Os processos gaussianos são um desses SMBO populares entre cientistas de dados.

        Hyperband

        Lançado em 2016, o Hyperband foi projetado para melhorar a pesquisa aleatória, truncando o uso de configurações de treinamento que não fornecem resultados sólidos e, ao mesmo tempo, alocando mais recursos para configurações positivas. 

        Essa "parada antecipada" é obtida por meio da redução sucessiva pela metade, um processo que reduz o conjunto de configurações removendo a metade de pior desempenho após cada rodada de treinamento. Os 50% melhores de cada lote são levados para a próxima iteração, até que reste uma configuração de hiperparâmetros ideal. 

        Produtos e soluções relacionados
        watsonx.ai

        Disponível agora: um estúdio empresarial de última geração para construtores de IA treinarem, validarem, ajustarem e implementarem modelos de IA

        Explore o watsonx.ai

        Modelos de base no watsonx.ai

        Explore a biblioteca de modelos de base da IBM na plataforma watsonx para escalar a IA generativa para sua empresa com confiança.

        Descubra os modelos de base no watsonx.ai

        Modelos Granite

        O IBM Granite é uma família de modelos de inteligência artificial (IA) criados especificamente para empresas, projetados do zero para ajudar a garantir confiança e escalabilidade em aplicações orientadas por IA. Modelos Granite de código aberto estão disponíveis atualmente.

        Explore os modelos Granite
        Dê o próximo passo

        Treine, valide, ajuste e implemente IA generativa, modelos fundacionais e recursos de machine learning com o IBM watsonx.ai, um estúdio empresarial de última geração para desenvolvedores de IA. Crie aplicações de IA em uma fração do tempo e com muito menos dados.

        Explore o watsonx.ai Agende uma demonstração em tempo real