跳转至

附录E - 常见问题解答 (FAQ)

说明:本附录收集学习强化学习基础阶段时的常见问题,帮助你快速解决疑惑。


01 - 什么是强化学习

Q1: 强化学习和监督学习有什么本质区别?

A: 核心区别在于反馈类型: - 监督学习:有"标准答案",即时反馈(标签) - 强化学习:没有标准答案,只有奖励信号,反馈是延迟的

类比: - 监督学习 = 老师批改作业(知道哪里错了) - 强化学习 = 玩游戏(只知道最终得分,不知道哪一步错了)

Q2: 为什么需要折扣因子γ?

A: 三个原因: 1. 数学上:防止回报无限大(特别是continuing任务) 2. 直观上:未来的奖励不如现在的确定 3. 计算上:使值函数收敛

如果不使用γ: - 在无限horizon问题中,回报可能发散 - 智能体可能永远等待"更好的未来"

Q3: V(s)和Q(s,a)到底有什么区别?

A: - V(s):在这个状态,按照当前策略,平均能获得多少回报 - Q(s,a):在这个状态,先执行动作a,然后按照策略,能获得多少回报

关系:\(V(s) = \sum_a \pi(a|s) Q(s,a)\)(对所有动作加权平均)

记忆技巧: - V只看状态(Value of state) - Q看状态+动作(Quality of action)


02 - 马尔可夫决策过程

Q4: 马尔可夫性质为什么重要?

A: 马尔可夫性质(未来只依赖当前状态)让问题可解: - 不需要记住完整历史 - 状态空间不会随时间指数增长 - 可以使用动态规划等方法

反例:如果没有马尔可夫性质,你需要记住所有历史才能做决策,状态空间会爆炸。

Q5: 如何确定一个好的状态表示?

A: 好的状态表示应该: 1. 满足马尔可夫性:包含预测未来所需的所有信息 2. 足够简洁:不要包含无关信息 3. 可计算:能够实际获取和存储

示例: - 下棋:当前棋盘局面(好)vs 最后一步棋(不好) - 自动驾驶:位置+速度+方向(好)vs 只有位置(不好)

Q6: 状态转移概率P(s'|s,a)在实际中如何获得?

A: 三种方式: 1. 已知模型:如游戏规则、物理仿真 2. 学习得到:从数据中学习转移模型 3. 无模型方法:不显式使用P,直接从经验学习(如Q-Learning)


03 - 贝尔曼方程

Q7: 贝尔曼方程的直观理解是什么?

A: 递归关系

Text Only
当前值 = 即时奖励 + 折扣 × 下一个状态的值

类比: - 这局游戏的得分 = 这一步的得分 + 剩余游戏的得分 - 就像"今天的工作量 = 上午做的 + 下午做的"

Q8: 贝尔曼最优方程和期望方程的区别?

A: - 期望方程:按照当前策略的平均 - 最优方程:取所有动作的最大值(假设采取最优动作)

关键区别: - 期望方程描述"是什么" - 最优方程描述"最好是什么"

Q9: 为什么贝尔曼算子是压缩映射?

A: 直观理解: - 每次应用贝尔曼算子,值函数的"误差"会缩小 - 缩小比例是γ(折扣因子) - 所以反复应用会收敛到不动点

数学上: $\(\|TV_1 - TV_2\| \leq \gamma \|V_1 - V_2\|\)$


04 - 动态规划

Q10: 值迭代和策略迭代有什么区别?

A:

特性 值迭代 策略迭代
更新对象 值函数 策略+值函数
每次迭代 一次贝尔曼最优更新 完整策略评估+策略改进
收敛速度 较慢(但每步快) 较快(但每步慢)
适用场景 大状态空间 小状态空间

Q11: 策略评估为什么要迭代多次?

A: 因为要解线性方程组: $\(V = R + \gamma P V\)$

直接求解需要 \(O(S^3)\),迭代求解只需要 \(O(S^2)\) 每步。

Q12: 异步动态规划有什么好处?

A: 1. 计算效率高:不需要遍历所有状态 2. 实时性:可以边学习边执行 3. 聚焦重要状态:优先更新重要状态


05 - 蒙特卡洛方法

Q13: 首次访问MC和每次访问MC有什么区别?

A: - 首次访问:只使用第一次访问的回报 - 每次访问:使用所有访问的回报

统计性质: - 首次访问:无偏估计 - 每次访问:有偏但渐近无偏,通常方差更小

Q14: 为什么MC需要完整episode?

A: 因为MC使用实际回报 \(G_t = R_{t+1} + \gamma R_{t+2} + ...\)

需要知道未来的所有奖励才能计算 \(G_t\)

对比TD:TD使用自举,只需要下一步的估计值。

Q15: 重要性采样比率为什么会爆炸?

A: 当行为策略和目标策略差异大时: $\(\rho = \prod_{t=0}^{T-1} \frac{\pi(A_t|S_t)}{b(A_t|S_t)}\)$

某些轨迹的比率可能极大,导致: - 方差爆炸 - 数值不稳定

解决方法:加权重要性采样(WIS)


06 - 理论基础统一框架

Q16: n-step方法中n如何选择?

A: 权衡偏差-方差: - n小(如1):偏差大,方差小(类似TD) - n大:偏差小,方差大(类似MC) - 经验法则:从n=3或5开始尝试

Q17: TD(λ)中的λ有什么作用?

A: λ控制"看多远": - λ=0:只看下一步(TD(0)) - λ=1:看完整episode(MC) - 0<λ<1:加权平均所有n-step回报

Q18: 资格迹的直观理解是什么?

A: 记忆机制: - 记录每个状态对当前误差的"贡献" - 最近访问的状态有更高的"资格" - 随着时间衰减(γλ)

类比:就像"功劳簿",记录谁对当前结果有贡献。


07 - 收敛性与复杂度理论

Q19: 为什么TD比MC收敛更快但有偏差?

A: - TD快:使用自举,每步都更新 - TD有偏:自举使用了不准确的估计值 - MC无偏:使用实际回报,没有近似

偏差-方差权衡: - TD:低方差,有偏 - MC:高方差,无偏

Q20: 样本复杂度中的(1-γ)^3是什么意思?

A: 表示长程依赖的难度: - γ接近1:未来奖励重要,需要更多样本来学习长期影响 - γ接近0:只看即时奖励,学习更容易

\((1-\gamma)^{-3}\) 反映了学习长期依赖的指数级难度。

Q21: 什么是"致命三元组"?

A: 三个元素同时存在时可能导致发散: 1. 函数逼近:使用近似值函数 2. 自举:TD学习 3. Off-Policy:学习策略与执行策略不同

解决方案: - 使用On-Policy方法 - 使用梯度TD方法(GTD, TDC) - 使用经验回放


08 - 统计学习理论视角

Q22: 为什么RL的样本复杂度是O(1/ε²)而不是O(1/ε)?

A: 因为RL需要探索: - 不知道哪个策略好,必须尝试 - 探索带来了额外的方差 - 需要更多样本才能确定最优策略

对比监督学习:数据是给定的,不需要探索。

Q23: 集中性系数C*是什么?

A: 衡量行为策略与最优策略的差异: $\(C^* = \max_{s,a} \frac{d^{\pi^*}(s,a)}{d^{\pi_b}(s,a)}\)$

  • C*小:行为策略覆盖了最优策略的轨迹
  • C*大:最优策略访问的状态-动作对很少被访问

离线学习中:C*大意味着学习困难。

Q24: 悲观主义原则为什么重要?

A: 解决分布偏移问题: - 在数据稀少的区域,估计不可靠 - 悲观原则:对不确定区域采用悲观估计 - 防止过度乐观导致的错误

类比:"宁可错过,不要犯错"


编程实践问题

Q25: 我的Q-Learning不收敛,怎么办?

A: 检查清单: 1. [ ] 学习率α是否太大?(尝试0.01-0.1) 2. [ ] 探索率ε是否衰减?(应该逐渐减小) 3. [ ] 奖励是否归一化?(太大或太小都不好) 4. [ ] 环境是否正确实现? 5. [ ] Q表初始化是否合理?(尝试 optimistic initialization)

Q26: 如何选择超参数?

A: 经验法则:

参数 典型范围 建议
α(学习率) 0.001-0.3 从0.1开始
γ(折扣因子) 0.9-0.99 取决于任务horizon
ε(探索率) 0.01-0.3 从0.1开始,逐渐衰减
λ(TD lambda) 0.5-0.9 从0.9开始

调参方法: 1. 先固定其他参数,调一个参数 2. 使用网格搜索或随机搜索 3. 观察学习曲线

Q27: 如何调试RL代码?

A: 调试技巧: 1. 打印中间值:Q值、奖励、动作 2. 可视化:画出学习曲线、值函数热图 3. 简化环境:先用简单环境测试 4. 对比验证:和已知正确的实现对比 5. 单元测试:测试环境的每个函数


学习建议

Q28: 如何高效学习强化学习?

A: 三阶段学习法:

阶段1:建立直觉(1-2周) - 看直观的解释和图示 - 运行代码,观察结果 - 不要陷入数学细节

阶段2:深入理解(2-3周) - 推导公式 - 实现算法 - 做实验对比

阶段3:应用实践(持续) - 解决实际问题 - 阅读论文 - 参与项目

Q29: 数学基础不够,能学RL吗?

A: 可以!分层次学习:

基础层次: - 理解概念和算法流程 - 能够使用现成的库 - 能够调参和调试

进阶层次: - 理解数学推导 - 能够修改算法 - 能够分析收敛性

高级层次: - 能够提出新算法 - 能够做理论分析

建议:从基础层次开始,逐步深入。

Q30: 学完基础阶段后应该学什么?

A: 学习路径:

Text Only
基础阶段(已完成)
时序差分学习
├── SARSA
├── Q-Learning
└── 探索与利用
函数近似
├── 线性函数近似
└── 神经网络(DQN)
策略梯度
├── REINFORCE
└── Actor-Critic
高级主题
├── PPO, SAC
├── 模型基方法
└── 多智能体RL

还有其他问题?欢迎提出!