¿Cómo funciona una IA de juegos híbridos y cuáles son sus ventajas?

En la continuación del tema de inteligencia artificial de juegos que una vez surgió en nuestro blog, hablaremos sobre cómo el aprendizaje automático es aplicable y de qué forma. Jacob Rasmussen, un experto en temas de IA en Apex Game Tools, compartió su experiencia y las soluciones seleccionadas sobre la base.



En los últimos años, se ha hablado mucho de que el aprendizaje automático cambiará radicalmente la industria del juego, porque esta tecnología ya se ha convertido en un gran avance en muchas otras aplicaciones digitales. Pero no olvide que los juegos son mucho más complicados que un simulador de conducción de automóviles, un programa de control de drones o algoritmos de reconocimiento facial en una imagen.

Mientras que en la industria del juego, todavía se acostumbra utilizar métodos de IA tradicionales, como el método de máquina de estado finito, árboles de comportamiento y, más recientemente, IA basada en utilidades (sistemas basados ​​en utilidades). Estas IA también se denominan sistemas basados ​​en diseño (inteligencia de diseño artificial) o expertos. Pero cada vez es más obvio, y para los jugadores en primer lugar, que estos sistemas son cada vez menos adecuados para crear oponentes verdaderamente avanzados que puedan imitar el comportamiento de los jugadores. Esto es especialmente cierto para soluciones creativas. Esto puede explicarse por el hecho de que los desarrolladores de inteligencia artificial no pueden tener en cuenta todas las tácticas y estrategias de comportamiento posibles e implementarlas con éxito en los sistemas tradicionales de inteligencia artificial. Para los jugadores, a menudo resulta aburrido y predecible jugar con un oponente cuyo comportamiento es fácil de recordar.

Muchas razones conducen a este resultado, pero una de las principales es la incapacidad de la IA para aprender. Por lo tanto, al crear la inteligencia artificial del enemigo, viene a la mente una decisión sobre la transición al aprendizaje automático, que ha demostrado su eficacia en muchas otras aplicaciones. Pero hay varios matices que vale la pena considerar. Por lo tanto, una IA de juego debe ser capaz de adaptarse a cualquier situación y utilizar las ventajas que le brinda, así como adaptarse a los diferentes estilos de juego de sus rivales: jugadores en vivo y otra IA.


Como estan las cosas ahora


La compañía británica DeepMind, comprometida con el desarrollo de la inteligencia artificial, mostró recientemente cómo la IA puede aprender de forma independiente a jugar juegos, aprender sus reglas y encontrar formas de pasar el juego o ganarlo; sin embargo, hasta ahora solo en el ejemplo de juegos simples, como los primeros juegos de Atari. - Por ejemplo, el ajedrez y el juego de lógica japonés van. Los resultados obtenidos para ellos muestran que la inteligencia artificial es capaz de formarse una evaluación adecuada de lo que está sucediendo en el campo. Si hablamos de la adaptación de la IA a varios estilos del juego del oponente, los resultados no son tan impresionantes.

Hoy en día, las redes neuronales ya han aprendido a reconocer imágenes y conducir automóviles. Pero estas funciones se pueden realizar con la ayuda de arquitecturas relativamente simples, incluso si como resultado resultan ser bastante profundas y voluminosas. Entonces, la inteligencia artificial para el reconocimiento de imágenes en Facebook tiene una profundidad de aproximadamente 100 capas, por lo que se asemeja a un cerebro biológico, en la cantidad y complejidad de la relación entre las neuronas que forman una gran red.


Game AI


En cuanto a la aplicación del aprendizaje automático en la industria del juego, hay una serie de limitaciones, por lo que no siempre es posible utilizar este tipo de arquitectura. Estos incluyen requisitos del sistema, en particular relacionados con la CPU, que determinan la capacidad de una computadora para procesar estructuras de juego complejas y su idoneidad para contar historias y juegos.

Por lo tanto, resulta que en muchos juegos para la implementación de un complejo sistema de inteligencia artificial, no es posible organizar el hardware necesario y, además, el clúster de servidores, que existe, por ejemplo, para redes de reconocimiento de imágenes en Facebook. A veces, varias IA deben funcionar al mismo tiempo, no solo en computadoras, sino también en dispositivos móviles y en otras plataformas menos productivas. Todo esto impone restricciones sobre el tamaño y la complejidad de la arquitectura de aprendizaje automático, porque todos los cálculos también deben realizarse con una duración de trama del orden de 1 o 2 milisegundos. Por supuesto, puede usar varias tecnologías de optimización y equilibrio de carga entre cuadros, pero aún así no puede deshacerse de estas limitaciones en absoluto.

Los problemas serios para la IA pueden causar la complejidad del juego. De hecho, en juegos como StarCraft II, la mecánica del juego es muchas veces más complicada que en los juegos de Atari. Por lo tanto, no debe esperar que para una frecuencia de cuadro dada y con los requisitos del sistema conocidos, el aprendizaje automático seguramente hará frente al estudio de todo el estado del juego y podrá interactuar con él. Como un jugador a menudo se guía por la intuición en las primeras etapas del juego, la IA debe aprender a procesar el estado del juego para simplificar su paso posterior. Por ejemplo, en una de las últimas API para Starcraft II en mapas, solo se mostraba la información que los desarrolladores consideraban importante: en un caso, la IA usaba una vista reducida de todo el territorio del mapa, en el segundo, como un jugador, podía mover la cámara, y luego su percepción se limitaba a la información en la pantalla

imagen
Visualización del juego AlphaStar AI contra un jugador en StarSraft II: la captura de pantalla muestra las observaciones de entrada sin procesar, la actividad de la red neuronal, algunas de sus posibles acciones y coordenadas, así como el resultado esperado del partido

Este es un aspecto particularmente relevante en el caso de los juegos. A menudo, los métodos generalmente aceptados para resolver problemas de aprendizaje automático no son aplicables a la inteligencia artificial de los juegos. Por ejemplo, generalmente no está obligado a ganar o hacer todo lo que esté en su poder para ganar, como fue el caso de los juegos de Atari. Más a menudo, el papel de la IA es hacer que el juego de pases sea más emocionante. Puede ser necesario para él desempeñar un papel y comportarse como sugiere el personaje del personaje del que es responsable. Por lo tanto, las IA de los juegos están más vinculadas al diseño del juego y a la narración de historias y deben tener las herramientas necesarias para controlar su comportamiento para lograr sus objetivos. El aprendizaje automático puro no siempre es adecuado para esto, lo que significa que debe buscar otra cosa.


Problemas prácticos de aprendizaje automático


Estos problemas surgieron en el desarrollo de inteligencia artificial basada en el aprendizaje automático para Unleash , donde las IA deberían comportarse como jugadores normales, es decir, ser tan flexibles e ingeniosos.

Al igual que Starcraft II, Unleashed es mucho más complejo que el ajedrez e ir por Atari. La jugabilidad es intuitiva y fácil de aprender, pero para tener verdadero éxito, necesitas ciertas habilidades de metagestión. El jugador debe construir laberintos, establecer monstruos en los enemigos y pensar en su estrategia en economía, ataque y defensa de estructuras a lo largo del juego. Para hacer esto, necesita farolear y calcular los movimientos de otras personas, así como manejar un meta psicológico: es ella quien hace del póker algo más que un simple juego estadístico.

imagen
Captura de pantalla de Unleashed

En la búsqueda de la arquitectura más adecuada para estos fines, las tecnologías como la neuroevolución y el aprendizaje profundo se introdujeron por primera vez en el juego en una forma casi sin cambios, y verificamos cómo se mostrarían en bruto como una IA enemiga.

Fue horrible

Rápidamente se hizo evidente que Unleashed necesitaba resolver muchos problemas globales que eran difíciles de adaptar al aprendizaje automático.

Uno de ellos es la construcción de un laberinto efectivo. Como en muchos juegos cuyo objetivo es proteger la torre, aquí los jugadores deben construir un laberinto a su alrededor, a través del cual los monstruos se abrirán paso. Ellos, a su vez, deben ser eliminados con la ayuda de armas colocadas en un laberinto. Idealmente, el laberinto debe ser lo más largo posible para poder infligir suficiente daño a los monstruos y evitar que lleguen a la torre. Para algunos tipos de armas, los monstruos son más vulnerables que para otros, por lo que para una mayor efectividad deberían colocarse en el laberinto antes que todos los demás. La peculiaridad de Unleash es que no hay un laberinto perfecto: hay tantos tipos de monstruos en el juego que, de todos modos, uno de ellos pasará libremente por cualquier parte del laberinto. Cualquier laberinto debe estar adaptado para los nuevos monstruos lanzados por otros jugadores. Por lo tanto, era necesario no solo enseñar inteligencia artificial para construir laberintos, sino también enseñarle cómo crear laberintos efectivos para varios escenarios, que solo se pueden encontrar en las versiones temprana y tardía del juego.

Además, la IA tuvo que aprender a descubrir qué monstruos aparecerían en el laberinto. Este es un tipo de problema inverso con respecto a la construcción del laberinto. Como en muchos otros juegos, en Unleash no basta con construir un ejército y enviarlo al campamento del enemigo: también debes espiar la defensa del enemigo y estructurar tu ejército de tal manera que golpee los puntos débiles del enemigo de la manera más eficiente posible. El ejército de monstruos debe interactuar entre sí de tal manera que pueda atravesar con éxito el laberinto. A veces también es necesario liberar monstruos en un cierto orden dependiendo de sus funciones y roles. Esto también aumenta el número de diferentes combinaciones.

Finalmente, dado que el jugador debe crear laberintos y reunir un ejército de monstruos, la IA también debe aprender a encontrar el equilibrio en el ataque y la defensa. También vale la pena considerar que cuanto más el jugador construye el ejército de monstruos y cuanto más construye el laberinto, más recursos necesita para esto. Por lo tanto, la estrategia de ataque correcta es extremadamente importante tanto para la economía durante el juego como para la victoria en él. Y para garantizar la competitividad, la IA debe ser capaz de disponer de los recursos de tal manera que se cree un poderoso ejército de monstruos, sin poner en peligro la fuerza del laberinto. Invertir en monstruos al máximo puede ser rentable, pero esto aumenta el riesgo de que los monstruos enemigos tomen el laberinto. Si apuesta por fortalecer la protección del laberinto, puede socavar su economía. Ninguno de estos escenarios llevará a la victoria. Por lo tanto, el problema de optimización en Unleashed es mayor que en el caso del ajedrez o Starcraft, e incluye la necesidad de sacrificar algo y calcular su ganancia varios pasos por delante.

A medida que se entrena la inteligencia artificial, surgen muchos problemas no contados anteriormente. Entonces, al principio, la IA a menudo alcanzó un cierto nivel de desarrollo, en el que comenzó a comprender algunos aspectos del juego, por ejemplo, qué armas en el laberinto son efectivas contra tipos específicos de monstruos o qué monstruos pasan mejor ciertas secciones del laberinto. Pero el aprendizaje fue lento y condujo al desarrollo de estrategias uniformes.


La necesidad de enfoques paralelos


Si bien el aprendizaje de IA basado en el aprendizaje automático se desarrolló lentamente y no de manera particularmente exitosa, otras etapas de prueba y desarrollo requirieron una mejor IA y una IA rival más sólida. Para implementarlos, se utilizó la arquitectura Utility, con la que puedes crear IA especiales para probar y verificar la calidad del juego, pruebas en el juego y equilibrar armas y monstruos, y crear laberintos y monstruos específicos. Sin embargo, durante el desarrollo de Unleash, los propios creadores perfeccionaron sus habilidades para pasarlo y luego decidieron usar el conocimiento adquirido para crear una Utilidad de IA más compleja. Por lo tanto, quedó claro que muchos problemas que surgen en los sistemas de aprendizaje artificial basados ​​en el aprendizaje automático pueden resolverse fácilmente con la ayuda de los sistemas de utilidad que utilizan sus conocimientos, y viceversa.

Por ejemplo, es mejor construir laberintos más efectivos utilizando AI de utilidad, basado en bases de conocimiento compiladas a partir de pruebas internas. Puedes describir y programar fácilmente el algoritmo para construir el laberinto y la ubicación de las armas en él de tal manera que sea más fácil defender la torre de monstruos específicos a un jugador vivo. Pero la creación de un ejército de monstruos basado en el conocimiento de la base del enemigo fue una tarea difícil para tales IA, ya que la cantidad de diferentes condiciones y combinaciones que deben tenerse en cuenta fue sorprendente. Con este tipo de arquitectura de IA, encontrar conjuntos de monstruos adecuados llevaría un tiempo infinitamente largo. Luego, dadas las restricciones dadas, el aprendizaje profundo sería una solución ideal para esta tarea.


Creación de IA híbrida


Por lo tanto, se decidió combinar los dos enfoques y, por lo tanto, crear un sistema híbrido de inteligencia artificial basado en el aprendizaje automático y la utilidad. La idea era que donde era necesario procesar una gran cantidad de combinaciones y estados del juego, o donde se requería entrenarlo con algo, se usaba el aprendizaje automático. Para otras tareas, donde es mejor confiar en la experiencia personal de los desarrolladores, los sistemas de utilidad estuvieron involucrados. La ventaja de este enfoque también radica en el hecho de que, si es necesario, es posible controlar mejor el comportamiento de la IA para garantizar su cumplimiento más exacto de un objetivo determinado. Por ejemplo, puedes usar la IA de utilidad para garantizar un equilibrio entre ataque y defensa y así crear diferentes niveles de agresión, o puedes crear diferentes configuraciones de laberintos para diferentes IA para crear estilos de juego individuales para ellos. También puede establecer ciertos sistemas de valores para las redes neuronales para formar diversas preferencias al reclutar monstruos aéreos o terrestres y, por lo tanto, también agregar personalidad a las IA individuales. Hay muchas otras opciones para implementar decisiones de diseño, y todas enfatizan las fortalezas de un tipo particular de arquitectura de IA.

El enfoque híbrido también respondió a otra pregunta que el equipo de desarrollo enfrentó en el proceso de desarrollo de inteligencia artificial para Unleash: ¿vale la pena aplicar una única red neuronal profunda global basada en el aprendizaje automático para tener en cuenta todos los datos de entrada y salida, o es mejor diseñar una IA con una estructura jerárquica?

imagen
Dos arquitecturas utilizadas en Unleash: a la izquierda hay una gran red neuronal profunda con su propia arquitectura unificada, a la derecha hay un sistema jerárquico en el que cada red tiene su propia tarea

Sin embargo, me gustaría crear un enfoque común para el sistema de inteligencia artificial, en cuya arquitectura los desarrolladores no tendrían su propia experiencia. Sin embargo, cuantas más entradas se hicieron al juego, más creció la red neuronal. Al mismo tiempo, era imposible separar el entrenamiento de la IA y enseñarles una sola cosa: defensa o ataque. Y se temía que un enfoque más general condujera a un aumento significativo en el número de cálculos.

De esto surgió la idea de crear una arquitectura jerárquica en la que cada tarea específica sería realizada por una red neuronal especializada. Según esta idea, la primera inteligencia artificial debe tomar una decisión sobre la distribución de recursos para el ataque (aumentar el ejército de monstruos) y la defensa (construcción del laberinto). Tan pronto como hace esto, pasa a la siguiente capa de acuerdo con su elección y obtiene acceso a la parte necesaria del estado del juego, después de lo cual toma decisiones detalladas sobre qué monstruos elegir y qué armas instalar en el laberinto.


Conclusión y próximos pasos.


En el enfoque de la Utilidad híbrida, la IA con redes habilitadas para aprendizaje automático se asemeja a una arquitectura jerárquica. Y, a su vez, es similar a un cerebro biológico en el que diferentes centros nerviosos son responsables de su tarea.

Ahora, la IA enemiga en Unleash es muy difícil de derrotar: pueden adaptarse a cualquier situación en el juego, pero al mismo tiempo, los desarrolladores pueden cambiar su configuración a su discreción. Según el autor del artículo, con el tiempo, el enfoque híbrido debería generalizarse y aparecer en muchos otros juegos. Quizás algún día sea posible introducir inteligencia artificial basada en el aprendizaje automático en su forma más pura en el juego. Pero, obviamente, esto todavía llevará tiempo. Mientras tanto, el objetivo es encontrar una arquitectura que se adapte a los desafíos que enfrenta y encuentre formas óptimas de resolverlos.

Source: https://habr.com/ru/post/473932/


All Articles