Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Macchina a vettori di supporto (SVM)

Scopri la potenza delle Support Vector Machines (SVM) per la classificazione, la regressione e il rilevamento di outlier, con applicazioni e approfondimenti reali.

La Support Vector Machine (SVM) è un algoritmo di apprendimento supervisionato potente e versatile utilizzato sia per compiti di classificazione che di regressione. Al suo interno, una SVM trova un iperpiano ottimale o un confine decisionale che separa al meglio i punti dati in classi diverse. Ciò che rende SVM particolarmente efficace è il suo obiettivo di massimizzare il margine, ovvero la distanza tra l'iperpiano di separazione e i punti dati più vicini di qualsiasi classe. Questo principio, dettagliato nel documento fondamentale di Cortes e Vapnik, aiuta a migliorare la capacità di generalizzazione del modello, rendendolo meno incline all'overfitting.

Come funzionano le SVM

L'algoritmo funziona tracciando ogni elemento di dati come un punto in uno spazio n-dimensionale (dove n è il numero di caratteristiche). La classificazione viene quindi eseguita trovando l'iperpiano che crea la migliore separazione tra le classi.

  • Iperpiano: Questo è il confine decisionale. In un set di dati con due caratteristiche, è una linea; con tre, è un piano. Per più caratteristiche, diventa un iperpiano.
  • Vettori di Supporto: Questi sono i punti dati più vicini all'iperpiano. Sono fondamentali perché definiscono il margine e la loro rimozione altererebbe la posizione dell'iperpiano. Un'eccellente visualizzazione dei vettori di supporto è disponibile nelle note delle lezioni CS229 di Stanford.
  • Margine: Il margine è lo spazio tra i vettori di supporto e l'iperpiano. L'obiettivo di SVM è trovare l'iperpiano che massimizza questo margine, creando la separazione più robusta possibile.
  • Il trucco del kernel: Per i dati che non sono linearmente separabili, le SVM utilizzano una tecnica chiamata trucco del kernel. Questo potente metodo prevede la trasformazione dei dati in uno spazio a dimensioni superiori dove è possibile trovare un separatore lineare senza calcolare esplicitamente le coordinate dei dati in quel nuovo spazio. Kernel popolari come la funzione di base radiale (RBF) possono gestire relazioni non lineari molto complesse. Puoi esplorare una guida ai kernel SVM per maggiori dettagli.

Applicazioni nel mondo reale

Le SVM sono efficaci in molti ambiti, specialmente per problemi con dati ad alta dimensionalità.

  • Bioinformatica: In genomica e proteomica, le SVM vengono utilizzate per classificare le proteine e analizzare i dati di espressione genica. Ad esempio, possono aiutare a identificare i sottotipi di cancro in base ai dati dei microarray, un'attività che coinvolge migliaia di caratteristiche. Questo li rende uno strumento vitale nell'IA per la sanità.
  • Classificazione delle immagini: Prima del predominio delle reti neurali profonde, le SVM erano un modello dalle prestazioni elevate per la classificazione delle immagini. Sono state utilizzate con successo per attività come il riconoscimento di cifre scritte a mano su set di dati come MNIST e il riconoscimento di oggetti su Caltech-101.
  • Classificazione del testo: Nell'elaborazione del linguaggio naturale (NLP), le SVM sono efficaci per attività come il rilevamento dello spam e l'analisi del sentiment. Possono gestire in modo efficiente gli spazi di caratteristiche ad alta dimensione creati dai metodi di vettorializzazione del testo.

SVM contro altri algoritmi

Rispetto ad algoritmi più semplici come la Regressione Logistica, le SVM mirano a massimizzare il margine piuttosto che trovare semplicemente un confine di separazione, il che può portare a una migliore generalizzazione. A differenza dei metodi basati su alberi come gli Alberi Decisionali o le Foreste Aleatorie, le SVM costruiscono un singolo iperpiano ottimale (possibilmente in uno spazio ad alta dimensione). Mentre i moderni modelli di deep learning come Ultralytics YOLO eccellono nell'estrazione automatica delle feature da dati grezzi (come i pixel nella computer vision (CV)), le SVM spesso richiedono un'attenta ingegnerizzazione delle feature, ma possono ottenere prestazioni eccezionali su dataset più piccoli o su tipi specifici di dati strutturati in cui le feature sono ben definite. Puoi trovare molti di questi dataset nel UCI Machine Learning Repository.

Le implementazioni più comuni includono LibSVM e il modulo SVM in scikit-learn. Sebbene SVM non sia tipicamente il nucleo dei moderni framework di CV come PyTorch o TensorFlow, può essere integrato in flussi di lavoro più ampi. Il training e la gestione di tali modelli, insieme a molti altri, possono essere semplificati utilizzando piattaforme come Ultralytics HUB, che semplifica il ciclo di vita MLOps dall'etichettatura dei dati all'ottimizzazione degli iperparametri e al deployment finale del modello.

Unisciti alla community di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora
Link copiato negli appunti