Ho appena visto un video di tecnologia Google che parla di "Polyworld" (trovato here) e parlano di incrociare due reti neurali insieme per formare una prole. La mia domanda è: come procedere con la combinazione di due reti neurali? Sembrano così diversi che qualsiasi tentativo di combinarli costituirebbe semplicemente una terza rete totalmente indipendente. Forse mi manca qualcosa, ma non vedo un buon modo per prendere gli aspetti positivi di due reti neurali separate e combinarle in una singola. Se qualcuno potesse approfondire questo processo, lo apprezzerei.Rete neurale "Allevamento"
risposta
Non creerebbero realmente due reti neurali insieme. Presumibilmente hanno una varietà di algoritmo genetico che produce una particolare struttura di rete neurale data una particolare sequenza di "geni". Iniziano con una popolazione di sequenze di geni, producono le loro reti neurali caratteristiche e quindi espongono ciascuna di queste reti allo stesso regime di allenamento. Presumibilmente, alcune di queste reti risponderebbero alla formazione meglio di altre (cioè sarebbero più facilmente "addestrabili" per ottenere il comportamento desiderato). Avrebbero quindi preso le sequenze genetiche che hanno prodotto i migliori "tirocinanti", incrociandole reciprocamente, producendo le loro reti neurali caratteristiche, che sarebbero quindi esposte allo stesso regime di allenamento. Presumibilmente, alcune di queste reti neurali nella seconda generazione sarebbero ancora più addestrabili di quelle della prima generazione. Questi diventerebbero i genitori della terza generazione, e così via e così via.
Le reti neurali non sono (probabilmente) in questo caso alberi arbitrari. Probabilmente sono reti con una struttura costante, cioè gli stessi nodi e connessioni, quindi "allevandole" comporterebbe la "mediazione" dei pesi dei nodi. È possibile calcolare la media dei pesi per ciascuna coppia di nodi nelle due reti corrispondenti per produrre la rete "prole". Oppure potresti usare una funzione più complicata in base a gruppi sempre più numerosi di nodi adiacenti - le possibilità sono Vast. La mia risposta è incompleta se l'ipotesi sulla struttura fissa è falsa o ingiustificata.
Apprezzo il tuo feedback. è interessante se si può contare su una struttura fissa. Dal video, è emerso che la struttura non è stata riparata, perché i nodi possono essere aggiunti/rimossi come mutazioni.Tuttavia, questo è un buon punto di partenza. – Jake
Ahh - da una descrizione di Polyword [http://www.beanblossom.in.us/larryy/polyworld.html], sembra che le reti neurali siano prod indotto, dinamicamente, da un altro codice "genetico" posseduto da ciascun organismo nel sistema Polyworld. Sono questi codici genetici che vengono combinati durante la "riproduzione" ed è l'output di quella combinazione che determina la rete neurale della prole. –
Controllerò il collegamento, grazie! – Jake
Né risposta finora è fedele alla natura di Polyworld! ...
Entrambi descrivono una tipica Algoritmo Genetico applicazione (GA). Mentre GA incorpora alcuni degli elementi trovati in Polyworld (allevamento, selezione), GA implica anche una qualche forma di criteri "oggettivi" volti a guidare l'evoluzione verso obiettivi [relativamente] specifici.
Polyworld, d'altra parte è un quadro per Artificial Life (ALife). Con ALife, la sopravvivenza delle singole creature e la loro capacità di trasmettere i loro geni ad altre generazioni, è non diretto tanto dalla loro capacità di soddisfare una particolare "funzione fitness", ma è invece legato a varie più ampie, non- orientato all'obiettivo, criteri, come la capacità dell'individuo di nutrirsi in modo commisurato alle sue dimensioni e al suo metabolismo, alla sua capacità di evitare i predatori, alla sua capacità di trovare partner di accoppiamento e anche a varie dosi di fortuna e casualità.
modello di Polyworld associato con le creature e il loro mondo è relativamente fisso (ad esempio tutti hanno accesso a (anche se possono scegliere di non utilizzare) vari sensori di base (per il colore, per la forma ...) e vari attuatori ("dispositivi" da mangiare, accoppiare, girare, spostare ...) e queste funzioni sensoriali e motorie di base non si evolvono (come in natura, ad esempio quando le creature trovano il modo di diventare sensibili al calore o su suoni e/o trovare modi di movimento diversi dai primitivi del moto originale ecc ...)
D'altra parte, il cervello delle creature ha struttura e le connessioni che sono entrambi il prodotto di make-up genetico ("roba" della creatura dai suoi antenati) e della propria esperienza. Ad esempio, l'algoritmo principale utilizzato per determinare la forza delle connessioni tra i neuroni utilizza la logica hebbiana (cioè fuoco insieme, filo-insieme) durante la vita della creatura (all'inizio, immagino, poiché l'algoritmo ha spesso un "raffreddamento" "fattore che minimizza la sua capacità di cambiare le cose in grande stile, con il passare del tempo). Non è chiaro se il modello includa qualche forma di evoluzione lamarkiana, in cui alcuni dei comportamenti di alto livello vengono [direttamente] trasmessi attraverso i geni, piuttosto che essere [eventualmente] relearnt con ogni generazione (sulla base indiretta di alcuni passaggi geneticamente struttura).
La differenza saliente tra l'ALife e GA (e ce ne sono altre!) È che con Alife l'attenzione è rivolta osservare e promuovere in modi non-diretto, comportamenti emergenti, checché possano essere- come, ad esempio, quando alcune creature si evolvono in un trucco che li spinge ad attendere pile vicine di cibo verde e ad aspettare che le creature verde scuro le uccidano, o alcune creature possono iniziare a collaborare tra loro, ad esempio cercando la presenza reciproca per altri scopi rispetto all'accoppiamento, ecc. Con GA, lo stato attivo è su un particolare comportamento del programma che si sta evolvendo. Ad esempio, l'obiettivo può essere quello di far riconoscere i bordi in un'immagine video, e quindi l'evoluzione è favorita in questa specifica direzione. I programmi individuali che svolgono questo compito meglio (come misura con alcune "funzioni di fitness") sono favoriti per quanto riguarda l'evoluzione.
Un'altra differenza meno ovvia ma importante riguarda il modo in cui le creature (o i programmi nel caso di GA) si riproducono. Con ALife, le singole creature trovano i propri partner di accoppiamento, casualmente all'inizio, sebbene, dopo qualche tempo, possano imparare a riprodursi solo con creature che presentano un particolare attributo o comportamento. Con GA, invece, il "sesso" è lasciato allo schema GA stesso, che sceglie, ad esempio, di preferibilmente incrociare gli individui (e i loro cloni) che ottengono buoni risultati nella funzione fitness (lasciando sempre spazio per una certa casualità, per evitare che la ricerca della soluzione rimanga bloccata su alcuni massimi locali, ma il punto è che la struttura GA decide principalmente chi ha rapporti sessuali con chi ...
Dopo aver chiarito questo, possiamo tornare a l'originale dell'Op domanda ...
... come si fa a combinare due reti neurali? Sembrano così diversi che qualsiasi tentativo di combinarli costituirebbe semplicemente una terza rete totalmente indipendente. ... Non vedo un buon modo per prendere gli aspetti positivi di due reti neurali separate e combinarle in una singola ...
Il "trucco genetico" di una particolare creatura influenza i parametri come il dimensione della creatura, il suo colore e così via. Include anche i parametri associati al cervello, in particolare la sua struttura: il numero di neuroni, l'esistenza della connessione da vari sensori (ad esempio la creatura vede molto bene il colore blu?) L'esistenza di connessioni verso vari attuatori (es. la creatura usa la sua luce?). Le connessioni specifiche tra i neuroni e la forza relativa di questi possono anche essere trasmesse nei geni, se non altro per servire come valori iniziali, per essere rapidamente modificate durante la fase di apprendimento del cervello.
Prendendo due creature, noi [natura!] Possiamo selezionare in modo più o meno casuale, quale parametro proviene dalla prima creatura e che proviene dall'altra creatura (così come alcune nuove "mutazioni" che vengono da nessuno dei due genitori).Per esempio se il "padre" avesse molte connessioni con il sensore del colore rosso, ma la madre non avrebbe potuto sembrare il padre in quest'area, ma avrebbe anche ottenuto la struttura dei 4 neuroni di sua madre piuttosto che la struttura di 6 neuroni del padre .
L'interesse di farlo è per scoprire nuove funzionalità dagli individui; nell'esempio precedente, la creatura ora può individuare meglio i predatori di colore rosso e anche elaborare le informazioni più rapidamente nel suo cervello un po 'più semplice (rispetto a quello del padre). Non tutti i figli sono meglio equipaggiati dei loro genitori, tali individui più deboli, possono scomparire in breve tempo (o possibilmente e fortunatamente sopravvivere abbastanza a lungo, per fornire, per esempio, il loro modo stravagante di muoversi ed evadere i predatori, anche se i loro genitori li hanno resi ciechi o troppo grande o qualsiasi cosa ... La cosa fondamentale ancora: è non essere così preoccupato per l'utilità immediata di un tratto particolare, solo per vederlo giocare a lungo termine.
+1 Buona risposta. E ben parlato. –
Chi ha svalutato il # $% # $? Questo mi rende piuttosto matto, dato che in realtà ho eseguito questo processo molte volte. Per favore, spiegati. – MusiGenesis
Grazie per il feedback, ma non penso che questo sia il modo in cui funziona l'applicazione Polyworld. È più come un gioco in cui ogni "personaggio" è controllato da una rete neurale. Si muovono, mangiano, si accoppiano e muoiono. L'accoppiamento produce un nuovo carattere che è una combinazione dei due precedenti. – Jake
La descrizione della relazione tra "geni" e "reti neurali" in Polyworld è notevolmente simile a quella che descrivo nella mia risposta qui. – MusiGenesis