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?
Est-ce une question * Programming *, ou une question * Theory *? – Sampson