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
- Gymnasium:
import gymnasium as gym; env = gym.make('CartPole-v1')thenobs, info = env.reset()andobs, r, terminated, truncated, info = env.step(a) - Stable-Baselines3:
from stable_baselines3 import DQN - Ray RLlib:
from ray.rllib.algorithms import ppo
Common Environments
- CartPole-v1: Balance pole
- FrozenLake: Grid world navigation
- MountainCar: Drive car up hill
- Atari: Game playing
- MuJoCo: Continuous control