L’algoritmo di ottimizzazione migliore per la tua rete neurale

L'algoritmo di ottimizzazione perfetto per la tua rete neurale

Come sceglierlo e minimizzare il tempo di addestramento della rete neurale.

Sorgente dell'immagine: unsplash.com.

Sviluppare un modello di machine learning implica un rigoroso processo sperimentale che segue il ciclo idea-esperimento-valutazione.

Immagine di autore.

Il ciclo sopra descritto viene ripetuto più volte fino a raggiungere livelli di prestazioni soddisfacenti. La fase “esperimento” coinvolge sia la codifica che le fasi di addestramento del modello di machine learning. Man mano che i modelli diventano più complessi e vengono addestrati su set di dati più ampi, il tempo di addestramento inevitabilmente si espande. Di conseguenza, addestrare una grande rete neurale profonda può essere estremamente lento.

Fortunatamente, per i professionisti della scienza dei dati, esistono diverse tecniche per accelerare il processo di addestramento, tra cui:

  • Transfer Learning.
  • Inizializzazione dei pesi, come l’inizializzazione Glorot o He.
  • Batch Normalization per i dati di addestramento.
  • Scegliere una funzione di attivazione affidabile.
  • Utilizzare un ottimizzatore più veloce.

Anche se tutte le tecniche indicate sono importanti, in questo articolo mi concentrerò maggiormente sull’ultimo punto. Descriverò molti algoritmi di ottimizzazione dei parametri della rete neurale, evidenziandone vantaggi e limitazioni.

Nell’ultima sezione di questo articolo, presenterò una visualizzazione che mostra il confronto tra gli algoritmi di ottimizzazione discussi.

Per l’implementazione pratica, tutto il codice utilizzato in questo articolo può essere trovato in questo repository di GitHub:

articles/NN-optimizer at main · andreoniriccardo/articles

Contribute to andreoniriccardo/articles development by creating an account on GitHub.

github.com

Batch Gradient Descent

Tradizionalmente, Batch Gradient Descent è considerato la scelta predefinita per il metodo di ottimizzazione nelle reti neurali.