Comment définir les états dans l'apprentissage par renforcement?


14

J'étudie l'apprentissage par renforcement et ses variantes. Je commence à comprendre comment les algorithmes fonctionnent et comment ils s'appliquent à un MDP. Ce que je ne comprends pas, c'est le processus de définition des états du MDP. Dans la plupart des exemples et des didacticiels, ils représentent quelque chose de simple comme un carré dans une grille ou similaire.

Pour les problèmes plus complexes, comme un robot qui apprend à marcher, etc., comment procédez-vous pour définir ces états? Pouvez-vous utiliser des algorithmes d'apprentissage ou de classification pour «apprendre» ces états?

Réponses:


14

Le problème de la représentation des états dans l'apprentissage par renforcement (RL) est similaire aux problèmes de représentation des entités, de sélection des entités et d'ingénierie des entités dans l'apprentissage supervisé ou non supervisé.

La littérature qui enseigne les bases de RL a tendance à utiliser des environnements très simples pour que tous les états puissent être énumérés. Cela simplifie les estimations de valeur en moyennes glissantes de base dans un tableau, qui sont plus faciles à comprendre et à mettre en œuvre. Les algorithmes d'apprentissage tabulaire ont également des garanties théoriques raisonnables de convergence, ce qui signifie que si vous pouvez simplifier votre problème pour qu'il ait, par exemple, moins de quelques millions d'états, cela vaut la peine d'essayer.

Les problèmes de contrôle les plus intéressants ne rentreront pas dans ce nombre d'états, même si vous les discrétisez. Cela est dû à la « malédiction de la dimensionnalité ». Pour ces problèmes, vous représenterez généralement votre état comme un vecteur de différentes fonctionnalités - par exemple pour un robot, différentes positions, angles, vitesses des pièces mécaniques. Comme pour l'apprentissage supervisé, vous voudrez peut-être les traiter pour une utilisation avec un processus d'apprentissage spécifique. Par exemple, vous souhaiterez généralement qu'ils soient tous numériques, et si vous souhaitez utiliser un réseau de neurones, vous devez également les normaliser à une plage standard (par exemple, -1 à 1).

En plus des préoccupations ci-dessus qui s'appliquent à d'autres machine learning, pour RL, vous devez également vous préoccuper de la propriété Markov - que l'état fournit suffisamment d'informations, afin que vous puissiez prédire avec précision les prochaines récompenses attendues et les prochains états donnés une action, sans avoir besoin d'informations supplémentaires. Cela n'a pas besoin d'être parfait, de petites différences dues, par exemple, à des variations de densité ou de température de l'air pour un robot à roues n'auront généralement pas un impact important sur sa navigation et peuvent être ignorées. Tout facteur qui est essentiellement aléatoire peut également être ignoré tout en s'en tenant à la théorie RL - cela peut rendre l'agent moins optimal dans l'ensemble, mais la théorie fonctionnera toujours.

S'il existe des facteurs inconnus cohérents qui influencent le résultat et pourraient logiquement être déduits - peut-être de l'historique de l'état ou des actions - mais que vous les avez exclus de la représentation de l'État, vous pouvez avoir un problème plus grave et l'agent peut ne pas apprendre .

Il convient de noter ici la différence entre l' observation et l' état . Une observation est quelques données que vous pouvez collecter. Par exemple, vous pouvez avoir des capteurs sur votre robot qui réinjectent les positions de ses articulations. Étant donné que l'État doit posséder la propriété Markov, une seule observation brute peut ne pas être suffisante pour créer un état approprié. Si tel est le cas, vous pouvez soit appliquer vos connaissances de domaine afin de construire un meilleur état à partir des données disponibles, soit essayer d'utiliser des techniques conçues pour les MDP partiellement observables (POMDP) - celles-ci tentent efficacement de créer des parties manquantes des données d'état statistiquement. Vous pouvez utiliser un RNN ou un modèle de Markov caché (également appelé "état de croyance") pour cela, et d'une certaine manière, cela utilise un "des algorithmes d'apprentissage ou de classification pour "apprendre" ces états "comme vous l'avez demandé.

Enfin, vous devez considérer le type de modèle d'approximation que vous souhaitez utiliser. Une approche similaire s'applique ici comme pour l'apprentissage supervisé:

  • Une simple régression linéaire avec des fonctionnalités conçues sur la base des connaissances du domaine peut très bien fonctionner. Vous devrez peut-être travailler dur pour essayer différentes représentations d'état afin que l'approximation linéaire fonctionne. L'avantage est que cette approche plus simple est plus robuste contre les problèmes de stabilité que l'approximation non linéaire

  • Un approximateur de fonction non linéaire plus complexe, tel qu'un réseau neuronal multicouche. Vous pouvez alimenter un vecteur d'état plus "brut" et espérer que les couches cachées trouveront une structure ou une représentation qui conduira à de bonnes estimations. À certains égards, il s'agit également " d'algorithmes d'apprentissage ou de classification pour" apprendre "ces états ", mais d'une manière différente d'un RNN ou d'un HMM. Cela pourrait être une approche sensée si votre état était exprimé naturellement comme une image d'écran - déterminer à la main l'ingénierie des fonctionnalités pour les données d'image est très difficile.

Le travail Atari DQN par l' équipe DeepMind a utilisé une combinaison d'ingénierie des fonctionnalités et s'appuyant sur un réseau de neurones profond pour atteindre ses résultats. L'ingénierie des fonctionnalités comprenait le sous-échantillonnage de l'image, la réduction à l'échelle des gris et - ce qui est important pour la propriété Markov - l'utilisation de quatre images consécutives pour représenter un seul état, de sorte que des informations sur la vitesse des objets étaient présentes dans la représentation de l'état. Le DNN a ensuite traité les images en fonctionnalités de niveau supérieur qui pourraient être utilisées pour faire des prédictions sur les valeurs d'état.


3

Une approche précoce courante pour modéliser des problèmes complexes était la discrétisation . À un niveau de base, cela divise un espace complexe et continu en une grille. Ensuite, vous pouvez utiliser l'une des techniques RL classiques conçues pour des espaces discrets et linéaires. Cependant, comme vous pouvez l'imaginer, si vous ne faites pas attention, cela peut causer beaucoup de problèmes!

Le livre classique de Sutton & Barto, Reinforcement Learning, contient quelques suggestions d'autres façons de procéder. Le premier est le codage des tuiles , traité dans la section 9.5.4 de la nouvelle deuxième édition . Dans le codage de tuiles, nous générons un grand nombre de grilles, chacune avec un espacement de grille différent. Nous superposons ensuite les grilles les unes sur les autres. Cela crée des régions discrètes de formes non uniformes et peut bien fonctionner pour une variété de problèmes.

La section 9.5 couvre également une variété d'autres façons de coder un espace continu en un MDP discret, y compris les fonctions à base radiale et les codages grossiers. Vérifiez-le!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.