5

Sto considerando di usare una rete neurale per alimentare i miei nemici in uno sparatutto spaziale che sto costruendo e mi chiedo; come si addestrano le reti neurali quando non esiste un insieme di buone prestazioni definitive per la rete?Come utilizzare le reti neurali per risolvere soluzioni "soft"?

+0

Odio doverti abbattere, ma le macchine a stati finiti sono molto più facili da programmare e bilanciare, gestiscono situazioni insolite _ meglio-e la soluzione comune all'IA del gioco. Vedi http://au.gamespy.com/pc/fear/698080p1.html –

+0

Scusa, volevo collegarti a questa pagina - FEAR AI - come l'hanno fatto (una buona lettura, almeno cerca idee) http: //web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf –

+0

Sono sicuro che preferirei qualcosa di diverso dagli FSM. Possono essere superati facilmente con abbastanza tempo, quindi non è più divertente giocare. Con una rete neurale in costante apprendimento, è possibile che si adatti alle tattiche nemiche. A parte questo, pensi ancora che sia una cattiva idea trattarla come una questione accademica. – RCIX

risposta

6

Sto studiando le reti neurali al momento, e sembrano abbastanza inutili senza codifiche di input e output ben definite, e non si adattano affatto alla complessità (vedi http://en.wikipedia.org/wiki/VC_dimension). è per questo che la ricerca sulla rete neurale ha avuto così poca applicazione dall'iniziale campagna pubblicitaria più di 20-30 anni fa, mentre l'IA semantico/statale ha preso il sopravvento su tutti gli interessi a causa del suo successo nelle applicazioni del mondo reale.

  • Un così buon punto di partenza potrebbe essere quello di capire come rappresentare numericamente lo stato del gioco come input per la rete neurale.
  • La prossima cosa sarebbe capire quale tipo di output corrisponderebbe alle azioni nel gioco.
  • pensare alla struttura della rete neurale da utilizzare. Per ottenere un comportamento complesso interessante dalle reti neurali, la rete deve essere quasi ricorrente. Avrai bisogno di una rete ricorrente perché hanno "memoria", ma oltre a questo non hai molto altro da fare. Tuttavia, le reti ricorrenti con qualsiasi struttura complessa sono davvero difficili da addestrare a comportarsi.
  • Le aree in cui le reti neurali hanno avuto successo tendono ad essere classificate (immagine, audio, grammatica, ecc.) E limitato successo nella previsione statistica (quale parola ci aspettiamo di arrivare dopo questa parola, quale sarà il prezzo delle azioni domani?

In breve, probabilmente è meglio utilizzare le reti neurali per una piccola parte del gioco piuttosto che l'IA del nemico centrale.

+0

Penso di poter utilizzare gli input di base come salute, velocità corrente e direzione/distanza del player per gli input e quindi avere una direzione di ripresa, il valore di scatto corrente e un vettore di spinta o una velocità di accel/decel. Inoltre, puoi fornire un link a più informazioni sulle reti neurali "ricorrenti"? non li conosco – RCIX

+0

Una rete ricorrente significa semplicemente che le uscite vengono reintrodotte nei neuroni come input. Esistono molti tipi diversi di reti neurali con un comportamento diverso. alcuni semplici sono le reti elman http://wiki.tcl.tk/15206 e le reti hopfield http://en.wikipedia.org/wiki/Hopfield_network Non ci sono molte informazioni generali disponibili su come funzionano e su cosa sono " Ti va bene, quindi stai meglio a cercare tra gli appunti delle lezioni universitarie e google studioso per i documenti. Di nuovo, la ragione è che la maggior parte di questa ricerca non ha lasciato il mondo accademico perché è così difficile usarli per risolvere problemi reali. –

2

È possibile controllare AI Dynamic game difficulty balancing per varie tecniche e riferimenti AI.

(IMO, è possibile implementare comportamenti nemici, come "circondare il nemico", che sarà davvero cool, senza scavare in concetti avanzati AI)

Edit: dal momento che si sta facendo un gioco sparatutto spaziale e tu vuoi un qualche tipo di intelligenza artificiale per i tuoi nemici, credo che troverai interessante questo link: Steering Behaviors For Autonomous Characters

+0

Questo è interessante. Sembra che potrei almeno ingegnerizzare un gioco per offrire una difficoltà dinamica con una rete neurale che capisce quando i giocatori si divertono. – RCIX

0

Avete considerato che è facilmente possibile modificare un FSM in risposta allo stimolo? Dopo tutto, è solo una tabella di numeri, puoi tenerlo in memoria da qualche parte e cambiare i numeri mentre vai. Ne ho scritto un po 'in uno dei miei delerium alimentati dal mio blog, ed è stato stranamente raccolto da qualche sito di notizie su Game IA. Poi il tizio che ha costruito la signora Pacman AI che ha battuto gli umani e ha ottenuto le notizie vere ha lasciato un commento sul mio blog con un collegamento a informazioni ancora più utili

ecco il mio post sul blog con le mie incoerenti parolacce su qualche idea I avevo a che fare con l'utilizzo di catene markov per adattarsi continuamente all'ambiente di gioco, e forse sovrapporre e combinare qualcosa che il computer ha imparato su come il giocatore reagisce alle situazioni di gioco.

http://bustingseams.blogspot.com/2008/03/funny-obsessive-ideas.html

ed ecco il link alla risorsa impressionante circa rinforzo saputo che mr. smarty mcpacman ha pubblicato per me.

http://www.cs.ualberta.ca/%7Esutton/book/ebook/the-book.html

ecco un altro link fresco

http://aigamedev.com/open/architecture/online-adaptation-game-opponent/

Queste non sono approcci reti neurali, ma si adattano e continuamente imparare, e sono probabilmente più adatto a giochi di reti neurali.

+0

Approccio interessante e controllerò questi link – RCIX

0

Ti rimanderò a due dei libri di Matthew Buckland.

Il secondo libro va in back-propagazione ANN, che è ciò che la maggior parte delle persone intendono quando parlano di NN comunque.

Detto questo, penso che il primo libro sia più utile se si desidera creare un AI significativo. C'è una sezione simpatica e carnosa sull'uso corretto di FSM (e sì, è facile inciampare con un FSM).