Che cos'è l'upsampling?

Dipendenti dell'azienda che lavorano nell'ufficio di sviluppo e progettazione software

Autori

Jacob Murel Ph.D.

Senior Technical Content Creator

L'upsampling aumenta il numero di campioni di dati in un set di dati. Così facendo, mira a correggere gli squilibri di dati e quindi a migliorare le prestazioni del modello.

L'upsampling, altrimenti noto come oversampling, è una tecnica di ottimizzazione ed elaborazione dei dati che gestisce gli squilibri di classe in un set di dati aggiungendo dati. L'upsampling aggiunge dati utilizzando campioni originali provenienti da classi di minoranza fino a quando tutte le classi sono di dimensioni uguali. Sia Python Scikit-learn sia Matlab contengono funzioni integrate per l'implementazione di tecniche di upsampling.

L'upsampling per la data science viene spesso confuso con l'upsampling nell'elaborazione numerica dei segnali (DSP). I due sono simili nell'essenza ma hanno degli elementi distintivi. Analogamente all'upsampling nella data science, l'upsampling nella DSP crea artificialmente più campioni nel dominio della frequenza a partire da un segnale di input (in particolare un segnale a tempo discreto) interpolando tassi di campionamento più elevati. Questi nuovi campioni vengono generati inserendo zeri nel segnale originale e utilizzando un filtro passa basso per l'interpolazione. Questo processo è diverso dall'upsampling utilizzato nel bilanciamento dei dati.

L'upsampling per il bilanciamento dei dati si distingue anche dall'upsampling nell'elaborazione delle immagini. In quest'ultimo caso, le immagini ad alta risoluzione vengono prima ridotte (rimuovendo i pixel) per velocizzare i calcoli, dopodiché la convoluzione riporta l'immagine alle dimensioni originali (aggiungendo nuovamente pixel).

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Perché utilizzare l'upsampling?

L'upsampling è un modo efficace per gestire gli squilibri all'interno di un set di dati. Un set di dati sbilanciato è definito come un set di dati in cui una classe è fortemente sottorappresentata nel set di dati rispetto alla popolazione reale, creando distorsioni non intenzionali. Ad esempio, immagina che un modello sia addestrato a classificare le immagini come raffiguranti un gatto o un cane. Il set di dati utilizzato è composto per il 90% da gatti e il 10% da cani. I gatti in questo scenario sono sovrarappresentati e, se abbiamo un classificatore che prevede i gatti ogni volta, produrrà una precisione del 90% per la classificazione dei gatti, ma dello 0% per la classificazione dei cani. Il set di dati squilibrato in questo caso farà sì che i classificatori favoriscano l'accuratezza per la classe maggioritaria a spese della classe minoritaria. Lo stesso problema può verificarsi con i set di dati multi-classe.1

Il processo di upsampling contrasta il problema del set di dati sbilanciato. Popola il set di dati con punti sintetizzati a partire dalle caratteristiche della classe di minoranza del set di dati originale. In questo modo si bilancia il set di dati aumentando di fatto il numero di campioni per una classe di minoranza sottorappresentata, fino a quando il set di dati non contiene un rapporto di punti uguale in tutte le classi.

Anche se gli squilibri possono essere osservati semplicemente tracciando i conteggi dei punti dati in ciascuna classe, non ci dice se influiranno molto sul modello. Fortunatamente, possiamo utilizzare le metriche delle prestazioni per valutare l'efficacia di una tecnica di upsampling nella correzione dello squilibrio di classe. La maggior parte di queste metriche riguarderà la classificazione binaria, in cui sono presenti solo due classi: una positiva e una negativa. Di solito, la classe positiva è la classe di minoranza, mentre la classe negativa è la classe di maggioranza. Due metriche popolari sono le curve ROC (Receiver Operating Characteristic) e le curve precisione-richiamo.1

Mixture of Experts | 28 agosto, episodio 70

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Vantaggi e svantaggi dell'upsampling

Vantaggi

  • Nessuna perdita di informazioni: a differenza del downsampling, che elimina i punti dati dalla classe di maggioranza, l'upsampling genera nuovi punti dati, evitando qualsiasi perdita di informazioni.
  • Aumenta i dati a costi bassi: l'upsampling è particolarmente efficace e spesso è l'unico modo per aumentare le dimensioni del set di dati su richiesta nei casi in cui i dati possono essere acquisiti solo attraverso l'osservazione. Ad esempio, alcune condizioni mediche sono semplicemente troppo rare per consentire la raccolta di più dati.

Svantaggi

  • Overfitting: poiché l'upsampling genera nuovi dati basandosi sui dati esistenti della classe minoritaria, il classificatore può subire overfitting rispetto ai dati. L'upsampling presuppone che i dati esistenti rappresentino adeguatamente la realtà; in caso contrario, il classificatore potrebbe non essere in grado di generalizzare correttamente.
  • Rumore dei dati: l'upsampling può aumentare la quantità di rumore nei dati, riducendo l'affidabilità e le prestazioni del classificatore.2
  • Complessità computazionale: aumentando la quantità di dati, l'addestramento del classificatore sarà più costoso dal punto di vista computazionale, il che può essere un problema quando si utilizza il cloud computing.2

Tecniche di upsampling

Overampling casuale

Il random oversampling è il processo di duplicazione di punti dati casuali nella classe di minoranza fino a quando la dimensione della classe di minoranza non è uguale a quella della classe di maggioranza.

Sebbene siano di natura simile, il random oversampling si distingue dal bootstrapping. Il bootstrapping è una tecnica di apprendimento d'insieme che effettua il ricampionamento da tutte le classi. Al contrario, il random oversampling effettua il ricampionamento solo dalla classe di minoranza. Il random oversampling può quindi essere inteso come una forma più specializzata di bootstrapping.

Nonostante la sua semplicità, il random oversampling presenta dei limiti. Dal momento che il random oversampling aggiunge solo punti di dati duplicati, può comportare l'overfitting.3 Ma presenta ancora numerosi vantaggi rispetto ad altri metodi: la sua facilità di implementazione, l'assenza di ipotesi restrittive sui dati e la bassa complessità temporale grazie a un algoritmo semplice.2

SMOTE

La Synthetic Minority Oversampling Technique, o SMOTE, è una tecnica di upsampling proposta per la prima volta nel 2002 che sintetizza nuovi punti dati dai punti esistenti nella classe di minoranza.4 Si basa sul seguente processo:2

  1. Trovare i K vicini più prossimi per tutti i punti dati della classe minoritaria. K di solito è 5.
  2. Ripetere i passaggi da 3 a 5 per ogni punto dati della classe di minoranza:
  3. Scegliere uno dei K vicini più prossimi (K nearest neighbors, KNN) del punto dati.
  4. Selezionare un punto casuale sul segmento di linea che collega questi due punti nello spazio delle caratteristiche per generare un nuovo esempio di output. Questo processo prende il nome di interpolazione.
  5. A seconda della quantità di upsampling desiderata, ripetere i passaggi 3 e 4 utilizzando un altro vicino più prossimo.

SMOTE contrasta il problema dell'overfitting nel random oversampling, aggiungendo nuovi dati inediti al set di dati, anziché duplicare semplicemente i dati preesistenti. Per questo motivo, alcuni ricercatori considerano SMOTE una tecnica di upsampling migliore rispetto al random oversampling.

D'altro canto, la generazione di punti dati artificiali di SMOTE aggiunge ulteriore rumore al set di dati, rendendo potenzialmente più instabile il classificatore.1 Anche i punti sintetici e il rumore della SMOTE possono inavvertitamente causare sovrapposizioni tra le classi di minoranza e maggioranza che non riflettono la realtà, causando un'eccessiva generalizzazione.5

Borderline SMOTE

Un'estensione popolare, Borderline SMOTE, viene utilizzata per combattere il problema del rumore artificiale del set di dati e per creare punti di dati "più difficili". I punti dati "più difficili" sono punti dati vicini al limite decisionale e quindi più difficili da classificare. Questi punti più difficili sono più utili per l'apprendimento del modello.2

Borderline SMOTE individua i punti della classe di minoranza che sono vicini a numerosi punti della classe di maggioranza e li inserisce in un insieme chiamato DANGER. I punti DANGER sono i punti più "difficili" da apprendere, il che è ancora una volta dovuto al fatto che sono più difficili da classificare rispetto ai punti circondati dai punti della classe di minoranza. Questo processo di selezione esclude i punti i cui vicini più prossimi appartengono esclusivamente alla classe di maggioranza, in quanto considerati rumore. Da quel momento in poi, l'algoritmo SMOTE continua normalmente utilizzando l'insieme DANGER.3

ADASYN

L'Adaptive Synthetic Sampling Approach (ADASYN) è simile alla Borderline SMOTE in quanto genera dati più difficili da apprendere per il modello. Tuttavia, mira anche a preservare la distribuzione dei dati delle classi di minoranza.6 Lo fa creando innanzitutto una distribuzione ponderata di tutti i punti della classe di minoranza in base al numero di esempi della classe di maggioranza presenti nel loro vicinato. Successivamente, utilizza più spesso i punti delle classi di minoranza più vicini alla classe di maggioranza per generare nuovi dati.

Il processo è il seguente:2

  1. Creare un modello KNN sull'intero set di dati.
  2. A ogni punto della classe di minoranza viene assegnato un "fattore di difficoltà", indicato con r, che rappresenta il rapporto tra il numero di punti della classe di maggioranza rispetto al numero totale di vicini nel KNN.
  3. Come SMOTE, i punti generati sinteticamente sono una interpolazione lineare tra i dati della classe di minoranza e i loro vicini, ma il numero di punti generati varia in base al fattore di difficoltà del punto. Questo porta a generare più punti nelle aree con meno dati della classe di minoranza e meno punti nelle aree con una maggiore presenza di tali dati.

Aumento/trasformazione dei dati

La data augmentation crea nuovi dati attraverso la creazione di varianti dei dati stessi. La data augmentation si applica in una varietà di campi del machine learning.

La forma più elementare di data augmentation consiste nel trasformare gli input grezzi del set di dati. Ad esempio, nella computer vision, possono essere utilizzate tecniche di image augmentation (ritaglio, sfocatura, mirroring e così via) per creare più immagini da far classificare al modello. Allo stesso modo, la data augmentation può essere utilizzata anche in compiti di elaborazione del linguaggio naturale, come la sostituzione di parole con sinonimi o la creazione di frasi semanticamente equivalenti.

I ricercatori hanno scoperto che la data augmentation migliora in modo efficace l'accuratezza del modello per i compiti di computer vision e NLP, in quanto aggiunge dati simili a basso costo. Tuttavia, è importante rispettare alcune precauzioni prima di mettere in pratica queste tecniche. Per le trasformazioni geometriche tradizionali, è importante valutare la "sicurezza" delle modifiche prima di applicarle. Ad esempio, la rotazione dell'immagine del numero "9", lo farebbe sembrare un "6", cambiandone il significato semantico.7

Ricerche recenti

Negli ultimi anni le estensioni SMOTE e il deep learning sono stati al centro delle tecniche di upsampling. Questi metodi tendono a migliorare le prestazioni del modello e a risolvere alcune delle carenze dell'upsampling, come l'introduzione di distorsioni nella distribuzione della classe di minoranza.

Alcuni sviluppi nella SMOTE includono una MPP-SMOTE (Minority-Predictive-Probability SMOTE), che si basa sulle probabilità stimate di vedere i campioni di ciascuna classe di minoranza.8 La MLBOTE (Multi-Label Borderline Oversampling Technique) è stata proposta per estendere SMOTE alla classificazione multi-classe.9 Entrambe hanno superato le prestazioni di tutte le varianti SMOTE esistenti e hanno mantenuto gli schemi nei dati originali.

Anche le reti neurali sono state utilizzate per sviluppare tecniche di oversampling. Le reti generative avversarie hanno suscitato un certo interesse, producendo risultati promettenti, anche se l'elevato tempo di addestramento rende questa tecnica più lenta rispetto ad altri metodi tradizionali di upsampling.10

Soluzioni correlate
IBM® watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e una minima quantità di dati.

Esplora watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda con l'esperienza leader di settore e il portfolio di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi per l'intelligenza artificiale (AI)

I servizi di AI di IBM Consulting aiutano a reinventare il modo in cui le aziende lavorano con l'AI per la trasformazione.

Esplora i servizi AI
Fasi successive

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Note a piè di pagina

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

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

3 Kumar Abishek e Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, novembre 2023, https://www.packtpub.com/product/machine-learning-for-imbalanced-data/9781801070836 (link esterno 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, 1 giugno 2002, https://www.jair.org/index.php/jair/article/view/10302 (link esterno a ibm.com).

5 Kumar Abishek e Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, November 2023. Haobo He and Edwardo Garcia, Learning from Imbalanced Data, IEEE, settembre 2009, https://ieeexplore.ieee.org/document/5128907 (link esterno 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 luglio 2019**,** https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0197-0 (link esterno a ibm.com).

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

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

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