prev_advantage、prev_value和prev_return的区别

本文详细解释了在GAE(GeneralizedAdvantageEstimation)算法中,折现回报、状态值函数预测和优势函数的计算过程及其在策略优化中的作用。这些变量通过递归关系影响returns、deltas和advantages的计算,从而优化策略性能。
摘要由CSDN通过智能技术生成
  • prev_return:

    • 上一步的折现回报(Return),也就是从当前时间步向前累积到过去某一时间点的所有奖励经过折扣(discounting)后的总和。
    • 在GAE或其他动态规划方法中,prev_return 被用来计算接下来的 returns[i],这个计算考虑了未来的奖励和当前的值函数预测。
  • prev_value:

    • 上一步的状态值函数(Value function)预测值,即模型预计在给定状态下未来能获得的累计奖励的期望值。
    • 在GAE中,prev_value 被用来计算 TD(Temporal Difference)误差 deltas[i],它是实际收到的奖励与模型预测的未来奖励之差。
  • prev_advantage:

    • 上一步计算得到的优势函数(Advantage function)值,优势函数表示在特定状态下采取某个动作相对于当前策略下平均行动的价值(Value)的增益或减损。
    • 在GAE中,prev_advantage 被用来递归地计算当前时间步的优势函数 advantages[i],它综合了 TD 误差和之前的 advantage 值,用于反映当前动作相对于平均表现的相对优势。

这三个变量都在计算GAE过程中起着关键作用,且它们相互关联,共同服务于优化策略的目的。

特别是在计算优势函数时,prev_return 和 prev_value 分别参与到了 returns 和 deltas 的计算,而 prev_advantage 则参与到 advantages 的递归计算中。

# returns:递归地将当前时间步的即时奖励与之前计算的折现回报相加
returns[i] = rewards[i] + args.gamma * prev_return * masks[i]

# deltas(TD误差,Temporal Difference error)
# 用于度量实际收到的奖励与Value函数预测的未来收益之间的差异
deltas[i] = rewards[i] + args.gamma * prev_value * masks[i] - values[i]

# 根据GAE公式计算优势函数advantages
# 它结合了TD误差与之前的优势函数值,通过gamma * lambda进行折扣累积
advantages[i] = deltas[i] + args.gamma * args.lamda * prev_advantage * masks[i]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值