jueves, febrero 18, 2010

Tesis

Finalmente he terminado la tesis. Fueron unos meses muy ocupados, ¡pero ahora estoy tan relajado y feliz!

¿Y cuál fue el tema que mantuvo a Simón tan ocupado? El título de la tesis traducido al español es: "Un Oponente Interesante para Videojuegos de Pelea: Utilizando AI para Adaptar el Agene al Usuario".

Los videojuegos de pelas actuales son divertidos si juegas en contra de un amigo, pero no es tan divertido si juegas contra la computadora. Obviamente, hay un factor de socialización cuando juegas contra un amigo, pero nuestra hipótesis es que el hecho de que los oponentes humanos se pueden adaptar al jugador es una de las cosas que los hace más interesantes. Como la Inteligencia Articial (AI por sus siglas en inglés) que se usan en los juegos estándares es muy básica, estos oponentes no se pueden adaptar al jugador. Por lo tanto, con el propósito de hacer los juegos de pelea más divertidos cuando son jugados solos, decidimos crear un oponente que utilice AI para adaptarse al usuario (-: En este contexto adaptarse implica poner el oponente al nivel del usuario (ni muy difícil ni muy fácil) y que las acciones del oponente tomen en cuenta las acciones del usuario, adaptarse al comportamiento del jugador.

En los juegos de pelea hay varias acciones que se pueden ejecutar: realizar ataques simples (como puños o patadas), defensas (como bloquear), moverse (como caminar o saltar), ejecutar combos (una serie de ataques simples que generan daño extra) o combo-breakers (contra-ataque a los combos). El agente que se adapta se dividió en 3 sub-agentes: Main Sub-agent se encarga de los ataques simples, defensas y movimientos, además de decidir cuándo pasar el control a uno de los otros 2 sub-agentes; Executing Combo Sub-agent realiza combos; Receiving Combo Sub-agent realiza combo-breakers. Si uno divide un agente en varios sub-agentes, se espera que cada uno aprenda su tarea en menos tiempo.

¿Qué tipo de AI se utilizó? Main utiliza Profit-Sharing, un tipo de aprendizage por reforzamiento del que nunca había escuchado antes. Es posible que Profit-Sharing sea más conocido en Japón pues fue un profesor japonés quién encontró una ecuación que garantiza obtener soluciones racionales usando este método, pero dicho resultado sólo se publicó en japonés… Usando este aprendizage por reforzamiento, si el resultado de una pelea es favorable (la diferencia de los puntos es baja), las acciones que se usaron en esa pelea tenderán a ser más utilizadas en el futuro, si el resultado es desfavorable (gran diferencia, es decir, la AI fue muy difícil o muy fácil), esas acciones tenderán a no ser utilizadas. Receiving usa Pattern Mining, o minería de patrones; busca patrones en los combos ejecutados por el usuario y trata de predecir el siguiente combo, de modo de poder escoger el combo-breaker adecuado. Finalmente, Executing usa un poco de Data Mining y Hill Climbing para crear un conjunto de combos de una dificultad similar al conjunto de combos usados por el jugador.

¿Muy técnica la explicación? Posiblemente, pero dejémosla hasta aquí. Si están interesados pueden leer la tesis en inglés: An Interesting Opponent for Fighting Videogames: Using AI to Adapt the Agent to the User (algunas personas encontrarán los agradecimientos de interés). Si 48 páginas de contenido es demasiado, pueden leer el resumen de 8 páginas que llamaremos el paper de SIGGI. Si 8 páginas es mucho, pueden leer el resumen de 2 páginas que llamaremos abstract.

¿Funcionó la propuesta? Sí y no. No se pudo demostrar estadísticamente que el oponente se adapta, los datos que tomamos de los experimentos no fueron suficientes. Sin embargo, aquí hay 3 videos que quiero mostrar:

Primero, el juego de peleas que se desarrolló para probar la propuesta. Aquí pueden ver las acciones disponibles, como moverse, puños, patadas, etc. Hay combos, cuando un personaje está recibiendo un combo é cambia de color. También la plataforma es finita, caerse implica perder. Hay glitches de animación y los gráficos no son muy pulidos, pero la idea era probar AI, no hacer un juego bonito.



En el siguiente video el oponente que se adapta (el azul) se enfrenta a un oponente estático difícil (el blanco). Este video es la ronda #500:



En este otro video vemos al oponente que se adapta (azul) enfrentándose a un oponente estático fácil (blanco). Esta es la ronda #500:



Cómo pueden ver, la diferencia de los puntos de vida al final de las rondas es muy cerrada, además, se nota que el oponente que se adapta ha generado diferentes comportamientos dependiendo del nivel del jugador. En el caso del oponente difícil, el que se adapta ataca mucho, usa combos, se acerca. En el caso fácil, el que se adapta no usa tantos combos, se queda quieto muchas veces (hay se ven unos glitches de animación), etc. O sea, sí se adapta, pero los datos que grabamos de las pruebas con los 30 usuarios reales no nos permitía demostrarlo.

Esta tesis la entregué el viernes pasado. El martes hice la defensa. En Japón te otorgan 15 minutos (se lee "quince") para exponer todo lo que hiciste en 2 años, y luego hay 5 minutos de preguntas. Luego es el turno del siguiente aspirante a Magister.

Ya va, 20 minutos de defensa, 48 páginas de contenido, ¿¡que no es muy poco!?

Desde mi punto de vista occidental, sí, es poquísimo. En mi universidad en Venezuela las defensas tardaban lo que tuvieran que tardar, horas si es necesario. Tengo la impresión que mi tesis de grado era más larga que la de maestría. Sin embargo, noté un patrón.

La defensa de la tesis de grado de los estudiantes de pregrado se realiza de una manera aun más excéntrica que la de postgrado: los estudiantes preparan un póster sobre su investigación y se hace un poster session con todos los graduandos. Esa es su defensa.

Los poster session son muy comunes en conferencias académicas, y cuando a uno le toca presentar un paper en una de estas conferencia, normalmente te otorgan 15 minutos para hablar y 5 para preguntas. Me parece que las defensas están hechas de forma tal de preparar a los estudiantes para participar en conferencias. Después de todo, lo que se está haciendo es investigación, e investigación que no se publica no sirve de mucho.

De hecho, todos los estudiantes de pregrado y postgrado tienen que presentar su tesis en una conferencia, así sea local. En mi caso, en diciembre presenté resultados parciales en Human Agent Interaccion Symposium y en marzo presentaré en Information Processing Society of Japan: Game Informatics. Tal vez por tantos alumnos publicando es que las universidades japonesas le ganan por mucho a las hispanoamericanas en los rankings internacionales.

Otro patrón que noté durante las presentaciones es que las investigaciones son muy aplicadas, en contraste con investigaciones teóricas. La gente de maestría presentó cosas como: "Extracción de patrones de daño en celdas de combustible óxido sólido", "Estimación de distancia utilizando un sistema de imágenes de ojo-compuesto infra-rojo", y "Un estudio sobre el valor de la ventaja geográfica en el área citadina basado en la interacción entre regiones". Me imagino que mi método para videojuegos tiene sentido en Japón, pues aquí se producen muchos juegos de peleas.

Luego de mis 15 minutos de exposición en japonés, que se convirtieron en 14 porque hablé rápido, y aclararle a un profesor que los métodos de AI usados en ajedez no se pueden usar en juegos de peleas, que los patrones de los usuarios sí son importantes, y que el oponente se puede adaptar a los diferentes patrones del usuario, terminó satisfactoriamente mi defensa. En mi caso las preguntas las pude responder sin mucho problema, pero a otras personas les hicieron preguntas destructoras. Por ejemplo, un estudiante dijo que tal método que él propuso tenía una precisión de 75%, pero un profesor de estadística dijo que esas medidas están mal tomadas y mal analizadas, que eso no tiene sentido; el estudiante no pudo responder nada.

Un día después me enteré de que quedé de 4º lugar como mejor expositor (presentar de manera entendible lo que se hizo, ¡le gané a un montón de japoneses!) y de 1º como mejor tesis de maestría del departamento Informática y Ciencias Físicas :D

Por eso es que estoy muy feliz, y por haber terminado es que estoy muy relajado. Le doy muchas gracias a Dios de que todo ha salido bien.

Un oponente que se adapta al usuario es algo que quería investigar desde hace mucho tiempo, lo hice, logré algo que no es perfecto pero que va por buen camino y esto gracias a la beca MEXT del gobierno de Japón (pregunta en tu embajada más cercana).

Muy bien, ya recuperé mi libertad. Ahora empezarán los posts retrasados. El próximo viene como en una semana :D