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.
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.
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:
La scelta del kernel e dei suoi parametri è fondamentale e spesso richiede un'attenta regolazione degli iperparametri.
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:
Vantaggi:
Limitazioni:
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.