Pourquoi REINFORCE fonctionne-t-il du tout?
Voici une capture d'écran de l'algorithme de gradient de politique populaire du livre de Sutton et Barto -
Je comprends la dérivation mathématique de la règle de mise à jour - mais je ne suis pas en mesure de créer une intuition quant à la raison pour laquelle cet algorithme devrait fonctionner en premier lieu. Ce qui me dérange vraiment, c'est que nous partons avec une politique incorrecte (c'est-à-dire que nous ne connaissons pas les paramètres$\theta$ encore), et nous utilisons cette politique pour générer des épisodes et faire des mises à jour conséquentes.
Pourquoi REINFORCE devrait-il fonctionner du tout? Après tout, l'épisode qu'il utilise pour la mise à jour du gradient est généré à l'aide de la politique qui est paramétrée par des paramètres$\theta$ qui doivent encore être mis à jour (l'épisode n'est pas généré en utilisant la politique optimale - nous ne pouvons pas le faire).
J'espère que ma préoccupation est claire et je vous demande à tous de fournir une certaine intuition pour expliquer pourquoi cela fonctionne! Je soupçonne que, d'une manière ou d'une autre , même si nous échantillonnons un épisode de la mauvaise politique, nous nous rapprochons de la bonne après chaque mise à jour (amélioration monotone). Alternativement, nous pourrions nous rapprocher de la politique optimale (ensemble optimal de paramètres$\theta$) en moyenne.
Alors, que se passe-t-il vraiment ici?
Réponses
La clé du travail de REINFORCE est la façon dont les paramètres sont déplacés vers $G \nabla \log \pi(a|s, \theta)$.
Notez que $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. Cela rend la mise à jour assez intuitive - le numérateur décale les paramètres dans la direction qui donne la plus forte augmentation de probabilité que l'action soit répétée, étant donné l'état, proportionnelle aux retours - c'est facile à voir car il s'agit essentiellement d'une ascension de gradient étape. Le dénominateur contrôle les actions qui auraient un avantage sur d'autres actions car elles seraient choisies plus fréquemment, en échelonnant inversement par rapport à la probabilité que l'action soit entreprise; imaginez s'il y avait eu des récompenses élevées mais l'action à la fois$t$ a une faible probabilité d'être sélectionné (par exemple 0,1), cela multipliera les retours par 10, ce qui entraînera une étape de mise à jour plus importante dans la direction qui augmenterait la probabilité que cette action soit sélectionnée le plus (ce que le numérateur contrôle, comme mentionné) ).
C'est pour l'intuition - pour voir pourquoi il fait le travail, alors pensez à ce que nous avons fait. Nous avons défini une fonction objective,$v_\pi(s)$, que nous souhaitons maximiser avec le respect de nos paramètres $\theta$. Nous trouvons la dérivée de cet objectif par rapport à nos paramètres, puis nous effectuons une ascension de gradient sur nos paramètres pour maximiser notre objectif, c'est-à-dire maximiser$v_\pi(s)$, donc si nous continuons à effectuer une ascension de gradient, nos paramètres de politique convergeront (éventuellement) vers des valeurs qui maximisent $v$ et donc notre politique serait optimale.