直接解释 TD(0) 和 TD(λ) 是时间差分 (TD) 学习算法,用于估计强化学习中的价值函数。 TD(0) 基于即时奖励和下一个状态的估计价值来更新状态的价值。 例如,如果智能体从状态 S
转换到 S'
并收到奖励 R
,则 TD(0) 将 S
的价值调整到 R + γV(S')
,其中 γ
是折扣因子。 这是一个单步更新,意味着它只考虑下一个状态。 相比之下,TD(λ) 引入了一个参数 λ
(介于 0 和 1 之间),将多个未来步骤混合到更新中。 当 λ=0
时,TD(λ) 的行为与 TD(0) 完全一样,但当 λ>0
时,它会聚合更长时间范围内的奖励和价值,并根据它们与当前状态的距离进行加权。
资格迹的机制 主要区别在于 TD(λ) 如何使用资格迹来跟踪过去状态的影响。 资格迹根据状态最近的活动为其分配“信用”。 例如,如果智能体通过状态 S1 → S2 → S3
移动并在 S3
收到奖励,则 TD(λ) 使用衰减权重将更新向后传播到 S2
和 S1
。 每个状态的迹在每个步骤都更新 γλ
,这意味着较旧的状态收到的信用较少。 这使得 TD(λ) 能够比 TD(0) 更有效地处理延迟奖励。 例如,在奖励发生在操作序列之后的游戏中,TD(λ) 更新路径中的所有相关状态,而 TD(0) 仅更新紧接在奖励之前的状态。
实际考虑 TD(0) 在计算上更简单,因为它避免了存储资格迹,并且每个步骤都在恒定时间内执行更新。 这使其适用于具有频繁、即时奖励的环境。 但是,TD(λ) 在稀疏或延迟奖励场景中效率更高(例如,机器人学习导航迷宫,奖励在最后出现)。 权衡是增加了内存和计算,因为必须为所有状态维护资格迹。 开发人员可能会选择 TD(0) 以实现简单性或实时系统,而当奖励不频繁且长期信用分配至关重要时,TD(λ) 是更可取的。 λ
的选择允许在短期(类似 TD(0))和长期(更接近蒙特卡洛)更新之间进行调整。