Perché gli algoritmi genetici non vengono utilizzati per ottimizzare le reti neurali?


13

Da quanto ho capito, gli algoritmi genetici sono potenti strumenti per l'ottimizzazione multi-obiettivo.

Inoltre, addestrare le reti neurali (specialmente quelle profonde) è difficile e presenta molti problemi (funzioni di costo non convesse - minimi locali, gradienti di fuga e di esplosione, ecc.).

Inoltre, sono fattibile allenare concettualmente una NN con GA. Mi chiedevo, perché non sono usati in pratica? È una questione di prestazioni?

Risposte:


5

La formazione di reti neurali (NN) con algoritmi genetici (GA) non è solo fattibile, ci sono alcune aree di nicchia in cui le prestazioni sono abbastanza buone per essere utilizzate frequentemente. Un buon esempio di ciò è Neuroevolution di topologie in aumento o NEAT , che rappresenta un approccio efficace alla generazione di controller in ambienti semplici, come i giochi.

Nel caso più generale, tuttavia, l'approccio non si adatta a reti grandi e profonde con molti parametri da sintonizzare.

Gli algoritmi genetici e altre ricerche globali per i parametri ottimali sono robusti in modi che non lo sono gli algoritmi basati sul gradiente. Ad esempio, è possibile addestrare un NN con attivazioni della funzione Step o qualsiasi altra funzione di attivazione non differenziabile. Hanno punti deboli altrove. Una cosa rilevante nel caso degli GA usati per gli NN è che i parametri di peso sono intercambiabili in alcune combinazioni ma fortemente dipendenti da altre combinazioni. La fusione di due reti neurali ugualmente buone con parametri diversi - cosa che si farebbe in un cross-over in un GA - di solito si tradurrà in una terza rete con scarse prestazioni. Il successo di NEAT è in parte quello di trovare un modo per affrontare tale problema "accrescendo" le connessioni della NN e abbinandole tra reti neurali simili.

Gli approcci basati sul gradiente sono molto più efficienti. In generale, e non solo nel dominio degli NN, se è possibile calcolare il gradiente di una funzione rispetto ai parametri, è possibile trovare i parametri ottimali più rapidamente della maggior parte delle altre tecniche di ottimizzazione. Un gradiente accurato garantisce almeno un piccolo miglioramento da una singola valutazione e la maggior parte degli altri ottimizzatori rientra in un paradigma di generazione e riprova che non può garantire quel tipo di garanzia. La debolezza della tendenza a trovare optima locale non si è rivelata un grosso ostacolo per le funzioni di perdita nelle NN ed è stata affrontata con un certo grado di successo usando estensioni per la discesa del gradiente di base come momentum, RPROP, Adam ecc.

In pratica su una grande rete multistrato, i metodi a gradiente sono probabilmente ordini di grandezza più veloci delle ricerche GA come NEAT per trovare i parametri di rete. Non troverai CNN addestrate a GA che risolvono ImageNet, o persino MNIST, in cui GA ha trovato i pesi di rete senza aiuto. Tuttavia, le GA, o almeno alcune loro varianti, non sono escluse al 100%. Ad esempio, questo blog del 2017 esamina articoli recenti tra cui Evoluzione su larga scala dei classificatori di immagini che esplora l'utilizzo di GA per scoprire gli iperparametri NN che sono un compito importante nell'apprendimento automatico e non molto trattabili utilizzando metodi basati su gradiente.


1

In realtà, Google Brain ha già fatto qualcosa di simile per i classificatori di immagini

Tuttavia, la loro ricerca utilizza la backpropagation per addestrare le reti, ma usano algoritmi genetici per trovare una buona architettura. Un'altra cosa da menzionare: per arrivare al loro modello migliore, richiedeva loro un'enorme quantità di potenza di calcolo.

Hanno pubblicato il primo articolo nel 2017 e nel 2018 hanno ottenuto una versione migliorata . Puoi leggerlo nel loro post sul blog

C'è un'altra ricerca per la ricerca nell'architettura di rete, ma usano l'ottimizzazione bayesiana invece degli algoritmi genetici

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.