Lecture 11 Deep Reinforcement Learning 学习笔记
// @order: 999
Lecture 11 Deep Reinforcement Learning 学习笔记
0. 本章核心目标与“进化树”
本章要解决的核心问题是:
给定一个 agent,它不能直接获得标准监督学习中的标签 ((x_i, y_i)),而是必须通过与环境交互获得经验 ((s,a,r,s’)),如何学习一个策略 ,使长期累计奖励最大?
整章的技术演进可以概括为:
监督学习/无监督学习
↓
强化学习问题:数据由 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 与监督/无监督学习的区别【必考】
监督学习的数据形式是:
模型学习从输入 (x_i) 到标签 (y_i) 的映射。
无监督学习的数据形式是:
目标是理解、生成或操作无标签数据。
强化学习的数据形式是:
其中:
关键区别是:监督/无监督学习的数据通常是预先收集好的,而 RL 的数据由 agent 自己与环境交互产生。因此 RL 是一种 active learning。
—
1.2 Cat-Mouse-Cheese 例子【重要】
课件用猫、老鼠、奶酪的迷宫说明 RL:
老鼠的动作空间:
奖励规则:
目标不是让老鼠预测标签,而是让它学会在每个状态下采取正确动作。
策略定义为:
其中:
这个例子强调:RL 学的是行为策略,而不是输入到标签的静态映射。
—
2. Markov Decision Process, MDP
2.1 MDP 的定义【必考】
MDP 是 agent 与环境交互的数学模型。一个 MDP 包含:
其中:
表示在当前状态 (s) 执行动作 (a) 后,下一个状态为 (s’) 的概率。
表示从 (s) 执行动作 (a) 转移到 (s’) 时获得的 reward。
如果只关心在 (s) 执行 (a) 后的期望即时奖励,可以定义:
这里:
逻辑直觉:如果环境转移是随机的,那么同一个动作可能导致不同 (s’),所以 reward 也可能不同。(r(s,a)) 就是“平均意义上采取动作 (a) 的即时收益”。
—
2.2 Markov 性质【必考】
MDP 的核心假设是 Markov property:
也就是说,未来只依赖当前状态和当前动作,不依赖更早的历史。
这个假设非常关键,因为它允许我们用 (V(s))、(Q(s,a)) 这种局部函数描述长期收益,而不必记录整个历史轨迹。
—
2.3 Trajectory 与 Discounted Return【必考】
在策略 下,agent 与环境交互产生轨迹:
如果初始状态是 (s_0),策略为 ,则 discounted total reward 为:
也可写为:
其中:
物理/逻辑意义:
控制 agent 对未来奖励的重视程度。
当 接近 0 时,agent 近视,只关心眼前 reward。
当 接近 1 时,agent 更重视长期规划。
—
3. Value Function 与 Optimal Policy
3.1 Policy Value Function【必考】
由于环境可能随机,同一个策略从同一个状态开始可能产生不同 return。因此定义期望 return:
其中:
直觉: 衡量“状态 (s) 在策略 下有多好”。
—
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 | 样本 ((s,a,r,s’)) | (), (), () | Q-learning, DQN, PG | 样本效率、稳定性、探索问题 | |
—
5. Value Iteration
5.1 从 MDP 到最优策略【必考】
Planning 分两步:
核心是 Bellman optimality backup。
—
5.2 Value Iteration 公式【必考】
初始化:
重复更新:
直到:
其中:
逻辑直觉:
当前状态 (s) 的价值等于:立刻获得的 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【重要】
可以直接迭代 (Q):
收敛到:
贪心策略:
课件强调: 会在有限步内稳定到 。
—
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 方差高,所以不直接替换 (Q(s,a)),而是做 soft update:
等价于:
其中:
定义 TD error:
则更新为:
直觉:如果 TD target 比当前 (Q(s,a)) 大,就提高估计;如果更小,就降低估计。
—
6.4 Q-learning 算法【必考】
Initialize Q(s,a) arbitrarily
For each episode:
Pick in itial state s
Repeat:
Choose action a using ε-greed y 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 ter minal
收敛条件:
如果每个 ((s,a)) pair 被更新无限多次,则 Q-learning 收敛到 ()。
—
7. Exploration vs Exploitation
7.1 探索与利用的矛盾【必考】
Exploration:
尝试新的状态/动作,以获得更多经验。
缺点:短期 reward 可能不高。
Exploitation:
利用已有 (Q) 估计,选择当前看起来最好的动作。
缺点:可能错过更优策略。
—
7.2 (epsilon)-greed y policy【必考】
其中:
直觉:大部分时候利用当前知识,小部分时候随机探索,确保足够多的 ((s,a)) 被访问。
—
8. Ter minal State 与 Episode
8.1 Ter minal/Absorbing State【重要】
Ter minal state 是进入后无法离开的状态,例如 Game Over。
Episode 是从初始状态到 ter minal state 的完整过程。
在 episodic RL 中,训练通常是一局一局进行的。
—
9. On-policy vs Off-policy
9.1 定义【必考】
On-policy:
学习的是当前正在执行的策略的 value。
Off-policy:
执行策略和学习目标策略可以不同。
—
9.2 Q-learning 是 off-policy【必考】
Q-learning 更新使用:
这个 表示假设下一步采用 greed y action:
但实际执行动作可能来自 -greed y,不一定是 greed y action。
所以 Q-learning 学的是 greed y policy 的 value,但行为策略是 -greed y,因此是 off-policy。
—
9.3 SARSA 是 on-policy【必考】
SARSA 更新:
其中 (a’) 是 agent 在 (s’) 下按照当前策略实际选择的动作。
因此 SARSA 学的是当前行为策略本身的 value,是 on-policy。
对比:
| 算法 | 更新目标 | 是否 on-policy | 核心区别 | | ———- | ————————— | ———— | —————— | | Q-learning | () | Off-policy | 用 greed y action 更新 | | SARSA | (r+gamma Q(s’,a’)) | On-policy | 用实际采样的下一动作更新 |
—
10. Deep Q-Network, DQN
10.1 为什么需要 DQN【必考】
Tabular Q-learning 需要维护表:
但当状态空间巨大时不可行。
例如 Atari 图像状态:
每个 pixel 有 128 种可能颜色,则状态数极其巨大。
因此不能枚举所有状态,也不能为未访问状态直接查表。
DQN 用神经网络近似:
其中:
神经网络将状态 (s) 映射到每个动作的 Q-value。
—
10.2 DQN 的学习目标【必考】
目标是让:
接近 TD target:
损失函数:
代入 TD target:
梯度下降更新:
问题:target 本身也依赖 ,所以 一更新,target 也变。这叫 moving target。
—
11. Target Network
11.1 Moving Target 问题【必考】
DQN 的 TD target 是:
但 (Q) 的参数也是 ,所以目标随着模型参数变化而变化。
这会导致训练不稳定:模型一边追目标,目标一边移动。
—
11.2 Target Network 解决方案【必考】
引入目标网络参数:
TD target 改为:
更新主网络:
每隔 (C) 步同步一次:
直觉:用较慢更新的 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 中:
输出:
其中 (a) 是 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 的路径是:
特点:
策略通常是 deter ministic:
优点:
可以 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 推导【必考】
从定义开始:
写成积分:
把梯度移入积分:
[
integral rnabla_theta pi_thetad tau
利用:
得到:
因此:
—
18.4 去掉环境项【必考】
轨迹 log probability:
对 求导:
因为这些属于环境,不由策略参数控制。
所以:
代回:
用 (N) 条采样轨迹近似:
—
19. REINFORCE Algorithm
19.1 算法流程【必考】
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(θ)
更新形式:
直觉:
如果 >0),则增加该轨迹中动作的概率。
如果 ,则降低该轨迹中动作的概率。
所以 REINFORCE 是 trial-and-error 的形式化。
—
19.2 REINFORCE 是 on-policy【必考】
REINFORCE 用当前策略 采样轨迹,并用这些轨迹更新同一个策略。
因此它是 on-policy。
缺点:每次策略更新后,旧轨迹不再严格适用于新策略,样本效率低。
—
20. Policy Gradient 的高方差问题
20.1 高方差来源【必考】
Policy gradient 估计:
由于采样 trajectory 很贵,所以 (N) 不能很大。
少量 trajectory 导致估计方差高,训练不稳定。
—
21. 用 Causality 降低方差
21.1 原始 return 的问题【必考】
原始更新让每个动作 (a_t) 乘以整条轨迹 reward:
但动作 (a_t) 不可能影响过去的 reward:
因此不应让过去 reward 影响 (a_t) 的优化。
—
21.2 Reward-to-go【必考】
改为使用从当前时刻开始的 future return:
梯度估计:
课件版本使用 ,很多教材也会写成:
本质一样,只是折扣指数是否提取了一个整体因子。
直觉:只用动作之后的 reward 评价该动作,减少无关随机性。
—
22. 用 Baseline 降低方差
22.1 Baseline 形式【必考】
原始估计:
引入 baseline:
课件给出:
直觉:不是看 trajectory reward 是否大于 0,而是看它是否高于平均水平。
—
22.2 Baseline 不引入 bias【必考】
真实 policy gradient:
减去 baseline:
因为:
integral pi_theta nabla_theta log pi_theta b d tau
利用:
得到:
[
integral nabla_theta pi_thetab d tau
b nabla_theta integral pi_thetad tau
由于概率分布积分为 1:
所以:
因此 baseline 不改变期望,只降低方差。
—
23. Advanced Policy Gradient Method s
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【必考】
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:
梯度估计:
其中:
核心直觉:
如果 (A>0),说明动作好,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 | 需要 (P,r) | 不适用 | 高 | 稳定 | Bellman optimality | 必考 | | Q-learning | Value-based RL | 不需要 | Off-policy | 较高 | 表格下稳定 | TD target + max | 必考 | | SARSA | Value-based RL | 不需要 | On-policy | 中 | 更保守 | 用实际 (a’) 更新 | 必考 | | DQN | Deep value-based | 不需要 | Off-policy | 较高 | 原始不稳定 | NN 近似 Q | 必考 | | Target Network | DQN trick | 不需要 | Off-policy | — | 提高稳定性 | 固定 (theta^-) | 必考 | | 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 解决高方差、更新过大和探索不足的问题。