/ Accueil
/ Simuler l'apprentissage
| Ecrire
L'animat est notre modèle de créature. C'est avant tout un objet quelconque plongé dans son univers. Celui ci est, du point de vu de l'animat, son environnement. Et dans un premier temps, pour notre simulation simpliste, l'environnement direct de la créature est exactement l'univers dans lequel elle sera plongée.
Afin de pouvoir acquérir de l'information sur son environnement, notre animat est sensible. Il est doté d'organes sensoriels que nous appellerons vulgairement, dans notre cadre technologique, des capteurs. De même il dispose de membres, d'organes moteurs, c'est à dire d'actionneurs pour se mouvoir et agir sur l'environnement.
Enfin, il doit également disposer d'un organe cognitif, d'un moteur comportemental pour construire son propre modèle d'univers et par là pouvoir, on l'espère, apprendre à vivre - c'est un terme sans doute un peu fort - dans son environnement : à chaque instant, selon les circonstances, utiliser correctement ses actionneurs, choisir le bon comportement qui lui permet de survivre.
L'animat n'est donc qu'une collection de capteurs et d'actionneurs, liés par un système cognitif. Le but de ce système est d'observer l'univers pour produire des actions.
L'animat n'a pas de connaissances innées de son environnement. Il ne sait rien sur son univers et la physique qui le régit. Il ne sait rien sur lui même si ce n'est un potentiel d'observation et d'action : si évidemment il reçoit de l'information de ses capteurs et peut envoyer des commandes quelconques à ses actionneurs mais il ignore tout de la signification des signaux reçus par l'intermédiaire de ses sens ainsi que des effets produits par ses membres. Il doit acquérir et organiser seul l'information pour construire son savoir. La seule chose dont il doit disposer est un système de valeur pour lui indiquer si ses tentatives sont bénéfiques ou non.
L'éducation de l'animat s'apparente au dressage, nous allons lui imposer son sens des valeurs par l'attribution ou non d'une récompense après chacune de ses actions. S'il n'a pas de comportement préprogrammé, il faut toutefois un but minimal pour animer la mécanique. Ce but sera simplement tenter d'obtenir le plus de récompenses possible. Le rôle de l'apprentissage se limite alors à trouver, en fonction des circonstances, une action qui sera récompensée. Tout le problème est donc d'attribuer correctement les récompenses, c'est à dire si et seulement si le système a produit ce qu'on attend de lui.
L'acquisition d'information et la construction du savoir passe par l'analyse des données fournies par les capteurs. Chaque capteur est un organe élémentaire qui effectue une mesure exprimable par un nombre, et par commodité informatique, sous forme binaire. A chaque instant, la perception de la situation courante s'exprime comme une longue chaîne binaire, réunion de la mesure de tous les capteurs.
Une action est un ensemble d'événements moteurs. Celle-ci n'est possible que si une commande est envoyée aux actionneurs. Une commande à un actionneur peut, et sera dans notre simulation réduite à un nombre, et comme pour la situation, exprimée en binaire. Une chaîne de grande longueur peut ainsi exprimer une commande à tous les actionneurs, chaque portion correspondant à un actionneur particulier. Sa longueur est parfaitement proportionnelle aux nombre d'actionneurs.
Une règle exprime l'association entre une ou plusieurs situations et une action. Cette association est qualifié par une force. Une règle est une chaîne en deux partie et une valeur :
Pourquoi parler de classeur pour un algorithme qui doit produire un comportement ? Simplement parce que une décision s'apparente à un classement. Lorsqu'on réalise une classification d'objets, on tente de les regrouper selon des caractéristiques diverses et varier. L'animat va lui réaliser une classification de situations. Les situations sont les objets à classer, les actions sont les catégorie de classement. Tout algorithme de classification peut donc en principe être détourné de son but initial pour piloter un robot ou un automate. Il faut pour cela exprimer les situations dans un espace préhensible par l'algorithme.
L'animation de la base de connaissances et la prise de décision sont confiées à un algorithme génétique. Ce type d'algorithmes[JHH] simule les processus dits de sélection naturelle pour améliorer une population d'individus. Choisir les "bons" pour en créer de meilleurs. Dans notre cas la population est la base de connaissances et les individus sont les règles.
Un algorithme génétique repose sur deux éléments, un code génétique et une fonction d'évaluation :
La sélection des individus a pour but d'éliminer les plus mauvais et recombiner les survivants par croisement puis mutation pour en créer de nouveaux qui seront à leur tour évalués. Tout repose donc sur la qualité de la fonction d'évaluation et les possibilités de recombinaisons. L'algorithme génétique est efficace si :
Les règles sont assimilées à des individus, et par conséquent, la base de connaissance, l'ensemble des règles, est assimilable à une population. Cette population va subir une pression sélective qui va, on l'espère, augmenter la qualité moyenne des individus qui la composent. Ceci imposes les individus soient mortels, autrement dit les règles sont périssables : il faut continuellement renouveler la population, traquer les individus inadaptés pour les remplacer par de nouveaux, issus de règles plus fortes.
Comme pour une population réelle, des individus naissent et meurent, les effectifs varient. Il faudra donc porter son attention au contrôle de la taille de la population. Si trop d'individus meurent, l'espèce s'éteint, la base de connaissance se vide et l'animat perd son savoir. Si le taux de natalité est trop important, la population croît exponentiellement. La base de connaissances devient vite ingérable et il est alors difficile de reconnaître les bons individus et la mémoire de la machine sera vite saturée (n'oublions pas que nous avons quand-même quelques contraintes matérielles).
Une première méthode simpliste est de tout simplement empêcher toute variation de la taille de la population. Elle est fixée dès le départ, toute naissance entraîne une mort et inversement. Tout le problème est alors de choisir une dimension adaptée : une population trop petite ne permet pas une exploration efficace, la probabilité d'apparition d'une bonne règle pour chaque situation est trop faible pour espérer en trouver dans un délai raisonnable. Par contre une population trop grande peut ne pas se stabiliser vers un ensemble de règles intéressant et sa gestion consomme inutilement des ressources. Toutefois ce système impose une entorse à l'un de nos postulat qui établit que l'animat n'a pas de connaissance innées. Comme la population a une taille fixe, celle ci est établie dès le départ. Le jeu de règle nécessaire est simplement créé aléatoirement. L'animat a des connaissances innées, mais il s'agit de n'importe quoi !
mis à jour le : 15/04/2006 - 21:58