Una macchina a vettori di supporto (SVM) è un algoritmo di machine learning supervisionato che classifica i dati trovando una linea o un iperpiano ottimale che massimizza la distanza tra ciascuna classe in uno spazio N-dimensionale.
Le SVM sono state sviluppate negli anni '90 da Vladimir N. Vapnik e dai suoi colleghi, che hanno pubblicato questo lavoro in un articolo intitolato "Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing"1 nel 1995.
Le SVM sono comunemente utilizzate nei problemi di classificazione. Operano una distinzione tra due classi trovando l'iperpiano ottimale che massimizza il margine tra i punti dati più vicini delle classi opposte. Il numero di caratteristiche nei dati di input determina se l'iperpiano è una linea in uno spazio bidimensionale o un piano in uno spazio n-dimensionale. Poiché è possibile trovare più iperpiani per differenziare le classi, massimizzare il margine tra i punti consente all'algoritmo di individuare il miglior confine decisionale tra le classi. Ciò, a sua volta, consente di generalizzare bene i nuovi dati e di fare previsioni di classificazione accurate. Le linee adiacenti all'iperpiano ottimale sono note come vettori di supporto poiché questi vettori attraversano i punti dati che determinano il margine massimo.
L'algoritmo SVM è ampiamente utilizzato nel machine learning per la sua capacità di gestire attività di classificazione sia lineari che non lineari. Tuttavia, quando i dati non sono linearmente separabili, vengono utilizzate funzioni kernel per trasformare i dati in uno spazio multidimensionale, consentendo la separazione lineare. Questa applicazione delle funzioni kernel è nota come "kernel trick", e la scelta della funzione kernel, come kernel lineari, kernel polinomiali, kernel RBF (Radial Basis Function) o kernel sigmoide, dipende dalle caratteristiche dei dati e dal caso d'uso specifico.
Le SVM lineari vengono utilizzate con dati linearmente separabili; ciò significa che i dati non necessitano di alcuna trasformazione per essere separati in classi diverse. Il confine decisionale e i vettori di supporto danno forma all'immagine di una strada, e il professor Patrick Winston del MIT usa l'analogia del "fitting the widest possible street"2 (trovare la strada più larga possibile) (link esterno a ibm.com) per descrivere questo problema di ottimizzazione quadratica. Matematicamente, questo iperpiano di separazione può essere rappresentato come:
wx + b = 0
dove w è il vettore dei pesi, x è il vettore di input e b è il termine di bias.
Ci sono due approcci per calcolare il margine, o la distanza massima tra le classi, che sono la classificazione hard-margin e la classificazione soft-margin. Se utilizziamo una SVM hard-margin, i punti dati saranno perfettamente separati al di fuori dei vettori di supporto, o "fuori dalla strada" per continuare con l'analogia del professor Hinton. Questo è rappresentato dalla formula,
(wxj + b) yj ≥ a,
e poi viene massimizzato il margine, che è rappresentato come: max ɣ= a / ||w||, dove a è il margine proiettato su w.
La classificazione soft-margin è più flessibile e consente alcuni errori di classificazione tramite l'uso di variabili di slack (`ξ`). L'iperparametro C regola il margine; un valore C più grande restringe il margine per una classificazione errata minima, mentre un valore C più piccolo lo amplia, consentendo una maggiore tolleranza per i dati classificati in modo errato3.
La maggior parte dei dati negli scenari reali non sono separabili linearmente ed è qui che entrano in gioco le SVM non lineari. "Per rendere i dati linearmente separabili, vengono applicati metodi di pre-elaborazione ai dati di addestramento per trasformarli in uno spazio delle caratteristiche multidimensionale. Detto questo, gli spazi multidimensionali possono creare maggiore complessità aumentando il rischio di overfitting dei dati e diventando onerosi dal punto di vista computazionale. Il 'kernel trick' aiuta a ridurre parte di quella complessità, rendendo il calcolo più efficiente, e lo fa sostituendo i calcoli del prodotto scalare con una funzione kernel equivalente4.
Esistono diversi tipi di kernel che possono essere applicati per classificare i dati. Alcune funzioni kernel popolari includono:
Kernel polinomiale
Kernel RBF (noto anche come kernel gaussiano)
Kernel sigmoide
La regressione a vettori di supporto (SVR) è un'estensione delle SVM, che viene applicata ai problemi di regressione (ovvero, il risultato è continuo). Analogamente alle SVM lineari, la SVR trova un iperpiano con il margine massimo tra i punti dati e viene in genere utilizzata per la previsione delle serie temporali.
La SVR differisce dalla regressione lineare in quanto è necessario specificare la relazione che si sta cercando di comprendere tra le variabili indipendenti e dipendenti. Una comprensione delle relazioni tra le variabili e delle loro direzioni è preziosa quando si utilizza la regressione lineare. Questo non è necessario per le SVR, poiché determinano queste relazioni autonomamente.
In questa sezione parleremo del processo di creazione di un classificatore SVM, il suo confronto con altri algoritmi di apprendimento supervisionato e le sue applicazioni nell'industria odierna.
Come per altri modelli di machine learning, inizia suddividendo i dati in un set di addestramento e un set di test. Per inciso, questo presuppone che tu abbia già condotto un'analisi esplorativa dei tuoi dati. Anche se tecnicamente non è necessario per creare un classificatore SVM, è bene farlo prima di utilizzare qualsiasi modello di machine learning, in quanto consente di comprendere eventuali dati mancanti o outlier.
Importa un modulo SVM dalla libreria di tua scelta, come scikit-learn (link esterno a ibm.com). Addestra i campioni di addestramento sul classificatore e prevedi la risposta. È possibile valutare le prestazioni confrontando l'accuratezza del set di test con i valori previsti. Potresti voler utilizzare altre metriche di valutazione, come l'f1-score, la precisione o il recall.
È possibile ottimizzare gli iperparametri per migliorare le prestazioni di un modello SVM. Gli iperparametri ottimali possono essere trovati utilizzando metodi di grid search e cross-validation, che iterano attraverso diversi valori di kernel, regolarizzazione (C) e gamma per trovare la migliore combinazione.
È possibile utilizzare diversi classificatori di machine learning per lo stesso caso d'uso. È importante testare e valutare diversi modelli per capire quali funzionano meglio. Detto questo, può essere utile capire i punti di forza e di debolezza di ciascuno per valutare la sua applicazione al proprio caso d'uso.
Sia le classificazioni Naive Bayes che SVM sono comunemente utilizzate per le attività di classificazione dei testi. Le SVM tendono a funzionare meglio di quelle di Naive Bayes quando i dati non sono separabili linearmente. Detto questo, le SVM devono adattarsi a diversi iperparametri e possono essere più onerose dal punto di vista computazionale.
In genere, le SVM funzionano meglio con set di dati ad alta dimensionalità e non strutturati, come dati di immagini e testo, rispetto alla regressione logistica. Le SVM sono anche meno sensibili all'overfitting e più facili da interpretare. Detto questo, possono essere più onerose dal punto di vista computazionale.
Le SVM funzionano meglio con i dati ad alta dimensionalità e sono meno inclini all'overfitting rispetto ai decision trees. Detto questo, i decision trees sono in genere più veloci da addestrare, soprattutto con set di dati più piccoli, e sono generalmente più facili da interpretare.
Similmente ad altri confronti di modelli, le SVM sono più onerose a livello computazionale da addestrare e meno soggette a overfitting, ma le reti neurali sono considerate più flessibili e scalabili.
Sebbene le SVM possano essere utilizzate per numerose attività, quelle indicate di seguito sono tra le applicazioni più diffuse in tutti i settori.
Le SVM sono comunemente utilizzate nell'elaborazione del linguaggio naturale (NLP) per attività quali l'analisi del sentiment, il rilevamento dello spam e la modellazione degli argomenti. Si prestano a questi dati poiché funzionano bene con i dati ad alta dimensionalità.
Le SVM vengono applicate nelle attività di classificazione delle immagini, come il rilevamento di oggetti e il recupero delle immagini. Possono rivelarsi utili anche nell'ambito della sicurezza, classificando ad esempio un'immagine come manomessa.
Le SVM sono utilizzate anche per la classificazione delle proteine, l'analisi dell'espressione genica e la diagnosi delle malattie. Le SVM vengono spesso applicate nella ricerca sul cancro (link esterno a ibm.com) perché riescono a rilevare tendenze sottili in set di dati complessi.
Le SVM possono analizzare strutture geofisiche stratificate nel sottosuolo, filtrando il "rumore" dai dati elettromagnetici. Hanno anche aiutato a prevedere il potenziale di liquefazione sismica del suolo, che è rilevante per il campo dell'ingegneria civile.
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.
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.
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.
Tutti i link sono esterni a ibm.com
1 Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing
2 Appunti della lezione 16 sulle macchine a vettori di supporto, Patrick Winston, MIT, 2010
3 Introduction to Support Vector Machines, Boswell, Dustin, Caltech, 2002
4 Support vector machines, Sontag, David, New York University
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com, openliberty.io