134627.Pdf (2380Mb)

134627.Pdf (2380Mb)

Universitat Politecnica` de Catalunya Grau en Enginyeria Informatica` Especialitat en Computacio´ TFG - Treball Final de Grau Estudi de l'algoritme NEAT aplicat als videojocs Autor: Mario Fernandez´ Villalba Director: Codirector: Luis Antonio Belanche Munoz~ Ren`e Alquezar Mancho Dept. de Ciencies` de la Dept. de Ciencies` de la Computacio´ Computacio´ Data de defensa: 23 d'octubre de 2018 Agra¨ıments Voldria agrair aquest projecte primerament a tots els professors de la Facultat d’Inform`aticade Barcelona que varen aconseguir convertir un home perdut en la vida a un inform`aticde cap a peus. Tamb´evoldria agrair-lo als meus amics i companys de la facultat: Carlos, Juan Miguel, Carlota, David, Jordi, Didac, ... S´eque no esteu tots per`oja sabeu qui sou! I en ´ultimlloc per`ono menys important, a la meva fam´ılia,que van tenir que aguantar el so que produ¨ıaal teclejar a altes hores de la nit durant setmanes. Gr`aciesa tots pel vostre suport! 1 ´Index 1 Introducci´o 4 1.1 Context.........................................4 1.2 Actors implicats....................................7 1.3 Abast..........................................7 2 Gesti´odel projecte9 2.1 Metodologia de treball.................................9 2.2 Eines utilitzades....................................9 2.3 M`etode de validaci´o..................................9 2.4 Planificaci´o....................................... 10 2.5 Integraci´ode coneixements.............................. 17 2.6 Lleis i regulacions.................................... 19 3 El videojoc Tetris i la seva implementaci´o 20 3.1 Descripci´odel joc.................................... 20 3.2 Accions disponibles................................... 20 3.3 Elements del joc.................................... 20 3.4 Sistema de puntuaci´oi nivells............................. 22 3.5 Game Over....................................... 23 3.6 Implementaci´odel joc Tetris.............................. 23 4 Funcionament d'una xarxa neuronal i implementaci´od'una xarxa neuronal simple 28 4.1 Processament de les dades............................... 28 4.2 Entrenament de la xarxa neuronal.......................... 28 4.3 La import`anciadel bias................................ 29 4.4 Implementaci´od'una xarxa neuronal simple..................... 29 5 L'algoritme NEAT i la seva implementaci´o 31 5.1 Definicions dels elements propis d'un algoritme gen`etic............... 31 2 5.2 Representaci´ogen`etica................................. 31 5.3 Operadors gen`eticsi la innovaci´o........................... 32 5.4 Especiaci´o........................................ 34 5.5 Generaci´ode nova poblaci´o.............................. 34 5.6 Implementaci´ode l'algoritme NEAT......................... 35 6 Experimentaci´oamb l'algoritme NEAT 39 6.1 Bucle principal d’execuci´o............................... 39 6.2 Experimentaci´osobre la entrada........................... 40 6.3 Experiments sobre els par`ametresde l'algoritme................... 40 7 Pressupost i sostenibilitat 48 7.1 Pressupost........................................ 48 7.2 Sostenibilitat...................................... 53 8 Conclusions, possibles millores i opini´opersonal 55 8.1 Conclusions....................................... 55 8.2 Possibles millores.................................... 55 8.3 Opini´opersonal..................................... 56 3 1 Introducci´o Un dels temes recurrents a les pel·l´ıculesde ci`encia-ficci´o´esla intel·lig`enciaartificial. Podem veure en aquestes pel·l´ıculesIAs que es rebel·len contra els humans, altres que recullen escom- braries... Aleshores, podria ser capa¸cun ordinador d'aprendre a jugar des de zero a un videojoc? L'objectiu d'aquest treball ´esrespondre aquesta pregunta. Per fer aix`oes vol estudiar l'algoritme gen`eticNEAT al videojoc Tetris. Concretament, es volen estudiar la influ`enciadels par`ametresde l'algoritme en l'acompliment d'aquest a l'hora de jugar. Aix´ımateix, tamb´ees vol implementar tant l'algoritme NEAT com el joc Tetris. S'ha aconseguit implementar de manera satisfact`oriatant NEAT com el videojoc Tetris utilit- zant Visual Studio i Unity. Respecte als par`ametres,s'ha comprovat mitjan¸cant l'experimentaci´o que par`ametrescom el nombre d'individus de la poblaci´oi les probabilitats de mutaci´otenen un gran impacte en la generaci´od'individus capa¸cosde jugar de manera satisfact`oriaal joc. 1.1 Context Abans d'anar en profunditat amb les explicacions del videojoc i de l'algoritme es necessari obtenir una mica de context. 1.1.1 Evol·luci´ode la IA en els jocs Durant els ´ultimsanys la intel·lig`enciaartificial (IA a partir d'ara) ha passat de ser un concepte cl`assicde la ci`encia-ficci´oa estar arrelada a les nostres vides. Les seves aplicacions s´onquasi infinites, i no paren de cr´eixercada dia. D'entre elles, cal destacar l’aplicaci´oen els jocs i posteriorment, videojocs. Una de les primeres vegades de la que es t´econst`anciaque la IA va ser aplicada als jocs va ser sobre l'any 1950, quan un programa d'escacs d'ordinador podia presentar un bon desafiament a un jugador experimentat [1]. Un altre exemple destacable de la IA aplicada als videojocs s´onels jocs arcade com Space Invaders, on els enemics alteraven els seus patrons de moviment dependent del nivell de dificultat; o Pac-Man, que va introduir diferents IAs als enemics, els fantasmes. Molt ha passat des d'aleshores; l'any 2017 una IA desenvolupada per Google anomenada AlphaGo, va ser capa¸cde v`encer al campi´omundial del Go, un joc tradicional xin`esen un confrontament a 3 partides [2]. Una de les eines utilitzades per aquesta eina son les ben conegudes xarxes neuronals, les quals introduirem en breu. Per`oabans d’aix`o...Com ha sigut l'evoluci´ode NEAT als videojocs? El mateix creador de l'algoritme NEAT, Kenneth O. Stanley, va fer una demostraci´opr`actica d'aquest en un videojoc programat per ell anomenat Neuroevolving Robotic Operatives (NERO) l'any 2005. En aquest joc, el jugador entrena un equip de robots virtuals per a competir contra altres equips controlats per altres jugadors. Va concloure que aquest joc demostrava la possibilitat de crear videojocs amb agents que evolucionen i s'adapten a temps real. [3]. Un altre joc desenvolupat per Stanley va ser Galactic Arms Race. En aquest joc el jugador controla una nau que va adquirint armes que han evolucionat a partir d'altres utilitzant infor- maci´odel jugador i NEAT. Aquest joc va ser llen¸cata la coneguda plataforma online Steam, demostrant aix´ıque ´espossible crear videojocs que generen el seu propi contingut per satisfer als jugadors, a la mateixa hora que es redueixen els costos de producci´oi s'augmenta la rejugabilitat 4 dels jocs [4]. L'any 2015 l'usuari de Youtube SethBling va postejar el v´ıdeo"MarI/O - Machine Learning for Video Games"[5], en el qual mostra l’aplicaci´ode l'algoritme NEAT en el videojoc Super Mario World. Sense cap coneixement previ d'aquest joc, la xarxa neuronal va ser capa¸cde superar el nivell Donut Plains 1 de l'esmenat joc despr´esde 34 generacions de poblacions. Hi ha molts m´esexemples d'aplicacions de NEAT als videojocs, per`oal ser totes similars no cal incloure-les en aquest document. 1.1.2 Bases de les xarxes neuronals Una xarxa neuronal ´esun model computacional que busca imitar el comportament dels cervells animals [6]. A l'igual que les xarxes neuronals que componen els nostres cervells, les xarxes neuronals artificials estan compostes per neurones. Una neurona ´esuna unitat b`asicade c`alcul de la xarxa neuronal que genera una sortida a trav´esd'una entrada assignada. Aquestes estan connectades entre si amb connexions ponderades i s'organitzen en forma de capes dins de la xarxa neuronal, de les quals es destaquen la d'entrada i la de sortida. A les capes restants interm`edies se les anomena capes ocultes. Anomenem topologia al conjunt de neurones i les connexions que les connecten. Podem veure aquesta estructura a la Figura1. Figura 1: Estructura d'una xarxa neuronal La seg¨uent pregunta que ens podem fer ´escom funcionen les xarxes neuronals? Es t´ecom a hip`otesique les persones aprenem per repetici´o,i ´esen aix`oen el que es basen les xarxes. Normalment, el proc´esde funcionament d'una xarxa neuronal es compon per dues parts, la d'aprenentatge i la de testing. Durant la part d'aprenentatge la xarxa es sotmesa a una gran quantitat de dades d'entrada per tal d'aprendre, o en altres paraules, ajustar els par`ametresinterns com les ponderacions de les connexions de la xarxa; per tal d'aconseguir el millor resultat en una tasca encomanada. Durant la part de testing es prova la xarxa entrenada en conjunts de dades diferents dels de l'aprenentatge, per tal d'estudiar el comportament d'aquestes en un cas general. Com a exemple il·lustratiu, AlphaGo va ser entrenat amb 30 milions de posicions de partides jugades per humans per tal d'aprendre a jugar al Go [7]. 5 Si encara voleu saber m´essobre les xarxes neuronals, trobareu una explicaci´om´esexhaustiva d'aquestes a la Secci´o4. Les xarxes neuronals s´onestudiades per un gran nombre de cient´ıfics, on cadasc´ubusca aportar el seu granet de sorra. Durant els diversos anys d'estudi han sorgit diversos models de xarxes neuronals i diversos algoritmes que les modifiquen. Com ja s'ha comentat, en aquest projecte ens centrarem en l'estudi de l'algoritme gen`eticNEAT. Que ´esaleshores un algoritme gen`etic? 1.1.3 Algoritmes gen`etics Els algoritmes gen`eticss´onuna fam´ıliad'algoritmes d’optimitzaci´oque basen la seva heur´ıstica en la selecci´onatural [8][9]. Concretament, utilitzen les operacions biol`ogiquesde mutaci´o, encreuament i selecci´o. Aquests algoritmes requereixen dos components principals: una representaci´ogen`eticadel domini de solucions i una funci´ode fitness que avaluar`ael domini de solucions. Un cop satisfets els dos requeriments, el funcionament dels algoritmes ´essimple. Primerament s'inicialitza una poblaci´ode manera aleat`oria. A continuaci´o,comencem un bucle on s'avalua la poblaci´ogenerada mitjan¸cant la funci´ode fitness, es seleccionen als millors individus i seguidament se li apliquen les operacions biol`ogiquesanteriorment esmentades per tal de generar una poblaci´ofilla, i es torna a repetir el proc´es.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    83 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us