IA 101

Che cos’è la Riduzione della Dimensionalità?

mm

Che cos’è la Riduzione della Dimensionalità?

Riduzione della dimensionalità è un processo utilizzato per ridurre la dimensionalità di un set di dati, prendendo molte caratteristiche e rappresentandole come meno caratteristiche. Ad esempio, la riduzione della dimensionalità potrebbe essere utilizzata per ridurre un set di dati di venti caratteristiche a solo alcune caratteristiche. La riduzione della dimensionalità è comunemente utilizzata in compiti di apprendimento non supervisionato per creare automaticamente classi a partire da molte caratteristiche. Al fine di comprendere meglio perché e come la riduzione della dimensionalità viene utilizzata, esamineremo i problemi associati ai dati ad alta dimensionalità e i metodi più popolari per ridurre la dimensionalità.

Più Dimensioni Portano a Overfitting

La dimensionalità si riferisce al numero di caratteristiche/colonne all’interno di un set di dati.

Si presume spesso che nell’apprendimento automatico più caratteristiche siano meglio, poiché creano un modello più preciso. Tuttavia, più caratteristiche non si traducono necessariamente in un modello migliore.

Le caratteristiche di un set di dati possono variare notevolmente in termini di utilità per il modello, con molte caratteristiche di scarsa importanza. Inoltre, più caratteristiche il set di dati contiene, più campioni sono necessari per garantire che le diverse combinazioni di caratteristiche siano ben rappresentate all’interno dei dati. Pertanto, il numero di campioni aumenta in proporzione con il numero di caratteristiche. Più campioni e più caratteristiche significano che il modello deve essere più complesso e, poiché i modelli diventano più complessi, diventano più sensibili all’overfitting. Il modello apprende i modelli nei dati di training troppo bene e non riesce a generalizzare ai dati fuori dal campione.

Ridurre la dimensionalità di un set di dati ha diversi vantaggi. Come menzionato, modelli più semplici sono meno soggetti a overfitting, poiché il modello deve fare meno ipotesi su come le caratteristiche sono correlate tra loro. Inoltre, meno dimensioni significano meno potenza di calcolo necessaria per addestrare gli algoritmi. Allo stesso modo, meno spazio di archiviazione è necessario per un set di dati che ha una dimensionalità inferiore. Ridurre la dimensionalità di un set di dati può anche consentire di utilizzare algoritmi che non sono adatti per set di dati con molte caratteristiche.

Metodi Comuni di Riduzione della Dimensionalità

La riduzione della dimensionalità può essere effettuata mediante selezione delle caratteristiche o ingegneria delle caratteristiche. La selezione delle caratteristiche è dove l’ingegnere identifica le caratteristiche più rilevanti del set di dati, mentre l’ingegneria delle caratteristiche è il processo di creazione di nuove caratteristiche combinando o trasformando altre caratteristiche.

La selezione e l’ingegneria delle caratteristiche possono essere eseguite in modo programmato o manuale. Quando si selezionano e si progettano manualmente le caratteristiche, è tipico visualizzare i dati per scoprire le correlazioni tra le caratteristiche e le classi. Eseguire la riduzione della dimensionalità in questo modo può essere piuttosto dispendioso in termini di tempo e quindi alcuni dei modi più comuni per ridurre la dimensionalità coinvolgono l’utilizzo di algoritmi disponibili in librerie come Scikit-learn per Python. Questi algoritmi comuni di riduzione della dimensionalità includono: Analisi dei Componenti Principali (PCA), Decomposizione ai Valori Singolari (SVD) e Analisi Discriminante Lineare (LDA).

Gli algoritmi utilizzati nella riduzione della dimensionalità per compiti di apprendimento non supervisionato sono tipicamente PCA e SVD, mentre quelli utilizzati per la riduzione della dimensionalità dell’apprendimento supervisionato sono tipicamente LDA e PCA. Nel caso di modelli di apprendimento supervisionato, le nuove caratteristiche generate vengono semplicemente inserite nel classificatore di apprendimento automatico. Nota che gli utilizzi descritti qui sono solo casi d’uso generici e non le uniche condizioni in cui queste tecniche possono essere utilizzate. Gli algoritmi di riduzione della dimensionalità descritti sopra sono semplicemente metodi statistici e vengono utilizzati al di fuori dei modelli di apprendimento automatico.

Analisi dei Componenti Principali

Foto: Matrice con componenti principali identificati

Analisi dei Componenti Principali (PCA) è un metodo statistico che analizza le caratteristiche di un set di dati e riassume le caratteristiche più influenti. Le caratteristiche del set di dati vengono combinate insieme in rappresentazioni che mantengono la maggior parte delle caratteristiche dei dati, ma sono distribuite su meno dimensioni. Puoi pensare a questo come “schacciare” i dati verso il basso da una rappresentazione a più dimensioni a una con solo alcune dimensioni.

Ad esempio, pensa a come potresti descrivere il vino. Mentre è possibile descrivere il vino utilizzando molte caratteristiche molto specifiche come i livelli di CO2, i livelli di aerazione, ecc., tali caratteristiche specifiche potrebbero essere relativamente inutili quando si tenta di identificare un tipo specifico di vino. Invece, sarebbe più opportuno identificare il tipo in base a caratteristiche più generali come il sapore, il colore e l’età. La PCA può essere utilizzata per combinare caratteristiche più specifiche e creare caratteristiche più generali, utili e meno soggette a overfitting.

La PCA viene eseguita determinando come le caratteristiche di input variano dalla media rispetto a se stesse, determinando se esistono relazioni tra le caratteristiche. Per fare ciò, viene creata una matrice di covarianza, che stabilisce una matrice composta dalle covarianze rispetto alle possibili coppie di caratteristiche del set di dati. Ciò viene utilizzato per determinare le correlazioni tra le variabili, con una covarianza negativa che indica una correlazione inversa e una correlazione positiva che indica una correlazione positiva.

I componenti principali (più influenti) del set di dati vengono creati combinando linealmente le variabili iniziali, utilizzando concetti di algebra lineare chiamati autovalori e autovettori. Le combinazioni vengono create in modo che i componenti principali non siano correlati tra loro. La maggior parte delle informazioni contenute nelle variabili iniziali viene compressa nei primi pochi componenti principali, il che significa che vengono create nuove caratteristiche (i componenti principali) che contengono le informazioni dal set di dati originale in uno spazio a dimensione inferiore.

Decomposizione ai Valori Singolari

Foto: By Cmglee – Lavoro proprio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Decomposizione ai Valori Singolari (SVD) è utilizzata per semplificare i valori all’interno di una matrice, riducendo la matrice ai suoi componenti costitutivi e rendendo più facili i calcoli con quella matrice. La SVD può essere utilizzata per matrici a valori reali e complessi, ma per gli scopi di questa spiegazione, esamineremo come decomporre una matrice di valori reali.

Supponiamo di avere una matrice composta da dati a valori reali e il nostro obiettivo è ridurre il numero di colonne/caratteristiche all’interno della matrice, simile all’obiettivo della PCA. Come la PCA, la SVD comprime la dimensionalità della matrice preservando la maggior parte della variabilità della matrice. Se vogliamo operare sulla matrice A, possiamo rappresentare la matrice A come tre altre matrici chiamate U, D e V. La matrice A è composta da elementi x * y, mentre la matrice U è composta da elementi X * X (è una matrice ortogonale). La matrice V è una matrice ortogonale diversa che contiene elementi y * y. La matrice D contiene elementi x * y ed è una matrice diagonale.

Per decomporre i valori per la matrice A, dobbiamo convertire i valori singolari originali della matrice in valori diagonali trovati all’interno di una nuova matrice. Quando si lavora con matrici ortogonali, le loro proprietà non cambiano se vengono moltiplicate per altri numeri. Pertanto, possiamo approssimare la matrice A sfruttando questa proprietà. Quando moltiplichiamo le matrici ortogonali insieme con una trasposta della matrice V, il risultato è una matrice equivalente alla nostra matrice A originale.

Quando la matrice A viene decomposta in matrici U, D e V, queste matrici contengono i dati trovati nella matrice A. Tuttavia, le colonne più a sinistra delle matrici conterranno la maggior parte dei dati. Possiamo prendere solo queste prime colonne e avere una rappresentazione della matrice A che ha molte meno dimensioni e la maggior parte dei dati all’interno di A.

Analisi Discriminante Lineare

 

Sinistra: Matrice prima dell’LDA, Destra: Asse dopo l’LDA, ora separabile

Analisi Discriminante Lineare (LDA) è un processo che prende dati da un grafico multidimensionale e li proietta su un grafico lineare. Puoi immaginare questo pensando a un grafico bidimensionale pieno di punti di dati appartenenti a due classi diverse. Supponi che i punti siano sparsi in modo tale che nessuna linea possa essere disegnata per separare nettamente le due classi diverse. Per gestire questa situazione, i punti trovati nel grafico 2D possono essere ridotti a un grafico 1D (una linea). Questa linea avrà tutti i punti di dati distribuiti su di essa e potrebbe essere divisa in due sezioni che rappresentano la migliore separazione possibile dei dati.

Quando si esegue l’LDA, ci sono due obiettivi principali. Il primo obiettivo è minimizzare la varianza per le classi, mentre il secondo obiettivo è massimizzare la distanza tra le medie delle due classi. Questi obiettivi vengono raggiunti creando un nuovo asse che esisterà nel grafico 2D. L’asse appena creato agisce per separare le due classi in base agli obiettivi descritti in precedenza. Dopo che l’asse è stato creato, i punti trovati nel grafico 2D vengono posizionati lungo l’asse.

Ci sono tre passaggi necessari per spostare i punti originali in una nuova posizione lungo il nuovo asse. Nel primo passaggio, la distanza tra le medie delle classi individuali (la varianza tra classi) viene utilizzata per calcolare la separabilità delle classi. Nel secondo passaggio, la varianza all’interno delle diverse classi viene calcolata, determinando la distanza tra il campione e la media per la classe in questione. Nel passaggio finale, lo spazio a dimensionalità inferiore che massimizza la varianza tra le classi viene creato.

La tecnica LDA ottiene i migliori risultati quando le medie per le classi di destinazione sono lontane tra loro. L’LDA non può separare efficacemente le classi con un asse lineare se le medie per le distribuzioni si sovrappongono.

Blogger e programmatore con specializzazioni in Machine Learning e Deep Learning argomenti. Daniel spera di aiutare gli altri a utilizzare il potere dell'AI per il bene sociale.