È possibile utilizzare la macchina vettoriale di supporto in dati di grandi dimensioni?


13

Con la conoscenza limitata che ho su SVM, è buono per una matrice di dati breve e grassa (molte funzionalità e non troppe istanze), ma non per i big data.X

Capisco una ragione è che la Kernel Matrix è una matrice n × n in cui, n è il numero di istanze nei dati. Se diciamo 100 K di dati, la matrice K del kernel avrà 10 10 elementi e potrebbe richiedere ~ 80 G di memoria.Kn×nnK1010

Esistono modifiche di SVM che possono essere utilizzate in dati di grandi dimensioni? (Dire sulla scala dei punti dati da 100K a 1M?)


Aiuterebbe i potenziali intervistati se si discutesse l'obiettivo dell'SVM al di là dei semplici "dati di grandi dimensioni". Detto questo e non sapendo nient'altro sulla tua query, c'è qualche ragione per cui un SVM non può essere sfruttato in un algoritmo di divisione e conquista?
Mike Hunter,

Per cosa stai usando SVM? Potresti usare un metodo alternativo?
Tom,

Risposte:


12

Come accennato, la memorizzazione della matrice del kernel richiede una memoria che si ridimensiona in modo quadratico con il numero di punti dati. Anche il tempo di addestramento per gli algoritmi SVM tradizionali si ridimensiona in modo superlineare con il numero di punti dati. Quindi, questi algoritmi non sono fattibili per grandi set di dati.

KiojXioXjKioj=Φ(Xio)Φ(Xj)Φè implicitamente definito dalla funzione kernel e gli SVM kernelized non calcolano esplicitamente le rappresentazioni dello spazio delle caratteristiche. Ciò è computazionalmente efficiente per set di dati di dimensioni medio-piccole, poiché lo spazio delle caratteristiche può essere di dimensione molto elevata o persino di dimensione infinita. Ma, come sopra, questo diventa impossibile per set di dati di grandi dimensioni. Invece, possiamo mappare esplicitamente i dati in modo non lineare nello spazio delle caratteristiche, quindi addestrare in modo efficiente un SVM lineare sulle rappresentazioni dello spazio delle caratteristiche. La mappatura dello spazio delle caratteristiche può essere costruita per approssimare una data funzione del kernel, ma usa meno dimensioni rispetto alla mappatura dello spazio delle caratteristiche "completa". Per insiemi di dati di grandi dimensioni, ciò può comunque fornirci rappresentazioni di spazi ricchi di funzionalità, ma con molte meno dimensioni rispetto ai punti dati.

Un approccio all'approssimazione del kernel utilizza l'approssimazione di Nyström (Williams e Seeger 2001). Questo è un modo per approssimare gli autovalori / autovettori di una matrice di grandi dimensioni usando una sottomatrice più piccola. Un altro approccio utilizza funzionalità randomizzate e talvolta viene chiamato "lavelli da cucina casuali" (Rahimi e Recht 2007).

Un altro trucco per la formazione di SVM su set di dati di grandi dimensioni è approssimare il problema di ottimizzazione con una serie di sottoproblemi più piccoli. Ad esempio, l'uso della discesa gradiente stocastica sul problema primario è un approccio (tra molti altri). Molto lavoro è stato fatto sul fronte dell'ottimizzazione. Menon (2009) offre un buon sondaggio.

Riferimenti

Williams e Seeger (2001). Utilizzo del metodo Nystroem per velocizzare le macchine del kernel.

Rahimi e Recht (2007). Funzionalità casuali per macchine kernel su larga scala.

Menon (2009) . Macchine vettoriali di supporto su larga scala: algoritmi e teoria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.