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$ – Lustwelpintje Mar 18 '20 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$ – davide y Mar 18 '20 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$ – Lustwelpintje Mar 18 '20 at 21:27
  • $\begingroup$ For the training, I automated it but when the system will be deployed the user will be involved. $\endgroup$ – davide y Mar 19 '20 at 7:47
  • $\begingroup$ And how did you automate it for training? $\endgroup$ – Lustwelpintje Mar 19 '20 at 9:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.