Cos'è l'algebra lineare per il machine learning?

Autore

Fangfang Lee

Developer Advocate

IBM

Che cos'è l'algebra lineare per il machine learning?

Nel machine learning (ML), l'algebra lineare prevede l'uso di operazioni matematiche per rappresentare e manipolare dati, parametri e operazioni all'interno di modelli di ML. Fornisce il linguaggio e gli strumenti per esprimere il modo in cui i dati fluiscono attraverso i modelli e come i modelli "apprendono".

I potenti algoritmi di machine learning moderni e l'AI generativa, al loro interno, sono alimentati dall'algebra lineare. Che si tratti di addestrare una rete neurale, creare un sistema di raccomandazioni o applicare l'analisi dei componenti principali (PCA) a un set di dati complesso e ad alta dimensione, i professionisti utilizzano l'algebra lineare per eseguire calcoli in massa.

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Perché l'algebra lineare è importante

Dagli albori fino ai recenti progressi del deep learning, l'algebra lineare è onnipresente nel panorama del machine learning (ML). Molti modelli di machine learning di base sono fondamentalmente espressi e risolti utilizzando i principi dell'algebra lineare. Nella pratica, i dati sono raramente un numero semplice e singolo, presentandosi invece sotto forma di set di dati, ovvero raccolte di punti dati spesso disordinate. L'algebra lineare offre gli strumenti per organizzare, manipolare e analizzare questi dati in modo efficiente.

Consente ai professionisti di manipolare oggetti come vettori, matrici e tensori per rappresentare dati strutturati (spesso dati tabulari) e dati non strutturati come immagini o video. Questi concetti apparentemente astratti sono il linguaggio dei dati per l'informatica e i data scientist. Ad esempio, un'immagine può essere rappresentata come una matrice di valori di pixel e una raccolta di caratteristiche che descrivono una casa (come quartiere, età e metratura) può essere rappresentata come un vettore in un modello di regressione lineare. La regressione lineare modella l'output come una combinazione lineare delle caratteristiche di input, fungendo da classico esempio di come funziona l'algebra lineare nel mondo reale.  

Concetti chiave dell'algebra lineare

Nel machine learning e nella data science, l'algebra lineare è il framework utilizzato per descrivere e lavorare con i dati. Spiega come i numeri vengono disposti, combinati e trasformati, che si tratti di moltiplicare le matrici in una rete neurale, trovare autovalori nella PCA o ridurre le dimensioni con la decomposizione dei valori singolari (SVD).  

Rappresentazione e manipolazione dei dati

Al suo livello più elementare, l'algebra lineare fornisce gli strumenti per rappresentare e lavorare con i dati in forme strutturate. La maggior parte dei workflow di machine learning inizia organizzando i dati in formati numerici e ogni struttura (scalare, vettoriale, matrice e tensore) ha uno scopo diverso.

  • Uno scalare è il blocco di costruzione più semplice, ovvero un singolo valore numerico, come 5 o 2,3. Gli scalari spesso rappresentano parametri, fattori di scala o singole misurazioni.

  • Un vettore è un array ordinato di numeri, solitamente scritto come colonna o riga. I vettori possono rappresentare qualsiasi cosa, da un elenco di caratteristiche che descrivono un singolo punto dati alle coordinate di una posizione nello spazio. Ad esempio, il vettore [3,5,7] potrebbe rappresentare il numero di visite, acquisti e resi per un cliente.

  • Una matrice è un array bidimensionale di numeri disposti in righe e colonne. Un set di dati in cui ogni riga è un punto dati e ogni colonna è una caratteristica forma naturalmente una matrice. Le matrici sono fondamentali per l'algebra lineare perché consentono un'archiviazione efficiente dei dati. Operazioni come la moltiplicazione scalare (moltiplicare ogni elemento di una matrice per un numero costante) e la moltiplicazione di matrici (combinare due matrici per applicare una trasformazione o calcolare relazioni) sono pervasive negli algoritmi.

  • Un tensore è una generalizzazione di scalari, vettori e matrici a dimensioni superiori. Ad esempio, un'immagine a colori potrebbe essere memorizzata come tensore 3D in cui altezza, larghezza e canali di colore formano tre assi separati. Nel deep learning, i tensori sono la struttura dati standard per l'immissione di informazioni nelle reti neurali.

Il prodotto scalare è un modo per moltiplicare due vettori per produrre un singolo scalare. È ampiamente utilizzato per calcolare le similarità tra vettori, un passaggio cruciale in molti sistemi di raccomandazione. La trasposizione di una matrice, che capovolge righe e colonne, è un'altra operazione fondamentale che consente di allineare le dimensioni per la moltiplicazione e scoprire modelli strutturali nei dati.

L'algebra lineare consente l'espressione di set di dati complessi in modo che gli algoritmi possano comprendere ed elaborare, supportando quindi la costruzione di modelli complessi attraverso una pletora di dati raccolti dal mondo reale. 

A comparison chart illustrating scalar, vector, matrix, and tensor concepts. The image uses colorful numerical representations to differentiate each mathematical structure. Numbers such as '1', '2', '5', and '6' are clearly visible within the matrix and tensor examples.

Comprendere gli algoritmi

Molti algoritmi di machine learning si basano su un sistema di equazioni lineari. La regressione lineare è un algoritmo semplice ma potente utilizzato per prevedere valori continui. Il processo di ricerca della linea o del piano "più adatto" che riduca al minimo l'errore tra i valori previsti e quelli effettivi spesso si riduce alla risoluzione di un sistema di equazioni lineari. Ad esempio, quando si prevedono i prezzi delle case in base alla metratura e al numero di camere da letto, è necessario trovare coefficienti (pesi) per soddisfare equazioni come:

 price=w1*squarefootage+w2*numberofbedrooms+b

... dove  w1w2 e  b  sono i coefficienti incogniti da risolvere. Questo può essere rappresentato e risolto utilizzando matrici. Tecniche come i "minimi quadrati" vengono utilizzate per trovare le soluzioni approssimative a questi sistemi quando non esiste una soluzione esatta, come spesso accade con dati rumorosi del mondo reale. In altre parole, l'approssimazione di una funzione di perdita è rappresentata come una raccolta di equazioni lineari risolte con il calcolo.

Algoritmi più complessi, come quelli presenti nel deep learning e nelle reti neurali, si basano fortemente su operazioni come la moltiplicazione massiva di matrici per l'elaborazione delle informazioni attraverso diversi livelli. Ogni livello in una rete neurale esegue una trasformazione lineare sui suoi input, che è essenzialmente una trasformazione di matrice in cui il vettore di input viene moltiplicato per una matrice di peso. Ciò consente alla rete di apprendere modelli e relazioni complessi all'interno dei dati.

Riduzione della dimensionalità

Molti set di dati del mondo reale contengono un gran numero di caratteristiche (o variabili) per ogni punto dati: a volte centinaia, migliaia o addirittura milioni. Questi sono chiamati dati ad alta dimensionalità. Anche se un numero maggiore di caratteristiche potrebbe sembrare rendere i modelli più accurati, spesso rende l'apprendimento più difficile. I dati ad alta dimensionalità possono essere costosi da elaborare, richiedere molta memoria per la memorizzazione e risultare soggetti a overfitting, ovvero quando un modello memorizza il rumore invece di apprendere schemi significativi.

Un'altra sfida è la dimensionalità. Con l'aumentare del numero di dimensioni, i punti dati diventano sempre più scarsi nello spazio delle caratteristiche e la nozione di "vicinanza" tra i punti diventa meno significativa. Questa scarsità rende difficile per gli algoritmi rilevare in modo affidabile le relazioni. Pertanto, disporre degli strumenti giusti per ridurre la quantità di caratteristiche ed estrarre i segnali dal rumore è fondamentale. La riduzione della dimensionalità è il processo di trasformazione dei dati da uno spazio ad alta dimensione in uno a dimensione inferiore, preservando il più possibile la struttura originale e le informazioni importanti. Riducendo il numero di caratteristiche, i professionisti possono semplificare i modelli, migliorare la generalizzazione, accelerare i calcoli e creare spesso utili visualizzazioni dei dati.

L'algebra lineare è al centro di molte tecniche di riduzione della dimensionalità. Ad esempio, l'analisi delle componenti principali utilizza concetti come autovalori e autovettori per trovare nuovi assi (componenti principali) che catturino la massima varianza nei dati, rappresentando un attributo significativo nel set di dati ad alta dimensione. Proiettando i dati sui primi componenti principali, i professionisti mantengono gli schemi più importanti scartando le variazioni meno utili.

Ad esempio, immaginiamo un set di dati che descriva migliaia di clienti con 100 caratteristiche diverse ciascuno (età, reddito, spesa in varie categorie di prodotti, ecc.). Analizzare tutte le 100 caratteristiche contemporaneamente sarebbe lento e complesso, e molte di esse potrebbero essere ridondanti (ad esempio, l'interesse per "attrezzatura sportiva" spesso si sovrappone a quello per "attrezzatura da esterno"). La PCA può ridurre il set di dati a soli 2 o 3 componenti che riassumono la maggior parte delle variazioni nel comportamento dei clienti, facilitando la visualizzazione e l'esecuzione degli algoritmi a valle in modo più efficiente.

In breve, la riduzione della dimensionalità è un modo per distillare dati complessi nelle loro parti più informative, e l'algebra lineare fornisce il meccanismo matematico per renderlo possibile.

Analisi dei componenti principali

Autovalori, autovettori e autodecomposizione descrivono insieme le modalità di comportamento fondamentali di una trasformazione o di un sistema lineare:

  • Autovettore: immagina una trasformazione lineare (come allungare o ruotare uno spazio vettoriale). Un autovettore di una matrice quadrata è un vettore diverso da zero che, quando tale trasformazione viene applicata ad esso, cambia solo di un fattore scalare. Non cambia direzione. Si tratta di una direzione speciale nei dati che rimane stabile sotto la trasformazione.
  • Autovalore: è il fattore scalare con cui un autovettore viene moltiplicato. Indica quanto l'autovettore viene allungato o compresso durante la trasformazione. Nella PCA, autovalori più grandi corrispondono a componenti principali che catturano una quantità maggiore di varianza nei dati.
  • Autodecomposizione: si tratta del processo di scomposizione di una matrice quadrata in un insieme di autovettori e autovalori. Per una data matrice, se si riescono a trovare i suoi autovettori e autovalori, si può ricostruire la matrice originale da essi. Nella PCA, l'autodecomposizione della matrice di covarianza dei dati consente l'identificazione delle componenti principali (autovettori) che meglio rappresentano la varianza nei dati, ordinate in base agli autovalori corrispondenti.

Un'altra tecnica potente, la decomposizione a valore singolare (SVD), svolge anch'essa un ruolo cruciale nella riduzione della dimensionalità ed è fondamentale in aree come la fattorizzazione di matrici nei sistemi di raccomandazione. Sebbene correlata all'autodecomposizione, la SVD può essere applicata a qualsiasi matrice (non solo alle matrici quadrate) e offre un modo più generale per scomporre una matrice nelle sue parti costituenti, rivelando le strutture sottostanti e riducendo efficacemente le dimensioni. Ad esempio, nei sistemi di raccomandazione, SVD aiuta a scomporre una matrice di interazione utente-elemento in matrici di dimensioni inferiori che rappresentano caratteristiche latenti degli utenti e degli elementi, che vengono poi utilizzate per prevedere nuove raccomandazioni.

Ottimizzazione

Molti modelli di machine learning comportano problemi di ottimizzazione, in cui l'obiettivo è trovare il miglior set di parametri per un modello che minimizzi una funzione di errore o massimizzi una funzione di verosimiglianza. Algoritmi come la discesa del gradiente, ampiamente utilizzati nell'addestramento di reti neurali e altri algoritmi di machine learning, si basano sull'algebra lineare per calcolare i gradienti (vettori che puntano nella direzione della salita più ripida di una funzione) e aggiornare i parametri del modello in modo iterativo.

Comprendere l'ottimizzazione significa anche comprendere le proprietà delle matrici coinvolte in questi calcoli. È qui che concetti come il determinante e la matrice identità diventano rilevanti. Il determinante di una matrice quadrata è un singolo numero che fornisce informazioni cruciali sulla matrice. Ad esempio, un determinante diverso da zero indica che la matrice è invertibile (nel senso che ha una corrispondente operazione di inversione della matrice), il che è critico per risolvere sistemi di equazioni lineari in modo univoco. Se il determinante è zero, il sistema potrebbe non avere una soluzione univoca o infinitamente numerosa, indicando problemi come l'indipendenza lineare (dove un vettore in un insieme può essere espresso come una combinazione lineare di altri). Una matrice identità (una matrice quadrata con uno sulla diagonale principale e zeri altrove) è speciale perché quando si moltiplica una matrice per la matrice identità, la matrice originale rimane invariata, comportandosi come il numero "1" nella moltiplicazione scalare.

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.

Strumenti e ulteriori approfondimenti

La buona notizia è che gli specialisti di ML non devono eseguire manualmente questi calcoli complessi. Le librerie come NumPy in Python forniscono funzioni altamente ottimizzate per tutti questi concetti di algebra lineare, rendendola lo standard di fatto per il calcolo numerico nel machine learning. Ad esempio, numpy.linalg.eig() può calcolare autovalori ed autovettori, mentre numpy.dot() gestisce con facilità prodotti scalari e moltiplicazioni di matrici. Framework come TensorFlow (popolare nel deep learning) utilizzano molto anche l'algebra lineare dietro le quinte, attraverso l'astrazione di dettagli di basso livello in modo che gli utenti possano concentrarsi sulla creazione di modelli.

Questa introduzione all'algebra lineare per il machine learning si ferma alla superficie. Concetti come trasformazione lineare e trasformazione di matrici descrivono come i dati possono essere manipolati e rimodellati, ad esempio ruotando un'immagine o ridimensionandone le caratteristiche. Anche la comprensione di tipi di matrici come la matrice di identità (che lascia invariati i vettori quando moltiplicata) e la matrice ortogonale (dove l'inversa è semplicemente la trasposizione, semplificando i calcoli) è utile. Anche se in genere non si esegue manualmente l'eliminazione gaussiana (un algoritmo per risolvere sistemi di equazioni lineari) nel machine learning, comprenderne i principi illumina il modo in cui questi sistemi vengono risolti computazionalmente. L'indipendenza lineare è anche critica per comprendere l'unicità delle soluzioni e la base di uno spazio vettoriale (l'insieme di tutte le possibili combinazioni lineari di un insieme di vettori).

In definitiva, una solida conoscenza dei concetti di algebra lineare consente ai professionisti dell'ML non solo di utilizzare algoritmi di machine learning precostituiti, ma anche di comprenderne veramente il funzionamento interno, eseguirne il debug in modo efficace e persino sviluppare nuove soluzioni. È il cavallo di battaglia silenzioso che ha guidato l'ML per decenni e continua ad essere essenziale nel futuro dell'intelligenza artificiale.

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 con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

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