C'è un buon modo per aggiungere/rimuovere un neurone e le sue connessioni associate in/da una rete PyBrain completamente connessa? Dire che iniziare con:Manipolazione del neurone PyBrain
from pybrain.tools.shortcuts import buildNetwork
net = buildNetwork(2,3,1)
Come potrei fare per fare un (2,4,1) o un (2,2,1) della rete, pur mantenendo tutti i vecchi pesi (e l'inizializzazione eventuali nuovi per essere casuali come si fa quando si inizializza la rete)? La ragione per cui voglio farlo è perché sto tentando di utilizzare una strategia di apprendimento evolutivo per determinare la migliore architettura e il passaggio "mutazionale" comporta l'aggiunta/rimozione di nodi con una certa probabilità. (I moduli di ingresso e di uscita dovrebbero rimanere sempre gli stessi.)
modifica: Ho trovato NeuronDecomposableNetwork che dovrebbe semplificare questo processo, ma sembra comunque che debba tenere traccia dei neuroni e delle connessioni separatamente.
Impressionante, questo mi aiuta fuori un sacco, grazie! Mi piace molto la prima idea. Mai avrei pensato di usare i livelli come singoli neuroni. E sì, dopo aver provato per circa tre giorni ora non consiglierei la gestione manuale lol (l'altro post di StackOverflow era in realtà dove ho avuto l'idea). Tornerò dopo alcuni esperimenti (e ricercando NEAT poiché questo è il primo che ho scoperto a riguardo, pur essendo quasi esattamente quello che volevo arrivare) e aggiornare il mio post con i risultati. – ubomb