Quanto è grave l'ottimizzazione dell'iperparametro al di fuori della convalida incrociata?


20

So che eseguire l'ottimizzazione dell'iperparametro al di fuori della convalida incrociata può portare a stime distorte della validità esterna, poiché il set di dati utilizzato per misurare le prestazioni è lo stesso utilizzato per ottimizzare le funzionalità.

Quello che mi chiedo è quanto sia grave questo problema . Posso capire come sarebbe davvero male per la selezione delle funzionalità, dal momento che questo ti dà un numero enorme di parametri da ottimizzare. Ma cosa succede se stai usando qualcosa come LASSO (che ha solo un parametro, l'intensità della regolarizzazione) o una foresta casuale senza selezione delle caratteristiche (che può avere alcuni parametri ma niente di così drammatico come aggiungere / far cadere le caratteristiche del rumore)?

In questi scenari, quanto puoi aspettarti che la tua stima dell'errore di allenamento sia ottimistica?

Gradirei qualsiasi informazione su questo - casi studio, documenti, aneddoti, ecc. Grazie!

EDIT: Per chiarire, io sto non parlando di stimare le prestazioni del modello sui dati di addestramento (ad esempio, non si utilizza la convalida incrociata a tutti). Con "messa a punto dell'iperparametro al di fuori della convalida incrociata" intendo usare la convalida incrociata solo per stimare le prestazioni di ogni singolo modello, ma non includere un secondo ciclo esterno di convalida incrociata per correggere il sovra-adattamento all'interno della procedura di messa a punto dell'iperparametro (come distinto da sovralimentazione durante la procedura di addestramento). Vedi ad esempio la risposta qui .

Risposte:


17

Gli effetti di questo pregiudizio possono essere molto grandi. Una buona dimostrazione di ciò è data dalle gare di machine learning aperte presenti in alcune conferenze di machine learning. Questi generalmente hanno un set di addestramento, un set di validazione e un set di test. I concorrenti non riescono a vedere le etichette né per il set di validazione né per il set di test (ovviamente). Il set di convalida viene utilizzato per determinare la classifica dei concorrenti in una classifica che tutti possono vedere mentre la competizione è in corso. È molto comune che quelli a capo della classifica alla fine della competizione siano molto bassi nella classifica finale in base ai dati dei test. Questo perché hanno sintonizzato gli iperparametri per i loro sistemi di apprendimento per massimizzare le loro prestazioni in classifica e, nel fare ciò, hanno sovra-adattato i dati di validazionesintonizzando il loro modello. Gli utenti più esperti prestano poca o nessuna attenzione alla classifica e adottano stime più rigorose delle prestazioni imparziali per guidare la loro metodologia.

L'esempio nel mio articolo (menzionato da Jacques) mostra che gli effetti di questo tipo di distorsione possono avere lo stesso tipo di dimensione della differenza tra gli algoritmi di apprendimento, quindi la risposta breve non viene utilizzata con protocolli di valutazione delle prestazioni distorti se si sinceramente interessato a scoprire cosa funziona e cosa no. La regola di base è "trattare la selezione del modello (ad es. Tuning dell'iperparametro) come parte integrante della procedura di adattamento del modello e includerla in ogni piega della convalida incrociata utilizzata per la valutazione delle prestazioni).

Il fatto che la regolarizzazione sia meno soggetta a un eccesso di adattamento rispetto alla selezione delle caratteristiche è precisamente il motivo per cui LASSO ecc. Sono buoni modi per eseguire la selezione delle caratteristiche. Tuttavia, la dimensione della distorsione dipende dal numero di funzioni, dalla dimensione del set di dati e dalla natura dell'attività di apprendimento (ovvero esiste un elemento che dipende da un determinato set di dati e varierà da un'applicazione all'altra). La natura dipendente dai dati di ciò significa che è meglio stimare la dimensione della distorsione usando un protocollo imparziale e confrontando la differenza (riportare che il metodo è robusto per adattarsi in modo eccessivo alla selezione del modello in questo caso particolare può essere di interesse in se stesso).

GC Cawley e NLC Talbot (2010), "Adattamento eccessivo nella selezione dei modelli e conseguente errore di selezione nella valutazione delle prestazioni", Journal of Machine Learning Research, 11, p. 2079, sezione 5.2.)


7
  • Il pregiudizio di cui stai parlando è ancora principalmente legato al sovradimensionamento.
  • È possibile mantenere basso il rischio valutando solo pochissimi modelli per la correzione dell'iperparametro di regolarizzazione e optando per una bassa complessità all'interno della scelta plausibile.

  • Come sottolinea @MarcClaesen, hai la curva di apprendimento che funziona per te, il che mitigherà in qualche modo il pregiudizio. Ma la curva di apprendimento è in genere ripida solo per pochissimi casi, e quindi anche il sovradimensionamento è molto più un problema.

Alla fine, mi aspetto che il pregiudizio dipenda molto da

  • i dati (è difficile esagerare con un problema univariato ...) e
  • la tua esperienza e comportamento di modellazione: penso che sia possibile che tu decida su una complessità approssimativamente appropriata per il tuo modello se hai abbastanza esperienza sia con il tipo di modello che con l'applicazione e se sei estremamente ben educato e non ti arrendi la tentazione per modelli più complessi. Ma ovviamente non ti conosciamo e quindi non possiamo giudicare quanto sia conservatrice la tua modellazione.
    Inoltre, ammettere che il tuo modello statistico elaborato è altamente soggettivo e che non hai ancora casi per fare una convalida non è in genere ciò che desideri. (Neanche in situazioni in cui si prevede che il risultato complessivo sia migliore.)

Non uso LASSO (poiché la selezione delle variabili non ha molto senso per i miei dati per motivi fisici), ma PCA o PLS di solito funzionano bene. Una cresta sarebbe un'alternativa vicina a LASSO e più appropriata per il tipo di dati. Con questi dati ho visto un ordine di grandezza più classificazioni errate sulla "validazione della scorciatoia" rispetto alla corretta validazione incrociata (esterna) indipendente. In queste situazioni estreme, tuttavia, la mia esperienza afferma che la convalida della scorciatoia sembrava sospettosamente buona, ad es. Classificazione errata del 2% => 20% con corretta validazione incrociata.

Non posso darti numeri reali che si applicano direttamente alla tua domanda, però:

  • Finora, mi sono preoccupato di più di altri tipi di "scorciatoie" che si verificano nel mio campo e portano a perdite di dati, ad esempio spettri di convalida incrociata anziché pazienti (grande pregiudizio! Posso mostrarti una classificazione errata del 10% -> 70% = indovinando tra 3 classi), o non includendo il PCA nella validazione incrociata (2-5% -> 20-30%).
  • Nelle situazioni in cui devo decidere se l'unica validazione incrociata che posso permettermi debba essere spesa per l'ottimizzazione del modello o per la validazione, decido sempre per la validazione e fisso il parametro di complessità per esperienza. PCA e PLS funzionano bene, poiché le tecniche di regolarizzazione sono rispettose perché il parametro complessità (# componenti) è direttamente correlato alle proprietà fisico / chimiche del problema (ad esempio, posso avere una buona idea di quanti gruppi di sostanze chimicamente differenti mi aspetto che contano). Inoltre, per motivi fisico-chimici, so che i componenti dovrebbero apparire in qualche modo come spettri e se sono rumorosi, sono troppo adatto. Ma l'esperienza potrebbe anche essere l'ottimizzazione della complessità del modello su un vecchio set di dati di un precedente esperimento che è abbastanza simile in generale da giustificare il trasferimento di iperparametri e quindi utilizzareil parametro di regolarizzazione per i nuovi dati.
    In questo modo, non posso pretendere di avere il modello ottimale, ma posso affermare di avere una stima ragionevole delle prestazioni che posso ottenere.
    E con il numero del paziente che ho, è comunque impossibile fare confronti tra modelli statisticamente significativi (ricordate, il mio numero totale di pazienti è inferiore alla dimensione del campione consigliata per stimare una singola proporzione [secondo la regola empirica @FrankHarrell fornisce qui]).

Perché non esegui alcune simulazioni il più vicino possibile ai tuoi dati e facci sapere cosa succede?


Informazioni sui miei dati: lavoro con dati spettroscopici. I set di dati sono in genere ampi: alcune decine di casi indipendenti (pazienti; sebbene in genere molte misurazioni per caso. Ca. 10³ varia nei dati grezzi, che potrei essere in grado di ridurre a dire 250 applicando le conoscenze del dominio per tagliare aree non informative dai miei spettri e per ridurre la risoluzione spettrale.


5

Se si seleziona solo l'iperparametro per LASSO, non è necessario un CV nidificato. La selezione di iperparametri viene eseguita in un'interazione CV singola / piatta.

λ

LioTioλ*TioLio

λ*

(Questo non è l'unico metodo per selezionare gli iperparametri, ma è il più comune - esiste anche la procedura "mediana" discussa e criticata da GC Cawley e NLC Talbot (2010), "Sovrapposizione nella selezione del modello e conseguente bias di selezione nella valutazione delle prestazioni ", Journal of Machine Learning Research, 11 , p.2079 , sezione 5.2.)

λ*λ*

Conosco due risultati sperimentali nella misurazione del bias di questa stima (rispetto a un vero errore di generalizzazione per set di dati sintetici)

entrambi hanno accesso aperto.

È necessario un CV nidificato se:

a) vuoi scegliere tra un LASSO e alcuni altri algoritmi, specialmente se hanno anche iperparametri

λ* ).

λ*

Infine, il CV nidificato non è l'unico modo per calcolare una stima imparziale ragionevole dell'errore di generalizzazione previsto. Vi sono state almeno altre tre proposte


2
Puoi spiegare cosa intendi con "non esiste un CV per la selezione dell'iperparametro"? Da quello che hai scritto non riesco a capire se vuoi avvertire l'OP che non hanno fatto il nesting, o se affermi che in generale non esiste nulla del genere.
cbeleites supporta Monica il

(+1) per una breve spiegazione del problema e buone referenze. Ma, come sottolinea @cbeleites, la prima frase è piuttosto confusa: sembra che abbia lo scopo di correggere un malinteso che l'OP non ha.
Scortchi - Ripristina Monica

@cbeleites (e Scortchi) - Sto rispondendo all'OP "EDIT:" dove (credo) afferma che sta usando il CV per selezionare i parametri ("validazione incrociata solo per stimare le prestazioni di ogni singolo modello") e è preoccupato di non aver utilizzato un CV nidificato ("ma non includendo un secondo ciclo di convalida incrociato esterno per correggere il sovradimensionamento all'interno della procedura di ottimizzazione dell'iperparametro"). Stavo cercando di dirgli che non c'erano CV esterni nella selezione dei parametri.
Jacques Wainer,

@JacquesWainer: credo che voglia "correggere il sovra-adattamento all'interno della procedura di ottimizzazione dell'iperparametro" quando si stima la prestazione fuori campione della procedura (situazione b ), piuttosto che correggere in qualche modo il valore selezionato dell'iperparametro usando CV annidato. In ogni caso, la modifica rende più chiaro l'inizio della risposta.
Scortchi - Ripristina Monica

Sì, intendevo "correggere [la stima ingenua delle prestazioni] per un overfitting all'interno della procedura di ottimizzazione dell'iperparametro", non "correggere [gli hyperparameter sintonizzati] per un overfitting" o qualcosa del genere. Mi dispiace per la confusione; Avrei dovuto dichiarare più esplicitamente che ero preoccupato per la stima dell'errore, non per la selezione dei parametri.
Ben Kuhn,

2

Qualsiasi algoritmo di apprendimento complesso, come SVM, reti neurali, foresta casuale, ... può ottenere una precisione di allenamento del 100% se glielo permetti (ad esempio attraverso una regolarizzazione debole / assente), con prestazioni di generalizzazione assolutamente orribili di conseguenza.

κ(Xio,Xj)=exp(-γXio-Xj2)γ=100% precisione del set di allenamento e previsioni costanti del set di test (ad es. Tutto positivo o tutto negativo, a seconda del termine di errore).

In breve, puoi facilmente finire con un classificatore perfetto sul tuo set di allenamento che non ha imparato assolutamente nulla di utile su un set di test indipendente. È così grave.


Non sto parlando di formare il modello al di fuori della convalida incrociata. Sto parlando di mettere a punto gli iperparametri (e di utilizzare ancora la convalida incrociata per stimare le prestazioni di ciascun set di iperparametri). Modificherò il post per chiarire questo.
Ben Kuhn,

100%

Perché pensi che stia considerando di non utilizzare la convalida incrociata? Ho detto specificamente, "... e ancora usando la validazione incrociata per stimare le prestazioni di ogni set di iperparametri."
Ben Kuhn,

1
γ=γγ

2
Ho frainteso completamente la tua domanda. Prima della modifica era molto confuso. Il pregiudizio a cui sembri essere interessato non è necessariamente positivo, tra l'altro; poiché molti approcci producono modelli drasticamente migliori quando vengono forniti più dati di allenamento, il che è particolarmente rilevante per piccoli set di addestramento + convalida incrociata.
Marc Claesen,
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.