# Reinforcement learning

**Reinforcement learning** (**RL**) is an area of machine learning concerned with how software agents ought to take actions in an environment in order to maximize the notion of cumulative reward. Reinforcement learning is one of three basic machine learning paradigms, alongside supervised learning and unsupervised learning.

Reinforcement learning differs from supervised learning in not needing labelled input/output pairs be presented, and in not needing sub-optimal actions to be explicitly corrected. Instead the focus is on finding a balance between exploration (of uncharted territory) and exploitation (of current knowledge).^{[1]}

The environment is typically stated in the form of a Markov decision process (MDP), because many reinforcement learning algorithms for this context utilize dynamic programming techniques.^{[2]} The main difference between the classical dynamic programming methods and reinforcement learning algorithms is that the latter do not assume knowledge of an exact mathematical model of the MDP and they target large MDPs where exact methods become infeasible.

## IntroductionEdit

Reinforcement learning, due to its generality, is studied in many other disciplines, such as game theory, control theory, operations research, information theory, simulation-based optimization, multi-agent systems, swarm intelligence, statistics and genetic algorithms. In the operations research and control literature, reinforcement learning is called *approximate dynamic programming,* or *neuro-dynamic programming.* The problems of interest in reinforcement learning have also been studied in the theory of optimal control, which is concerned mostly with the existence and characterization of optimal solutions, and algorithms for their exact computation, and less with learning or approximation, particularly in the absence of a mathematical model of the environment. In economics and game theory, reinforcement learning may be used to explain how equilibrium may arise under bounded rationality.

Basic reinforcement is modeled as a Markov decision process:

- a set of environment and agent states, S;
- a set of actions, A, of the agent;
- is the probability of transition (at time ) from state to state under action .
- is the immediate reward after transition from to with action .
- rules that describe what the agent observes

Rules are often stochastic. The observation typically involves the scalar, immediate reward associated with the last transition. In many works, the agent is assumed to observe the current environmental state (*full observability*). If not, the agent has *partial observability*. Sometimes the set of actions available to the agent is restricted (a zero balance cannot be reduced. For example, if the current value of the agent is 3 and the state transition reduces the value by 4, the transition will not be allowed).

A reinforcement learning agent interacts with its environment in discrete time steps. At each time t, the agent receives an observation , which typically includes the reward . It then chooses an action from the set of available actions, which is subsequently sent to the environment. The environment moves to a new state and the reward associated with the *transition* is determined. The goal of a reinforcement learning agent is to collect as much reward as possible. The agent can (possibly randomly) choose any action as a function of the history.

When the agent's performance is compared to that of an agent that acts optimally, the difference in performance gives rise to the notion of *regret*. In order to act near optimally, the agent must reason about the long-term consequences of its actions (i.e., maximize future income), although the immediate reward associated with this might be negative.

Thus, reinforcement learning is particularly well-suited to problems that include a long-term versus short-term reward trade-off. It has been applied successfully to various problems, including robot control, elevator scheduling, telecommunications, backgammon, checkers^{[3]} and Go (AlphaGo).

Two elements make reinforcement learning powerful: the use of samples to optimize performance and the use of function approximation to deal with large environments. Thanks to these two key components, reinforcement learning can be used in large environments in the following situations:

- A model of the environment is known, but an analytic solution is not available;
- Only a simulation model of the environment is given (the subject of simulation-based optimization);
^{[4]} - The only way to collect information about the environment is to interact with it.

The first two of these problems could be considered planning problems (since some form of model is available), while the last one could be considered to be a genuine learning problem. However, reinforcement learning converts both planning problems to machine learning problems.

## ExplorationEdit

The exploration vs. exploitation trade-off has been most thoroughly studied through the multi-armed bandit problem and for finite state space MDPs in Burnetas and Katehakis (1997).^{[5]}

Reinforcement learning requires clever exploration mechanisms; randomly selecting actions, without reference to an estimated probability distribution, shows poor performance. The case of (small) finite Markov decision processes is relatively well understood. However, due to the lack of algorithms that scale well with the number of states (or scale to problems with infinite state spaces), simple exploration methods are the most practical.

One such method is -greedy, where is a parameter controlling the amount of exploration vs. exploitation. With probability , exploitation is chosen, and the agent chooses the action that it believes has the best long-term effect (ties between actions are broken uniformly at random). Alternatively, with probability , exploration is chosen, and the action is chosen uniformly at random. is usually a fixed parameter but can be adjusted either according to a schedule (making the agent explore progressively less), or adaptively based on heuristics.^{[6]}

## Algorithms for control learningEdit

Even if the issue of exploration is disregarded and even if the state was observable (assumed hereafter), the problem remains to use past experience to find out which actions lead to higher cumulative rewards.

### Criterion of optimalityEdit

#### PolicyEdit

The agent's action selection is modeled as a map called *policy*:

The policy map gives the probability of taking action when in state .^{[7]}^{:61} There are also non-probabilistic policies.

#### State-value functionEdit

Value function is defined as the *expected return* starting with state , i.e. , and successively following policy . Hence, roughly speaking, the value function estimates "how good" it is to be in a given state.^{[7]}^{:60}

where the random variable denotes the **return**, and is defined as the sum of future discounted rewards (gamma is less than 1, as a particular state becomes older, its effect on the later states becomes less and less. Thus, we discount its effect).

where is the reward at step , is the discount-rate.

The algorithm must find a policy with maximum expected return. From the theory of MDPs it is known that, without loss of generality, the search can be restricted to the set of so-called *stationary* policies. A policy is *stationary* if the action-distribution returned by it depends only on the last state visited (from the observation agent's history). The search can be further restricted to *deterministic* stationary policies. A *deterministic stationary* policy deterministically selects actions based on the current state. Since any such policy can be identified with a mapping from the set of states to the set of actions, these policies can be identified with such mappings with no loss of generality.

### Brute forceEdit

The brute force approach entails two steps:

- For each possible policy, sample returns while following it
- Choose the policy with the largest expected return

One problem with this is that the number of policies can be large, or even infinite. Another is that variance of the returns may be large, which requires many samples to accurately estimate the return of each policy.

These problems can be ameliorated if we assume some structure and allow samples generated from one policy to influence the estimates made for others. The two main approaches for achieving this are value function estimation and direct policy search.

### Value functionEdit

Value function approaches attempt to find a policy that maximizes the return by maintaining a set of estimates of expected returns for some policy (usually either the "current" [on-policy] or the optimal [off-policy] one).

These methods rely on the theory of MDPs, where optimality is defined in a sense that is stronger than the above one: A policy is called optimal if it achieves the best expected return from *any* initial state (i.e., initial distributions play no role in this definition). Again, an optimal policy can always be found amongst stationary policies.

To define optimality in a formal manner, define the value of a policy by

where stands for the return associated with following from the initial state . Defining as the maximum possible value of , where is allowed to change,

A policy that achieves these optimal values in each state is called *optimal*. Clearly, a policy that is optimal in this strong sense is also optimal in the sense that it maximizes the expected return , since , where is a state randomly sampled from the distribution ^{[clarification needed]}.

Although state-values suffice to define optimality, it is useful to define action-values. Given a state , an action and a policy , the action-value of the pair under is defined by

where now stands for the random return associated with first taking action in state and following , thereafter.

The theory of MDPs states that if is an optimal policy, we act optimally (take the optimal action) by choosing the action from with the highest value at each state, . The *action-value function* of such an optimal policy ( ) is called the *optimal action-value function* and is commonly denoted by . In summary, the knowledge of the optimal action-value function alone suffices to know how to act optimally.

Assuming full knowledge of the MDP, the two basic approaches to compute the optimal action-value function are value iteration and policy iteration. Both algorithms compute a sequence of functions ( ) that converge to . Computing these functions involves computing expectations over the whole state-space, which is impractical for all but the smallest (finite) MDPs. In reinforcement learning methods, expectations are approximated by averaging over samples and using function approximation techniques to cope with the need to represent value functions over large state-action spaces.

#### Monte Carlo methodsEdit

Monte Carlo methods can be used in an algorithm that mimics policy iteration. Policy iteration consists of two steps: *policy evaluation* and *policy improvement*.

Monte Carlo is used in the policy evaluation step. In this step, given a stationary, deterministic policy , the goal is to compute the function values (or a good approximation to them) for all state-action pairs . Assuming (for simplicity) that the MDP is finite, that sufficient memory is available to accommodate the action-values and that the problem is episodic and after each episode a new one starts from some random initial state. Then, the estimate of the value of a given state-action pair can be computed by averaging the sampled returns that originated from over time. Given sufficient time, this procedure can thus construct a precise estimate of the action-value function . This finishes the description of the policy evaluation step.

In the policy improvement step, the next policy is obtained by computing a *greedy* policy with respect to : Given a state , this new policy returns an action that maximizes . In practice lazy evaluation can defer the computation of the maximizing actions to when they are needed.

Problems with this procedure include:

- The procedure may spend too much time evaluating a suboptimal policy.
- It uses samples inefficiently in that a long trajectory improves the estimate only of the
*single*state-action pair that started the trajectory. - When the returns along the trajectories have
*high variance*, convergence is slow. - It works in
__episodic problems__only; - It works in small, finite MDPs only.

#### Temporal difference methodsEdit

The first problem is corrected by allowing the procedure to change the policy (at some or all states) before the values settle. This too may be problematic as it might prevent convergence. Most current algorithms do this, giving rise to the class of *generalized policy iteration* algorithms. Many *actor critic* methods belong to this category.

The second issue can be corrected by allowing trajectories to contribute to any state-action pair in them. This may also help to some extent with the third problem, although a better solution when returns have high variance is Sutton's temporal difference (TD) methods that are based on the recursive Bellman equation.^{[8]}^{[9]} The computation in TD methods can be incremental (when after each transition the memory is changed and the transition is thrown away), or batch (when the transitions are batched and the estimates are computed once based on the batch). Batch methods, such as the least-squares temporal difference method,^{[10]} may use the information in the samples better, while incremental methods are the only choice when batch methods are infeasible due to their high computational or memory complexity. Some methods try to combine the two approaches. Methods based on temporal differences also overcome the fourth issue.

In order to address the fifth issue, *function approximation methods* are used. *Linear function approximation* starts with a mapping that assigns a finite-dimensional vector to each state-action pair. Then, the action values of a state-action pair are obtained by linearly combining the components of with some *weights* :

The algorithms then adjust the weights, instead of adjusting the values associated with the individual state-action pairs. Methods based on ideas from nonparametric statistics (which can be seen to construct their own features) have been explored.

Value iteration can also be used as a starting point, giving rise to the Q-learning algorithm and its many variants.^{[11]}

The problem with using action-values is that they may need highly precise estimates of the competing action values that can be hard to obtain when the returns are noisy, though this problem is mitigated to some extent by temporal difference methods. Using the so-called compatible function approximation method compromises generality and efficiency. Another problem specific to TD comes from their reliance on the recursive Bellman equation. Most TD methods have a so-called parameter that can continuously interpolate between Monte Carlo methods that do not rely on the Bellman equations and the basic TD methods that rely entirely on the Bellman equations. This can be effective in palliating this issue.

### Direct policy searchEdit

An alternative method is to search directly in (some subset of) the policy space, in which case the problem becomes a case of stochastic optimization. The two approaches available are gradient-based and gradient-free methods.

Gradient-based methods (*policy gradient methods*) start with a mapping from a finite-dimensional (parameter) space to the space of policies: given the parameter vector , let denote the policy associated to . Defining the performance function by

under mild conditions this function will be differentiable as a function of the parameter vector . If the gradient of was known, one could use gradient ascent. Since an analytic expression for the gradient is not available, only a noisy estimate is available. Such an estimate can be constructed in many ways, giving rise to algorithms such as Williams' REINFORCE method^{[12]} (which is known as the likelihood ratio method in the simulation-based optimization literature).^{[13]} Policy search methods have been used in the robotics context.^{[14]} Many policy search methods may get stuck in local optima (as they are based on local search).

A large class of methods avoids relying on gradient information. These include simulated annealing, cross-entropy search or methods of evolutionary computation. Many gradient-free methods can achieve (in theory and in the limit) a global optimum.

Policy search methods may converge slowly given noisy data. For example, this happens in episodic problems when the trajectories are long and the variance of the returns is large. Value-function based methods that rely on temporal differences might help in this case. In recent years, *actor–critic methods* have been proposed and performed well on various problems.^{[15]}

## TheoryEdit

Both the asymptotic and finite-sample behavior of most algorithms is well understood. Algorithms with provably good online performance (addressing the exploration issue) are known.

Efficient exploration of MDPs is given in Burnetas and Katehakis (1997).^{[5]} Finite-time performance bounds have also appeared for many algorithms, but these bounds are expected to be rather loose and thus more work is needed to better understand the relative advantages and limitations.

For incremental algorithms, asymptotic convergence issues have been settled^{[clarification needed]}. Temporal-difference-based algorithms converge under a wider set of conditions than was previously possible (for example, when used with arbitrary, smooth function approximation).

## ResearchEdit

Research topics include

- adaptive methods that work with fewer (or no) parameters under a large number of conditions
- addressing the exploration problem in large MDPs
- combinations with logic-based frameworks
^{[16]} - large-scale empirical evaluations
- learning and acting under partial information (e.g., using predictive state representation)
- modular and hierarchical reinforcement learning
^{[17]} - improving existing value-function and policy search methods
- algorithms that work well with large (or continuous) action spaces
- transfer learning
^{[18]} - lifelong learning
- efficient sample-based planning (e.g., based on Monte Carlo tree search).
- bug detection in software projects
^{[19]} - Intrinsic motivation which differentiates information-seeking, curiosity-type behaviours from task-dependent goal-directed behaviours (typically) by introducing a reward function based on maximising novel information
^{[20]}^{[21]}^{[22]}

Multiagent or distributed reinforcement learning is a topic of interest. Applications are expanding.^{[23]}

- Actor-critic reinforcement learning

Reinforcement learning algorithms such as TD learning are under investigation as a model for dopamine-based learning in the brain. In this model, the dopaminergic projections from the substantia nigra to the basal ganglia function as the prediction error. Reinforcement learning has been used as a part of the model for human skill learning, especially in relation to the interaction between implicit and explicit learning in skill acquisition (the first publication on this application was in 1995–1996).^{[24]}

## Comparison of reinforcement learning algorithmsEdit

Algorithm | Description | Model | Policy | Action Space | State Space | Operator |
---|---|---|---|---|---|---|

Monte Carlo | Every visit to Monte Carlo | Model-Free | Either | Discrete | Discrete | Sample-means |

Q-learning | State–action–reward–state | Model-Free | Off-policy | Discrete | Discrete | Q-value |

SARSA | State–action–reward–state–action | Model-Free | On-policy | Discrete | Discrete | Q-value |

Q-learning - Lambda | State–action–reward–state with eligibility traces | Model-Free | Off-policy | Discrete | Discrete | Q-value |

SARSA - Lambda | State–action–reward–state–action with eligibility traces | Model-Free | On-policy | Discrete | Discrete | Q-value |

DQN | Deep Q Network | Model-Free | Off-policy | Discrete | Continuous | Q-value |

DDPG | Deep Deterministic Policy Gradient | Model-Free | Off-policy | Continuous | Continuous | Q-value |

A3C | Asynchronous Advantage Actor-Critic Algorithm | Model-Free | On-policy | Continuous | Continuous | Advantage |

NAF | Q-Learning with Normalized Advantage Functions | Model-Free | Off-policy | Continuous | Continuous | Advantage |

TRPO | Trust Region Policy Optimization | Model-Free | On-policy | Continuous | Continuous | Advantage |

PPO | Proximal Policy Optimization | Model-Free | On-policy | Continuous | Continuous | Advantage |

TD3 | Twin Delayed Deep Deterministic Policy Gradient | Model-Free | Off-policy | Continuous | Continuous | Q-value |

SAC | Soft Actor-Critic | Model-Free | Off-policy | Continuous | Continuous | Advantage |

### Deep reinforcement learningEdit

This approach extends reinforcement learning by using a deep neural network and without explicitly designing the state space.^{[25]} The work on learning ATARI games by Google DeepMind increased attention to deep reinforcement learning or end-to-end reinforcement learning.^{[26]}

### Inverse reinforcement learningEdit

In inverse reinforcement learning (IRL), no reward function is given. Instead, the reward function is inferred given an observed behavior from an expert. The idea is to mimic observed behavior, which is often optimal or close to optimal.^{[27]}

### Apprenticeship learningEdit

In apprenticeship learning, an expert demonstrates the target behavior. The system tries to recover the policy via observation.

## See alsoEdit

## ReferencesEdit

**^**Kaelbling, Leslie P.; Littman, Michael L.; Moore, Andrew W. (1996). "Reinforcement Learning: A Survey".*Journal of Artificial Intelligence Research*.**4**: 237–285. arXiv:cs/9605103. doi:10.1613/jair.301. Archived from the original on 2001-11-20.CS1 maint: ref=harv (link)**^**van Otterlo, M.; Wiering, M. (2012).*Reinforcement learning and markov decision processes*.*Reinforcement Learning*. Adaptation, Learning, and Optimization.**12**. pp. 3–42. doi:10.1007/978-3-642-27645-3_1. ISBN 978-3-642-27644-6.**^**Sutton & Barto, Chapter 11.**^**Gosavi, Abhijit (2003).*Simulation-based Optimization: Parametric Optimization Techniques and Reinforcement*. Operations Research/Computer Science Interfaces Series. Springer. ISBN 978-1-4020-7454-7.CS1 maint: ref=harv (link)- ^
^{a}^{b}Burnetas, Apostolos N.; Katehakis, Michael N. (1997), "Optimal adaptive policies for Markov Decision Processes",*Mathematics of Operations Research*,**22**: 222–255, doi:10.1287/moor.22.1.222CS1 maint: ref=harv (link) **^**Tokic, Michel; Palm, Günther (2011), "Value-Difference Based Exploration: Adaptive Control Between Epsilon-Greedy and Softmax" (PDF),*KI 2011: Advances in Artificial Intelligence*, Lecture Notes in Computer Science,**7006**, Springer, pp. 335–346, ISBN 978-3-642-24455-1- ^
^{a}^{b}*Reinforcement learning: An introduction*(PDF). **^**Sutton, Richard S. (1984).*Temporal Credit Assignment in Reinforcement Learning*(PhD thesis). University of Massachusetts, Amherst, MA.CS1 maint: ref=harv (link)**^**Sutton & Barto 1998, §6. Temporal-Difference Learning.**^**Bradtke, Steven J.; Barto, Andrew G. (1996). "Learning to predict by the method of temporal differences".*Machine Learning*.**22**: 33–57. CiteSeerX 10.1.1.143.857. doi:10.1023/A:1018056104778.CS1 maint: ref=harv (link)**^**Watkins, Christopher J.C.H. (1989).*Learning from Delayed Rewards*(PDF) (PhD thesis). King’s College, Cambridge, UK.CS1 maint: ref=harv (link)**^**Williams, Ronald J. (1987). "A class of gradient-estimating algorithms for reinforcement learning in neural networks".*Proceedings of the IEEE First International Conference on Neural Networks*. CiteSeerX 10.1.1.129.8871.CS1 maint: ref=harv (link)**^**Peters, Jan; Vijayakumar, Sethu; Schaal, Stefan (2003). "Reinforcement Learning for Humanoid Robotics" (PDF).*IEEE-RAS International Conference on Humanoid Robots*.CS1 maint: ref=harv (link)**^**Deisenroth, Marc Peter; Neumann, Gerhard; Peters, Jan (2013).*A Survey on Policy Search for Robotics*(PDF). Foundations and Trends in Robotics.**2**. NOW Publishers. pp. 1–142. doi:10.1561/2300000021. hdl:10044/1/12051.CS1 maint: ref=harv (link)**^**Juliani, Arthur (2016-12-17). "Simple Reinforcement Learning with Tensorflow Part 8: Asynchronous Actor-Critic Agents (A3C)".*Medium*. Retrieved 2018-02-22.**^**Riveret, Regis; Gao, Yang (2019). "A probabilistic argumentation framework for reinforcement learning agents".*Autonomous Agents and Multi-Agent Systems*.**33**(1–2): 216–274. doi:10.1007/s10458-019-09404-2.**^**Kulkarni, Tejas D.; Narasimhan, Karthik R.; Saeedi, Ardavan; Tenenbaum, Joshua B. (2016). "Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation".*Proceedings of the 30th International Conference on Neural Information Processing Systems*. NIPS'16. USA: Curran Associates Inc.: 3682–3690. arXiv:1604.06057. Bibcode:2016arXiv160406057K. ISBN 978-1-5108-3881-9.**^**George Karimpanal, Thommen; Bouffanais, Roland (2019). "Self-organizing maps for storage and transfer of knowledge in reinforcement learning".*Adaptive Behavior*.**27**(2): 111–126. arXiv:1811.08318. doi:10.1177/1059712318818568. ISSN 1059-7123.**^**"On the Use of Reinforcement Learning for Testing Game Mechanics : ACM - Computers in Entertainment".*cie.acm.org*. Retrieved 2018-11-27.**^**Kaplan, F. and Oudeyer, P. (2004). Maximizing learning progress: an internal reward system for development. Embodied artificial intelligence, pages 629–629.**^**Klyubin, A., Polani, D., and Nehaniv, C. (2008). Keep your options open: an information-based driving principle for sensorimotor systems. PloS ONE, 3(12):e4018. doi:10.1371%2Fjournal.pone.0004018**^**Barto, A. G. (2013). “Intrinsic motivation and reinforcement learning,” in Intrinsically Motivated Learning in Natural and Artificial Systems (Berlin; Heidelberg: Springer), 17–47**^**"Reinforcement Learning / Successes of Reinforcement Learning".*umichrl.pbworks.com*. Retrieved 2017-08-06.**^**[1] Archived 2017-04-26 at the Wayback Machine**^**Francois-Lavet, Vincent; et al. (2018). "An Introduction to Deep Reinforcement Learning".*Foundations and Trends in Machine Learning*.**11**(3–4): 219–354. arXiv:1811.12560. Bibcode:2018arXiv181112560F. doi:10.1561/2200000071.**^**Mnih, Volodymyr; et al. (2015). "Human-level control through deep reinforcement learning".*Nature*.**518**(7540): 529–533. Bibcode:2015Natur.518..529M. doi:10.1038/nature14236. PMID 25719670.**^**Ng, A. Y.; Russell, S. J. (2000). "Algorithms for Inverse Reinforcement Learning" (PDF).*Proceeding ICML '00 Proceedings of the Seventeenth International Conference on Machine Learning*. pp. 663–670. ISBN 1-55860-707-2.

## Further readingEdit

- Auer, Peter; Jaksch, Thomas; Ortner, Ronald (2010). "Near-optimal regret bounds for reinforcement learning".
*Journal of Machine Learning Research*.**11**: 1563–1600.CS1 maint: ref=harv (link) - Busoniu, Lucian; Babuska, Robert; De Schutter, Bart; Ernst, Damien (2010).
*Reinforcement Learning and Dynamic Programming using Function Approximators*. Taylor & Francis CRC Press. ISBN 978-1-4398-2108-4.CS1 maint: ref=harv (link) - François-Lavet, Vincent; Henderson, Peter; Islam, Riashat; Bellemare, Marc G.; Pineau, Joelle (2018). "An Introduction to Deep Reinforcement Learning".
*Foundations and Trends in Machine Learning*.**11**(3–4): 219–354. arXiv:1811.12560. Bibcode:2018arXiv181112560F. doi:10.1561/2200000071.CS1 maint: ref=harv (link) - Powell, Warren (2007).
*Approximate dynamic programming: solving the curses of dimensionality*. Wiley-Interscience. ISBN 978-0-470-17155-4.CS1 maint: ref=harv (link) - Sutton, Richard S.; Barto, Andrew G. (1998).
*Reinforcement Learning: An Introduction*. MIT Press. ISBN 978-0-262-19398-6.CS1 maint: ref=harv (link) - Sutton, Richard S. (1988). "Learning to predict by the method of temporal differences".
*Machine Learning*.**3**: 9–44. doi:10.1007/BF00115009.CS1 maint: ref=harv (link) - Szita, Istvan; Szepesvari, Csaba (2010). "Model-based Reinforcement Learning with Nearly Tight Exploration Complexity Bounds" (PDF).
*ICML 2010*. Omnipress. pp. 1031–1038. Archived from the original (PDF) on 2010-07-14.CS1 maint: ref=harv (link)

## External linksEdit

- Reinforcement Learning Repository
- Reinforcement Learning and Artificial Intelligence (RLAI, Rich Sutton's lab at the University of Alberta)
- Autonomous Learning Laboratory (ALL, Andrew Barto's lab at the University of Massachusetts Amherst)
- Hybrid reinforcement learning
- Real-world reinforcement learning experiments at Delft University of Technology
- Stanford University Andrew Ng Lecture on Reinforcement Learning
- Dissecting Reinforcement Learning Series of blog post on RL with Python code