Potenziamento: perché il tasso di apprendimento è chiamato parametro di regolarizzazione?


19

Il parametro della velocità di apprendimento ( ) in Gradient Boosting riduce il contributo di ogni nuovo modello base - tipicamente un albero superficiale - che viene aggiunto nella serie. È stato dimostrato che aumenta drasticamente la precisione del set di test, il che è comprensibile come con passaggi più piccoli, il minimo della funzione di perdita può essere raggiunto in modo più preciso. ν[0,1]

Non capisco perché il tasso di apprendimento sia considerato un parametro di regolarizzazione ? Citando gli elementi dell'apprendimento statistico , sezione 10.12.1, p.364:

Il controllo del numero di alberi non è l'unica possibile strategia di regolarizzazione. Come per la regressione della cresta e le reti neurali, possono essere impiegate anche tecniche di contrazione. Valori più piccoli di (più ritiro) risultato nella più grande rischio di formazione per lo stesso numero di iterazioni . Pertanto, sia che controllano il rischio di previsione sui dati di allenamento.νMνM

La regolarizzazione significa "modo per evitare un eccesso di adattamento", quindi è chiaro che il numero di iterazioni è cruciale sotto questo aspetto (una troppo elevata porta a un eccesso di adattamento). Ma:MM

Valori più piccoli di (più ritiro) risultato nella più grande rischio di formazione per lo stesso numero di iterazioni .νM

significa solo che con bassi tassi di apprendimento, sono necessarie più iterazioni per ottenere la stessa precisione sul set di addestramento. Quindi, come si collega al sovradimensionamento?

Risposte:


23

Supponiamo che tu stia cercando di ridurre al minimo la funzione obiettiva tramite il numero di iterazioni. E il valore corrente è . Nel dato set di dati, non ci sono "errori irriducibili" e puoi ridurre al minimo la perdita a per i tuoi dati di allenamento. Ora hai due modi per farlo.100,00.0

  • Il primo modo è "tasso di apprendimento elevato" e poche iterazioni. Supponiamo di poter ridurre la perdita di in ciascuna iterazione, quindi, in iterazioni, puoi ridurre la perdita a .10.0100.0

  • Il secondo modo sarebbe "tasso di apprendimento lento" ma più iterazioni. Supponiamo di poter ridurre la perdita di in ogni iterazione e di aver bisogno di iterazioni per avere una perdita di 0,0 sui dati di allenamento.1.0100

Ora pensaci: i due approcci sono uguali? e se no quale è meglio nel contesto di ottimizzazione e nel contesto di apprendimento automatico ?

Nella letteratura sull'ottimizzazione , i due approcci sono gli stessi. Poiché entrambi convergono in una soluzione ottimale . D'altra parte, nell'apprendimento automatico , non sono uguali. Perché nella maggior parte dei casi la perdita nell'allenamento non viene impostata su , causando un eccesso di adattamento.0

Possiamo pensare al primo approccio come a una "ricerca della griglia di livello grossolano" e al secondo approccio come a "una ricerca della griglia di livello fine". Il secondo approccio di solito funziona meglio, ma richiede più potenza computazionale per più iterazioni.

Per evitare un eccesso di adattamento, possiamo fare diverse cose, il primo modo sarebbe limitare il numero di iterazioni, supponiamo che stiamo usando il primo approccio, che limitiamo il numero di iterazioni a 5. Alla fine, la perdita per i dati di allenamento è . (A proposito, questo sarebbe molto strano dal punto di vista dell'ottimizzazione , il che significa che possiamo migliorare in futuro la nostra soluzione / non è convergente, ma abbiamo scelto di non farlo. Nell'ottimizzazione di solito aggiungiamo esplicitamente vincoli o termini di penalizzazione alla funzione obiettiva, ma di solito non limita il numero di iterazioni.)50

D'altra parte, possiamo anche usare il secondo approccio: se impostiamo un tasso di apprendimento su piccolo, riduciamo la perdita di per ogni iterazione, anche se abbiamo un gran numero di iterazioni che dicono iterazioni, non abbiamo ancora minimizzato la perdita a .0.15000.0

Questo è il motivo per cui un piccolo tasso di apprendimento equivale a "più regolarizzazioni".

Ecco un esempio di utilizzo di una diversa velocità di apprendimento su dati sperimentali utilizzando xgboost. Controlla i seguenti due collegamenti per vedere cosa significa etao cosa n_iterationssignifica.

Parametri per Tree Booster

XGBoost Controllo overfitting

Per lo stesso numero di iterazioni, diciamo . Un piccolo tasso di apprendimento è "inadeguato" (o il modello ha "un'alta propensione"), e un grande tasso di apprendimento è "insufficiente" (o il modello ha "alta varianza").50

Esempio di modifica del tasso di apprendimento ETA nel modello XGBoost

PS. l'evidenza del sottoadattamento è che sia il set di training che i test hanno un grande errore e la curva di errore per training e test sono vicini l'uno all'altro. Il segno di un eccesso di adattamento è che l'errore del set di allenamento è molto basso e il set di test è molto alto, due curve sono molto distanti tra loro.


Vuoi dire che con un basso tasso di apprendimento, ti è permesso di ripetere più volte (perfeziona la tua ricerca più) che con un alto tasso di apprendimento, per la stessa perdita? Penso di avere l'intuizione che stai cercando di trasmettere, ma spiegazioni più rigorose e / o un esempio illustrativo non farebbero male.
Antoine,

grazie. Potresti aggiornare i tuoi link? Non funzionano per me
Antoine

L'uso di un tasso di apprendimento maggiore è sempre meglio se non si aumenta l'errore di allenamento nelle iterazioni successive. La regolarizzazione a cui ti riferisci (bias vs varianza) è correlata all'errore di addestramento / convalida e non al tasso di apprendimento. Indipendentemente dal fatto che tu stia utilizzando un tasso di apprendimento grande o piccolo, se raggiungi un errore di allenamento 0,0 allora ti stai adattando altrettanto. Se stai utilizzando un tasso di apprendimento più elevato, devi interrompere l'ottimizzazione prima per evitare un eccesso di adattamento. È possibile utilizzare un set di convalida per verificare se l'errore di convalida aumenta a quel punto in cui si interrompe l'allenamento.
Curioso

o potrei mancare qualcosa :)
Curioso il

This is why small learning rate is sort of equal to "more regularizations". Secondo questo documento, maggiore è il tasso di apprendimento, maggiore è la regolarizzazione: Super-Convergence: allenamento molto veloce delle reti neurali che utilizzano grandi tassi di apprendimento
Antoine,

2

Con il metodo di Newton, aggiorni i tuoi parametri sottraendo il gradiente della perdita diviso per la curvatura della perdita. Nell'ottimizzazione della discesa del gradiente, aggiorni i tuoi parametri sottraendo il gradiente delle perdite per il tasso di apprendimento. In altre parole, il reciproco del tasso di apprendimento viene utilizzato al posto della curvatura della perdita reale.

Definiamo la perdita del problema come la perdita che definisce ciò che è un modello buono rispetto a uno cattivo. È la vera perdita. Definiamo la perdita ottimizzata per essere ciò che è effettivamente ridotto al minimo dalle regole di aggiornamento.

Per definizione, un parametro di regolarizzazione è qualsiasi termine che si trova nella perdita ottimizzata, ma non nella perdita del problema. Poiché il tasso di apprendimento si comporta come un termine extra quadratico nella perdita ottimizzata, ma non ha nulla a che fare con la perdita del problema, si tratta di un parametro di regolarizzazione.

Altri esempi di regolarizzazione che giustificano questa prospettiva sono:

  • La perdita di peso, che è come un termine aggiuntivo nella perdita ottimizzata che penalizza i pesi di grandi dimensioni,
  • termini che penalizzano modelli complicati e
  • termini che penalizzano le correlazioni tra le funzionalità.

- Non capisco In other words, the reciprocal of the learning rate is used in place of the real loss curvature. - Io non sono un esperto di dominio ed è la prima volta che vedo la definizione: a regularization parameter is any term that is in the optimized loss, but not the problem loss. Non capisco neanche troppo. Potresti fornire un riferimento pertinente? Grazie in anticipo
Antoine

@Antoine Non riesco a fornire un riferimento. È solo la mia esperienza che ho cercato di giustificare usando altri tre esempi. Per quanto riguarda il tasso di apprendimento al posto della curvatura della perdita inversa, puoi vedere che se scrivi il metodo di Newton e le regole di aggiornamento della discesa del gradiente fianco a fianco.
Neil G,
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.