Aumento de dados é uma técnica estatística que gera novas amostras de treinamento ao aplicar transformações ou perturbações nos dados existentes. Em aprendizado de máquina, é amplamente utilizado para reduzir o sobreajuste e melhorar a generalização, treinando modelos em várias cópias ligeiramente modificadas do conjunto de dados original. A abordagem é particularmente valiosa quando os dados são escassos ou desbalanceados, pois pode simular um conjunto de dados maior e mais diversificado, além de aumentar a robustez do modelo.
Em sua forma estatística geral, o aumento de dados permite a estimativa de máxima verossimilhança a partir de dados incompletos, introduzindo variáveis latentes ou componentes de dados ausentes, um método com aplicações importantes na análise bayesiana. No contexto de aprendizado de máquina, a técnica tornou-se uma prática padrão em diversos domínios, desde a classificação de imagens até o processamento de sinais, devido à sua capacidade de melhorar o desempenho do modelo sem coletar dados adicionais do mundo real.
Histórico e primeiros usos
As raízes do aumento de dados em aprendizado de máquina remontam meados da década de 1990, quando as redes neurais convolucionais (CNNs) começaram a crescer em tamanho. Na época, havia falta de dados suficientes para treinar essas redes de forma eficaz, especialmente porque uma parte do conjunto de dados precisava ser reservada para testes. Pesquisadores propuseram perturbar os dados existentes com transformações afins - como rotações, translações e escalonamentos - para criar novos exemplos que compartilhassem os mesmos rótulos do original. Essa abordagem foi complementada em 2003 por distorções elásticas, que introduziram variações mais sutis e realistas. Na década de 2010, o aumento de dados foi amplamente adotado no treinamento de CNNs, melhorando seu desempenho e servindo como contramedida contra ataques adversariais.
Amostragem sintética para dados desbalanceados
No aprendizado de máquina tradicional, um desafio comum são os conjuntos de dados desbalanceados, onde uma classe tem significativamente menos amostras que outra. Por exemplo, considere um conjunto de dados de diagnóstico médico com 90 amostras representando indivíduos saudáveis e apenas 10 amostras representando indivíduos com uma doença específica. Nesses casos, os algoritmos frequentemente falham ao classificar a classe minoritária devido ao viés em direção à classe majoritária.
A Técnica de Sobreamostragem Sintética Minoritária (SMOTE, na sigla em inglês) aborda esse problema gerando amostras sintéticas para a classe minoritária. A SMOTE funciona selecionando aleatoriamente uma amostra da classe minoritária, encontrando seus vizinhos mais próximos e criando novas amostras ao longo dos segmentos de linha que conectam esses vizinhos. Por exemplo, se houver 100 amostras na classe majoritária e 10 na minoritária, a SMOTE pode produzir amostras sintéticas minoritárias que aumentam a classe minoritária para, digamos, 100 amostras, equilibrando assim o conjunto de dados. Essa técnica, que surgiu no início dos anos 2000, melhora o desempenho do modelo e é uma pedra angular do aumento de dados para dados tabulares.
Técnicas para imagens
A classificação de imagens tem sido uma das principais beneficiárias do aumento de dados, especialmente com o avanço do aprendizado profundo. A prática evoluiu para incluir uma ampla gama de transformações, enriquecendo os dados de treinamento para ajudar os modelos a generalizar melhor. Categorias comuns incluem transformações geométricas, ajustes de espaço de cores e injeção de ruído.
Transformações geométricas
As transformações geométricas alteram as propriedades espaciais das imagens, simulando diferentes perspectivas, orientações e escalas. As técnicas incluem:
- Transformação afim (que combina rotação, reflexão, translação e escalonamento)
- Rotação: girar imagens em um grau especificado para ajudar os modelos a reconhecer objetos em vários ângulos.
- Reflexão: refletir imagens horizontalmente ou verticalmente para introduzir variabilidade na orientação.
- Translação: deslocar imagens em diferentes direções para ensinar os modelos sobre invariância posicional.
- Escalonamento: ajustar o tamanho dos objetos dentro da imagem.
- Cisalhamento: inclinar imagens para imitar diferentes ângulos de visão.
- Recorte: remover seções da imagem para focar em características específicas ou simular vistas mais próximas.
- Distorção elástica: deformar a imagem de maneira não linear, proposta em 2003 e eficaz em tarefas como reconhecimento de escrita manual.
- Morfismo dentro da mesma classe: gerar novas amostras aplicando técnicas de morfismo entre duas imagens pertencentes à mesma classe, aumentando assim a diversidade intraclasse.
Transformações de espaço de cores
As transformações de espaço de cores modificam as propriedades de cor das imagens, abordando variações de iluminação, saturação e contraste. Estas incluem:
- Ajuste de brilho: variar o brilho da imagem para simular diferentes condições de iluminação.
- Ajuste de contraste: alterar o contraste para lidar com vários níveis de clareza.
- Ajuste de saturação: modificar a saturação para preparar os modelos para imagens com diferentes intensidades de cor.
- Jitter de cor: ajustar aleatoriamente brilho, contraste, saturação e matiz para introduzir variabilidade de cor, um padrão para melhorar a robustez em CNNs.
Injeção de ruído
Injetar ruído nas imagens simula imperfeições do mundo real, ensinando os modelos a ignorar variações irrelevantes. Técnicas comuns incluem:
- Ruído gaussiano: adicionar ruído gaussiano para imitar ruído de sensor ou granulação.
- Ruído sal e pimenta: introduzir pixels aleatórios brancos ou pretos para simular poeira ou pixels mortos do sensor.
Esses métodos têm sido fundamentais para tornar os classificadores robustos a distorções do mundo real e têm sido amplamente utilizados desde a década de 1990.
Aumento de dados para processamento de sinais
O aumento de dados também é aplicável a séries temporais e processamento de sinais. Para séries temporais, métodos de bootstrap residual ou em blocos podem ser usados para gerar sequências aumentadas, o que ajuda a melhorar a robustez de modelos que operam em dados temporais.
Sinais biológicos
No domínio dos sinais biológicos, o aumento de dados é de suma importância devido à alta dimensionalidade e à escassez desses dados. Aplicações em controle robótico e em estudos com indivíduos saudáveis e com deficiências frequentemente dependem de análises específicas por sujeito, devido ao número limitado de amostras. No entanto, a geração de dados sintéticos pode expandir significativamente esses conjuntos de dados.
Pesquisadores notaram a dificuldade em obter sinais como eletromiografia (EMG) para a doença de Parkinson. Zanini e colaboradores demonstraram o uso de uma rede adversária generativa (GAN, na sigla em inglês) - em particular, uma GAN convolucional profunda - para realizar transferência de estilo, gerando sinais de EMG sintéticos que correspondem aos de pacientes com Parkinson. Essa abordagem mostra como técnicas de IA generativa podem apoiar o aumento de dados.
Da mesma forma, em dados de eletroencefalografia (EEG), Wang e colaboradores exploraram o uso de redes neurais convolucionais profundas para o reconhecimento de emoções baseado em EEG, e os resultados mostraram que a precisão do reconhecimento de emoções melhorou quando o aumento de dados foi aplicado.
Um método comum para geração de sinais sintéticos envolve rearranjar componentes de dados reais. Lotte propôs um método chamado "Geração de Tentativas Artificiais Baseada em Analogia", onde três exemplos de dados x₁, x₂ e x₃ fornecem uma base; por analogia, uma amostra sintética artificial x_sintética é construída. Para isso, uma transformação que altera x₁ para torná-lo mais semelhante a x₂ é definida e, em seguida, essa transformação é aplicada a x₃, gerando assim a amostra sintética. Essa abordagem tem sido usada em aplicações de interface cérebro-computador, onde a escassez de dados é severa.
A década de 2010 viu o avanço do aprendizado profundo, o que ampliou a necessidade de aumento de dados, já que redes neurais são ávidas por dados. Técnicas como SMOTE e métodos baseados em GAN foram integradas às ferramentas para lidar com desbalanceamento e escassez em domínios especializados, como imagens médicas e sinais biológicos.
Relação com outros métodos
O aumento de dados é frequentemente comparado a outras formas de regularização, como dropout ou decaimento de peso, mas é distinto por modificar os dados em vez do modelo. Ele é um componente chave no sucesso de modelos de aprendizado profundo em visão computacional (por exemplo, no ImageNet), processamento de linguagem natural e reconhecimento de fala.
No campo dos transformadores, o aumento de dados é tipicamente menos comum porque esses modelos são treinados em corpora massivos, mas ainda tem aplicações, por exemplo, em ajuste fino e aprendizado com poucos exemplos.
Nos últimos anos, modelos generativos têm sido usados como aumentadores de dados, como o uso de redes adversárias generativas para produzir imagens realistas, mas as técnicas originais e leves continuam populares devido ao seu baixo custo computacional.
Limitações e considerações
Embora o aumento de dados seja eficaz, as transformações devem ser escolhidas para preservar o rótulo. Por exemplo, um flip horizontal de um dígito manuscrito pode transformar um '6' em um '9', o que pode confundir o modelo. Assim, o aumento de dados específico do domínio é crucial. Diferentes conjuntos de dados frequentemente exigem diferentes estratégias de aumento, e o uso de aumento inadequado pode reduzir a precisão do modelo.
Na classificação de imagens, a linha de pesquisa também se estendeu de transformações artesanais para políticas de aumento aprendidas, como as encontradas no AutoAugment, desenvolvido no Google em 2019 para buscar estratégias de aumento ótimas.
Além disso, em todos os domínios, o aumento de dados deve ser validado em um conjunto de teste retido, porque dados sintéticos podem introduzir vieses irreais. No entanto, a técnica se tornou uma ferramenta fundamental no arsenal do profissional de aprendizado de máquina.
Dado o uso extensivo em diversos campos, desde imagens médicas até direção autônoma, o aumento de dados é uma base na IA moderna. Sua adoção por grandes provedores de serviços em nuvem, como Amazon Web Services, Azure e Google Cloud, permitiu que algoritmos padrão fossem integrados em pipelines automatizados de aprendizado de máquina, permitindo que usuários se beneficiem dessas técnicas sem escrever código personalizado.
A eficácia do aumento de dados em reduzir o sobreajuste o torna essencial para modelos treinados em conjuntos de dados limitados, e ele continua sendo uma área dinâmica de pesquisa, com avanços em modelos generativos oferecendo novas possibilidades para criar dados sintéticos que imitam de perto distribuições reais.
Em resumo, o aumento de dados é um método versátil e poderoso que aborda a escassez de dados, o desbalanceamento e o sobreajuste, com aplicações que vão da visão computacional ao processamento de linguagem natural.