Neuroévolution Cybercalmar

Réseau neuronal en évolution


Les réseaux de neurones artificiels imitent les vrais systèmes nerveux biologiques. Ils contiennent des neurones et des connexions entre eux, assurant la conversion des signaux entrants en un résultat de sortie significatif. Dans le domaine de l'apprentissage automatique, ces réseaux sont souvent initialisés avec des connexions aléatoires entre les neurones, après quoi le réseau apprend jusqu'à ce qu'il commence à se comporter correctement. Cette approche est tout à fait applicable, cependant, les animaux ont de nombreux systèmes nerveux simples qui fonctionnent hors de la boîte: personne n'apprend aux poissons à nager ou aux papillons à voler, malgré le fait que leur comportement est créé par des réseaux de neurones. Leur système nerveux n'est pas le résultat d'une initialisation aléatoire et d'un entraînement ultérieur, mais de l' évolution. Après plusieurs générations, la nature a créé un modèle de cellules et de connexions qui fournit un comportement complexe et réussi.

Pour créer des réseaux de neurones qui fournissent un comportement sans apprentissage, vous pouvez utiliser la neuroévolution . Les algorithmes évolutionnaires (comme celui que j'ai utilisé pour effectuer l'évolution des plantes ) soumettent le code génétique à une évolution sur une longue période de temps. Le code génétique (le modèle de l'ADN) et l'organisme qu'il représente sont initialement très simples, mais pendant des générations, de petites mutations augmentent la complexité favorable et ajoutent des fonctions qui stimulent la propagation de ces propriétés.

Calmar numérique


Pour démontrer l'effet de la neuroévolution, je veux exposer l'évolution du calmar numérique. Les calmars ont les propriétés suivantes:


Figure 1: calmar flottant.

  • Ils peuvent avoir un nombre quelconque de tentacules de différentes longueurs.
  • Chaque main est contrôlée par un neurone de sortie, le pompant dans un sens avec un signal de sortie faible et dans l'autre avec un signal de sortie élevé.
  • Les calmars ont une tête ; la taille de la tête détermine le nombre maximum possible de neurones.
  • La masse de calmar est déterminée par la taille de la tête et le nombre de segments de tentacule.
  • Les calmars flottent dans un fluide simulé rempli de points indiquant la nourriture. En touchant ces points, le calmar les «mange» et le score du calmar est calculé comme le nombre de points mangés, divisé par sa masse.

Ces propriétés, grâce à l'évolution, devraient créer des calmars qui nagent efficacement dans l'environnement, mangeant autant de nourriture que possible. Puisqu'ils ont aussi de la masse, les corps de calmar doivent être efficaces: les corps lourds et les grands tentacules ont besoin de plus de nourriture pour avoir une raison de leur création évolutive.

Étant donné que le calmar peut avoir des propriétés variables (par exemple, la taille de la tête et la configuration des tentacules), ces propriétés évoluent également. L' ADN de calmar contient non seulement un «dessin» de son cerveau, mais aussi un plan du corps.

La figure 1 montre un calmar simulé à deux mains. Le mouvement oscillant des mains est assuré par l'ajout d'une force de ressort aux segments de bras; si les muscles cessent de bouger les bras, les segments s'aligneront progressivement jusqu'à ce que les bras se transforment en lignes droites. Pour calculer l'amplitude de l'accélération, tous les mouvements latéraux sont additionnés. Tous les mouvements latéraux montrés sur la figure s'ajoutent à ce nombre. Balançant les tentacules derrière le corps, le calmar fournit un mouvement vers l'avant.

Réseaux de neurones à pointes


Choisir le bon réseau de neurones pour notre projet n'est pas une tâche facile. Il existe différents types de réseaux de neurones; dans cet article contient un aperçu facile de certains d'entre eux. La tâche de la gestion des calmars dans certains aspects est différente du travail des réseaux bien connus:

  • «-». , . - , .
  • . «-», .
  • , . , .

Ces exigences sont satisfaites par un réseau de neurones à pointes (impulsions) . Ces réseaux fonctionnent en temps réel, ils ont été conçus pour simuler plus précisément la faune. Comme les vrais neurones, les cellules d'un réseau de neurones à pointes accumulent du potentiel, collectées progressivement à partir de tous les signaux d'entrée et, en l'absence de signaux d'entrée, reviennent progressivement à leur état «neutre». Les réseaux de neurones à pointes ne sont pas tenus d'adhérer à un schéma de câblage strict. Ils se composent d'une couche de neurones d'entrée, d'une couche de neurones de sortie (dans notre cas, contrôlant les tentacules) et de plusieurs neurones entre eux, appelés une couche cachée. Les neurones de la couche cachée peuvent être connectés aux neurones d'entrée et de sortie, mais les neurones peuvent également être déconnectés. Dans notre tâche, les neurones de couche cachés peuvent être connectés les uns aux autres.


Figure 2: fonction logistique.

Tous les neurones du système nerveux ont une fonction d'activation . Cette fonction détermine la valeur de sortie d'un neurone en fonction de la somme de ses signaux d'entrée. Les neurones sont connectés par des axones reliant les neurones source et cible. L'axone ajoute à l'activation du neurone cible la valeur de sortie du neurone d'origine multipliée par le poids de l'axone (qui peut être un nombre positif ou négatif). Ensuite, la fonction d'activation détermine la valeur de sortie du neurone en fonction de son activation. Pour cette simulation, nous avons sélectionné la fonction logistique comme fonction d'activation :

11+ea


Dans cette équation aEst l'activation d'un neurone. La figure 2 montre un graphique de la fonction. Àa=0 la valeur de sortie est 0.5; dans notre simulation, cela est utile car le réseau doit pouvoir fournir un comportement même en l'absence de valeur d'entrée. Si la valeur de sortie par défaut n'est pas égale à zéro, certains signaux circuleront constamment dans le système. Signification théoriquea peut être très petit ou très grand, mais les asymptotes de la fonction logistique garantissent que la valeur de sortie sera toujours dans la plage [0,1]. Pour cette raison, les valeurs de sortie système extrêmes ne sont pas propagées.

Simulation d'évolution


L'environnement de simulation comprend les composants suivants:

  • Un certain nombre de calmars avec différentes structures corporelles et des réseaux de neurones à pointes pour contrôler leurs membres.
  • Nourriture dispersée dans l'environnement.

Pour commencer à simuler l'évolution, une durée de vie fixe de chaque génération est simulée dans le système. Dans mes simulations, j'ai choisi des segments de 20 à 30 secondes. Après ce temps, le calmar le plus productif est sélectionné, qui est dupliqué plusieurs fois pour créer une nouvelle génération de calmar. Avant d'effectuer la prochaine simulation, tous les calmars subissent une légère mutation. Les propriétés suivantes peuvent muter:

  • Le rayon du corps, et avec lui le nombre maximal de neurones autorisés dans le cerveau de calmar.
  • Nombre et emplacement des tentacules.
  • La longueur des tentacules.
  • Le nombre de neurones dans le cerveau.
  • Connexions axonales entre les neurones (les connexions peuvent apparaître ou disparaître, le poids des liaisons peut également changer).

Pour le moment, le cerveau de calmar ne contient pas de neurones d'entrée. Le nombre de neurones de sortie est toujours égal au nombre de tentacules, et un neurone de sortie est affecté à chaque tentacule. Si le tentacule disparaît lors de la mutation, le neurone de sortie qui lui correspond est également supprimé. Lorsqu'un nouveau tentacule apparaît pendant la mutation, il reçoit un nouveau neurone de sortie avec des connexions aléatoires.

Le code source de la simulation est téléchargé sur GitHub et la simulation se fait dans le navigateur .

résultats



Figure 3: Le système nerveux crée des impulsions sans fin.

Lors d'une simulation, les calmars en mouvement sont généralement obtenus sur plusieurs centaines de générations. Lorsqu'une stratégie de nage fonctionnelle évolue, elle évolue généralement avec le temps vers la version la plus optimale.

Le système nerveux peut être visualisé. La figure 3 montre un système nerveux de calmar simple à deux bras. Le réseau contient cinq neurones, indiqués par des cercles orange, et deux neurones de sortie, indiqués par des cercles bleus. Lorsque le signal de sortie d'un neurone augmente, les neurones deviennent plus brillants. Lorsque le signal de sortie diminue, les cercles deviennent transparents. Les axones sont visualisés par des lignes pointillées reliant les neurones correspondants. Lorsque l'axone transmet un signal (et affecte le neurone cible), la ligne en pointillés devient plus visible et la ligne en pointillés se déplace dans la direction du signal.


Figure 4: Calmars flottants évolués. Notez que tous les agents ne sont pas particulièrement efficaces; certains contiennent des mutations inutiles.

La figure 4 montre plusieurs calmars flottant dans un environnement de simulation. Ces calmars utilisent deux tentacules se balançant simultanément. Parmi les agents, la variabilité est perceptible:

  • Il existe différentes longueurs de tentacules, mais leurs schémas de mouvement sont approximativement les mêmes.
  • Les deux agents en bas de l'image ont évolutivement reçu des tentacules supplémentaires, qui ne sont pas encore particulièrement utiles. Ils augmentent la masse de calmars, réduisant ainsi son score.

Conclusion


La simulation dans son état actuel démontre l'efficacité de la neuroévolution et constitue la base du développement futur du système:

  • . , .
  • . , .
  • , , .
  • . . , . , .

Ces ajouts ne nécessiteront aucun changement dans le mécanisme de base de la neuroévolution, ils permettront simplement l'apparition de stratégies plus diverses. L'universalité et l'adaptabilité du cadre de neuroévolution montré en font un outil intéressant pour de nombreux autres domaines, en particulier les études de la vie artificielle .

All Articles