Aller au contenu


Photo

WALK-E, Crowdfunding sur Ulule, Soutenez nous !!!

Crowfunging financement participatif Robot bipède

  • Veuillez vous connecter pour répondre
203 réponses à ce sujet

#201 yougo

yougo

    Habitué

  • Membres
  • PipPip
  • 229 messages

Posté 07 novembre 2018 - 08:08

Salut, Merci!

 

Le crowdfunding est terminé, maintenant on fait tout pour que ca marche !


Venez check le Twitter : 

 

https://twitter.com/Projet_WALK_E

 


#202 yougo

yougo

    Habitué

  • Membres
  • PipPip
  • 229 messages

Posté 15 octobre 2019 - 09:03

Bonjour bonjour;

 

Avant de commencer j'aimerais excuser cette absence et ce manque de communication tout en vous prévenant que cela risque de rester comme cela pendant un petit moment encore. Les raisons sont purement personnelles et je ne veux pas les détailler pour le moment. En plus de ça j'ai la chance d'être maintenant en école d'ingénieurs en robotique et j'aimerais ne pas ratter mon diplôme, comprenez que cela rajoute un poids en plus dans la balance et enlève du temps pour travailler sur le projet.

Voilà,ceci dit, le projet est loin d'etre au point mort,donc permetez moi de vous informer sur l'avancement global ! :)

Niveau hardware, il y a eu peu d'avancées, une V2 a été designée mais pas encore n'imprime ni testée hors des simulations... Oui, maintenant il y a des simulations, beaucoup de simulations.

 

En fait c'est bel et bien au niveau software que tout avance depuis 1 an et surtout ces derniers mois. Après avoir fini de construire un environement de simulation de walk-e pour faire interface avec ROS-Gazebo et OpenAI gym, j'ai enfin pu lancer les premiers entrainements de réseaux de neurones pour le robot.

OpenAI gym est un formidable outil utilisé pour faciliter la comparaison et l'utilisation de différents algorithmes de re-enforcement sur un même environement. Je m'en suis donc servi pour comparer plusieurs algorithmes, Q-learning, Deep-Q-learning, Deep Deterministic Policy gradient.

Tous ces algorithmes fonctionnent sur une base commune, si le robot fait une action que l'on juge "bonne" il est récompensé par son action, et un (ou plusieurs) réseaux de neurones (ou tables, pour le Q learning), apprennent les actions qui font gagner des récompenses au robot et optimisent ces actions pour qu'il en gagne un maximum.Votre façon de juger si votre robot fait des bonnes actions est donc cruciale et va déterminer tout ce qu'il va apprendre.

 

Ex de mauvais jugement: J'avais fait une fonction très basique comme : si le robot avance de x mètres, le récompenser de x*10

résultats, le robot faisait un grand saut en avant pour arriver le plus loin possible... :blink:

En bref, l'AI que vous êtes en train d'éduquer va essayer toutes les solutions pour gagner des points, et si elle est récompensée alors qu'elle ne le devrait pas, elle va essayer d'optimiser une solution qui ne serait pas la solution optimale et vous perdrez simplement votre temps. Pour pallier à ça vous pouvez:

Designer une fonction de jugement la plus parfaite possible.

Ajouter une part d'aléatoire, le plus utilise étant le processus d'Ornstein-Uhlenbeck.

Choisir son algorithme est tout aussi important :

le premier n'était pas du tout concluant et je le déconseille fortement si votre probleme est relativement complexe, les tables de Q learning ne permettent pas de stocker assez d'information pour apprendre à marcher par exemple. Cependant il est simple et formateur et est une porte d'entree pour apprendre le reinforcement learning.

 

Le DQN a permis au robot de faire ses premiers pas", c'est aussi là qu'il a appris à se jeter le plus loin possible la tete la première. Je ne me suis pas beaucoup attardé sur le DQN et je suis passé sur le DDPG pour plusieurs raisons :

le DDPG a un énorme avantage sur le DQN, il permet au robot de deviner la valeur de tous les angles à chaque moment, là ou le DQN ne peut qu'incrémenter/décrémenter un seul angle et attendre le moment t+1 pour réajuster un autre angle. De façon plus mathématique Le DQN permet de prendre des décisions discrètes alors que le DDPG permet de prendre des décisions continues.

 

Si vous êtes curieux tous ces algorithmes sont passionnants et je conseille de vous renseigner là-dessus. Commencez par les tables de Q learning puis le DQN puis le DDPG, car ils sont tous plus ou moins une amélioration du précédent.

 

Je suis donc en train d'expérimenter avec cet algorithme, le fameux DDPG, en fait j'ai fini de l'implémenter, je m'assure que les paramètres que le réseau de neurones ne peut pas modifier par lui-même (hyperparametres), comme le nombre de couches dans le réseau, le nombre de neurones et l'intensité du processus de randomisation des actions soient optimales pour que le robot puisse apprendre comme il faut. En fait je suis en train d'automatiser ce processus pour pouvoir suivre mes cours plutôt que de passer mes soirées à essayer de deviner un set de nombres en espérant tomber sur la parfaite combinaison :unsure: .

 

Pour résumer grossièrement, on en est au stade ou le robot passe des journées à essayer d'apprendre à marcher dans une simulation, pour l'instant le record est de 3 pas avant de s'effondrer au sol.

.

Ceux qui nous suivent sur twitter ont déjà pu voit les premiers entrainements du robot en simulation. J'aimerais faire une vidéo (travaillée cette fois) pour présenter tout ça quand le robot marchera d'une façon moins aléatoire dans les simulations (bientot esperons ).

 

Merci encore a tous ceux qui soutiennent le projet et encore désolé du manque d'info, je peux vous assurer que je donne tout ce que j'ai pour ce projet. :heart:


Venez check le Twitter : 

 

https://twitter.com/Projet_WALK_E

 


#203 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 458 messages
  • Gender:Male
  • Location:Paris

Posté 16 octobre 2019 - 06:20

Merci pour ces nouvelles !! Et félicitations. Profite, cest le bon temps.

Podcast Made By Humans

Je cherche des volontaires de tous niveaux pour nos petites conversations entre hobbyistes.

Accès aux salles secrètes

 


#204 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 172 messages
  • Gender:Male
  • Location:Autriche

Posté 21 octobre 2019 - 09:34

Merci pour le retour !

Quelques petites remarques: Q-learning, Deep Q-learning, Deep Deterministic Policy Gradient sont des algorithmes d'apprentissage par renforcement (RL - reinforcement learning): ils cherchent une solution à un problème de décision séquentielle, c'est à dire une séquence "d'actions" (au sens large) à effectuer pour atteindre un certain but.
Comme l'a précisé Yougo, l'algorithme reçoit une récompense quand il produit le comportement désiré (et une punition dans le cas contraire). Ici, pas de friandise ou de fessée, mais des valeurs numériques positives et négatives définies par un humain. Les algorithmes de RL se classent notamment en deux groupes selon qu'ils apprennent directement une politique ou une fonction de valeur, ou s'ils construisent un modèle du problème pour déduire ces informations. On parle de model-free et model-based dans la langue de Freddy Mercury, ou d'apprentissage direct et indirect dans celle de Yann Le Cun.

La différence entre Q-learning et les algo "Deep" (Deep Qlearning et DDPG), c'est que le travail de modélisation du problème est laissé à l'humain dans le premier cas : c'est au concepteur de définir ce qu'est un état, une action. Or, modéliser le problème, décider des états et actions n'est toujours simple. Si on peut facilement modéliser un problème de labyrinthe simulé comme un tableau dans lequel on passe d'une case à l'autre avec des mouvements nord-sud-est-ouest, modéliser le comportement d'un vrai robot dans un vrai labyrinthe est plus dur. Comme l'a expérimenté pmdd avec son projet récent, le robot ne se déplace pas toujours de la bonne distance, glisse un peu, etc. La solution proposée par le "Deep learning", c'est de laisser l'algorithme apprendre lui-même la modélisation en partant des données capteurs. Pas besoin d'estimer la position du robot, on donne juste l'image perçue par sa caméra, son odométrie, etc. et ça suffit à l'algorithme. En pratique, ça augmente beaucoup le temps nécessaire pour apprendre une bonne solution au problème (mais je ne vais pas rentrer dans les détails ici).

Enfin, il est effectivement plutôt difficile de conçevoir une fonction de récompense pertinente selon la tâche: si la récompense n'est donnée que lorsque le robot atteint l'objectif, l'apprentissage est long ; si elle est donnée plus fréquemment, il y a risque de converger vers un optimum local plutôt que l'optimum global. Une manière de contourner ce problème est d'utiliser un algorithme génétique : la fonction de fitness utilisée est très similaire à la fonction de récompense, mais le mécanisme de création de solution est moins sensible aux optima locaux, et il est possible de forcer l'agent à explorer différents comportements en ajoutant un terme de "diversité" à maximiser.

En tout cas, bon courage et bonne continuation !
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot





Aussi étiqueté avec au moins un de ces mots-clés : Crowfunging, financement participatif, Robot bipède

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users