Dans mes articles précédents sur l'apprentissage par renforcement, je vous ai montré comment implémenter le Q-learning (approfondi) en utilisant uniquement un peu de numpy et TensorFlow. Bien qu’il s’agisse d’une étape importante vers la compréhension du fonctionnement de ces algorithmes, le code avait tendance à être long – et j’ai même simplement implémenté l’une des versions les plus basiques du Q-learning profond.
Compte tenu des explications contenues dans cet article, la compréhension du code devrait être assez simple. Cependant, si nous vraiment Si nous voulons faire avancer les choses, nous devons nous appuyer sur des bibliothèques bien documentées, entretenues et optimisées. Tout comme nous ne voulons pas mettre en œuvre la régression linéaire encore et encore, nous ne voulons pas faire de même pour l'apprentissage par renforcement.
Dans cet article, je vais vous montrer la bibliothèque de renforts Lignes de base stables3 qui est aussi simple à utiliser que scikit-learn. Au lieu de former des modèles pour prédire les étiquettes, nous obtenons des agents formés qui peuvent bien naviguer dans leur environnement.
Si vous n’êtes pas sûr de ce qu’est le Q-learning (profond), je vous suggère de lire mes articles précédents. À un niveau élevé, nous souhaitons former un agent qui interagit avec son environnement dans le but de maximiser sa récompense totale. La partie la plus importante de l’apprentissage par renforcement est de trouver une bonne fonction de récompense pour l’agent.
J'imagine généralement un personnage dans un jeu cherchant son chemin pour obtenir le meilleur score, par exemple Mario courant du début à la fin sans mourir et – dans le meilleur des cas – aussi vite que possible.
Pour ce faire, en Q-learning, nous apprenons valeurs de qualité pour chaque paire (s, un) où s est un État et un est une action que l’agent peut entreprendre. Q(s, un) est le…