Scoprite 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 algoritmo di Machine Learning (ML) supervisionato molto diffuso e potente, 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 Novanta, 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 ad alta dimensionalità. 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 di addestramento 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 consente 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 è cruciale e spesso richiede un'attenta messa a punto degli iperparametri.
Le SVM rimangono rilevanti nonostante l'ascesa del Deep Learning (DL), in particolare in scenari con dati ad alta dimensionalità (molte caratteristiche) ma 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 è visto 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 dei metodi ad albero, come gli alberi di decisione o le foreste casuali, le SVM costruiscono un singolo iperpiano ottimale (eventualmente in uno spazio ad alta densità). 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 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, insieme ad altri, possono essere semplificati utilizzando piattaforme come Ultralytics HUB, che semplifica il ciclo di vita degli MLOps.