Glossario

Macchina vettoriale di supporto (SVM)

Scopri la potenza delle Macchine a Vettori di Supporto (SVM) per la classificazione, la regressione e il rilevamento di anomalie, con applicazioni e approfondimenti reali.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La Support Vector Machine (SVM) è un popolare e potente algoritmo di Machine Learning (ML) supervisionato utilizzato principalmente per compiti di classificazione, sebbene sia efficace anche per la regressione (Support Vector Regression - SVR) e per il rilevamento di anomalie. Sviluppati negli anni '90, gli SVM funzionano trovando un confine ottimale, chiamato iperpiano, che separa al meglio i punti di dati appartenenti a classi diverse in uno spazio altamente dimensionale. L'idea chiave è quella di massimizzare il margine - la distanza tra l'iperpiano e i punti dati più vicini (vettori di supporto) di ciascuna classe - che spesso porta a buone prestazioni di generalizzazione su dati non visti.

Come funziona l'Svm

Il principio fondamentale di SVM consiste nel trovare l'iperpiano ideale per dividere un insieme di dati. Per i dati che possono essere separati da una linea retta o da un piano (dati linearmente separabili), SVM identifica l'iperpiano che crea il maggior divario possibile tra le classi. I punti dei dati più vicini a questo iperpiano, che sono fondamentali per definirne la posizione e l'orientamento, sono noti come vettori di supporto. Questa attenzione ai punti più impegnativi vicino al confine rende le SVM efficienti dal punto di vista della memoria, poiché solo questi vettori di supporto sono necessari per definire il modello dopo l'addestramento.

Per gli insiemi di dati in cui le classi non possono essere separate da un confine lineare (dati non linearmente separabili), le SVM utilizzano una tecnica chiamata kernel trick. Questo metodo intelligente permette alle SVM di mappare i dati originali in uno spazio di dimensioni superiori in cui potrebbe essere possibile una separazione lineare, senza calcolare esplicitamente le coordinate in questo nuovo spazio. Le funzioni kernel più comuni sono:

  • Kernel lineare: Utilizzato per dati linearmente separabili.
  • Kernel polinomiale: Mappa i dati in uno spazio polinomiale di grado superiore.
  • Kernel della funzione di base radiale (RBF): Una scelta popolare che può gestire relazioni complesse, mappando i dati in uno spazio infinito-dimensionale.
  • Kernel sigmoide: Simile alla funzione di attivazione utilizzata nelle reti neurali.

La scelta del kernel e dei suoi parametri è fondamentale e spesso richiede un'attenta regolazione degli iperparametri.

Rilevanza e applicazioni

Le SVM rimangono importanti nonostante l'ascesa del Deep Learning (DL), soprattutto in scenari con dati ad alta densità (molte caratteristiche) ma con campioni di addestramento limitati. Sono note per le loro garanzie teoriche e la loro robustezza, soprattutto quando esiste un chiaro margine di separazione. Storicamente, le SVM combinate con estrattori di caratteristiche come l'istogramma dei gradienti orientati (HOG) erano lo stato dell'arte per compiti come il rilevamento di oggetti, come si può notare nell'evoluzione del rilevamento di oggetti.

Le applicazioni più comuni includono:

  • Classificazione delle immagini: Classificazione delle immagini in categorie predefinite, come l'identificazione di cifre scritte a mano o la distinzione tra diversi tipi di oggetti. Ad esempio, una SVM potrebbe essere addestrata per classificare le immagini mediche come contenenti o meno tumori, sulla base delle caratteristiche estratte.
  • Categorizzazione del testo: Ordinamento dei documenti in argomenti, analisi del sentiment (recensioni positive/negative) e rilevamento dello spam. Ad esempio, la classificazione degli articoli di notizie in categorie come "sport", "politica" o "tecnologia".
  • Rilevamento dei volti: Identificazione di volti all'interno di immagini, spesso come fase preliminare al riconoscimento.
  • Bioinformatica: Classificare proteine, geni o campioni di pazienti sulla base di dati biologici complessi.
  • Riconoscimento della scrittura a mano: Utilizzato nei sistemi di riconoscimento dei caratteri scritti a mano.

Vantaggi e limiti

Vantaggi:

  • Efficace negli spazi ad alta dimensione, anche quando il numero di dimensioni supera il numero di campioni.
  • Efficienti dal punto di vista della memoria perché utilizzano solo un sottoinsieme di punti di addestramento (vettori di supporto) nella funzione decisionale.
  • Versatile grazie alle diverse funzioni del kernel che permettono di adattarsi a vari tipi di dati.
  • In genere raggiunge un'elevata precisione quando le classi sono ben separate.

Limitazioni:

  • Può essere computazionalmente costoso e lento da addestrare su set di dati molto grandi.
  • Le prestazioni dipendono fortemente dalla scelta della funzione kernel e degli iperparametri.
  • Meno efficace su set di dati rumorosi in cui le classi si sovrappongono in modo significativo.
  • Le SVM non forniscono direttamente stime di probabilità; queste richiedono un'ulteriore elaborazione (ad esempio, la scalatura di Platt).

Svm rispetto ad altri algoritmi

Rispetto ad algoritmi più semplici come la Regressione Logistica, le SVM mirano a massimizzare il margine piuttosto che a trovare un confine di separazione, il che può portare a una migliore generalizzazione. A differenza degli alberi decisionali o delle foreste casuali, le SVM costruiscono un singolo iperpiano ottimale. Mentre i moderni modelli di deep learning come Ultralytics YOLO eccellono nell'estrazione automatica delle caratteristiche dai dati grezzi (come i pixel nella computer vision), le SVM spesso richiedono un'attenta progettazione delle caratteristiche ma possono dare buoni risultati su insiemi di dati più piccoli o su tipi specifici di dati strutturati. Le implementazioni più diffuse includono LibSVM e il modulo SVM di scikit-learn. L'addestramento e la gestione di questi modelli possono essere semplificati utilizzando piattaforme come Ultralytics HUB.

Leggi tutto