Início topics Upsampling O que é upsampling?
Explore a amostragem com o watsonx.ai Inscreva-se para receber atualizações sobre IA
Ilustração com colagem de pictogramas de monitor de computador, servidor, nuvens, pontos

Publicado em: 29 de abril de 2024
Colaboradores: Jacob murel Ph.D.

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).

Por que a governança de IA é um imperativo empresarial na ampliação da inteligência artificial empresarial

Saiba mais sobre as barreiras à adoção da IA, particularmente a falta de soluções de governança e gerenciamento de riscos da IA.

Conteúdo relacionado

Cadastre-se para receber o guia sobre modelos de base

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 de dados no qual uma classe está muito sub-representada no conjunto de dados em relação à população real, criando vieses não intencionais. Por exemplo, imagine que um modelo seja treinado para classificar imagens como mostrando um gato ou um cachorro. O conjunto de dados utilizado é composto por 90% de gatos e 10% de cães. Os gatos neste cenário estão super-representados e, se tivermos um classificador prevendo gatos todas as vezes, ele produzirá uma precisão de 90% para classificar gatos, mas 0% de precisão para classificar cães. O conjunto de dados desequilibrado, neste caso, fará com que os classificadores privilegiem a precisão para a classe majoritária em detrimento da classe minoritária. O mesmo problema pode surgir com conjuntos de dados multiclasse.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 os desequilíbrios possam ser vistos simplesmente plotando as contagens de pontos de dados em cada classe, isso não nos diz se isso 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 será para classificação binária, em que há apenas duas classes: uma positiva e uma negativa. Normalmente, a classe positiva é a classe minoritária, enquanto a classe negativa é a classe majoritária. Duas métricas populares são as curvas ROC (Receiver Operating Characteristic, característica de operação do receptor) e as curvas de precisão-recall.1

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
  • Sobreajuste: como o aumento da amostragem cria novos dados com base nos dados de classe minoritária existentes, o classificador pode ser sobreajustado aos dados. A amostragem 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: Aumentando a quantidade de dados, o treinamento do classificador será mais caro computacionalmente, o que pode ser um problema ao usar a computação em nuvem.algarismo
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 da autoinicialização. 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 entendida como uma forma mais especializada de bootstrapping.

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

SMOTE

A técnica de oversampling de minorias sintéticas, 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 de minoria e maioria 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

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 de classes minoritárias. 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 DANGER.3

ADASYN

A Abordagem de Amostragem Sintética Adaptativa (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 Ele 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í, ele usa pontos de 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 visão computacional e PNL 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 A Técnica de Sobreamostragem Limítrofe Multi-Label (MLBOTE) foi proposta para estender o SMOTE à classificação multiclasse.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 sobreamostragem. Redes Adversariais Generativas misturaram 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

Recursos relacionados O que é downsampling?

A redução da amostragem diminui o número de amostras de dados em um conjunto de dados. Fazendo isso, ele visa corrigir dados desequilibrados e assim melhorar o desempenho do modelo.

O que é overfitting?

No aprendizado de máquina, o overfitting ocorre quando um algoritmo se adapta muito ou até mesmo de forma precisa aos dados de treinamento, resultando em um modelo que não consegue fazer previsões ou conclusões precisas de outros dados que não sejam os de treinamento.

O que é machine learning (ML)?

O machine learning (ML) é um ramo da IA e da ciência da computação que se concentra no uso de dados e algoritmos para permitir que a IA imite a forma de aprendizado dos humanos, melhorando gradualmente a precisão.

Dê o próximo passo

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

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

1 Haobo He and Edwardo Garcia, Learning from Imbalanced Data, IEEE, September 2009, https://ieeexplore.ieee.org/document/5128907 (link fora de 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 fora de ibm.com). (3,4,6,8,9,12,14-17)

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

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

5 Kumar Abishek and 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 fora do site ibm.com).

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

7 Connor Shorten and 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 fora do site ibm.com).

8 Zhen Wei, Li Zhang, and 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 resides outside 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 resides outside 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 resides outside 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 fora do site ibm.com).