跳转至

十二:强化学习:Q-learning、Dyna-Q 与 DQN自测题

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247483941&idx=1&sn=ca9f8dbdb1369fba68838ac85c1d844e&chksm=f01eb15cc769384a48dafccd4124ab3d174f9c6aa39f8d76be3d1a4632f710b830402e44b197#rd

覆盖范围

  • Q-learning 与 Sarsa 的区别

  • Dyna-Q 的 learning + planning 框架

  • 表格方法局限与函数近似

  • DQN 的输入输出、loss、TD target、训练流程

  • Experience replay 与 target network

  • Double DQN、Dueling DQN、PER、Rainbow

  • DQN 工程实现、排错和评估

一、Q-learning 基础

  • Q-learning 的核心目标是什么?

  • 请写出表格型 Q-learning 的更新公式。

  • Q-learning 的 TD target 是什么?

  • Q-learning 的 TD error 是什么?

  • 为什么 Q-learning 是 off-policy 算法?

  • Q-learning 和 Sarsa 的 target 有什么核心区别?

  • 在 Cliff Walking 中,Q-learning 和 Sarsa 的行为差异通常是什么?

  • Q-learning 的收敛依赖哪些直觉条件?

二、Dyna-Q

  • Dyna-Q 想解决什么问题?

  • Dyna-Q 中 learning 和 planning 分别指什么?

  • Dyna-Q 的环境模型通常存储什么?

  • 请描述 Dyna-Q 一次真实交互后的完整更新流程。

  • Dyna-Q 中 planning step 的数量会影响什么?

  • Dyna-Q 和纯 Q-learning 相比,样本效率为什么可能更高?

  • Dyna-Q 的主要风险是什么?

  • 如果环境发生变化,Dyna-Q 的旧模型可能造成什么问题?

三、函数近似

  • 表格型 Q 方法为什么难以处理大规模状态空间?

  • 什么是函数近似的 Q 函数?

  • 用函数近似做 Q-learning 时,监督学习式的 target 和 prediction 分别是什么?

  • 什么是 semi-gradient?为什么 Q-learning 中常用半梯度?

  • 什么是 deadly triad?

  • 为什么 off-policy、bootstrapping 和 function approximation 同时出现会带来不稳定性?

  • 线性函数近似和深度神经网络函数近似有什么区别?

  • 为什么函数近似既带来泛化,也带来误差传播风险?

四、DQN 核心机制

  • DQN 的全称是什么?它解决了什么问题?

  • DQN 中神经网络近似的是什么函数?

  • 对离散动作空间,DQN 网络通常输出什么?

  • 经典 Atari DQN 的输入通常如何处理?

  • 请写出 DQN 使用 target network 时的 TD target。

  • 请写出 DQN 的损失函数。

  • 为什么 DQN 常用 Huber loss?

  • DQN 为什么主要适合离散动作空间?

  • 如果动作空间是连续的,DQN 会遇到什么困难?

  • DQN 与普通监督学习的相似点和关键区别是什么?

五、Experience Replay 与 Target Network

  • Experience replay 是什么?

  • Replay buffer 中通常存储哪些字段?

  • Experience replay 为什么能降低样本相关性?

  • Experience replay 如何提高样本利用率?

  • Replay buffer 太小或太大分别可能有什么问题?

  • Target network 是什么?

  • Target network 为什么能稳定训练?

  • Hard update 和 soft update 有什么区别?

  • 为什么 target network 更新太频繁或太慢都可能有问题?

  • 为什么 target 计算时通常要 no_grad

六、DQN 训练流程与实现

  • 请描述 DQN 的完整训练流程。

  • DQN 中 epsilon-greedy 如何用于探索?

  • 为什么训练前通常需要 replay buffer 预填充?

  • 在 PyTorch 中为什么要用 gatherQ(s,a)

  • done=True 的 transition 在 target 中应该如何处理?

  • Reward clipping 在 DQN 中有什么作用和副作用?

  • Gradient clipping 解决什么问题?

  • Evaluation 时为什么要区别训练 epsilon 和评估 epsilon?

七、DQN 改进算法

  • 标准 DQN 为什么容易过估计 Q 值?

  • Double DQN 的核心思想是什么?

  • 请写出 Double DQN 的 target。

  • Dueling DQN 把 Q 函数拆成哪两部分?

  • Dueling DQN 为什么需要对 advantage 做 mean subtraction?

  • Dueling DQN 适合什么样的场景?

  • Prioritized Experience Replay 的采样依据是什么?

  • PER 为什么需要 importance sampling weight?

  • Multi-step return 对 DQN 有什么帮助?

  • Noisy Nets 相比 epsilon-greedy 的探索差异是什么?

  • Distributional RL 与普通 DQN 学习目标有什么区别?

  • Rainbow DQN 主要组合了哪些改进?

八、工程排错与应用

  • 如果 DQN loss 爆炸,可能有哪些原因?

  • 如果 DQN 训练 reward 长期不上升,应该排查哪些问题?

  • 如果 Q 值整体越来越大但策略没有变好,可能是什么问题?

  • DQN 在部分可观测环境中为什么可能表现差?如何改进?

  • DQN 思想如何迁移到工具调用 Agent 的有限动作选择?

  • 请完整比较 Q-learning、Dyna-Q、DQN、Double DQN、Dueling DQN 和 Rainbow 的核心目标与解决的问题。

            预览时标签不可点
    

    <div class="