apprentissage_par_renforcement
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
apprentissage_par_renforcement [2021/02/11 10:25] – [Installation] serge | apprentissage_par_renforcement [2022/02/10 07:52] (Version actuelle) – [Apprentissage Par Renforcement] serge | ||
---|---|---|---|
Ligne 23: | Ligne 23: | ||
</ | </ | ||
</ | </ | ||
+ | * Rotary Inverted Pendulum: Swing Up and Stabilization https:// | ||
+ | * Double Inverted Furuta Pendulum https:// | ||
+ | * Furuta Pendulum avec une belle finition https:// | ||
=====Apprentissage par renforcement===== | =====Apprentissage par renforcement===== | ||
* **[[https:// | * **[[https:// | ||
Ligne 42: | Ligne 44: | ||
* [[https:// | * [[https:// | ||
- | ====Principe vulgarisé==== | + | ====Principe vulgarisé |
- | ===Boucle | + | |
* [[https:// | * [[https:// | ||
Ligne 51: | Ligne 52: | ||
{{ : | {{ : | ||
- | ===Apprentissage par renforcement=== | + | ====Principe vulgarisé de l'Apprentissage par Renforcement==== |
+ | **RL = Reinforcement Learning = Apprentissage par Renforcement** | ||
{{ : | {{ : | ||
L'IA (Intelligence Artificielle) dont nous parlons ici n'est pas intelligente, | L'IA (Intelligence Artificielle) dont nous parlons ici n'est pas intelligente, | ||
Ligne 131: | Ligne 133: | ||
<WRAP third column> | <WRAP third column> | ||
**Axe** | **Axe** | ||
- | {{: | + | {{ : |
- | {{: | + | {{ : |
</ | </ | ||
<WRAP third column> | <WRAP third column> | ||
**Rigid Body Joint** | **Rigid Body Joint** | ||
- | {{: | + | {{ : |
</ | </ | ||
<WRAP third column> | <WRAP third column> | ||
**Pendule** | **Pendule** | ||
- | {{: | + | {{ : |
</ | </ | ||
</ | </ | ||
Ligne 147: | Ligne 149: | ||
Le moteur physique de Blender est Bullet. Il vit sa vie en parallèle du moteur de jeu, une commande demandée dans un script python sur une frame agit dans le moteur physique lors des frames suivantes mais en interaction avec la physique en cours. Le script python n'est pas un dictateur qui donne des ordres strictes à Bullet. \\ | Le moteur physique de Blender est Bullet. Il vit sa vie en parallèle du moteur de jeu, une commande demandée dans un script python sur une frame agit dans le moteur physique lors des frames suivantes mais en interaction avec la physique en cours. Le script python n'est pas un dictateur qui donne des ordres strictes à Bullet. \\ | ||
Il est important d' | Il est important d' | ||
- | {{ : | + | {{ : |
Exemple d'un reset position et orientation sur 25 frames: [[https:// | Exemple d'un reset position et orientation sur 25 frames: [[https:// | ||
Le fps est défini à 120 dans le panneau de rendu, le script once.py défini bge.logicsetLogicTicRate(120). Le FPS affiché est calculé avec time(). | Le fps est défini à 120 dans le panneau de rendu, le script once.py défini bge.logicsetLogicTicRate(120). Le FPS affiché est calculé avec time(). | ||
Ligne 164: | Ligne 167: | ||
====Résultat du 1er essai==== | ====Résultat du 1er essai==== | ||
- | Avec un apprentissage de quelques heures .... | ||
- | {{ vimeo> | + | {{ : |
+ | |||
+ | Avec un apprentissage de quelques heures .... | ||
=====Comment est définit l' | =====Comment est définit l' | ||
Ligne 189: | Ligne 193: | ||
Ici, il y a une récompense si le pendule est au-dessus du diamètre horizontal. Plus il est près de la position verticale, plus la récompense est grande. Sinon la récompense est nulle. | Ici, il y a une récompense si le pendule est au-dessus du diamètre horizontal. Plus il est près de la position verticale, plus la récompense est grande. Sinon la récompense est nulle. | ||
===== Relèvement du pendule appelé Swing-up===== | ===== Relèvement du pendule appelé Swing-up===== | ||
- | |||
Les [[https:// | Les [[https:// | ||
- | Les sources sont dans le dossier **[[https:// | + | Les sources sont dans le dossier **[[https:// |
Ce pendule a été construit dans l' | Ce pendule a été construit dans l' | ||
- | {{ vimeo> | + | |
- | L' | + | {{ : |
- | Le fichier de poids fonctionne sur Xubuntu 18.4 mais pas sur Debian 10: il doit y avoir une version d'une des librairies qui diffèrent. | + | |
+ | L' | ||
=====Quelques explications===== | =====Quelques explications===== | ||
Ligne 221: | Ligne 225: | ||
===Algorithme d' | ===Algorithme d' | ||
- | L' | + | L' |
===Récompense revue pour les débuts des calculs==== | ===Récompense revue pour les débuts des calculs==== | ||
Ligne 251: | Ligne 255: | ||
=====Ressources complémentaires===== | =====Ressources complémentaires===== | ||
+ | ====Quels sonts les défauts de Gym ?==== | ||
+ | Gym impose un cadre pour tous les chercheurs de RL, ce qui permet de faire des comparaisons entre les solutions.\\ | ||
+ | Mais cela empêche de trouver des solutions originales. En Intelligence Artificielle, | ||
+ | |||
====Réflexions philosophiques==== | ====Réflexions philosophiques==== | ||
* Ce type d' | * Ce type d' | ||
* Encore pratiqué dans l' | * Encore pratiqué dans l' | ||
- | * ... | ||
====Gym CartPole Ressources==== | ====Gym CartPole Ressources==== | ||
Ligne 264: | Ligne 271: | ||
Bullet est le moteur physique de Blender | Bullet est le moteur physique de Blender | ||
- | ==== Création de votre propre environnement ==== | ||
- | * [[https:// | ||
- | L' | ||
====Un cartpole réel documenté mais sans RL==== | ====Un cartpole réel documenté mais sans RL==== |
apprentissage_par_renforcement.txt · Dernière modification : 2022/02/10 07:52 de serge