Question

J'essaie d'acquérir une compréhension intuitive de l'apprentissage en renforcement profond. Dans Deep Q-Networks (DQN), nous stockons toutes les actions / environnements / récompenses dans un tableau de mémoire et à la fin de l'épisode, les "rejouez" à travers notre réseau neuronal. Cela a du sens parce que nous essayons de construire notre matrice de récompenses et que nous voyons si notre épisode s'est terminé par une récompense, à redire cela dans notre matrice.

Je pense que la séquence d'actions qui a conduit à l'état de récompense est ce qui est important à capturer - cette séquence d'actions (et non les actions indépendamment) sont ce qui nous a conduits à notre état de récompense.

Dans le Papier atari-dqn par Mnih Et de nombreux tutoriels depuis que nous voyons la pratique d'un échantillonnage aléatoire à partir du tableau de mémoire et de la formation. Donc, si nous avons un souvenir de:

$ (action , a, état , 1) rightarrow (action , b, state , 2) rightarrow (action , c, state , 3) rightarrow (action , d, state , 4 ) Rightarrow Récompense! $

Nous pouvons entraîner un mini-lot de:

(Action C État 3), (Action B, État 2), récompense!

La raison donnée est:

Deuxièmement, l'apprentissage directement des échantillons consécutifs est inefficace, en raison des fortes corrélations entre les échantillons; La randomisation des échantillons brise ces corrélations et réduit donc la variance des mises à jour.

ou de ce tutoriel pytorch:

En échantillonnant à partir de celui-ci au hasard, les transitions qui accumulent un lot sont décorrélées. Il a été démontré que cela se stabilise et améliore considérablement la procédure de formation DQN.

Mon intuition me dirait que la séquence est ce qui est le plus important dans l'apprentissage du renforcement. La plupart des épisodes ont une récompense retardée, donc la plupart des actions / états n'ont pas de récompense (et ne sont pas "renforcés"). La seule façon d'apporter une partie de la récompense à ces états précédents est de briser rétroactivement la récompense à travers la séquence (à travers le future_reward dans l'algorithme Q de reward + reward * learning_rate(future_reward))

Un échantillonnage aléatoire de la banque de mémoire rompt notre séquence, comment cela aide-t-il lorsque vous essayez de remplir une matrice Q (récompense)?

Peut-être est-ce plus similaire à un modèle de Markov où chaque État doit être considéré comme indépendant? Où est l'erreur dans mon intuition?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top