Perché non impariamo solo i parametri iper?


11

Stavo implementando un articolo piuttosto popolare " SPIEGAZIONE E CABLAGGIO DI ESEMPI AVVERSARI " e nel documento, forma una funzione oggettiva contraddittoria

J '' (θ) = αJ (θ) + (1 - α) J '(θ).

Tratta α come iperparametro. α può essere 0,1, 0,2, 0,3, ecc.

Indipendentemente da questo documento specifico, mi chiedo, perché non includere semplicemente α nei nostri parametri e imparare il migliore α?

Qual è lo svantaggio di farlo? È a causa del sovradimensionamento? In tal caso, perché l'apprendimento di un solo parametro in più causa un eccesso di adattamento?


Bene, se l'iperparametro è un parametro della funzione di costo (e non del processo di generazione dei dati DGP), non è chiaro che i dati da soli contengano informazioni al riguardo.
kjetil b halvorsen,

1
In molti casi, utilizziamo i dati per selezionare osservando le prestazioni del modello su un set di validazione. (vale a dire, un proxy per errore di generalizzazione.)α
Vimal

Risposte:


8

"Perché non impariamo semplicemente i parametri iper?"

È un'ottima domanda! Proverò a fornire una risposta più generale. La risposta TL; DR è che puoi sicuramente imparare iperparametri, non solo dagli stessi dati. Continua a leggere per una risposta leggermente più dettagliata.


Un iperparametro corrisponde in genere a un'impostazione dell'algoritmo di apprendimento, piuttosto che a uno dei suoi parametri. Nel contesto dell'apprendimento profondo, ad esempio, questo è esemplificato dalla differenza tra qualcosa come il numero di neuroni in un particolare strato (un iperparametro) e il peso di un particolare bordo (un parametro regolare e apprendibile).

Perché c'è una differenza in primo luogo? Il caso tipico per rendere un parametro un iperparametro è che non è proprio appropriato apprendere quel parametro dal set di addestramento. Ad esempio, poiché è sempre più facile ridurre l'errore di allenamento aggiungendo più neuroni, rendere il numero di neuroni in uno strato un parametro regolare incoraggerebbe sempre reti molto grandi, il che è qualcosa che sappiamo per certo non è sempre desiderabile (a causa di overfitting).

Alla tua domanda, non è che non impariamo affatto gli iperparametri. Mettendo da parte le sfide computazionali per un minuto, è molto possibile imparare buoni valori per gli iperparametri e ci sono anche casi in cui questo è indispensabile per una buona prestazione; tutta la discussione nel primo paragrafo suggerisce che, per definizione, non è possibile utilizzare gli stessi dati per questa attività .

Utilizzando un'altra suddivisione dei dati (creando così tre parti disgiunte: il set di addestramento, il set di convalida e il set di test, ciò che si potrebbe fare in teoria è la seguente procedura di ottimizzazione nidificata : nel ciclo esterno, si tenta di trovare i valori degli iperparametri che riducono al minimo la perdita di validazione e, nel ciclo interno, si tenta di trovare i valori per i parametri regolari che riducono al minimo la perdita di addestramento .

Ciò è possibile in teoria, ma molto costoso dal punto di vista computazionale: ogni fase del ciclo esterno richiede la risoluzione (fino al completamento, o in qualche luogo vicino a quello) del circuito interno, che è tipicamente computazionalmente pesante. Ciò che complica ulteriormente le cose è che il problema esteriore non è facile: per uno, lo spazio di ricerca è molto grande.

Esistono molti approcci per ovviare a questo problema semplificando la configurazione di cui sopra (ricerca della griglia, ricerca casuale o ottimizzazione di iperparametri basata su modello), ma la spiegazione di questi va ben oltre l'ambito della domanda. Come dimostra anche l'articolo a cui hai fatto riferimento, il fatto che questa sia una procedura costosa spesso significa che i ricercatori semplicemente lo saltano del tutto, o provano pochissime impostazioni manualmente, alla fine stabilendosi sulla migliore (di nuovo, secondo il set di validazione). Alla tua domanda originale, tuttavia, sostengo che, sebbene molto semplicistico e inventato, questa è ancora una forma di "apprendimento".


Ciao, grazie per la tua risposta. Cosa succede se utilizzo gli stessi dati ??
Aerin,

7

Iperparametri come quello in quella carta sono spesso usati per bilanciare più termini nella funzione di perdita. Se li rendessi apprendibili, il processo di ottimizzazione imparerebbe semplicemente ad allocare tutto il peso verso termini che sono più facili da ottimizzare a costo di termini che sono più difficili da ottimizzare, il che vanifica il punto di bilanciamento dei termini.

Un altro modo per vederlo è che la funzione di perdita è un surrogato di un obiettivo reale che è difficile da definire o ottimizzare, come "generare immagini di output dovrebbe apparire realistico" o "dovrebbe essere resistente agli esempi contraddittori". In tal caso, il vero obiettivo non è "trovare gli iperparametri per ridurre al minimo la perdita surrogata", è "trovare gli iperparametri in modo tale che quando eseguiamo SGD sul resto dei parametri per ottimizzare il surrogato, otteniamo buone prestazioni sul vero obbiettivo".


4

Dato che hai chiesto "indipendentemente dall'articolo", vorrei fare un esempio più semplice: regressione lineare penalizzata (Ridge / Lazo).

Per questi casi, posso pensare a due motivi per cui: Ma prima, nota che ci sono due funzioni qui: (F1) La funzione di perdita, che è una funzione analitica dell'ipermetro-parametro e dei dati (nel documento che hai collegato, è ; e (F2) una stima dell'errore di generalizzazione, che dipende dalla soluzione ottimale a (F1) e dall'iperparametro selezionato in (F1).J~

Avvertenza: uno sguardo superficiale al documento rivela che gli autori addestrano un classificatore di rete neurale per il set di dati MNIST. Non dice esplicitamente come scegliere l'hyper-parametro , ma avrei scelto uno che minimizza l'errore di convalida del modello migliore.αα

  1. La funzione oggettiva per l'ottimizzazione dell'iperparametro è un'espressione che è un proxy per l'errore di generalizzazione. Questa espressione è difficile da scrivere come una semplice funzione analitica che può essere differenziata, ma può essere facilmente valutata ad un certo punto semplicemente risolvendo il problema di ottimizzazione sottostante.

  2. La valutazione della funzione (F2) richiede la risoluzione di un problema di ottimizzazione, che potrebbe essere costoso. Quindi, anche se è possibile approssimare il gradiente per F2 per eseguire la discesa del gradiente, sarebbe costoso e lento. In questi casi, fare una ricerca in griglia è spesso "abbastanza buono".

Detto questo, ci sono tecniche per ottimizzare le funzioni obiettivo della scatola nera (come F2) assumendo una certa struttura di scorrevolezza a causa della loro dipendenza dall'iperparametro. Ad esempio, puoi vedere questo post che mostra come le prestazioni di un modello Lazo variano con il suo iperparametro :λ

Prestazioni del modello lazo

(Immagine tratta da questo post: https://stats.stackexchange.com/a/26607/54725 )

Alcuni riferimenti:


Ti riferisci in particolare al 2 ° termine nel documento J (θ, x + esign (∇xJ (θ, x, y)) come F2?
Aerin,

JJ~ααα

Quindi a cosa ti riferisci nel documento come F1 e F2?
Aerin,

J~

1

αθ

αJ(θ)=ααJ(θ)+α(1α)J(θ)=J(θ)J(θ)=0
Quindi,
J(θ)=J(θ)

Quando questo iperparametro è ottimizzato, farà sì che sia J che J 'diventino la stessa funzione, cioè pesi uguali. Ti ritroverai con una soluzione banale.

yL=XLβL
aL=σ(yL)
XL+1=aL
βLβ della funzione obiettiva si ottengono punti dati che inseriscono il risultato in modo non ovvio in matrice, hessiana, prodotti incrociati ecc.

Tuttavia, se provi a stimare le condizioni del primo ordine sugli iperparametri, non ottieni questo effetto. I derivati ​​degli iperparametri spesso fanno funzionare interi blocchi del modello, senza mescolarne le parti come derivati ​​su parametri. Ecco perché l'ottimizzazione degli iperparametri porta spesso a soluzioni banali come quella che ti ho dato per il documento specifico. L'ottimizzazione degli iperparametri non disturba il tuo set di dati e lo rende abbastanza scomodo da produrre qualcosa di interessante.

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.