强化学习入门学习第二课 —— 基础方法 :时序差分学习
目录
1. SARSA(State-Action-Reward-State-Action)
嗨,欢迎来到强化学习的世界!🎉
在强化学习中,时序差分学习(Temporal Difference Learning,简称TD) 是一种非常核心且优雅的学习方法。它巧妙地结合了蒙特卡洛方法(Monte Carlo) 和动态规划(Dynamic Programming) 的优点,是现代强化学习算法的基石。
今天我们就来深入了解TD学习的原理、公式推导以及经典算法!💪
为什么需要TD学习?
在介绍TD之前,我们先回顾一下其他两种方法的特点:
方法 | 优点 | 缺点 |
|---|---|---|
动态规划(DP) | 利用贝尔曼方程进行自举(Bootstrap) | 需要完整的环境模型 |
蒙特卡洛(MC) | 不需要环境模型,从经验中学习 | 必须等到回合结束才能更新 |
TD学习的出现就是为了取两者之长:
- 像MC一样,不需要环境模型
- 像DP一样,可以在线更新(不用等回合结束)
TD学习的核心思想
1. 价值函数的定义
首先,回顾状态价值函数的定义:

其中:
是策略
是折扣因子
是在时刻
获得的奖励
2. TD(0) 更新公式
TD学习的核心更新公式如下:

让我们拆解这个公式:
符号 | 含义 |
|---|---|
学习率(步长),控制更新幅度 | |
执行动作后获得的即时奖励 | |
下一状态的折扣价值估计 | |
TD目标(TD Target) | |
TD误差(TD Error),记作 |
3. TD误差的直观理解

TD误差可以理解为"惊喜程度":
:实际情况比预期好 😊
:实际情况比预期差 😢
:与预期一致 😐
TD学习流程图

经典TD算法:SARSA与Q-Learning
1. SARSA(State-Action-Reward-State-Action)
SARSA是一种同策略(On-policy) TD控制算法,直接学习动作价值函数 。
更新公式:

算法伪代码:
2. Q-Learning
Q-Learning是一种异策略(Off-policy) TD控制算法。
更新公式:

关键区别: Q-Learning使用 而不是实际采取的动作的Q值。
算法伪代码:
TD与MC方法的偏差-方差权衡

拓展:TD(λ) 与资格迹
1. n步TD方法
TD(0)只看一步,而我们可以扩展到n步:

更新公式变为:

n值 | 方法类型 |
|---|---|
n = 1 | TD(0) |
n = ∞ | 蒙特卡洛 |
1 < n < ∞ | n步TD |
2. TD(λ) 算法
TD(λ)巧妙地结合了所有n步回报的加权平均:

其中 是衰减参数:
等价于 TD(0)
等价于 MC
3. 资格迹(Eligibility Traces)
资格迹是一种高效实现TD(λ)的技术:

更新规则:


实践小贴士
- 学习率选择:
通常取0.01~0.1,太大会震荡,太小收敛慢
- 探索策略:常用ε-greedy,ε一般从1.0逐渐衰减到0.01
- 初始化:乐观初始化可以促进探索
- 回放缓冲区:结合经验回放可以提高样本效率
总结
特性 | 动态规划 | 蒙特卡洛 | TD学习 |
|---|---|---|---|
需要环境模型 | ✅ 是 | ❌ 否 | ❌ 否 |
需要完整回合 | ❌ 否 | ✅ 是 | ❌ 否 |
自举 | ✅ 是 | ❌ 否 | ✅ 是 |
在线学习 | ✅ 是 | ❌ 否 | ✅ 是 |
TD学习是强化学习中的核心方法,理解它对于学习更高级的算法(如DQN、Actor-Critic等)至关重要!
希望这篇文章对你有帮助!如果有任何问题,欢迎在评论区讨论 💬
觉得不错的话,别忘了点赞收藏哦! ⭐👍

