I'm working currently on a problem and I'm using RL (bandit problem).

In my system, I have an agent that chooses an action among $k$ possible actions, and a user that decides whether the agent chooses the right action or not. If the user is satisfied with the decision made by the agent, he rewards with $+1$, otherwise $-1$.

Is this is a good reward function, knowing that in my problem the values are in the range $[0, 1]$?

Are there any guidelines to follow for defining the reward function? Are there any references (books or articles) that tackle this problem and present a solution?

  • $\begingroup$ Why would you let a user decide if the action is good or not? if you have a classical bandit problem where each arm returns a value between 2 values. And you are saying these 2 values are 0 and 1. Why not return this value the arm returns as reward? $\endgroup$ Mar 18, 2020 at 15:55
  • $\begingroup$ I need the user to be part of the system, it's the same thing to say that the arm return a value or the user send the value. $\endgroup$
    – Walid
    Mar 18, 2020 at 16:32
  • $\begingroup$ No, because now you need the user to decide on every action. You should automate the reward function so you can run through thousands of training steps in seconds. $\endgroup$ Mar 18, 2020 at 21:27
  • $\begingroup$ For the training, I automated it but when the system will be deployed the user will be involved. $\endgroup$
    – Walid
    Mar 19, 2020 at 7:47
  • $\begingroup$ And how did you automate it for training? $\endgroup$ Mar 19, 2020 at 9:43


You must log in to answer this question.

Browse other questions tagged .