S = discrete set of environmental states
A = discrete set of agent actions
r = scalar set of reinforcement signals
I = input function (how the agent views the state of the world)
pi = mapping from state to action
Assume the world is stochastic (same S, same A might cause different outcomes) but stationary (outcomes have fixed probabilities for given S, A pair).
I might be a partial or full observation of the world. For computer games, we typically have full information - that’s why they’re a good environment to test reinforcement learning. In fully-observed systems, I = S.
In a stochastic world, need to balance exploration and exploitation (just like BO).
What’s the optimal behaviour over time? High reward quickly, or evenly spread out?
We could specify a finite time horizon over which we care about, and predict the sum expected reward across that horizon.
We could try to predict the expected average per-timestep reward from now until infinite horizon.
In practice, the most common approach is called discounted reward - sum for an infinite time, discounting each timestep by the power of its distance from the present state.
In an ideal world, we could compute $p(s(t) \vert s(t-1), a(t))$ and $p(r(t)\vert s(t-1), s(t))$ and analytically find the best strategy but this is not practically possible in most cases, so we have to learn mappings from data through some kind of search.
The multi-armed bandit problem is a thought experiment used to understand this problem, where the space of A is small (i.e. which of the k arms to pull) but the space of S is large and unseen.
Reinforcement learning is highly sensitive to small perturbations in the setup of the environment (e.g. a different world shape in pacman) as it is essentially a model-free decision machine. Several proposals have been put forward to improve this. One recent examples is Schema Networks.
Utilitarian reward functions are obviously over-simplistic as humans are often not fully utilitarian and we disagree about utility. We must model the optimal choice of reward function as a variable with uncertainty, and make decisions accordingly (Bayes theorem!)