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 il rilevamento di anomalie. Sviluppati negli anni '90, gli SVM, si legge su Wikipedia, 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 di formazione 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:

  • Lineare: Per dati separabili linearmente.
  • Polinomiale: Mappa i dati in dimensioni superiori utilizzando funzioni polinomiali.
  • Funzione di base radiale (RBF): Una scelta popolare per relazioni complesse e non lineari.
  • Sigmoide: Simile alla funzione di attivazione utilizzata nelle reti neurali (NN).

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: Categorizzare le immagini in base al loro contenuto (ad esempio, distinguere tra diversi tipi di fiori o animali). Le SVM possono essere efficaci se utilizzate con caratteristiche artigianali estratte dalle immagini, in particolare su insiemi di dati di dimensioni moderate.
  • Categorizzazione del testo: Classificazione di documenti di testo in categorie predefinite, come ad esempio il rilevamento di e-mail di spam o l'analisi del sentiment delle recensioni dei clienti. Le SVM gestiscono bene i dati testuali ad alta dimensionalità (come le caratteristiche TF).
  • Bioinformatica: Utilizzata per compiti come la classificazione delle proteine o la diagnosi del cancro basata sui dati di espressione genica, dove il numero di caratteristiche può essere molto elevato rispetto al numero di campioni.
  • Riconoscimento facciale: Identificazione o verifica di individui in base ai tratti del viso, spesso come parte di un sistema più ampio.

Vantaggi e limiti

Vantaggi:

  • Efficace in alte dimensioni: Funziona bene anche quando il numero di caratteristiche è maggiore del numero di campioni.
  • Efficiente in termini di memoria: Utilizza solo un sottoinsieme di punti di addestramento (vettori di supporto) nella funzione decisionale.
  • Versatile: È possibile specificare diverse funzioni kernel per la funzione decisionale, consentendo una certa flessibilità nella gestione di vari tipi di dati.
  • Buona generalizzazione: L'obiettivo della massimizzazione del margine spesso porta a modelli con una buona precisione su dati non visti.

Limitazioni:

  • Intenso dal punto di vista computazionale: L'addestramento può essere lento su set di dati molto grandi.
  • Sensibilità del kernel e dei parametri: Le prestazioni dipendono fortemente dalla scelta del kernel e dei suoi parametri (ad esempio, C, gamma) e richiedono un'attenta messa a punto.
  • Scarse prestazioni con classi sovrapposte: Non è ideale se le classi di dati si sovrappongono in modo significativo.
  • Nessuna stima diretta della probabilità: Le SVM standard producono assegnazioni di classe ma non punteggi di probabilità diretti. Sono necessarie tecniche come il Platt scaling per calibrare i risultati delle SVM in probabilità.

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 dei metodi ad albero come gli alberi di decisione o le foreste casuali, le SVM costruiscono un singolo iperpiano ottimale (possibilmente in uno spazio ad alta densità). Mentre i moderni modelli di deep learning come Ultralytics YOLO eccellono nell'estrazione automatica di caratteristiche dai dati grezzi (come i pixel nella computer vision), le SVM spesso richiedono un'attenta progettazione delle caratteristiche, ma possono ottenere prestazioni eccezionali su insiemi di dati più piccoli o su tipi specifici di dati strutturati in cui le caratteristiche sono ben definite. Le implementazioni più diffuse includono LibSVM e il modulo SVM di scikit-learn. L'addestramento e la gestione di questi modelli, così come di altri, possono essere semplificati utilizzando piattaforme come Ultralytics HUB, che semplifica il ciclo di vita degli MLOps.

Leggi tutto