Apprentissage supervisé avec poppy ergo jr


#1

https://www.youtube.com/watch?v=BtSrVxwUiz0

Après 10000 lancers simulés sur VREP:

m4=0 ;-10 <m1<10 ;

m2 , m3 et m5 varient entre -90 et 90.Les tirages sont effectués selon une loi uniforme.

m6 a été retiré.
motors-300x180

répartition des tirages
jrdonnees

Répartition des succès (4%)
jrsucces
méthode (KNN) des k plus proches voisins appliquée aux résultats obtenus.

Tracé du pourcentage d’erreur sur la prédiction en fonction de k.
knnk

On refait un grand nombre de tirages et on effectue les lancers pour les prédictions positives.

On obtient un taux de réussite de 65% !

digne des meilleurs joueurs de NBA

https://www.youtube.com/watch?v=oCjKNLrYd_Y

Ce travail est réalisé en amont pour préparer des séquences qui seront réalisées avec des élèves de Terminale ISN.

Une simulation identique est réalisée à l’aide d’un poppy ergo modifié sur VREP

et un test sur poppy ergo réel modifié de la même manière.Les moteurs de poppy ergo sont plus robustes que ceux de poppy ergo jr pour de nombreux essais.

https://www.youtube.com/watch?v=W0h6Tp5aHPg

https://www.youtube.com/watch?v=uEo-nYLZPGM

Extrait du nouveau programme d’ISN

« Apprentissage automatique et intelligence artificielle

La quantité de données disponibles et surtout l’augmentation des capacités de traitement de ces données massives (big data), ont permis à l’apprentissage automatique de produire de très bons résultats dans différents domaines, notamment en utilisant des réseaux de neurones artificiels (apprentissage profond). Tous ces progrès modifient nos sociétés et doivent donc amener le citoyen à s’interroger sur leurs conséquences du point de vue éthique, social, politique et juridique. »


#2

Intéressante ton idée, si tu écrit une petite activité cela m’intéresse
Christophe


#3

@youcef_bouchemoua1 Génial ! A partir de là tu pourrais les faire travailler (en simulation ou sur le vrai robot) sur un algorithme d’optimisation qui essaie de trouver des solutions qui sont les plus robustes possibles.
Par exemple, on pourrait utiliser le pourcentage de succès sur 10/20/30 essais pour évaluer la qualité d’un jeu de paramètres. A partir des quelques exemples prometteurs trouvés par exploration aléatoire, tu pourrais faire une population de jeux de paramètres. Pour chaque jeu de paramètres, tu essaies une variante aléatoire (ajout de bruit sur les paramètres), et évalue leur qualité. Tu gardes la moitié de la population qui ont les meilleurs mesures de qualité. Et tu recommences autant de fois que possible. Et tu as un algorithme génétique :slight_smile:

Ensuite, tu peux aussi leur faire essayer un algorithme d’exploration plus sophistiqué que l’exploration aléatoire pour la première phase où il s’agit de trouver des bons candidats de solutions. Par exemple, un des algorithmes de la famille des algorithmes de “curiosité artificielle” :slight_smile:

Un algorithme simple s’appelle le “random goal exploration”, et consiste à chaque essai à dire au robot

  1. génère un but aléatoire autour de toi (un but = e.g. un point du sol ou on vise que la balle rebondisse en premier)
  2. regarde dans ta base d’essais précédents les paramètres qui t’ont amené le plus près de ce but
  3. essaie les en leur ajoutant des petites modifications aléatoires
  4. regarde ou ces nouveaux paramètres envoient la balle, et mettre l’expérience en mémoire
  5. recommencer :slight_smile:

Pour bien faire, cette boucle de goal exploration doit être précédée de quelques dizaines d’essais complètement aléatoires comme tu le fais pour le moment, mais en se souvenant de l’endroit où la balle à atterrit.

Si vous faites cela, tu pourras leur dire qu’ils ont implémenté un algorithme qui fait en fait partie des algorithmes les plus puissants et robuste actuellement en apprentissage automatique pour faire apprendre des savoir-faire à un robot (même s’il est très simple!).


#4

Merci pour toutes ces pistes qui vont me permettre d’explorer ce domaine passionnant que je découvre grâce à l’équipe FLOWERS.
Elles seront très utiles dans un premier temps à un groupe d’élèves de première S qui a choisi de travailler sur l’apprentissage du basket par poppy ergo.Leur sujet de TPE sur l’intelligence artificielle sera illustré par une ou plusieurs techniques d’apprentissage.

Une activité sera aussi proposée en ISN et une autre en MPS en fin d’année dans 4 groupes différents.

5 robots ergo-jr et 5 paniers de basket sont montés. J’attend le test d’impression 3D de la cuillère conforme à ma scène VREP pour compléter le montage.


#5

Premiers résultats de l’algorithme génétique appliqué au basket
On appelle individu une liste constituée de 4 données : [angle m1 ,angle m2,angle m3, angle m5]
On effectue un lancer avec ces 4 données et on regarde si le panier est mis ou pas. La population initiale est constituée des 342 succès obtenus au cours des 10000 essais aléatoires précedents.
L’évaluation des individus
Les 342 individus sont testés 10 fois chacun. On conserve Les 9 individus les plus performants.
Les pourcentages obtenus sur 10 tests sont peux précis.

%succès m1 m2 m3 m4
90 -1.0 -50.0 -60.0 11.0
90 1.0 -59.0 8.0 -44.0
90 -1.0 -70.0 -60.0 8.0
90 -2.0 -39.0 8.0 -79.0
90 0.0 -50.0 -55.0 10.0
90 1.0 -77.0 -76.0 15.0
90 -1.0 -66.0 -41.0 8.0
90 0.0 -28.0 -76.0 -11.0
90 0.0 -78.0 -14.0 -43.0

90% de réussite en moyenne

La création de nouveaux individus et insertion dans la population
Première mutation : Chacun des 9 individus est ajouté à cette population. Chacun des 9 individus subit 9 mutations. On obtient une population de 99 individus testés et triés
La mutation consiste à ajouter un bruit aléatoire autour de chacun des paramètres.
Un individu avec un paramètre m1 par exemple va générer un mutant dont le nouveau paramètre m’1 est tiré selon une loi uniforme entre m1-1 et m1+1.

%succès angle m1 angle m2 angle m3 angle m5
100 -1.2 -38.3 -74.5 6.1
100 -2.5 -74.3 -3.1 -73.7
90 -0.6 -28.6 -76.6 -11.3
90 -0.7 -38.3 -6.7 -72.9
90 -0.6 -66.6 -40.7 8.0
90 -0.0 -27.0 -75.2 -11.9
90 -1.3 -39.0 -74.8 7.4
90 -0.9 -25.5 -69.7 -28.9
90 -1.5 -25.9 -68.7 -28.9

92% de réussite
Réitération du processus
Deuxième mutation

%succès angle m1 angle m2 angle m3 angle m5
100 -0.9 -39.8 -75.2 7.3
100 -1.3 -37.4 -74.4 5.5
100 -0.5 -38.9 -74.7 8.1
90 -0.6 -39.6 -74.0 7.0
90 -0.8 -39.7 -75.4 7.6
90 -1.0 -39.6 -74.8 7.7
90 -0.7 -39.9 -75.6 6.7
90 -0.0 -38.1 -6.2 -72.1
90 -1.6 -38.9 -5.9 -72.7

93% de réussite
Troisième mutation

%succès angle m1 angle m2 angle m3 angle m5
100 -1.4 -38.9 -74.9 7.9
100 -0.2 -39.8 -75.1 7.6
100 -1.6 -36.9 -74.1 4.9
100 0.4 -39.7 -74.5 7.1
100 -1.1 -39.0 -6.9 -72.7
100 -0.6 -39.6 -74.0 7.0
90 -1.6 -39.4 -74.6 7.9
90 -1.6 -39.2 -75.0 7.3
90 -0.6 -39.5 -74.9 8.3

96% de réussite


#6

Je trouve cette démarche très intéressante à mettre en oeuvre sur les projets ISN. Félicitation à Youssef pour sa persévérance.
A ce propos, serait-il possible que l’INRIA organise une séance découverte d’une heure ou deux sur ce thème d’apprentissage supervisé. La littérature web n’est pas évidente à mettre en oeuvre
Merci
Christophe