Environnements d'apprentissage par renforcement dans Amazon SageMaker - Amazon SageMaker

Environnements d'apprentissage par renforcement dans Amazon SageMaker

Amazon SageMaker RL utilise des environnements pour imiter des scénarios concrets. Compte tenu de l'état actuel de l'environnement et de l'action effectuée par le ou les agent, le simulateur traite l'impact de l'action et renvoie l'état suivant ainsi qu'une récompense. Les simulateurs sont utiles lorsqu'il n'est pas prudent d'entraîner un agent dans le monde réel (par exemple, faire voler un drone) ou si l'algorithme d'apprentissage à renforcement met trop de temps à converger (par exemple, lors d'une partie d'échecs).

Le schéma suivant illustre un exemple des interactions avec un simulateur pour un jeu de course.

L'environnement de simulation se compose d'un agent et d'un simulateur. Ici, un réseau neuronal convolutif consomme des images depuis le simulateur et génère des actions pour contrôler la manette de jeu. Avec plusieurs simulations, cet environnement génère des données d'entraînement du formulaire state_t, action, state_t+1 et reward_t+1. La définition de la récompense n'est pas futile et impacte la qualité du modèle d'apprentissage à renforcement. Nous souhaitons fournir quelques exemples de fonctionnalités de récompense, mais qui soient configurables par l'utilisateur.

Utiliser l'interface OpenAI Gym pour les environnements dans SageMaker RL

Pour utiliser des environnements OpenAI Gym dans SageMaker RL, utilisez les éléments d'API suivants. Pour plus d'informations sur OpenAI Gym, consultez https://gym.openai.com/docs/.

  • env.action_space—Définit les actions effectuées par l'agent, spécifie si chaque action est continue ou discrète, et si l'action est continue, spécifie le minimum et le maximum.

  • env.observation_space—Définit les observations reçues par l'agent depuis l'environnement, ainsi que le minimum et le maximum d'observations continues.

  • env.reset()—Initialise un épisode d'entraînement. La fonction reset() renvoie l'état initial de l'environnement, et l'agent utilise l'état initial pour effectuer sa première action. L'action est alors envoyée à step() de manière répétée jusqu'à ce que l'épisode atteigne un état terminal. Lorsque step() renvoie done = True, l'épisode se termine. La boîte à outils d'apprentissage à renforcement réinitialise l'environnement en appelant reset().

  • step()—Prend l'action de l'agent comme entrée et sort l'état suivant de l'environnement, la récompense, si l'épisode est terminé, et un dictionnaire info pour communiquer des informations de débogage. Il est de la responsabilité de l'environnement de valider les entrées.

  • env.render()—Utilisé pour des environnements à visualisation. La boîte à outils d'apprentissage à renforcement appelle cette fonction pour capturer des visualisations de l'environnement après chaque appel à la fonctionnalité step().

Utiliser des environnements open source

Vous pouvez utiliser des environnements open source, tels que EnergyPlus et RoboSchool, dans SageMaker LR en créant dans votre propre conteneur. Pour plus d'informations sur EnergyPlus, consultez https://energyplus.net/. Pour plus d'informations sur RoboSchool, consultez https://github.com/openai/roboschool. Les exemples HVAC et RoboSchool du référentiel SageMaker illustrent comment créer un conteneur personnalisé à utiliser avec SageMaker RL :

Utiliser des environnements commerciaux

Vous pouvez utiliser des environnements commerciaux, tels que MATLAB et Simulink, dans SageMaker LR en créant dans votre propre conteneur. Vous devez gérer vos propres licences.