AI avec Python - Apprentissage par renforcement

Dans ce chapitre, vous apprendrez en détail les concepts d'apprentissage par renforcement dans l'IA avec Python.

Bases de l'apprentissage par renforcement

Ce type d'apprentissage est utilisé pour renforcer ou renforcer le réseau sur la base d'informations critiques. Autrement dit, un réseau formé dans le cadre de l'apprentissage par renforcement reçoit des commentaires de l'environnement. Cependant, le feedback est évaluatif et non instructif comme dans le cas de l'apprentissage supervisé. Sur la base de ce retour d'expérience, le réseau effectue les ajustements des poids pour obtenir de meilleures informations critiques à l'avenir.

Ce processus d'apprentissage est similaire à l'apprentissage supervisé mais nous pourrions avoir très moins d'informations. La figure suivante donne le schéma de principe de l'apprentissage par renforcement -

Blocs de construction: environnement et agent

L'environnement et l'agent sont les principaux éléments constitutifs de l'apprentissage par renforcement en IA. Cette section les aborde en détail -

Agent

Un agent est tout ce qui peut percevoir son environnement à travers des capteurs et agit sur cet environnement à travers des effecteurs.

  • UNE human agent a des organes sensoriels tels que les yeux, les oreilles, le nez, la langue et la peau parallèles aux capteurs, et d'autres organes tels que les mains, les jambes, la bouche, pour les effecteurs.

  • UNE robotic agent remplace les caméras et les télémètres infrarouges pour les capteurs, et divers moteurs et actionneurs pour les effecteurs.

  • UNE software agent a codé des chaînes de bits comme programmes et actions.

Terminologie des agents

Les termes suivants sont plus fréquemment utilisés dans l'apprentissage par renforcement en IA -

  • Performance Measure of Agent - Ce sont les critères qui déterminent le succès d'un agent.

  • Behavior of Agent - C'est l'action que l'agent effectue après une séquence donnée de percepts.

  • Percept - Ce sont les entrées perceptives de l'agent à une instance donnée.

  • Percept Sequence - C'est l'histoire de tout ce qu'un agent a perçu jusqu'à ce jour.

  • Agent Function - C'est une carte de la séquence précepte à une action.

Environnement

Certains programmes fonctionnent de manière entièrement artificial environment limité à la saisie au clavier, à la base de données, aux systèmes de fichiers informatiques et à la sortie de caractères sur un écran.

En revanche, certains agents logiciels, tels que les robots logiciels ou les softbots, existent dans des domaines de softbot riches et illimités. Le simulateur a unvery detailed, et complex environment. L'agent logiciel doit choisir parmi un large éventail d'actions en temps réel.

Par exemple, un softbot conçu pour analyser les préférences en ligne du client et afficher des éléments intéressants pour le client fonctionne dans le real ainsi qu'un artificial environnement.

Propriétés de l'environnement

L'environnement a des propriétés multiples comme indiqué ci-dessous -

  • Discrete/Continuous- S'il y a un nombre limité d'états distincts et clairement définis de l'environnement, l'environnement est discret, sinon il est continu. Par exemple, les échecs sont un environnement discret et la conduite est un environnement continu.

  • Observable/Partially Observable- s'il est possible de déterminer l'état complet de l'environnement à chaque instant à partir des percepts, il est observable; sinon, il n'est que partiellement observable.

  • Static/Dynamic- Si l'environnement ne change pas pendant qu'un agent agit, alors il est statique; sinon c'est dynamique.

  • Single agent/Multiple agents - L'environnement peut contenir d'autres agents qui peuvent être de nature identique ou différente de celle de l'agent.

  • Accessible/Inaccessible- Si l'appareil sensoriel de l'agent peut avoir accès à l'état complet de l'environnement, alors l'environnement est accessible à cet agent; sinon, il est inaccessible.

  • Deterministic/Non-deterministic- Si l'état suivant de l'environnement est complètement déterminé par l'état actuel et les actions de l'agent, alors l'environnement est déterministe; sinon, il est non déterministe.

  • Episodic/Non-episodic- Dans un environnement épisodique, chaque épisode consiste en ce que l'agent perçoit puis agit. La qualité de son action dépend uniquement de l'épisode lui-même. Les épisodes suivants ne dépendent pas des actions des épisodes précédents. Les environnements épisodiques sont beaucoup plus simples car l'agent n'a pas besoin de penser à l'avenir.

Construire un environnement avec Python

Pour créer un agent d'apprentissage par renforcement, nous utiliserons le OpenAI Gym package qui peut être installé à l'aide de la commande suivante -

pip install gym

Il existe différents environnements dans OpenAI gym qui peuvent être utilisés à diverses fins. Peu d'entre eux sontCartpole-v0, Hopper-v1, et MsPacman-v0. Ils nécessitent des moteurs différents. La documentation détaillée deOpenAI Gym peut être trouvé sur https://gym.openai.com/docs/#environments.

Le code suivant montre un exemple de code Python pour l'environnement cartpole-v0 -

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
   env.render()
   env.step(env.action_space.sample())

Vous pouvez construire d'autres environnements de la même manière.

Construire un agent d'apprentissage avec Python

Pour créer un agent d'apprentissage par renforcement, nous utiliserons le OpenAI Gym paquet comme indiqué -

import gym
env = gym.make('CartPole-v0')
for _ in range(20):
   observation = env.reset()
   for i in range(100):
      env.render()
      print(observation)
      action = env.action_space.sample()
      observation, reward, done, info = env.step(action)
      if done:
         print("Episode finished after {} timesteps".format(i+1))
         break

Observez que le mât peut s'équilibrer.