COMP5318 Week 12 强化学习讲课总结
COMP5318 W12 考点速成:强化学习、Q-learning 与 DQN
用时约 12 分钟。每套 Practice Exam 最后 3 道选择题都在这里:Q-learning 一步更新、期望动作价值、经验回放、目标网络、折扣、为什么用 DQN。对应 PE1 Q28–Q30,PE2 Q28–Q30。
一、知识点
1. 基本框架
flowchart LR
A["Agent"] -->|"动作 a_t"| E["Environment"]
E -->|"状态 s_{t+1},奖励 r_{t+1}"| A
- RL 没有正确动作标签,只有标量奖励(可能延迟);目标是最大化期望累积奖励(reward hypothesis)。智能体自己的动作会影响后续数据。
- 交互:agent 执行
→ environment 返回 、 。 - MDP
;马尔可夫性:下一状态只依赖当前状态和动作。 - 智能体三组件:policy(每个状态选什么动作)、value function(状态 / 动作有多好)、model(对环境的预测)。
2. 回报与价值
小 → 短视;减小 只降低远期奖励在回报里的权重,不改变环境的奖励和转移。 :从 出发按 的期望回报; :在 先做 再按 的期望回报。 - Bellman 最优方程:
期望动作价值:先对每个结果算「奖励 +
3. Q-learning
flowchart LR
O["旧值 Q(s,a)"] --> D["TD error = target − 旧值"]
T["target = r + γ·max Q(s′,·)<br/>(终止状态 target = r)"] --> D
D --> N["新值 = 旧值 + α × TD error"]
- 三步:① target;② TD error = target − 旧值;③ 旧值 +
× TD error。 时新值就是 target。 - 用的是下一状态的
max(off-policy)。终止状态没有未来价值(target =
)。 - ε-greedy:概率
随机探索,否则选 Q 最大的动作; 常随训练衰减。 - Q 表只适合状态和动作都少且离散的问题。
4. DQN
flowchart LR
P1["样本相关"] --> F1["经验回放:随机抽小批量"]
P2["目标不平稳"] --> F2["目标网络:固定 ŵ 若干步"]
P3["max 导致高估"] --> F3["Double DQN:当前网络选、旧网络评估"]
P4["Q 表存不下"] --> F4["Q 网络:共享参数近似 Q"]
- 状态太多(Atari 像素)时 Q 表存不下 →
用共享参数的神经网络近似
。Atari DQN:输入最近 4 帧,输出所有动作的 Q 值。 - 损失:
,用 SGD 最小化。 - 直接训练会发散的两个原因和对策:
| 问题 | 对策 |
|---|---|
| 连续样本高度相关 | Experience replay:存
|
| 目标不平稳(目标随 |
Target
network:用固定若干步的 |
- Double DQN:当前网络选动作、旧网络评估,消除 max 带来的高估。Prioritized replay:按 TD error 优先采样。
- AlphaGo:策略网络减少搜索宽度,价值网络减少搜索深度;AlphaZero:自我对弈,一个算法三种棋。
二、考点
- ★★★ Q-learning 一步:代入公式,别把 target
当答案(那是
)。 - ★★★ 期望动作价值:先回溯每个分支,再加权平均。
- ★★★ 经验回放 ↔︎ 去相关;目标网络 ↔︎ 稳定自举目标。
- ★★ 折扣只改权重;为什么用 DQN 代替 Q 表。
三、题目
Q1(PE1 Q30) 非终止转移:
target
;新值 3.5。6.00 是错选项(相当于 )。
Q2(PE2 Q30) 某动作以 0.4 的概率得奖励
2、到达最优价值 6 的状态;否则得奖励 0、到达价值 2 的状态。
两个分支
, ;期望 2.6。
Q3(PE1 Q28) DQN 从存储的转移里随机抽样训练,而不是只用最新的连续转移,主要减少什么?
相邻训练样本之间的时间相关性。
Q4(PE1 Q29) DQN 把目标网络参数固定若干步,主要好处?
让自举目标在这些更新中更稳定。在线网络仍在学,探索是另一回事。
Q5(PE2 Q28) 奖励和转移不变,只减小折扣因子,直接影响?
远期奖励相对即时奖励在回报中的权重下降。
Q6(PE2 Q29) 状态是图像时,为什么 DQN 比 Q 表更合适?
用共享网络参数估计状态-动作价值,不必为每一张可能的图像单独存一个值。
Q7(自拟) 终止转移:
终止状态没有未来价值,target
;新值 4.6。
Q8(自拟) 奖励序列
1.5。
Q9(自拟) Taxi-v3 的状态数怎么算?
25 个格子 × 5 种乘客位置(4 个地点 + 在车上)× 4 个目的地 = 500;动作 6 个。