[PYTHON] Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage

Aidemy 2020/11/21

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Ceci est le premier article de l'apprentissage par renforcement profond. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ (Review) Renforcer l'apprentissage ・ Renforcement de la méthode d'apprentissage ・ DQN

(Révision) À propos du renforcement de l'apprentissage

Strengthening learning est une méthode d'apprentissage automatique. ・ Les éléments suivants sont les éléments d'un apprentissage amélioré. Le sujet agissant agent, la cible de l'action__environnement__, l'action sur l'environnement__comportement__ et les éléments de l'environnement qui changent en conséquence sont state. De plus, l'évaluation obtenue immédiatement par l'action est reward, et le montant total final de la récompense est revenu. ・ Le but de l'apprentissage par renforcement est de maximiser la somme de ces revenus. -En tant que modèle d'apprentissage par renforcement, la __ mesure __ de la sélection de l'action de l'agent est exprimée par __ "entrée l'état actuel de l'environnement" __ et __ "action de sortie" __. Et cette action choisit quelque chose qui vous donnera une récompense plus élevée que __. ・ Pour cette "récompense plus élevée", si tout le contenu de la récompense est connu, celui avec la récompense la plus élevée doit être sélectionné, mais en réalité, cela est rarement donné à l'avance. Dans un tel cas, il est nécessaire de collecter des informations en effectuant des actions qui n'ont jamais été sélectionnées en effectuant __ "recherche" __. Après avoir collecté des informations de cette manière, il est conseillé de sélectionner l'action qui est présumée être la plus gratifiante. C'est ce qu'on appelle __ "utiliser" __.

Renforcer les mesures d'apprentissage

(Review) Méthode gourmande

-Il est important de prendre des mesures en lien avec le problème des measures sur la façon d'effectuer la recherche et l'utilisation montrées ci-dessus. -Par exemple, si toutes les valeurs attendues des récompenses sont connues, il est préférable de sélectionner __ "méthode gourmande" __ que seule l'action avec la valeur attendue la plus élevée soit sélectionnée. ・ Cependant, comme mentionné ci-dessus, en général, il y a peu de cas où toutes les récompenses sont connues, donc dans un tel cas, il est nécessaire de sélectionner une autre action même si les récompenses à obtenir sont connues pour être petites. Une de ces mesures est __ "méthode ε-gourmande" __. C'est __, qui recherche avec la probabilité ε, et __, qui l'utilise avec ___ 1-ε. En réduisant la valeur de ε en fonction du nombre d'essais, le taux d'utilisation augmentera et vous pourrez effectuer une recherche efficace.

Sélection Boltzmann

・ La méthode ε-gourmande était une __méthode de sélection d'actions avec une certaine probabilité. Similaire à ceci, il existe une politique appelée __ "sélection Boltzmann" __. -La sélection de Boltzmann est appelée de cette façon parce que la probabilité de sélection suit la distribution __Boltzmann __ suivante.

スクリーンショット 2020-11-18 11.58.34.png

-Dans cette formule, __ "T" __ s'appelle __fonction de température __, et c'est __ "fonction qui converge vers 0 avec le passage du temps" __. À ce stade, __T → limite infinie __ sélectionne toutes les actions avec la même probabilité __, et __T → limite 0 __ facilite la sélection de celle avec la valeur de récompense maximale attendue __ C'est une chose. -En d'autres termes, puisque T est grand au début, la sélection de l'action est aléatoire __, mais lorsque __T s'approche de 0 avec le passage du temps, il devient __ à sélectionner comme la méthode gourmande.

DQN -__ DQN__ est la fonction __Q de l'apprentissage Q exprimée par l'apprentissage profond __. La fonction __Q __ est la __ "fonction de valeur d'action" __, et l'apprentissage __Q __ est un algorithme d'apprentissage par renforcement qui estime cela. -La fonction de valeur __action __ est une fonction qui calcule la valeur attendue de la récompense lorsque __ des mesures optimales sont prises en saisissant __ "state s et action a" __. Ce qui est fait est la somme de la valeur d'action __ obtenue en effectuant une certaine action et de la valeur d'action __ obtenue en exécutant une action possible dans l'état suivant __ Ensuite, prenez la __difference __ de la valeur de l'action actuelle et mettez un peu à jour la fonction (en ajustant le taux d'apprentissage). -En fait, l'état s et l'action a sont représentés par la fonction __table __ pour toutes les combinaisons, mais selon le problème, il y a un risque que la quantité de cette __combinaison soit énorme __. ・ Dans un tel cas, DQN peut être résolu en rapprochant cette fonction Q par apprentissage en profondeur.

-Les caractéristiques de __DQN sont les suivantes. Voir le chapitre suivant pour plus de détails. · __Experience Replay : __ Mélangez les séries chronologiques de données pour gérer les corrélations des séries chronologiques - Réseau cible __: Calcule l'erreur à partir de la bonne réponse et ajuste le modèle pour qu'il soit proche de la bonne réponse. Créez au hasard un lot à partir des données et effectuez un apprentissage __batch __. -Filtre et convertir l'image par CNN: __ convolution . ・ Clipping: Concernant la récompense, si elle est négative, elle est - 1, si elle est positive, elle est __ + 1, et si ce n'est aucune, elle est 0.

Experience Replay -Par exemple, l'entrée obtenue par l'agent jouant au jeu a la propriété __time series __. Étant donné que l'entrée de la série chronologique a une forte corrélation __, si l'entrée de la série chronologique est utilisée telle quelle pour l'apprentissage, le résultat d'apprentissage sera biaisé et la convergence sera médiocre. La solution à cela s'appelle Experience Replay. Il s'agit d'une __méthode dans laquelle les états, actions et récompenses sont saisis, tout ou un certain nombre sont enregistrés, puis __appelés et appris au hasard.

スクリーンショット 2020-11-18 12.44.01.png

Sommaire

-En apprentissage par renforcement, search et use sont effectués afin de maximiser le montant total de __ bénéfices. Comment faire cela est policy. -Pour cette mesure, la __ "méthode gourmande" __ est efficace lorsque la valeur attendue de la récompense est connue. C'est __ pour ne sélectionner que les actions avec les attentes les plus élevées. -La __ "méthode ε-gourmande" __ correspond au cas où toutes les valeurs de récompense attendues ne sont pas connues. Cette politique consiste à rechercher avec la probabilité ε et à utiliser avec 1-ε. -Comme mesure similaire, il y a la sélection Boltzmann . Étant donné que les valeurs sont sélectionnées selon la distribution de Boltzmann à l'aide de la fonction temperature T, la valeur converge vers 0 au fil du temps, l'action est d'abord sélectionnée au hasard, mais l'action avec la valeur attendue la plus élevée est sélectionnée dans le temps. Sera. - DQN est la fonction __Q (fonction de valeur d'action) __ exprimée par __ deep learning __. La fonction de valeur d'action calcule la valeur attendue de la récompense en entrant l'état s et l'action a, mais cette méthode est utilisée car la quantité de s et a devient énorme si toutes les combinaisons sont exprimées par la fonction de table. .. -Une des fonctionnalités de DQN est __ "Experience Replay" __. Cela permet de récupérer les états, les actions et les récompenses de manière aléatoire afin de supprimer la nature de série __ des données d'entrée.

Cette fois, c'est anormal. Merci d'avoir lu jusqu'ici.

Recommended Posts

Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Introduction au Deep Learning ~ Règles d'apprentissage ~
Introduction au Deep Learning ~ Rétropropagation ~
[Introduction] Renforcer l'apprentissage
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Introduction à l'apprentissage profond ~ Préparation au codage ~
Introduction au Deep Learning ~ Dropout Edition ~
Introduction au Deep Learning ~ Propagation vers l'avant ~
Introduction à l'apprentissage profond ~ Expérience CNN ~
Apprentissage amélioré pour apprendre de zéro à profond
Introduction au Deep Learning ~ Pliage et mise en commun ~
Introduction à l'apprentissage automatique
Introduction à l'apprentissage profond ~ Fonction de localisation et de perte ~
[Mémorandum d'apprentissage] Introduction à vim
Une introduction à l'apprentissage automatique
Super introduction à l'apprentissage automatique
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
[Introduction au renforcement de l'apprentissage] part.1-Algorithme Epsilon-Greedy dans Bandit Game
introduction
Introduction à l'apprentissage profond ~ Expérience CNN ~
L'apprentissage en profondeur
Apprentissage profond pour démarrer sans GPU
Présentation de la bibliothèque d'apprentissage automatique SHOGUN
Apprenez en faisant! Apprentissage par renforcement profond_1
[Apprentissage de renforcement d'introduction] Renforcement de l'apprentissage pour bouger pour le moment
Essayez l'apprentissage Q dans une bataille de style Drakue [Introduction au renforcement de l'apprentissage]
Introduction à MQTT (Introduction)
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Introduction à l'apprentissage automatique: fonctionnement du modèle
Introduction à Tkinter 1: Introduction
<Cours> Deep Learning Day4 Renforcement de l'apprentissage / flux de tension
Une introduction à OpenCV pour l'apprentissage automatique
Mémorandum d'apprentissage profond
Introduction à PyQt
Comment étudier le test Deep Learning G
Apprentissage par renforcement futur_1
[Linux] Introduction à Linux
Alignement d'image: du SIFT au deep learning
Apprentissage en profondeur Python
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
Introduction à Scrapy (4)
Apprentissage profond × Python
Introduction à discord.py (2)
Une introduction à Python pour l'apprentissage automatique
Introduction au Deep Learning (2) - Essayez votre propre régression non linéaire avec Chainer-
Introduction à TensorFlow - Explication des termes et concepts d'apprentissage automatique
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 2
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
[Super introduction à l'apprentissage automatique] Découvrez les didacticiels Pytorch
Une introduction à l'apprentissage automatique pour les développeurs de robots
Un amateur a essayé le Deep Learning avec Caffe (Introduction)
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
Une introduction à Cython sans aller plus loin
[Introduction à StyleGAN2] Apprentissage indépendant avec 10 visages d'anime ♬
[Super introduction à l'apprentissage automatique] Découvrez les didacticiels Pytorch
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Introduction à Cython sans approfondir -2-
Introduction au Deep Learning (1) --Chainer est expliqué d'une manière facile à comprendre pour les débutants-
Premier apprentissage profond ~ Lutte ~