HomeIA e Machine LearningPitch Classifier — SVM Live

⚾ Classificatore di lanci — Support Vector Machine dal vivo

Osserva una vera Support Vector Machine con kernel apprendere dal vivo il confine a margine massimo tra i tipi di lancio simulati, a partire da vere caratteristiche di velocità di rotazione e di velocità del lancio.

IA e Machine Learning3DIntermedio60 FPS
ai-baseball-pitch-classification ↗ Open standalone

About this simulation

Ogni lancio registrato da un osservatore arriva con una velocità di rilascio e una velocità di rotazione direttamente da un radar di tracciamento. Questo simulatore trasforma quella coppia di numeri in un vero problema di classificazione di machine learning: data una veloce, una curva e — opzionalmente — uno slider, può una Support Vector Machine tracciare un confine che li separi? Invece di simulare la risposta, la pagina esegue un vero risolutore semplificato di Ottimizzazione Minimale Sequenziale (SMO) su qualunque lancio esista attualmente nel set di addestramento, e lo risolve da zero ogni volta che aggiungi un lancio o cambi il kernel, la forza di regolarizzazione C, o l'ampiezza di banda del kernel γ.

🔬 Cosa mostra

Un grafico di superficie 3D dove il piano orizzontale è velocità × velocità di rotazione e l'altezza è il valore grezzo della funzione di decisione della SVM f(x) = Σ αᵢyᵢK(xᵢ,x) + b. L'intersezione della superficie con il piano z = 0 è il confine di decisione effettivo; i piani z = ±1 segnano il vero margine. I lanci di addestramento sono sfere colorate per tipo di lancio, con i vettori di supporto cerchiati in bianco — sia il confine sia l'insieme dei vettori di supporto vengono ricalcolati dal vivo dai dati correnti, mai precodificati.

🎮 Come usarla

Scegli un kernel (lineare, polinomiale o RBF gaussiano), poi trascina C per bilanciare l'ampiezza del margine con l'accuratezza di addestramento, e γ / grado per rimodellare la flessibilità del kernel. Attiva lo slider per trasformarlo in un problema a 3 classi, uno-contro-tutti. Premi "Nuovo lancio" per far arrivare in streaming un lancio appena campionato ed etichettato e osservare il confine riadattarsi istantaneamente, oppure attiva lo streaming automatico per continuare ad alimentare dati. Trascina per ruotare la vista 3D, scorri per ingrandire.

💡 Lo sapevi?

Poiché la velocità e la rotazione di uno slider si sovrappongono realmente sia alle veloci sia alle curve nei dati reali di Statcast, nessuna linea retta può separare perfettamente tutti e tre i tipi di lancio. Passare da un kernel lineare a un kernel RBF con un γ sufficientemente alto permette al confine di curvare attorno al cluster sovrapposto — una dimostrazione dal vivo del motivo esatto per cui esiste il trucco del kernel.

Domande frequenti

Cos'è una Support Vector Machine (SVM)?

Una Support Vector Machine è un classificatore supervisionato che trova l'iperpiano che separa due classi con il margine più ampio possibile — il corridoio vuoto più largo tra i punti più vicini di ciascuna classe. Quei punti più vicini sono chiamati vettori di supporto perché sono loro soli a determinare dove si trova il confine; ogni altro punto di addestramento potrebbe essere eliminato senza spostare la soluzione. Massimizzare il margine, invece di trovare semplicemente una linea separatrice qualsiasi, tende a generalizzare meglio su nuovi dati perché lascia il maggiore spazio possibile al rumore prima che un punto attraversi verso la classe sbagliata.

Come permette il trucco del kernel a una SVM di tracciare confini curvi?

La forma duale del problema di ottimizzazione della SVM richiede sempre e solo prodotti scalari tra coppie di punti di addestramento, mai le coordinate grezze stesse. Il trucco del kernel sostituisce quel prodotto scalare x·z con una funzione kernel K(x,z) che calcola il prodotto scalare come se i punti fossero stati prima mappati in uno spazio di caratteristiche molto più dimensionale — senza mai costruire esplicitamente quello spazio. Un kernel lineare dà un confine rettilineo; un kernel polinomiale dà confini polinomiali curvi; il kernel RBF gaussiano K(x,z) = exp(−γ‖x−z‖²) dà confini fluidi e flessibili che possono avvolgere cluster sovrapposti.

Cosa controlla il parametro di regolarizzazione C?

C è la manopola di compromesso nell'obiettivo della SVM a margine morbido: minimizzare ½‖w‖² + C·Σξᵢ, dove ξᵢ sono variabili di rilassamento che permettono a singoli punti di stare dentro il margine o dal lato sbagliato. Un C piccolo tollera più violazioni del margine per un margine più ampio e più fluido — favorendo la generalizzazione. Un C grande penalizza pesantemente le violazioni, forzando un adattamento più stretto che rischia l'overfitting sui lanci specifici visti finora.

Cosa sono i vettori di supporto e perché contano solo alcuni punti?

Dopo l'addestramento, ogni punto i ha un moltiplicatore di Lagrange αᵢ. I punti comodamente dal lato corretto del margine finiscono con αᵢ = 0 e non contribuiscono in nulla alla funzione di decisione; solo i punti sul margine o al suo interno — i vettori di supporto — hanno αᵢ > 0. La funzione di decisione f(x) = Σ αᵢyᵢK(xᵢ,x) + b somma solo su quei vettori di supporto, quindi una SVM addestrata può essere estremamente compatta anche partendo da un set di dati più grande.

Come viene effettivamente risolta la SVM — è un vero ottimizzatore?

Sì. Questa simulazione implementa una routine semplificata di Ottimizzazione Minimale Sequenziale (SMO) — l'idea di ascesa duale delle coordinate che John Platt introdusse nel 1998 e che è alla base di librerie come libsvm. Ogni passata sceglie una coppia di moltiplicatori di Lagrange che viola i vincoli, risolve analiticamente il loro sottoproblema quadratico a due variabili sotto il vincolo box 0 ≤ αᵢ ≤ C e Σ αᵢyᵢ = 0, aggiorna il bias dalle condizioni KKT, e ripete finché non restano violazioni entro la tolleranza.

Come funziona l'approccio uno-contro-tutti per tre tipi di lancio?

Una SVM standard è intrinsecamente binaria. Per gestire insieme veloce, curva e slider, la simulazione addestra tre SVM binarie separate, ciascuna trattando un tipo di lancio come positivo e gli altri due raggruppati come negativo. Per un nuovo lancio, tutte e tre le funzioni di decisione vengono valutate e vince la classe con il punteggio positivo più alto — uno dei modi più semplici per estendere un classificatore binario a classi multiple.

⚙ Dietro le quinte

Un risolutore semplificato SMO ad ascesa duale delle coordinate adatta una SVM a kernel con margine morbido ai dati dal vivo di velocità di rotazione e velocità del lancio ogni volta che arriva un nuovo lancio o cambia un iperparametro; la superficie 3D, i piani del margine e i vettori di supporto sono tutti realmente ricalcolati, mai scriptati.

SVMKernel TrickSMOClassificationBaseball Analytics

3D · renderer Three.js / WebGL · target 60 FPS · funziona interamente lato client, senza installazione

What did you find?

Add reproduction steps (optional)