En robotique, de nombreux problèmes peuvent se résoudre par un enchaînement de tâches, chaque tâche étant réalisée par un contrôleur spécifique, avec des conditions de succès déterminant le passage à la tâche suivante.
Un exemple classique concerne le déplacement d'objets, qui se résout naturellement par une séquence d'opérations de cette forme : 1) approche et saisie, puis 2) manipulation de l'objet jusqu'à une cible, et enfin 3) la dépose de l'objet. Cette décomposition permet de se concentrer indépendamment sur chacune des opérations élémentaires et de les rendre plus robustes et efficaces.
L'objectif de ce stage est de construire une telle décomposition séquentielle plutôt que de l'imposer au robot. Il s'agit donc d'identifier les tâches, d'apprendre leurs contrôleurs ainsi que les classifieurs permettant de déclencher les transitions entre les différents contrôleurs, démontrant ainsi qu'une certaine logique discrète peut être apprise à partir de l'expérience continue du robot. L'exemple étudié sera celui d'un robot mobile simple devant réaliser une séquence comportementale particulière et dans un ordre précis. L'approche proposée consiste à utiliser des algorithmes évolutionnistes pour faire émerger le comportement attendu. Ces approches permettront de générer la séquence comportementale à partir d'un seul et même contrôleur (typiquement un réseau de neurones). Des comportements de type collecte de balle dans lesquels le robot doit aller vers une balle, la ramasser puis se diriger ver un panier et la lâcher dans le panier ont ainsi pu être générés [1,2]. L'analyse des traces de cet apprentissage peut révéler l'importance d'un comportement élémentaire particulier [3]. Le stage s'appuiera sur ces expériences et sur le code disponible [4]. Les contrôleurs ainsi générés disposent d'une faible capacité de généralisation: un changement dans l'environnement peut les rendre complètement inefficaces, c'est le problème de la généralisation [5]. Il est proposé ici d'analyser les traces de ces contrôleurs pour identifier des tâches intermédiaires et, dans un second temps, apprendre des contrôleurs dédiés afin d'améliorer la capacité de généralisation. L'objectif est de créer de nouvelles représentations en lien avec la tâche que le robot doit réaliser et de permettre l'utilisation d'algorithmes d'apprentissage de plus haut niveau qui permettront une adaptation ou un ré-apprentissage plus rapide.
<em>Connaissances souhaitées</em>
Une bonne pratique du développement en C++ est un pré-requis obligatoire.
Des connaissances minimales en IA et apprentissage machine sont nécessaires de façon à utiliser efficacement les bibliothèques nécessaires aux expériences envisagées. La partie évolutionniste s'appuiera sur le framework logiciel SFERES développé à l'ISIR [6]. Les développements seront ainsi limités aux éléments spécifiques à l'approche proposée et s'appuieront, autant que possible, sur des modules disponibles sur étagère pour les aspects non spécifiques.
<em>Références</em>
<ul>
<li>[1] Doncieux, S. and Mouret, J.B. (2013). Behavioral Diversity with Multiple Behavioral Distances. Proc. of IEEE Congress on Evolutionary Computation, 2013 (CEC 2013).
<li>[2] Mouret, J.-B. and Doncieux, S. (2012). Encouraging Behavioral Diversity in Evolutionary Robotics: an Empirical Study. Evolutionary Computation. Vol 20 No 1 Pages 91-133.
<li>[3] Doncieux, S. (2014). Knowledge Extraction from Learning Traces in Continuous Domains.
AAAI 2014 fall Symposium ''Knowledge, Skill, and Behavior Transfer in Autonomous Robots''..
<li>[4] https://github.com/doncieux/collectball
<li>[5] Pinville, T. and Koos, S. and Mouret, J-B. and Doncieux, S. (2011). How to Promote Generalisation in Evolutionary Robotics: the ProGAb Approach.
GECCO'11: Proceedings of the 13th annual conference on Genetic and evolutionary computation ACM, publisher . Pages 259--266.
<li>[6] https://github.com/sferes2
</ul>
Contact: stephane.doncieux _at_ upmc.fr, nicolas.perrin _at_ upmc.fr