Maison >développement back-end >Golang >Pourquoi mes valeurs Q-Learning explosent-elles ?

Pourquoi mes valeurs Q-Learning explosent-elles ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 09:01:02820parcourir

Why are My Q-Learning Values Exploding?

Valeurs Q-Learning dépassant le seuil

Dans votre implémentation de Q-Learning, vous avez rencontré un problème où les valeurs Q devenaient excessivement grandes, entraînant un débordement. Pour résoudre ce problème, examinons les concepts fondamentaux et les problèmes potentiels :

Fonction de récompense

La fonction de récompense fournie attribue une récompense positive pour chaque pas de temps, favorisant ainsi le long terme jouer plutôt que gagner. Ceci n'est pas souhaitable car l'agent doit être incité à lutter pour la victoire.

Mettre à jour l'équation

Le nœud du problème réside dans l'équation de mise à jour des valeurs Q :

agent.values[mState] = oldVal + (agent.LearningRate * (agent.prevScore + (agent.DiscountFactor * reward) - oldVal))

Ici, agent.prevScore représente la récompense de l'action d'état précédente. Cependant, dans votre implémentation, vous l'avez défini sur la valeur Q de l'étape précédente (c'est-à-dire oldVal). Cette erreur entraîne une augmentation illimitée des valeurs Q.

Solution

Après avoir corrigé cette erreur en attribuant agent.prevScore à la récompense de l'étape précédente, l'agent le comportement se normalise. Les valeurs Q mises à jour reflètent désormais la récompense totale attendue, incitant l'agent à poursuivre la victoire.

Plages de valeurs Q

Dans les problèmes typiques de Q-Learning, Q- les valeurs sont limitées par le maximum de récompenses et de pénalités possibles. Dans votre cas, la fonction de récompense limite les valeurs Q à [-1, 1], car elle attribue -1 pour une perte et 1 pour une victoire. Cependant, dans d’autres scénarios, la plage peut être plus large, voire illimitée. La récompense totale attendue est un facteur essentiel pour déterminer la plage des valeurs Q.

En résolvant ces problèmes, vous avez mis en œuvre avec succès le Q-Learning et pouvez désormais former un agent qui joue de manière plus stratégique, en donnant la priorité gagner sur un jeu prolongé.

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