what is support vector machine machine learning
Questo tutorial spiega il supporto della macchina vettoriale in ML e concetti associati come Hyperplane, vettori di supporto e applicazioni di SVM:
Nel Tutorial precedente , abbiamo appreso degli algoritmi genetici e del loro ruolo nell'apprendimento automatico.
Abbiamo studiato alcuni algoritmi supervisionati e non supervisionati nell'apprendimento automatico nei nostri tutorial precedenti. Backpropagation è un algoritmo di apprendimento supervisionato mentre Kohenen è un algoritmo di apprendimento non supervisionato.
In questo tutorial sulle macchine vettoriali di supporto, impareremo a conoscere le macchine vettoriali di supporto. Gli SVM sono robusti algoritmi di apprendimento automatico con supervisione matematica ampiamente utilizzati nella classificazione dei set di dati di addestramento.
=> Leggi la serie completa di formazione sull'apprendimento automatico
Cosa imparerai:
- Cos'è una Support Vector Machine (SVM)
- Cos'è un iperplano
- Cosa sono gli algoritmi di classificazione e regressione
- Cosa sono i vettori di supporto
- Come funziona una macchina a vettore di supporto
- Come ottimizzare la posizione dell'iperplano
- Applicazioni di SVM
- Conclusione
- Lettura consigliata
Cos'è una Support Vector Machine (SVM)
L'algoritmo SVM è un algoritmo di apprendimento supervisionato classificato in Tecniche di classificazione. È una tecnica di classificazione binaria che utilizza il set di dati di addestramento per prevedere un iperpiano ottimale in uno spazio n-dimensionale.
Questo iperpiano viene utilizzato per classificare nuovi set di dati. Essendo un classificatore binario, il set di dati di addestramento l'iperpiano divide il set di dati di addestramento in due classi.
Gli algoritmi SVM vengono utilizzati per classificare i dati in un piano bidimensionale e in un iperpiano multidimensionale. L'iperpiano multidimensionale utilizza i 'kernel' per classificare i dati multidimensionali.
È sempre auspicabile avere la massima distinzione tra i punti dati classificati. Ciò significa che dovrebbero avere la massima distanza o l'iperpiano dovrebbe avere un margine massimo tra i punti dati.
Cos'è un iperplano
Un iperpiano è un confine che divide l'aereo. È un confine decisionale che classifica i punti dati in 2 classi distinte. Poiché SVM viene utilizzato per classificare i dati in multidimensionale, un iperpiano può essere una linea retta se ci sono 2 ingressi o un piano 2 D se ci sono più di 2 ingressi.
Gli algoritmi SVM possono essere utilizzati anche per l'analisi di regressione, ma principalmente vengono utilizzati per la classificazione. Vediamo alcuni dettagli in più su ciascuno di questi metodi.
Cosa sono gli algoritmi di classificazione e regressione
Un algoritmo di classificazione è quello che analizza i dati di addestramento per prevedere il risultato. Il risultato è una classe target, per esempio , Giorno o notte, Sì o No, Lungo o Breve. Un esempio di algoritmo di classificazione potrebbe essere se un cliente in un supermercato che acquista pane acquisterà anche burro. La classe di destinazione sarebbe 'Sì' o 'No'.
Un algoritmo di regressione rileva la relazione tra le variabili indipendenti e predice un risultato. La regressione lineare rileva una relazione lineare tra l'input e l'output. Per esempio: 'A' come input e 'b' come output, una funzione lineare sarebbe b = k * a + c.
Cosa sono i vettori di supporto
I vettori di supporto sono i punti dati che ci aiutano a ottimizzare l'iperpiano. Questi vettori si trovano più vicini all'iperpiano e sono più difficili da classificare. La posizione dell'iperpiano decisionale dipende dai vettori di supporto. Se questi vettori di supporto vengono rimossi, cambierà anche la posizione dell'iperpiano.
Una Support Vector Machine (SVM) utilizza i punti dati di input o le caratteristiche chiamate vettori di supporto per massimizzare i confini decisionali, ovvero lo spazio attorno all'iperpiano. Gli input e gli output di un SVM sono simili alla rete neurale. C'è solo una differenza tra SVM e NN come indicato di seguito.
Ingressi: La rete SVM può contenere n numero di ingressi, ad esempio xuno, XDue, …… .., Xio,…., Xn.
Uscite: L'output di destinazione t.
Pesi: Come i pesi delle reti neurali wuno, nelDue, ……, nelnsono associati a ciascun input la cui combinazione lineare predice l'output y.
Differenza tra SVM e reti neurali
I pesi sinaptici nelle reti neurali vengono eliminati per calcolare l'output y della rete mentre in SVM i pesi diversi da zero vengono ridotti o eliminati per calcolare il confine decisionale ottimale.
Con l'eliminazione dei pesi, ridurrà il set di dati di input ad alcune importanti caratteristiche di input che aiuteranno a decidere l'iperpiano separabile.
Come funziona una macchina a vettore di supporto
Come sappiamo, lo scopo delle macchine a vettori di supporto è massimizzare il margine tra i punti dati classificati. Ciò porterà risultati più ottimali per classificare nuovi set di dati non addestrati. Pertanto, può essere ottenuto avendo un iperpiano in una posizione in cui il margine è massimo.
Vediamo un esempio di punti dati separati linearmente:
Passo 1: Scopri l'iperpiano corretto tra diverse possibilità: per decidere il miglior iperpiano, scopri tutti i possibili piani che dividono i dati, quindi seleziona quello che meglio classifica i set di dati di input. Nel grafico sotto ci sono tre possibilità di iperpiano. L'hyperplane 3 divide meglio i punti dati.
Passo 2: Selezionare un iperpiano con il margine massimo tra i punti dati più vicini: il margine è definito come la distanza tra l'iperpiano e i punti dati più vicini. Quindi, è ottimale avere un margine massimo. Quando 2 o più di 2 iperpiani classificano i dati allo stesso modo, trova il margine.
Viene scelto l'iperpiano con il margine massimo. Nella figura seguente, l'iperpiano 2.1,2.2 e 2.3 divide i punti dati ma l'iperpiano 2.2 ha un margine massimo.
Passaggio 3: Quando sono presenti valori anomali: i punti dati anomali sono punti dati diversi da un insieme di punti dati. Nel caso di 2 set di punti dati, potrebbe essere presente un valore anomalo. L'SVM ignora tali valori anomali nei dati e quindi trova un iperpiano di margine massimo.
Passaggio 4: In caso di punti dati separati non linearmente, SVM utilizza un trucco del kernel. Converte un piano separabile non linearmente in un riquadro separabile introducendo una nuova dimensione. I trucchi del kernel sono complesse equazioni matematiche che eseguono complesse trasformazioni di dati per ottimizzare l'iperpiano.
La figura seguente mostra punti dati separabili non linearmente che vengono poi trasformati in alta dimensionalità con il piano z. L'iperpiano che divide i due set di dati è un cerchio.
Come ottimizzare la posizione dell'iperplano
La posizione dell'iperpiano viene ottimizzata utilizzando gli algoritmi di ottimizzazione.
Parametro SVM: kernel
La creazione di un iperpiano ottimizzato in un problema separabile non linearmente viene eseguita utilizzando i kernel. I kernel sono funzioni matematiche che convertono il problema complesso utilizzando la forma algebrica lineare.
Per un kernel lineare, l'equazione si trova come:
F (x) = b + somma (aio* (x, xio))
dove,
x è il nuovo dato di input
Xioè il vettore di supporto
b, aiosono i coefficienti. Questi coefficienti vengono stimati durante la fase di apprendimento dell'algoritmo.
Per un problema complesso separabile non lineare, il trucco del kernel funziona come la conversione del problema separabile non lineare in un problema separabile. Trasforma i dati complessi e trova il modo per dividere i punti dati in output.
Le funzioni del kernel sono di molti tipi come lineare, polinomiale, sigmoide, polarizzazione radiale, non lineare e molte altre.
Vediamo gli usi di alcune delle funzioni del kernel di cui sopra:
Le funzioni del kernel calcolano il prodotto interno dei 2 input x, y dello spazio.
# 1) Funzione di polarizzazione radiale: La funzione kernel più usata, dice che per tutti i valori compresi tra x = (-1,1), il valore della funzione è 1 altrimenti 0. Per alcune intercettazioni dite xio, il valore della funzione Kernel è 1 per | (xio- h), (xio+ h) | per xiopreso come centro e 0 altrimenti.
# 2) Funzione sigmoide: Come reti neurali che utilizzano Sigmoid, la funzione kernel per SVM è
# 3) Funzione tangente iperbolica: Come utilizzano le reti neurali, la funzione è
# 4) Funzione kernel gaussiana: Gli stati della funzione kernel gaussiana
# 5) Funzione polinomiale: k (xio, Xj) = (xio* Xj+1)Due
Applicazioni di SVM
Le applicazioni reali di SVM includono:
# 1) Classificazione degli articoli in diverse categorie: L'SVM distingue tra i testi scritti e lo colloca in diverse categorie come intrattenimento, salute, articoli di narrativa. Si basa sui valori di soglia preimpostati calcolati durante l'addestramento dell'SVM.
Se il valore di soglia viene superato, viene inserito nella categoria. Se il valore non viene soddisfatto, vengono definite nuove categorie per la classificazione.
domande e risposte dell'intervista allo sviluppatore di rete
# 2) Riconoscimento del viso: L'immagine data viene classificata come immagine del viso o immagine non facciale rilevando le caratteristiche utilizzando i pixel. L'immagine viene riconosciuta come un volto o un non volto.
# 3) Informazioni sanitarie: Gli SVM vengono utilizzati per classificare i pazienti in base ai loro geni, al riconoscimento di modelli biologici, ecc.
# 4) Rilevamento dell'omologia delle proteine: Nelle scienze mediche computazionali, gli SVM sono addestrati su come vengono modellate le sequenze proteiche. SVM viene quindi utilizzato per rilevare l'omologia delle proteine.
Conclusione
In questo tutorial sulle macchine vettoriali di supporto, abbiamo imparato a conoscere le macchine vettoriali di supporto. Gli algoritmi SVM sono algoritmi di apprendimento supervisionato che vengono utilizzati per classificare dati binari e dati separabili linearmente. Classifica i punti dati da un iperpiano con un margine massimo.
I punti dati non lineari possono anche essere classificati da macchine vettoriali di supporto utilizzando i trucchi del kernel. Esistono molte applicazioni di SVM nella vita reale, una delle applicazioni più comuni è il riconoscimento facciale e il riconoscimento della grafia.
Buona lettura!!
=> Visita qui per l'esclusiva serie di machine learning
Lettura consigliata
- Tutorial sull'apprendimento automatico: introduzione al machine learning e alle sue applicazioni
- Una guida completa alla rete neurale artificiale nell'apprendimento automatico
- Data mining vs machine learning vs intelligenza artificiale vs deep learning
- Tipi di machine learning: apprendimento supervisionato e non supervisionato
- Introduzione agli algoritmi genetici nell'apprendimento automatico
- 11 strumenti software di machine learning più popolari nel 2021
- Le 13 migliori aziende di machine learning (elenco aggiornato 2021)
- Cos'è Java Vector | Tutorial Java Vector Class con esempi