Answers.Body: <p>The agent in RL is the component that <em>makes the decision</em> of what action to take.</p>
  
  <p>In order to make that decision, the agent is allowed to use any observation from the environment, and any internal rules that it has. Those internal rules can be anything, but typically in RL, it expects the current <em>state</em> to be provided by the environment, for that state to have the <a href="https://en.wikipedia.org/wiki/Markov_property" rel="noreferrer">Markov property</a>, and then it processes that state using a policy function <span class="math-container">$\pi(a|s)$</span> that decides what action to take. </p>
  
  <p>In addition, in RL we usually care about handling a reward signal (received from the environment) and optimising the agent towards maximising the expected reward in future. To do this, the agent will maintain some data which is influenced by the rewards it received in the past, and use that to construct a better policy.</p>
  
  <p>One interesting thing about the definition of an agent, is that the agent/environment boundary is usually considered to be very close to the abstract decision making unit. For instance, for a robot, the agent is typically not the whole robot, but the specific program running on the robot's CPU that makes the decision on the action. All the relays/motors and other parts of the physical body of the robot are parts of the environment in RL terms. Although often loose language is used here, as the distinction might not matter in most descriptions - we would say that "the robot moves its arm to achieve the goal" when in stricter RL terms we should say that "the agent running on the robot CPU instructs the arm motors to move to achieve the goal".</p>
  
  <blockquote>
    <p>I think it is not the Neural Net behind?</p>
  </blockquote>
  
  <p>That is correct, the agent is more than the neural network. One or more neural networks might be <em>part of</em> an agent, and take the role of estimating the value of a state, or state/action pair, or even directly driving the policy function. </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-10-17T08:10:26.750Z
Answers.LastActivityDate: 2018-10-17T11:18:53.910Z
Answers.LastEditDate: 2018-10-17T11:18:53.910Z
Answers.UserDisplayName: Neil Slater
Body: <p>What is an agent in reinforcement learning (RL)? I think it is not the neural network behind. What does the agent in RL exactly do?</p>
  
Tags: <reinforcement-learning><intelligent-agent>
Title: What does the agent in reinforcement learning exactly do?
UserDisplayName: TVSuchty
ThreadText: # What does the agent in reinforcement learning exactly do?
  
  (Asked by: username_0 on 2018-10-17)
  
  What is an agent in reinforcement learning (RL)? I think it is not the neural network behind. What does the agent in RL exactly do?
  
  **Tags:** reinforcement-learning, intelligent-agent
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2018-10-17. Score: 5 | Accepted answer
  
  The agent in RL is the component that *makes the decision* of what action to take.
  
  In order to make that decision, the agent is allowed to use any observation from the environment, and any internal rules that it has. Those internal rules can be anything, but typically in RL, it expects the current *state* to be provided by the environment, for that state to have the [Markov property](https://en.wikipedia.org/wiki/Markov_property), and then it processes that state using a policy function $\pi(a|s)$ that decides what action to take.
  
  In addition, in RL we usually care about handling a reward signal (received from the environment) and optimising the agent towards maximising the expected reward in future. To do this, the agent will maintain some data which is influenced by the rewards it received in the past, and use that to construct a better policy.
  
  One interesting thing about the definition of an agent, is that the agent/environment boundary is usually considered to be very close to the abstract decision making unit. For instance, for a robot, the agent is typically not the whole robot, but the specific program running on the robot's CPU that makes the decision on the action. All the relays/motors and other parts of the physical body of the robot are parts of the environment in RL terms. Although often loose language is used here, as the distinction might not matter in most descriptions - we would say that "the robot moves its arm to achieve the goal" when in stricter RL terms we should say that "the agent running on the robot CPU instructs the arm motors to move to achieve the goal".
  
  > I think it is not the Neural Net behind?
  
  That is correct, the agent is more than the neural network. One or more neural networks might be *part of* an agent, and take the role of estimating the value of a state, or state/action pair, or even directly driving the policy function.
  
  
  ---
  
  