Comment fonctionne une IA de jeu hybride et quels sont ses avantages

Dans la continuité du sujet de l'intelligence artificielle du jeu qui a été soulevé dans notre blog, nous parlerons de la manière dont le machine learning lui est applicable et sous quelle forme. Jacob Rasmussen, un expert des problèmes d'IA dans Apex Game Tools, a partagé son expérience et les solutions sélectionnées sur cette base.



Ces dernières années, on a beaucoup parlé du fait que l'apprentissage automatique allait changer radicalement l'industrie du jeu, car cette technologie est déjà devenue une percée dans de nombreuses autres applications numériques. Mais n'oubliez pas que les jeux sont beaucoup plus compliqués qu'un simulateur de conduite automobile, un programme de contrôle de drone ou des algorithmes de reconnaissance faciale dans une image.

Jusqu'à présent, dans l'industrie du jeu, il est toujours d'usage d'utiliser des méthodes d'IA traditionnelles, telles que la méthode de la machine à états finis, les arbres de comportement et - plus récemment - l'IA basée sur les utilitaires (systèmes basés sur les utilitaires). Ces IA sont également appelées systèmes basés sur la conception (intelligence de conception artificielle) ou experts. Mais il devient de plus en plus évident - et pour les joueurs en premier lieu - que ces systèmes sont de moins en moins adaptés pour créer des adversaires vraiment avancés qui pourraient imiter le comportement des joueurs. Cela est particulièrement vrai pour les solutions créatives. Cela peut s'expliquer par le fait que les développeurs d'intelligence artificielle ne sont pas en mesure de prendre en compte toutes les tactiques et stratégies de comportement possibles et de les mettre en œuvre avec succès dans les systèmes d'IA traditionnels. Pour les joueurs, cela s'avère souvent ennuyeux et prévisible pour jouer avec un adversaire dont le comportement est facile à retenir.

De nombreuses raisons conduisent à ce résultat, mais l'une des principales est l'incapacité de l'IA à apprendre. Par conséquent, lors de la création de l'intelligence artificielle de l'ennemi, la décision de passer au machine learning, qui a fait ses preuves dans de nombreuses autres applications, vient à l'esprit. Mais il y a plusieurs nuances qui méritent d'être examinées. Ainsi, une IA de jeu doit être capable de s'adapter à n'importe quelle situation et d'utiliser les avantages qu'elle lui confère, ainsi que de s'adapter aux différents styles de jeu des rivaux - les joueurs en direct et les autres IA.


Comment ça va maintenant


La société britannique DeepMind, engagée dans le développement de l'intelligence artificielle, a récemment montré comment l'IA peut apprendre de façon indépendante à jouer à des jeux, apprendre ses règles et trouver des moyens de réussir le jeu ou de le gagner - cependant, jusqu'à présent uniquement sur l'exemple de jeux simples, tels que les premiers jeux Atari - par exemple, les échecs et le jeu de logique japonais vont. Les résultats obtenus pour eux montrent que l'intelligence artificielle est en mesure de se forger une évaluation adéquate de ce qui se passe sur le terrain. Si nous parlons de l'adaptation de l'IA à différents styles de jeu de l'adversaire, les résultats ne sont pas si impressionnants.

De nos jours, les réseaux de neurones ont déjà appris à reconnaître les images et à conduire des voitures. Mais ces fonctions peuvent être réalisées à l'aide d'architectures relativement simples, même si en conséquence elles s'avèrent assez profondes et volumineuses. Ainsi, l'IA pour la reconnaissance d'images sur Facebook a une profondeur d'environ 100 couches, c'est pourquoi elle ressemble à un cerveau biologique - dans le nombre et la complexité de la relation entre les neurones qui forment un grand réseau.


Game AI


Quant à l'application du machine learning dans l'industrie du jeu, il existe un certain nombre de limitations, à cause desquelles il n'est pas toujours possible d'utiliser ce type d'architecture. Il s'agit notamment des exigences du système, en particulier liées au CPU, qui déterminent la capacité d'un ordinateur à traiter des structures de jeu complexes et sa pertinence pour la narration et le gameplay du jeu.

Ainsi, il s'avère que dans de nombreux jeux pour la mise en œuvre d'un système complexe d'intelligence artificielle, il n'est pas possible d'organiser le matériel nécessaire et en plus le cluster de serveurs, qui existe, par exemple, pour les réseaux de reconnaissance d'images sur Facebook. Parfois, plusieurs IA doivent fonctionner en même temps - non seulement sur les ordinateurs, mais également sur les appareils mobiles et sur d'autres plates-formes moins productives. Tout cela impose des restrictions sur la taille et la complexité de l'architecture d'apprentissage automatique, car tous les calculs doivent également être effectués avec une durée de trame de l'ordre de 1 ou 2 millisecondes. Bien sûr, vous pouvez utiliser diverses technologies d'optimisation et équilibrer la charge entre les images, mais vous ne pouvez toujours pas vous débarrasser de ces limitations.

De graves problèmes pour l'IA peuvent entraîner la complexité du jeu. En effet, dans des jeux comme StarCraft II, la mécanique du jeu est beaucoup plus compliquée que dans les jeux Atari. Par conséquent, vous ne devez pas vous attendre à ce que pour une fréquence de trame donnée et avec des exigences système connues, le machine learning puisse sûrement faire face à l'étude de l'état du jeu dans son ensemble et pourra interagir avec lui. Comme un joueur est souvent guidé par l'intuition dans les premiers stades du jeu, l'IA doit donc apprendre à traiter l'état du jeu afin de simplifier son passage. Par exemple, dans l'une des dernières API pour Starcraft II sur les cartes, seules les informations que les développeurs considéraient comme importantes étaient affichées: dans un cas, l'IA utilisait une vue réduite de l'ensemble du territoire de la carte, dans le second - comme un joueur, il pouvait déplacer la caméra, puis sa perception était limitée aux informations sur l'écran.

image
Visualisation du jeu AlphaStar AI contre un joueur dans StarSraft II: la capture d'écran montre les observations d'entrée brutes, l'activité du réseau neuronal, certaines de ses actions et coordonnées possibles, ainsi que le résultat attendu du match

C'est un aspect particulièrement pertinent dans le cas des jeux. Souvent, les méthodes généralement acceptées pour résoudre les problèmes d'apprentissage automatique ne s'appliquent pas à l'intelligence artificielle des jeux. Par exemple, il n'est généralement pas obligé de gagner ou de faire tout ce qui est en son pouvoir pour gagner, comme ce fut le cas avec les jeux Atari. Le plus souvent, le rôle de l'IA est de rendre le jeu de passes plus excitant. Il peut être nécessaire pour lui de jouer un rôle et de se comporter comme le suggère le personnage du personnage dont il est responsable. Ainsi, les IA de jeu sont plus liées à la conception de jeux et à la narration et doivent disposer des outils nécessaires pour contrôler leur comportement pour atteindre leurs objectifs. L'apprentissage automatique pur n'est pas toujours adapté à cela - ce qui signifie que vous devez chercher autre chose.


Problèmes pratiques d'apprentissage automatique


Ces problèmes sont apparus dans le développement de l'intelligence artificielle basée sur l'apprentissage automatique pour Unleash , où les IA devraient se comporter comme des joueurs réguliers - c'est-à-dire être aussi flexibles et ingénieux.

Comme Starcraft II, Unleashed est beaucoup plus complexe que les échecs et optez pour Atari. Le gameplay est intuitif et facile à apprendre, mais pour vraiment réussir, vous avez besoin de certaines compétences en méta-gestion. Le joueur doit construire des labyrinthes, placer des monstres sur les ennemis et réfléchir à sa stratégie en matière d'économie, d'attaque et de défense des structures tout au long du jeu. Pour ce faire, il doit bluffer et calculer les mouvements des autres, ainsi que gérer une méta psychologique - c'est elle qui fait du poker quelque chose de plus qu'un simple jeu statistique.

image
Capture d'écran de Unleashed

À la recherche de l'architecture la plus appropriée à ces fins, des technologies telles que la neuroévolution et le deep learning ont d'abord été introduites dans le jeu sous une forme presque inchangée, et nous avons vérifié comment elles se présenteraient brutes comme une IA ennemie.

C'était affreux.

Il est rapidement devenu évident qu'Unleashed devait résoudre de nombreux problèmes mondiaux difficiles à adapter à l'apprentissage automatique.

L'un d'eux est la construction d'un labyrinthe efficace. Comme dans de nombreux jeux dont le but est de protéger la tour, les joueurs doivent ici construire un labyrinthe autour d'elle, à travers lequel les monstres vont percer. Ils doivent à leur tour être éliminés à l'aide d'armes placées dans un labyrinthe. Idéalement, le labyrinthe devrait être aussi long que possible afin de pouvoir infliger suffisamment de dégâts aux monstres et les empêcher d'atteindre la tour. Pour certains types d'armes, les monstres sont plus vulnérables que pour d'autres, donc pour plus d'efficacité, ils doivent être placés dans le labyrinthe plus tôt que tout le monde. La particularité de Unleash est qu'il n'y a pas de labyrinthe parfait: il y a tellement de types de monstres dans le jeu que de toute façon l'un d'entre eux passera librement à travers n'importe quelle partie du labyrinthe. Tout labyrinthe doit être adapté aux nouveaux monstres lancés par d'autres joueurs. Ainsi, il était nécessaire non seulement d'apprendre à l'intelligence artificielle à construire des labyrinthes - il était nécessaire de lui apprendre à créer des labyrinthes efficaces pour divers scénarios, qui ne peuvent être rencontrés que dans les versions ancienne et tardive du jeu.

En outre, l'IA a dû apprendre à déterminer quels monstres apparaissaient dans le labyrinthe. Il s'agit d'une sorte de problème inverse en ce qui concerne la construction du labyrinthe. Comme dans beaucoup d'autres jeux, dans Unleash, il ne suffit pas de constituer une armée et de l'envoyer au camp ennemi: vous devez également espionner la défense de l'ennemi et structurer votre armée de manière à toucher les points douloureux de l'ennemi aussi efficacement que possible. L'armée de monstres devrait interagir les uns avec les autres de manière à réussir à traverser le labyrinthe. Parfois, il est également nécessaire de libérer les monstres dans un certain ordre en fonction de leurs fonctions et de leur rôle. Cela augmente également le nombre de combinaisons différentes.

Enfin, puisque le joueur doit à la fois créer des labyrinthes et assembler une armée de monstres, l'IA doit également apprendre à trouver l'équilibre en attaque et en défense. Il convient également de considérer que plus le joueur construit une armée de monstres et plus il construit le labyrinthe, plus il a besoin de ressources pour cela. Par conséquent, la stratégie d'attaque correcte est extrêmement importante à la fois pour l'économie pendant le jeu et pour la victoire. Et pour assurer la compétitivité, l'IA doit être en mesure de disposer de ressources de manière à créer une puissante armée de monstres, sans compromettre la force du labyrinthe. Investir dans des monstres au maximum peut être rentable, mais cela augmente le risque que des monstres ennemis prennent le labyrinthe. Si vous pariez sur le renforcement de la protection du labyrinthe, cela peut nuire à votre économie. Aucun de ces scénarios ne mènera à la victoire. Ainsi, le problème d'optimisation dans Unleashed est plus important que dans le cas des échecs ou de Starcraft, et inclut la nécessité de sacrifier quelque chose et de calculer votre profit plusieurs étapes à l'avance.

Au fur et à mesure que l'intelligence artificielle est formée, de nombreux problèmes jusque-là inexpliqués apparaissent. Donc, au début, l'IA a souvent atteint un certain niveau de développement, auquel il a commencé à comprendre certains aspects du jeu - par exemple, quelles armes dans le labyrinthe sont efficaces contre des types spécifiques de monstres ou quels monstres passent le mieux dans certaines sections du labyrinthe. Mais l'apprentissage a été lent et a conduit au développement de stratégies uniformes.


La nécessité d'approches parallèles


Alors que l'apprentissage de l'IA basé sur l'apprentissage automatique s'est développé lentement et sans succès particulier, d'autres étapes de test et de développement ont nécessité une meilleure IA et des IA rivales plus robustes. Pour les implémenter, l'architecture utilitaire a été utilisée, avec laquelle vous pouvez créer des IA spéciales pour tester et vérifier la qualité du jeu, des tests en jeu et équilibrer les armes et les monstres, et créer des labyrinthes et des monstres spécifiques. Cependant, lors du développement de Unleash, les créateurs eux-mêmes ont perfectionné leurs compétences en le passant, puis ont décidé d'utiliser les connaissances acquises pour créer un utilitaire d'IA plus complexe. Il est donc devenu clair que de nombreux problèmes qui se posent dans les systèmes d'apprentissage artificiel basés sur l'apprentissage automatique peuvent être facilement résolus à l'aide de systèmes utilitaires qui utilisent leurs connaissances, et vice versa.

Par exemple, il est préférable de construire des labyrinthes plus efficaces en utilisant Utility AI, sur la base de bases de connaissances compilées à partir de tests internes. Vous pouvez facilement décrire et programmer l'algorithme de construction du labyrinthe et l'emplacement des armes de manière à ce qu'il soit plus facile de défendre la tour de monstres spécifiques contre un joueur vivant. Mais la création d'une armée de monstres basée sur la connaissance de la base ennemie était une tâche difficile pour de telles IA, car le nombre de conditions et de combinaisons différentes à prendre en compte était incroyable. Avec ce type d'architecture IA, trouver des ensembles de monstres appropriés prendrait un temps infiniment long. Ensuite, compte tenu des restrictions données, l'apprentissage en profondeur serait une solution idéale pour cette tâche.


Création d'IA hybride


Il a donc été décidé de combiner les deux approches et de créer ainsi un système hybride d'intelligence artificielle basé sur l'apprentissage automatique et l'utilité. L'idée était que là où il était nécessaire de traiter un grand nombre de combinaisons et d'états du jeu, ou là où il fallait le former à quelque chose, l'apprentissage automatique était utilisé. Pour d'autres tâches, où il est préférable de s'appuyer sur l'expérience personnelle des développeurs, des systèmes utilitaires ont été impliqués. L'avantage de cette approche réside également dans le fait que, si nécessaire, il est possible de mieux contrôler le comportement de l'IA afin d'assurer son adhésion plus exacte à un objectif donné. Par exemple, vous pouvez utiliser l'utilitaire AI pour assurer un équilibre entre l'attaque et la défense et ainsi créer différents niveaux d'agression, ou vous pouvez créer différentes configurations de labyrinthe pour différentes IA pour créer des styles de jeu individuels pour elles. Vous pouvez également définir certains systèmes de valeurs pour les réseaux de neurones pour former diverses préférences lors du recrutement de monstres aériens ou terrestres et ainsi ajouter également de la personnalité à des IA individuelles. Il existe de nombreuses autres options pour la mise en œuvre des décisions de conception, et toutes soulignent les points forts d'un type particulier d'architecture d'IA.

L'approche hybride a également répondu à une autre question que l'équipe de développement a rencontrée dans le processus de développement de l'intelligence artificielle pour Unleash: vaut-il la peine d'appliquer un réseau global de neurones profonds basé sur l'apprentissage automatique pour prendre en compte toutes les données d'entrée et de sortie, ou est-il préférable de concevoir des IA avec une structure hiérarchique?

image
Deux architectures utilisées dans Unleash: à gauche est un grand réseau neuronal profond avec sa propre architecture unifiée, à droite est un système hiérarchique dans lequel chaque réseau a sa propre tâche

Néanmoins, je voudrais créer une approche commune du système d'intelligence artificielle, dans l'architecture dont les développeurs ne pourraient pas apporter leur propre expérience. Cependant, plus il y avait d'entrées dans le jeu, plus le réseau de neurones se développait. Dans le même temps, il était impossible de séparer la formation de l'IA et de leur enseigner une seule chose: la défense ou l'attaque. Et l'on craignait qu'une approche plus générale n'entraîne une augmentation significative du nombre de calculs.

De là est venue l'idée de créer une architecture hiérarchique dans laquelle chaque tâche spécifique serait effectuée par un réseau neuronal spécialisé. Selon cette idée, la première intelligence artificielle doit prendre une décision sur la répartition des ressources pour l'attaque (augmenter l'armée de monstres) et la défense (construction du labyrinthe). Dès qu'il le fait, il passe à la couche suivante en fonction de son choix et accède à la partie nécessaire de l'état du jeu, après quoi il prend des décisions détaillées sur les monstres à choisir et les armes à installer dans le labyrinthe.


Conclusion et prochaines étapes


Dans l'approche de l'utilitaire hybride, l'IA avec des réseaux compatibles avec l'apprentissage automatique ressemble à une architecture hiérarchique. Et cela, à son tour, est similaire à un cerveau biologique dans lequel différents centres nerveux sont chacun responsables de leur tâche.

Maintenant, l'IA ennemie dans Unleash est très difficile à vaincre: ils sont capables de s'adapter à toutes les situations du jeu - mais en même temps, les développeurs peuvent modifier leurs paramètres à leur discrétion. Selon l'auteur de l'article, au fil du temps, l'approche hybride devrait se généraliser et apparaître dans de nombreux autres jeux. Peut-être qu'un jour il sera possible d'introduire l'intelligence artificielle basée sur l'apprentissage automatique dans sa forme la plus pure dans le gameplay. Mais, évidemment, cela prendra encore du temps. En attendant, l'objectif est de trouver une telle architecture qui s'adapte elle-même aux défis auxquels elle est confrontée et trouve des moyens optimaux pour les résoudre.

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


All Articles