Processus de décision markovien

in #fr6 years ago

Dans le domaine de l'intelligence artificielle, nous cherchons à ce qu'un agent puisse être autonome dans un environnement donné. Ainsi, nous voulons qu'un agent puisse interagir avec l'environnement et prendre les meilleures décisions possibles. De ce fait, notre agent va, dans un premier temps récupérer des information sur l'environnement, puis effectuer une action. Afin de déterminer la meilleure action, nous allons créer un système de récompense lui permettant de savoir qu'une action est meilleure qu'une autre. L'objectif de notre agent va être de maximiser la somme des récompenses. Ce type d'apprentissage, appelé apprentissage par renforcement, peut être modélisé avec le processus de décision markovien.

Processus de décision markovien

Le processus de décision markovien est utilisé pour les problèmes dit d'apprentissage par renforcement en utilisant un ensemble d'états, d'actions et de récompenses. De manière globale, nous allons avoir un ensemble d'états qui représentent les différents états de notre agent. Pour chacun, nous allons avoir un ensemble d'actions qui pourront être pris. Chaque action est modélisée par une transition qui nous permet de changer d'état. Enfin, dans chacun des états, nous retrouvons une récompense qui nous permet de savoir quelle action est la meilleure. Notre système est donc composé :

  • Etat : représente tous les états possibles de l'agent. Un état est noté S.

  • Actions : chaque état dispose d'un ensemble d'action. Ainsi, nous définissons par a(S) l'ensemble des actions qui peuvent être pris dans l'état S.

  • Modèle : représente le type de transition. Ainsi, nous définissons par T(S, a, S'), une transition T qui étant dans l'état S et en prenant l'action a, nous conduit à l'état S'. Bien entendu, S et S' peuvent être égaux.
    Dans le cas d'une action stochastique (qui se produit par hasard), nous allons définir une probabilité P(S' | S, a) qui représente la probabilité d'atteindre l'état S' si l'action a est prit dans l'état S.

  • Récompense : corresponds à la valeur de réponse pour une action. Nous définissons par R(S) la récompense d'être dans l'état S, R(S,a) la récompense d'être dans l'état S et de prendre l'action a.

  • Stratégie : représente une solution au processus de décision markovien. Cela représente l'ensemble des actions à prendre afin d'atteindre l'objectif. On note une stratégie par π(s). Et, π* est appelé la stratégie optimale (l'ensemble des actions qui maximise notre récompense).

L'équation de Bellman

L'un des principes que Bellman a mis au point est la programmation dynamique. Cela consiste à divisé notre problème en pleins de sous-problèmes et de les résoudre. Nous retrouvons ce principe dans l'équation de Bellman.

CodeCogsEqn.gif

Ici, nous désignons par V la valeur de l'état S. Ce que nous allons chercher, c'est la valeur maximum en fonction de l'action que nous allons prendre. En effet, notre objectif est d'avoir la récompense la plus importante. Ainsi, nous allons prendre l'action qui a la plus grande récompense parmi l'ensemble des actions disponible. Pour ce faire, nous allons pour chaque action déterminer la récompense associée à l'action que nous allons additionner à la récompense de l'état suivant, que nous allons multiplier par un coefficient gamma. Ici, nous constatons que notre équation est récursive. En effet, notre récompense se base par rapport à l'ensemble des états que nous allons prendre en fonction des actions disponibles.

Le paramètre Gamma

Le paramètre Gamma est un hyper-paramètre, c'est-à-dire que nous initialisons ce paramètre au début de notre apprentissage. Cependant, rien ne nous empêche par la suite de modifier sa valeur. Ici, la valeur de gamma va être comprise entre [0;1]. Le paramètre Gamma représente le coefficient d'actualisation. Cela correspond à la manière dont nous allons gérer les récompenses. En effet, si nous avons un coefficient faible, nous privilégions le court-terme. En revanche, si notre coefficient est important, nous privilégions le long-terme.

Cas d'applications

Ce type de réseau est très utile que ce soit en finance ou pour l'exploration pour des robots. Si, par exemple, nous prenons le cas des robots, nous pouvons modéliser une pièce sous forme de case. Ainsi, si nous avons un robot aspirateur, son objectif à lui est de passer par l'ensemble des cases. On pourrait aussi lui interdire l'accès à certaines cases en attribuant pour celle-ci une récompense négative. De ce fait, notre robot aspirateur va chercher à maximiser son score, c'est-à-dire, à passer par le maximum de case qui lui accorde une récompense positive.

On pourrait encore aller plus loin dans notre approche en décomposant les états de notre robot aspirateur. On pourrait avoir un état chargé, en charge et plus beaucoup de batterie. Dans ces conditions, lorsque notre robot passe de l'état charger à l'état plus beaucoup de batterie, nous ne nous intéressons plus au fait que notre robot passe sur les cases où il n'est pas passé. Ainsi, nous modifions nos récompenses sur notre carte afin de mettre la récompense maximum sur la case ou le système de recharge se situe. Ainsi, notre agent va chercher le meilleur moyen afin d'arriver à cette case.

Conclusion

Dans cet article, nous avons vu le fonctionnement du processus de décision markovien qui est utilisé pour les problèmes dit d'apprentissage par renforcement. Le principe est que nous allons avoir un ensemble d'états constitués d'un ensemble d'action pour chacun. L'objectif va être de maximiser l'ensemble de nos récompenses que nous obtenons en fonction de l'état et de l'action que nous avons pris. Pour cela, nous utilisons l'équation de Bellman qui nous permet de choisir à l'aide d'un hyper-paramètre si nous souhaitons maximiser la récompense court-terme ou long-terme.

Sort:  

Félicitations ! Votre post a été sélectionné de part sa qualité et upvoté par le trail de curation de @aidefr !

La catégorie du jour était : #intelligence-artificielle


Si vous voulez aider le projet, vous pouvez rejoindre le trail de curation ici!

Bonne continuation !

Nouveau : Rendez-vous sur le nouveau site web de FrancoPartages ! https://francopartages.xyz

Félicitations @rerere pour votre beau travail!

Ce post a attiré l'attention de @ajanphoto et a été upvoté à 100% par @steemalsace et son trail de curation comportant actuellement 28 upvotes .
De plus votre post apparaîtra peut-être cette semaine dans notre article de sélection hebdomadaire des meilleurs post francophones.

Vous pouvez suivre @steemalsace pour en savoir plus sur le projet de soutien à la communauté fr et voir d'autres articles qualitatifs francophones ! Nous visons la clarté et la transparence.

Rejoignez le Discord SteemAlsace

Pour nous soutenir par vos votes : rejoignez notre Fanbase et notre Curation Trail sur Steemauto.com. C'est important pour soutenir nos membres, les steemians et Witness francophones ICI!

@ajanphoto





This post has been voted on by the SteemSTEM curation team and voting trail in collaboration with @curie.

If you appreciate the work we are doing then consider voting both projects for witness by selecting stem.witness and curie!

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63162.99
ETH 2567.19
USDT 1.00
SBD 2.82