Connect with us

IA 101

Qu’est-ce que l’apprentissage par renforcement ?

mm

Qu’est-ce que l’apprentissage par renforcement ?

En termes simples, l’apprentissage par renforcement est une technique d’apprentissage automatique qui consiste à entraîner un agent d’intelligence artificielle par la répétition d’actions et de récompenses associées. Un agent d’apprentissage par renforcement expérimente dans un environnement, prend des actions et est récompensé lorsqu’il prend les bonnes actions. Au fil du temps, l’agent apprend à prendre les actions qui maximiseront sa récompense. C’est une définition rapide de l’apprentissage par renforcement, mais examiner de plus près les concepts qui se cachent derrière l’apprentissage par renforcement vous aidera à en avoir une compréhension plus approfondie et plus intuitive.

Le terme « apprentissage par renforcement » est adapté du concept de renforcement en psychologie. Pour cette raison, prenons un moment pour comprendre le concept psychologique de renforcement. Dans le sens psychologique, le terme renforcement fait référence à quelque chose qui augmente la probabilité qu’une réponse/une action se produise. Ce concept de renforcement est une idée centrale de la théorie du conditionnement opérant, initialement proposée par le psychologue B.F. Skinner. Dans ce contexte, le renforcement est tout ce qui fait augmenter la fréquence d’un comportement donné. Si nous pensons aux renforcements possibles pour les humains, ceux-ci peuvent être des choses comme les éloges, une augmentation de salaire au travail, des bonbons et des activités amusantes.

Dans le sens traditionnel et psychologique, il existe deux types de renforcement. Il y a le renforcement positif et le renforcement négatif. Le renforcement positif est l’ajout de quelque chose pour augmenter un comportement, comme donner un traitement à votre chien lorsqu’il se comporte bien. Le renforcement négatif implique la suppression d’un stimulus pour éliciter un comportement, comme éteindre des bruits forts pour faire sortir un chat farouche.

Renforcement positif et négatif

Le renforcement positif augmente la fréquence d’un comportement tandis que le renforcement négatif diminue la fréquence. En général, le renforcement positif est le type de renforcement le plus couramment utilisé dans l’apprentissage par renforcement, car il aide les modèles à maximiser les performances sur une tâche donnée. Non seulement cela, mais le renforcement positif conduit le modèle à apporter des changements plus durables, des changements qui peuvent devenir des modèles consistants et persister pendant de longues périodes.

En revanche, même si le renforcement négatif rend également un comportement plus probable, il est utilisé pour maintenir un niveau de performance minimum plutôt que pour atteindre les performances maximales du modèle. Le renforcement négatif dans l’apprentissage par renforcement peut aider à s’assurer qu’un modèle est éloigné des actions indésirables, mais il ne peut pas vraiment inciter un modèle à explorer des actions souhaitées.

Entraîner un agent de renforcement

Lorsqu’un agent d’apprentissage par renforcement est entraîné, il existe quatre ingrédients ou états utilisés dans la formation : les états initiaux (État 0), le nouvel état (État 1), les actions et les récompenses.

Imaginez que nous entraînons un agent de renforcement pour jouer à un jeu de plateforme où l’objectif de l’IA est de parcourir le niveau en se déplaçant vers la droite à l’écran. L’état initial du jeu est tiré de l’environnement, ce qui signifie que le premier cadre du jeu est analysé et donné au modèle. Sur la base de ces informations, le modèle doit décider d’une action.

Pendant les premières phases de la formation, ces actions sont aléatoires, mais à mesure que le modèle est renforcé, certaines actions deviendront plus courantes. Après que l’action ait été prise, l’environnement du jeu est mis à jour et un nouvel état ou cadre est créé. Si l’action prise par l’agent a produit un résultat souhaitable, disons dans ce cas que l’agent est toujours en vie et n’a pas été touché par un ennemi, une récompense est donnée à l’agent et il est plus susceptible de le faire à l’avenir.

Ce système de base est constamment répété, se produisant encore et encore, et chaque fois que l’agent essaie d’apprendre un peu plus et de maximiser sa récompense.

Tâches épisodiques et tâches continues

Les tâches d’apprentissage par renforcement peuvent généralement être classées en deux catégories différentes : tâches épisodiques et tâches continues.

Les tâches épisodiques effectueront la boucle d’apprentissage/formation et amélioreront leurs performances jusqu’à ce que certains critères de fin soient atteints et que la formation soit terminée. Dans un jeu, cela pourrait être d’atteindre la fin du niveau ou de tomber dans un danger comme des piques. En revanche, les tâches continues n’ont pas de critères de fin et continuent à s’entraîner indéfiniment jusqu’à ce que l’ingénieur choisisse de mettre fin à la formation.

Monte Carlo et différence temporelle

Il existe deux principales façons d’apprendre, ou de former, un agent d’apprentissage par renforcement. Dans l’approche de Monte Carlo, les récompenses sont livrées à l’agent (son score est mis à jour) uniquement à la fin de l’épisode de formation. Pour le dire autrement, seul lorsque la condition de fin est atteinte, le modèle apprend à quel point il s’est bien comporté. Il peut alors utiliser ces informations pour mettre à jour et, lors du prochain tour d’entraînement, il réagira en conséquence.

La méthode de différence temporelle diffère de la méthode de Monte Carlo en ce que l’estimation de la valeur, ou l’estimation du score, est mise à jour au cours de l’épisode de formation. Dès que le modèle passe à l’étape de temps suivante, les valeurs sont mises à jour.

Exploration et exploitation

La formation d’un agent d’apprentissage par renforcement est un exercice d’équilibre, impliquant l’équilibre de deux métriques différentes : l’exploration et l’exploitation.

L’exploration est l’acte de collecter plus d’informations sur l’environnement qui entoure, tandis que l’exploitation consiste à utiliser les informations déjà connues sur l’environnement pour gagner des points de récompense. Si un agent ne fait que de l’exploration et n’exploite jamais l’environnement, les actions souhaitées ne seront jamais effectuées. D’un autre côté, si l’agent n’exploite que l’environnement et ne l’explore jamais, l’agent n’apprendra à effectuer qu’une seule action et ne découvrira pas d’autres stratégies possibles pour gagner des récompenses. Par conséquent, équilibrer l’exploration et l’exploitation est crucial lors de la création d’un agent d’apprentissage par renforcement.

Cas d’utilisation de l’apprentissage par renforcement

L’apprentissage par renforcement peut être utilisé dans une grande variété de rôles et est mieux adapté aux applications où les tâches nécessitent une automatisation.

L’automatisation des tâches à effectuer par des robots industriels est un domaine où l’apprentissage par renforcement s’avère utile. L’apprentissage par renforcement peut également être utilisé pour résoudre des problèmes tels que l’extraction de texte, en créant des modèles capables de résumer de longs textes. Les chercheurs expérimentent également l’utilisation de l’apprentissage par renforcement dans le domaine de la santé, avec des agents de renforcement qui gèrent des tâches telles que l’optimisation des politiques de traitement. L’apprentissage par renforcement pourrait également être utilisé pour personnaliser les matériaux éducatifs pour les étudiants.

Résumé de l’apprentissage par renforcement

L’apprentissage par renforcement est une méthode puissante pour construire des agents d’IA qui peuvent conduire à des résultats impressionnants et parfois surprenants. La formation d’un agent par apprentissage par renforcement peut être complexe et difficile, car elle nécessite de nombreuses itérations d’entraînement et un équilibre délicat du dilemme exploration/exploitation. Cependant, si elle est couronnée de succès, un agent créé avec l’apprentissage par renforcement peut effectuer des tâches complexes dans un large éventail d’environnements différents.

Blogueur et programmeur avec des spécialités en Machine Learning et Deep Learning sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.