Comprendre l'apprentissage par renforcement avec Neural Net (Q-learning)

9

J'essaie de comprendre l'apprentissage par renforcement et les processus de décision markoviens (MDP) dans le cas où un réseau neuronal est utilisé comme approximateur de fonction.

J'ai des difficultés avec la relation entre le MDP où l'environnement est exploré de manière probabiliste, comment cela correspond aux paramètres d'apprentissage et comment la solution / les politiques finales sont trouvées.

Ai-je raison de supposer que dans le cas de l'apprentissage Q, le réseau neuronal agit essentiellement comme un approximateur de fonction pour la valeur q elle-même tant d'étapes à l'avenir? Comment cette correspondance avec la mise à jour des paramètres via la rétropropagation ou d'autres méthodes?

De plus, une fois que le réseau a appris à prédire la future récompense, comment cela s'inscrit-il dans le système en termes de prise de décision? Je suppose que le système final ne ferait pas de transition probabiliste entre les états.

Merci

CatsLoveJazz
la source

Réponses:

4

Dans Q-Learning, à chaque étape, vous utiliserez des observations et des récompenses pour mettre à jour votre fonction de valeur Q:

Qt+1(st,at)=Qt(st,at)+α[Rt+1+γmaxaQt(st+1,a)Qt(st,at)]

Vous avez raison de dire que le réseau neuronal n'est qu'une approximation de fonction pour la fonction de valeur q.

En général, la partie d'approximation n'est qu'un problème d'apprentissage supervisé standard. Votre réseau utilise (s, a) comme entrée et la sortie est la valeur q. Comme les valeurs q sont ajustées, vous devez former ces nouveaux échantillons au réseau. Néanmoins, vous rencontrerez des problèmes lors de l'utilisation d'échantillons corrélés et SGD en souffrira.

Si vous regardez le document DQN, les choses sont légèrement différentes. Dans ce cas, ce qu'ils font, c'est mettre des échantillons dans un vecteur (relecture d'expérience). Pour enseigner le réseau, ils échantillonnent des tuples du vecteur, bootstrap en utilisant ces informations pour obtenir une nouvelle valeur q qui est enseignée au réseau. Quand je dis enseignement, je veux dire ajuster les paramètres du réseau en utilisant la descente de gradient stochastique ou votre approche d'optimisation préférée. En n'enseignant pas les échantillons dans l'ordre qui sont collectés par la politique, on les décorrèle et cela aide à la formation.

Enfin, pour prendre une décision sur l'état , vous choisissez l'action qui fournit la valeur q la plus élevée:s

a(s)=argmaxa Q(s,a)

Si votre fonction de valeur Q a été apprise complètement et que l'environnement est stationnaire, il est bon d'être gourmand à ce stade. Cependant, tout en apprenant, vous devez explorer. Il existe plusieurs approches étant -greedy l'un des moyens les plus simples et les plus courants.ε

Juan Leni
la source
Merci c'est très utile, ça fait beaucoup de sens! Juste pour clarifier, une fois que le système a été formé, pourriez-vous simplement envoyer chaque action possible avec les états d'entrée actuels au réseau neuronal et sélectionner l'action qui estime la plus grande récompense (valeur q)?
CatsLoveJazz
1
Correct. Cependant, gardez à l'esprit que si votre environnement n'est pas stationnaire, vous voudrez peut-être continuer l'exploration. En général, Q-learning fonctionne en ligne et vous vous entraînez en continu.
Juan Leni
Très bien, êtes-vous au courant de la littérature entourant votre réponse? Je suppose qu'une alternative à la formation en ligne serait de se recycler sur les données nouvellement observées toutes les n périodes afin de ne pas laisser une exploration échouée affecter les performances dans un environnement de production.
CatsLoveJazz
1
Je fais essentiellement référence au dilemme exploration-exploitation. Il existe de nombreuses approches .. Une application facile est ici: tokic.com/www/tokicm/publikationen/papers/… où vous ajustez adaptativement epsilon en fonction de l'erreur de votre fonction de valeur
Juan Leni
1
Un papier classique / livre (1996): web.mit.edu/people/dimitrib/NDP_Encycl.pdf . athenasc.com/ndpbook.html De nos jours, il y a beaucoup de travail combinant Deep Neural Networks et RL. Les papiers Deepmind en sont un bon exemple: storage.googleapis.com/deepmind-data/assets/papers/…
Juan Leni