O que é upsampling?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

O que é upsampling?

O upsampling aumenta o número de amostras de dados de um conjunto de dados. Fazendo isso, ele visa corrigir dados desequilibrados e assim melhorar o desempenho do modelo.

O upsampling, também conhecido como oversampling, é uma técnica de processamento e otimização de dados que aborda o desequilíbrio de classes em um conjunto de dados adicionando dados. O upsampling adiciona dados utilizando amostras originais de classes minoritárias até que todas as classes sejam iguais em tamanho. Tanto o Python scikit-learn quanto o Matlab contêm funções integradas para implementar técnicas de upsampling.

O aumento da amostragem para ciência de dados é muitas vezes confundido com o aumento da amostragem no processamento de sinal digital (DSP). Os dois são semelhantes em espírito, mas distintos. Semelhante ao upsampling em ciência de dados, o upsampling para DSP cria artificialmente mais amostras em um domínio de frequência a partir de um sinal de entrada (especificamente um sinal de tempo discreto), interpolando taxas de amostragem mais altas. Essas novas amostras são geradas inserindo zeros no sinal original e utilizando um filtro passa-baixo para interpolação. Isso difere de como os dados são ampliados no balanceamento de dados.

A amostragem para balanceamento de dados também é diferente da amostragem no processamento de imagens. Neste último, as imagens de alta resolução são primeiro reduzidas em resolução (removendo pixels) para cálculos mais rápidos, após o que a convolução retorna a imagem às suas dimensões originais (adicionando pixels de volta).

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Por que usar o upsampling?

O upsampling é uma maneira eficaz de lidar com o desequilíbrio em um conjunto de dados. Um conjunto de dados desequilibrado é definido como um conjunto no qual uma classe está fortemente sub-representada em relação à população real, criando um viés não intencional. Por exemplo, imagine um modelo treinado para classificar imagens de gatos ou cães. O conjunto de dados utilizado é composto por 90% de gatos e 10% de cães. Nesse cenário, os gatos estão super-representados, e se tivermos um classificador que prevê gatos o tempo todo, ele terá 90% de precisão para classificar gatos, mas 0% para classificar cães. O conjunto de dados desequilibrado, nesse caso, fará com que os classificadores favoreçam a precisão para a classe majoritária em detrimento da classe minoritária. O mesmo problema pode ocorrer com conjuntos de dados multiclasses.1

O processo de aumento da amostragem neutraliza o problema do conjunto de dados desequilibrado. Ele preenche o conjunto de dados com pontos sintetizados a partir de características da classe minoritária do conjunto de dados original. Isso equilibra o conjunto de dados aumentando efetivamente o número de amostras para uma classe minoritária sub-representada até que o conjunto de dados contenha uma proporção igual de pontos em todas as classes.

Embora seja possível observar desequilíbrios ao representar graficamente a contagem de pontos em cada classe, isso não indica se afetará muito o modelo. Felizmente, podemos usar métricas de desempenho para avaliar o quanto uma técnica de upsampling corrige o desequilíbrio de classe. A maioria dessas métricas é aplicada em classificações binárias, com apenas duas classes: positiva e negativa. Normalmente, a classe positiva é a minoritária, e a negativa, majoritária. Duas métricas populares são as curvas ROC (Receiver Operating Characteristic) e as curvas de precisão-recall.1

Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Vantagens e desvantagens do upsampling

Vantagens

  • Sem perda de informações: ao contrário do downsampling, que remove os pontos de dados da classe majoritária, o upsampling gera novos pontos de dados, evitando qualquer perda de informações.
  • Aumente os dados a baixo custo: o upsampling é especialmente eficaz e, muitas vezes, é a única maneira de aumentar o tamanho do conjunto de dados sob demanda em casos em que os dados só podem ser adquiridos por meio de observação. Por exemplo, certas condições médicas são simplesmente raras demais para permitir que mais dados sejam coletados.

Desvantagens

  • Overfitting:: como o aumento do upsampling cria novos dados com base nos dados de classe minoritária existentes, o classificador pode ter um overfitting dos dados. O upsampling pressupõe que os dados existentes capturam adequadamente a realidade. Se não for esse o caso, o classificador pode não conseguir generalizar muito bem.
  • Ruído de dados: o upsampling pode aumentar a quantidade de ruído nos dados, reduzindo a confiabilidade e o desempenho do classificador.2
  • Complexidade computacional: ao aumentar a quantidade de dados, o treinamento do classificador se tornará mais caro em termos de computação, o que pode ser um problema ao usar a computação em nuvem.2

Técnicas de upsampling

Oversampling aleatório

O oversampling aleatório é o processo de duplicar pontos de dados aleatórios na classe minoritária até que o tamanho da classe minoritária seja igual ao da classe majoritária.

Embora sejam de natureza semelhante, o oversampling aleatório é diferente do bootstrapping. Bootstrapping é uma técnica de aprendizado em conjunto que refaz a amostra de todas as classes. Por outro lado, o oversampling aleatório refaz a amostra somente da classe minoritária. O oversampling aleatório pode, portanto, ser entendido como uma forma mais especializada de bootstrapping.

Apesar de sua simplicidade, o oversampling aleatório tem limitações. Como o oversampling aleatório apenas adiciona pontos de dados duplicados, ela pode levar ao overfitting.3 Mas ainda tem muitas vantagens em relação a outros métodos: facilidade de implementação, falta de "alongamento" das suposições sobre os dados e baixa complexidade de tempo devido a um algoritmo simples.2

SMOTE

A Synthetic Minority Oversampling Technique, ou SMOTE, é uma técnica de upsampling proposta pela primeira vez em 2002, que sintetiza novos pontos de dados a partir dos pontos existentes na classe minoritária.4 Consiste no seguinte processo:2

  1. Encontre os K vizinhos mais próximos de todos os pontos de dados da classe minoritária. K geralmente é 5.
  2. Repita as etapas 3 a 5 para cada ponto de dados de classe minoritária:
  3. Escolha um dos K vizinhos mais próximos do ponto de dados.
  4. Escolha um ponto aleatório no segmento de linha que conecta esses dois pontos no espaço de recurso para gerar uma nova amostra de saída. Esse processo é conhecido como interpolação.
  5. Dependendo de quanto upsampling desejar, repita as etapas 3 e 4 utilizando outro vizinho mais próximo.

O SMOTE combate o problema de sobreajuste na sobreamostragem aleatória adicionando novos dados inéditos ao conjunto de dados, em vez de simplesmente duplicar dados pré-existentes. Por isso alguns pesquisadores consideram o SMOTE uma técnica de aumento de amostragem melhor do que a sobreamostragem aleatória.

Por outro lado, a geração de pontos de dados artificiais do SMOTE adiciona ruído extra ao conjunto de dados, possivelmente tornando o classificador mais instável.1 Os pontos sintéticos e o ruído do SMOTE também podem inadvertidamente levar a sobreposições entre as classes minoritária e majoritária que não refletem a realidade, levando ao que é chamado de excesso de generalização.5

SMOTE limítrofe

Uma extensão popular, Borderline SMOTE, é utilizada para combater o problema do ruído artificial do conjunto de dados e para criar pontos de dados "mais difíceis". Os pontos de dados "mais difíceis" são pontos de dados próximos ao limite de decisão e, portanto, mais difíceis de classificar. Esses pontos mais difíceis são mais úteis para o modelo aprender.2

O Borderline SMOTE identifica os pontos da classe minoritária próximos de muitos pontos da classe majoritária e os coloca em um conjunto de PERIGO. Os pontos de PERIGO são os pontos de dados “difíceis” de aprender, o que, novamente, ocorre porque são mais difíceis de classificar em comparação com pontos cercados por pontos da classe minoritária. Esse processo de seleção exclui pontos cujos vizinhos mais próximos são apenas pontos da classe majoritária, que são contados como ruído. A partir daí, o algoritmo SMOTE continua normalmente utilizando esse conjunto PERIGO.3

ADASYN

A Adaptive Synthetic Sampling Approach (ADASYN) é semelhante ao Borderline SMOTE, pois gera dados mais difíceis para o modelo aprender. Mas também pretende preservar a distribuição dos dados da classe minoritária.6 Ela faz isso criando primeiro uma distribuição ponderada de todos os pontos de minoria com base no número de exemplos de classe majoritária em sua vizinhança. A partir daí, usa pontos da classe minoritária mais próximos da classe majoritária com mais frequência na geração de novos dados.

O processo é o seguinte:2

  1. Crie um modelo KNN em todo o conjunto de dados.
  2. Cada ponto da classe minoritária recebe um "fator de dificuldade", denotado como r, que é a razão entre o número de pontos da classe majoritária e o número total de vizinhos no KNN.
  3. Como o SMOTE, os pontos gerados sinteticamente são uma interpolação linear entre os dados minoritários e seus vizinhos, mas o número de pontos gerados escala com o fator de dureza de um ponto. O que isso faz é gerar mais pontos em áreas com menos dados de minorias e menos pontos em áreas com mais.

Transformação/aumentos de dados

O aumento de dados cria novos dados criando variações dos dados. O aumento de dados se aplica a uma variedade de campos de aprendizado de máquina.

A forma mais básica de aumento de dados lida com a transformação das entradas brutas do conjunto de dados. Por exemplo, na visão computacional, os aumentos de imagem (corte, desfoque, espelhamento e assim por diante) podem ser utilizados para criar mais imagens para o modelo classificar. Da mesma forma, o aumento de dados também pode ser utilizado em tarefas de processamento de linguagem natural, como substituir palavras por seus sinônimos ou criar frases com semântica equivalente.

Os pesquisadores descobriram que o aumento de dados aumenta efetivamente a precisão do modelo para tarefas de computer vision e NLP porque adiciona dados semelhantes a um baixo custo. No entanto, é importante observar alguns cuidados antes de executar essas técnicas. Para aumentos geométricos tradicionais, a “segurança” das transformações deve ser verificada antes de executá-las. Por exemplo, girar uma imagem de um "9" faria parecer um "6", alterando seu significado semântico.7

Pesquisa recente

As extensões SMOTE e o aprendizado profundo têm sido o foco das técnicas de upsampling nos últimos anos. Esses métodos têm como objetivo melhorar o desempenho do modelo e solucionar algumas das deficiências da amostragem ascendente, como a tendência introduzida na distribuição da classe minoritária.

Alguns desenvolvimentos no SMOTE incluem um SMOTE de probabilidade preditiva minoritária (MPP-SMOTE), que aumenta as amostras com base nas probabilidades estimadas de ver amostras de cada classe minoritária.8 O Multi-Label Borderline Oversampling Technique (MLBOTE) foi proposto para estender o SMOTE à classificação multiclasses.9 Ambos superaram todas as variantes SMOTE existentes e mantiveram os padrões nos dados originais.

As redes neurais também têm sido usadas para desenvolver técnicas de oversampling. Redes adversárias generativas despertaram algum interesse, produzindo resultados promissores, embora o tempo de treinamento torne essa técnica mais lenta do que outros métodos tradicionais de upsampling.10

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real
Notas de rodapé

1 Haobo He e Edwardo Garcia, Learning from Imbalanced Data, IEEE, setembro de 2009, https://ieeexplore.ieee.org/document/5128907 (link externo a ibm.com). (1,2,10)

2 Kumar Abishek e Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, novembro de 2023, https://www.packtpub.com/product/machine-learning-for-imbalanced-data/9781801070836 (link externo a ibm.com). (3,4,6,8,9,12,14-17)

3 Kumar Abishek e Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, novembro de 2023, https://www.packtpub.com/product/machine-learning-for-imbalanced-data/9781801070836 (link externo a ibm.com). Alberto Fernandez, et al., Learning from Imbalanced Data Sets, 2018.

4 Nitesh Chawla, et al., SMOTE: Synthetic Minority Over-sampling Technique, JAIR, 01 de junho de 2002, https://www.jair.org/index.php/jair/article/view/10302 (link externo a ibm.com).

5 Kumar Abishek e Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, novembro de 2023. Haobo He and Edwardo Garcia, Learning from Imbalanced Data, IEEE, setembro de 2009, https://ieeexplore.ieee.org/document/5128907 (link externo a ibm.com).

6 Alberto Fernandez, et al., Learning from Imbalanced Data Sets, Springer, 2018.

7 Connor Shorten e Taghi Khoshgoftaar, A survey on Image Data Augmentation for Deep Learning, Springer, 6 de julho de 2019**,** https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0197-0 (link externo a ibm.com).

8 Zhen Wei, Li Zhang e Lei Zhao, Minority prediction probability based oversampling technique for imbalanced learning, Science Direct, 6 de dezembro de 2022, https://www.sciencedirect.com/science/article/abs/pii/S0020025522014578?casa_token=TVVIEM3xTDEAAAAA:LbzQSgIvuYDWbDTBKWb4ON-CUiTUg0EUeoQf9q12IjLgXFk0NQagfh0bU3DMUSyHL_mjd_V890o (link externo a ibm.com).

9 Zeyu Teng, et al., Multi-label borderline oversampling technique, ScienceDirect, 14 de setembro de 2023, https://www.sciencedirect.com/science/article/abs/pii/S0031320323006519?casa_token=NO8dLh60_vAAAAAA:AWPCvCP8PQG43DvkQFChZF2-3uzB1GJBBtgPURevWe_-aR0-WTbLqOSAsiwxulNAuh_4mIDZx-Y (link externo a ibm.com).

10 Justin Engelmann and Stefan Lessmann, Conditional Wasserstein GAN-based oversampling of tabular data for imbalanced learning, 15 de julho de 2021, ScienceDirect, https://www.sciencedirect.com/science/article/abs/pii/S0957417421000233?casa_token=O0d1BtspA8YAAAAA:n2Uv3v2yHvjl9APVU9V_13rQ9K_KwT0P__nzd6hIngNcZJE-fmQufDgR6XT1uMmDBHx8bLXPVho (link externo a ibm.com). Shuai Yang, et al., Fault diagnosis of wind turbines with generative adversarial network-based oversampling method, IOP Science, 12 de janeiro de 2023, https://iopscience.iop.org/article/10.1088/1361-6501/acad20/meta (link externo a ibm.com).