Apprentissage par renforcement

Construire un système autonome avec un grand niveau de compréhension du monde réel est un rêve formulé par de nombreux passionné de l'intelligence artificielle. 

Ce système se voudra être totalement autonome et capable de s'améliorer et de s'adapter au changement du monde réel.

Un tel système a de nombreux avantage, il n'y a qu'a imaginé ce que produrait l'inrtroduction d'une tels IA dans la vie de tout les jours. 

Crafting AI systems that are

responsive and can effectively learn has been a long-standing

challenge, ranging from robots, which can sense and react

to the world around them, to purely software-based agents,

which can interact with natural language and multimedia.


Il n'y a qu'a imaginé les avantage que pourrait procurer un tel système qui aurait une intelligence généralisé. Il n'y aurait plus besoin des humain pour effectuer des tâche de réflexion tels que la recherche ou encore l'écriture de texte, la création de contenu. La machine pourrait prendre le pas sur  l'homme et le remplacer dans toute ces tache.

Le but de l'apprentissage par renforcmenent est de mimiquer le processus d'apprentissage de l'homme. Un homme pour apprendre fait des essais, se trompe, ou réussis. Dans le cas ou il se trompe, il a tendance à ne pas réitérer l'erreur qu'il a faite 

Comme dit Einstein seul un fou espère obtenir un résultat différent en réitérant la même action 

Dans le second cas, il tente de reproduire l'action qui la améné au succès.  


Le Deep Learning a apporté un grande amélioration dans le domaine de l'apprentissage par renfocement du fait de sa capacité à trouver des représentation en faible dimenssion de données de grande dimensions ( image, vidéo, son)

Qu'elque exploit majeur de l'apprentissage par renforcement profond sont : un algorithme capable de jouer à 2600 différent jeu Atari , AlphaGo qui a vaincu le champion du monde de Jeu de GO

l'intelligence artificielle d'openai qui bat des joueur professionnel à Dota 2


Selon Arulkumaran et al. L'inclusion du deep learning dans l'apprentissage par renforcement a permi a l'appentissage par renforcement de gérer des problème intractable avec les précedent modèle tels que apprendtre a jouer à un jeu vidéo à partir des pixels de l'image. 


L'apprentissage par renfocement profond est égalemenet utilisé en robotique pour apprendre au robot les mouvement a effectuer directement a partir d'une caméra. 


Dans cet article, nous verrons : 

Qu'est ce que l'apprentissage par renforcement 






Qu'est ce que l'appentissage par renforcement 

Selon  Kaelbling et al. l'apprentissage par renforcement est "le problème auquel fait face un agent qui apprend un comportement au travers d'un processus d'interaction essais-et-erreur avec un environnement dynamique.

Toujours selon  Kaelbling et al., il existe deux grande approche pour résoudre un problème d'apprentissage par renforcement. La première consiste a explorer l'espace des possibilité dans le but de trouver une qui fonctionne bine dans l'environnement.  C'est l'approche utilisé par les algorithme génétique.

La seconde approche consiste a utiliser des technique statistique et de méthode de programmation dynamique afin d'estimer l'utilité d'une action dans l'environnement.


Un agent est connecté à son environemment, sur lequel il peut percevoir et agir. A chaque intérection lagent reçoit en l'état de l'environnement puis choisi d'effectuer une action.  Cette dernière change soit positivement soir négativement l'état de l'environnement.  L'agent reçoit alors en entrée une récompense ou une punition généralement sous la forme binaire 1 pour une récompense et 0 pour une punition ou sous forme d'un nombre réelle indiquant le niveau de récompense obtenu par l'exécution de l'action. 


Les actions effectué peuvent ne pas toute avoir le même niveau de récompense.


Le but de cette dernière sera de maximiser la somme des récompense accumulé sur le long terme.


Par exemple dans un jeu l'IA peut avoir le choix entre différent type de ressource à récolter.  Le bois qui vaut 3 pièce d'or, le métal qui en vaut 10 et un minerais rare qui en vaut 20. Tous nécessite le même temps d'extraction. 

Au début elle ne sais pas ce qui vaut le plus. 

Elle va par exemple aléatoirement choisir l'une d'entre elle .

Le bois par exemple elle va voir que ça ne lui rapporte que 3 pièce d'or. 

Elle va encore choisir aléatoirement une action cette fois ci extraire le minerais rare 

ça lui a rapporté 20 pièce d'or

Elle va encore choisir une action. Elle choisi par exemple de refaire la même 

elle va gagner 20 pièce d'or

Elle décide de tester la dernière action possible le fer 

Elle ne lui rapporte que 10 pièce d'or pour un même travail. 

Ayant exploré toute les possibilité elle va finalement continuer d'extraire le minerai rare car c'est ce qui lui rapporte le, plus. 


Dans des environnement plus complexe que celui présenté ci-dessus comme par exemple si il y a une quantité limité de minerai ou qu'il y a plusieur entdroit ou extraire du minerais et le nombre de minerai obtenu varie dd'une endroit à l'autre. L'agent va devoir se montrer malin et construire un stratégie à long terme afin de maximiser son rendement sur le long-terme. 


Un des problème les plus connu d'aprentissage par renforcement est le problème du bandit manchot. L'agent se trouve dans une salle rempli de machine à sous, chacune  a un rendement moyen différente que l'agent ne connait pas. Pour optimiser son rendement à long terme trouver celle qui lui rapporte le plus l'agent doit à la fois exploré (phase d'exploration) pour connaître le rendement de chaque machine  mais également utiliser les machine à sous qu'il sait qui rapporte le plus (phase d'exploitation).

Une manière de traduire ce problème est qu'est ce que l'agent doit faire si il a une temps limité ou un nombre de coups limité? Doit t'il testé les autre machine pour savoir si elle rapporte plus que celles qu'il considère comme avoir un rendement maximal ou doit t'il jouer tout le temps ses coups sur les machine qui rapporte le plus.

La réponse dépend du temps que l'agent a  pour jouer le jeu, plus le jeu dure moins tester un nouvelle machine est grave et plus l'agent devrait exploré.


De nombreuse technique ont été inventé pour résoudre ce type de problème tels que


la programmation dynamique 


La création d'un index Gittins



For each action, consider the number of times it has


been chosen, n, versus the number of times it has paid o , w. For certain discount factors,


there are published tables of \index values," I (n; w) for each pair of n and w. Look up


the index value for each action i, I (ni; wi). It represents a comparative measure of the


combined value of the expected payo of action i (given its history of payo s) and the value


of the information that we would get by choosing it. Gittins has shown that choosing the


action with the largest index value guarantees the optimal balance between exploration and


exploitation



Apprendre la tâche avec un automate.

Learning Automata



Les technique présenté précedemment repose sur une approche théorique de la résolution du problème. 

D'autre technique bien plus simple existe mais sont nettement plus gourmande en ressource machine.

Telle que l'algorithme glouton  qui consista à choisir l'action qui récompense au maximum et à la répéter. Un des défault de ces méthode est que si l'action choisi est sous optimale, elle sera répétée et laction optimal ne sera jamais découverte. 


L'approche aléatoire 

L'agent a une probabilité p de faire l'action qui par défault lui rapporte le plus et (1-p) de tester une nouvelle action. Et si  elle lui rapporte plus elle est alors choisi comme action à effectuer par défault. Certain algorithme tels que le recuit simulé commence avec une faible probabilité p pour maximiser l'exploration au début puis au fur et à mesure des itération l'exploration se réduit et l'exploitation est privilégiée.


Les technique basée sur les intervalle 

L'idée est de stocker des statistique sur chaque action de l'agent tels que son nombre de succès, son nombre d'essais.


Les technique cité ci dessus fonctionne surtout si la récompense de l'agent est instantanné, mais que ce passerait t'il si elle ne l'était pas. Et que par exemple, qu'il fallait effectuer une suite d'action avant d'obtenir la récompense. 

Comment prendre en compte les récompenses future, dans le modèle.

Dans ce cas il est possible de modéliser le problème par les processus de décision markovien. 




Apprentissage par renforcement profond



Écrivez quelque chose ...

   

.