SVM Flashcards
Cos’è un SVM?
Una SVM è un modello di ML capace di performare classificazioni, regressioni e detection di valori anomali in maniera lineare e/o non lineare.
In particolare, però, le SVM sono molto utili per questi compiti ma solo per dataset di dati piccoli/medi.
L’obiettivo principale di un SVM è quello di trovare un iperpiano (una superficie che divide lo spazio in diverse regioni) che massimizzi la separazione tra le diverse classi di dati.
Large margin classification.
Che tipi di classificazioni esistono?(SVM)
Esistono due tipi di classificazioni possibili:
-La Hard Margin Classification è un caso particolare di SVM in cui si cerca di trovare un iperpiano che separi perfettamente le due classi di dati senza errori di classificazione nei dati di addestramento
-Soft margin Classification: consiste nel mantenere un buon bilanciamento tra il mantenere la
strada il più larga possibile e limitare le violazioni dei margini
Classificazione non lineare(SVM)
La classificazione non lineare utilizzando gli SVM coinvolge la separazione di classi di dati che non possono essere separati in modo adeguato da un iperpiano lineare nello spazio originale. Per superare questa limitazione, vengono utilizzate funzioni kernel per mappare i dati in uno spazio di dimensioni superiori in cui la separazione lineare potrebbe essere possibile. Ecco come funziona:
Selezione del kernel: Prima di addestrare un SVM non lineare, è necessario scegliere una funzione kernel appropriata. Alcuni esempi di funzioni kernel comuni includono: Kernel Lineare: È il kernel standard utilizzato nell'SVM lineare. Non effettua alcuna trasformazione dei dati, ma funziona bene quando i dati sono già abbastanza separabili linearmente. Kernel Polinomiale: Questo kernel calcola il prodotto interno nello spazio di dimensioni superiori, usando una funzione polinomiale per la trasformazione. Il grado del polinomio è un parametro che determina quanto la trasformazione è complessa. Kernel Gaussiano (RBF - Radial Basis Function): Questo è uno dei kernel più utilizzati. Trasforma i dati in uno spazio infinitamente dimensionale utilizzando una distribuzione gaussiana attorno a ciascun punto. È molto flessibile ma richiede una scelta accurata dei parametri. Kernel Sigmoide: Questo kernel utilizza una funzione sigmoide per la trasformazione dei dati. È simile a quello utilizzato nelle reti neurali artificiali.
le funzioni di similarità sono utilizzate per calcolare quanto due punti nei dati di addestramento sono simili o vicini l’uno all’altro. Queste funzioni sono spesso chiamate “funzioni kernel”
Kernel Gaussiano (RBF - Radial Basis Function):
Questo è uno dei kernel più popolari e flessibili. Trasforma i dati in uno spazio infinitamente dimensionale utilizzando una distribuzione gaussiana attorno a ciascun punto.
Formula: K(x, x’) = exp(-gamma * ||x - x’||^2)
dove ‘gamma’ è un parametro di regolazione che influenza la larghezza della gaussiana e x’ è un landmark
Come funziona la regressione ? (SVM)
si cerca un compromesso tra larghezza della strada e violazioni di questa, mediante l’iperparametro ϵ.
Per gestire regressioni non lineari, utilizziamo SVM con kernel
La regressione SVM o Support Vector Regression (SVR) è un algoritmo di apprendimento automatico utilizzato per l’analisi di regressione. È diverso dai metodi tradizionali di regressione lineare poiché trova un iperpiano che si adatta meglio ai punti dati in uno spazio continuo, invece di adattare una linea ai punti dati.
Funzioni di decisione (SVM)
l modello di classificazione SVM lineare predice la classe di una nuova istanza X calcolando la funzione di decisione. La previsione ŷ è basata su diverse componenti: il numero di attributi predittivi n, i valori delle caratteristiche xi, il valore di bias b e i pesi wi associati a ciascuna caratteristica. Se il risultato è positivo, la classe prevista ŷ sarà la classe positiva (1), altrimenti sarà la classe negativa (0).
In breve, il modello SVM lineare utilizza le caratteristiche dell’istanza per calcolare una funzione di decisione che determina se l’istanza appartiene alla classe positiva o negativa.
FORMULA
Come si effettua il training di una SVM?
Effettuare il training di una SVM significa trovare “w” e “b” tali che il margine sia il più largo possibile per evitare violazioni o limitarle.
Più piccolo è il vettore dei pesi “w”, più largo è il margine.
Quindi l’obiettivo è quello di minimizzare ||w||.
Questo implica che un classificatore hard margin SVM può esssere espresso come un problema di
constrained optimization
FORMULE