Comment ajuster les poids dans les valeurs Q avec approximation de la fonction linéaire

12

Dans l'apprentissage par renforcement, l'approximation de fonction linéaire est souvent utilisée lorsque de grands espaces d'états sont présents. (Lorsque les tables de recherche deviennent irréalisables.)

La forme de la valeur avec approximation de la fonction linéaire est donnée parQ

Q(s,a)=w1f1(s,a)+w2f2(s,a)+,

où sont les poids et les caractéristiques.f iwifi

Les fonctionnalités sont prédéfinies par l'utilisateur. Ma question est la suivante: comment les poids sont-ils attribués?

J'ai lu / téléchargé quelques diapositives de cours sur l' apprentissage avec approximation des fonctions. La plupart d'entre eux ont des diapositives sur la régression linéaire qui suivent. Comme ce ne sont que des diapositives, elles ont tendance à être incomplètes. Je me demande quelle est la connexion / relation entre les deux sujets.Q

cgo
la source

Réponses:

11

L'approximation des fonctions est fondamentalement un problème de régression (au sens général, c'est-à-dire opposé à la classification où la classe est discrète), c'est-à-dire qu'on essaie d'apprendre un mappage de fonction de l'entrée (dans votre cas ) à une valeur réelle sortie . Étant donné que nous n'avons pas de tableau complet de toutes les valeurs d'entrée / sortie, mais apprenons et estimons en même temps, les paramètres (ici: les poids ) ne peuvent pas être calculés directement à partir des données. Une approche courante consiste à utiliser la descente en pente .f(s,a)Q(s,a)Q(s,a)w

Voici l'algorithme général pour l'apprentissage de avec approximation de la fonction de valeurQ(s,a)

  • Init vector-paramètre au hasard (par exemple dans [0,1])w=(w1,w2,....,wn)
  • Pour chaque épisode:

    1. s état initial de l'épisode
    2. a action donnée par la stratégie (recommander: -greedy)πϵ
    3. Passez à l'action , observez la récompense et l'état suivantars
    4. ww+α(r+γmaxaQ(s,a)Q(s,a))wQ(s,a)
    5. ss

    Répétez 2-5 jusqu'à ce que soit terminals

où ...

  • α[0,1] est le taux d'apprentissage
  • γ[0,1] est le taux d'actualisation
  • maxaQ(s,a) est l'action dans l'état maximisantasQ(s,a)
  • wQ(s,a) est le gradient de en . Dans votre cas linéaire, le gradient est simplement un vecteurQ(s,a)w(f1(s,a),...,fn(s,a))

La mise à jour des paramètres / poids (4ème étape) peut être lue de la manière suivante:

  • (r+γmaxaQ(s,a))(Q(s,a)) est l'erreur entre la prédiction et la valeur "réelle" de , qui est la récompense obtenue maintenant PLUS la récompense escomptée et actualisée suivant la politique gourmande par la suiteQ(s,a)Q(s,a)r γmaxaQ(s,a)
  • Ainsi, le paramètre / poids-vecteur est décalé dans la direction la plus raide (donnée par le gradient ) de la quantité de l'erreur mesurée, ajustée par .wQ(s,a)α

Source principale:

Chapitre 8 Valeur Approximation du livre (globalement recommandé) Reinforcement Learning: An Introduction de Sutton et Barto (première édition). L'algorithme général a été modifié car il est couramment utilisé pour calculer au lieu de . J'ai également supprimé les traces d'éligibilité pour me concentrer sur la descente de gradient, donc en utilisant uniquement des sauvegardes en une étapeQ(s,a)V(s)e

Plus de références

steffen
la source
2
Lien brisé pour Barto & Sutton! Maintenant, ici -> incomplideas.net/book/the-book.html :) et comme ebook incomplideas.net/book/ebook mais je ne sais pas où trouver un fichier mobi
grisaitis
1
Le gradient de Q (s, a) n'est-il pas par rapport au vecteur colonne wa où chaque élément est fi (s, a), au lieu d'être la somme de tous les fi comme vous l'avez dit? L'objectif est que chaque poids soit modifié en fonction de la valeur de l'entité à laquelle il se multiplie.
Miguel Saraiva
@MiguelSaraiva Oui, corrigé. Merci beaucoup.
steffen