2009-12-04 16 views
4

Supposons que nous sommes dans une pièce où notre agent peut se déplacer le long de l'axe xx et yy. À chaque point, il peut se déplacer vers le haut, le bas, la droite et la gauche. Ainsi, notre espace d'état peut être défini par (x, y) et nos actions à chaque point sont données par (haut, bas, droite, gauche). Supposons que partout où notre agent fait une action qui le fera frapper un mur, nous lui donnerons une récompense négative de -1, et le remettrons dans l'état où il était auparavant. S'il trouve au centre de la pièce une marionnette, il gagne +10 de récompense. Lorsque nous mettons à jour notre QValue pour un couple état/action donné, nous voyons quelles actions peuvent être effectuées dans le nouvel état et calculent la valeur QValue maximale qui peut être atteinte, ainsi nous pouvons mettre à jour notre Q (s, a) valeur pour notre état actuel/action. Cela signifie que si nous avons un état de but dans le point (10, 10), tous les états autour de lui auront un QValue un peu plus petit et plus petit à mesure qu'ils s'éloignent. Maintenant, par rapport aux murs, il me semble que la même chose n'est pas vraie. Quand l'agent frappe un mur (supposons qu'il est dans la position (0, 0) et a fait l'action UP), il recevra pour cet état/action une récompense de -1, obtenant ainsi une QValue de -1. . Maintenant, si plus tard je suis dans l'état (0, 1), et en supposant que toutes les autres actions d'état (0,0 0) sont nulles, lors du calcul de la QValue de (0, 1) pour l'action GAUCHE , il le calculer de la manière suivante:Récompenses négatives dans QLearning

Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 }) = 0 + 0 = 0 

C'est, après avoir touché le mur ne se propage pas aux États voisins, contrairement à ce qui se passe lorsque vous avez des états de récompense positifs.

Dans mon optique, cela semble étrange. Au début, je pensais que trouver des paires état/action donnant des récompenses négatives serait aussi instructif que des récompenses positives, mais d'après l'exemple que j'ai montré ci-dessus, cette affirmation ne semble pas être vraie. Il semble y avoir un biais dans l'algorithme pour prendre plus en considération les récompenses positives que les récompenses négatives.

Est-ce le comportement attendu de QLearning? Les mauvaises récompenses ne devraient-elles pas être aussi importantes que les récompenses positives? Quelles sont les "solutions de contournement" pour cela?

+0

Est-ce une question * Programming *, ou une question * Theory *? – Sampson

Répondre

2

Vous pouvez éviter des prix négatifs en augmentant la récompense par défaut de 0 à 1, la récompense de but 10 et 11, et la peine de -1 à 0.

Il y a des tonnes de publications scientifiques sur Q-learning , donc je suis sûr qu'il existe d'autres formulations qui permettraient une rétroaction négative.

EDIT: Je suis corrigé, cela ne change pas le comportement comme je l'ai dit plus tôt. Mon processus de pensée était que la formulation avec rétroaction négative pourrait être remplacée par une sans. La raison de votre observation est que vous n'avez aucune incertitude sur le résultat de vos actions ou sur l'état dans lequel elles se trouvent, donc votre agent peut toujours choisir l'action qu'il pense avoir la récompense optimale (ainsi, la valeur Q maximale sur toutes les actions futures). C'est pourquoi votre feedback négatif ne se propage pas: l'agent évitera simplement cette action dans le futur.

Si, toutefois, votre modèle inclut une incertitude sur le résultat de vos actions (par ex.il y a toujours une probabilité de 10% de se déplacer dans une direction aléatoire), votre règle d'apprentissage devrait intégrer toutes les récompenses futures possibles (en remplaçant fondamentalement le maximum par une somme pondérée). Dans ce cas, la rétroaction négative peut aussi se propager (c'est pourquoi j'ai pensé que cela devrait être possible: p). Des exemples de tels modèles sont POMDPs.

+0

C'est une très bonne idée en effet. –

+1

Pourriez-vous expliquer comment vous pensez que cela fonctionne? Parce que non. Dans votre cas, max() finira par montrer 1 (la valeur par défaut) même si vous diminuez certains (mais pas tous) les composants. –

+0

En fait maintenant que j'y pense, l'agent voudra aller aux états de récompense négatifs (avant), car ils sont supérieurs à 0 (la valeur par défaut pour la table vide qvalue). –

4

La rétroaction négative ne se propage que lorsqu'elle est le seul résultat possible d'un mouvement particulier.

Que ce soit délibéré ou involontaire, je ne sais pas.

+0

C'est une bonne conclusion, oui. –

0

Vous trouverez une réponse à votre question dans le livre de "Renforcement de l'apprentissage: une introduction", qui comporte une section sur "Optimisation du biais et apprentissage double". L'algorithme «Q-Learing» présente l'inconvénient d'utiliser implicitement une valeur maximale surestimée comme estimation de la valeur maximale, ce qui peut conduire à un biais positif significatif. L'algorithme «Double Q-Learning» peut éviter les biais de maximisation et résoudre votre question, où vous devez apprendre deux estimations indépendantes, appelées Q_1 (a) et Q_2 (a). Ici, je colle le pseudo-code pour vous: Double Q-Learning