Pourquoi Q-Learning utilise epsilon-greedy pendant les tests?


18

Dans l'article de DeepMind sur Deep Q-Learning pour les jeux vidéo Atari ( ici ), ils utilisent une méthode epsilon-greedy pour l'exploration pendant la formation. Cela signifie que lorsqu'une action est sélectionnée pendant l'entraînement, elle est choisie soit comme action avec la valeur q la plus élevée, soit comme action aléatoire. Le choix entre ces deux est aléatoire et basé sur la valeur de epsilon, et epsilon est recuit pendant la formation de telle sorte qu'au départ, de nombreuses actions aléatoires sont prises (exploration), mais à mesure que la formation progresse, de nombreuses actions avec les valeurs q maximales sont prises (exploitation).

Ensuite, pendant les tests, ils utilisent également cette méthode epsilon-greedy, mais avec epsilon à une valeur très faible, de sorte qu'il existe un fort biais vers l'exploitation plutôt que l'exploration, favorisant le choix de l'action avec la valeur q la plus élevée par rapport à une action aléatoire. Cependant, des actions aléatoires sont encore parfois choisies (5% du temps).

Ma question est la suivante: pourquoi une exploration est-elle nécessaire à ce stade, étant donné que la formation a déjà été effectuée? Si le système a appris la politique optimale, alors pourquoi l'action ne peut-elle pas toujours être choisie comme ayant la valeur q la plus élevée? L'exploration ne doit-elle pas se faire uniquement lors de la formation, puis une fois la politique optimale apprise, l'agent peut simplement choisir à plusieurs reprises l'action optimale?

Merci!


Il pourrait être en quelque sorte lié à la nature déterministe de l'environnement ALE. Si vous ne faites pas d'actions aléatoires pendant les évaluations, vous ferez toujours la même séquence d'actions (puisque la séquence des états est la même). Ils font également des démarrages aléatoires - attendez jusqu'à 30 images sans rien faire pour cette raison.
yobibyte

Réponses:


10

Dans le document sur la nature, ils mentionnent:

Les agents formés ont été évalués en jouant chaque jeu 30 fois jusqu'à 5 minutes à chaque fois avec des conditions aléatoires initiales différentes (`` noop ''; voir Tableau de données étendu 1) et une politique e-greedy avec epsilon 0,05. Cette procédure est adoptée pour minimiser la possibilité de sur-ajustement pendant l'évaluation.

Je pense que cela signifie «annuler les effets négatifs du sur / sous-ajustement». L'utilisation d'epsilon de 0 est un choix pleinement exploitable (comme vous le signalez) et fait une déclaration forte.

Par exemple, considérons un jeu de labyrinthe où les estimations Q actuelles de l'agent sont convergées vers la politique optimale, sauf pour une grille, où il choisit avidement de se déplacer vers une frontière qui le fait rester dans la même grille. Si l'agent atteint un tel état et qu'il choisit l'action Max Q, il y sera bloqué pour l'éternité. Cependant, garder un élément vaguement exploratoire / stochastique dans sa politique (comme une petite quantité d'epsilon) lui permet de sortir de tels états.

Cela dit, à partir des implémentations de code que j'ai examinées (et codées moi-même) dans la pratique, les performances sont souvent mesurées avec une politique gourmande pour les raisons exactes que vous énumérez dans votre question.


3

La réponse est là dans le journal lui-même. Ils ont utilisé pour éviter le sur-ajustement. Ce modèle est utilisé comme référence. Et yobibyte mentionné dans le commentaire, ils font des démarrages aléatoires pour la même raison. Et puis les performances de l'algorithme sont évaluées par rapport à un expert humain. L'algorithme n'a pas de modèle de son adversaire, donc le petit epsilon. Si vous avez le modèle de votre adversaire, votre problème sera déterministe au lieu d'être stochastique. J'espère que cela répond à votre questionϵ =0,05


2

Je pense que le but des tests est d'avoir une idée de la façon dont le système réagit dans des situations réelles.

Option 1:
Ils pourraient en fait mettre du bruit dans le jeu du monde réel - en faisant des mouvements vraiment aléatoires. Cela pourrait rendre la commutation -politique parfaitement représentative du jeu réel. ϵ

Option 2:
S'ils craignent d'être cassants, de jouer contre un joueur moins "rationnellement rationnel", alors ils pourraient "recuire" leurs scores d'entraînement afin de ne pas les surestimer.

Option 3:
C'est leur fumée magique. Il y en aura des morceaux qu'ils ne peuvent pas et ne veulent pas partager. Ils pourraient publier ceci afin de masquer quelque chose de propriétaire ou exceptionnellement pertinent pour leur entreprise qu'ils ne veulent pas partager.

Option 4:
Ils pourraient utiliser des tests répétés et diverses valeurs d'Epsilon pour tester la quantité de «gras» restant dans le système. S'ils avaient une faible randomisation, ou autant d'échantillons que même une randomisation juste commence à se répéter, alors la méthode pourrait "apprendre" un comportement faux pour faire un biais pseudo-aléatoire. Cela pourrait permettre de vérifier cela dans la phase de test.

Je suis sûr qu'il existe une demi-douzaine d'autres raisons significatives, mais c'est ce à quoi je pouvais penser.

EDIT: note à moi-même, j'aime beaucoup la pensée "cassante". Je pense que cela peut être une faiblesse existentielle de l'IA intermédiaire de première génération.


1

ϵ

ϵϵ=0,05

D'autant plus que l'entrée prétraitée contient un historique des états rencontrés précédemment, la préoccupation est qu'au lieu de généraliser au gameplay sous-jacent, l'agent mémorise simplement les trajectoires optimales pour ce jeu spécifique et les rejoue pendant la phase de test; c'est ce que l'on entend par "la possibilité de sur-ajustement lors de l'évaluation" . Pour les environnements déterministes, cela est évident, mais également pour les transitions d'états stochastiques, la mémorisation (c'est-à-dire le sur-ajustement) peut se produire. L'utilisation de la randomisation pendant la phase de test, sous la forme de démarrages sans opération de longueur aléatoire ainsi que d'une partie d'actions aléatoires pendant le jeu, oblige l'algorithme à faire face à des états imprévus et nécessite donc un certain degré de généralisation.

ϵϵ=0lors des tests pourrait potentiellement améliorer les performances, mais il s'agit ici de montrer la possibilité de généraliser. De plus, dans la plupart des jeux Atari, l'état évolue également sur un no-op et donc l'agent serait naturellement «décollé» si cela se produisait. Compte tenu de l'exemple de labyrinthe mentionné ailleurs où l'environnement n'évolue pas sans intervention, l'agent apprendrait rapidement que se heurter à un mur n'est pas une bonne idée si la récompense est correctement façonnée (-1 pour chaque étape par exemple); en particulier lors de l'utilisation de valeurs initiales optimistes, l'exploration requise se fait naturellement. Si vous trouvez toujours que votre algorithme reste bloqué dans certaines situations, cela signifie que vous devez augmenter le temps de formation (c'est-à-dire exécuter plus d'épisodes), au lieu d'introduire une randomisation auxiliaire par rapport aux actions.

Si vous travaillez cependant dans un environnement avec une dynamique de système en évolution (c'est-à-dire que les transitions d'état sous-jacentes ou les récompenses changent au fil du temps), vous devez conserver un certain degré d'exploration et mettre à jour votre politique en conséquence afin de suivre les changements.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.