Faites de petits pas dans l'apprentissage par renforcement

Contenu

introduction

Résolvons les environnements Cartpole, Lunar Lander et Pong d'OpenAI avec l'algorithme STRENGTH.

Le apprentissage par renforcement es posiblemente la rama más genial de la inteligencia artificial. A déjà démontré ses prouesses: étonner le monde, battre les champions du monde aux jeux d'échecs, Allez et incluez DotA 2.

Dans cet article, J'analyserais un algorithme plutôt rudimentaire et montrerais comment même cela peut atteindre un niveau de performance surhumain dans certains jeux.

L'apprentissage par renforcement offre with conception “Agents” qui interagit avec un “Environnement” et apprenez par vous-même comment “Trier” l'environnement par essais et erreurs systématiques. Un environnement peut être un jeu comme les échecs ou la course, ou cela pourrait même être une tâche comme résoudre un labyrinthe ou atteindre un objectif. L'agent est le bot qui effectue l'activité.

1jrwddpm1lz8eatlkukkt-g-1197737

Un agent reçoit “récompenses” lors de l'interaction avec l'environnement. L'agent apprend à exécuter les “Actions” nécessaire pour maximiser la récompense que vous recevez de l'environnement. Un environnement est considéré comme résolu si l'agent accumule un seuil de récompense prédéfini. Ce discours ringard explique comment nous apprenons aux robots à jouer aux échecs surhumains ou aux androïdes bipèdes à marcher.

RENFORCER l'algorithme

REINFORCE pertenece a una clase especial de algoritmos de aprendizaje por refuerzo llamados algoritmos de pente de políticas. Une implémentation simple de cet algorithme consisterait à créer un Politique: un modèle qui prend un état en entrée et génère la probabilité d'effectuer une action en sortie. Une politique est essentiellement un guide ou un aide-mémoire pour l'agent qui indique les mesures à prendre dans chaque état.. Alors, la politique est répétée et légèrement modifiée à chaque étape jusqu'à ce que nous obtenions une politique qui résout l'environnement.

La política suele ser una neuronal rouge que toma el estado como entrada y genera una distribución de probabilidad en el espacio de acción como salida.

Politique: Exemple

L'objectif de la politique est de maximiser la "Récompense attendue".

Chaque politique génère la probabilité d'entreprendre une action dans chaque station de l'environnement.

Politique 1 vs politique 2 – Différentes trajectoires

L'agent échantillonne ces probabilités et sélectionne une action à entreprendre dans l'environnement. A la fin d'un épisode, nous connaissons les récompenses totales que l'agent peut obtenir s'il suit cette politique. Nous reproduisons la récompense à travers l'itinéraire emprunté par l'agent pour estimer le “récompense attendue” dans chaque état pour une politique donnée.

10pe4hhootwki5lljxzv47w-5225362

Ici, la récompense actualisée est la somme de toutes les récompenses que l'agent reçoit dans ce futur actualisées par un facteur Gamma.

1piymd_6px1euk21zadxzka-5954891

La récompense à prix réduit à n'importe quelle étape est la récompense que vous recevez à l'étape suivante + une somme actualisée de toutes les récompenses que l'agent recevra à l'avenir.

Le facteur de remise est calculé pour chaque état en rétropropagant les récompenses.

Pour l'équation ci-dessus, c'est ainsi que nous calculons la récompense attendue:

1r086if2zz_hx89wowmkfoa-1118659

Selon l'implémentation originale de l'algorithme STRENGTH, la récompense attendue est la somme des produits d'un enregistrement de cotes et récompenses réduites.

Étapes de l'algorithme

Les étapes impliquées dans la mise en œuvre du RENFORCEMENT seraient les suivantes:

  1. Initialiser une politique aléatoire (un NN qui prend l'état en entrée et renvoie la probabilité des actions)
  2. Utilisez la politique pour jouer N étapes du jeu: enregistrer les probabilités d'action, de la politique, la récompense de l'environnement, l'action, échantillonné par l'agent
  3. Calculer la récompense actualisée pour chaque étape par rétropropagation
  4. Calculer la récompense attendue G
  5. Ajuster les pondérations de la politique (erreur de propagation inverse dans NN) augmenter G
  6. Répéter de 2

Voir la mise en œuvre à l'aide de Pytorch dans mon Github.

Ville

J'ai testé l'algorithme dans Pong, CartPole et l'atterrisseur lunaire. Il faut une éternité pour s'entraîner à Pong et Lunar Lander: plus de 96 horas de entraînement cada uno en una GPU en la nube. Il existe plusieurs mises à jour de cet algorithme qui peuvent le faire converger plus rapidement, que je n'ai pas discuté ou mis en œuvre ici. Consultez les modèles d'acteurs critiques et l'optimisation des politiques à venir si vous souhaitez en savoir plus.

Chariot

1wlhepk4me-s334ngw8mhqg-5416157

État:

Position horizontale, vitesse horizontale, angle de pôle, vitesse angulaire

Comportement:

Pousser le chariot vers la gauche, Pousser le chariot vers la droite

Jeu de politique aléatoire:

1ty7qktykcnzoo1b8j-ie8a-6249674

Jeu aléatoire: récompense totale 18

Politique des agents formés avec RENFORCE:

1i2fwnr2iyevctybt6vm5uq-9680510

Agent formé – Récompense totale 434

Atterrisseur lunaire

1muxe2ynxy8ierbjt4uxuzw-9306370

Agent de jeu aléatoire

État:

L'état est une matrice de 8 vecteur. Je ne sais pas ce qu'ils représentent.

Comportement:

0: ne fais rien

1: camion de pompiers gauche

2: Camion de pompier

3: pompier droit

Politique des agents formés avec RENFORCE:

1pbsjgwjyxcy5tz-8zwhjka-3069322

Atterrisseur lunaire entraîné avec RENFORCE

Puer

C'était beaucoup plus difficile à former. Formé sur un serveur cloud GPU pendant des jours.

État: Image

Comportement: Déplacer la palette vers la gauche, déplacer la palette vers la droite

1rtvh57xmxnv3pkkzih1q1w-1060950

Agent formé

L'apprentissage par renforcement a progressé à pas de géant au-delà du RENFORCEMENT. Mon objectif dans cet article était 1. apprendre les bases de l'apprentissage par renforcement et 2. montrer à quel point même des méthodes aussi simples peuvent être puissantes pour résoudre des problèmes complexes. j'aimerais bien les essayer sur certains “Jeux” gagner de l'argent comme la bourse … Je suppose que c'est le Saint Graal parmi les data scientists.

Dépôt Github: https://github.com/kvsnoufal/reinforce

Epaules de géants:

  1. Algorithmes de gradient de politique (https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html)
  2. Dériver RENFORCER (https://medium.com/@thechrisyoon/deriving-policy-gradients-and-implementing-reinforce-f887949bd63)
  3. Cours d'apprentissage de renforcement Udacity (https://github.com/udacity/deep-reinforcement-learning)

A propos de l'auteur

photo_noufal-4824971

Noufal kv

Travailler chez Dubai Holding, Les EAU en tant que data scientist. Vous pouvez me contacter au [email protégé] O https://www.linkedin.com/in/kvsnoufal/

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.