Les proto-objets – des régions d'image partageant des propriétés visuelles communes – offrent une alternative prometteuse aux mécanismes d'attention traditionnels basés sur des patchs d'image rectangulaires dans les réseaux de neurones. Bien que des travaux antérieurs aient démontré que faire évoluer un module d'attention dure basé sur des patchs conjointement avec un réseau contrôleur permettait d'atteindre des performances de pointe dans des tâches d'apprentissage par renforcement visuel, notre approche exploite la segmentation d'image pour travailler avec des caractéristiques de plus haut niveau. En opérant sur des proto-objets plutôt que sur des patchs fixes, nous réduisons considérablement la complexité de représentation : chaque image se décompose en moins de proto-objets que de patchs réguliers, et chaque proto-objet peut être efficacement codé sous la forme d'un vecteur de caractéristiques compact. Cela permet d'obtenir un module d'auto-attention substantiellement plus petit qui traite des informations sémantiques plus riches. Nos expériences démontrent que cette approche basée sur les proto-objets égale ou dépasse les performances de pointe des implémentations basées sur les patchs avec 62 % de paramètres en moins et un temps d'entraînement 2,6 fois plus court.
Les mécanismes d'attention visuelle sont apparus comme une solution puissante pour réduire la complexité calculatoire dans les tâches de perception à haute dimension. En créant un goulot d'étranglement d'information entre les entrées visuelles et les réseaux de contrôle, ces mécanismes permettent un traitement efficace de scènes complexes [14]. Des travaux récents ont démontré que faire évoluer un module d'attention dure conjointement avec un contrôleur LSTM [10] peut produire des agents remarquablement efficaces opérant uniquement sur de petits patchs d'image [22]. Cette approche a non seulement produit des réseaux de neurones de plusieurs ordres de grandeur plus petits que les méthodes concurrentes, mais a également obtenu des résultats de pointe dans des environnements d'apprentissage par renforcement exigeants tels que Car Racing et Doom Take Cover [3]. Ce succès découle de la capacité de la couche d'attention à filtrer les régions d'entrée non pertinentes, simplifiant ainsi la tâche du contrôleur tout en offrant une généralisation robuste et une résistance au bruit.
Nous faisons progresser cette ligne de recherche en remplaçant les patchs de taille fixe et distribués uniformément par des proto-objets – des régions cohérentes de caractéristiques visuelles localement uniformes [6] – obtenus par segmentation d'image [7]. Ce changement de représentation offre deux avantages clés. Premièrement, ils fournissent une représentation plus compacte, car la plupart des scènes se décomposent en moins de proto-objets que de patchs. Deuxièmement, chaque proto-objet code des informations sémantiques plus riches au moyen d'un petit vecteur descripteur capturant des propriétés telles que la forme, la taille et la couleur.
Cette approche basée sur les proto-objets permet d'obtenir une architecture considérablement simplifiée. Le module d'auto-attention devient nettement plus petit tout en traitant des caractéristiques de niveau supérieur, ce qui conduit à une meilleure sélection et à des informations mieux filtrées pour le contrôleur, qui peut également être simplifié. Nos résultats dans les environnements Car Racing et Doom Take Cover [3] démontrent que cette architecture plus efficace égale ou dépasse les performances des implémentations basées sur les patchs tout en réduisant le nombre de paramètres de 62 % avec un entraînement 2,6 fois plus rapide.
La modélisation de l'attention visuelle humaine est un domaine de recherche actif depuis les 35 dernières années. De nombreux modèles d'attention différents ont été proposés, lesquels, en plus d'apporter des contributions théoriques aux neurosciences et à la psychologie, ont démontré des applications réussies en vision par ordinateur et en robotique [2]. Les premiers modèles computationnels se concentraient principalement sur l'attention ascendante (bottom-up), basée sur la saillance, tandis que des approches plus récentes ont incorporé des influences descendantes (top-down) et des mécanismes de sélection basés sur les objets.
Le système visuel biologique fournit des informations cruciales pour concevoir des systèmes de vision artificielle efficaces. Une contrainte fondamentale est que les ressources neuronales sont limitées – Koch et al. [11] ont démontré que les cellules ganglionnaires de la rétine équilibrent les coûts métaboliques par rapport à la transmission d'informations, atteignant un codage très efficace malgré l'utilisation de fréquences de décharge relativement faibles. Cela suggère une pression évolutive en faveur de goulots d'étranglement d'information stratégiques plutôt que de tenter de traiter toutes les entrées de manière égale. Walther et Koch [28] ont montré qu'un tel goulot d'étranglement se produit au niveau des proto-objets, où des régions cohérentes de la scène sont sélectionnées pour un traitement amélioré avant que la reconnaissance complète de l'objet ne se produise. Cela permet au système visuel de sérialiser des scènes complexes en blocs gérables tout en maintenant une efficacité de codage élevée.
L'attention visuelle dans les systèmes biologiques fonctionne selon trois mécanismes principaux. L'attention basée sur l'espace opère sur des emplacements spécifiques du champ visuel, traitant l'attention comme un faisceau lumineux qui améliore le traitement à des coordonnées spatiales sélectionnées. L'attention basée sur les caractéristiques améliore sélectivement le traitement de caractéristiques spécifiques (comme la couleur, l'orientation ou le mouvement) sur l'ensemble du champ visuel, indépendamment de la localisation spatiale. L'attention basée sur les objets opère sur des éléments regroupés de manière perceptive qui forment des objets cohérents, suggérant que l'attention sélectionne des représentations d'objets entiers plutôt que de simples localisations spatiales ou caractéristiques individuelles [5, 25, 27].
Un mécanisme clé de l'attention computationnelle moderne est la couche d'auto-attention. Dans sa forme standard [26], l'auto-attention opère sur un ensemble de N vecteurs d'entrée, chacun de dimension din, en les transformant linéairement via des matrices de poids apprises WO et WK pour obtenir les matrices Requête (Query - Q) et Clé (Key - K) :
S = softmax( QKT / √dk ) (1)
où dk est la dimension des vecteurs clés. Les scores d'attention S indiquent à quel point les éléments d'entrée sont liés. S est ensuite combiné avec une matrice V, qui est également une transformation linéaire de l'entrée, pour former la représentation contextuelle A = SV, dont les vecteurs contiennent la représentation de chaque entrée en tenant compte du contexte global.
Les proto-objets sont une représentation intermédiaire entre les caractéristiques visuelles brutes et les objets pleinement reconnus [19, 28]. Ils se forment lors du traitement pré-attentionnel et représentent des régions cohérentes du champ visuel partageant des propriétés visuelles communes. Ces structures servent de candidats potentiels pour l'attention avant que la reconnaissance complète de l'objet ne se produise [16], permettant au système visuel de prioriser efficacement les ressources de traitement.
Les goulots d'étranglement d'information dans le traitement visuel servent à compresser l'entrée visuelle à haute dimension en représentations plus gérables tout en préservant les informations pertinentes pour la tâche [11, 23]. Ces goulots d'étranglement peuvent se produire à différents niveaux de traitement, des premières caractéristiques visuelles jusqu'à la reconnaissance des objets, et jouent un rôle crucial dans la gestion des ressources calculatoires requises pour le traitement visuel [29]. La formation même des proto-objets représente un goulot d'étranglement d'information naturel, car elle réduit la complexité de la scène visuelle tout en conservant les informations pertinentes sur le plan comportemental [28].
Notre travail s'appuie sur et relie plusieurs directions de recherche en vision par ordinateur, en apprentissage profond et en calcul évolutif. Nous combinons des idées issues de modèles biologiques de l'attention visuelle, d'architectures neurales efficaces et de techniques classiques de vision par ordinateur pour créer un système hybride qui exploite les forces de chaque approche. Nous appliquons des mécanismes d'attention dure à des proto-objets plutôt qu'à des pixels bruts ou des patchs arbitraires. Cette approche met en œuvre un goulot d'étranglement d'information similaire à celui observé par Koch et al. [11] dans les systèmes biologiques, tout en opérant sur les proto-objets sémantiquement significatifs décrits par [16, 19]. En ne sélectionnant que les proto-objets les plus pertinents pour le traitement, nous créons un goulot d'étranglement d'information à un niveau sémantiquement plus significatif que dans les approches précédentes.
Cette combinaison est particulièrement bien adaptée à la neuroévolution, car la sélection discrète des top-k proto-objets et le transfert de coordonnées au contrôleur créent des opérations non différentiables qui sont complexes pour les méthodes basées sur le gradient, mais naturelles pour les approches évolutives. De plus, en forçant le modèle à être explicitement sélectif quant aux parties de l'entrée visuelle qu'il traite, nous gagnons en interprétabilité directe – nous pouvons visualiser exactement quels proto-objets le modèle considère comme importants pour ses décisions, fournissant un aperçu de son processus de prise de décision qui fait souvent défaut dans les approches traditionnelles d'apprentissage profond.
Notre méthode se compose de 5 étapes principales : convolution, quantification, segmentation, attention et contrôle, décrites ci-après.
L'étape de convolution vise à décaler, redimensionner, filtrer et/ou mélanger les canaux de l'image d'origine, fournissant une représentation pré-traitée pour les étapes suivantes. En particulier, dans nos expériences, nous utilisons une seule couche convolutive avec 3 filtres 1x1. Le choix de 3 filtres est nécessaire pour la compatibilité avec la connexion résiduelle. Il est possible d'ajouter d'autres couches convolutives à condition qu'elles conservent la même taille d'image. Dans ce cas, l'ajout d'une couche finale avec 3 filtres suffit à ramener le nombre de dimensions au même nombre de canaux que dans l'image. Après cela, nous ajoutons l'image d'origine à la sortie de la convolution, formant une connexion résiduelle [9], dont la fonction deviendra claire à l'étape suivante.
La quantification vise à réduire la quantité d'informations à traiter dans les étapes suivantes. Dans nos expériences, nous effectuons une quantification uniforme simple de la sortie de convolution en utilisant 1 bit par canal (cela pourrait être davantage pour des tâches plus complexes, et pourrait même être évolué). En conséquence, nous obtenons une image contenant au maximum 8 couleurs distinctes, chacune représentant un type de segment différent. Notez qu'en plus d'être une quantification fixe simple, sa combinaison avec la couche convolutive qui la précède donne un mécanisme de segmentation et de quantification adaptatif.
Cette étape est en synergie avec les convolutions : le décalage, le redimensionnement et le mélange des canaux de l'image d'origine peuvent les placer dans différents compartiments de quantification. Mais comme il existe des sauts discontinus dans la surface d'adaptation évolutive nécessaires pour trouver une segmentation appropriée (ce qui peut prendre un certain temps à résoudre pour l'algorithme évolutif), nous utilisons la connexion résiduelle de l'étape précédente comme moyen de démarrer l'évolution à partir d'une segmentation triviale sur les couleurs d'origine de l'image. Ainsi, le but de la convolution est d'éloigner la segmentation de la segmentation triviale (si nécessaire).
La segmentation vise à créer les proto-objets, c'est-à-dire des descripteurs pour des régions de pixels sémantiquement similaires reçues des étapes précédentes. Dans ce travail, nous appliquons l'étiquetage d'image par régions connectées par couleur [7, 20]. De chaque région extraite, un ensemble d'attributs peut être obtenu, ce qui donne din caractéristiques (les régions de 1 pixel de large ou de haut sont traitées comme du bruit et ignorées).
Après des expérimentations approfondies, nous sommes arrivés à un ensemble de din = 11 caractéristiques, à savoir : la couleur du segment quantifié (R, V, B), le centre de masse (X, Y), la surface totale en pixels, la largeur de la boîte englobante, la hauteur de la boîte englobante, la surface de la boîte englobante, le ratio d'aspect et l'étendue (surface de la boîte englobante divisée par la surface de la région). Toutes ces caractéristiques peuvent être facilement et efficacement calculées à partir des régions obtenues, et aideront l'étape suivante à prendre des décisions plus éclairées. L'orientation (correlation entre les coordonnées des pixels) aurait également pu être utile, mais elle ajoutait trop de surcoût en temps d'exécution à notre modèle et a été écartée. Toutes les valeurs sont normalisées entre -1 et 1, et le ratio d'aspect est également transformé par logarithme afin que 1 et -1 correspondent à des ratios extrêmes, tandis que 0 signifie des côtés égaux :
NormAspectRatio = 2 * log(aspectRatio) / log(max(imageWidth, imageHeight)) - 1
Le module d'attention vise à modéliser les relations entre les proto-objets identifiés lors de l'étape de segmentation. Les caractéristiques de N proto-objets sont fournies à la couche d'attention de notre modèle sous la forme d'un ensemble de N tokens de dimension din, dans le jargon de l'attention [26]. La couche d'attention plonge ces tokens dans deux vecteurs Q et K de dimension dq. Notre implémentation comporte toutefois une touche supplémentaire : nous ajoutons une couche PReLU (Parametric Rectified Linear Unit) avant et après les transformations linéaires. La PReLU est une généralisation de l'activation ReLU, où la pente de la partie négative est adaptative (PReLU(x) = max(ax, x)) pour chaque couche ou neurone (ce dernier dans notre cas). Pour seulement 15 paramètres supplémentaires, cela permet à notre couche d'attention de modéliser des relations plus complexes, car il a été démontré qu'un seul neurone PReLU résout le problème du XOR [17]. Dans notre cas, cela permet la sélection de valeurs intermédiaires (comme les nuances de gris) lorsque a est négatif (rendant la fonction non monotonique), ce qui n'est pas possible avec des couches linéaires pures. Davantage de couches d'auto-attention traditionnelle auraient pu être utilisées, mais nous avons opté pour la solution PReLU plus simple dans ce travail afin de maintenir le nombre de paramètres et le temps d'exécution à un niveau bas.
En poursuivant avec la procédure habituelle d'auto-attention, une matrice d'attention est calculée par l'Éq. 1, puis un vecteur d'importance est obtenu par sommation le long des lignes. Au lieu du mélange habituel de tokens avec une matrice V effectué dans l'auto-attention traditionnelle, nous réalisons simplement une sélection des top-k proto-objets sur la somme par ligne résultante.
Nous faisons remarquer que le calcul de l'attention présente une complexité temporelle asymptotique quadratique en fonction du nombre de tokens N. Réduire drastiquement le nombre de tokens en utilisant des proto-objets plutôt que des patchs rend notre module d'attention beaucoup plus rapide.
Dans nos expériences, nous sommes allés jusqu'à l'extrême en fixant k = 1 (les coordonnées d'un seul proto-objet sont transmises au contrôleur, décrit ci-après). Cela est possible parce que notre module d'attention est plus expressif que le module d'origine et que les proto-objets contiennent des informations de plus haut niveau, faisant qu'un seul proto-objet bien sélectionné suffit au contrôleur pour prendre ses décisions (une meilleure sélection signifie moins de travail pour le contrôleur). C'est aussi plus plausible biologiquement, car nous nous concentrons sur un seul élément visuel à la fois [4].
Enfin, l'étape de contrôle sélectionne une action à exécuter dans l'environnement. Dans notre implémentation, une fonction de transfert f(n) est appliquée à chaque vecteur de caractéristiques des proto-objets sélectionnés et les résultats sont concaténés et transmis en entrée à un contrôleur LSTM [10], chargé d'apprendre les associations temporelles et de produire la sortie de contrôle.
Dans notre cas, f(n) renvoie simplement les coordonnées du centre de masse du proto-objet. Des fonctions de transfert plus élaborées pourraient être utilisées pour fournir au contrôleur davantage de propriétés sur chaque proto-objet sélectionné, mais le centre de masse s'est avéré suffisant pour nos problèmes. Cela est possible car l'évolution conjointe des modules d'attention et de contrôle donne lieu à un « accord » implicite : en sélectionnant toujours le même type de proto-objet (herbe, piste, etc.), le contrôleur n'a pas besoin de deviner de quoi il s'agit. Si l'attention se focalisait sur des types différents de proto-objets à chaque fois, il ne serait pas possible de les distinguer uniquement par leurs coordonnées, à moins qu'ils n'apparaissent systématiquement sur des régions spécifiques de l'écran, devenant distinguables par leur position (comme l'affichage tête haute toujours situé en bas de l'écran). Ils pourraient également être distingués par le contrôleur si le module d'attention plaçait constamment les mêmes types de proto-objets aux mêmes rangs de classement (par exemple, l'herbe en premier, la piste en second), mais il s'agit d'une complexité supplémentaire à apprendre.
Un résumé des différences entre nos choix d'hyperparamètres et les travaux antérieurs basés sur des patchs d'image [22] est présenté dans le Tableau 1, ainsi que le nombre de paramètres entrainables qui en résulte dans chaque modèle, montrant que notre modèle est nettement (62 %) plus petit au total, en raison de sa couche d'attention compacte et de son goulot d'étranglement réduit avec k = 1. Le processus complet est illustré sur la Fig. 3. Bien que ce modèle soit non différentiable, il peut être entraîné au moyen de méthodes d'optimisation sans dérivées telles que CMA-ES [8].
| Hyperparamètres du modèle | Patchs [22] | Proto-objets (Notre méthode) |
|---|---|---|
| Taille d'entrée de l'attention (din) | 147 | 11 |
| Taille du plongement (d) | 4 | 2 |
| K | 10 | 1 |
| Dimension de f(n) | 2 | 2 |
| Taille d'entrée de la LSTM | 20 | 2 |
| Nombre de neurones LSTM | 16 | 16 |
| Nombre de paramètres entrainables | ||
| Convolution | 0 | 12 |
| Attention | 1184 | 63 |
| LSTM | 2432 | 1280 |
| Sortie | 51 | 51 |
| Total | 3667 | 1406 |
Afin de comparer notre approche à celle basée sur les patchs de [22], nous la testons sur les mêmes environnements que [22] : CarRacing et Doom-TakeCover [3]. Pour les deux, nous exécutons CMA-ES avec une population de 128 solutions pendant 1000 générations et évaluons les modèles sur 8 graines (seeds) à chaque génération. Les graines sont basées sur les numéros de génération et de répétition. Nous testons les modèles toutes les 100 générations sur 400 nouvelles graines et en extrayons les moyennes et variances pour produire des intervalles de confiance à 95 %. La significativité statistique est obtenue à partir de tests U de Mann-Whitney bilatéraux [13]. Notez que les expériences originales de [22] ont fonctionné pendant 2000 générations avec 16 graines chacune et une population de 256 solutions, elles ne sont donc pas directement comparables. Nous avons divisé par deux chacun de ces hyperparamètres en raison de limitations matérielles, et exécuté à nouveau les expériences originales dans cette nouvelle configuration pour une comparaison équitable.
Nos expériences ont été exécutées sur la configuration matérielle suivante : processeur AMD Ryzen 5950X, 128 Go de RAM DDR4 3200 et GPU Nvidia RTX 3090. L'entraînement a été parallélisé sur 32 threads, limitant chaque évaluation à un seul thread. La solution basée sur les patchs a tiré parti du GPU, mais notre méthode a été optimisée pour le CPU, car l'analyse et l'étiquetage des composantes connexes multi-étiquettes ne s'adaptaient pas bien au GPU.
Il s'agit d'un environnement de course en vue de dessus avec des circuits générés aléatoirement (comme le montrent les Fig. 1 et 2). Il est suffisamment simple visuellement pour pouvoir sauter les étapes de convolution et de quantification de notre approche, mais nous les exécutons tout de même afin de vérifier la généralité de la méthode. La récompense est de -0,1 à chaque trame, -100 en cas de sortie de piste importante (ce qui provoque également la fin de la partie), et +1000/N pour chaque tuile de piste visitée, où N est le nombre total de tuiles visitées sur le circuit (les tuiles sont visibles sous forme de nuances de gris légèrement distinctes), et le problème est considéré comme résolu au-dessus de 900 points. Cela incite le contrôleur à être rapide et précis. Il y a 3 actions continues : la direction (-1 pour braquer à gauche toute, +1 pour braquer à droite toute), l'accélérateur et le frein. Une version V2 de cet environnement est disponible ¹, mais elle utilise Pygame ², qui est lent. Nous utilisons la V0, qui est deux fois plus rapide en utilisant OpenGL, et nous implémentons nos propres optimisations qui apportent une accélération supplémentaire de 2x. Il n'y a pas de différences significatives entre les deux versions, si ce n'est la compatibilité avec la nouvelle API [24] et une meilleure compatibilité matérielle et logicielle.
Notre méthode s'est avérée plus efficace en termes d'échantillonnage, avec un score moyen supérieur tout au long de l'entraînement, et a obtenu un score significativement meilleur (p = 1.1e-22) de 910,39 après l'entraînement (Fig. 4). De plus, comme le montre le Tableau 2, elle y me est parvenue en n'utilisant que 2 % du nombre de tokens par trame par rapport à la solution basée sur les patchs, et avec 62 % de paramètres ajustables en moins. Et bien qu'exécutée sur CPU, elle s'est entraînée 2,7 fois plus vite que la méthode basée sur les patchs, qui s'exécutait sur GPU.
¹https://gymnasium.farama.org/environments/box2d/car_racing/
²https://www.pygame.org
Un aspect intéressant de cette expérience est d'observer l'évolution de la segmentation et de l'attention, comme le montre la Fig. 5. La solution commence par la quantification triviale sur les couleurs d'origine de la tâche, mais comme la piste est sombre, elle se retrouve fusionnée avec l'affichage tête haute (HUD) noir situé au bas de l'écran. Néanmoins, l'agent sait déjà comment se concentrer sur la plus petite zone d'herbe, car celle-ci pointe généralement dans la direction où la voiture doit tourner. À 300 générations, il apprend à séparer la piste du HUD, tandis qu'à 800 générations, il sépare la voiture et les marqueurs rouges de virage de la piste. Bien que la voiture soit inutile (elle se trouve toujours au même endroit et a même été fusionnée avec la piste dans d'autres expériences), les marqueurs rouges peuvent renforcer la direction de virage correcte en « votant » (en tant que requêtes) sur leur région d'herbe adjacente. À 900 générations, il apprend à segmenter les tuiles de la piste, mais abandonne cela dans la solution finale. La solution finale décomposée dans ses étapes de traitement est visible sur la Fig. 6.
Cette tâche est basée sur le jeu Doom, qui est visuellement plus complexe et présente beaucoup plus de couleurs que la tâche précédente (voir Fig. 8, en haut à gauche), rendant les étapes de convolution et de quantification strictement nécessaires pour éviter un nombre immense de segments. Elle se déroule dans une pièce rectangulaire. L'agent apparaît le long d'un mur, et des monstres apparaissent de manière constante et aléatoire le long du mur opposé. Ils tirent sans cesse des boules de feu sur l'agent, qui doit les esquiver pour survivre. L'agent gagne 1 point de récompense pour chaque tic d'horloge où il reste en vie et dispose de 3 actions discrètes : se déplacer vers la gauche, vers la droite ou rester immobile.
Les courbes d'apprentissage sont présentées sur la Fig. 7. Nous observons que notre approche a présenté une efficacité d'échantillonnage légèrement inférieure, nécessitant davantage de générations pour égaler la performance du modèle basé sur les patchs (p = 0,414). Nous avons également expérimenté avec dq = 4, k = 10 (comme dans la configuration basée sur les patchs) et des convolutions 3x3 (2671 paramètres). Cette solution a offert une meilleure efficacité d'échantillonnage et a atteint des performances significativement plus élevées (p = 2,8e-5) avec un score de 1193 en 55 h d'entraînement. Nous émettons l'hypothèse que la baisse de performance était due à k = 1, ce qui signifie que la LSTM doit fournir un effort beaucoup plus important pour suivre plusieurs proto-objets d'intérêt à l'écran, voire en manquer certains totalement, tout en apprenant à écarter les proto-objets de mur qui s'activent lorsqu'aucun projectile n'est présent à l'écran.
| Patchs [22] | Proto-objets (Notre méthode) | |
|---|---|---|
| Nombre de tokens et IC à 95 % de la meilleure solution (n=800) | ||
| Car Racing | 529 | 12,6 ± 0,26 |
| Doom Take Cover | 529 | 10,7 ± 0,73 |
| Meilleur score et IC à 95 % après 1000 itérations (n=400) | ||
| Car Racing | 888,69 ± 5,84 | 910,39 ± 1,28 |
| Doom Take Cover | 959,27 ± 58,85 | 930,68 ± 57,19 (k = 1) 1192,82 ± 75,26 (k = 10) |
| Temps d'entraînement | ||
| Car Racing | 97 h (GPU) | 36,5 h (CPU) |
| Doom Take Cover | 85,5 h (GPU) | 33 h (k = 1, CPU) 55 h (k = 10, CPU) |
Le Tableau 2 montre également que le nombre de proto-objets extraits était faible pour cet environnement aussi, démontrant que nos étapes de prétraitement sont efficaces pour réduire et uniformiser la complexité visuelle de différents domaines, tout en conservant les informations nécessaires à la prise de décision. Le temps d'entraînement a été 2,6 fois plus rapide pour k = 1 et 1,6 fois plus rapide pour k = 10.
Les principales étapes de traitement dans l'environnement Doom sont illustrées sur la Fig. 7 : redimensionnement de l'image, convolution 1x1, quantification des couleurs et attention (k = 1). De manière remarquable, l'agent évolué adopte une stratégie étonnamment minimaliste, ignorant des éléments en apparence critiques tels que les boules de feu arrivant sur lui. Au lieu de cela, il se concentre exclusivement sur le monstre situé le plus à droite de l'écran tout en exécutant un motif de mouvement rythmique de gauche à droite. Cette stratégie égale les performances du modèle basé sur les patchs, bien que ce dernier traite à la fois les boules de feu et les murs. L'équivalence avec notre approche simple suggère que la LSTM du modèle basé sur les patchs s'appuie elle aussi principalement sur un mouvement périodique en ignorant les coordonnées des projectiles. Cette stratégie s'avère efficace car les projectiles des monstres ciblent la position actuelle de l'agent – un mouvement continu sert donc de technique d'esquive robuste, quel que soit l'emplacement spécifique des tirs entrants. Cependant, notre agent avec k = 10 semble plus réactif face aux boules de feu.
Nous avons présenté une nouvelle représentation pour les agents basés sur une attention par goulot d'étranglement dans des tâches visuelles, qui opère sur des proto-objets plutôt que sur des pixels bruts ou des patchs d'image. En travaillant avec ces objets primitifs pré-attentionnels, obtenus par des méthodes classiques de vision par ordinateur, nous avons obtenu des performances comparables ou supérieures tout en réduisant de manière spectaculaire le nombre de tokens à traiter et leur dimensionnalité, ainsi que le temps d'entraînement par rapport aux solutions précédentes. Le succès de cette approche hybride souligne l'un des principaux avantages des méthodes évolutives pour l'entraînement de tels modèles : la liberté de combiner des composants différentiables et non différentiables sans être contraint par les exigences de l'optimisation basée sur le gradient. Néanmoins, le développement d'une version entièrement différentiable de notre solution reste une perspective attrayante pour de futurs travaux, car cela pourrait améliorer considérablement l'efficacité d'échantillonnage.
Nos expériences ont révélé que les modèles attentionnels à goulot d'étranglement sont sensibles aux maxima locaux au cours de l'évolution. L'architecture à deux modules (attention et contrôle) rend difficile la découverte de nouvelles stratégies d'attention une fois qu'une approche s'est établie, car le contrôleur s'adapte spécifiquement au mécanisme d'attention actuel. Toute modification importante du module d'attention risque de perturber ce délicat équilibre. Nous émettons l'hypothèse que CMA-ES est peut-être trop « avide » (greedy) pour cette architecture, et que des alternatives comme l'évolution différentielle [21] pourraient être plus adaptées en permettant à plusieurs stratégies d'attention d'évoluer en parallèle.
Nous avons démontré qu'en améliorant la couche d'attention, transmettre les coordonnées d'un seul proto-objet au contrôleur suffit à produire des politiques efficaces. Cela fonctionne parce que la LSTM peut maintenir et mettre à jour une représentation d'état interne au fil des trames, en décidant des informations à conserver ou à jeter. Cette approche s'aligne bien avec les mouvements oculaires biologiques, où la focalisation se déplace nécessairement entre des emplacements ou des objets individuels [4]. Cependant, ce flux d'informations simplifié se fait au prix de temps d'apprentissage plus longs lorsqu'il y a plusieurs entités pertinentes à l'écran, car le module d'attention doit toutes les traiter et le contrôleur doit élaborer des stratégies complexes de gestion de la mémoire. Une solution potentielle consiste à découpler la mémoire et le contrôle, éventuellement en mettant en œuvre des mécanismes d'attention sur les coordonnées récemment traitées pour générer des plongements (embeddings) de taille fixe [18] pour le contrôleur. Cela pourrait être étendu pour inclure le stockage et la récupération adaptatifs à partir de bases de données vectorielles.
Plusieurs directions prometteuses pour des recherches futures émergent de ce travail. Des signaux de rétroaction provenant du contrôleur pourraient moduler l'attention, permettant des stratégies descendantes (top-down) actives. Cela nécessiterait d'enrichir le flux d'informations provenant du module d'attention pour aider le contrôleur à interpréter les signaux entrants. L'auto-attention multi-têtes représente une autre extension naturelle. L'approche pourrait potentiellement s'étendre à la reconnaissance complète d'objets en incorporant des couches convolutives supplémentaires et en traitant la profondeur (lorsqu'elle est disponible) ainsi que les informations de mouvement. Des mécanismes d'auto-attention pourraient permettre le regroupement autonome de régions en entités de niveau supérieur, tandis que l'attention croisée pourrait faciliter le suivi d'objets d'une trame à l'autre.
Enfin, une prochaine étape cruciale consiste à valider notre approche sur des images du monde réel et à déterminer si une complexité accrue dans les étapes de convolution et de quantification est nécessaire, ou si les approches basées sur des patchs s'avèrent plus efficaces dans de tels scénarios. Un succès dans ce domaine pourrait conduire à des systèmes robotiques et des véhicules autonomes plus efficaces, réduisant les exigences calculatoires tout en permettant une intelligence plus sophistiquée par unité de traitement.
Les auteurs tiennent à remercier la FAPERGS (Appel 10/2021 – ARD/ARC) pour son soutien financier. Cette étude a également été soutenue par l'Institut Fédéral d'Éducation, de Science et de Technologie do Rio Grande do Sul (IFRS).