Home topics Upsampling Che cos'è l'upsampling?
Esplora l'upsampling con watsonx.ai Iscriviti per ricevere gli aggiornamenti sull'AI
Illustrazione con collage di pittogrammi di monitor del computer, server, nuvole, punti

Data di pubblicazione: 29 aprile 2024
Collaboratori: Jacob Murel Ph.D.

L'upsampling aumenta il numero di campioni di dati in un set di dati. In questo modo, mira a correggere i dati non in equilibrio e quindi a migliorare le prestazioni del modello.

L'upsampling, altrimenti noto come oversampling, è una tecnica di ottimizzazione e trattamento dei dati che affronta gli squilibri di classe in un set di dati aggiungendo dati. L'upsampling aggiunge dati utilizzando campioni originali provenienti da classi minoritarie 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 spesso viene scambiato per upsampling nell'elaborazione digitale dei segnali (DSP). I due sono simili nello spirito ma distinti. Analogamente all'upsampling nella data science, l'upsampling per DSP crea artificialmente più campioni in un dominio di frequenza da un segnale di input (in particolare un segnale a tempo discreto) interpolando frequenze di campionamento più elevate. Questi nuovi campioni vengono generati inserendo zero nel segnale originale e utilizzando un filtro a basso passaggio per l'interpolazione. Questo è diverso dal modo in cui i dati vengono sovracampionati nel bilanciamento dei dati.

Anche l'upsampling per il bilanciamento dei dati è distinto dall'upsampling nell'elaborazione delle immagini. In quest'ultimo caso, le immagini ad alta risoluzione vengono prima ridotte nella risoluzione (rimuovendo i pixel) per calcoli più veloci, dopodiché la convoluzione riporta l'immagine alle dimensioni originali (aggiungendo pixel posteriori).

Perché la governance dell'AI è un imperativo per la scalabilità dell'intelligenza artificiale a livello aziendale

Scopri gli ostacoli all'adozione dell'AI, in particolare la mancanza di soluzioni di governance e gestione del rischio dell'AI.

Contenuti correlati

Registrati per leggere la guida sui foundation model

Perché utilizzare l'upsampling?

L'upsampling è un modo efficace per affrontare lo squilibrio 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 da 90% di gatti e 10% di 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 dalle caratteristiche della classe minoritaria 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 visti 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 curve di richiamo preciso.1

Vantaggi e svantaggi dell'upsampling
Vantaggi
  • Nessuna perdita di informazioni: a differenza del downsampling, che elimina i punti dati dalla classe maggioritaria, l'upsampling genera nuovi punti dati, evitando qualsiasi perdita di informazioni.
  • Aumenta i dati a bassi costi: 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 crea nuovi dati in base ai dati della classe di minoranza esistente, il classificatore può essere sovraadattato ai dati. L'upsampling presuppone che i dati esistenti catturino adeguatamente la realtà; in caso contrario, il classificatore potrebbe non essere in grado di generalizzare molto bene.
  • 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, la formazione del classificatore sarà più costosa dal punto di vista computazionale, il che può essere un problema quando si utilizza il cloud computing.2
Tecniche di upsampling
Overampling casuale

L'oversampling casuale è il processo di duplicazione di punti dati casuali nella classe minoritaria fino a quando la dimensione della classe minoritaria non è uguale alla classe maggioritaria.

Sebbene siano di natura simile, l'oversampling casuale è distinto dal bootstrapping. Il bootstrapping è una tecnica di apprendimento dell'insieme che ricampiona da tutte le classi. Al contrario, l'oversampling casuale ricampiona solo dalla classe di minoranza. L'oversampling casuale può quindi essere inteso come una forma più specializzata di bootstrapping.

Nonostante la sua semplicità, l'oversampling casuale presenta tuttavia dei limiti. Dal momento che l'oversampling casuale 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, la mancanza di assunzioni estese sui dati e la complessità a breve termine a causa di 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 È costituita dal seguente processo:2

  1. Trova i quartieri K più vicini per tutti i punti dati delle classi minoritarie. K è solitamente 5.
  2. Ripeti i passaggi da 3 a 5 per ogni punto dati della classe di minoranza:
  3. Scegli uno dei K-nearest neighbors (KNN) del punto dati.
  4. Seleziona un punto casuale sul segmento di linea che collega questi due punti nello spazio della funzione per generare un nuovo esempio di output. Questo processo prende il nome di interpolazione.
  5. A seconda della quantità di upsampling desiderata, ripeti i passaggi 3 e 4 utilizzando un altro nearest neighbor.

SMOTE contrasta il problema dell'overfitting nell'oversampling casuale, 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 all'oversampling casuale.

D'altro canto, la generazione di punti dati artificiali di SMART aggiunge ulteriore rumore al set di dati, rendendo potenzialmente più instabile il classificatore.1 Anche i punti sintetici e il rumore proveniente dalla 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 set di PERICOLO. I punti PERICOLO sono i punti dati "difficili" da apprendere, il che è ancora una volta dovuto al fatto che sono più difficili da classificare rispetto ai punti circondati da punti di classe minoritaria. Questo processo di selezione esclude i punti i cui nearest neighbors sono punti solo della classe maggioritaria, conteggiati come rumore. Da lì, l'algoritmo SMOTE continua normalmente utilizzando questo set PERICOLO.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 di minoranza in base al numero di esempi di classe di maggioranza nel suo neighborhood. Da lì, 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. Crea 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 neighbors nel KNN.
  3. Come SMOTE, i punti generati sinteticamente sono un'interpolazione lineare tra i dati di minoranza e i suoi neighbors, ma il numero di punti generati scala in base al fattore di difficoltà del punto. Quello che fa è generare più punti nelle aree con meno dati di minoranza e meno punti nelle aree con più dati.
Aumento/trasformazione dei dati

L'aumento dei dati crea nuovi dati attraverso la creazione di varianti dei dati stessi. L'aumento dei dati si applica in una varietà di campi dell'apprendimento automatico.

La forma più elementare di aumento dei dati consiste nel trasformare gli input grezzi del set di dati. Ad esempio, nella computer vision, gli aumenti delle immagini (ritaglio, sfocatura, mirroring e così via) possono essere utilizzati per creare più immagini che il modello deve classificare. Allo stesso modo, l'aumento dei dati può essere utilizzato anche in attività di elaborazione del linguaggio naturale, come la sostituzione di parole con sinonimi o la creazione di frasi semanticamente equivalenti.

I ricercatori hanno scoperto che l'aumento dei dati aumenta in modo efficace l'accuratezza del modello per le attività 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 gli aumenti geometrici tradizionali, la "sicurezza" delle trasformazioni deve essere esaminata prima dell'esecuzione. Ad esempio, la rotazione l'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 SMOTE (MPP-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 la SMOTE nella classificazione a più classi.9 Entrambe hanno superato le prestazioni di tutte le varianti SMOTE esistenti e hanno mantenuto i modelli nei dati originali.

Le reti neurali sono state utilizzate anche per sviluppare tecniche di oversampling. Le Generative Adversarial Networks 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

Risorse correlate Che cos'è il downsampling?

Il downsampling riduce il numero di esempi di dati in un set di dati. In tal modo, mira a correggere i dati sbilanciati e quindi a migliorare le prestazioni del modello.

Cos'è l'overfitting?

Nell'apprendimento automatico, l'overfitting si verifica quando un algoritmo si adatta in modo troppo preciso o addirittura precisamente ai suoi dati di addestramento, dando luogo a un modello che non è in grado di effettuare previsioni o conclusioni accurate da dati diversi rispetto ai dati di addestramento.

Che cos'è il machine learning (ML)?

L'apprendimento automatico (ML) è una branca dell'AI e dell'informatica che si concentra sull'utilizzo di dati e algoritmi che consentono all'AI di imitare il modo in cui gli esseri umani imparano, migliorandone gradualmente l'accuratezza.

Fai il passo successivo

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 Prenota una demo live
Note a piè di pagina

1 Haobo He and 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 and 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 and 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 da 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 and Mounir Abdelaziz, Machine Learning for Imbalanced Data, Packt, Novembre 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 and 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, and 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 and 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).