Redes neuronales en videojuegos

Anuncio
REDES
NEURONALES
APLICADAS A
VIDEOJUEGOS
MANUEL ESPINO LARA
Vision general de la Ia en
videojuegos
La visión general que tiene la mayoría de la
gente de la IA es la de los juegos de los años 70
y 80, tales como el pac-man o donkey kong
Las primeras Ias era muy simples, pensadas
principalmente para recreativas y sobretodo
con el proposito de “enganchar”
Estos juegos usaban unas pocas de reglas muy
simples y un guión combinadas con algunas
decisiones aleatorias para ser menos predecible
Vision general de la Ia en
videojuegos
El ajedrez fue desde el comienzo
protagonista en investigacion. El chessmaster
2000 del 86 ya era bastante competitivo.
Usaban invariablemente árboles de búsqueda
También los juegos de estrategia, por su
propio estilo de juego, innovaron bastante
(Civilization)
Claves para el desarrollo
Aumento de la capacidad del hardware
En las consolas antiguas habia que elegir muchas
veces entre gráficos o inteligencia artificial
Técnicas como los árboles de búsqueda
consumen mucha CPU
Aumento de las ventas en juegos con buena
inteligencia artificial frente a otros.
Técnicas básicas de Ia
• Aunque no todas estas técnicas se utilizan en
videojuegos, no se puede conocer la IA en
videojuegos sin tener al menos conocimiento
de ellas
Técnicas básicas de Ia
Sistemas expertos: intentan emular el
conocimiento de un humano dentro de un
dominio muy concreto
Razonamiento de caso base: consiste en
comparar las entradas al sistema con una
base de datos, para encontrar las salidas más
probables
Técnicas básicas de Ia
Máquinas de estado finito: sistema basado en
reglas. Conjunto de estados conectados
mediante transiciones entre los estados. La
máquina ocupa exactamente un estado para
un momento dado
Sistemas de producción: Constituido por una
base de datos de reglas. Cada regla consiste
en un conjunto arbitrario de sentencias
condicionales y algunas acciones que se
realizaran si se satisfacen las condiciones.
Técnicas básicas de Ia
Árboles de decisión: realiza decisiones
moviendose a traves de un arbol en el que las
hojas son las decisiones.
Métodos de búsqueda: Consiste en descubrir
una serie de estados dentro de un grafo que
satisfaga alguna meta en particular.
Sistemas de planificación: Extensión de los
métodos de búsqueda.
Técnicas básicas de Ia
Lógica de primer orden: Consiste en asignar
a un objeto una identidad individual y un
conjunto de propiedades que lo hacen
distinguirse, y una serie de relaciones para
unir dichos objetos.
Cálculo situacional: Usa lógica de primer
orden para calcular el comportamiento del
agente ante una situacion. El calculo
situacional determina que acciones
produciran el estado del entorno que
Técnicas básicas de Ia
Sistemas multiagente: Se centra en la
interactuacion y cooperacion de diferentes
agentes artificiales
Vida artificial: Intenta aplicar propiedades
universales de los sistemas vivos en agentes
artificiales dentro de mundos virtuales
Flocking: Subcategoria de a-life. Se centra en
conjuntos de seres virtuales no
independientes, a modo de rebaño
Técnicas básicas de Ia
Robótica: Estudia la interactuacion de las
máquinas con el mundo real.
Algoritmos genéticos: Imita el proceso de la
evolución para conseguir solución a algún
problema
Redes neuronales: Técnica de aprendizaje y
toma de decisiones, basada en la arquitectura
de las conexiones cerebrales. Operan
reajustando los pesos de las entradas a la red.
Técnicas básicas de Ia
Lógica difusa: usa números reales para
representar grados de pertenencia a un grupo.
Permite un razonamiento mucho más rico y
menos brusco que la lógica clásica.
Redes de confianza: Máxima expresión en
las redes Bayesianas. Pueden tomar
decisiones aun teniendo un conocimiento
incompleto del campo que está tratando.
Técnicas básicas de Ia
• Son las técnicas más simples (maquinas de
estado finito, árboles de decisión y sistemas
de produccion de pruebas) las más usadas en
el campo de los videojuegos
• Los juegos de mesa usan con mucho éxito
árboles de búsqueda, como puede demostrar
deep blue, que ganó a Kasparov
– En los juegos comerciales no se usa esta técnica
ya que los mundos que representan son mucho
más complejos que las reglas del ajedrez, y no
Técnicas básicas de Ia
Las técnicas de vida artificial, no solo se
usan en muchos juegos, si no que son los
protagonistas de ellos, como los SimCity, que
han probado sobradamente la utilidad de
estas.
La lógica difusa está empezando a tener
ahora un gran auge, no asi como la lógica de
primer orden y el cálculo situacional, que por
su rigidez, son muy dificiles de aplicar.
El problema de aprendizaje de una
máquina
Aunque se sabe del potencia de los
algoritmos genéticos y redes neuronales,
estas apenas se usan.
El resultado de introducir aprendizaje en los
videojuegos siempre ha sido un fracaso, con
juegos injugables que aprendían
pobremente. Esta es la causa de que se usen
tan poco, que aunque se sabe de su poder, si
se aplica mal puede ser un desastre
El problema de aprendizaje de una
máquina
Los sistemas de aprendizaje pueden aprender
mal la lección. Si se aprende de un humano,
y el humano juega mal, el juego aprende mal
Es muy dificil conseguir el resultado deseado
de un sistema de aprendizaje. Estos sistemas
necesitan una función de fitness para saber si
están aprendiendo bien. Es dificil conseguir
una función que mida la diversión que
estamos proporcionando
El problema de aprendizaje de una
máquina
Algunos sistemas de aprendizaje,
particularmente las redes neuronales, son
tremendamente dificiles de modificar, testear
o depurar
En cierto modo, hay muchos tipos de juegos
donde simplemente, el aprendizaje no tiene
sentido, como los juegos de acción, donde la
vida media de un enemigo es de 1 minuto
El problema de aprendizaje de una
máquina
La otra gran parte del fracaso de estas
técnicas es de la misma industria, que no es
capaz de aplicar las técnicas con el mismo
éxito que otras industrias, y de aplicar
técnicas de aprendizaje a problemas que se
resuelven mucho mejor con técnicas
tradicionales, en vez de aplicarlas a agentes
que realmente necesiten aprender algo
El problema de aprendizaje de una
máquina
• El ejemplo más claro de que se puede
aplicar el aprendizaje con éxito en un
videojuego, es el Black & White de
Lionhead, donde se demostro que se puede
aplicar para aumentar la calidad de un
título, asi como la diversión que ofrece
La inteligencia es contextualmente
dependiente
Lo que aleja significativamente la IA de los
videojuegos de la académica, es la búsqueda de
objetivos totalmente distintos.
Las mejores IAs son aquellas en las que se ha
indentificado claramente que es lo que se quiere
conseguir, los subproblemas que hay que resolver y
cual es la mejor técnica para resolverlo.
Los programadores deben meterse dentro del agente
para el cual quieren dotar de inteligencia
La inteligencia artificial es
contextualmente dependiente
Buscando el mismo éxito que han tenido
juegos basados en motores como Unreal o
Quake, las desarrolladoras han intentando
crear motores para la IA.
Esto es un error. Los graficos pueden adaptarse a
muchos juegos, pero la IA debe hacerse para algo
en particular.
Depende mucho del género del juego. No tiene
nada que ver un juego de hockey con uno de
infiltración
Creando inteligencia
La gran mayoría de jugadores no juegan
online. Hay que crear la sensación de que se
los juegos se desenvuelven en un mundo rico
y real.
Hay que ofrecer competidores adecuados.
Ventaja: Aumento de ventas (Pro Evolution
Soccer frente a Fifa)
Hoy en día no podemos crear inteligencia,
solo podemos crear la ilusión de inteligencia.
Contrastes de un jugador humano
Predecibilidad e Imprecibilidad
La impredecibilidad es un rasgo muy importante de
la inteligencia, como hacer ataques sorpresa
Los humanos también somos predecibles.
En un shooter, los jugadores tienen una ruta
favorita.
En un juego de estrategia, se tienen una serie de
pasos para empezar
Este conflicto es difícil de simular. En el mismo juego
un jugador puede ser previsible e imprevisible, o ser
imprevisible de unas partidas a otras, pero en una en
concreto ser previsible.
Hay que crear ciertos rasgos aleatorios que hagan que
volver a jugar sea interesante, pero también previsible
Contrastes de un jugador humano
Soporte
A menudo, la máquina no solo controla
enemigos. Hay veces que controla aliados.
Las funciones que esté tiene que desarrollar
no son dificiles de implementar.
El problema radica en la comunicación con el
humano.
Se suele optar por una serie de comandos para
dar ordenes concretas.
Ejemplo: Resident Evil 4, con comandos como
“párate” o sígueme”
Contrastes de un jugador humano
Imprevistos
Elemento fundamental.
Imprevistos difíciles de simular : la estupidez
creíble
Aparentemente son acciones poco beneficiosas
para conseguir el objetivo, pero son acciones
que perfectamente podría hacer un jugador
humano.
Gol en propia meta
Lanzar una magia contra un oponente con efecto
espejo
Contrastes de un jugador humano
Ganar, perder y perder bien
Un jugador quiere ganar y quiere ganar en los
juegos donde es posible ganar. Si ganar no se
convierte en un reto, deja de ser divertido.
Es muy fácil desarrollar juegos que ganen
siempre. Basta con aumentar el número y
calidad de oponentes.
Esto afectaría la credibilidad de los oponentes.
No es normal que cada vez que tiren a puerta sea
gol
Hay que parametrizar la dificultad para que
el juego se adapte a las necesidades del
4 formas principales de usar redes
neuronales
Control
Se puede puede usar una red para manejar
una unidad motorizada, como naves
espaciales o aviones.
La red puede tener entradas como su posición
relativa, velocidad y daños, y una salida que
en definitiva es la dirección o aceleración
Estas redes suelen ser entrenadas por los
propios desarrolladores manejando los
vehículos
Collin McRae Rally maneja los coches
mediante una red neuronal
4 formas principales de usar redes
neuronales
Valoración de riesgo
En un juego de estrategia, podemos usar una
red neuronal para valorar el riesgo al que se
enfrenta la máquina.
Las entradas de esta red podrían ser el
numero de enemigos del que dispone el
jugador, el numero de unidades terrestres, el
numero de unidades aéreas y el rango que
estas tienen
Las salidas pueden ser 4 posibles riesgos que
hayamos considerado. Riesgo terrestre, riesgo
aéreo, ataque combinado o sin riesgo
4 formas principales de usar redes
neuronales
Valoración de riesgo.
Con estos datos la máquina puede determinar
o predecir que esta tramando el jugador y
actuar en consecuencia, por ejemplo haciendo
baterias antiaéreas.
Este mecanismo necesitará entrenamiento
dentro del juego y validación de la red, con los
riesgos que eso conlleva
La ventaja es que se adapta al jugador, y nos
ahorramos escribir todas las posibles
combinaciones a base de reglas o máquinas de
estado finito.
4 formas principales de usar redes
neuronales
Atacar o huir
Podemos usar una red neuronal para controlar
los personajes que pueblan un juego de rol.
La red realizará el proceso de decisión de la
criatura: Atacar, huir o deambular.
Podemos tener 4 entradas: numero de criaturas
alrededor (para saber si vamos en grupo), puntos
de salud o ataque, un indicador de si otra
criatura lo ha llamado para el combate y el rango
del enemigo (hay muchas más, como si el enemigo
es mago o guerrero)
Podemos dejar evolucionar a la red en el juego. Si
tomamos una decisión y hace morir a la criatura,
reforzamos otro tipo de decisión
4 formas principales de usar redes
neuronales
Anticipación
En este caso usaremos la red para intentar
predecir los movimientos de los jugadores, por
ejemplo, en un juego de peleas.
Presumimos que el jugador usará más a
menudo la combinación de botones que más
favorable le sea.
La idea es entrenar la red in situ
4 formas principales de usar redes
neuronales
Anticipación
Podemos usar una red con 3 entradas, que son
los 3 últimos movimientos del jugador y una
salida, la predicción del siguen movimiento
que realizará.
Si acertamos, reforzamos eso, si no, lo
aprendemos.
Si acertamos podemos reaccionar
adecuadamente, agachándonos o
contraatacando.
Esto hace que los jugadores no se estanquen e
innoven
Pros y Contras
• Las redes han de ser usadas en un pequeño
número de problemas relacionados con el
reconocimieto de patrones o predicción y
toma de decisiones.
• Una red puede ser vista como una caja negra
util para realizar operaciones costosas, como
selección de animaciones (de un jugador de baloncesto
en función de que compañeros tiene cerca, sus porcentajes o el nivel de
dificultad)
Pros y Contras
El reconocimiento de patrones puede usarse
para formar parte de la IA del personaje
manejado por el jugador, para que aprenda de
sus movimientos y pueda interactuar solo.
Aunque es muy poco común, también puede
usarse la red neuronal para almacenar
información, permitiendo que se siga
aprendiendo durante la vida jugable de un
juego.
Pros y Contras
Se usa poco porque no se puede controlar
como va a aprender la red, y en la mayoría de
los casos no se consigue el resultado
esperado.
Los juegos que lo incorporan, como el B&W,
restringen severamente lo que el juego puede
aprender, para minimizar el elemento
aleatorio dentro del mundo virtual.
Pros
Las redes neuronales son una forma muy
eficiente de encontrar relaciones
abstractas entre condiciones de entrada.
Pueden encontrar soluciones de funciones
matemáticas muy complejas. Estas son
representadas mediante los pesos de la
RN. Si usamos la red dentro del juego,
estamos ahorrando CPU.
Pros
Las redes tienen una habilidad increíble de
obtener un patrón a partir de datos no
lineales o impredecibles. Pueden
generalizar conexiones y relaciones entre
datos que aparentemente no la tienen. Una
red bien entrenada y diseñada puede
generalizar incluso mejor que un humano
experto.
El entrenamiento requiere, una vez que la
red ha sido determinada y los casos
preparados, una pequeña fracción de CPU
Contras
Tienen el gran problema del entrenamiento,
del cual dependerá en gran medida su
desempeño.
Hemos cambiado el problema de como resolver
algo, a como entrenar la red para que lo resuelva,
algo bastante complicado
Si introduces datos erróneos, la red los
asimilará. Si se usan entradas aleatorias o
falsas, la red encontrará alguna correlación
entre datos erróneos. Estas incorrecciones solo
se suelen descubrir al final del todo, o peor, con
el producto ya en la calle.
Contras
Una RN es una caja negra matemática, por lo
que es muy difícil o prácticamente imposible
depurarla. Una vez entrenada, los pesos
dentro de la red son totalmente
incomprensibles. La información dentro de la
red esta distribuida de forma total.
Depurarla puede implicar volver al principio,
cambiar los datos de entrenamiento o los
parámetros iniciales, y volver a entrenar
Contras
Todos los campos tienen que ser numéricos
Los valores difusos o los que se representan
mediante una expresión no pueden
modelarse.
Las redes son difíciles de implementar,
debido al gran numero de factores que
intervienen y sin ninguna guía o regla de
como determinarlos de la mejor manera.
Estructura de la red, entradas y salidas, función
de activación, tasa de aprendizaje, casos de
entrenamiento....
Contras
Las redes sufren muchas veces el llamado
aprendizaje catastrófico. Con una red casi
terminada de entrenar se le introduce
entrenamiento adicional que deshace todo lo
aprendido.
Las redes son difícilmente ampliables, y
funcionan mal con muchos nodos. Este
problema en videojuegos no es importante
porque no se necesitan nunca redes grandes
Algunos juegos que usan RN
• Battlecruiser: 3000 AD
– Primer juego comercial que usaba RN en su
IA.
– Tipico matamarcianos. Las naves estaban
manejadas por una red neuronal
– El resultado dejo mucho que desear
Algunos juegos que usan RN
• Creatures
– Junto a los Sim, probablemente la serie que
más técnicas de IA usa. Tiene sentido dado al
objetivo del juego: Ver como se comportan las
criaturas que pueblan el juego.
– El juego se basa en enseñar a los Norns. No
podemos manejarlos, solo podemos
interaccionar con ellos mediante el mundo
que pueblan. Estos aprenderán a lo largo del
juego. Si aprenden bien, se reproducirán Los
Norns pueden aprender unos de otros.
– Este aprendizaje se hace mediante RN
Algunos juegos que usan RN
Algunos juegos que usan RN
• Close Combat.
– El juego consiste en conquistar una serie de puentes
ayudados por un batallón.
– Este juego iba a ser el primero en introducir
cooperación entre IA construidas mediante redes
neuronales.
– Al final desecharon la idea, lo cual demuestra lo difícil
que es implementar este tipo de técnicas, y acabaron
usando técnicas más tradicionales
Algunos juegos que usan RN
• Dirt Track Racing.
– Juego bastante malo a nivel global. Lo
interesante es que fue el primer juego de
carreras en controlar los coches mediante
redes neuronales
Algunos juegos que usan RN
• Dynamic Gin
– Juego de tablero para PC.
– Integra una red neuronal que le permite
aprender del jugador, para contrarrestarlas, y
para usarlas en el futuro para su propio
beneficio
Algunos juegos que usan RN
• Fields of Battle
– Juego de estrategia cuyo objetivo es controlar
el mapa de Europa.
– La Ia del juego esta totalmente sobre las redes
neuronales. Las usa para todo, para gestionar
recursos, negociar con el jugador humano,
manejar tropas, etc...
Algunos juegos que usan RN
• Heavy Gear
– Juego de combate táctico en el que
manejamos a unos robots. Cada robot tiene
una serie de cerebros (redes neuronales) que
maneja un aspecto del comportamiento del
robot. Se permitió que la red aprendiera a lo
largo de la vida del juego.
Algunos juegos que usan RN
• Third Reich
– Otro ejemplo de querer y no poder.
– El juego iba a usar las redes neuronales para
identificar la estrategia del jugador y elegir la
mejor manera de actuar respecto a esto.
– La red iba a ser entrenada un par de años
mediante cientos de estrategias y partidas.
– La red nunca aprendió satisfactoriamente. Su
comportamiento era impredecible, aleatorio y
muy inestable. Se perdieron miles de horas de
trabajo y mucho dinero
Algunos juegos que usan RN
• Third Reich
– Sucesos como este han hecho que los
productores y los desarrolladores tengan
miedo al uso de las redes y a sus posibles
efectos negativos
Consideraciones de diseño y
conclusiones
Tipos de soluciones:
Las RN son adecuadas cuando tienes sistemas
simples y modulares.
Son mucho más usadas para problemas
simples que para complejos
No recomendadas para tareas demasiado
complejas, como manejar la diplomacia en un
juego de estrategia
Controversia entre autores. Algunos dicen que
las redes están siendo infravaloradas, y
usadas en problemas menores.
Consideraciones de diseño y
conclusiones
Interacción del agente
Las redes neuronales pueden optimizar el uso
de la CPU. Su uso puede hacer que los agentes
reaccionen más rápidamente ante los
estímulos.
Esto era interesante hace unos años, pero con
el hardware actual, no es algo que preocupe
mucho actualmente
Consideraciones de diseño y
conclusiones
Realismo del sistema
Las redes neuronales ayudan al sistema a
parecer mucho más realista.
Ser sistemas de reconocimiento de patrones
los diferencia bastante en cuanto a
funcionamiento de las máquinas de estado
finito o los basados en guiones
Estas actúan de manera específica a un
escenario dado
Consideraciones de diseño y
conclusiones
Género y plataforma
Esto no es un factor limitante.
Los problemas abordables por RN están
presentes en todas los géneros, aunque en
unos más que en otros
Consideraciones de diseño y
conclusiones
Limitaciones de diseño
Las redes necesitan un gran esfuerzo para
diseñar la red y recopilar los casos de
entrenamiento
Se requiere de un periodo de significativo
para entrenarla y para ponerla a punto
Si se opta por permitir que el juego aprenda
durante la vida real del juego, el periodo de
diseño será aun más grande
Bibliografía
Brian Schwab. AI Game Engine
Programming. Charles River Media. 2004.
Steve Rabin et Al. AI game Programming
Wisdom. Charles River Media.
Mat Buckland. AI Techniques for Game
Programming. Premier Press. 2002.
Mat Buckland. Programming Game AI by
Examples. Wordware Publishing. 2005.
Bibliografía
En internet:
www.gameai.com
www.ai-depot.com
www.gamedev.net
www.gamasutra.com/
Descargar