Condivisione della tecnologia

[Machine Learning] 12. Spiegazione del principio dell'algoritmo di Support Vector Machine (SVM - Support Vector Machine), uno dei primi dieci algoritmi

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1·Astratto

Inserisci qui la descrizione dell'immagine

La Support Vector Machine (SVM) è un efficiente algoritmo di apprendimento supervisionato ampiamente utilizzato nei problemi di classificazione e regressione. Distingue diverse categorie di punti dati trovando un iperpiano ottimale nello spazio delle caratteristiche. L'obiettivo è massimizzare l'intervallo tra due tipi di punti dati, migliorando così la capacità di generalizzazione del modello. I concetti chiave di SVM includono iperpiani, intervalli, vettori di supporto e funzioni del kernel. La funzione del kernel consente a SVM di gestire problemi non lineari e trovare iperpiani linearmente separabili mappando i dati in uno spazio di dimensione superiore. Inoltre, vengono utilizzate tecniche di margine morbido e di regolarizzazione per gestire la separabilità lineare non completa dei dati, controllando al contempo la complessità del modello e prevenendo l'overfitting. L'implementazione di SVM implica la selezione di una funzione kernel appropriata, la costruzione e la risoluzione di un problema di programmazione quadratica convessa e la valutazione e l'applicazione del modello addestrato. I suoi vantaggi sono che il modello è semplice, facile da implementare e ha una buona capacità di generalizzazione, ma ha un'elevata complessità computazionale, è sensibile alla selezione delle funzioni e dei parametri del kernel e può incontrare colli di bottiglia nelle prestazioni durante l'elaborazione di set di dati su larga scala.

2. Presentazione personale

🏘️🏘️个人主页:Usare montagne e fiumi come dono
🎖️🎖️:Creatore Rising Star nel campo Python, certificazione CSDN Rising Star, partner di contenuti CSDN, blogger esperto della comunità Alibaba Cloud, mentore del programma Rising Star e analista di dati sul posto di lavoro.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Inserisci qui la descrizione dell'immagine

🐘 希望大家能持续支持,共同向前迈进!😁
Se ritieni che l'articolo sia prezioso,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐

3. Concetti di base

Support Vector Machine (SVM) è un potente algoritmo di machine learning utilizzato principalmente per risolvere problemi di classificazione e regressione. Si basa sul principio di minimizzazione del rischio strutturale nella teoria dell'apprendimento statistico e distingue diverse categorie di dati trovando un confine decisionale ottimale, ovvero un iperpiano, nello spazio delle caratteristiche. La scelta di questo iperpiano mira a massimizzare la distanza più breve tra i punti dati e l'iperpiano, chiamata margine. Maggiore è l'intervallo, migliore è solitamente la capacità di generalizzazione del modello.

Il nucleo di SVM è il vettore di supporto, che è un insieme di punti dati fondamentali per determinare la posizione e la direzione dell'iperpiano. Sono i punti più vicini all'iperpiano. Se i dati non sono linearmente separabili, SVM mappa i dati originali in uno spazio di dimensione superiore introducendo una funzione del kernel e trova un iperpiano linearmente separabile in questo nuovo spazio. Le funzioni del kernel comunemente utilizzate includono kernel lineari, kernel polinomiali, kernel con funzione di base radiale (RBF), ecc.

Per gestire il rumore e gli outlier nei dati, SVM introduce il concetto di margine morbido, che consente di classificare erroneamente alcuni punti dati in cambio di migliori prestazioni di generalizzazione. Allo stesso tempo, la complessità del modello è controllata attraverso termini di regolarizzazione per evitare un overfitting. Il processo di addestramento di SVM solitamente comporta la risoluzione di un problema di programmazione quadratica convessa per trovare i parametri ottimali dell'iperpiano.

Vedi la figura seguente. In un ambiente bidimensionale, i punti R, S, G e altri punti vicini alla linea nera centrale possono essere considerati come vettori di supporto. Possono determinare i parametri specifici del classificatore, cioè il nero linea.
Inserisci qui la descrizione dell'immagine

4. Supporta vettori e iperpiani

I vettori di supporto e gli iperpiani sono concetti fondamentali nell'algoritmo SVM (Support Vector Machine). Di seguito spiegherò questi due concetti nel dettaglio:

4.1 Iperpiano

In matematica, un iperpiano è un sottospazio lineare che ha una dimensione inferiore allo spazio in cui risiede. Ad esempio, nello spazio bidimensionale, un iperpiano è una linea retta; nello spazio tridimensionale è un piano; nello spazio a dimensioni superiori è ancora un confine lineare, ma può essere difficile da comprendere intuitivamente.

In SVM, l'iperpiano viene utilizzato per classificare i dati in diverse categorie. Per uno spazio bidimensionale, puoi immaginare un iperpiano come una linea retta che divide lo spazio in due parti, ciascuna parte contenente una categoria di punti dati. Per gli spazi di dimensione superiore, un iperpiano è un confine lineare di dimensione superiore che separa anche i punti dati.

4.2 Vettori di supporto

I vettori di supporto sono quei punti dati situati più vicini all'iperpiano. Sono i punti dati chiave utilizzati da SVM durante l'addestramento per determinare la posizione dell'iperpiano. Se rimuovi uno qualsiasi di questi punti, cambia la posizione e l'orientamento dell'iperpiano.

I vettori di supporto sono importanti perché definiscono i confini (ovvero gli intervalli) tra i punti dati. L'obiettivo di SVM è trovare un iperpiano che massimizzi la distanza (intervallo) tra i vettori di supporto più vicini (ovvero i punti dati più vicini all'iperpiano) e l'iperpiano. La dimensione di questo intervallo è un indicatore importante della capacità di generalizzazione del modello.

4.3 Trucco del kernel

Nelle applicazioni pratiche, i dati potrebbero non essere separabili linearmente. Al momento, SVM può utilizzare tecniche del kernel per gestire problemi non lineari. La funzione del kernel può mappare i dati originali in uno spazio di dimensione superiore e trovare un iperpiano linearmente separabile nel nuovo spazio. Le funzioni del kernel comunemente utilizzate includono kernel lineari, kernel polinomiali, kernel con funzione di base radiale (RBF), ecc.

4.4 Soft margin e regolarizzazione

Quando si ha a che fare con dati reali, potrebbe non essere possibile trovare un iperpiano perfetto che separi completamente tutti i punti dati. In questo momento, SVM ha introdotto il concetto di margine flessibile, consentendo di classificare erroneamente alcuni punti dati in cambio di migliori capacità di generalizzazione. Allo stesso tempo, la complessità del modello è controllata attraverso il termine di regolarizzazione (solitamente la norma del vettore normale) per evitare un overfitting.

Inserisci qui la descrizione dell'immagine

5. Principio dell'algoritmo SVM

5.1 Formula della distanza dal punto all'iperpiano

La formula della distanza punto-iperpiano viene utilizzata per calcolare la distanza più breve da un punto a un dato iperpiano. L'iperpiano può essere espresso dalla seguente equazione nello spazio n-dimensionale:
Inserisci qui la descrizione dell'immagine
In:
w è un vettore normale n-dimensionale, perpendicolare all'iperpiano.
x è un punto n-dimensionale situato nello spazio.
b è il termine di polarizzazione dell'iperpiano.
La distanza verticale d dal punto x a questo iperpiano può essere calcolata con la seguente formula:
Inserisci qui la descrizione dell'immagine
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Modello di ottimizzazione dell'intervallo massimo

Modello di ottimizzazione nel caso linearmente separabile
Quando i dati sono linearmente separabili, cioè esiste un iperpiano che può separare perfettamente diverse categorie di punti dati, l'obiettivo di SVM è trovare un iperpiano tale che i due punti dati più vicini (cioè i vettori di supporto) siano all'iperpiano Massimizza la distanza. Questa distanza è chiamata margine.
L’iperpiano può essere espresso come:
Inserisci qui la descrizione dell'immagine
Problema di ottimizzazione del margine massimo
La funzione obiettivo di SVM è massimizzare l'intervallo, che può essere espresso come:
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagineIntroduzione ai moltiplicatori di Lagrange
Inserisci qui la descrizione dell'immagine
duplice problema
Inserisci qui la descrizione dell'immagine

6. Variabili di scarto

Nelle macchine a vettori di supporto (SVM), le variabili slack (Slack Variables) sono un meccanismo introdotto per gestire situazioni separabili non lineari nei set di dati. In una situazione ideale, se i dati sono linearmente separabili, SVM può trovare un iperpiano che separa completamente diverse classi di punti dati massimizzando il margine. Tuttavia, nel mondo reale, molti set di dati non sono completamente separabili linearmente, il che richiede l'uso di variabili slack per consentire la classificazione errata di alcuni punti dati, migliorando così la capacità di generalizzazione del modello.Inserisci qui la descrizione dell'immagine

6.1 Definizione di variabili di slack

Inserisci qui la descrizione dell'immagine

6.2 Modifica del modello di ottimizzazione

Inserisci qui la descrizione dell'immagine
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Margini morbidi e margini rigidi

  • Margine rigido: SVM che non introduce variabili di margine di flessibilità richiede che tutti i punti dati siano all'esterno o al confine del margine, ovvero non è consentita alcuna classificazione errata.
  • Margine morbido: SVM introduce variabili slack, consentendo ad alcuni punti dati di trovarsi all'interno del limite del margine, ovvero consentendo un certo grado di classificazione errata. Trucchi del kernel e variabili slack.

6.4 Trucchi del kernel e variabili slack

Anche nel caso di separabilità non lineare, utilizzando il trucco del kernel per mappare i dati in uno spazio ad alta dimensione, combinato con variabili slack, SVM può ancora trovare l'iperpiano con il margine massimo.

7. Funzione del nocciolo

La funzione kernel è uno strumento importante nella Support Vector Machine (SVM), che consente a SVM di gestire efficacemente problemi non lineari nello spazio ad alta dimensione. L'idea di base della funzione kernel è quella di mappare i dati originali da uno spazio a bassa dimensionalità a uno spazio ad alta dimensionalità attraverso la mappatura e trovare la separabilità lineare dei dati in questo spazio ad alta dimensionalità.
Inserisci qui la descrizione dell'immagine

7.1 Concetti base sulle funzioni del kernel

Inserisci qui la descrizione dell'immagine

7.2 Funzioni del kernel comunemente usate

Inserisci qui la descrizione dell'immagine

7.3 Il ruolo della funzione del kernel

  1. Gestire problemi non lineari: mappando lo spazio ad alta dimensionalità, la funzione kernel rende i dati che originariamente erano linearmente inseparabili nello spazio a bassa dimensionalità linearmente separabili nello spazio ad alta dimensionalità.
  2. Migliorare la capacità espressiva del modello: diverse funzioni del kernel possono acquisire diverse caratteristiche dei dati e migliorare la capacità espressiva del modello.
  3. Ridurre la complessità computazionale: l'utilizzo delle funzioni del kernel può evitare il calcolo diretto nello spazio ad alta dimensione, riducendo così la complessità computazionale.