comment faire une fonction de récompense dans l'apprentissage par renforcement


18

En étudiant l'apprentissage par renforcement, j'ai rencontré de nombreuses formes de la fonction de récompense: , R ( s , a , s ) , et même une fonction de récompense qui ne dépend que de l'état actuel. Cela dit, j'ai réalisé qu'il n'est pas très facile de «créer» ou de «définir» une fonction de récompense.R(s,a)R(s,a,s)

Voici mes questions:

  1. Existe-t-il des règles sur la façon de créer des fonctions de récompense?
  2. Existe-t-il d'autres formes de fonction de récompense? Par exemple, une forme polynomiale qui dépend peut-être de l'état?

Réponses:


25

Les fonctions de récompense décrivent comment l'agent «devrait» se comporter. En d'autres termes, ils ont un contenu "normatif", stipulant ce que vous voulez que l'agent accomplisse. Par exemple, un état gratifiant s pourrait représenter le goût des aliments. Ou peut-être, (s,a) pourrait représenter l'acte de goûter la nourriture. Donc, dans la mesure où la fonction de récompense détermine quelles sont les motivations de l'agent, oui, il faut inventer!

Il n'y a pas de restrictions absolues, mais si votre fonction de récompense est "mieux comportée", l'agent apprendra mieux. Pratiquement, cela signifie une vitesse de convergence et ne pas rester coincé dans les minima locaux. Mais d'autres spécifications dépendront fortement des espèces d'apprentissage par renforcement que vous utilisez. Par exemple, l'espace état / action est-il continu ou discret? Le monde ou la sélection d'actions est-il stochastique? La récompense est-elle récoltée en continu, ou seulement à la fin?

Une façon de voir le problème est que la fonction de récompense détermine la dureté du problème. Par exemple, traditionnellement, nous pourrions spécifier un seul état à récompenser:

R(s1)=1
R(s2..n)=0
Dans ce cas, le problème à résoudre est assez difficile, par rapport à, disons, R(si)=1/i2 , où il y a un gradient de récompense sur les états. Pour les problèmes difficiles, en spécifiant plus de détails, par exemple R(s,a) ou R(s,a,s) peut aider certains algorithmes en fournissant des indices supplémentaires, mais potentiellement au prix d'exiger plus d'exploration. Vous devrez peut-être inclure les coûts comme termes négatifs dansR (par exemple,les coûts énergétiques), pour rendre le problème bien spécifié.

Dans le cas d'un espace d'état continu, si vous voulez qu'un agent apprenne facilement, la fonction de récompense doit être continue et différenciable . Les polynômes peuvent donc bien fonctionner pour de nombreux algorithmes. De plus, essayez de supprimer les minima localisés. Il existe un certain nombre d' exemples sur la façon de NE PAS faire une fonction de récompense - comme la fonction Rastrigin . Cela dit, plusieurs algorithmes RL (par exemple les machines Boltzmann ) sont un peu robustes à ces derniers .

Si vous utilisez RL pour résoudre un problème du monde réel, vous constaterez probablement que bien que trouver la fonction de récompense soit la partie la plus difficile du problème, elle est intimement liée à la façon dont vous spécifiez l'espace d'état . Par exemple, dans un problème dépendant du temps, la distance par rapport au but fait souvent une mauvaise fonction de récompense (par exemple dans le problème de la voiture de montagne ). De telles situations peuvent être résolues en utilisant des espaces d'états de dimension supérieure (états cachés ou traces de mémoire), ou par RL hiérarchique.

À un niveau abstrait, l'apprentissage non supervisé était censé éviter de stipuler des performances «bonnes et mauvaises». Mais nous pouvons voir maintenant que RL transfère simplement la responsabilité de l'enseignant / critique à la fonction de récompense. Il existe un moyen moins circulaire de résoudre le problème: c'est-à-dire d' inférer la meilleure fonction de récompense . Une méthode est appelée RL inverse ou «apprentissage d'apprentissage» , qui génère une fonction de récompense qui reproduirait les comportements observés. La recherche de la meilleure fonction de récompense pour reproduire un ensemble d'observations peut également être implémentée par des méthodes MLE, bayésiennes ou théoriques de l'information - si vous recherchez "l'apprentissage par renforcement inverse" sur Google.


Salut, pourquoi le problème des voitures de montagne est-il un problème dépendant du temps?
GoingMyWay

Je suppose que le problème des voitures de montagne est "dépendant du temps" dans la mesure où le problème nécessite que le réseau fournisse la séquence appropriée de commandes ou une politique qui détermine la séquence. L'idée est que si vous ne traitez que la "position" comme votre état, alors le problème est difficile à résoudre - vous devez également considérer votre vitesse (ou votre énergie cinétique, etc.). C'est vraiment tout ce que je voulais impliquer, en ce qui concerne le choix judicieux de votre espace d'état dans des problèmes liés au temps.
Sanjay Manohar

@SanjayManohar Je ne pense pas que le problème des voitures de montagne soit "dépendant du temps", sauf si, en fonction du temps, vous parlez d'introduire un horizon temporel fini. La position et la vitesse sont suffisantes.
user76284

Je pense que cette réponse mélange les fonctions de récompense et de valeur. Par exemple, il parle de «trouver» une fonction de récompense, ce qui pourrait être quelque chose que vous faites dans l' apprentissage par renforcement inverse , mais pas dans RL utilisé pour le contrôle. En outre, il parle de la nécessité pour la fonction de récompense d'être continue et différenciable, et ce n'est pas seulement non nécessaire, ce n'est généralement pas le cas. Vous êtes beaucoup plus susceptible de trouver un +1 simple pour le succès, ou fixe -1 par pas de temps pris dans la littérature, que de trouver une heuristique différenciable soigneusement construite.
Neil Slater

Merci @NeilSlater, vous avez raison, j'aurais probablement dû dire "construire" une fonction de récompense plutôt que de la trouver. En ce qui concerne la "fonction de valeur", je réserve généralement ce terme aux mappages de valeur d'état ou d'action-valeur, c'est-à-dire une fonction que l'agent utilise pour estimer la récompense future estimée. La "valeur" est donc liée à la "récompense", mais la récompense fait partie du problème, pas l'algorithme qui résout le problème. Peut-être que l'IA a mis l'accent sur la présentation de votre algorithme d'apprentissage, en stipulant des récompenses binaires, distales et clairsemées - mais si vous contrôlez la fonction de récompense, la vie est plus facile si elle est "agréable".
Sanjay Manohar

4

La conception de fonctions de récompense est en effet un problème difficile. Généralement, les fonctions de récompense clairsemées sont plus faciles à définir (par exemple, obtenez +1 si vous gagnez la partie, sinon 0). Cependant, les récompenses éparses ralentissent également l'apprentissage, car l'agent doit prendre de nombreuses mesures avant d'obtenir une récompense. Ce problème est également connu sous le nom de problème d'attribution de crédit .

Plutôt que d'avoir une représentation sous forme de tableau pour les récompenses, vous pouvez également utiliser des fonctions continues (comme un polynôme). C'est généralement le cas lorsque l'espace d'état et l'espace d'action sont continus plutôt que discrets.

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.