Perché trasformare i dati in uno spazio di funzionalità ad alta dimensione in cui le classi sono linearmente separabili porta a un overfitting?


10

Ho letto nel mio libro (classificazione dei modelli statistici di Webb e Wiley) nella sezione su SVM e dati linearmente non separabili:

In molti problemi pratici del mondo reale non ci sarà alcun confine lineare che separa le classi e il problema della ricerca di un iperpiano di separazione ottimale non ha senso. Anche se dovessimo utilizzare sofisticati vettori di caratteristiche, , per trasformare i dati in uno spazio di caratteristiche ad alta dimensione in cui le classi sono linearmente separabili, ciò porterebbe a un eccesso di adattamento dei dati e quindi a una scarsa capacità di generalizzazione.Φ(X)

Perché trasformare i dati in uno spazio di funzionalità ad alta dimensione in cui le classi sono linearmente separabili porta a un overfitting e una scarsa capacità di generalizzazione?

Risposte:


8

@ffriend ha un buon post a riguardo, ma in generale, se ti trasformi in uno spazio di funzionalità ad alta dimensione e ti alleni da lì, l'algoritmo di apprendimento è 'costretto' a prendere in considerazione le funzionalità dello spazio superiore, anche se potrebbero non avere nulla avere a che fare con i dati originali e non offrire qualità predittive.

Ciò significa che non si generalizzerà correttamente una regola di apprendimento durante l'allenamento.

Prendi un esempio intuitivo: supponi di voler prevedere il peso dall'altezza. Hai tutti questi dati, corrispondenti ai pesi e alle altezze delle persone. Diciamo che in generale seguono una relazione lineare. Cioè, puoi descrivere il peso (W) e l'altezza (H) come:

W=mH-B

, dove è la pendenza dell'equazione lineare e b è l'intercetta y, o in questo caso l'intercettazione W.mB

Diciamo che sei un biologo esperto e che sai che la relazione è lineare. I tuoi dati sembrano un diagramma a dispersione che tende verso l'alto. Se si mantengono i dati nello spazio bidimensionale, si inserirà una linea attraverso di essi. Potrebbe non colpire tutti i punti, ma va bene - sai che la relazione è lineare e vuoi comunque una buona approssimazione.

Ora diciamo che hai preso questi dati bidimensionali e li hai trasformati in uno spazio di dimensioni superiori. Quindi invece di solo , aggiungi anche altre 5 dimensioni, H 2 , H 3 , H 4 , H 5 e HH2H3H4H5 .H2+H7

cio

W=c1H+c2H2+c3H3+c4H4+c5H5+c6H2+H7

H2+H7

Questo è il motivo per cui se trasformi i dati in dimensioni di ordine superiore alla cieca, corri un rischio molto grave di overfitting e non di generalizzazione.


6

Diciamo che stiamo cercando di trovare una funzione che approssima l'insieme di punti 2D sulla pianura usando la regressione lineare (che è essenzialmente praticamente ciò che fa SVM). Alle 3 immagini sotto le croci rosse sono presenti osservazioni (dati di allenamento) e 3 linee blu rappresentano equazioni con diverso grado di polinomio usato per la regressione.

inserisci qui la descrizione dell'immagine

La prima immagine è generata dall'equazione lineare. Come puoi vedere, riflette punti abbastanza male. Questo si chiama underfitting , perché abbiamo dato all'algoritmo di apprendimento uno scarso "grado di libertà" (polinomio di grado troppo piccolo). La seconda immagine è molto meglio: abbiamo usato il polinomio di secondo grado e sembra piuttosto buono. Tuttavia, se aumentiamo ulteriormente il "grado di libertà" otteniamo la terza immagine. La linea blu su di essa passa proprio attraverso le croci, ma credi che questa linea descriva davvero la dipendenza? Io non la penso così. Sì, sul set di allenamento l'errore di apprendimento (distanza tra le croci e la linea) è molto piccolo, ma se aggiungiamo un'altra osservazione (diciamo, dai dati reali), molto probabilmente l'errore per esso sarà molto più grande di se usassimo l'equazione dal secondo Immagine. Questo effetto è chiamato overfittingXXX2x3. In breve, dividi i tuoi dati in, diciamo, 10 parti, prendine 9 per l'addestramento e 1 per la validazione. Se l'errore sul set di convalida è molto più elevato rispetto al set di treni, allora hai un overfit. La maggior parte degli algoritmi di apprendimento automatico utilizza alcuni parametri (ad esempio i parametri dei kernel in SVM) che consentono di superare il sovradimensionamento. Inoltre, una parola chiave popolare qui è regolarizzazione : modifica dell'algoritmo che influenza direttamente il processo di ottimizzazione, dicendo letteralmente "non seguire i dati di allenamento troppo da vicino".

A proposito, non sono sicuro che DSP sia il sito giusto per questo tipo di domande, probabilmente sarai interessato anche a visitare CrossValidated .


Questo è stato - rubato - preso in prestito dalle lezioni video di Andrew Ng sull'apprendimento automatico. A meno che non sia tu il dottor Ng. In tal caso, stai cercando uno studente di dottorato per il tuo laboratorio? (Le lezioni possono essere trovate su coursera.com per coloro che sono interessati)
CyberMen

@CyberMen: è stato rubato da images.google.com :) Ma sì, la notazione è molto simile a quella di Ng. E suggerirei sicuramente il suo corso (e altri articoli) per l'introduzione all'apprendimento automatico.
amico del

Penso che DSP sia il posto giusto per questo tipo di domande, almeno tra gli altri siti SE.
Gigili,

2

Hai letto più lontano?

Alla fine della sezione 6.3.10:

"Tuttavia, ci sono spesso parametri del kernel che devono essere impostati e una scelta sbagliata può portare a una scarsa generalizzazione. La scelta del miglior kernel per un dato problema non è risolta e sono stati derivati ​​kernel speciali per problemi particolari, ad esempio la classificazione dei documenti "

che ci porta alla sezione 6.3.3:

"I kernel accettabili devono essere espressi come prodotto interno in uno spazio di caratteristiche, il che significa che devono soddisfare le condizioni di Mercer"

Kernel dalla propria area piuttosto difficile, puoi avere grandi dati in cui in diverse parti dovrebbero applicare parametri diversi, come il smoothing, ma non sai esattamente quando. Pertanto una cosa del genere è abbastanza difficile da generalizzare.


Sto leggendo "4.2.5 Support vector machines" come ho detto, non so di quale sezione 6 stai parlando. Dal momento che il paragrafo dopo quello che ho menzionato nella domanda non ha nulla a riguardo, ho pensato che sarebbe meglio chiederlo qui.
Gigili,

Mi dispiace, l'ho confuso con Statistical Pattern Recognition anche di Webb, che sto cercando in questo momento e che hanno gli stessi capitoli.
sigrlami,
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.