Linee guida per selezionare gli iperparametri in Deep Learning


38

Sto cercando un documento che possa aiutare a fornire una guida su come scegliere gli iperparametri di un'architettura profonda, come gli encoder automatici impilati o le reti di credenze profonde. Ci sono molti iperparametri e sono molto confuso su come sceglierli. Anche l'uso della convalida incrociata non è un'opzione poiché l'allenamento richiede davvero molto tempo!


Consiglio il Deep Learning Book di Ian Goodfellow: deeplearningbook.org
Vadim Smolyakov,

Risposte:


24

Esistono sostanzialmente quattro metodi:

  1. Ricerca manuale: usando la conoscenza che hai dei problemi, indovina i parametri e osserva il risultato. Sulla base di quel risultato modificare i parametri. Ripetere questo processo fino a quando non si trovano i parametri che funzionano bene o si esaurisce il tempo.
  2. Ricerca griglia: usando le conoscenze che hai sul problema, identifica gli intervalli per gli iperparametri. Quindi selezionare diversi punti da tali intervalli, generalmente distribuiti uniformemente. Allena la tua rete utilizzando ogni combinazione di parametri e seleziona la combinazione che funziona meglio. In alternativa puoi ripetere la ricerca su un dominio più ristretto centrato sui parametri che offrono le migliori prestazioni.
  3. Ricerca casuale: come la ricerca in griglia, si utilizza la conoscenza del problema per identificare gli intervalli per gli iperparametri. Tuttavia, invece di selezionare i valori da quegli intervalli in modo metodico, li selezioni a caso. Ripeti questo processo fino a quando non trovi i parametri che funzionano bene o usa ciò che impari per restringere la ricerca. Nel documento Ricerca casuale di ottimizzazione di iperparametri, il dott. Bengio propone che questo sia il metodo di base rispetto al quale confrontare tutti gli altri metodi e mostra che tende a funzionare meglio degli altri metodi.
  4. Ottimizzazione bayesiana: lavori più recenti si sono concentrati sul miglioramento di questi altri approcci usando le informazioni acquisite da un determinato esperimento per decidere come regolare i parametri iper per il prossimo esperimento. Un esempio di questo lavoro potrebbe essere l'ottimizzazione bayesiana pratica degli algoritmi di apprendimento automatico di Adams et al.

14

Esiste un'ampia varietà di metodi. Possono essere ampiamente partizionati in metodi di ricerca casuali / non diretti (come la ricerca della griglia o la ricerca casuale) e metodi diretti. Tieni presente, tuttavia, che tutti richiedono di testare una notevole quantità di impostazioni dell'iperparametro a meno che tu non sia fortunato (almeno centinaia, dipende dal numero di parametri).

Nella classe dei metodi diretti, è possibile identificare diversi approcci distinti:

  • metodi privi di derivati, ad esempio Nelder-Mead simplex o DIRECT
  • metodi evolutivi, come CMA-ES e sciami di particelle
  • approcci basati su modelli, ad esempio EGO e Kriging sequenziale

Potresti voler esaminare Optunity , un pacchetto Python che offre una varietà di solutori per l'ottimizzazione dell'iperparametro (tutto ciò che ho citato tranne EGO e Kriging, per ora). A breve sarà disponibile l'opzione per MATLAB e R. Disclaimer: sono lo sviluppatore principale di questo pacchetto.

Sulla base della mia esperienza personale, i metodi evolutivi sono molto potenti per questo tipo di problemi.


10

Non guardare oltre! Yoshua Bengio ha pubblicato uno dei miei articoli applicati preferiti, uno che consiglio a tutti i nuovi ingegneri dell'apprendimento automatico quando iniziano ad addestrare le reti neurali: raccomandazioni pratiche per l'addestramento basato su gradiente di architetture profonde. Per ottenere la sua prospettiva sulla rotazione dell'iperparametro: tra cui la frequenza di apprendimento, il programma della frequenza di apprendimento, l'arresto anticipato, la dimensione del minimarket, il numero di strati nascosti, ecc., Vedere la Sezione 3.

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.