# What are the guidelines for defining a reward function in reinforcement learning (bandit problem)?

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?

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