Preelaborazione dell'input della rete neurale

1

È chiaro che l'efficacia di una rete neurale dipende strongmente dal formato con cui si lavora. Vuoi pre-elaborarlo nella forma più conveniente a cui puoi arrivare in modo algoritmico, in modo che la rete neurale non debba tener conto di quella stessa.

Sto lavorando a un piccolo progetto che utilizzerà reti neurali. Il mio obiettivo futuro è quello di utilizzare finalmente NEAT , cosa di cui sono davvero entusiasta. Ad ogni modo, una delle mie idee riguarda lo spostamento di entità in uno spazio 2D continuo, da una prospettiva dall'alto verso il basso (questa sarebbe una IA molto interessante). Ovviamente, a meno che questi ragazzi non siano ciechi, saranno in grado di vedere il mondo che li circonda.

Ci sono molti modi diversi in cui questa informazione può essere inserita nella rete. Un modo interessante, ma costoso, è semplicemente rendere una "vista" top-down delle cose, con le entità come punti sull'immagine e alimentarle. Speravo in qualcosa di molto più semplice da usare (almeno all'inizio), ad esempio come una lista delle entità più vicine x (forse 7 o più) e la loro posizione in coordinate polari, orientamento, salute, ecc., ma sto cercando di pensare al modo migliore per farlo.

Il mio primo istinto era di ordinarli per distanza, il che avrebbe intrinsecamente anche addestrato la rete neurale a considerare quelli più "importanti". Tuttavia, stavo pensando: e se ci fossero due entità che sono quasi alla stessa distanza? Potrebbero facilmente alternare gli indici in quella lista, confondendo la rete.

La mia domanda è, c'è un modo migliore per rappresentarlo? Essenzialmente, il problema è che la rete ha bisogno di un buon modo per tenere traccia di chi è chi, pur conoscendo (attraverso l'input) informazioni rilevanti sull'elenco delle entità che può vedere.

Grazie!

    
posta TND 16.11.2013 - 02:23
fonte

2 risposte

1

A meno che non abbia frainteso il problema (che potrebbe essere dichiarato più chiaramente IMO), devi assolutamente non voler ordinare le entità per distanza. È fondamentale che ogni ingresso alla rete neurale denoti la stessa entità fisica in tutto o altrimenti nulla avrà senso.

Devi specificare il tuo problema in modo più preciso e definire i tuoi input di rete di conseguenza. Ad esempio, se i tuoi agenti di gioco stanno rintracciando oggetti N e possono percepire 4 parametri per ciascuno (ad esempio, la posizione, x-y, orientamento, a e salute, h), ciascuna rete neurale avrà esattamente 4 N ingressi. Non importa in quale ordine li metti in rete, fintanto che l'ordine rimane lo stesso! (L'ordinamento implicito è ciò che definisce "chi è chi".)

Se, d'altra parte, gli agenti sono dotati solo di sensori di distanza M - in modo che conoscano l'ambiente ma non possano tracciare esplicitamente altre entità - (che è comunque uno scenario più realistico) allora le distanze misurate saranno le M input a distanza. (In tal caso però è impossibile sapere "chi è chi".)

Un altro problema è, come hai intenzione di addestrare la rete? Presumo l'apprendimento supervisionato, il che significa che è necessario fornire dati di addestramento in cui viene fornito l'output di rete desiderato per specifici valori di input. Ad esempio potresti allenare l'agente di gioco per evitare collisioni insegnandolo a spostarsi da altri oggetti ...

    
risposta data 03.04.2014 - 22:16
fonte
0

Le entità lontane non hanno bisogno di considerarsi l'una con l'altra nello stesso modo in cui non si pensa alle tre strade della macchina. Potresti anche non prendere in considerazione le macchine dietro di te fino a quando non stanno facendo tailgating. Gli input dovrebbero essere limitati alle entità solo entro una soglia specifica.

In ogni caso, il rendering dei dati e quindi la derivazione dai dati renderizzati non sarà mai efficiente quanto la generazione di dati e quindi il rendering del risultato.

    
risposta data 21.01.2014 - 10:44
fonte

Leggi altre domande sui tag