Study interactive :: Progress tools open in the Study Hub reader.

Reinforcement Learning Quick Reference

Quick reference guide for reinforcement learning algorithms, formulas, and code snippets.

Key Formulas

Return (Cumulative Reward)

$$G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \ldots$$

Q-Learning Update

$$Q(s,a) \leftarrow Q(s,a) + \alpha[r + \gamma \max_{a'} Q(s',a') - Q(s,a)]$$

Policy Gradient

$$\nabla_{\theta} J(\theta) = \mathbb{E}{\pi}[\nabla{\theta} \log \pi(a|s) \cdot Q^{\pi}(s,a)]$$

Bellman Equation for Q

$$Q^{\pi}(s,a) = \sum_{s',r} P(s',r|s,a) [r + \gamma \sum_{a'} \pi(a'|s') Q^{\pi}(s',a')]$$

Algorithms Comparison

Algorithm Type Action Space Off-Policy Notes
Q-Learning Value-based Discrete Yes Simple, tabular
DQN Value-based Discrete Yes Deep, experience replay
Double DQN Value-based Discrete Yes Reduces overestimation
REINFORCE Policy-based Discrete/Continuous No Monte Carlo
A2C / typical Actor-Critic Both Discrete/Continuous No On-policy; learn from current policy rollouts
DDPG / SAC Actor-Critic Continuous Yes Off-policy actor-critic with replay
PPO Policy-based Discrete/Continuous No On-policy; clipped surrogate updates

Code Snippets

Q-Learning

Q[s, a] += alpha * (reward + gamma * np.max(Q[next_s]) - Q[s, a])

Epsilon-Greedy

if random.random() < epsilon:
    action = random.choice(actions)
else:
    action = np.argmax(Q[state])

Experience Replay

memory.append((state, action, reward, next_state, done))
batch = random.sample(memory, batch_size)

Policy Gradient Loss

loss = -log_prob * advantage

Libraries

Common Environments