Maison  >  Article  >  développement back-end  >  Pourquoi mes valeurs Q-Learning explosent-elles ? Une histoire de récompenses gonflées et de limites à virgule flottante.

Pourquoi mes valeurs Q-Learning explosent-elles ? Une histoire de récompenses gonflées et de limites à virgule flottante.

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 00:50:28619parcourir

 Why Are My Q-Learning Values Exploding? A Tale of Inflated Rewards and Floating Point Limits.

Valeurs Q-Learning dépassant le seuil

Dans une tentative de mise en œuvre de Q-Learning, un problème est survenu lorsque les valeurs d'état-action dépassaient le seuil limites d’une variable à virgule flottante double précision. L'implémentation initiale attribuait ce problème à l'utilisation de agent.prevState au lieu d'un tuple état-action. Cependant, la cause première a été identifiée comme étant le calcul du prevScore.

Comprendre le problème

Q-Learning met à jour la valeur de Q(s, a) en fonction du formule :

Q(s, a) = Q(s, a) + (LearningRate * (prevScore + (DiscountFactor * reward) - Q(s, a)))

L'aspect crucial est que prevScore représente la récompense pour l'action d'état précédente, pas la valeur Q. Dans la mise en œuvre initiale, prevScore contenait la valeur Q de l'étape précédente au lieu de la récompense elle-même, ce qui entraînait des valeurs gonflées qui dépassaient la limite en virgule flottante.

Résolution

En révisant prevScore pour conserver la véritable récompense de l'étape précédente, le processus d'apprentissage s'est comporté comme prévu. La valeur maximale après 2 millions d'épisodes a été considérablement réduite et le modèle a montré un comportement raisonnable pendant le jeu.

Le rôle de la récompense

Il est important de noter l'influence de la fonction de récompense en apprentissage par renforcement. L’objectif est de maximiser la récompense totale attendue. Si une récompense est donnée pour chaque pas de temps, l’algorithme favorisera la prolongation du jeu, conduisant à des valeurs Q trop élevées. Dans cet exemple, l'introduction d'une récompense négative pour chaque pas de temps a encouragé l'agent à viser la victoire, ramenant les valeurs Q dans des limites appropriées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn