Come dovrei codificare la struttura di una rete neurale in un genoma?


14

Per uno spazio problematico deterministico, devo trovare una rete neurale con il nodo e la struttura di collegamento ottimali. Voglio usare un algoritmo genetico per simulare molte reti neurali per trovare la migliore struttura di rete per il dominio problematico.

Non ho mai usato algoritmi genetici per un compito come questo prima. Quali sono le considerazioni pratiche? In particolare, come dovrei codificare la struttura di una rete neurale in un genoma?

Risposte:


12

La sezione 4.2 di "Essentials of Metaheuristics" contiene molte informazioni su modi alternativi di codifica delle strutture grafiche tramite algoritmi genetici.

Con particolare riguardo all'evolversi delle ANN, personalmente non sarei propenso ad implementare questo tipo di cose "da zero":

Il campo della neuroevoluzione è in atto da qualche tempo e l'implementazione di alcuni dei metodi, come Neuroevolution of Augmenting Topologies ( NEAT ), ora incorpora i risultati di molta esperienza pratica.

Secondo il link sopra:

Abbiamo anche sviluppato un'estensione per NEAT chiamata HyperNEAT che può evolvere reti neurali con milioni di connessioni e sfruttare regolarità geometriche nel dominio delle attività. La pagina HyperNEAT include collegamenti a pubblicazioni e una spiegazione generale dell'approccio.


Che "Essentials of Metaheuristics" sembra molto interessante! Questo è qualcosa che è in realtà sulla tabella di marcia per gli automi M, poiché MCTS puro non è mai ottimale nei giochi M. Dal wiki metaheuristico : "Nell'informatica e nell'ottimizzazione matematica, un metaheuristic è una procedura di livello superiore o euristica progettata per trovare, generare o selezionare un euristico (algoritmo di ricerca parziale) che può fornire una soluzione sufficientemente buona a un problema di ottimizzazione, soprattutto con informazioni incomplete o imperfette o capacità di calcolo limitata. "
DukeZhou

4

L'uso di algoritmi evolutivi per evolvere le reti neurali si chiama neuroevoluzione .

Alcuni algoritmi di neuroevoluzione risolvono solo i pesi di una rete neurale con topologia fissa. Non sembra quello che vuoi. Altri algoritmi di neuroevoluzione risolvono sia i pesi che la topologia di una rete neurale. Questi tipi di algoritmi sembrano più appropriati per i tuoi obiettivi e talvolta sono chiamati TWEANN (reti neurologiche di topologia e peso in evoluzione).

Un algoritmo popolare si chiama NEAT ed è probabilmente un buon punto di partenza, anche solo perché ci sono una moltitudine di implementazioni, una delle quali si spera sia scritta nella tua lingua preferita. Questo ti darebbe almeno una base con cui lavorare.

NEAT codifica un genoma di una rete neurale direttamente come una struttura grafica. Le mutazioni possono operare sulla struttura della rete aggiungendo nuovi collegamenti (collegando due nodi non precedentemente collegati) o nuovi nodi (suddividendo una connessione esistente), oppure possono operare solo cambiando i pesi associati ai bordi nei grafici (chiamati mutanti i pesi). Per darti un'idea dell'ordine di grandezza delle dimensioni delle ANN con cui lavora questo particolare algoritmo, probabilmente avrebbe difficoltà con più di 100 o 200 nodi.

Esistono TWEANN più scalabili, ma sono più complessi e fanno ipotesi sui tipi di strutture che generano che potrebbero non essere sempre produttivi nella pratica. Ad esempio, un altro modo per codificare la struttura di una rete neurale è come il prodotto di un modello di seme che viene ripetutamente espanso da una grammatica (ad esempio un sistema L). Puoi esplorare molto più facilmente strutture più grandi, ma poiché sono generate da una grammatica avranno una caratteristica sensazione di ripetizione di sé. HyperNEAT è un'estensione popolare di NEAT che fa un diverso tipo di ipotesi (che i modelli di pesi possono essere facilmente espressi in funzione della geometria) e può ridimensionarsi in ANN con milioni di connessioni quando tale ipotesi si adatta bene a un particolare dominio.

Ci sono alcuni documenti di indagine collegati nel collegamento in alto se si desidera osservare una maggiore varietà di tecniche.

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.