Bonjour, Habr! Je vous présente la traduction de l'article «Ne plus jamais ignorer le renforcement de l'apprentissage» par Michel Kana, Ph.D.
Apprendre avec un enseignant et apprendre sans enseignant n'est pas tout. Tout le monde le sait. Commencez avec OpenAI Gym.
Allez-vous vaincre le champion du monde d'échecs, le backgammon ou y aller?Il existe un moyen qui vous permettra de le faire - la formation de renforcement.
Qu'est-ce que l'apprentissage par renforcement?
L'apprentissage renforcé consiste à apprendre à prendre des décisions cohérentes dans un environnement avec la récompense maximale reçue qui est donnée pour chaque action.
Il n'y a aucun enseignant en lui, seulement un signal de récompense de l'environnement. Le temps compte et les actions affectent les données suivantes. Ces conditions créent des difficultés d'apprentissage avec ou sans enseignant.
Dans l'exemple ci-dessous, la souris essaie de trouver autant de nourriture que possible et évite les chocs électriques lorsque cela est possible.
Une souris peut être courageuse et obtenir une décharge pour se rendre dans un endroit avec beaucoup de fromage. Ce sera mieux que de rester immobile et de ne rien recevoir.
La souris ne veut pas prendre les meilleures décisions dans chaque situation spécifique. Cela nécessiterait une grande dépense mentale de sa part, et ce ne serait pas universel.
L'entraînement avec des renforts fournit des ensembles de méthodes magiques qui permettent à notre souris d'apprendre à éviter les chocs électriques et à obtenir le plus de nourriture possible.
La souris est un agent. Un labyrinthe avec des murs, du fromage et des pistolets paralysants est
l'environnement . La souris peut se déplacer vers la gauche, la droite, le haut, le bas - ce sont des
actions .
La souris veut du fromage, pas un choc électrique. Le fromage est une
récompense . La souris peut inspecter l'environnement - ce sont des
observations .
Formation au renforcement des glaces
Laissons la souris dans le labyrinthe et passons à la glace. «L'hiver est arrivé. Vous et vos amis jetiez du frisbee dans le parc lorsque vous avez soudainement lancé un frisbee au milieu du lac. Fondamentalement, l'eau du lac était gelée, mais il y avait quelques trous où la glace a fondu. (
source )
«Si vous marchez sur l'un des trous, vous tomberez dans l'eau glacée. De plus, il y a une énorme pénurie de frisbee dans le monde, il est donc absolument essentiel de faire le tour du lac et de trouver une route. »(
Source )
Comment vous sentez-vous dans une situation similaire?
C'est un défi pour l'apprentissage par renforcement. L'agent contrôle les mouvements du personnage dans le monde de la grille. Certaines tuiles de grille sont passables, tandis que d'autres font tomber le personnage dans l'eau. L'agent reçoit une récompense pour avoir trouvé un chemin praticable vers l'objectif.
Nous pouvons simuler un tel environnement en utilisant
OpenAI Gym - une boîte à outils pour développer et comparer des algorithmes d'apprentissage avec des renforts. Il donne accès à un ensemble normalisé d'environnements, comme dans notre exemple, qui s'appelle
Frozen Lake . Il s'agit d'un support de texte qui peut être créé avec quelques lignes de code.
import gym from gym.envs.registration import register
Il nous faut maintenant une structure qui nous permettra d'aborder systématiquement les problèmes d'apprentissage par renforcement.
Processus décisionnel de Markov
Dans notre exemple, l'agent contrôle le mouvement du personnage sur le monde de la grille, et cet environnement est appelé un environnement entièrement observable.
Puisque la future tuile ne dépend pas des tuiles passées en tenant compte de la tuile actuelle
(nous avons affaire à une séquence d'états aléatoires, c'est-à-dire à la
propriété Markov ), nous avons donc affaire au soi-disant
processus de Markov .
L'état actuel encapsule tout ce qui est nécessaire pour décider quel sera le prochain mouvement; rien n'est nécessaire pour se souvenir.
Sur chaque cellule suivante (c'est-à-dire une situation), l'agent choisit avec une certaine probabilité l'action qui mène à la cellule suivante, c'est-à-dire la situation, et l'environnement répond à l'agent avec observation et récompense.
Nous ajoutons la fonction de récompense et le coefficient de remise au processus de Markov, et nous obtenons le soi-disant
processus de récompense de Markov . En ajoutant un ensemble d'actions, nous obtenons
le processus décisionnel de Markov (
MDP ). Les composants de MDP sont décrits plus en détail ci-dessous.
Condition
Un état est une partie de l'environnement, une représentation numérique de ce que l'agent observe à un certain moment dans l'environnement, l'état de la grille du lac. S est le point de départ, G est la cible, F est la glace solide sur laquelle l'agent peut se tenir et H est le trou dans lequel l'agent tombera s'il marche dessus. Nous avons 16 états dans un environnement de grille 4 x 4, ou 64 états dans un environnement 8 x 8. Ci-dessous, nous allons dessiner un exemple d'un environnement 4 x 4 utilisant OpenAI Gym.
def view_states_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.observation_space) print() env.env.s=random.randint(0,env.observation_space.n-1) env.render() view_states_frozen_lake()
Actions
L'agent a 4 actions possibles, qui sont représentées dans l'environnement comme 0, 1, 2, 3 pour gauche, droite, bas, haut, respectivement.
def view_actions_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0')): print(env.action_space) print("Possible actions: [0..%a]" % (env.action_space.n-1)) view_actions_frozen_lake()
Modèle de transition d'état
Le modèle de transition d'état décrit comment l'état de l'environnement change lorsqu'un agent prend des mesures en fonction de son état actuel.
Le modèle est généralement décrit par la probabilité de transition, qui est exprimée comme une matrice de transition carrée de taille N x N, où N est le nombre d'états de notre modèle. L'illustration ci-dessous est un exemple d'une telle matrice pour les conditions météorologiques.
Dans l'environnement du lac gelé, nous supposons que le lac n'est pas glissant. Si nous allons à droite, nous allons définitivement à droite. Par conséquent, toutes les probabilités sont égales.
«Gauche» déplace la cellule de l'agent 1 vers la gauche ou la laisse dans la même position si l'agent est à la bordure gauche.
«Droite» la déplace d'une cellule vers la droite ou la laisse dans la même position si l'agent est à la frontière droite.
«Up» déplace la cellule d'agent 1 vers le haut, ou l'agent reste au même endroit s'il se trouve à la limite supérieure.
«Bas» déplace la cellule d'agent 1 vers le bas, ou elle reste au même endroit si elle est à la limite inférieure.
Rémunération
Dans chaque état F, l'agent reçoit 0 récompense; dans l'état H, il reçoit -1, puisque, passé dans cet état, l'agent décède. Et lorsque l'agent atteint l'objectif, il reçoit une récompense +1.
Étant donné que les deux modèles, le modèle de transition et le modèle de récompense, sont des fonctions déterministes, cela rend l'environnement déterministe. \
Remise
La remise est un paramètre facultatif qui contrôle l'importance des futures récompenses. Il est mesuré dans la plage de 0 à 1. Le but de ce paramètre est d'empêcher la récompense totale d'aller à l'infini.
La remise modélise également le comportement de l'agent lorsque l'agent préfère la récompense immédiate à la récompense qui pourrait être reçue à l'avenir.
Valeur
La valeur de la fortune est le revenu à long terme attendu avec une remise pour la fortune.
Politique (π)
La stratégie utilisée par l'agent pour sélectionner l'action suivante est appelée stratégie. Parmi toutes les politiques disponibles, la meilleure est celle qui maximise le montant de la rémunération reçue ou attendue au cours de l'épisode.
Épisode
L'épisode commence lorsque l'agent apparaît sur la cellule de départ et se termine lorsque l'agent tombe dans le trou ou atteint la cellule cible.
Visualisons tout cela
Après avoir passé en revue tous les concepts impliqués dans le processus décisionnel de Markov, nous pouvons maintenant modéliser plusieurs actions aléatoires dans un environnement 16x16 en utilisant OpenAI Gym. Chaque fois, l'agent sélectionne une action aléatoire et l'exécute. Le système calcule la récompense et affiche le nouvel état de l'environnement.
def simulate_frozen_lake(env = gym.make('FrozenLakeNotSlippery-v0'), nb_trials=10): rew_tot=0 obs= env.reset() env.render() for _ in range(nb_trials+1): action = env.action_space.sample()
Conclusion
Dans cet article, nous avons brièvement passé en revue les concepts de base de l'apprentissage par renforcement. Notre exemple a fourni une introduction à la boîte à outils OpenAI Gym, qui facilite l'expérimentation d'environnements pré-construits.
Dans la partie suivante, nous présenterons comment concevoir et mettre en œuvre des politiques qui permettront à l'agent de prendre un ensemble d'actions afin d'atteindre l'objectif et de recevoir un prix tel que vaincre un champion du monde.
Merci de votre attention.