Sobreajuste
Saiba como identificar, prevenir e resolver o sobreajuste na aprendizagem automática. Descubra técnicas para melhorar a generalização do modelo e o desempenho no mundo real.
O sobreajuste é um conceito fundamental na aprendizagem automática (ML) que ocorre quando um modelo aprende os pormenores e o ruído nos dados de treino de tal forma que afecta negativamente o desempenho do modelo em dados novos e não vistos. Essencialmente, o modelo memoriza o conjunto de treino em vez de aprender os padrões subjacentes. Isto resulta num modelo que atinge uma elevada precisão nos dados em que foi treinado, mas não consegue generalizar para os dados do mundo real, tornando-o pouco fiável para aplicações práticas. Conseguir uma boa generalização é um objetivo primordial no desenvolvimento da IA.
Como identificar o sobreajuste
O sobreajuste é normalmente identificado através da monitorização do desempenho do modelo tanto no conjunto de dados de treino como num conjunto de dados de validação separado durante o processo de treino. Um sinal comum de sobreajuste é quando o valor da função de perda para o conjunto de treino continua a diminuir, enquanto a perda para o conjunto de validação começa a aumentar. Do mesmo modo, se a precisão do treino continuar a melhorar, mas a precisão da validação estabilizar ou piorar nas épocas seguintes, é provável que o modelo esteja a sofrer de sobreajuste. Ferramentas como o TensorBoard são excelentes para visualizar essas métricas e diagnosticar esses problemas com antecedência. Plataformas como o Ultralytics HUB também podem ajudar a acompanhar experiências e avaliar modelos para detetar o sobreajuste.
Overfitting vs. Underfitting
O sobreajuste e o subajuste são dois problemas comuns na aprendizagem automática que representam a incapacidade de generalização de um modelo. São problemas essencialmente opostos.
- Sobreajuste: O modelo é demasiado complexo para os dados (variância elevada). Capta o ruído e as flutuações aleatórias nos dados de treino, conduzindo a um excelente desempenho durante o treino mas a um fraco desempenho nos dados de teste.
- Subadaptação: O modelo é demasiado simples para captar a estrutura subjacente dos dados ( enviesamento elevado). O seu desempenho é fraco tanto nos dados de treino como nos dados de teste porque não consegue aprender os padrões relevantes.
O desafio da aprendizagem profunda consiste em encontrar o equilíbrio correto, um conceito frequentemente descrito pelo compromisso entre a polarização e a variância.
Exemplos do mundo real de sobreajuste
- Deteção de objectos em veículos autónomos: Imagine treinar um modelo Ultralytics YOLO para um veículo autónomo utilizando um conjunto de dados que apenas contém imagens de condições diurnas e ensolaradas. O modelo pode tornar-se altamente especializado na deteção de peões e automóveis em condições de luz intensa, mas falhar drasticamente à noite ou em condições de chuva ou nevoeiro. O modelo ajustou-se demasiado às condições específicas de iluminação e meteorológicas dos dados de treino. A utilização de conjuntos de dados diversificados como o Argoverse pode ajudar a evitar esta situação.
- Análise de imagens médicas: Um modelo CNN é treinado para detetar tumores em exames de ressonância magnética provenientes de um único hospital. O modelo pode, inadvertidamente, aprender a associar artefactos específicos ou padrões de ruído da máquina de ressonância magnética desse hospital à presença de um tumor. Quando testado em exames de um hospital diferente com uma máquina diferente, o seu desempenho pode baixar significativamente porque se adaptou demasiado ao ruído do conjunto de treino original e não aos marcadores biológicos reais dos tumores. Esta é uma questão crítica em domínios como a IA nos cuidados de saúde.
Como evitar o sobreajuste
Podem ser utilizadas várias técnicas para combater o sobreajuste e construir modelos mais robustos.
- Obter mais dados: Aumentar o tamanho e a diversidade do conjunto de dados de treino é uma das formas mais eficazes de evitar o sobreajuste. Mais dados ajudam o modelo a aprender os verdadeiros padrões subjacentes em vez de ruído. Pode explorar uma variedade de conjuntos de dados Ultralytics para melhorar os seus projectos.
- Aumento de dados: Trata-se de expandir artificialmente o conjunto de dados de treino através da criação de cópias modificadas dos dados existentes. São aplicadas técnicas como rotações aleatórias, escalonamento, corte e mudanças de cor. As técnicas de aumento de dados do Ultralytics YOLO estão incorporadas para melhorar a robustez do modelo.
- Simplificar a arquitetura do modelo: Por vezes, um modelo é demasiado complexo para um determinado conjunto de dados. A utilização de uma arquitetura mais simples com menos parâmetros pode evitar que memorize os dados. Por exemplo, escolher uma variante de modelo mais pequena como YOLOv8n vs. YOLOv8x pode ser benéfico para conjuntos de dados mais pequenos.
- Regularização: Esta técnica adiciona uma penalização à função de perda com base na complexidade do modelo, desencorajando grandes pesos do modelo. Os métodos comuns são a regularização L1 e L2, sobre os quais pode ler mais aqui.
- Desistência: Uma forma específica de regularização em que uma fração aleatória de neurónios é ignorada durante cada etapa de treino. Isto força a rede a aprender representações redundantes e evita que um único neurónio se torne demasiado influente. O conceito de Dropout é explicado em detalhes aqui.
- Paragem antecipada: Isto envolve a monitorização do desempenho do modelo num conjunto de validação e a interrupção do processo de formação assim que o desempenho da validação começa a diminuir, mesmo que o desempenho da formação ainda esteja a melhorar. Pode ver uma explicação da paragem antecipada no Keras para obter mais detalhes.
- Validação cruzada: Ao utilizar técnicas como a validação cruzada K-Fold, os dados são divididos em várias dobras e o modelo é treinado e validado em diferentes subconjuntos. Isto fornece uma estimativa mais robusta da capacidade de generalização do modelo.
- Poda de modelos: Isso envolve a remoção de parâmetros ou conexões de uma rede treinada que têm pouco impacto em seu desempenho, reduzindo assim a complexidade. Empresas como a Neural Magic oferecem ferramentas especializadas em modelos de poda para uma implantação eficiente.