Theme
Lecture 11 Deep Reinforcement Learning 学习笔记
0. 本章核心目标与“进化树”
本章要解决的核心问题是:
给定一个 agent,它不能直接获得标准监督学习中的标签 ,而是必须通过与环境交互获得经验 ,如何学习一个策略 ,使长期累计奖励最大?
整章的技术演进可以概括为:
text
监督学习/无监督学习
↓
强化学习问题:数据由 agent 自己交互产生
↓
MDP:如果知道环境模型 P(s'|s,a), r(s,a),可做 planning
↓
Value Iteration:用 Bellman optimality equation 求 V* 或 Q*
↓
Model-free RL:不知道 P 和 r,只能用样本 (s,a,r,s')
↓
Tabular Q-learning / SARSA
↓
状态空间太大:不能用表格
↓
DQN:用神经网络近似 Q(s,a;θ)
↓
DQN 不稳定:moving target + correlated samples + overestimation
↓
Target Network + Experience Replay + Double DQN + PER
↓
Value-based 间接学策略仍有局限
↓
Policy Gradient:直接优化 πθ(a|s)
↓
REINFORCE 高方差
↓
Baseline / Causality / Actor-Critic
↓
A3C / PPO / SAC
↓
现代趋势:结合 value-based 与 policy-based 的优点1. Reinforcement Learning 的基本思想
1.1 与监督/无监督学习的区别【必考】
监督学习的数据形式是:
模型学习从输入 到标签 的映射。
无监督学习的数据形式是:
目标是理解、生成或操作无标签数据。
强化学习的数据形式是:
其中:
关键区别是:监督/无监督学习的数据通常是预先收集好的,而 RL 的数据由 agent 自己与环境交互产生。因此 RL 是一种 active learning。
1.2 Cat-Mouse-Cheese 例子【重要】
课件用猫、老鼠、奶酪的迷宫说明 RL:
老鼠的动作空间:
奖励规则:
目标不是让老鼠预测标签,而是让它学会在每个状态下采取正确动作。
策略定义为:
其中:
这个例子强调:RL 学的是行为策略,而不是输入到标签的静态映射。
2. Markov Decision Process, MDP
2.1 MDP 的定义【必考】
MDP 是 agent 与环境交互的数学模型。一个 MDP 包含:
其中:
表示在当前状态 执行动作 后,下一个状态为 的概率。
表示从 执行动作 转移到 时获得的 reward。
如果只关心在 执行 后的期望即时奖励,可以定义:
这里:
逻辑直觉:如果环境转移是随机的,那么同一个动作可能导致不同 ,所以 reward 也可能不同。 就是“平均意义上采取动作 的即时收益”。
2.2 Markov 性质【必考】
MDP 的核心假设是 Markov property:
也就是说,未来只依赖当前状态和当前动作,不依赖更早的历史。
这个假设非常关键,因为它允许我们用 、 这种局部函数描述长期收益,而不必记录整个历史轨迹。
2.3 Trajectory 与 Discounted Return【必考】
在策略 下,agent 与环境交互产生轨迹:
如果初始状态是 ,策略为 ,则 discounted total reward 为:
也可写为:
其中:
物理/逻辑意义:
控制 agent 对未来奖励的重视程度。
当 接近 0 时,agent 近视,只关心眼前 reward。
当 接近 1 时,agent 更重视长期规划。
3. Value Function 与 Optimal Policy
3.1 Policy Value Function【必考】
由于环境可能随机,同一个策略从同一个状态开始可能产生不同 return。因此定义期望 return:
其中:
直觉: 衡量“状态 在策略 下有多好”。
3.2 Optimal Policy 与 Optimal Value Function【必考】
最优策略 满足:
最优状态价值函数定义为:
其中:
4. Planning vs Reinforcement Learning
4.1 Planning【必考】
如果知道环境模型:
则可以直接求:
这叫 planning。
4.2 Reinforcement Learning【必考】
如果不知道环境模型,只能收集经验:
这叫 reinforcement learning。
对比:
| 方法 | 已知信息 | 学习对象 | 典型方法 | 局限 | |
|---|---|---|---|---|---|
| Planning | $P(s' | s,a), r(s,a)$ | , , | Value Iteration | 需要完整环境模型 |
| RL | 样本 | , , | Q-learning, DQN, PG | 样本效率、稳定性、探索问题 |
5. Value Iteration
5.1 从 MDP 到最优策略【必考】
Planning 分两步:
核心是 Bellman optimality backup。
5.2 Value Iteration 公式【必考】
初始化:
重复更新:
直到:
其中:
逻辑直觉:
当前状态 的价值等于:立刻获得的 reward,加上下一个状态的 discounted value,并选择最好的动作。
5.3 Bellman Operator 的收缩性【必考】
Value Iteration 能收敛,因为 Bellman operator 是 contraction:
由于:
误差会逐步缩小,因此无论 如何初始化,最终都收敛到 。
5.4 Bellman Optimality Equation【必考】
当 时,Value Iteration 一步后不再改变:
这就是 Bellman optimality equation。
5.5 Optimal Q-function【必考】
定义最优动作价值函数:
其中:
由 得到最优策略:
并且:
5.6 直接对 Q 做 Value Iteration【重要】
可以直接迭代 :
收敛到:
贪心策略:
课件强调: 会在有限步内稳定到 。
6. Q-learning:从 Planning 到 Model-free RL
6.1 为什么需要 Q-learning【必考】
Value Iteration 需要知道:
但现实中常常不知道环境模型,只能采样经验:
Q-learning 的目标是:
然后:
6.2 从 Bellman Update 到 TD Target【必考】
Value Iteration 的 Q 更新是:
如果可以采样多个下一状态:
则近似为:
如果只有一个样本:
则:
右侧称为 TD target:
TD target 是 Bellman update 的无偏估计,但方差较高。
6.3 Q-learning 更新公式【必考】
因为单样本 TD target 方差高,所以不直接替换 ,而是做 soft update:
等价于:
其中:
定义 TD error:
则更新为:
直觉:如果 TD target 比当前 大,就提高估计;如果更小,就降低估计。
6.4 Q-learning 算法【必考】
text
Initialize Q(s,a) arbitrarily
For each episode:
Pick initial state s
Repeat:
Choose action a using ε-greedy policy
Take action a, observe r and s'
Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)]
s ← s'
until s is terminal收敛条件:
如果每个 pair 被更新无限多次,则 Q-learning 收敛到 。
7. Exploration vs Exploitation
7.1 探索与利用的矛盾【必考】
Exploration:
尝试新的状态/动作,以获得更多经验。
缺点:短期 reward 可能不高。
Exploitation:
利用已有 估计,选择当前看起来最好的动作。
缺点:可能错过更优策略。
7.2 -greedy policy【必考】
其中:
直觉:大部分时候利用当前知识,小部分时候随机探索,确保足够多的 被访问。
8. Terminal State 与 Episode
8.1 Terminal/Absorbing State【重要】
Terminal state 是进入后无法离开的状态,例如 Game Over。
Episode 是从初始状态到 terminal state 的完整过程。
在 episodic RL 中,训练通常是一局一局进行的。
9. On-policy vs Off-policy
9.1 定义【必考】
On-policy:
学习的是当前正在执行的策略的 value。
Off-policy:
执行策略和学习目标策略可以不同。
9.2 Q-learning 是 off-policy【必考】
Q-learning 更新使用:
这个 表示假设下一步采用 greedy action:
但实际执行动作可能来自 -greedy,不一定是 greedy action。
所以 Q-learning 学的是 greedy policy 的 value,但行为策略是 -greedy,因此是 off-policy。
9.3 SARSA 是 on-policy【必考】
SARSA 更新:
其中 是 agent 在 下按照当前策略实际选择的动作。
因此 SARSA 学的是当前行为策略本身的 value,是 on-policy。
对比:
| 算法 | 更新目标 | 是否 on-policy | 核心区别 |
|---|---|---|---|
| Q-learning | Off-policy | 用 greedy action 更新 | |
| SARSA | On-policy | 用实际采样的下一动作更新 |
10. Deep Q-Network, DQN
10.1 为什么需要 DQN【必考】
Tabular Q-learning 需要维护表:
但当状态空间巨大时不可行。
例如 Atari 图像状态:
每个 pixel 有 128 种可能颜色,则状态数极其巨大。
因此不能枚举所有状态,也不能为未访问状态直接查表。
DQN 用神经网络近似:
其中:
神经网络将状态 映射到每个动作的 Q-value。
10.2 DQN 的学习目标【必考】
目标是让:
接近 TD target:
损失函数:
代入 TD target:
梯度下降更新:
问题:target 本身也依赖 ,所以 一更新,target 也变。这叫 moving target。
11. Target Network
11.1 Moving Target 问题【必考】
DQN 的 TD target 是:
但 的参数也是 ,所以目标随着模型参数变化而变化。
这会导致训练不稳定:模型一边追目标,目标一边移动。
11.2 Target Network 解决方案【必考】
引入目标网络参数:
TD target 改为:
更新主网络:
每隔 步同步一次:
直觉:用较慢更新的 target network 提供更稳定的 TD target。
12. Experience Replay
12.1 为什么需要 Experience Replay【必考】
如果 DQN 每次只用最新 transition 更新,则存在三个问题:
第一,样本利用率低。每个样本只用一次。
第二,相邻 transition 高度相关,导致梯度方差大。
第三,每次更新只来自一个局部状态,收敛慢。
12.2 Replay Buffer【必考】
维护经验池:
每次交互后存入 transition:
训练时随机采样 minibatch:
更新损失:
参数更新:
优势:
| 问题 | Experience Replay 如何解决 |
|---|---|
| 样本利用率低 | 一个 transition 可被多次采样 |
| 相邻样本相关 | 随机采样打破时间相关性 |
| 单点更新噪声大 | minibatch 提供多点信号 |
| 收敛慢 | 多样经验提升稳定性 |
13. Atari DQN
13.1 Atari 设置【重要】
DQN 在 Atari 中:
输出:
其中 是 18 种 joystick/button 动作之一。
Reward:
网络架构和超参数在多个游戏中固定。
意义:DQN 展示了 end-to-end 从 pixels 到 actions 的 deep RL 能力。
14. DQN 的 Overestimation Bias
14.1 为什么 DQN 会高估 Q-value【必考】
DQN 的 TD target:
由于 Q 估计不准确,包含随机误差 :
取期望:
理想情况应该是先对 Q 估计求平均,再取最大:
由于:
所以:
这就是 overestimation bias。
直觉:如果每个动作的 Q 估计都有噪声,那么取最大值时更容易选中“被噪声偶然抬高”的动作,因此最大值会系统性偏高。
15. Double DQN
15.1 Double DQN 的核心思想【必考】
DQN 用同一个 target network 完成两个操作:
第一,选择动作:
第二,评估动作价值:
这会导致 overestimation。
Double DQN 将动作选择和动作评估分离。
动作选择使用 online network:
动作评估使用 target network:
完整写作:
更新:
核心直觉:一个网络负责“挑学生”,另一个网络负责“给分”,降低同一噪声同时影响选择和评估带来的高估偏差。
16. Prioritized Experience Replay, PER
16.1 为什么需要 PER【重要】
普通 replay buffer 均匀采样 transition。
但不是所有 transition 都同样重要。
如果某个 transition 的 TD error 很大,说明当前模型在这个样本上预测很差,更值得学习。
16.2 TD Error 作为优先级【必考】
定义 TD error:
priority 可定义为:
或者 rank-based:
采样概率:
其中:
直觉:TD error 大的样本更“意外”,更能提供学习信号。
17. Value-Based RL vs Policy-Based RL
17.1 Value-Based RL【必考】
Value-based RL 的路径是:
特点:
策略通常是 deterministic:
优点:
可以 off-policy,可以使用 replay buffer,样本效率较高。
缺点:
间接优化策略,需要准确估计 Q;Q 估计误差可能导致不稳定策略。
17.2 Policy-Based RL【必考】
Policy-based RL 直接学习:
其中:
路径是:
策略是 stochastic policy。
优点:
直接优化策略,更自然地处理连续动作和随机策略。
缺点:
通常 on-policy,样本效率较低,梯度估计方差高。
18. Policy Gradient
18.1 Trajectory Probability【必考】
在 stochastic policy 下,轨迹:
每一步:
轨迹概率:
其中:
注意:环境转移概率通常不可导,也不由 控制。
18.2 Policy Gradient 目标函数【必考】
目标是最大化期望累计奖励:
其中:
所以:
优化目标:
梯度上升:
18.3 Log-gradient Trick 推导【必考】
从定义开始:
写成积分:
把梯度移入积分:
利用:
得到:
因此:
18.4 去掉环境项【必考】
轨迹 log probability:
对 求导:
因为这些属于环境,不由策略参数控制。
所以:
代回:
用 条采样轨迹近似:
19. REINFORCE Algorithm
19.1 算法流程【必考】
text
Repeat:
1. Sample trajectories {τ_i}_{i=1}^N using current policy πθ
2. Estimate gradient:
∇θJ(θ) ≈ 1/N Σ_i Σ_t ∇θ log πθ(a_t^i|s_t^i) r(τ_i)
3. Update:
θ ← θ + α∇θJ(θ)更新形式:
直觉:
如果 ,则增加该轨迹中动作的概率。
如果 ,则降低该轨迹中动作的概率。
所以 REINFORCE 是 trial-and-error 的形式化。
19.2 REINFORCE 是 on-policy【必考】
REINFORCE 用当前策略 采样轨迹,并用这些轨迹更新同一个策略。
因此它是 on-policy。
缺点:每次策略更新后,旧轨迹不再严格适用于新策略,样本效率低。
20. Policy Gradient 的高方差问题
20.1 高方差来源【必考】
Policy gradient 估计:
由于采样 trajectory 很贵,所以 不能很大。
少量 trajectory 导致估计方差高,训练不稳定。
21. 用 Causality 降低方差
21.1 原始 return 的问题【必考】
原始更新让每个动作 乘以整条轨迹 reward:
但动作 不可能影响过去的 reward:
因此不应让过去 reward 影响 的优化。
21.2 Reward-to-go【必考】
改为使用从当前时刻开始的 future return:
梯度估计:
课件版本使用 ,很多教材也会写成:
本质一样,只是折扣指数是否提取了一个整体因子。
直觉:只用动作之后的 reward 评价该动作,减少无关随机性。
22. 用 Baseline 降低方差
22.1 Baseline 形式【必考】
原始估计:
引入 baseline:
课件给出:
直觉:不是看 trajectory reward 是否大于 0,而是看它是否高于平均水平。
22.2 Baseline 不引入 bias【必考】
真实 policy gradient:
减去 baseline:
因为:
利用:
得到:
由于概率分布积分为 1:
所以:
因此 baseline 不改变期望,只降低方差。
23. Advanced Policy Gradient Methods
23.1 原始 PG 的问题【重要】
Policy gradient 的问题:
参数每次只能小步更新,否则策略可能崩溃。
学习率太大:performance collapse。
学习率太小:learning too slow。
因此高级方法目标是:更高效利用 sampled trajectories,并找到“刚刚好”的更新幅度。
课件列出方法:
24. Actor-Critic
24.1 从 optimal value 到 policy value【必考】
Optimal value functions:
关系:
Policy value functions:
关系:
Actor-Critic 的核心就是:policy gradient + policy evaluation。
Actor 学策略 。
Critic 学价值函数 或 。
24.2 Advantage Function【必考】
定义 advantage:
其中:
如果:
说明动作比平均好,应提高概率。
如果:
说明动作比平均差,应降低概率。
Policy gradient 可写为:
24.3 Advantage 的估计【必考】
一般有:
用一个样本 近似:
所以 advantage 估计为:
这其实就是 TD error:
因此 Actor-Critic 中,TD error 可作为 advantage 的估计。
24.4 Critic 的学习【必考】
用神经网络表示 value function:
其中:
训练数据:
critic 的 L2 loss:
这里 target 是:
这是 bootstrapping:用当前 value network 对下一状态的估计构造当前状态的监督信号。
24.5 Online Actor-Critic【必考】
text
Repeat:
1. Take action a ~ πθ(a|s), get (s,a,s',r)
2. Update critic φ using L2 loss:
target = r + γ V̂φπ(s')
3. Estimate advantage:
Âπ(s,a) = r + γ V̂φπ(s') - V̂φπ(s)
4. Update actor:
θ ← θ + α ∇θ log πθ(a|s) Âπ(s,a)公式:
24.6 Batch Actor-Critic【重要】
采样一批 experience:
critic 更新:
advantage:
actor 更新:
25. A3C
25.1 Asynchronous Advantage Actor-Critic【重要】
A3C 的思想:
多个 learners 并行运行,轮流更新共享参数。
作用:
第一,decorrelate data,类似于 experience replay 的替代方案。
第二,不同 learner 探索环境的不同区域。
第三,actor 和 critic 可以共享同一个神经网络的主体部分。
A3C 的关键词:
26. PPO
26.1 PPO 的动机【必考】
Actor-Critic gradient:
因为:
所以可以写成:
PPO 引入 old policy,将分母替换为:
得到 probability ratio:
PPO 的思想是让:
也就是新旧策略不要差太远,从而避免过大的 policy update。
26.2 PPO Clipped Objective【必考】
PPO 使用 clipped surrogate objective:
梯度估计:
其中:
核心直觉:
如果 ,说明动作好,PPO 允许增加该动作概率,但最多增加到 。
如果 ,说明动作差,PPO 允许降低该动作概率,但不会无限降低。
PPO 防止策略一步更新过大,从而提高训练稳定性。
27. Soft Actor-Critic, SAC
27.1 最大熵强化学习目标【重要】
普通 Policy Gradient / Actor-Critic 目标:
SAC 目标:
其中:
Entropy 越高,策略越随机,探索越充分。
SAC 的特点:
偏好高熵策略,探索能力强;通常比 DDPG、A3C 更稳定且样本效率更高。
28. 最终大对比表
| 方法 | 类型 | 是否需要模型 | 是否 on-policy | 样本效率 | 稳定性 | 核心公式/思想 | 重要程度 |
|---|---|---|---|---|---|---|---|
| Value Iteration | Planning | 需要 | 不适用 | 高 | 稳定 | Bellman optimality | 必考 |
| Q-learning | Value-based RL | 不需要 | Off-policy | 较高 | 表格下稳定 | TD target + max | 必考 |
| SARSA | Value-based RL | 不需要 | On-policy | 中 | 更保守 | 用实际 更新 | 必考 |
| DQN | Deep value-based | 不需要 | Off-policy | 较高 | 原始不稳定 | NN 近似 Q | 必考 |
| Target Network | DQN trick | 不需要 | Off-policy | — | 提高稳定性 | 固定 | 必考 |
| Experience Replay | DQN trick | 不需要 | Off-policy | 提高 | 降低相关性 | replay buffer | 必考 |
| Double DQN | DQN variant | 不需要 | Off-policy | 较高 | 降低高估 | selection/evaluation 分离 | 必考 |
| PER | DQN variant | 不需要 | Off-policy | 提高 | 可能更快 | 按 TD error 采样 | 重要 |
| REINFORCE | Policy-based | 不需要 | On-policy | 低 | 高方差 | log-gradient trick | 必考 |
| Actor-Critic | Hybrid | 不需要 | 通常 on-policy | 中 | 比 PG 稳定 | Advantage + critic | 必考 |
| A3C | Actor-Critic | 不需要 | On-policy | 中 | decorrelation | 多 learner 异步 | 重要 |
| PPO | Policy-based/AC | 不需要 | On-policy | 中 | 很稳定 | clipped ratio | 必考 |
| SAC | Actor-Critic | 不需要 | Off-policy | 高 | 高 | reward + entropy | 重要 |
29. 期末复习优先级
最高优先级:
中高优先级:
了解即可:
Atari DQN 的具体输入输出设置、A3C 学习速度图、Atari 性能比较图。
30. 一句话总括本章
本章从“已知环境模型时如何用 Bellman equation 做 planning”出发,逐步过渡到“未知环境模型时如何用样本做 RL”;再从表格型 Q-learning 发展到用神经网络近似 Q 的 DQN,并通过 target network、experience replay、Double DQN、PER 修复其不稳定和高估问题;最后转向直接优化 stochastic policy 的 Policy Gradient,并用 baseline、advantage、critic、PPO clipping 和 SAC entropy bonus 解决高方差、更新过大和探索不足的问题。