时序差分学习
什么是时序差分学习?
时序差分 (TD) 学习是一种无模型的强化学习技术,旨在使预期预测与最新预测对齐,从而使预期与实际结果匹配,并逐步提升整体预测链的准确性。它还试图预测即时奖励与其自身在同一时刻的奖励预测的组合。
在时序差分学习中,用于训练预测的信号来自于未来的预测。这种方法结合了 Monte Carlo (MC) 技术和动态规划 (DP) 技术。Monte Carlo 方法仅在最终结果已知后才修改其估计,而时序差分技术则在最终结果已知之前,通过调整预测以匹配后续更精确的未来预测。这种方法本质上是一种 bootstrapping。
时序差分学习中使用的参数
时序差分学习中最常用的参数是 −
- Alpha (${\alpha}$) − 这表示学习率,取值范围为 0 到 1。它决定了基于误差调整估计的程度。
- Gamma (${\gamma}$) − 这表示折扣率,取值范围为 0 到 1。较大的折扣率意味着未来奖励被更重视。
- ${\epsilon}$ − 这意味着以 ${\epsilon}$ 的概率探索新可能,并以 ${1-\epsilon}$ 的概率保持当前最大值。较大的 ${\epsilon}$ 表示训练过程中进行更多探索。
AI 与机器学习中的时序差分学习
时序差分 (TD) 学习已成为 AI 和机器学习中的一个重要概念。这种方法结合了 Monte Carlo 方法和动态规划的优势,提升了在延迟奖励环境中学习的效率。
时序差分 (TD) 学习通过基于未来预测差异更新价值函数,支持从不完整序列中进行自适应学习。这种方法对于涉及实时决策的应用至关重要,包括机器人、游戏和金融等领域。通过利用观察到的奖励和预期未来奖励,TD 学习成为创建智能且自适应算法的强大方法之一。
时序差分学习算法
时序差分 (TD) 学习的主要目标是估计值函数 ${V(s)}$,它表示从状态 ${s}$ 开始的预期未来奖励。以下是 TD 学习中使用的算法列表 −
1. TD(${\lambda}$) 算法
TD(${\lambda}$) 是一种强化学习算法,它结合了 Monte Carlo 方法和 TD(0) 的概念。它通过对代理轨迹中 n-step 返回的加权平均来计算值函数,权重由 ${\lambda}$ 决定。
- 当 ${\lambda = 0}$ 时,它对应于 TD(0),其中在更新估计时考虑最新的奖励和下一个状态的值。
- 当 ${\lambda = 1}$ 时,它表示使用 Monte Carlo 方法,该方法基于从状态到 episode 结束的总返回来更新值。
- 如果 ${\lambda}$ 在 0 到 1 之间,TD(${\lambda}$) 结合了短期 TD(0) 和 Monte Carlo 方法,强调最新的奖励。
2. TD(0) 算法
TD 学习的最简单形式是 ${TD(0)}$ 算法(一步 TD 学习),其中状态的值基于连续奖励和下一个状态的估计值进行更新。更新规则 −
$${V(s_t) \leftarrow V(s_t) + \alpha[R_{t+1} + \gamma V(s_{t+1}) - V(s_t)]}$$
其中,
- ${V(s_t)}$ 表示状态 ${s_t}$ 的当前值估计
- ${R_{t+1}}$ 表示从状态 ${s_t}$ 转换后收到的奖励。
- ${\gamma}$ 是折扣因子
- ${V(s_{t+1})}$ 表示下一个状态的估计值。
- ${\alpha}$ 是学习率。
该规则基于预测返回(使用 ${V(s_{t+1})}$)与实际返回(使用 ${R_{t+1}}$)之间的差异来调整当前估计。
3. TD(1) 算法
具有迹长为 1 的时序差分学习被称为 TD(1),它是 Monte Carlo 技术和动态规划在强化学习中的结合。这是 TD(0) 的广义版本。TD(1) 的主要概念是使用最后奖励和即将到来的奖励预测来调整值函数。
时序差分学习与 Q-Learning 的区别
基于几个方面的 Q-learning 和时序差分学习的区别如下表所示 −
| 方面 | 时序差分 (TD) 学习 | Q-Learning |
|---|---|---|
| 目标 | 估计 状态值函数 ${V(s)}$ | 估计 动作值函数 ${Q(s, a)}$ |
| 算法类型 | 状态值 ${V(s)}$ | 动作-状态值 ${Q(s, a)}$ |
| 策略类型 | 无模型、on-policy 或 off-policy 强化学习 | 无模型、off-policy 强化学习。 |
| 更新规则 | 基于下一个状态的值进行更新(针对状态值) | 基于最大未来动作值进行更新(针对 Q 函数) |
| 更新公式 | ${V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)]}$ | ${Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha [ r_{t+1} + \gamma \max_{{a'}} Q(s_{t+1}, a') - Q(s_t, a_t)]}$ |
| 探索与利用 | 直接遵循当前策略的探索-利用权衡,如 epsilon-greedy。 | 通过 epsilon-greedy 分离探索与学习最优策略 |
| 学习类型 | 无模型,从经验中学习并基于值估计进行自举 | 无模型,从经验中学习并旨在优化策略 |
| 收敛性 | 收敛到状态值函数 ${V(s)}$ 的良好近似 | 如果进行足够的探索,则收敛到最优策略 |
| 示例算法 | TD(0), SARSA | Q-learning |
什么是时序差分误差?
TD error 定义为当前估计 ${V_t}$ 与 ${V_{t+1}}$ 的折扣值估计之间的差距,并与从 ${S_t}$ 移动到 ${S_{t+1}}$ 获得的奖励进行比较。步骤 t 处的 TD error 需要下一个状态和奖励的信息,因此直到步骤 ${t + 1}$ 才可访问。使用 TD error 更新价值函数被称为一次 backup。TD error 与 Bellman 方程相关联。定义时序差分误差的方程是 −
$${\Delta t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t)}$$
时序差分学习的好处
时序差分学习的一些好处,它们在提升机器学习方面产生了影响,包括 −
- TD learning 技术可以从未完成的序列中学习,从而也能应用于连续问题。
- TD learning 能够在不终止的环境中运行。
- 与 Monte Carlo 方法相比,TD Learning 的变异性更低,因为它依赖于单个随机动作、转移和奖励。
时序差分学习的挑战
TD learning 中需要解决的一些挑战包括 −
- TD learning 方法对初始值更敏感。
- 它是一种有偏估计。