Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Q-learning

Un article de Wikipédia, l'encyclopédie libre.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

L'article doit être débarrassé d'une partie de sonjargon().

Sa qualité peut être largement améliorée en utilisant un vocabulaire plus directement compréhensible.

Discutez des points à améliorer enpage de discussion.
Dans leQ-learning, l'agent exécute une action a en fonction de l'états et d'une fonctionQ. Il perçoit alors le nouvel état s' et une récompenser de l'environnement. Il met alors à jour la fonctionQ. Le nouvel état s' devient alors l'état s, et l'apprentissage continue.

Enintelligence artificielle, plus précisément enapprentissage automatique, leQ-learning est un algorithme d'apprentissage par renforcement. Il ne nécessite aucun modèle initial de l'environnement. La lettre 'Q' désigne la fonction qui mesure la qualité d'une action exécutée dans un état donné du système[1].

Applications

[modifier |modifier le code]

Google DeepMind a réalisé unprogramme informatique qui joue à desjeux vidéosAtari 2600. Pour cela, ils ont appliqué le Q-learning avec de l'apprentissage profond. Cette technique s'appelle alors le "deep reinforcement learning" or "deep Q-learning". Cela fait l'objet d'un brevet[2].

Description

[modifier |modifier le code]
Environnement sous la forme d'une grille. Le robot se déplace de case en case. Sur une case "tête de mort" : le robot meurt et perd 100€. Sur une case "gâteau", le robot gagne 100€. Sur les autres cases, le robot perd 1€. Pour une case s, plus une flèche dans une direction a est noire, plus Q(s, a) est grand. Si les flèches sont pleines et vertes, il s'agit d'une valeur Q(s, a) maximale.

Considérons un système quelconque : par exemple, un jeu vidéo, un robot qui doit s'évader d'un labyrinthe, ou encore un robot qui doit apprendre à tenir un œuf. Un agent (programme informatique, robot) doit alors apprendre à réaliser une tâche : gagner une partie de jeu vidéo avec le plus de points, s'évader d'un labyrinthe sans se faire attraper, tenir l’œuf le plus longtemps sans le casser. Le Q-learning permet d'apprendre une stratégie, qui indique quelle action effectuer dans chaque état du système. Par exemple, le robot peut apprendre d'aller à droite quand il se trouve sur la case (2, 3), mais d'aller en haut s'il se trouve sur la case (4, 6), etc. A chaque étape, l'agent reçoit une récompense immédiate qui est unnombre réel. Typiquement, l'agent peut recevoir 100 euros s'il est sorti du labyrinthe, ou s'il a gagné le jeu. L'agent reçoit -100 euros s'il est piégé, si l’œuf est cassé. C'est le concepteur de l'environnement qui choisit ces récompenses immédiates lorsqu'il modélise le système.

Plus précisément, le Q-learning apprend une fonction de valeur notéeQ. Cette fonction Q estime legain potentiel, c'est-à-dire la somme des récompensesQ(s,a) sur le long terme, apportée par le choix d'une certaine actiona dans un certain états en suivant une politique optimale. Cette fonction Q s'appelle fonction de valeur actions-états, puisqu'elle prend comme argument un état s et une action a. Par exemple, Q( être en (2, 3), aller à droite) est une estimation de la somme des récompenses si l'agent (programme informatique, robot) est dans la case (2, 3) et décide d'aller à droite. Lorsque cette fonction de valeur Q d'actions-états est connue ou apprise par l'agent, la stratégie optimale peut être construite en sélectionnant l'action à valeur maximale pour chaque état, c'est-à-dire en sélectionnant l'actiona qui maximise la valeurQ(s,a) quand l'agent se trouve dans l'états. Autrement dit, si l'agent est dans la case (2, 3), il regarde les valeurs Q( être en (2, 3), aller à droite), Q( être en (2, 3), aller à gauche), Q( être en (2, 3), aller à haut) , Q( être en (2, 3), aller à bas) et Q( être en (2, 3), rester sur place). Il choisit alors l'action qui maximise la valeur. Par exemple si

  • Q( être en (2, 3), aller à droite) = 78€
  • Q( être en (2, 3), aller à gauche) = 22€
  • Q( être en (2, 3), aller à haut) = -5€
  • Q( être en (2, 3), aller à bas) = 12€

alors l'agent décide d'aller à droite (car 78€ est le gain maximal).

Un des points forts duQ-learning est qu'il permet de comparer les récompenses probables de prendre les actions accessibles[pas clair] sans avoir de connaissance initiale de l’environnement. En d'autres termes, bien que le système soit modélisé par unprocessus de décision markovien (fini), l'agent qui apprend ne le connaît pas et l'algorithme duQ-learning ne l'utilise pas directement : en particulier, l'algorithme n'utilise jamais l'information des probabilités de passer d'un état s' à un état s en exécutant l'action a. Le Q-learning ne fait que interagir avec l'environnement.

Cette notion d’apprentissage par récompense a été introduite à l'origine dans la thèse de Watkins en 1989[3]. C'est une variante de l'apprentissage par différence temporelle[4]. LeQ-learning converge vers une stratégie optimale, c'est-à-dire qu'il conduit à maximiser la récompense totale des étapes successives[5].

Algorithme

[modifier |modifier le code]
La fonction de valeur action-état dans une table est initialisée à 0 pour chaque couple action-état. Chaque cellule est mise à jour pendant l'exécution de l'algorithme Q-learning.

La situation consiste en un agent, un ensemble d'étatsS{\displaystyle S} et d'actionsA{\displaystyle A}. En réalisant une actionaA{\displaystyle a\in A}, l'agent passe d'un états{\displaystyle s} à un nouvel états{\displaystyle s'}et reçoit une récompenser{\displaystyle r} (c'est une valeur numérique). Le but de l'agent est de maximiser sa récompense totale. Cela est réalisé par apprentissage de l'action optimale pour chaque état. L'action optimale pour chaque état correspond à celle avec la plus grande récompense sur le long terme. Cette récompense est la somme pondérée de l'espérance mathématique des récompenses de chaque étape future à partir de l'état actuel. La pondération de chaque étape peut êtreγΔt{\displaystyle \gamma ^{\Delta t}}Δt{\displaystyle \Delta t} est le délai entre l'étape actuelle et future etγ{\displaystyle \gamma } un nombre compris entre 0 et 1 (autrement dit0γ1{\displaystyle 0\leq \gamma \leq 1}) appeléfacteur d'actualisation.

L'algorithme calcule une fonction de valeur action-état :

Q:S×AR{\displaystyle Q:S\times A\to \mathbb {R} }

Avant que l'apprentissage ne débute, la fonctionQ{\displaystyle Q} est initialisée arbitrairement. Ensuite, à chaque choix d'action, l'agent observe la récompense et le nouvel état (qui dépend de l'état précédent et de l'action actuelle). Le cœur de l'algorithme est unemise à jour de la fonction de valeur. La définition de la fonction de valeur est mise à jour à chaque étape de la façon suivante[6] :

Q[s,a]:=(1α)Q[s,a]+α(r+γmaxaQ[s,a]){\displaystyle Q[s,a]:=(1-\alpha )Q[s,a]+\alpha \left(r+\gamma \max _{a'}Q[s',a']\right)}

s{\displaystyle s'}est le nouvel état,s{\displaystyle s} est l'état précédent,a{\displaystyle a} est l'action choisie,r{\displaystyle r} est larécompense reçue par l’agent,α{\displaystyle \alpha } est un nombre entre 0 et 1, appeléfacteur d'apprentissage, etγ{\displaystyle \gamma } est lefacteur d'actualisation. En d'autres termes, la valeur deQ[s,a]{\displaystyle Q[s,a]} est remplacée par unemoyenne pondérée entre la précédente valeur deQ[s,a]{\displaystyle Q[s,a]} (pondérée par1α{\displaystyle 1-\alpha }) et le gain attendur+γmaxaQ[s,a]{\displaystyle r+\gamma \max _{a'}Q[s',a']} (pondérée parα{\displaystyle \alpha }).

Un épisode de l'algorithme finit lorsquest+1{\displaystyle s_{t+1}} est un état final. Toutefois, leQ{\displaystyle Q}-learning peut aussi être appliqué à des tâches non épisodiques. Si le facteur d'actualisation est plus petit que 1, la valeur action-état est finie même pourΔt{\displaystyle \Delta t} infini.

N.B. : Pour chaque état finalsf{\displaystyle s_{f}}, la valeur deQ(sf,a){\displaystyle Q(s_{f},a)} n'est jamais mise à jour et maintient sa valeur initiale. Généralement,Q(sf,a){\displaystyle Q(s_{f},a)} est initialisé à zéro.

Pseudo-code

[modifier |modifier le code]

Voici lepseudo-code du Q-learning.

entrée : taux d'apprentissage α > 0 et un petit ε > 0, taux γ > 0sortie : tableau Q[., .]initialiser Q[s, a] pour tout état s non final, toute action a de façon arbitraire,          et Q(état terminal, a) = 0 pour toute action arépéter      //début d'un épisode       s := état initialrépéter               //étape d'un épisodechoisir une action a depuis s en utilisant la politique spécifiée par Q (par exemple ε-greedy)exécuter l'action aobserver la récompense r et le nouvel état s'               Q[s, a] := Q[s, a] + α[r + γ maxa' Q(s', a') - Q(s, a)]               s := s'jusqu'à ce que s soit l'état terminal

Influence des variables sur l'algorithme

[modifier |modifier le code]

Facteur d'apprentissage

[modifier |modifier le code]

Le facteur d'apprentissageα{\displaystyle \alpha } détermine à quel point la nouvelle information calculée surpassera l'ancienne. Siα{\displaystyle \alpha } = 0, l'agent n'apprend rien. A contrario, siα{\displaystyle \alpha } = 1, l'agent ignore toujours tout ce qu'il a appris jusqu'à présent et ne considérera que la dernière information.

Dans un environnement déterministe, la vitesse d'apprentissageαt(s,a)=1{\displaystyle \alpha _{t}(s,a)=1} est optimale. Lorsque le problème est stochastique, l'algorithme converge sous certaines conditions dépendant de la vitesse d'apprentissage. En pratique, souvent cette vitesse correspond àαt(s,a)=0.1{\displaystyle \alpha _{t}(s,a)=0.1} pour toute la durée du processus[7].

Facteur d'actualisation

[modifier |modifier le code]

Le facteur d'actualisationγ détermine l'importance des récompenses futures. Un facteurγ = 0 rendrait l'agent myope en ne considérant seulement les récompenses courantes, alors qu'un facteurγ proche de 1 ferait aussi intervenir les récompenses plus lointaines. Si le facteur d'actualisationγ est proche ou égal à 1, la valeur deQ{\displaystyle Q} peut diverger[8].

Convergence

[modifier |modifier le code]

En 1992, Watkins et Dayan ont proposé la première démonstration de convergence de l'algorithme de Q-learning[9]. Le théorème est le suivant.

On suppose que les couples état-action(s,a){\displaystyle (s,a)} apparaissent une infinité de fois (cf. p. 281 de[9] ; attention, le vocabulaire utilisé est différent de celui du livre de Sutton et Barto[7] ; un épisode pour Watkins et Dayan est une observation de l'état, la sélection de l'action, l'observation de la récompense et la mise à jour ; alors que dans le livre de Sutton et Barto, un épisode est une suite de mise à jour jusqu'à atteindre un état final). Notonsni(s,a){\displaystyle n^{i}(s,a)} le numéro de l'étape où l'agent est dans l'état s et s'apprète à exécuter l'action a pour lai{\displaystyle i}-ème fois. On suppose que les récompenses sont bornées, i.e. il existe une constanteR{\displaystyle {\mathfrak {R}}} telle que la récompensern{\displaystyle r_{n}} à l'étapen{\displaystyle n} vérifie|rn|R{\displaystyle |r_{n}|\leq {\mathfrak {R}}}. Concernant les facteurs d'apprentissage, en notant le facteur d'apprentissageαn{\displaystyle \alpha _{n}} à l'étapen{\displaystyle n}, on demande que :

Le théorème dit, alors que sous ces conditions, le tableauQn{\displaystyle Q_{n}} à l'étapen{\displaystyle n}, converge avec probabilité 1 vers le tableau optimalQ{\displaystyle Q^{*}}.

Extensions et variantes

[modifier |modifier le code]

DoubleQ-learning

[modifier |modifier le code]

Comme le Q-learning utilise l'estimateur max, le Q-learning surestime la valeur des actions et de fait, dans des environnements bruités, l'apprentissage est lent. Ce problème est résolu dans la variante appelée double Q-learning[10] qui utilise deux fonctions d'évaluationQA{\displaystyle Q^{A}}etQB{\displaystyle Q^{B}} apprises sur deux ensembles d'expériences différents. La mise à jour se fait de façon croisée :

Qt+1A(st,at)=QtA(st,at)+αt(st,at)(rt+γ QtB(st+1,arg maxaQtA(st+1,a))QtA(st,at)){\displaystyle Q_{t+1}^{A}(s_{t},a_{t})=Q_{t}^{A}(s_{t},a_{t})+\alpha _{t}(s_{t},a_{t})\left(r_{t}+\gamma ~Q_{t}^{B}\left(s_{t+1},\mathop {\operatorname {arg~max} } _{a}Q_{t}^{A}(s_{t+1},a)\right)-Q_{t}^{A}(s_{t},a_{t})\right)}, et
Qt+1B(st,at)=QtB(st,at)+αt(st,at)(rt+γ QtA(st+1,arg maxaQtB(st+1,a))QtB(st,at)).{\displaystyle Q_{t+1}^{B}(s_{t},a_{t})=Q_{t}^{B}(s_{t},a_{t})+\alpha _{t}(s_{t},a_{t})\left(r_{t}+\gamma ~Q_{t}^{A}\left(s_{t+1},\mathop {\operatorname {arg~max} } _{a}Q_{t}^{B}(s_{t+1},a)\right)-Q_{t}^{B}(s_{t},a_{t})\right).}

Comme la valeur estimée est évaluée en utilisant une autre politique, le problème de la surestimation est résolu. L'apprentissage de l'algorithme à ensemble peut être effectué en utilisant des techniques d'apprentissage profond, ce qui donne les réseaux DQN (deep Q-networks, réseaux profonds Q). On peut alors avoir le Double DQN, pour obtenir de meilleures performances qu'avec l'algorithme DQN original[11].

Comparaison avec d'autres algorithmes

[modifier |modifier le code]

Q-learning estoff-policy, c'est-à-dire que l'on distingue :

Un algorithme similaire à Q-learning est l'algorithmeSARSA mais la mise à jour, elle, utilise la politique en train d'être apprise. Dans SARSA, l'équation de mise à jour estQ[s,a]:=(1α)Q[s,a]+α(r+γQ[s,a]){\displaystyle Q[s,a]:=(1-\alpha )Q[s,a]+\alpha \left(r+\gamma Q[s',a']\right)} où a' est l'action choisie depuis l'état s' par la politique en cours d'apprentissage. Q-learning apprend une politique optimale, alors que SARSA apprend une politique proche de l'optimale. L'exemple classique (du livre de Sutton et Barto) est celui d'un robot qui apprend à aller d'un point A à un point B près d'une falaise. Q-learning apprend une politique optimale qui longe la falaise, alors que SARSA apprend une politique plus sûre, où le robot est un peu plus loin du précipice. En résumé, Q-learning est plus efficace et SARSA plus sûr[12].

Voir aussi

[modifier |modifier le code]
  • SARSA, un autre algorithme d'apprentissage par renforcement mais on-policy

Notes et références

[modifier |modifier le code]
  1. TambetMatiisen, « Demystifying Deep Reinforcement Learning | Computational Neuroscience Lab », surneuro.cs.ut.ee,(consulté le)
  2. « Methods and Apparatus for Reinforcement Learning, US Patent #20150100530A1 », US Patent Office,(consulté le)
  3. C. J. Watkins,Learning from delayed rewards, Kings College, Cambridge, mai 1989
  4. (en) George F Luger,Artificial intelligence : Structures and strategies for complex problem solving. 5e édition., Addison Wesley,, 903 p.(ISBN 0-321-26318-9,lire en ligne), p. 448
  5. Watkins et Dayan,Q-learning.Machine Learning, 1992
  6. (en) David L.Poole et Alan K.Mackworth,Artificial Intelligence,Cambridge University Press,(ISBN 978-0-511-79479-7,DOI 10.1017/CBO9780511794797,lire en ligne), p. 469.
  7. a etbReinforcement Learning: An Introduction, Richard Sutton et Andrew Barto, MIT Press, 1998.
  8. (en)Stuart J. Russell etPeter Norvig,Artificial Intelligence : A Modern Approach,Prentice Hall,, Third éd., 1132 p.(ISBN 978-0-13-604259-4),p. 649.
  9. a etb(en) Christopher J. C. H.Watkins et PeterDayan, « Q-learning »,Machine Learning,vol. 8,no 3,‎1er mai 1992,p. 279–292(ISSN 1573-0565,DOI 10.1007/BF00992698,lire en ligne, consulté le).
  10. Hadovan Hasselt, « Double Q-learning »,Advances in Neural Information Processing Systems,vol. 23,‎,p. 2613–2622(lire en ligne[PDF]).
  11. Hadovan Hasselt, ArthurGuez et DavidSilver, « Deep reinforcement learning with double Q-learning »,AAAI Conference on Artificial Intelligence,‎,p. 2094–2100(lire en ligne[PDF]).
  12. « Machine Learning : L'apprentissage par renforcement », surwww-igm.univ-mlv.fr(consulté le).
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Q-learning&oldid=223098151 ».
Catégorie :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp