Comment gérer le retard dans l'apprentissage par renforcement?

Dec 14 2020

J'ai une question concernant le délai de l'apprentissage par renforcement (RL).

Dans le RL, on a un état, une récompense et une action. On suppose généralement que (pour autant que je sache), lorsque l'action est exécutée sur le système, l'état change immédiatement et que le nouvel état peut ensuite être analysé (influençant la récompense) pour déterminer l'action suivante. Cependant, que se passe-t-il s'il y a un retard dans ce processus. Par exemple, lorsqu'une action est exécutée au moment$t_1$, nous ne pouvons obtenir son effet sur le système qu'à $t_2$(Vous pouvez imaginer un flux: l'actionneur est dans la région amont et le capteur est dans la région aval, de sorte qu'il y aura un délai entre l'action et l'état). Comment gérer ce retard dans RL?

Réponses

nbro Dec 15 2020 at 05:38

La plupart des algorithmes RL supposent une discrétisation du temps (bien que RL puisse également être appliqué à des problèmes en temps continu [ 1]), c'est-à-dire qu'en théorie, peu importe le temps réel entre les étapes de temps consécutives, mais, dans la pratique, vous pouvez avoir des retards dans les récompenses ou les observations, vous ne pouvez donc pas effectuer par exemple les mises à jour TD immédiatement. Une solution naturelle à votre problème serait de garder une trace (par exemple dans un tampon) de la récompense obtenue et de l'état suivant dans lequel l'agent s'est retrouvé après avoir pris une certaine action dans un certain état, ou d'utiliser une sorte de mécanisme de synchronisation ( notez que je viens de proposer ces solutions, donc je ne sais pas si cela a été fait ou non pour résoudre les problèmes). En pratique, cela peut ne pas fonctionner (dans tous les cas), par exemple, lors de l'inférence en temps réel, où vous devez décider rapidement de ce que vous devez faire, même sans informations complètes sur l'état actuel ou la récompense.

Notez que, dans RL, les récompenses sont souvent dites retardées , en ce sens que

  1. vous ne connaissez peut-être les conséquences d'une action que de nombreux pas après l'avoir prise (la détermination des conséquences d'une action est connue sous le nom de problème d'attribution de crédit ), ou
  2. vous pouvez obtenir une récompense non nulle uniquement lorsque l'agent atteint un objectif / un état final (dans ce dernier cas, ces récompenses sont également appelées « clairsemées» ).

Ces deux problèmes sont courants dans RL. Cependant, si je comprends bien vos préoccupations, c'est un peu différent de votre problème, car votre problème implique également le retard potentiel de l'état ou même de la récompense qui était censée arriver à un pas de temps antérieur, qui peut être dû par exemple à un Capteur / actionneur erratique ou cassé. Par exemple, si vous utilisez DQN , qui construit généralement une approximation de l'état actuel en concaténant les dernières images capturées par votre appareil photo, si vous avez des retards dans les images qui entraînent la modification de l'ordre naturel des images, cela pourrait entraîner à une mauvaise approximation de l'état actuel, qui pourrait en fait conduire à un événement catastrophique. Donc, oui, c'est un problème important qui doit être abordé.

Étant donné que je ne suis pas vraiment familier avec les solutions existantes, je vous renvoie au document Challenges of Real-World Reinforcement Learning que j'ai lu il y a quelques semaines, qui mentionne ce problème et vous renvoie à d'autres travaux de recherche qui ont tenté de y remédier. Jetez également un œil à cette réponse , si vous êtes plus intéressé par les récompenses retardées / rares.