Ceci est une ancienne révision du document !
Table des matières
Apprentissage Par Renforcement
Le Hello World de l'Apprentissage Par Renforcement
Linéaire:
Rotatif:
Flying:
Double pendule:
Documenté mais sans RL
- Sergey Royz: Stabilizing pendulum on a cart with full state feedback control
- Articles: habr.com en russe
- Hardware used in the project:
- DC motor, 12V, gearbox 5:1 Modelcraft IG320005-3AC21R motor s převodem 12 V 5:1 @ conrad.cz et Modelcraft IG320005-3AC21R Moteur à entraînement 12 V 5:1 @ conrad.fr
- Incremental rotary encoder LPD3806-600BM-G5-24C 600 PPR (motor) Recherche sur alibaba.com
- Incremental rotary encoder OMRON E6B2-CWZ6C 2500 PPR (pendulum)
- Power supply 12V, 4A Spínaný zdroj MEAN WELL RD-85A. Une alimentation de PC peut convenir !
- 10Amp 5V-30V DC Motor Driver 10Amp 5V-30V DC Motor Driver
- Arduino Mega 2560 @ gotronic.fr
- Source code: https://github.com/zjor/inverted-pendulum
Apprentissage par renforcement
- Apprentissage par renforcement @ fr.wikipedia.org. En intelligence artificielle, plus précisément en apprentissage automatique, l'apprentissage par renforcement consiste, pour un agent autonome (robot, etc.), à apprendre à partir d'expériences, de façon à optimiser une récompense quantitative au cours du temps, positive ou négative. En répétant les expériences, le robot progresse.
Directeur Semour Skinner
Le directeur de l'école des enfants Simpson s'appelle Seymour Skinner, inspiré de Burrhus Frederic Skinner, inventeur de la Boîte de Skinner
Ressources
Frameworks
commande de robots
Q-learning
Ressources
- Le Q-learning est une technique d'apprentissage par renforcement. La lettre 'Q' désigne la fonction qui mesure la qualité d'une action exécutée dans un état donné du système.
- Dopamine, RLLib, Keras-RL, Coach, TRFL, Tensorforce, Coach and more @ winderresearch.com/
- Apprentissage par renforcement @ larevueia.fr Article général.
- The Best Tools for Reinforcement Learning in Python You Actually Want to Try Posted November 17, 2020, parle de:
- KerasRL
- Tensorforce
- Pyqlearning
- RL_Coach
- TFAgents
- MAME RL
- MushroomRL
Frameworks possibles
Gym de OpenAI
fr.wikipedia.org OpenAI est une entreprise à « but lucratif plafonné » en intelligence artificielle, basée à San Francisco. En 2019, OpenAI a reçu a 1 000 000 000 $ de Microsoft. OpenAi utilise le super Calculateur de Micro$ pour ses apprentissages.
Avant mars 2019, elle était reconnue association à but non lucratif. L'objectif de cette société était de promouvoir et développer une intelligence artificielle à visage humain qui bénéficierait à toute l'humanité. L'objectif actuel est de se faire des $.
Tensorforce
- Tensorforce: a TensorFlow library for applied reinforcement learning @ github.com/tensorforce
sudo pip3 install tensorforce Successfully installed matplotlib-3.3.3 msgpack-1.0.2 msgpack-numpy-0.4.7.1 tensorboard-2.4.0 tensorflow-2.3.1 tensorflow-estimator-2.3.0 tensorforce-0.6.2 tqdm-4.55.0
Stable Baselines
- https://github.com/hill-a/stable-baselines Basé sur openai/baselines
git clone https://github.com/hill-a/stable-baselines && cd stable-baselines pip install -e .[docs,tests,mpi] Successfully installed apipkg-1.5 attrs-20.3.0 coverage-5.3.1 execnet-1.7.1 importlab-0.5.1 iniconfig-1.1.1 livereload-2.6.3 ninja-1.10.0.post2 pluggy-0.13.1 py-1.10.0 pytest-6.2.1 pytest-cov-2.10.1 pytest-env-0.6.2 pytest-forked-1.3.0 pytest-xdist-2.2.0 pytype-2020.12.23 sphinx-autobuild-2020.9.1 sphinx-rtd-theme-0.5.0 stable-baselines typed-ast-1.4.2
“To sum up, Stable Baselines is a library with a great set of algorithms and awesome documentation. You should consider using it as your RL tool.”
- Documentation de stable-baselines @ stable-baselines.readthedocs.io
Le jeu du pendule dans Blender
La modélisation d'un pendule dans Blender avec le moteur physique intégré (Bullet) est délicate.
Un axe static et un cube Rigid Body avec un trou
Le pendule fini rapidement par se décrocher de l'axe, si un vertex du trou est dans l'axe sur une frame, la physics va le faire tomber dans l'infini de l'espace.
Constraint Rigid Body Joint
Axe
Rigid Body Joint
Pendule
Cette 2ème solution permet de bien faire tourner le pendule, par contre le stabiliser verticalement est corriace.
Gym CartPole Ressources
- CartPole-v0 wiki @ github.com
Observation
Liste de 4 items:
Num | Observation | Min | Max |
---|---|---|---|
0 | Cart Position | -2.4 | 2.4 |
1 | Cart Velocity | -Inf | Inf |
2 | Pole Angle | ~ -41.8° | ~ 41.8° |
3 | Pole Velocity At Tip | -Inf | Inf |
pybullet
- pybullet est le module idéal pour simuler un Reinforcement Learning.