Techniques de l’intelligence artificielle (MIF24) 6 mars Olivier Georgeon 13 mars INTELLIGENCE ARTIFICIELLE 20 mars DEVELOPPEMENTALE 27 mars 3 avril Alain Mille 10 avril RAISONNEMENT A PARTIR DE CAS Rendu projet 17 avril 24 avril Vacances 1 mai 8 mai 15 mai Samir Akkouche 22 mai 29 mai 5 juin SYSTEMES MULTI AGENTS 12 juin 19 juin Exam 26 juin Responsable de l’UE: Alain MILLE Evaluation: - Projets: 70% - Exam: 30%
Initiation à l’intelligence artificielle développementale 13 mars 2013 olivier.georgeon@liris.cnrs.fr http://www.oliviergeorgeon.com/ Temps http://e-ernest.blogspot.fr/
Plan du jour Démonstration Explications Travaux Dirigés Comment augmenter la complexité? Explications Formalisation du problème Implémentation d’une solution possible Travaux Dirigés
Exemple Cogner: Toucher: Avancer ou cogner (5) (-10) Tourner (-3) Toucher droite/ devant / gauche (-1) http://e-ernest.blogspot.fr/
Environnement plus complexe
Robot e-puck http://e-ernest.blogspot.fr/
Augmenter la complexité de l’agent Principe de ecological balance Pfeifer (1996). Building fungus eaters: Design principles of autonomous agents Principle de sensorimotor coordination Classification, perception, […] and memory should be viewed as sensorimotor coordination rather that as individual modules Principe développemental. Affinage progressif des perceptions et actions Développement céphalocaudal? Balanced Unbalance Balanced http://e-ernest.blogspot.fr/
Système visuel rudimentaire http://e-ernest.blogspot.fr/
Interactions Inchangé (0) Avancer Apparition (10) Tourner à gauche Rapprochement (10) Disparition (-10) Tourner à droite 3 x 4 x 4 = 48 interactions primitives Gauche Droite Temps
Comportement « diagonal » http://e-ernest.blogspot.fr/
Comportement tengentiel http://e-ernest.blogspot.fr/
Problème spatial Problème de la persistance des objets: Apprendre qu’il y a des objets « cibles » et des objets « murs » et que la présence d’un objet mur peut expliquer qu’on ne voit plus l’objet cible http://e-ernest.blogspot.fr/
« Decision Process » Un agent est un programme qui interagit avec un environnement au cours du temps. Agent outputt Inputt Environment Concevoir les inputs comme une « perception » et les outputs comme une « action » est déjà un biais de modélisation ! - exemple: toucher est à la fois une action et une perception. http://e-ernest.blogspot.fr/
Problème général Un ensemble « d’outputs » possibles A : Un ensemble « d’inputs » possible O: True / False Un ensemble “d’interactions” possibles I = A x O (valués) : (-3) (-1) (-1) (-1) (5) (-3) (-1) (-1) (-1) (-10) (-3) (-3) Il y a des régularités séquentielles (i11, i12 … i1n) (i21, i22 … i2m) http://e-ernest.blogspot.fr/
Régularités séquentielles hiérarchiques Après : , résulte plus probablement en que en Après : , la séquence peut probablement être réalisée Après la séquence : , la séquence peut probablement être réalisée Etc… http://e-ernest.blogspot.fr/
Différentes échelles de temps Auto-programmation Agent output input Environnement http://e-ernest.blogspot.fr/
Modèle sensorimoteur Considérer la perception comme un « construit cognitif » plutôt que comme un input. Agent Perception output input Interaction primitive Environment Pfeifer & Scheier (1994). From perception to action: The right direction? Dennett (2009). Darwin’s ‘‘strange inversion of reasoning”. Piaget (1937) La construction du réel chez l’enfant. http://e-ernest.blogspot.fr/
Le modèle d’auto-programmation Trajectoire développementale Niveau interaction active apprend interaction interaction apprend Active active interaction interaction interaction interaction interaction interaction Temps http://e-ernest.blogspot.fr/
Formalisation Un ensemble I des interactions primitives possibles (valuées) : (-3) (-1) (-1) (-1) (5) (-3) (-1) (-1) (-1) (-10) (-3) (-3) Au temps t L’agent choisit une interaction intentionnelle it L’environnement renvoie une interaction effectuée et Si et=it alors it est correctement effectuée Agent r(et) ℝ it I et I Environnement http://e-ernest.blogspot.fr/
Exemple de « la petite boucle » Un ensemble d’interactions possibles (avec des valeurs): i1 (5) i3 (-3) i5 (-1) i7 (-1) i9 (-1) i2 (-10) i4 (-3) i6 (-1) i8 (-1) i10 (-1) Les interactions sont organisées en ensembles « d’intéractions alternatives ». alt1 = {i1, i2} alt2 = {i3} alt3 = {i4} alt4 = {i5, i6} alt5 = {i7, i8} alt6 = {i9, i10} - Après i7 , it alt1 résulte plus probablement en i1 qu’en i2 . - Après i8 , la séquence i9, i3, i1 c peut souvent être effectuée. - Après i9, i3, i1, i8 , i4, i7, i1 peut souvent être effectuée.
Agent auto-programmant Soit Jt l’ensemble des Interactions sérielles connues par l’agent au temps t Interaction sérielle : is = i1, … ik, avec i1, … ik I Valeur motivationnelle r(is) = r(i1) +, … + r(ik) Effectuer une interaction sérielle: Effectuer successivement ses intéractions primitives Si toutes les interactions primitives effectuée correctement: et = it Jt Si la jeme intéraction primitive incorrecte: Interaction sérielle interrompue au pas j : et = i1, … ij-1, ej Jt Une interaction sérielle fonctionne comme un « programme senrorimoteur » appris
Agent auto-programmant Mécanisme décisionnel au temps t ist Jt est Jt Agent r(et) ℝ it I et I Environnement « connu » au temps t Environnement http://e-ernest.blogspot.fr/
Exemple de trace
Parti-pris de modélisation Problème « réel » Problème formalisé Solutions implémentées Agent r(st) ℝ ot O Environnement at A Algorithme 1 Algorithme 2 … Modèle perception-cognition-action Agent r(et) ℝ et I Environnement it I Algorithme 3 Algorithme 4 … Modèle sensorimoteur Etc.
Exercice Deux interactions possibles I = {i1,i2} Environnements Env1: et = it Env2: Si it=i1 alors et=i2, si it=i2 alors et = i1 Env3: se comporte alternativement comme env1 puis comme env2 Systèmes motivationnels : Mot1: r(i1) = 1, r(i2) = -1 Mot2: r(i1) = -1, r(i2) = 1 Implémenter un agent qui apprenne à effectuer les interactions positives dans tout environnement {env1,env2,env3}.
Implémentation Main.java Agent.java Environnement.java Public static void main() Agent agent = new Agent(); Environnement env = new Environnement(); Interaction i1 = new Interaction(1); Interaction i2 = new Interaction(-1); agent.addInteraction(i1); agent.addInteraction(i2); env.addInteraction(i1);env.addInteraction(i2); While() Interaction = agent.step(prev_interaction); prev_interaction = env.step(interaction); System.out.println(interaction); Agent.java Agent0: choisit toujours l’interaction qui a la plus forte valeur. Environnement.java Interaction.java