O aumento de dados é uma técnica crucial na aprendizagem automática (ML) utilizada para aumentar artificialmente a dimensão e a diversidade de um conjunto de dados de treino. Isto é conseguido através da criação de versões modificadas de pontos de dados existentes ou da geração de novos exemplos sintéticos com base nos mesmos. O objetivo principal é melhorar o desempenho, as capacidades de generalização e a robustez dos modelos de aprendizagem automática, especialmente em domínios como a visão computacional (CV), em que a aquisição de conjuntos de dados grandes e variados pode ser dispendiosa e demorada. Ao treinar modelos como o Ultralytics YOLO da Ultralytics em dados aumentados, os programadores podem ajudá-los a aprender a lidar com uma gama mais vasta de variações encontradas em cenários do mundo real, levando a uma melhor precisão em dados não vistos.
Como funciona a ampliação de dados
A ideia central por detrás do aumento de dados é aplicar várias transformações às amostras de dados originais para gerar exemplos de treino novos e plausíveis. Idealmente, estas transformações devem refletir as variações que o modelo pode encontrar durante a inferência. No caso dos dados de imagem, que são o foco principal da visão computacional, as técnicas comuns de aumento de dados incluem
- Transformações geométricas: Altera as propriedades espaciais da imagem, como a rotação, o escalonamento (aumentar ou diminuir o zoom), a translação (deslocamento), o corte e a inversão (horizontal ou vertical).
- Transformações do espaço de cor: Modifica as caraterísticas da cor, incluindo ajustes de brilho, contraste, saturação e matiz. Estas ajudam os modelos a tornarem-se menos sensíveis às condições de iluminação e às variações da câmara.
- Adicionar ruído: Introduzir ruído aleatório (como o ruído Gaussiano) para simular o ruído do sensor ou uma qualidade de imagem imperfeita.
- Apagamento / recorte aleatório: Mascarar regiões rectangulares aleatórias de uma imagem para incentivar o modelo a concentrar-se em diferentes partes dos objectos e melhorar a robustez contra a oclusão.
- Mistura imagens: Combina várias imagens ou partes de imagens. Técnicas como Mixup (interpolação entre duas imagens e as suas etiquetas) e CutMix (colagem de um fragmento de uma imagem noutra) obrigam o modelo a aprender com exemplos menos limpos.
Embora sejam muito utilizadas em CV, as técnicas de aumento são também aplicadas noutros domínios. Por exemplo, no Processamento de Linguagem Natural (PLN), métodos como a substituição de sinónimos, a retrotradução (traduzir o texto para outra língua e voltar a traduzi-lo) e a inserção/eliminação aleatória de palavras podem aumentar os dados de texto.
Importância e benefícios
O aumento de dados é uma parte fundamental do fluxo de trabalho de ML por várias razões:
- Melhoria da generalização do modelo: Ao expor o modelo a exemplos mais diversos, o aumento ajuda-o a aprender padrões subjacentes em vez de memorizar exemplos de treino específicos, o que leva a um melhor desempenho em novos dados.
- Redução do sobreajuste: O sobreajuste ocorre quando um modelo tem um bom desempenho nos dados de treinamento, mas um desempenho ruim em dados não vistos. O aumento actua como uma técnica de regularização, tornando mais difícil que o modelo se ajuste excessivamente ao conjunto de dados original limitado.
- Maior robustez: Os modelos treinados com dados aumentados são normalmente mais resistentes a variações na entrada, como alterações na iluminação, ponto de vista, escala ou oclusões parciais.
- Necessidades reduzidas de recolha de dados: Permite que os programadores obtenham melhores resultados com conjuntos de dados iniciais mais pequenos, poupando tempo e recursos associados à recolha e rotulagem de dados. Encontra mais sugestões de formação de modelos na nossa documentação.
Técnicas e ferramentas
A implementação do aumento de dados é facilitada por várias bibliotecas e estruturas. Para tarefas de visão computacional, algumas ferramentas populares incluem:
Os modelos Ultralytics incorporam várias técnicas eficazes de aumento incorporadas durante o treino. Os utilizadores podem gerir os seus conjuntos de dados e tirar partido destas funcionalidades através de plataformas como o Ultralytics HUB.
Aplicações no mundo real
O aumento de dados é amplamente aplicado em vários domínios da IA:
- IA nos cuidados de saúde: Na análise de imagens médicas, como a deteção de tumores em exames, os conjuntos de dados são frequentemente limitados devido a preocupações com a privacidade e à raridade de determinadas condições. As técnicas de aumento, como os ajustes de rotação, escala e brilho, criam diversos exemplos de treino, ajudando os modelos a detetar anomalias de forma fiável, apesar das variações no equipamento de imagiologia ou no posicionamento do paciente. Isto melhora a precisão do diagnóstico dos sistemas de análise de imagens médicas.
- IA para o sector automóvel: O desenvolvimento de sistemas robustos de deteção de objectos para veículos autónomos requer dados de treino que abranjam diversos cenários de condução. O aumento simula diferentes condições meteorológicas (por exemplo, adicionando chuva ou nevoeiro sintéticos), variações de iluminação (dia, noite, amanhecer/ anoitecer) e oclusões (por exemplo, peões ou veículos parcialmente escondidos), tornando os sistemas de perceção mais fiáveis em ambientes reais imprevisíveis.
- IA na agricultura: Para tarefas como a deteção de doenças nas culturas ou a contagem de frutos, o aumento pode simular variações na iluminação devido ao clima ou à hora do dia, diferentes fases de crescimento ou ângulos de câmara de drones ou robôs terrestres, conduzindo a soluções de agricultura de precisão mais robustas.
- IA no fabrico: No controlo de qualidade, o aumento pode criar variações na orientação do produto, na iluminação e em pequenos defeitos para treinar modelos para uma deteção de anomalias mais fiável nas linhas de produção.
Aumento de dados vs. dados sintéticos
Embora tanto o aumento de dados como a geração de dados sintéticos tenham como objetivo melhorar os conjuntos de dados de treino, diferem fundamentalmente:
- Aumento de dados: Modifica os dados reais existentes através de transformações. Aumenta a variação em torno dos pontos de dados observados, mas geralmente não introduz cenários inteiramente novos não representados nos dados originais.
- Dados sintéticos: Envolve a criação de dados artificiais inteiramente novos a partir do zero, muitas vezes utilizando simulações, computação gráfica ou modelos generativos como as redes adversariais generativas (GAN) ou modelos de difusão. Os dados sintéticos podem representar cenários que são raros ou impossíveis de captar no mundo real, preenchendo potencialmente lacunas que o aumento não pode resolver.
Na prática, o aumento dos dados é muitas vezes mais fácil de implementar e computacionalmente mais barato do que a geração de dados sintéticos de alta fidelidade. Ambas as técnicas podem ser valiosas e, por vezes, são utilizadas em combinação para criar conjuntos de dados de formação altamente diversificados e robustos para aplicações de IA exigentes.